Name: series-workflowrsjcx Phase: Failed StartedAt: 2026-07-30 01:38:18 +0000 UTC FinishedAt: 2026-07-30 02:10:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrsjcx[0] Phase: Succeeded StartedAt: 2026-07-30 01:38:18 +0000 UTC FinishedAt: 2026-07-30 02:09:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrsjcx[0].run-triage Phase: Succeeded StartedAt: 2026-07-30 01:38:18 +0000 UTC FinishedAt: 2026-07-30 02:09:53 +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+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNaWNyb2NoaXAgV0lMQzEwMDAgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgZm9yIHBoeXNpY2FsIFNESU8vU1BJIFdpRmkgY2hpcHMuIFNpbmNlIFFFTVUgYW5kIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSB0aGlzIHNwZWNpZmljIGhhcmR3YXJlLCBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUtZW11bGF0ZWQgYWx0ZXJuYXRpdmUgKGxpa2UgbWFjODAyMTFfaHdzaW0gb3IgVVNCIGdhZGdldCkgZm9yIGl0LCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgYW5kIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowNzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDJjYWY5OTg3MTJkYTZlNjI1YzJiOTY1MWFlN2QwN2Y4NTZkNjZmMTNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAzMCAwMjowNzoyMCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmNcbmluZGV4IGI1Y2Y2ZmE3YTg1MTAuLjliOGMwODNiNDAzZGUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uY1xuQEAgLTE0Miw2ICYjNDM7MTQyLDkgQEAgc3RhdGljIGludCBtb25fbWdtdF90eChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1OCAqYnVmLCBzaXplX3QgbGVuKVxuIHN0YXRpYyBuZXRkZXZfdHhfdCB3aWxjX3dmaV9tb25feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRcdFx0ICAgICBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuIHtcbiYjNDM7XHRzdHJ1Y3QgaWVlZTgwMjExX3JhZGlvdGFwX2hlYWRlcl9maXhlZCAqcnRhcF9oZHI7XG4mIzQzO1x0c3RydWN0IGllZWU4MDIxMV9oZHJfM2FkZHIgKmhkcjtcbiYjNDM7XHR1bnNpZ25lZCBpbnQgaGRyX2xlbjtcbiBcdHUzMiBydGFwX2xlbiwgcmV0ID0gMDtcbiBcdHN0cnVjdCB3aWxjX3dmaV9tb25fcHJpdiAgKm1vbl9wcml2O1xuIFx0c3RydWN0IHNrX2J1ZmYgKnNrYjI7XG5AQCAtMTUzLDEzICYjNDM7MTU2LDI2IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCB3aWxjX3dmaV9tb25feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0aWYgKCFtb25fcHJpdilcbiBcdFx0cmV0dXJuIC1FRkFVTFQ7XG4gXG4mIzQzO1x0aWYgKHNrYi1cdTAwM2VsZW4gXHUwMDNjIHNpemVvZigqcnRhcF9oZHIpKVxuJiM0MztcdFx0Z290byBkcm9wO1xuJiM0MztcbiYjNDM7XHRydGFwX2hkciA9ICh2b2lkICopc2tiLVx1MDAzZWRhdGE7XG4mIzQzO1x0aWYgKHJ0YXBfaGRyLVx1MDAzZWl0X3ZlcnNpb24pXG4mIzQzO1x0XHRnb3RvIGRyb3A7XG4mIzQzO1xuIFx0cnRhcF9sZW4gPSBpZWVlODAyMTFfZ2V0X3JhZGlvdGFwX2xlbihza2ItXHUwMDNlZGF0YSk7XG4tXHRpZiAoc2tiLVx1MDAzZWxlbiBcdTAwM2MgcnRhcF9sZW4pXG4tXHRcdHJldHVybiAtMTtcbiYjNDM7XHRpZiAocnRhcF9sZW4gXHUwMDNjIHNpemVvZigqcnRhcF9oZHIpIHx8IHNrYi1cdTAwM2VsZW4gXHUwMDNjIHJ0YXBfbGVuKVxuJiM0MztcdFx0Z290byBkcm9wO1xuIFxuIFx0c2tiX3B1bGwoc2tiLCBydGFwX2xlbik7XG4mIzQzO1x0aGRyX2xlbiA9IGllZWU4MDIxMV9nZXRfaGRybGVuX2Zyb21fc2tiKHNrYik7XG4mIzQzO1x0aWYgKGhkcl9sZW4gXHUwMDNjIHNpemVvZigqaGRyKSlcbiYjNDM7XHRcdGdvdG8gZHJvcDtcbiBcbi1cdGlmIChza2ItXHUwMDNlZGF0YVswXSA9PSAweGMwIFx1MDAyNlx1MDAyNiBpc19icm9hZGNhc3RfZXRoZXJfYWRkcihcdTAwMjZza2ItXHUwMDNlZGF0YVs0XSkpIHtcbiYjNDM7XHRoZHIgPSAodm9pZCAqKXNrYi1cdTAwM2VkYXRhO1xuJiM0MztcbiYjNDM7XHRpZiAoaWVlZTgwMjExX2lzX2RlYXV0aChoZHItXHUwMDNlZnJhbWVfY29udHJvbCkgXHUwMDI2XHUwMDI2XG4mIzQzO1x0ICAgIGlzX2Jyb2FkY2FzdF9ldGhlcl9hZGRyKGhkci1cdTAwM2VhZGRyMSkpIHtcbiBcdFx0c2tiMiA9IGRldl9hbGxvY19za2Ioc2tiLVx1MDAzZWxlbiAmIzQzOyBzaXplb2YoKmNiX2hkcikpO1xuIFx0XHRpZiAoIXNrYjIpXG4gXHRcdFx0cmV0dXJuIC1FTk9NRU07XG5AQCAtMTkxLDggJiM0MzsyMDcsOCBAQCBzdGF0aWMgbmV0ZGV2X3R4X3Qgd2lsY193ZmlfbW9uX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdH1cbiBcdHNrYi1cdTAwM2VkZXYgPSBtb25fcHJpdi1cdTAwM2VyZWFsX25kZXY7XG4gXG4tXHRldGhlcl9hZGRyX2NvcHkoc3JjYWRkLCBcdTAwMjZza2ItXHUwMDNlZGF0YVsxMF0pO1xuLVx0ZXRoZXJfYWRkcl9jb3B5KGJzc2lkLCBcdTAwMjZza2ItXHUwMDNlZGF0YVsxNl0pO1xuJiM0MztcdGV0aGVyX2FkZHJfY29weShzcmNhZGQsIGhkci1cdTAwM2VhZGRyMik7XG4mIzQzO1x0ZXRoZXJfYWRkcl9jb3B5KGJzc2lkLCBoZHItXHUwMDNlYWRkcjMpO1xuIFx0LypcbiBcdCAqIElkZW50aWZ5IGlmIGRhdGEgb3IgbWdtdCBwYWNrZXQsIGlmIHNvdXJjZSBhZGRyZXNzIGFuZCBic3NpZFxuIFx0ICogZmllbGRzIGFyZSBlcXVhbCBzZW5kIGl0IHRvIG1nbXQgZnJhbWVzIGhhbmRsZXJcbkBAIC0yMDcsNiAmIzQzOzIyMywxMCBAQCBzdGF0aWMgbmV0ZGV2X3R4X3Qgd2lsY193ZmlfbW9uX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdH1cbiBcbiBcdHJldHVybiByZXQ7XG4mIzQzO1xuJiM0Mztkcm9wOlxuJiM0MztcdGRldl9rZnJlZV9za2Ioc2tiKTtcbiYjNDM7XHRyZXR1cm4gTkVUREVWX1RYX09LO1xuIH1cbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHdpbGNfd2ZpX25ldGRldl9vcHMgPSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNaWNyb2NoaXAgV0lMQzEwMDAgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgZm9yIHBoeXNpY2FsIFNESU8vU1BJIFdpRmkgY2hpcHMuIFNpbmNlIFFFTVUgYW5kIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSB0aGlzIHNwZWNpZmljIGhhcmR3YXJlLCBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUtZW11bGF0ZWQgYWx0ZXJuYXRpdmUgKGxpa2UgbWFjODAyMTFfaHdzaW0gb3IgVVNCIGdhZGdldCkgZm9yIGl0LCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgYW5kIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDJjYWY5OTg3MTJkYTZlNjI1YzJiOTY1MWFlN2QwN2Y4NTZkNjZmMTMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEp1bCAzMCAwMjowNzoyMCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYwppbmRleCBiNWNmNmZhN2E4NTEwLi45YjhjMDgzYjQwM2RlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jCkBAIC0xNDIsNiAmIzQzOzE0Miw5IEBAIHN0YXRpYyBpbnQgbW9uX21nbXRfdHgoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgY29uc3QgdTggKmJ1Ziwgc2l6ZV90IGxlbikKIHN0YXRpYyBuZXRkZXZfdHhfdCB3aWxjX3dmaV9tb25feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJCSAgICAgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKJiM0MzsJc3RydWN0IGllZWU4MDIxMV9yYWRpb3RhcF9oZWFkZXJfZml4ZWQgKnJ0YXBfaGRyOwomIzQzOwlzdHJ1Y3QgaWVlZTgwMjExX2hkcl8zYWRkciAqaGRyOwomIzQzOwl1bnNpZ25lZCBpbnQgaGRyX2xlbjsKIAl1MzIgcnRhcF9sZW4sIHJldCA9IDA7CiAJc3RydWN0IHdpbGNfd2ZpX21vbl9wcml2ICAqbW9uX3ByaXY7CiAJc3RydWN0IHNrX2J1ZmYgKnNrYjI7CkBAIC0xNTMsMTMgJiM0MzsxNTYsMjYgQEAgc3RhdGljIG5ldGRldl90eF90IHdpbGNfd2ZpX21vbl94bWl0KHN0cnVjdCBza19idWZmICpza2IsCiAJaWYgKCFtb25fcHJpdikKIAkJcmV0dXJuIC1FRkFVTFQ7CiAKJiM0MzsJaWYgKHNrYi0mZ3Q7bGVuICZsdDsgc2l6ZW9mKCpydGFwX2hkcikpCiYjNDM7CQlnb3RvIGRyb3A7CiYjNDM7CiYjNDM7CXJ0YXBfaGRyID0gKHZvaWQgKilza2ItJmd0O2RhdGE7CiYjNDM7CWlmIChydGFwX2hkci0mZ3Q7aXRfdmVyc2lvbikKJiM0MzsJCWdvdG8gZHJvcDsKJiM0MzsKIAlydGFwX2xlbiA9IGllZWU4MDIxMV9nZXRfcmFkaW90YXBfbGVuKHNrYi0mZ3Q7ZGF0YSk7Ci0JaWYgKHNrYi0mZ3Q7bGVuICZsdDsgcnRhcF9sZW4pCi0JCXJldHVybiAtMTsKJiM0MzsJaWYgKHJ0YXBfbGVuICZsdDsgc2l6ZW9mKCpydGFwX2hkcikgfHwgc2tiLSZndDtsZW4gJmx0OyBydGFwX2xlbikKJiM0MzsJCWdvdG8gZHJvcDsKIAogCXNrYl9wdWxsKHNrYiwgcnRhcF9sZW4pOwomIzQzOwloZHJfbGVuID0gaWVlZTgwMjExX2dldF9oZHJsZW5fZnJvbV9za2Ioc2tiKTsKJiM0MzsJaWYgKGhkcl9sZW4gJmx0OyBzaXplb2YoKmhkcikpCiYjNDM7CQlnb3RvIGRyb3A7CiAKLQlpZiAoc2tiLSZndDtkYXRhWzBdID09IDB4YzAgJmFtcDsmYW1wOyBpc19icm9hZGNhc3RfZXRoZXJfYWRkcigmYW1wO3NrYi0mZ3Q7ZGF0YVs0XSkpIHsKJiM0MzsJaGRyID0gKHZvaWQgKilza2ItJmd0O2RhdGE7CiYjNDM7CiYjNDM7CWlmIChpZWVlODAyMTFfaXNfZGVhdXRoKGhkci0mZ3Q7ZnJhbWVfY29udHJvbCkgJmFtcDsmYW1wOwomIzQzOwkgICAgaXNfYnJvYWRjYXN0X2V0aGVyX2FkZHIoaGRyLSZndDthZGRyMSkpIHsKIAkJc2tiMiA9IGRldl9hbGxvY19za2Ioc2tiLSZndDtsZW4gJiM0Mzsgc2l6ZW9mKCpjYl9oZHIpKTsKIAkJaWYgKCFza2IyKQogCQkJcmV0dXJuIC1FTk9NRU07CkBAIC0xOTEsOCAmIzQzOzIwNyw4IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCB3aWxjX3dmaV9tb25feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCX0KIAlza2ItJmd0O2RldiA9IG1vbl9wcml2LSZndDtyZWFsX25kZXY7CiAKLQlldGhlcl9hZGRyX2NvcHkoc3JjYWRkLCAmYW1wO3NrYi0mZ3Q7ZGF0YVsxMF0pOwotCWV0aGVyX2FkZHJfY29weShic3NpZCwgJmFtcDtza2ItJmd0O2RhdGFbMTZdKTsKJiM0MzsJZXRoZXJfYWRkcl9jb3B5KHNyY2FkZCwgaGRyLSZndDthZGRyMik7CiYjNDM7CWV0aGVyX2FkZHJfY29weShic3NpZCwgaGRyLSZndDthZGRyMyk7CiAJLyoKIAkgKiBJZGVudGlmeSBpZiBkYXRhIG9yIG1nbXQgcGFja2V0LCBpZiBzb3VyY2UgYWRkcmVzcyBhbmQgYnNzaWQKIAkgKiBmaWVsZHMgYXJlIGVxdWFsIHNlbmQgaXQgdG8gbWdtdCBmcmFtZXMgaGFuZGxlcgpAQCAtMjA3LDYgJiM0MzsyMjMsMTAgQEAgc3RhdGljIG5ldGRldl90eF90IHdpbGNfd2ZpX21vbl94bWl0KHN0cnVjdCBza19idWZmICpza2IsCiAJfQogCiAJcmV0dXJuIHJldDsKJiM0MzsKJiM0Mztkcm9wOgomIzQzOwlkZXZfa2ZyZWVfc2tiKHNrYik7CiYjNDM7CXJldHVybiBORVRERVZfVFhfT0s7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgd2lsY193ZmlfbmV0ZGV2X29wcyA9IHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg0NAoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDE3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIGB3aWxjX3dmaV9tb25feG1pdGAgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgd2lsY193ZmlfbW9uX3htaXRgIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jYC4gUmlnaHQsIHRoYXQmIzM5O3MgdGhlIGRyaXZlciBmb3IgdGhlIE1pY3JvY2hpcCBXSUxDMTAwMCB3aXJlbGVzcyBjaGlwcy4gTXkgZmlyc3QgcXVlc3Rpb24gaXMgYWx3YXlzIHdoZXRoZXIgdGhpcyBkcml2ZXIgaXMgZXZlbiAqcmVhY2hhYmxlKiBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBUaGVzZSBoYXJkd2FyZS1zcGVjaWZpYyB3aXJlbGVzcyBkcml2ZXJzLCBsaWtlIHRoZSB3aWxjMTAwMCwgdXN1YWxseSBkZXBlbmQgb24gdGhlIHBoeXNpY2FsIGhhcmR3YXJlIGJlaW5nIHByZXNlbnQsIHdoaWNoIHBvc2VzIGEgaHVnZSBodXJkbGUgZm9yIGZ1enppbmcgYW5kIHRlc3RpbmcuCgpJIG5lZWQgdG8gcXVpY2tseSBmaWd1cmUgb3V0IGlmIHRoaXMgaXMgc29tZSBraW5kIG9mIHNvZnR3YXJlLWVtdWxhdGVkIHZlcnNpb24gb2YgdGhlIGhhcmR3YXJlLCBvciBpZiB0aGVyZSYjMzk7cyBhbnkgY2xldmVyIHdheSB0byBtYWtlIGl0IHdvcmsgd2l0aG91dCB0aGUgYWN0dWFsIGNoaXAuIEkgcmVtZW1iZXIgc3l6a2FsbGVyIGhhcyBzb21lIHBhY2tldCBpbmplY3Rpb24gY2FwYWJpbGl0aWVzIGZvciBuZXQgZGV2aWNlcywgYnV0IHRoYXQgd29uJiMzOTt0IGhlbHAgaWYgdGhlIGRldmljZSBpdHNlbGYgY2FuJiMzOTt0IGV2ZW4gYmUgaW5zdGFudGlhdGVkIGluIHRoZSBmaXJzdCBwbGFjZSwgb3IgYm91bmQgdG8gYSBuZXR3b3JrIG5hbWVzcGFjZS4gU28sIGJlZm9yZSBJIGdvIGRvd24gdGhhdCByYWJiaXQgaG9sZSwgSSBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoaXMgZHJpdmVyLiBMZXQgbWUgZGlnIGludG8gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9LY29uZmlnYC4gSG9wZWZ1bGx5LCB0aGF0IHdpbGwgZ2l2ZSBtZSBzb21lIGNsdWVzIGFzIHRvIHRoZSBkcml2ZXImIzM5O3MgZGVwZW5kZW5jaWVzIGFuZCBjb25maWd1cmF0aW9uIG9wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG4gICAyOlx0Y29uZmlnIFdJTEMxMDAwXG4gICAzOlx0XHR0cmlzdGF0ZVxuICAgNDpcdFx0aGVscFxuICAgNTpcdFx0ICBBZGQgc3VwcG9ydCBmb3IgdGhlIEF0bWVsIFdJTEMxMDAwIDgwMi4xMSBiL2cvbiBTb0MuXG4gICA2Olx0XHQgIFRoaXMgcHJvdmlkZXMgV2ktRkkgb3ZlciBhbiBTRElPIG9yIFNQSSBpbnRlcmZhY2UsIGFuZFxuICAgNzpcdFx0ICBpcyB1c3VhbGx5IGZvdW5kIGluIElvVCBkZXZpY2VzLlxuICAgODpcdFxuICAgOTpcdFx0ICBUaGlzIG1vZHVsZSBvbmx5IHN1cHBvcnQgSUVFRSA4MDIuMTFuIFdpRmkuXG4gIDEwOlx0XG4gIDExOlx0Y29uZmlnIFdJTEMxMDAwX1NESU9cbiAgMTI6XHRcdHRyaXN0YXRlIFwmIzM0O0F0bWVsIFdJTEMxMDAwIFNESU8gKFdpRmkgb25seSlcJiMzNDtcbiAgMTM6XHRcdGRlcGVuZHMgb24gQ0ZHODAyMTEgXHUwMDI2XHUwMDI2IElORVQgXHUwMDI2XHUwMDI2IE1NQ1xuICAxNDpcdFx0c2VsZWN0IFdJTEMxMDAwXG4gIDE1Olx0XHRoZWxwXG4gIDE2Olx0XHQgIFRoaXMgbW9kdWxlIGFkZHMgc3VwcG9ydCBmb3IgdGhlIFNESU8gaW50ZXJmYWNlIG9mIGFkYXB0ZXJzIHVzaW5nXG4gIDE3Olx0XHQgIFdJTEMxMDAwIGNoaXBzZXQuIFRoZSBBdG1lbCBXSUxDMTAwMCBTRElPIGlzIGEgZnVsbCBzcGVlZCBpbnRlcmZhY2UuXG4gIDE4Olx0XHQgIEl0IG1lZXRzIFNESU8gY2FyZCBzcGVjaWZpY2F0aW9uIHZlcnNpb24gMi4wLiBUaGUgaW50ZXJmYWNlIHN1cHBvcnRzXG4gIDE5Olx0XHQgIHRoZSAxLWJpdC80LWJpdCBTRCB0cmFuc2ZlciBtb2RlIGF0IHRoZSBjbG9jayByYW5nZSBvZiAwLTUwIE1Iei5cbiAgMjA6XHRcdCAgVGhlIGhvc3QgY2FuIHVzZSB0aGlzIGludGVyZmFjZSB0byByZWFkIGFuZCB3cml0ZSBmcm9tIGFueSByZWdpc3RlclxuICAyMTpcdFx0ICB3aXRoaW4gdGhlIGNoaXAgYXMgd2VsbCBhcyBjb25maWd1cmUgdGhlIFdJTEMxMDAwIGZvciBkYXRhIERNQS5cbiAgMjI6XHRcdCAgVG8gdXNlIHRoaXMgaW50ZXJmYWNlLCBwaW45IChTRElPX1NQSV9DRkcpIG11c3QgYmUgZ3JvdW5kZWQuIFNlbGVjdFxuICAyMzpcdFx0ICB0aGlzIGlmIHlvdXIgcGxhdGZvcm0gaXMgdXNpbmcgdGhlIFNESU8gYnVzLlxuICAyNDpcdFxuICAyNTpcdGNvbmZpZyBXSUxDMTAwMF9TUElcbiAgMjY6XHRcdHRyaXN0YXRlIFwmIzM0O0F0bWVsIFdJTEMxMDAwIFNQSSAoV2lGaSBvbmx5KVwmIzM0O1xuICAyNzpcdFx0ZGVwZW5kcyBvbiBDRkc4MDIxMSBcdTAwMjZcdTAwMjYgSU5FVCBcdTAwMjZcdTAwMjYgU1BJXG4gIDI4Olx0XHRzZWxlY3QgV0lMQzEwMDBcbiAgMjk6XHRcdHNlbGVjdCBDUkM3XG4gIDMwOlx0XHRzZWxlY3QgQ1JDX0lUVV9UXG4gIDMxOlx0XHRoZWxwXG4gIDMyOlx0XHQgIFRoaXMgbW9kdWxlIGFkZHMgc3VwcG9ydCBmb3IgdGhlIFNQSSBpbnRlcmZhY2Ugb2YgYWRhcHRlcnMgdXNpbmdcbiAgMzM6XHRcdCAgV0lMQzEwMDAgY2hpcHNldC4gVGhlIEF0bWVsIFdJTEMxMDAwIGhhcyBhIFNlcmlhbCBQZXJpcGhlcmFsXG4gIDM0Olx0XHQgIEludGVyZmFjZSAoU1BJKSB0aGF0IG9wZXJhdGVzIGFzIGEgU1BJIHNsYXZlLiBUaGlzIFNQSSBpbnRlcmZhY2UgY2FuXG4gIDM1Olx0XHQgIGJlIHVzZWQgZm9yIGNvbnRyb2wgYW5kIGZvciBzZXJpYWwgSS9PIG9mIDgwMi4xMSBkYXRhLiBUaGUgU1BJIGlzIGFcbiAgMzY6XHRcdCAgZnVsbC1kdXBsZXggc2xhdmUgc3luY2hyb25vdXMgc2VyaWFsIGludGVyZmFjZSB0aGF0IGlzIGF2YWlsYWJsZVxuICAzNzpcdFx0ICBpbW1lZGlhdGVseSBmb2xsb3dpbmcgcmVzZXQgd2hlbiBwaW4gOSAoU0RJT19TUElfQ0ZHKSBpcyB0aWVkIHRvXG4gIDM4Olx0XHQgIFZERElPLiBTZWxlY3QgdGhpcyBpZiB5b3VyIHBsYXRmb3JtIGlzIHVzaW5nIHRoZSBTUEkgYnVzLlxuICAzOTpcdFxuICA0MDpcdGNvbmZpZyBXSUxDMTAwMF9IV19PT0JfSU5UUlxuICA0MTpcdFx0Ym9vbCBcJiMzNDtXSUxDMTAwMCBvdXQgb2YgYmFuZCBpbnRlcnJ1cHRcJiMzNDtcbiAgNDI6XHRcdGRlcGVuZHMgb24gV0lMQzEwMDBfU0RJT1xuICA0MzpcdFx0aGVscFxuICA0NDpcdFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIG91dC1vZi1iYW5kIGludGVycnVwdCBzdXBwb3J0IGZvciB0aGUgV0lMQzEwMDBcbiAgNDU6XHRcdCAgY2hpcHNldC4gVGhpcyBPT0IgaW50ZXJydXB0IGlzIGludGVuZGVkIHRvIHByb3ZpZGUgYSBmYXN0ZXIgaW50ZXJydXB0XG4gIDQ2Olx0XHQgIG1lY2hhbmlzbSBmb3IgU0RJTyBob3N0IGNvbnRyb2xsZXJzIHRoYXQgZG9uJiMzOTt0IHN1cHBvcnQgU0RJTyBpbnRlcnJ1cHQuXG4gIDQ3Olx0XHQgIFNlbGVjdCB0aGlzIG9wdGlvbiBJZiB0aGUgU0RJTyBob3N0IGNvbnRyb2xsZXIgaW4geW91ciBwbGF0Zm9ybVxuICA0ODpcdFx0ICBkb2VzbiYjMzk7dCBzdXBwb3J0IFNESU8gdGltZSBkaXZpc2lvbiBpbnRlcnJ1cHQuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDIxMwoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDI1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBBdG1lbCBXSUxDMTAwMCBEcml2ZXIgaW4gUUVNVSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBBdG1lbCBXSUxDMTAwMCBkcml2ZXIsIHNwZWNpZmljYWxseSBmb3IgU0RJTy9TUEkuIFRoZSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGNhbiBJIGluc3RhbnRpYXRlIHRoaXMgdGhpbmcgd2l0aGluIGEgUUVNVSBlbnZpcm9ubWVudD8gR2VuZXJhbGx5LCBJJiMzOTtkIGV4cGVjdCBTRElPIGFuZCBTUEkgZGV2aWNlcyB0byBiZSB0cmlja3kg4oCTIHR5cGljYWxseSwgeW91IG5lZWQgdG8gbW9jayB0aGVtLCB3aGljaCBpcyBwb3NzaWJsZSwgYnV0IHVzdWFsbHksIHRoYXQgbWVhbnMgcGh5c2ljYWwgaGFyZHdhcmUgb3IgdmVyeSBzcGVjaWZpYyBib2FyZCBlbXVsYXRpb24uCgpXYWl0IGEgc2Vjb25kLCB0aG91Z2guLi4gaXNuJiMzOTt0IHRoZXJlIHNvbWV0aGluZyBhYm91dCBzeXprYWxsZXI/IFllYWgsIGl0IHN1cHBvcnRzIGluamVjdGluZyBkZXZpY2VzIHZpYSBgbWFjODAyMTFfaHdzaW1gLCBidXQgdGhpcyBpcyBhICpzcGVjaWZpYyogZHJpdmVyLCB0aGUgV0lMQzEwMDAuIFNvIGhvdyYjMzk7cyB0aGlzIGdvaW5nIHRvIHdvcms/CgpIb2xkIG9uLCBJIHNlZSBhIHN5emthbGxlciByZXBvcnQsICYjMzQ7c3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3JiMzNDsuIFRoYXQmIzM5O3MgaW50ZXJlc3RpbmcsIHRoZSBhdXRob3IgaXMgaWRlbnRpZmllZCBhcyBzeXotY2x1c3Rlci4gQnV0IHRoZW4sIHRoZSBjb21taXQgc2F5cyB0aGUgcGF0Y2ggaXMgKnVuZGVyIHJldmlldyosIHlldCBzeXprYWxsZXIgZm91bmQgYSBidWc/IFRoYXQgc2VlbXMgY29udHJhZGljdG9yeS4gTGV0JiMzOTtzIHNlZSBpZiBzeXprYWxsZXIgY2FuIGV2ZW4gKnJlYWNoKiB0aGlzIGRyaXZlci4KCkhtbSwgc3l6a2FsbGVyICpkb2VzKiBoYXZlIG1ldGhvZHMgZm9yIGNyZWF0aW5nIG5ldCBkZXZpY2VzLiBNYXliZSB0aGUgV0lMQzEwMDAgZHJpdmVyIHJlZ2lzdGVycyBhIG5ldCBkZXZpY2U/IElmIHNvLCBjb3VsZCBJIGNyZWF0ZSBpdCB1c2luZyBuZXRsaW5rIGNvbW1hbmRzLCBsaWtlIGBpcCBsaW5rIGFkZCB0eXBlIC4uLmA/IE9yIGlzIGl0IHBlcmhhcHMgYSB2aXJ0dWFsIGRldmljZT8KCk9rYXksIGxldCBtZSBjaGVjayBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jYC4gSSYjMzk7bGwgc3RhcnQgd2l0aCBgd2lsY193ZmlfbW9uX3htaXRgIGFuZCBzZWUgd2hhdCBpdCYjMzk7cyBkb2luZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt3aWxjX3dmaV9tb25feG1pdCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmM9MTE1PXN0YXRpYyBpbnQgbW9uX21nbXRfdHgoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgY29uc3QgdTggKmJ1Ziwgc2l6ZV90IGxlbilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMTQxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jOjE0MjpzdGF0aWMgbmV0ZGV2X3R4X3Qgd2lsY193ZmlfbW9uX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYy0xNDMtXHRcdFx0XHQgICAgIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jPTIzMj1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHdpbGNfd2ZpX25ldGRldl9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmM6MjMzOlx0Lm5kb19zdGFydF94bWl0ICAgICAgICAgPSB3aWxjX3dmaV9tb25feG1pdCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYy0yMzQtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTE0MgoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDMyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLgoKKipEaXZpbmcgaW50byB0aGUgTmV0d29yayBEcml2ZXImIzM5O3MgVHJhbnNtaXNzaW9uIFBhdGgqKgoKUmlnaHQsIHNvIEkmIzM5O20gbG9va2luZyBhdCBgbmRvX3N0YXJ0X3htaXRgLiBUaGF0JiMzOTtzIHRoZSBmdW5jdGlvbiBjYWxsZWQgd2l0aGluIHRoZSBgd2lsY193ZmlfbmV0ZGV2X29wc2Agc3RydWN0dXJlIHRvIGhhbmRsZSB0cmFuc21pc3Npb24gZnJvbSB0aGUgd2lyZWxlc3MgY2FyZC4gVGhhdCYjMzk7cyBhIGtleSBlbnRyeSBwb2ludCwgdGhlIGNyaXRpY2FsIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIGEgcGFja2V0IG5lZWRzIHRvIGdvIG91dCBvdmVyIHRoZSBhaXIuIEJ1dCwgZmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBsYXJnZXIgY29udGV4dC4gSG93IGlzIHRoaXMgbmV0d29yayBkZXZpY2UsIHRoZSB0aGluZyB0aGF0IGhvdXNlcyBhbGwgdGhlc2Ugb3BlcmF0aW9ucywgYWN0dWFsbHkgY3JlYXRlZCBpbiB0aGUgZmlyc3QgcGxhY2U/IFdoZXJlIGRvZXMgYHdpbGNfd2ZpX25ldGRldl9vcHNgIGdldCBwb3B1bGF0ZWQ/IElzIGl0IGR1cmluZyB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1vZHVsZSwgd2hlbiB0aGUgZGV2aWNlIHJlZ2lzdGVycyB3aXRoIHRoZSBrZXJuZWwsIG9yIHNvbWUgb3RoZXIgcGFydCBvZiB0aGUgYm9vdCBwcm9jZXNzPyBLbm93aW5nIHRoaXMgc2hvdWxkIGdpdmUgbWUgYmV0dGVyIGluc2lnaHQgaW50byB0aGUgd2hvbGUgZHJpdmVyJiMzOTtzIGluaXRpYWxpemF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3dpbGNfd2ZpX25ldGRldl9vcHMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jPTE0Mj1zdGF0aWMgbmV0ZGV2X3R4X3Qgd2lsY193ZmlfbW9uX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMjMxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jOjIzMjpzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHdpbGNfd2ZpX25ldGRldl9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMjMzLVx0Lm5kb19zdGFydF94bWl0ICAgICAgICAgPSB3aWxjX3dmaV9tb25feG1pdCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmM9MjM3PXN0cnVjdCBuZXRfZGV2aWNlICp3aWxjX3dmaV9pbml0X21vbl9pbnRlcmZhY2Uoc3RydWN0IHdpbGMgKndsLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYy0yNTItXHRzdHJzY3B5KHdsLVx1MDAzZW1vbml0b3JfZGV2LVx1MDAzZW5hbWUsIG5hbWUsIElGTkFNU0laKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYzoyNTM6XHR3bC1cdTAwM2Vtb25pdG9yX2Rldi1cdTAwM2VuZXRkZXZfb3BzID0gXHUwMDI2d2lsY193ZmlfbmV0ZGV2X29wcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYy0yNTQtXHR3bC1cdTAwM2Vtb25pdG9yX2Rldi1cdTAwM2VuZWVkc19mcmVlX25ldGRldiA9IHRydWU7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTc0OAoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDI4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBgd2lsY193ZmlfaW5pdF9tb25faW50ZXJmYWNlYCBGdW5jdGlvbioqCgpBbHJpZ2h0LCBzbyBgd2lsY193ZmlfaW5pdF9tb25faW50ZXJmYWNlYCBpcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhlIG5ldHdvcmsgZGV2aWNlLCB0aGUgY29yZSBvZiB0aGUgbW9uaXRvcmluZyBpbnRlcmZhY2UuIE15IGZpcnN0IGluc3RpbmN0LCBhcyBhbHdheXMsIGlzIHRvIHVuZGVyc3RhbmQgaXRzIHBsYWNlIGluIHRoZSBzeXN0ZW0uIFRoZSBuZXh0IHN0ZXAgaXMgY2xlYXI6IGxldCYjMzk7cyB0cmFjZSBpdHMgY2FsbCBncmFwaC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgYW5kIGhvdyB0aGlzIGZ1bmN0aW9uIGlzIGludm9rZWQuIEtub3dpbmcgdGhlIGNhbGxpbmcgY29udGV4dCBpcyBjcnVjaWFsLiBXaGF0IHRyaWdnZXJzIHRoaXMgY3JlYXRpb24/IElzIGl0IG9uIG1vZHVsZSBsb2FkLCBzcGVjaWZpYyBldmVudHMsIG9yIHNvbWV0aGluZyBlbHNlIGVudGlyZWx5PyBBIHF1aWNrIGNvZGUgZGl2ZSBzaG91bGQgcmV2ZWFsIHRoZSByZWxldmFudCBjYWxsIHNpdGVzLiBUaGUgZ29hbCBpcyB0byBmdWxseSBncmFzcCB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgYW5kIGRlcGVuZGVuY2llcyBmb3IgdGhpcyBwYXJ0aWN1bGFyIG1vbml0b3JpbmcgaW50ZXJmYWNlLiBVbmRlcnN0YW5kaW5nIHRoZSBpbml0aWFsIGNvbnRleHQgaXMgdml0YWwgdG8gdW5kZXJzdGFuZCB0aGUgbW9uaXRvcmluZyBpbnRlcmZhY2UmIzM5O3MgbGlmZWN5Y2xlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt3aWxjX3dmaV9pbml0X21vbl9pbnRlcmZhY2UmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9MTUyMj1zdGF0aWMgc3RydWN0IHdpcmVsZXNzX2RldiAqYWRkX3ZpcnR1YWxfaW50ZihzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTE1NTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxNTUyOlx0XHRuZGV2ID0gd2lsY193ZmlfaW5pdF9tb25faW50ZXJmYWNlKHdsLCBuYW1lLCB2aWYtXHUwMDNlbmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xNTUzLVx0XHRpZiAobmRldikge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5oPTE3PXZvaWQgd2lsY193ZmlfZGVpbml0X21vbl9pbnRlcmZhY2Uoc3RydWN0IHdpbGMgKndsLCBib29sIHJ0bmxfbG9ja2VkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5oOjE4OnN0cnVjdCBuZXRfZGV2aWNlICp3aWxjX3dmaV9pbml0X21vbl9pbnRlcmZhY2Uoc3RydWN0IHdpbGMgKndsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmgtMTktXHRcdFx0XHRcdCAgICAgICBjb25zdCBjaGFyICpuYW1lLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYz0yMzI9c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyB3aWxjX3dmaV9uZXRkZXZfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYy0yMzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmM6MjM3OnN0cnVjdCBuZXRfZGV2aWNlICp3aWxjX3dmaV9pbml0X21vbl9pbnRlcmZhY2Uoc3RydWN0IHdpbGMgKndsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jLTIzOC1cdFx0XHRcdFx0ICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY0NzUKCQkJCQkJCW91dHB1dDogMTYKCQkJCQkJCXRob3VnaHRzOiAzMzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBgYWRkX3ZpcnR1YWxfaW50ZmAgQ2FsbCBQYXRoKioKCk9rYXksIHNvIGBhZGRfdmlydHVhbF9pbnRmYCBpcyBhIGBjZmc4MDIxMWAgY2FsbGJhY2suIFRoYXQgbWVhbnMgaWYgdGhlIGRldmljZSBpcyBwcmVzZW50LCBzeXprYWxsZXIgKmNvdWxkKiB1c2UgbmV0bGluayAoYG5sODAyMTFgKSB0byBjcmVhdGUgYSBtb25pdG9yIGludGVyZmFjZSBhbmQgdGhlbiBpbmplY3QgcGFja2V0cywgd2hpY2ggc2hvdWxkIGxlYWQgdG8gYHdpbGNfd2ZpX21vbl94bWl0YC4gVGhlIGtleSBxdWVzdGlvbiBpczogaXMgdGhlIGB3aWxjMTAwMGAgZGV2aWNlIGV2ZW4gcHJlc2VudCBpbiB0aGlzIHZpcnR1YWxpemVkIGVudmlyb25tZW50PwoKVGhpcyBkcml2ZXImIzM5O3MgZm9yIGFuIFNESU8vU1BJIGRldmljZSwgd2hpY2ggcmFpc2VzIGEgcmVkIGZsYWcuIFVubGVzcyB0aGVyZSYjMzk7cyBzb21lIGtpbmQgb2YgbW9ja2luZyBtZWNoYW5pc20sIHRoZSBkcml2ZXIgKndvbiYjMzk7dCogcHJvYmUsIGFuZCB0aGF0IGBhZGRfdmlydHVhbF9pbnRmYCBmdW5jdGlvbiBjYWxsIGlzIGdvaW5nIHRvIGJlIHVucmVhY2hhYmxlIGJlY2F1c2UgdGhlIGRyaXZlciBkb2VzbiYjMzk7dCByZWdpc3RlciBhIFdpLUZpIHBoeXNpY2FsIGRldmljZSAoYHdpcGh5YCkuIFNvLCBJIG5lZWQgdG8gaW52ZXN0aWdhdGUgYW55IHBvdGVudGlhbCBtb2NraW5nIGNhcGFiaWxpdGllcyBvciBzb2Z0d2FyZSBidXMgcHJvYmluZyBwb3NzaWJpbGl0aWVzLgoKU0RJTyBhbmQgU1BJIGRldmljZXMgYXJlIHR5cGljYWxseSBhYnNlbnQgaW4gYSBzdGFuZGFyZCB4ODYgUUVNVSBzZXR1cCwgdW5sZXNzIGV4cGxpY2l0bHkgY29uZmlndXJlZCwgYW5kIHN5emthbGxlciwgdG8gbXkga25vd2xlZGdlLCBkb2VzbiYjMzk7dCBoYXZlIGEgZ2VuZXJpYyB3YXkgdG8gbW9jayB0aGVzZS4gVW5sZXNzLi4uIGlzIHRoZXJlIGEgc3l6a2FsbGVyIHBzZXVkby1kZXZpY2UsIG9yIGlzIGl0IGEgVVNCIGRldmljZSBtYXNxdWVyYWRpbmc/IExldCYjMzk7cyBjaGVjay4uLiBubywgdGhlIEtjb25maWcgb3B0aW9ucyBzcGVjaWZ5IFNESU8gYW5kIFNQSS4KClJpZ2h0LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBzeXprYWxsZXImIzM5O3MgZGV2aWNlIGluamVjdGlvbiBjYXBhYmlsaXRpZXMuIENhbiBzeXprYWxsZXIgcHJvYmUgU1BJIG9yIFNESU8gZGV2aWNlcywgcGVyaW9kPyBJIGtub3cgaXQgaGFzIHNvbWUgVVNCIGFuZCBQQ0kgZGV2aWNlIGluamVjdGlvbiBmZWF0dXJlcywgYnV0IEkgZG9uJiMzOTt0IHJlY2FsbCBzZWVpbmcgYW55IGdlbmVyaWMgc3VwcG9ydCBmb3IgU0RJTyBvciBTUEkuCgpIb2xkIG9uLi4uIHBlcmhhcHMgdGhlcmUmIzM5O3MgYSB3b3JrYXJvdW5kPyBJIG5lZWQgdG8gZXhwbG9yZSBpZiB0aGVyZSYjMzk7cyBhbnkgb3RoZXIgYXZlbnVlIHRvIHRyaWdnZXIgdGhpcyBiZWhhdmlvci4gTGV0IG1lIHNlZSBpZiB0aGVyZSBhcmUgYW55IGV4aXN0aW5nIHN5emthbGxlciBkZXNjcmlwdGlvbnMgZm9yIHdpbGMxMDAwLiBUaGF0JiMzOTtzIHRoZSBsb2dpY2FsIG5leHQgc3RlcC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7d2lsYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjEyMCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuLm1haWxtYXA9NDkzPUtyenlzenRvZiBLb3psb3dza2kgXHUwMDNja3J6a0BrZXJuZWwub3JnXHUwMDNlIFx1MDAzY2tyenlzenRvZi5rb3psb3dza2lAbGluYXJvLm9yZ1x1MDAzZVxuLm1haWxtYXA6NDk0OktyenlzenRvZiBXaWxjennFhHNraSBcdTAwM2Nrd2lsY3p5bnNraUBrZXJuZWwub3JnXHUwMDNlIFx1MDAzY2tyenlzenRvZi53aWxjenluc2tpQGxpbnV4LmNvbVx1MDAzZVxuLm1haWxtYXA6NDk1OktyenlzenRvZiBXaWxjennFhHNraSBcdTAwM2Nrd2lsY3p5bnNraUBrZXJuZWwub3JnXHUwMDNlIFx1MDAzY2t3QGxpbnV4LmNvbVx1MDAzZVxuLm1haWxtYXAtNDk2LUtzaGl0aXogR29kYXJhIFx1MDAzY3F1aWNfa2dvZGFyYUBxdWljaW5jLmNvbVx1MDAzZSBcdTAwM2NrZ29kYXJhQGNvZGVhdXJvcmEub3JnXHUwMDNlXG4tLVxuLm1haWxtYXA9NTY3PU1hdCBNYXJ0aW5lYXUgXHUwMDNjbWFydGluZWF1QGtlcm5lbC5vcmdcdTAwM2UgXHUwMDNjbWF0aGV3bUBjb2RlYXVyb3JhLm9yZ1x1MDAzZVxuLm1haWxtYXA6NTY4Ok1hdHRoZXcgV2lsY294IFx1MDAzY3dpbGx5QGluZnJhZGVhZC5vcmdcdTAwM2UgXHUwMDNjbWF0dGhldy5yLndpbGNveEBpbnRlbC5jb21cdTAwM2Vcbi5tYWlsbWFwLTU2OS1NYXR0aGV3IFdpbGNveCBcdTAwM2N3aWxseUBpbmZyYWRlYWQub3JnXHUwMDNlIFx1MDAzY21hdHRoZXdAd2lsLmN4XHUwMDNlXG4ubWFpbG1hcDo1NzA6TWF0dGhldyBXaWxjb3ggXHUwMDNjd2lsbHlAaW5mcmFkZWFkLm9yZ1x1MDAzZSBcdTAwM2NtYXdpbGNveEBsaW51eG9uaHlwZXJ2LmNvbVx1MDAzZVxuLm1haWxtYXA6NTcxOk1hdHRoZXcgV2lsY294IFx1MDAzY3dpbGx5QGluZnJhZGVhZC5vcmdcdTAwM2UgXHUwMDNjbWF3aWxjb3hAbWljcm9zb2Z0LmNvbVx1MDAzZVxuLm1haWxtYXAtNTcyLU1hdHRoZXcgV2lsY294IFx1MDAzY3dpbGx5QGluZnJhZGVhZC5vcmdcdTAwM2UgXHUwMDNjd2lsbHlAZGViaWFuLm9yZ1x1MDAzZVxuLS1cbi5tYWlsbWFwPTg1OD1TdmVuIFBldGVyIFx1MDAzY3N2ZW5Aa2VybmVsLm9yZ1x1MDAzZSBcdTAwM2NzdmVuQHN2ZW5wZXRlci5kZXZcdTAwM2Vcbi5tYWlsbWFwOjg1OTpTenltb24gV2lsY3playBcdTAwM2Nzd2lsY3play5seEBnbWFpbC5jb21cdTAwM2UgXHUwMDNjc3p5bW9ud2lsY3pla0BnbXguY29tXHUwMDNlXG4ubWFpbG1hcC04NjAtVGFrYXNoaSBZT1NISUkgXHUwMDNjdGFrYXNoaS55b3NoaWkuempAcmVuZXNhcy5jb21cdTAwM2Vcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWM6MTpXaGF0Olx0XHQvc3lzL2tlcm5lbC9kZWJ1Zy93aWxjb19lYy9oMV9ncGlvXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWMtMi1EYXRlOlx0XHRBcHJpbCAyMDE5XG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjPTQ9RGVzY3JpcHRpb246XG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjLTEzLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjOjE0OldoYXQ6XHRcdC9zeXMva2VybmVsL2RlYnVnL3dpbGNvX2VjL3Jhd1xuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjLTE1LURhdGU6XHRcdEphbnVhcnkgMjAxOVxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3RpbmcvZGVidWdmcy13aWxjby1lYz0xNz1EZXNjcmlwdGlvbjpcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWMtMjQtXHRcdEZvciB3cml0aW5nLCBieXRlcyAwLTEgaW5kaWNhdGUgdGhlIG1lc3NhZ2UgdHlwZSwgb25lIG9mIGVudW1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3RpbmcvZGVidWdmcy13aWxjby1lYzoyNTpcdFx0d2lsY29fZWNfbXNnX3R5cGUuIEJ5dGUgMiYjNDM7IGNvbnNpc3Qgb2YgdGhlIGRhdGEgcGFzc2VkIGluIHRoZVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjLTI2LVx0XHRyZXF1ZXN0LCBzdGFydGluZyBhdCBNQk9YWzBdLiBBdCBsZWFzdCB0aHJlZSBieXRlcyBhcmUgcmVxdWlyZWRcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWMtMzQtXHRcdCAgICAvLyBNQk9YID0gWzM4LCAwMCwgMDMsIDAwXVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjOjM1Olx0XHQgICAgJCBlY2hvIDAwIGYwIDM4IDAwIDAzIDAwIFx1MDAzZSAvc3lzL2tlcm5lbC9kZWJ1Zy93aWxjb19lYy9yYXdcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3RpbmcvZGVidWdmcy13aWxjby1lYy0zNi1cdFx0ICAgIC8vIFZpZXcgdGhlIHJlc3VsdC4gVGhlIGRlY29kZWQgQVNDSUkgcmVzdWx0IFwmIzM0OzEyLzIxLzE4XCYjMzQ7IGlzXG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjLTM4LVx0XHQgICAgLy8gQ29ycmVzcG9uZHMgd2l0aCBNQk9YID0gWzAwLCAwMCwgMzEsIDMyLCAyZiwgMzIsIDMxLCAzOCwgLi4uXVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjOjM5Olx0XHQgICAgJCBjYXQgL3N5cy9rZXJuZWwvZGVidWcvd2lsY29fZWMvcmF3XG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWMtNDAtXHRcdCAgICAwMCAwMCAzMSAzMiAyZiAzMiAzMSAyZiAzMSAzOCAwMCAzOCAwMCAwMSAwMCAyZiAwMCAgLi4xMi8yMS8xOC44Li4uXG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1wb3dlci13aWxjbzoxOldoYXQ6XHRcdC9zeXMvY2xhc3MvcG93ZXJfc3VwcGx5L3dpbGNvLWNoYXJnZXIvY2hhcmdlX3R5cGVcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtcG93ZXItd2lsY28tMi1EYXRlOlx0XHRBcHJpbCAyMDE5XG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1wb3dlci13aWxjbz00PURlc2NyaXB0aW9uOlxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtcG93ZXItd2lsY28tMjctXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLXBvd2VyLXdpbGNvOjI4OldoYXQ6XHRcdC9zeXMvY2xhc3MvcG93ZXJfc3VwcGx5L3dpbGNvLWNoYXJnZXIvY2hhcmdlX2NvbnRyb2xfc3RhcnRfdGhyZXNob2xkXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLXBvd2VyLXdpbGNvLTI5LURhdGU6XHRcdEFwcmlsIDIwMTlcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLXBvd2VyLXdpbGNvPTMxPURlc2NyaXB0aW9uOlxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtcG93ZXItd2lsY28tMzQtXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLXBvd2VyLXdpbGNvOjM1OldoYXQ6XHRcdC9zeXMvY2xhc3MvcG93ZXJfc3VwcGx5L3dpbGNvLWNoYXJnZXIvY2hhcmdlX2NvbnRyb2xfZW5kX3RocmVzaG9sZFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1wb3dlci13aWxjby0zNi1EYXRlOlx0XHRBcHJpbCAyMDE5XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Zpcm13YXJlL3RoZWFkLHRoMTUyMC1hb24ueWFtbD0yMT1tYWludGFpbmVyczpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9maXJtd2FyZS90aGVhZCx0aDE1MjAtYW9uLnlhbWw6MjI6ICAtIE1pY2hhbCBXaWxjenluc2tpIFx1MDAzY20ud2lsY3p5bnNraUBzYW1zdW5nLmNvbVx1MDAzZVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Zpcm13YXJlL3RoZWFkLHRoMTUyMC1hb24ueWFtbC0yMy1cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWFpbGJveC90aGVhZCx0aDE1MjAtbWJveC55YW1sPTE1PW1haW50YWluZXJzOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21haWxib3gvdGhlYWQsdGgxNTIwLW1ib3gueWFtbDoxNjogIC0gTWljaGFsIFdpbGN6eW5za2kgXHUwMDNjbS53aWxjenluc2tpQHNhbXN1bmcuY29tXHUwMDNlXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWFpbGJveC90aGVhZCx0aDE1MjAtbWJveC55YW1sLTE3LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tbWMvbW1jLXB3cnNlcS1zZDg3ODcueWFtbD0xMj1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tbWMvbW1jLXB3cnNlcS1zZDg3ODcueWFtbC0xNS0gICAgICAtIG1tYy1wd3JzZXEtc2Q4Nzg3XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbW1jL21tYy1wd3JzZXEtc2Q4Nzg3LnlhbWw6MTY6ICAgICAgLSBtbWMtcHdyc2VxLXdpbGMxMDAwXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbW1jL21tYy1wd3JzZXEtc2Q4Nzg3LnlhbWwtMTctXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC0zLS0tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw9MTM9ZGVzY3JpcHRpb246XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sOjE0OiAgVGhlIHdpbGMxMDAwIGNoaXBzIGNhbiBiZSBjb25uZWN0ZWQgdmlhIFNQSSBvciBTRElPLiBUaGlzIGRvY3VtZW50XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sOjE1OiAgZGVzY3JpYmVzIHRoZSBiaW5kaW5nIHRvIGNvbm5lY3Qgd2lsYyBkZXZpY2VzLlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC0xNi1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw9MTc9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTIwLSAgICAgIC0gaXRlbXM6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sOjIxOiAgICAgICAgICAtIGNvbnN0OiBtaWNyb2NoaXAsd2lsYzMwMDBcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6MjI6ICAgICAgICAgIC0gY29uc3Q6IG1pY3JvY2hpcCx3aWxjMTAwMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDoyMzogICAgICAtIGNvbnN0OiBtaWNyb2NoaXAsd2lsYzEwMDBcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtMjQtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC0zOC0gICAgbWF4SXRlbXM6IDFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6Mzk6ICAgIGRlc2NyaXB0aW9uOiBVc2VkIGJ5IHdpbGMxMDAwLXNwaSB0byBkZXRlcm1pbmUgdGhlIEdQSU8gbGluZVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC00MC0gICAgICBjb25uZWN0ZWQgdG8gdGhlIEVOQUJMRSBsaW5lLiAgSWYgc3BlY2lmaWVkLCByZXNldC1ncGlvc1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtNDctICAgIG1heEl0ZW1zOiAxXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sOjQ4OiAgICBkZXNjcmlwdGlvbjogVXNlZCBieSB3aWxjMTAwMC1zcGkgdG8gZGV0ZXJtaW5lIHRoZSBHUElPIGxpbmVcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtNDktICAgICAgY29ubmVjdGVkIHRvIHRoZSBSRVNFVCBsaW5lLiAgVGhpcyBzaG91bGQgYmUgZGVjbGFyZWQgYXMgYW5cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sPTYxPWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtNjgtICAgICAgd2lmaUAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6Njk6ICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7bWljcm9jaGlwLHdpbGMxMDAwXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC03MC0gICAgICAgIHNwaS1tYXgtZnJlcXVlbmN5ID0gXHUwMDNjNDgwMDAwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC05MS0gICAgICB3aWZpQDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDo5MjogICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDttaWNyb2NoaXAsd2lsYzEwMDBcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTkzLSAgICAgICAgcmVnID0gXHUwMDNjMFx1MDAzZTtcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcHdtL3RoZWFkLHRoMTUyMC1wd20ueWFtbD05PW1haW50YWluZXJzOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3B3bS90aGVhZCx0aDE1MjAtcHdtLnlhbWw6MTA6ICAtIE1pY2hhbCBXaWxjenluc2tpIFx1MDAzY20ud2lsY3p5bnNraUBzYW1zdW5nLmNvbVx1MDAzZVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3B3bS90aGVhZCx0aDE1MjAtcHdtLnlhbWwtMTEtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Jlc2V0L3RoZWFkLHRoMTUyMC1yZXNldC55YW1sPTEzPW1haW50YWluZXJzOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Jlc2V0L3RoZWFkLHRoMTUyMC1yZXNldC55YW1sOjE0OiAgLSBNaWNoYWwgV2lsY3p5bnNraSBcdTAwM2NtLndpbGN6eW5za2lAc2Ftc3VuZy5jb21cdTAwM2VcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9yZXNldC90aGVhZCx0aDE1MjAtcmVzZXQueWFtbC0xNS1cbi0tXG5NQUlOVEFJTkVSUz0yMDgyMD1NOlx0TWFuaXZhbm5hbiBTYWRoYXNpdmFtIFx1MDAzY21hbmlAa2VybmVsLm9yZ1x1MDAzZVxuTUFJTlRBSU5FUlM6MjA4MjE6TTpcdEtyenlzenRvZiBXaWxjennFhHNraSBcdTAwM2Nrd2lsY3p5bnNraUBrZXJuZWwub3JnXHUwMDNlXG5NQUlOVEFJTkVSUy0yMDgyMi1SOlx0S2lzaG9uIFZpamF5IEFicmFoYW0gSSBcdTAwM2NraXNob25Aa2VybmVsLm9yZ1x1MDAzZVxuLS1cbk1BSU5UQUlORVJTPTIwODcxPU06XHRMb3JlbnpvIFBpZXJhbGlzaSBcdTAwM2NscGllcmFsaXNpQGtlcm5lbC5vcmdcdTAwM2Vcbk1BSU5UQUlORVJTOjIwODcyOk06XHRLcnp5c3p0b2YgV2lsY3p5xYRza2kgXHUwMDNja3dpbGN6eW5za2lAa2VybmVsLm9yZ1x1MDAzZVxuTUFJTlRBSU5FUlMtMjA4NzMtTTpcdE1hbml2YW5uYW4gU2FkaGFzaXZhbSBcdTAwM2NtYW5pQGtlcm5lbC5vcmdcdTAwM2Vcbi0tXG5NQUlOVEFJTkVSUz0yMDkzND1SOlx0Qmpvcm4gSGVsZ2FhcyBcdTAwM2NiaGVsZ2Fhc0Bnb29nbGUuY29tXHUwMDNlXG5NQUlOVEFJTkVSUzoyMDkzNTpSOlx0S3J6eXN6dG9mIFdpbGN6ecWEc2tpIFx1MDAzY2t3aWxjenluc2tpQGtlcm5lbC5vcmdcdTAwM2Vcbk1BSU5UQUlORVJTLTIwOTM2LUw6XHRsaW51eC1wY2lAdmdlci5rZXJuZWwub3JnXG4tLVxuTUFJTlRBSU5FUlM9MjE4NjA9UFdNIFNVQlNZU1RFTSBCSU5ESU5HUyBbUlVTVF1cbk1BSU5UQUlORVJTOjIxODYxOk06XHRNaWNoYWwgV2lsY3p5bnNraSBcdTAwM2NtLndpbGN6eW5za2lAc2Ftc3VuZy5jb21cdTAwM2Vcbk1BSU5UQUlORVJTLTIxODYyLUw6XHRsaW51eC1wd21Admdlci5rZXJuZWwub3JnXG4tLVxuTUFJTlRBSU5FUlM9MjE4Njg9UFdNIFNVQlNZU1RFTSBEUklWRVJTIFtSVVNUXVxuTUFJTlRBSU5FUlM6MjE4Njk6UjpcdE1pY2hhbCBXaWxjenluc2tpIFx1MDAzY20ud2lsY3p5bnNraUBzYW1zdW5nLmNvbVx1MDAzZVxuTUFJTlRBSU5FUlMtMjE4NzAtRjpcdGRyaXZlcnMvcHdtLyoucnNcbi0tXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaT00Mj1cdHdpZmlfcHdyc2VxOiB3aWZpX3B3cnNlcSB7XG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaTo0MzpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21tYy1wd3JzZXEtd2lsYzEwMDBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS00NC1cdFx0cmVzZXQtZ3Bpb3MgPSBcdTAwM2NcdTAwMjZwaW9BIFBJTl9QQTI3IEdQSU9fQUNUSVZFX0hJR0hcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS00NS1cdFx0cG93ZXJkb3duLWdwaW9zID0gXHUwMDNjXHUwMDI2cGlvQSBQSU5fUEEyOSBHUElPX0FDVElWRV9ISUdIXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k6NDY6XHRcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfd2lsY19wd3JzZXFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS00Ny1cdFx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k9MzQ3PVx0XHRjb25mLWNrIHtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS0zNTItXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaTozNTM6XHRwaW5jdHJsX3dpbGNfZGVmYXVsdDogd2lsY19kZWZhdWx0IHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTM1NC1cdFx0Y29uZi1pcnEge1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTM1OS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpOjM2MDpcdHBpbmN0cmxfd2lsY19wd3JzZXE6IHdpbGNfcHdyc2VxIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTM2MS1cdFx0Y29uZi1jZS1ucnN0IHtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaT0zNzQ9XHUwMDI2c2RtbWMxIHtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS0zODUtXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaTozODY6XHR3aWxjOiB3aWZpQDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2ktMzg3LVx0XHRyZWcgPSBcdTAwM2MwXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k6Mzg4Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWljcm9jaGlwLHdpbGMzMDAwXCYjMzQ7LCBcJiMzNDttaWNyb2NoaXAsd2lsYzEwMDBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS0zODktXHRcdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k6MzkwOlx0XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX3dpbGNfZGVmYXVsdFx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTM5MS1cdFx0Y2xvY2tzID0gXHUwMDNjXHUwMDI2cG1jIFBNQ19UWVBFX1NZU1RFTSA5XHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDJfaWNwLmR0cz03MDY9XHUwMDI2cXNwaTEge1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDJfaWNwLmR0cy03MDgtXHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX3FzcGkxX2RlZmF1bHRcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyX2ljcC5kdHM6NzA5Olx0c3RhdHVzID0gXCYjMzQ7ZGlzYWJsZWRcJiMzNDs7IC8qIENvbmZsaWN0IHdpdGggd2lsY19wd3JzZXEsIGZseDIgKi9cbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDJfaWNwLmR0cy03MTAtXG4tLVxuZHJpdmVycy9maXJtd2FyZS90aGVhZCx0aDE1MjAtYW9uLmMtNC0gKiBDb3B5cmlnaHQgKGMpIDIwMjQgU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC5cbmRyaXZlcnMvZmlybXdhcmUvdGhlYWQsdGgxNTIwLWFvbi5jOjU6ICogQXV0aG9yOiBNaWNoYWwgV2lsY3p5bnNraSBcdTAwM2NtLndpbGN6eW5za2lAc2Ftc3VuZy5jb21cdTAwM2VcbmRyaXZlcnMvZmlybXdhcmUvdGhlYWQsdGgxNTIwLWFvbi5jLTYtICovXG4tLVxuZHJpdmVycy9maXJtd2FyZS90aGVhZCx0aDE1MjAtYW9uLmM9MjQ1PUVYUE9SVF9TWU1CT0xfR1BMKHRoMTUyMF9hb25fZGVpbml0KTtcbmRyaXZlcnMvZmlybXdhcmUvdGhlYWQsdGgxNTIwLWFvbi5jLTI0Ni1cbmRyaXZlcnMvZmlybXdhcmUvdGhlYWQsdGgxNTIwLWFvbi5jOjI0NzpNT0RVTEVfQVVUSE9SKFwmIzM0O01pY2hhbCBXaWxjenluc2tpIFx1MDAzY20ud2lsY3p5bnNraUBzYW1zdW5nLmNvbVx1MDAzZVwmIzM0Oyk7XG5kcml2ZXJzL2Zpcm13YXJlL3RoZWFkLHRoMTUyMC1hb24uYy0yNDgtTU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O1QtSEVBRCBUSDE1MjAgQWx3YXlzLU9uIGZpcm13YXJlIHByb3RvY29sIGxpYnJhcnlcJiMzNDspO1xuLS1cbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jPTQ1PXN0YXRpYyB2b2lkIG1tY19wd3JzZXFfc2Q4Nzg3X3Bvd2VyX29mZihzdHJ1Y3QgbW1jX2hvc3QgKmhvc3QpXG4tLVxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmMtNTItXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYzo1MzpzdGF0aWMgdm9pZCBtbWNfcHdyc2VxX3dpbGMxMDAwX3ByZV9wb3dlcl9vbihzdHJ1Y3QgbW1jX2hvc3QgKmhvc3QpXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy01NC17XG4tLVxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmMtNjItXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYzo2MzpzdGF0aWMgdm9pZCBtbWNfcHdyc2VxX3dpbGMxMDAwX3Bvd2VyX29mZihzdHJ1Y3QgbW1jX2hvc3QgKmhvc3QpXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy02NC17XG4tLVxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM9NzE9c3RhdGljIGNvbnN0IHN0cnVjdCBtbWNfcHdyc2VxX29wcyBtbWNfcHdyc2VxX3NkODc4N19vcHMgPSB7XG4tLVxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmMtNzUtXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYzo3NjpzdGF0aWMgY29uc3Qgc3RydWN0IG1tY19wd3JzZXFfb3BzIG1tY19wd3JzZXFfd2lsYzEwMDBfb3BzID0ge1xuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM6Nzc6XHQucHJlX3Bvd2VyX29uID0gbW1jX3B3cnNlcV93aWxjMTAwMF9wcmVfcG93ZXJfb24sXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYzo3ODpcdC5wb3dlcl9vZmYgPSBtbWNfcHdyc2VxX3dpbGMxMDAwX3Bvd2VyX29mZixcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTc5LX07XG4tLVxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM9ODE9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbW1jX3B3cnNlcV9zZDg3ODdfb2ZfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTgyLVx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21tYy1wd3JzZXEtc2Q4Nzg3XCYjMzQ7LCAuZGF0YSA9IFx1MDAyNm1tY19wd3JzZXFfc2Q4Nzg3X29wcyB9LFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM6ODM6XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bW1jLXB3cnNlcS13aWxjMTAwMFwmIzM0OywgLmRhdGEgPSBcdTAwMjZtbWNfcHdyc2VxX3dpbGMxMDAwX29wcyB9LFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmMtODQtXHR7Lyogc2VudGluZWwgKi99LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC9LY29uZmlnPTEzPWlmIFdMQU5fVkVORE9SX01JQ1JPQ0hJUFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL0tjb25maWc6MTQ6c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9LY29uZmlnXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvS2NvbmZpZy0xNS1lbmRpZiAjIFdMQU5fVkVORE9SX01JQ1JPQ0hJUFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC9NYWtlZmlsZToyOm9iai0kKENPTkZJR19XSUxDMTAwMClcdFx0JiM0Mzs9IHdpbGMxMDAwL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZToyOm9iai0kKENPTkZJR19XSUxDMTAwMCkgJiM0Mzs9IHdpbGMxMDAwLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS0zLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjQ6d2lsYzEwMDAtb2JqcyA6PSBjZmc4MDIxMS5vIG5ldGRldi5vIG1vbi5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGUtNS1cdFx0XHRoaWYubyB3bGFuX2NmZy5vIHdsYW4ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlLTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6NzpvYmotJChDT05GSUdfV0lMQzEwMDBfU0RJTykgJiM0Mzs9IHdpbGMxMDAwLXNkaW8ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjg6d2lsYzEwMDAtc2Rpby1vYmpzICYjNDM7PSBzZGlvLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS05LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjEwOm9iai0kKENPTkZJR19XSUxDMTAwMF9TUEkpICYjNDM7PSB3aWxjMTAwMC1zcGkub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjExOndpbGMxMDAwLXNwaS1vYmpzICYjNDM7PSBzcGkub1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jPTIwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3R4cnhfc3R5cGVzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoyMTpcdHdpbGNfd2ZpX2NmZzgwMjExX21nbXRfdHlwZXNbTlVNX05MODAyMTFfSUZUWVBFU10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0yMi1cdFtOTDgwMjExX0lGVFlQRV9TVEFUSU9OXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz01Mj1zdGF0aWMgY29uc3Qgc3RydWN0IHdpcGh5X3dvd2xhbl9zdXBwb3J0IHdvd2xhbl9zdXBwb3J0ID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NTc6c3RydWN0IHdpbGNfcDJwX21nbXRfZGF0YSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01OC1cdGludCBzaXplO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTYxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjI6c3RydWN0IHdpbGNfcDJwX3B1Yl9hY3RfZnJhbWUge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjMtXHR1OCBjYXRlZ29yeTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy03MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjcyOnN0cnVjdCB3aWxjX3ZlbmRvcl9zcGVjaWZpY19pZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy03My1cdHU4IHRhZ19udW1iZXI7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo4MDpzdHJ1Y3Qgd2lsY19hdHRyX2VudHJ5IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTgxLVx0dTggIGF0dHJfdHlwZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy04NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjg2OnN0cnVjdCB3aWxjX2F0dHJfb3Blcl9jaCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy04Ny1cdHU4IGF0dHJfdHlwZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy05My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjk0OnN0cnVjdCB3aWxjX2F0dHJfY2hfbGlzdCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy05NS1cdHU4IGF0dHJfdHlwZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xMDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxMDE6c3RydWN0IHdpbGNfY2hfbGlzdF9lbGVtIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTEwMi1cdHU4IG9wX2NsYXNzO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jPTEwNz1zdGF0aWMgdm9pZCBjZmdfc2Nhbl9yZXN1bHQoZW51bSBzY2FuX2V2ZW50IHNjYW5fZXZlbnQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxMDg6XHRcdFx0ICAgIHN0cnVjdCB3aWxjX3JjdmRfbmV0X2luZm8gKmluZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxMDk6XHRcdFx0ICAgIHN0cnVjdCB3aWxjX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xMTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jPTE2Mz1zdGF0aWMgdm9pZCBjZmdfY29ubmVjdF9yZXN1bHQoZW51bSBjb25uX2V2ZW50IGNvbm5fZGlzY29ubl9ldnQsIHU4IG1hY19zdGF0dXMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxNjQ6XHRcdFx0ICAgICAgIHN0cnVjdCB3aWxjX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xNjUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTY2LVx0c3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IHByaXYtXHUwMDNlZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MTY3Olx0c3RydWN0IHdpbGNfdmlmICp2aWYgPSBuZXRkZXZfcHJpdihkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MTY4Olx0c3RydWN0IHdpbGMgKndsID0gdmlmLVx1MDAzZXdpbGM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xNjktXHRzdHJ1Y3QgaG9zdF9pZl9kcnYgKndmaV9kcnYgPSBwcml2LVx1MDAzZWhpZl9kcnY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxNzA6XHRzdHJ1Y3Qgd2lsY19jb25uX2luZm8gKmNvbm5faW5mbyA9IFx1MDAyNndmaV9kcnYtXHUwMDNlY29ubl9pbmZvO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTcxLVx0c3RydWN0IHdpcGh5ICp3aXBoeSA9IGRldi1cdTAwM2VpZWVlODAyMTFfcHRyLVx1MDAzZXdpcGh5O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTE4MC1cdFx0XHRjb25uZWN0X3N0YXR1cyA9IFdMQU5fU1RBVFVTX1VOU1BFQ0lGSUVEX0ZBSUxVUkU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxODE6XHRcdFx0d2lsY193bGFuX3NldF9ic3NpZChwcml2LVx1MDAzZWRldiwgTlVMTCwgV0lMQ19TVEFUSU9OX01PREUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTgyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTIwNi1cdFx0ZXRoX3plcm9fYWRkcihwcml2LVx1MDAzZWFzc29jaWF0ZWRfYnNzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjIwNzpcdFx0d2lsY193bGFuX3NldF9ic3NpZChwcml2LVx1MDAzZWRldiwgTlVMTCwgV0lMQ19TVEFUSU9OX01PREUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMjA4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTIyMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjIyMjpzdHJ1Y3Qgd2lsY192aWYgKndpbGNfZ2V0X3dsX3RvX3ZpZihzdHJ1Y3Qgd2lsYyAqd2wpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0yMjMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MjI0Olx0c3RydWN0IHdpbGNfdmlmICp2aWY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0yMjUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9MjMzPXN0YXRpYyBpbnQgc2V0X2NoYW5uZWwoc3RydWN0IHdpcGh5ICp3aXBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0yMzYte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MjM3Olx0c3RydWN0IHdpbGMgKndsID0gd2lwaHlfcHJpdih3aXBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoyMzg6XHRzdHJ1Y3Qgd2lsY192aWYgKnZpZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTIzOS1cdHUzMiBjaGFubmVsbnVtO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTI0My1cdHNyY3VfaWR4ID0gc3JjdV9yZWFkX2xvY2soXHUwMDI2d2wtXHUwMDNlc3JjdSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoyNDQ6XHR2aWYgPSB3aWxjX2dldF93bF90b192aWYod2wpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMjQ1LVx0aWYgKElTX0VSUih2aWYpKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMjUyLVx0d2wtXHUwMDNlb3BfY2ggPSBjaGFubmVsbnVtO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MjUzOlx0cmVzdWx0ID0gd2lsY19zZXRfbWFjX2NobmxfbnVtKHZpZiwgY2hhbm5lbG51bSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0yNTQtXHRpZiAocmVzdWx0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jPTI2MT1zdGF0aWMgaW50IHNjYW4oc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IGNmZzgwMjExX3NjYW5fcmVxdWVzdCAqcmVxdWVzdClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTI2Mi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoyNjM6XHRzdHJ1Y3Qgd2lsY192aWYgKnZpZiA9IG5ldGRldl9wcml2KHJlcXVlc3QtXHUwMDNld2Rldi1cdTAwM2VuZXRkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MjY0Olx0c3RydWN0IHdpbGNfcHJpdiAqcHJpdiA9IFx1MDAyNnZpZi1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMjY1LVx0dTMyIGk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMjg3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6Mjg4Olx0cmV0ID0gd2lsY19zY2FuKHZpZiwgV0lMQ19GV19VU0VSX1NDQU4sIHNjYW5fdHlwZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTI4OS1cdFx0XHRzY2FuX2NoX2xpc3QsIGNmZ19zY2FuX3Jlc3VsdCwgcmVxdWVzdCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9Mjk5PXN0YXRpYyBpbnQgY29ubmVjdChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTMwMS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzozMDI6XHRzdHJ1Y3Qgd2lsY192aWYgKnZpZiA9IG5ldGRldl9wcml2KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzozMDM6XHRzdHJ1Y3Qgd2lsY19wcml2ICpwcml2ID0gXHUwMDI2dmlmLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0zMDQtXHRzdHJ1Y3QgaG9zdF9pZl9kcnYgKndmaV9kcnYgPSBwcml2LVx1MDAzZWhpZl9kcnY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMzk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6Mzk2Olx0am9pbl9wYXJhbXMgPSB3aWxjX3BhcnNlX2pvaW5fYnNzX3BhcmFtKGJzcywgXHUwMDI2c21lLVx1MDAzZWNyeXB0byk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0zOTctXHRpZiAoIWpvaW5fcGFyYW1zKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDA0LVx0Y2ggPSBpZWVlODAyMTFfZnJlcXVlbmN5X3RvX2NoYW5uZWwoYnNzLVx1MDAzZWNoYW5uZWwtXHUwMDNlY2VudGVyX2ZyZXEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDA1Olx0dmlmLVx1MDAzZXdpbGMtXHUwMDNlb3BfY2ggPSBjaDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQwNi1cdGlmICh2aWYtXHUwMDNlaWZ0eXBlICE9IFdJTENfQ0xJRU5UX01PREUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0MDc6XHRcdHZpZi1cdTAwM2V3aWxjLVx1MDAzZXN0YV9jaCA9IGNoO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDA5Olx0d2lsY193bGFuX3NldF9ic3NpZChkZXYsIGJzcy1cdTAwM2Vic3NpZCwgV0lMQ19TVEFUSU9OX01PREUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDEwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQyMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjQyNDpcdHJldCA9IHdpbGNfc2V0X2pvaW5fcmVxKHZpZiwgYnNzLVx1MDAzZWJzc2lkLCBzbWUtXHUwMDNlaWUsIHNtZS1cdTAwM2VpZV9sZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDI1LVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDI2Olx0XHRuZXRkZXZfZXJyKGRldiwgXCYjMzQ7d2lsY19zZXRfam9pbl9yZXEoKTogRXJyb3JcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDI3LVx0XHRyZXQgPSAtRU5PRU5UO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDI4LVx0XHRpZiAodmlmLVx1MDAzZWlmdHlwZSAhPSBXSUxDX0NMSUVOVF9NT0RFKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDI5Olx0XHRcdHZpZi1cdTAwM2V3aWxjLVx1MDAzZXN0YV9jaCA9IFdJTENfSU5WQUxJRF9DSEFOTkVMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDMwOlx0XHR3aWxjX3dsYW5fc2V0X2Jzc2lkKGRldiwgTlVMTCwgV0lMQ19TVEFUSU9OX01PREUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDMxLVx0XHR3ZmlfZHJ2LVx1MDAzZWNvbm5faW5mby5jb25uX3Jlc3VsdCA9IE5VTEw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9NDQ4PXN0YXRpYyBpbnQgZGlzY29ubmVjdChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQ1MC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0NTE6XHRzdHJ1Y3Qgd2lsY192aWYgKnZpZiA9IG5ldGRldl9wcml2KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0NTI6XHRzdHJ1Y3Qgd2lsY19wcml2ICpwcml2ID0gXHUwMDI2dmlmLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0NTM6XHRzdHJ1Y3Qgd2lsYyAqd2lsYyA9IHZpZi1cdTAwM2V3aWxjO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDU0LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00NTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0NTg6XHRpZiAoIXdpbGMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00NTktXHRcdHJldHVybiAtRUlPO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDYwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDYxOlx0aWYgKHdpbGMtXHUwMDNlY2xvc2UpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQ2Mi1cdFx0LyogYWxyZWFkeSBkaXNjb25uZWN0ZWQgZG9uZSAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQ2Ny1cdGlmICh2aWYtXHUwMDNlaWZ0eXBlICE9IFdJTENfQ0xJRU5UX01PREUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0Njg6XHRcdHdpbGMtXHUwMDNlc3RhX2NoID0gV0lMQ19JTlZBTElEX0NIQU5ORUw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0Njk6XHR3aWxjX3dsYW5fc2V0X2Jzc2lkKHByaXYtXHUwMDNlZGV2LCBOVUxMLCBXSUxDX1NUQVRJT05fTU9ERSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00NzAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDczOlx0cmV0ID0gd2lsY19kaXNjb25uZWN0KHZpZik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00NzQtXHRpZiAocmV0ICE9IDApIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00ODMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0ODQ6c3RhdGljIGludCB3aWxjX3dmaV9jZmdfYWxsb2NhdGVfd3BhX2VudHJ5KHN0cnVjdCB3aWxjX3ByaXYgKnByaXYsIHU4IGlkeClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQ4NS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0ODY6XHRpZiAoIXByaXYtXHUwMDNld2lsY19ndGtbaWR4XSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDg3Olx0XHRwcml2LVx1MDAzZXdpbGNfZ3RrW2lkeF0gPSBremFsbG9jX29iaigqcHJpdi1cdTAwM2V3aWxjX2d0a1tpZHhdKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjQ4ODpcdFx0aWYgKCFwcml2LVx1MDAzZXdpbGNfZ3RrW2lkeF0pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00ODktXHRcdFx0cmV0dXJuIC1FTk9NRU07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDkxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDkyOlx0aWYgKCFwcml2LVx1MDAzZXdpbGNfcHRrW2lkeF0pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjQ5MzpcdFx0cHJpdi1cdTAwM2V3aWxjX3B0a1tpZHhdID0ga3phbGxvY19vYmooKnByaXYtXHUwMDNld2lsY19wdGtbaWR4XSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0OTQ6XHRcdGlmICghcHJpdi1cdTAwM2V3aWxjX3B0a1tpZHhdKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDk1LVx0XHRcdHJldHVybiAtRU5PTUVNO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTUwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjUwMTpzdGF0aWMgaW50IHdpbGNfd2ZpX2NmZ19hbGxvY2F0ZV93cGFfaWd0a19lbnRyeShzdHJ1Y3Qgd2lsY19wcml2ICpwcml2LCB1OCBpZHgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01MDIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTAzLVx0aWR4IC09IDQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo1MDQ6XHRpZiAoIXByaXYtXHUwMDNld2lsY19pZ3RrW2lkeF0pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjUwNTpcdFx0cHJpdi1cdTAwM2V3aWxjX2lndGtbaWR4XSA9IGt6YWxsb2Nfb2JqKCpwcml2LVx1MDAzZXdpbGNfaWd0a1tpZHhdKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjUwNjpcdFx0aWYgKCFwcml2LVx1MDAzZXdpbGNfaWd0a1tpZHhdKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTA3LVx0XHRcdHJldHVybiAtRU5PTUVNO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTUxMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjUxMjpzdGF0aWMgaW50IHdpbGNfd2ZpX2NmZ19jb3B5X3dwYV9pbmZvKHN0cnVjdCB3aWxjX3dmaV9rZXkgKmtleV9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTEzLVx0XHRcdFx0ICAgICAgc3RydWN0IGtleV9wYXJhbXMgKnBhcmFtcylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz01Mzc9c3RhdGljIGludCBhZGRfa2V5KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsIGludCBsaW5rX2lkLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTU0Ni1cdHU4IG9wX21vZGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo1NDc6XHRzdHJ1Y3Qgd2lsY192aWYgKnZpZiA9IG5ldGRldl9wcml2KHdkZXYtXHUwMDNlbmV0ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjU0ODpcdHN0cnVjdCB3aWxjX3ByaXYgKnByaXYgPSBcdTAwMjZ2aWYtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjU0OTpcdHN0cnVjdCB3aWxjX3dmaV9rZXkgKmtleTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTU1MC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01NTUtXHRcdCAgICBwcml2LVx1MDAzZXdkZXYuaWZ0eXBlID09IE5MODAyMTFfSUZUWVBFX1AyUF9HTykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NTU2Olx0XHRcdHN0cnVjdCB3aWxjX3dmaV9rZXkgKmtleTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTU1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjU1ODpcdFx0XHRyZXQgPSB3aWxjX3dmaV9jZmdfYWxsb2NhdGVfd3BhX2VudHJ5KHByaXYsIGtleV9pbmRleCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01NTktXHRcdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01NzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo1NzU6XHRcdFx0XHRwcml2LVx1MDAzZXdpbGNfZ3JvdXBrZXkgPSBtb2RlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTc2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NTc3Olx0XHRcdFx0a2V5ID0gcHJpdi1cdTAwM2V3aWxjX2d0a1trZXlfaW5kZXhdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTc4LVx0XHRcdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTgxLVx0XHRcdFx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NTgyOlx0XHRcdFx0XHRtb2RlID0gcHJpdi1cdTAwM2V3aWxjX2dyb3Vwa2V5IHwgV0lMQ19GV19BRVM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01ODMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo1ODQ6XHRcdFx0XHRrZXkgPSBwcml2LVx1MDAzZXdpbGNfcHRrW2tleV9pbmRleF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01ODUtXHRcdFx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NTg2Olx0XHRcdHJldCA9IHdpbGNfd2ZpX2NmZ19jb3B5X3dwYV9pbmZvKGtleSwgcGFyYW1zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTU4Ny1cdFx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTYwMi1cdFx0aWYgKCFwYWlyd2lzZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjYwMzpcdFx0XHRyZXQgPSB3aWxjX2FkZF9yeF9ndGsodmlmLCBwYXJhbXMtXHUwMDNla2V5LCBrZXlsZW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02MDQtXHRcdFx0XHRcdCAgICAgIGtleV9pbmRleCwgcGFyYW1zLVx1MDAzZXNlcV9sZW4sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjA3LVx0XHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2MDg6XHRcdFx0cmV0ID0gd2lsY19hZGRfcHRrKHZpZiwgcGFyYW1zLVx1MDAzZWtleSwga2V5bGVuLCBtYWNfYWRkcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTYwOS1cdFx0XHRcdFx0ICAgcnhfbWljLCB0eF9taWMsIG9wX21vZGUsIG1vZGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjEzLVx0Y2FzZSBXTEFOX0NJUEhFUl9TVUlURV9BRVNfQ01BQzpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjYxNDpcdFx0cmV0ID0gd2lsY193ZmlfY2ZnX2FsbG9jYXRlX3dwYV9pZ3RrX2VudHJ5KHByaXYsIGtleV9pbmRleCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02MTUtXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjE4Olx0XHRrZXkgPSBwcml2LVx1MDAzZXdpbGNfaWd0a1trZXlfaW5kZXggLSA0XTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjYxOTpcdFx0cmV0ID0gd2lsY193ZmlfY2ZnX2NvcHlfd3BhX2luZm8oa2V5LCBwYXJhbXMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjIwLVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTYyOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjYyOTpcdFx0cmV0ID0gd2lsY19hZGRfaWd0ayh2aWYsIHBhcmFtcy1cdTAwM2VrZXksIGtleWxlbiwgcGFyYW1zLVx1MDAzZXNlcSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTYzMC1cdFx0XHRcdCAgICBwYXJhbXMtXHUwMDNlc2VxX2xlbiwgbWFjX2FkZHIsIG9wX21vZGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9NjQyPXN0YXRpYyBpbnQgZGVsX2tleShzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LCBpbnQgbGlua19pZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02NDYte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjQ3Olx0c3RydWN0IHdpbGNfdmlmICp2aWYgPSBuZXRkZXZfcHJpdih3ZGV2LVx1MDAzZW5ldGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NDg6XHRzdHJ1Y3Qgd2lsY19wcml2ICpwcml2ID0gXHUwMDI2dmlmLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02NDktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjUxLVx0XHRrZXlfaW5kZXggLT0gNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY1MjpcdFx0aWYgKHByaXYtXHUwMDNld2lsY19pZ3RrW2tleV9pbmRleF0pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY1MzpcdFx0XHRrZnJlZShwcml2LVx1MDAzZXdpbGNfaWd0a1trZXlfaW5kZXhdLVx1MDAzZWtleSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NTQ6XHRcdFx0cHJpdi1cdTAwM2V3aWxjX2lndGtba2V5X2luZGV4XS1cdTAwM2VrZXkgPSBOVUxMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjU1Olx0XHRcdGtmcmVlKHByaXYtXHUwMDNld2lsY19pZ3RrW2tleV9pbmRleF0tXHUwMDNlc2VxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY1NjpcdFx0XHRwcml2LVx1MDAzZXdpbGNfaWd0a1trZXlfaW5kZXhdLVx1MDAzZXNlcSA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NTc6XHRcdFx0a2ZyZWUocHJpdi1cdTAwM2V3aWxjX2lndGtba2V5X2luZGV4XSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NTg6XHRcdFx0cHJpdi1cdTAwM2V3aWxjX2lndGtba2V5X2luZGV4XSA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02NTktXHRcdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTY2MC1cdH0gZWxzZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NjE6XHRcdGlmIChwcml2LVx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY2MjpcdFx0XHRrZnJlZShwcml2LVx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXHUwMDNla2V5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY2MzpcdFx0XHRwcml2LVx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXHUwMDNla2V5ID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY2NDpcdFx0XHRrZnJlZShwcml2LVx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXHUwMDNlc2VxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY2NTpcdFx0XHRwcml2LVx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXHUwMDNlc2VxID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTY2Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY2NzpcdFx0XHRrZnJlZShwcml2LVx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjY4Olx0XHRcdHByaXYtXHUwMDNld2lsY19ndGtba2V5X2luZGV4XSA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02NjktXHRcdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY3MDpcdFx0aWYgKHByaXYtXHUwMDNld2lsY19wdGtba2V5X2luZGV4XSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjcxOlx0XHRcdGtmcmVlKHByaXYtXHUwMDNld2lsY19wdGtba2V5X2luZGV4XS1cdTAwM2VrZXkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjcyOlx0XHRcdHByaXYtXHUwMDNld2lsY19wdGtba2V5X2luZGV4XS1cdTAwM2VrZXkgPSBOVUxMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjczOlx0XHRcdGtmcmVlKHByaXYtXHUwMDNld2lsY19wdGtba2V5X2luZGV4XS1cdTAwM2VzZXEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6Njc0Olx0XHRcdHByaXYtXHUwMDNld2lsY19wdGtba2V5X2luZGV4XS1cdTAwM2VzZXEgPSBOVUxMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6Njc1Olx0XHRcdGtmcmVlKHByaXYtXHUwMDNld2lsY19wdGtba2V5X2luZGV4XSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NzY6XHRcdFx0cHJpdi1cdTAwM2V3aWxjX3B0a1trZXlfaW5kZXhdID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTY3Ny1cdFx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jPTY4Mz1zdGF0aWMgaW50IGdldF9rZXkoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldiwgaW50IGxpbmtfaWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjg3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY4ODpcdHN0cnVjdCB3aWxjX3ZpZiAqdmlmID0gbmV0ZGV2X3ByaXYod2Rldi1cdTAwM2VuZXRkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6Njg5Olx0c3RydWN0IHdpbGNfcHJpdiAqcHJpdiA9IFx1MDAyNnZpZi1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjkwLVx0c3RydWN0ICBrZXlfcGFyYW1zIGtleV9wYXJhbXM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjk0LVx0XHRcdGtleV9pbmRleCAtPSA0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6Njk1Olx0XHRcdGtleV9wYXJhbXMua2V5ID0gcHJpdi1cdTAwM2V3aWxjX2lndGtba2V5X2luZGV4XS1cdTAwM2VrZXk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2OTY6XHRcdFx0a2V5X3BhcmFtcy5jaXBoZXIgPSBwcml2LVx1MDAzZXdpbGNfaWd0a1trZXlfaW5kZXhdLVx1MDAzZWNpcGhlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY5NzpcdFx0XHRrZXlfcGFyYW1zLmtleV9sZW4gPSBwcml2LVx1MDAzZXdpbGNfaWd0a1trZXlfaW5kZXhdLVx1MDAzZWtleV9sZW47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2OTg6XHRcdFx0a2V5X3BhcmFtcy5zZXEgPSBwcml2LVx1MDAzZXdpbGNfaWd0a1trZXlfaW5kZXhdLVx1MDAzZXNlcTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY5OTpcdFx0XHRrZXlfcGFyYW1zLnNlcV9sZW4gPSBwcml2LVx1MDAzZXdpbGNfaWd0a1trZXlfaW5kZXhdLVx1MDAzZXNlcV9sZW47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy03MDAtXHRcdH0gZWxzZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo3MDE6XHRcdFx0a2V5X3BhcmFtcy5rZXkgPSBwcml2LVx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXHUwMDNla2V5O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NzAyOlx0XHRcdGtleV9wYXJhbXMuY2lwaGVyID0gcHJpdi1cdTAwM2V3aWxjX2d0a1trZXlfaW5kZXhdLVx1MDAzZWNpcGhlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjcwMzpcdFx0XHRrZXlfcGFyYW1zLmtleV9sZW4gPSBwcml2LVx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXHUwMDNla2V5X2xlbjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjcwNDpcdFx0XHRrZXlfcGFyYW1zLnNlcSA9IHByaXYtXHUwMDNld2lsY19ndGtba2V5X2luZGV4XS1cdTAwM2VzZXE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo3MDU6XHRcdFx0a2V5X3BhcmFtcy5zZXFfbGVuID0gcHJpdi1cdTAwM2V3aWxjX2d0a1trZXlfaW5kZXhdLVx1MDAzZXNlcV9sZW47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy03MDYtXHRcdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTcwNy1cdH0gZWxzZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo3MDg6XHRcdGtleV9wYXJhbXMua2V5ID0gcHJpdi1cdTAwM2V3aWxjX3B0a1trZXlfaW5kZXhdLVx1MDAzZWtleTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjcwOTpcdFx0a2V5X3BhcmFtcy5jaXBoZXIgPSBwcml2LVx1MDAzZXdpbGNfcHRrW2tleV9pbmRleF0tXHUwMDNlY2lwaGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NzEwOlx0XHRrZXlfcGFyYW1zLmtleV9sZW4gPSBwcml2LVx1MDAzZXdpbGNfcHRrW2tleV9pbmRleF0tXHUwMDNla2V5X2xlbjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjcxMTpcdFx0a2V5X3BhcmFtcy5zZXEgPSBwcml2LVx1MDAzZXdpbGNfcHRrW2tleV9pbmRleF0tXHUwMDNlc2VxO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NzEyOlx0XHRrZXlfcGFyYW1zLnNlcV9sZW4gPSBwcml2LVx1MDAzZXdpbGNfcHRrW2tleV9pbmRleF0tXHUwMDNlc2VxX2xlbjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTcxMy1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz03Mjg9c3RhdGljIGludCBzZXRfZGVmYXVsdF9tZ210X2tleShzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTczMC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo3MzE6XHRzdHJ1Y3Qgd2lsY192aWYgKnZpZiA9IG5ldGRldl9wcml2KHdkZXYtXHUwMDNlbmV0ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTczMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjczMzpcdHJldHVybiB3aWxjX3NldF9kZWZhdWx0X21nbXRfa2V5X2luZGV4KHZpZiwga2V5X2luZGV4KTtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzM3NAoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDk5MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipSZWFjaGluZyB0aGUgV0lMQzEwMDAgRHJpdmVyIGluIGEgVmlydHVhbGl6ZWQgRW52aXJvbm1lbnQqKgoKT2theSwgc28gSSBzZWUgYG1tYy1wd3JzZXEtd2lsYzEwMDBgIGluIHRoZSBwb3dlciBzZXF1ZW5jZSBkcml2ZXIgYW5kIHRoZSBkZXZpY2UgdHJlZSBpbnN0YW50aWF0aW9uIGZvciBgbWljcm9jaGlwLHdpbGMxMDAwYCBpbiBhbiBBUk0gZGV2aWNlIGRlc2NyaXB0aW9uLiBUaGlzIHRlbGxzIG1lIGl0JiMzOTtzIGFuIEFSTS1iYXNlZCBTRElPL1NQSSBXaS1GaSBjaGlwLCBtYW5hZ2VkIHZpYSBEZXZpY2UgVHJlZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBjYW4gdGhpcyBldmVuIGJlIHJlYWNoZWQgaW4gUUVNVT8gU3l6a2FsbGVyIHVzdWFsbHkgc3RydWdnbGVzIHdpdGggRGV2aWNlIFRyZWUtaW5zdGFudGlhdGVkIGhhcmR3YXJlIHVubGVzcyB0aGVyZSYjMzk7cyBhIG1vY2sgb3IgaXQmIzM5O3MgYSBnZW5lcmljIHN1YnN5c3RlbS4gSWYgdGhlIGRyaXZlciBpc24mIzM5O3QgbG9hZGVkLCBsaWtlIGB3aWxjX3dmaV9tb25feG1pdGAsIHRoZW4gdGhlIGNvZGUgcGF0aCB3b3VsZCBuZXZlciBleGVjdXRlLiBJJiMzOTttIGNoZWNraW5nLCBidXQgSSYjMzk7bSBleHBlY3RpbmcgdGhpcyB0byBvbmx5IGJlIFNESU8vU1BJLiBTeXprYWxsZXIgZG9lc24mIzM5O3QgaGF2ZSBuYXRpdmUgU0RJTy9TUEkgaW5qZWN0aW9uIHN1cHBvcnQuCgpXYWl0LCBob3cgZGlkIFN5emthbGxlciBmaW5kIGEgYnVnIGlmIEkmIzM5O20gdGhpbmtpbmcgdGhpcyBpcyB1bnJlYWNoYWJsZT8gSSBuZWVkIHRvIGNoZWNrIHRoZSBjb21taXQgbWVzc2FnZS4gJiMzNDtzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcmIzM0Oy4gQWghIFRoaXMgd2FzbiYjMzk7dCBhICYjMzQ7Zm91bmQmIzM0OyBidWcsIHRoaXMgd2FzIGEgcGF0Y2ggdGVzdGluZyByZXF1ZXN0IGZyb20gYSBkZXZlbG9wZXIhCgpHaXZlbiB0aGlzIGlzIGEgcGh5c2ljYWwgY2hpcCAoV0lMQzEwMDApLCBpdCYjMzk7cyBwcm9iYWJseSAqaW1wb3NzaWJsZSogdG8gcmVhY2ggaW4gc3RhbmRhcmQgUUVNVS4gUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoaXMgc3BlY2lmaWMgTWljcm9jaGlwIGNoaXAuIFN5emthbGxlciBtaWdodCBydW4gb24gQVJNIFFFTVUsIGJ1dCBpZiB0aGUgZGV2aWNlIGlzbiYjMzk7dCBlbXVsYXRlZCwgaXQmIzM5O3Mgc3RpbGwgdW5yZWFjaGFibGUsIGxpa2UgdGhlIHByb21wdCBzYXlzLgoKVGhlIHByb21wdCBzcGVjaWZpY2FsbHkgc2F5cyB0byByZXR1cm4gZmFsc2UgaWYgdGhlIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGluIHN0YW5kYXJkIFFFTVUuIFNvLCB1bmxlc3MgSSBmaW5kIHNvbWUga2luZCBvZiBzb2Z0d2FyZSBlbXVsYXRpb24gaW4gdGhlIGtlcm5lbCwgaXQmIzM5O3MgdW5yZWFjaGFibGUuIEkmIzM5O2xsIGRvdWJsZS1jaGVjayBmb3IgdGhhdCwgYnV0IEkmIzM5O20gYmV0dGluZyBJIHdvbiYjMzk7dCBmaW5kIGFueXRoaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt3aWxjMTAwMCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbW1jL21tYy1wd3JzZXEtc2Q4Nzg3LnlhbWw9MTI9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbW1jL21tYy1wd3JzZXEtc2Q4Nzg3LnlhbWwtMTUtICAgICAgLSBtbWMtcHdyc2VxLXNkODc4N1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21tYy9tbWMtcHdyc2VxLXNkODc4Ny55YW1sOjE2OiAgICAgIC0gbW1jLXB3cnNlcS13aWxjMTAwMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21tYy9tbWMtcHdyc2VxLXNkODc4Ny55YW1sLTE3LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtMy0tLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbCNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sPTEzPWRlc2NyaXB0aW9uOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDoxNDogIFRoZSB3aWxjMTAwMCBjaGlwcyBjYW4gYmUgY29ubmVjdGVkIHZpYSBTUEkgb3IgU0RJTy4gVGhpcyBkb2N1bWVudFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC0xNS0gIGRlc2NyaWJlcyB0aGUgYmluZGluZyB0byBjb25uZWN0IHdpbGMgZGV2aWNlcy5cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sPTE3PXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC0yMS0gICAgICAgICAgLSBjb25zdDogbWljcm9jaGlwLHdpbGMzMDAwXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sOjIyOiAgICAgICAgICAtIGNvbnN0OiBtaWNyb2NoaXAsd2lsYzEwMDBcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6MjM6ICAgICAgLSBjb25zdDogbWljcm9jaGlwLHdpbGMxMDAwXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTI0LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtMzgtICAgIG1heEl0ZW1zOiAxXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sOjM5OiAgICBkZXNjcmlwdGlvbjogVXNlZCBieSB3aWxjMTAwMC1zcGkgdG8gZGV0ZXJtaW5lIHRoZSBHUElPIGxpbmVcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtNDAtICAgICAgY29ubmVjdGVkIHRvIHRoZSBFTkFCTEUgbGluZS4gIElmIHNwZWNpZmllZCwgcmVzZXQtZ3Bpb3Ncbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTQ3LSAgICBtYXhJdGVtczogMVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDo0ODogICAgZGVzY3JpcHRpb246IFVzZWQgYnkgd2lsYzEwMDAtc3BpIHRvIGRldGVybWluZSB0aGUgR1BJTyBsaW5lXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTQ5LSAgICAgIGNvbm5lY3RlZCB0byB0aGUgUkVTRVQgbGluZS4gIFRoaXMgc2hvdWxkIGJlIGRlY2xhcmVkIGFzIGFuXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbD02MT1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTY4LSAgICAgIHdpZmlAMCB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sOjY5OiAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O21pY3JvY2hpcCx3aWxjMTAwMFwmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtNzAtICAgICAgICBzcGktbWF4LWZyZXF1ZW5jeSA9IFx1MDAzYzQ4MDAwMDAwXHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtOTEtICAgICAgd2lmaUAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6OTI6ICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7bWljcm9jaGlwLHdpbGMxMDAwXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC05My0gICAgICAgIHJlZyA9IFx1MDAzYzBcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k9NDI9XHR3aWZpX3B3cnNlcTogd2lmaV9wd3JzZXEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k6NDM6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttbWMtcHdyc2VxLXdpbGMxMDAwXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2ktNDQtXHRcdHJlc2V0LWdwaW9zID0gXHUwMDNjXHUwMDI2cGlvQSBQSU5fUEEyNyBHUElPX0FDVElWRV9ISUdIXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpPTM4Nj1cdHdpbGM6IHdpZmlAMCB7XG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS0zODctXHRcdHJlZyA9IFx1MDAzYzBcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaTozODg6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttaWNyb2NoaXAsd2lsYzMwMDBcJiMzNDssIFwmIzM0O21pY3JvY2hpcCx3aWxjMTAwMFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTM4OS1cdFx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG4tLVxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM9NDU9c3RhdGljIHZvaWQgbW1jX3B3cnNlcV9zZDg3ODdfcG93ZXJfb2ZmKHN0cnVjdCBtbWNfaG9zdCAqaG9zdClcbi0tXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy01Mi1cbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jOjUzOnN0YXRpYyB2b2lkIG1tY19wd3JzZXFfd2lsYzEwMDBfcHJlX3Bvd2VyX29uKHN0cnVjdCBtbWNfaG9zdCAqaG9zdClcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTU0LXtcbi0tXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy02Mi1cbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jOjYzOnN0YXRpYyB2b2lkIG1tY19wd3JzZXFfd2lsYzEwMDBfcG93ZXJfb2ZmKHN0cnVjdCBtbWNfaG9zdCAqaG9zdClcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTY0LXtcbi0tXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYz03MT1zdGF0aWMgY29uc3Qgc3RydWN0IG1tY19wd3JzZXFfb3BzIG1tY19wd3JzZXFfc2Q4Nzg3X29wcyA9IHtcbi0tXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy03NS1cbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jOjc2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgbW1jX3B3cnNlcV9vcHMgbW1jX3B3cnNlcV93aWxjMTAwMF9vcHMgPSB7XG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYzo3NzpcdC5wcmVfcG93ZXJfb24gPSBtbWNfcHdyc2VxX3dpbGMxMDAwX3ByZV9wb3dlcl9vbixcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jOjc4Olx0LnBvd2VyX29mZiA9IG1tY19wd3JzZXFfd2lsYzEwMDBfcG93ZXJfb2ZmLFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmMtNzktfTtcbi0tXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYz04MT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtbWNfcHdyc2VxX3NkODc4N19vZl9tYXRjaFtdID0ge1xuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmMtODItXHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bW1jLXB3cnNlcS1zZDg3ODdcJiMzNDssIC5kYXRhID0gXHUwMDI2bW1jX3B3cnNlcV9zZDg3ODdfb3BzIH0sXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYzo4MzpcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDttbWMtcHdyc2VxLXdpbGMxMDAwXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNm1tY19wd3JzZXFfd2lsYzEwMDBfb3BzIH0sXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy04NC1cdHsvKiBzZW50aW5lbCAqL30sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL0tjb25maWc9MTM9aWYgV0xBTl9WRU5ET1JfTUlDUk9DSElQXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvS2NvbmZpZzoxNDpzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL0tjb25maWdcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC9LY29uZmlnLTE1LWVuZGlmICMgV0xBTl9WRU5ET1JfTUlDUk9DSElQXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX1dJTEMxMDAwKVx0XHQmIzQzOz0gd2lsYzEwMDAvXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX1dJTEMxMDAwKSAmIzQzOz0gd2lsYzEwMDAub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlLTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6NDp3aWxjMTAwMC1vYmpzIDo9IGNmZzgwMjExLm8gbmV0ZGV2Lm8gbW9uLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS01LVx0XHRcdGhpZi5vIHdsYW5fY2ZnLm8gd2xhbi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGUtNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZTo3Om9iai0kKENPTkZJR19XSUxDMTAwMF9TRElPKSAmIzQzOz0gd2lsYzEwMDAtc2Rpby5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6ODp3aWxjMTAwMC1zZGlvLW9ianMgJiM0Mzs9IHNkaW8ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlLTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6MTA6b2JqLSQoQ09ORklHX1dJTEMxMDAwX1NQSSkgJiM0Mzs9IHdpbGMxMDAwLXNwaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6MTE6d2lsYzEwMDAtc3BpLW9ianMgJiM0Mzs9IHNwaS5vXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9MTg0OT1pbnQgd2lsY19jZmc4MDIxMV9yZWdpc3RlcihzdHJ1Y3Qgd2lsYyAqd2lsYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xODUxLVx0LyogV1BBMy9TQUUgc3VwcG9ydGVkIG9ubHkgb24gV0lMQzEwMDAgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjE4NTI6XHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTg1My1cdFx0d2lsYy1cdTAwM2V3aXBoeS1cdTAwM2VmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfU0FFO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy0yMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzoyMjojZGVmaW5lIFdJTEMxMDAwX0ZXX1BSRUZJWFx0XHRcJiMzNDthdG1lbC93aWxjMTAwMF93aWZpX2Zpcm13YXJlLVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTIzLSNkZWZpbmUgX19XSUxDMTAwMF9GVyhhcGkpXHRcdFdJTEMxMDAwX0ZXX1BSRUZJWCAjYXBpIFwmIzM0Oy5iaW5cJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM9MjAwPXN0YXRpYyBpbnQgd2lsY193bGFuX2dldF9maXJtd2FyZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy0yMDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6MjA4Olx0aWYgKGlzX3dpbGMxMDAwKHdpbGMtXHUwMDNlY2hpcGlkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy0yMDktXHRcdGZpcm13YXJlID0gV0lMQzEwMDBfRlcoV0lMQzEwMDBfQVBJX1ZFUik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTIxNS1cdG5ldGRldl9pbmZvKGRldiwgXCYjMzQ7V0lMQyVkIGxvYWRpbmcgZmlybXdhcmUgWyVzXVxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzoyMTY6XHRcdCAgICBpc193aWxjMTAwMCh3aWxjLVx1MDAzZWNoaXBpZCkgPyAxMDAwIDogMzAwMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy0yMTctXHRcdCAgICBmaXJtd2FyZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jPTQ1Nj1zdGF0aWMgdm9pZCB3aWxjX3dsYW5fZGVpbml0aWFsaXplKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTQ2Ni1cdGlmICh3bC1cdTAwM2Vpbml0aWFsaXplZCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjQ2NzpcdFx0bmV0ZGV2X2luZm8oZGV2LCBcJiMzNDtEZWluaXRpYWxpemluZyB3aWxjMTAwMC4uLlxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNDY4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy00ODQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6NDg1Olx0XHRuZXRkZXZfZGJnKGRldiwgXCYjMzQ7d2lsYzEwMDAgZGVpbml0aWFsaXphdGlvbiBEb25lXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy00ODYtXHR9IGVsc2Uge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjQ4NzpcdFx0bmV0ZGV2X2RiZyhkZXYsIFwmIzM0O3dpbGMxMDAwIGlzIG5vdCBpbml0aWFsaXplZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNDg4LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz01MDg9c3RhdGljIGludCB3aWxjX3dsYW5faW5pdGlhbGl6ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgd2lsY192aWYgKnZpZilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNTgzLVx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo1ODQ6XHRcdG5ldGRldl9kYmcoZGV2LCBcJiMzNDt3aWxjMTAwMCBhbHJlYWR5IGluaXRpYWxpemVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy01ODUtXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jPTc4Nz1zdGF0aWMgaW50IHdpbGNfbWFjX2Nsb3NlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy04MDYtXHRpZiAod2wtXHUwMDNlb3Blbl9pZmNzID09IDApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo4MDc6XHRcdG5ldGRldl9kYmcobmRldiwgXCYjMzQ7RGVpbml0aWFsaXppbmcgd2lsYzEwMDBcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTgwOC1cdFx0d2wtXHUwMDNlY2xvc2UgPSAxO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jOjE3OiNkZWZpbmUgU0RJT19NT0RBTElBUyBcJiMzNDt3aWxjMTAwMF9zZGlvXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTE4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM9ODAwPXN0YXRpYyBpbnQgd2lsY19zZGlvX3JlYWRfaW50KHN0cnVjdCB3aWxjICp3aWxjLCB1MzIgKmludF9zdGF0dXMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy04MTctXHRcdGNtZC5mdW5jdGlvbiA9IDA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jOjgxODpcdFx0Y21kLmFkZHJlc3MgPSBpc193aWxjMTAwMCh3aWxjLVx1MDAzZWNoaXBpZCkgP1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy04MTktXHRcdFx0ICAgICAgV0lMQzEwMDBfU0RJT19JUlFfRkxBR19SRUcgOlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtODI4LVx0aWYgKHNkaW9fcHJpdi1cdTAwM2VpcnFfZ3BpbylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM6ODI5Olx0XHRpcnFfZmxhZ3MgXHUwMDI2PSBpc193aWxjMTAwMCh3aWxjLVx1MDAzZWNoaXBpZCkgPyAweDFmIDogMHgwZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtODMwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM9ODQyPXN0YXRpYyBpbnQgd2lsY19zZGlvX2NsZWFyX2ludF9leHQoc3RydWN0IHdpbGMgKndpbGMsIHUzMiB2YWwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy04NTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jOjg1MjpcdGlmIChpc193aWxjMTAwMCh3aWxjLVx1MDAzZWNoaXBpZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtODUzLVx0XHQvKiBzZWxlY3QgVk1NIHRhYmxlIDAgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTg5OC1cdFx0Y21kLnJhdyA9IDA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jOjg5OTpcdFx0Y21kLmFkZHJlc3MgPSBpc193aWxjMTAwMCh3aWxjLVx1MDAzZWNoaXBpZCkgP1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy05MDAtXHRcdFx0ICAgICAgV0lMQzEwMDBfU0RJT19JUlFfQ0xFQVJfRkxBR19SRUcgOlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM9MTA1Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB3aWxjX29mX21hdGNoW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jOjEwNTM6XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWljcm9jaGlwLHdpbGMxMDAwXCYjMzQ7LCB9LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy0xMDU0LVx0eyAvKiBzZW50aW5lbCAqLyB9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jOjE2OiNkZWZpbmUgU1BJX01PREFMSUFTXHRcdFwmIzM0O3dpbGMxMDAwX3NwaVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTE3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYz0yOTQ9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgd2lsY19vZl9tYXRjaFtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jOjI5NTpcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDttaWNyb2NoaXAsd2lsYzEwMDBcJiMzNDssIH0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmMtMjk2LVx0eyAvKiBzZW50aW5lbCAqLyB9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jPTMwMD1zdGF0aWMgY29uc3Qgc3RydWN0IHNwaV9kZXZpY2VfaWQgd2lsY19zcGlfaWRbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYzozMDE6XHR7IFwmIzM0O3dpbGMxMDAwXCYjMzQ7LCAwIH0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmMtMzAyLVx0eyAvKiBzZW50aW5lbCAqLyB9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jPTEyMjc9c3RhdGljIGludCB3aWxjX3ZhbGlkYXRlX2NoaXBpZChzdHJ1Y3Qgd2lsYyAqd2lsYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmMtMTI0MC1cdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYzoxMjQxOlx0aWYgKCFpc193aWxjMTAwMChjaGlwaWQpIFx1MDAyNlx1MDAyNiAhaXNfd2lsYzMwMDAoY2hpcGlkKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTEyNDItXHRcdGRldl9lcnIoXHUwMDI2c3BpLVx1MDAzZWRldiwgXCYjMzQ7VW5rbm93biBjaGlwIGlkIDB4JXhcXG5cJiMzNDssIGNoaXBpZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz01MzA9c3RhdGljIHN0cnVjdCByeHFfZW50cnlfdCAqd2lsY193bGFuX3J4cV9yZW1vdmUoc3RydWN0IHdpbGMgKndpbGMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy01NDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjU0NDpzdGF0aWMgaW50IGNoaXBfYWxsb3dfc2xlZXBfd2lsYzEwMDAoc3RydWN0IHdpbGMgKndpbGMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTU0NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz02MzA9c3RhdGljIGludCBjaGlwX2FsbG93X3NsZWVwKHN0cnVjdCB3aWxjICp3aWxjKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy02MzEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo2MzI6XHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo2MzM6XHRcdHJldHVybiBjaGlwX2FsbG93X3NsZWVwX3dpbGMxMDAwKHdpbGMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy02MzQtXHRlbHNlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy02MzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjYzODpzdGF0aWMgaW50IGNoaXBfd2FrZXVwX3dpbGMxMDAwKHN0cnVjdCB3aWxjICp3aWxjKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy02Mzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9NzYwPXN0YXRpYyBpbnQgY2hpcF93YWtldXAoc3RydWN0IHdpbGMgKndpbGMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTc2MS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjc2MjpcdGlmIChpc193aWxjMTAwMCh3aWxjLVx1MDAzZWNoaXBpZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjc2MzpcdFx0cmV0dXJuIGNoaXBfd2FrZXVwX3dpbGMxMDAwKHdpbGMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy03NjQtXHRlbHNlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz03OTM9aW50IGhvc3Rfd2FrZXVwX25vdGlmeShzdHJ1Y3Qgd2lsYyAqd2lsYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTc5OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM6ODAwOlx0d2lsYy1cdTAwM2VoaWZfZnVuYy1cdTAwM2VoaWZfd3JpdGVfcmVnKHdpbGMsIGlzX3dpbGMxMDAwKHdpbGMtXHUwMDNlY2hpcGlkKSA/XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTgwMS1cdFx0XHRcdFx0ICAgIFdJTEMxMDAwX0NPUlRVU19JTlRFUlJVUFRfMiA6XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz04MDc9aW50IGhvc3Rfc2xlZXBfbm90aWZ5KHN0cnVjdCB3aWxjICp3aWxjKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtODEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo4MTQ6XHR3aWxjLVx1MDAzZWhpZl9mdW5jLVx1MDAzZWhpZl93cml0ZV9yZWcod2lsYywgaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpID9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtODE1LVx0XHRcdFx0XHQgICAgV0lMQzEwMDBfQ09SVFVTX0lOVEVSUlVQVF8xIDpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jPTgyMT1pbnQgd2lsY193bGFuX2hhbmRsZV90eHEoc3RydWN0IHdpbGMgKndpbGMsIHUzMiAqdHhxX2NvdW50KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtOTUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo5NTE6XHRcdGlmIChpc193aWxjMTAwMCh3aWxjLVx1MDAzZWNoaXBpZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtOTUyLVx0XHRcdHJldCA9IGZ1bmMtXHUwMDNlaGlmX3dyaXRlX3JlZyh3aWxjLCBXSUxDX0hPU1RfVk1NX0NUTCwgMHgyKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jPTE1OTE9aW50IHdpbGNfZ2V0X2NoaXBpZChzdHJ1Y3Qgd2lsYyAqd2lsYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTE2MDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjE2MDM6XHRcdFx0aWYgKCFpc193aWxjMTAwMChjaGlwaWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTE2MDQtXHRcdFx0XHR3aWxjLVx1MDAzZWNoaXBpZCA9IDA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz0xNzM3PWludCB3aWxjX3dsYW5faW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtMTc2MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM6MTc2MTpcdFx0aWYgKCFpc193aWxjMTAwMCh3aWxjLVx1MDAzZWNoaXBpZCkgXHUwMDI2XHUwMDI2ICFpc193aWxjMzAwMCh3aWxjLVx1MDAzZWNoaXBpZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtMTc2Mi1cdFx0XHRuZXRkZXZfZXJyKGRldiwgXCYjMzQ7VW5zdXBwb3J0ZWQgY2hpcGlkOiAleFxcblwmIzM0Oywgd2lsYy1cdTAwM2VjaGlwaWQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmg9NDMzPXN0cnVjdCB3aWxjX3ZpZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmgtNDM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uaDo0MzU6c3RhdGljIGlubGluZSBib29sIGlzX3dpbGMxMDAwKHUzMiBpZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmgtNDM2LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE3NjkKCQkJCQkJCW91dHB1dDogMjAKCQkJCQkJCXRob3VnaHRzOiAxMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBgaXNfd2lsYzEwMDAoKWAgQ2hlY2sqKgoKT2theSwgSSYjMzk7bSBzZWVpbmcgdGhpcyBgaXNfd2lsYzEwMDAoKWAgY2hlY2suLi4gbGV0IG1lIHN0ZXAgYmFjayBhbmQgdGhpbmsgdGhpcyB0aHJvdWdoLiBJcyAqdGhpcyogdGhlIG9ubHkgd2F5IHdlIGdldCB0byB0aGlzIHBhcnQgb2YgdGhlIGNvZGU/IE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBhcmUgdGhlcmUgb3RoZXIgcG90ZW50aWFsIGVudHJ5IHBvaW50cywgb3RoZXIgc2NlbmFyaW9zIHRoYXQgY2FuIHRyaWdnZXIgdGhpcz8gQWgsIEkga25vdyEgU3l6a2FsbGVyISBJZiBTeXprYWxsZXIgaXMgcnVubmluZyBvbiBBUk0gUUVNVSwgYW5kIHRoZSBkZXZpY2UgdHJlZSBzcGVjaWZpY2FsbHkgKmluY2x1ZGVzKiBzb21ldGhpbmcgbGlrZSBgbWljcm9jaGlwLHdpbGMxMDAwYCwgdGhlIGRyaXZlciAqY291bGQqIGJlIHByb2JlZC4gSG93ZXZlciwgaGFuZyBvbi4uLiB0aGUgcHJvYmUgaXRzZWxmIG5lZWRzIHRoZSBoYXJkd2FyZS4gSXQgbmVlZHMgdG8gY29tbXVuaWNhdGUsIGVpdGhlciBTUEkgb3IgU0RJTy4gTm93LCBpZiB0aGVyZSYjMzk7cyAqbm8qIGFjdHVhbCBoYXJkd2FyZSBwcmVzZW50IOKAkyB3aGljaCBpcyBsaWtlbHkgaW4gdGhpcyBzaW11bGF0ZWQgZW52aXJvbm1lbnQg4oCTIHRoZSBwcm9iZSAqc2hvdWxkKiBmYWlsLCByaWdodD8gU28sIGxldCYjMzk7cyBqdXN0IG1ha2UgYWJzb2x1dGVseSBzdXJlIGJ5IGNoZWNraW5nIGZvciBgd2lsY19zZGlvX3Byb2JlYCBvciBgd2lsY19zcGlfcHJvYmVgLiBJIG5lZWQgdG8gY29uZmlybSB0aG9zZSBwb3RlbnRpYWwgcHJvYmUgcGF0aHMgZm9yIGEgY29tcGxldGUgcGljdHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt3aWxjX3NwaV9wcm9iZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyMTQ2CgkJCQkJCQlvdXRwdXQ6IDIxCgkJCQkJCQl0aG91Z2h0czogMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgdGhlIG9uZSB0aGlua2luZyBpdDoKCioqRGlnZ2luZyBpbnRvIHRoZSBXaS1GaSBEcml2ZXIqKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhpcyBpc3N1ZSBtaWdodCBiZSBzdGVtbWluZyBmcm9tLiBUaGUgcHJvYmxlbSBzb3VuZHMgbGlrZSBhIHJlc291cmNlIGluaXRpYWxpemF0aW9uIG9yIGRlLWluaXRpYWxpemF0aW9uIHByb2JsZW0gc28gbGV0JiMzOTtzIGNoZWNrIHRoZSBgd2lsY19tYWNfY2xvc2VgIGZ1bmN0aW9uIGZpcnN0LiBJdCYjMzk7cyB0aGUgbG9naWNhbCBwbGFjZSB0byBzdGFydCBsb29raW5nIGF0IHdoZXJlIHRoZSBjb25uZWN0aW9uIGVuZHMuIElmIGl0IGlzbiYjMzk7dCB0aGUgcHJvYmxlbSwgbXkgbmV4dCBzdGVwIGlzIGB3aWxjX3dsYW5faW5pdGAuIEkmIzM5O2xsIHdhbnQgdG8gc2VlIGhvdyB0aGUgY29ubmVjdGlvbiBpcyBzZXQgdXAgaW4gdGhlIGZpcnN0IHBsYWNlLCBvciBpZiB0aGVyZSBpcyBhbiBlcnJvciBpbiBpbml0aWFsaXphdGlvbi4gT25lIG9mIHRob3NlIHNlZW1zIGxpa2UgdGhlIGxpa2VsaWVzdCBjYW5kaWRhdGUgZm9yIHRoZSByb290IG9mIHRoZSBwcm9ibGVtLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt3aWxjX3dsYW5faW5pdCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM9NDkxPXN0YXRpYyBpbnQgd2xhbl9pbml0aWFsaXplX3RocmVhZHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNTA3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjUwODpzdGF0aWMgaW50IHdpbGNfd2xhbl9pbml0aWFsaXplKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCB3aWxjX3ZpZiAqdmlmKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTUwOS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTUxNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo1MTc6XHRcdHJldCA9IHdpbGNfd2xhbl9pbml0KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNTE4LVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz01OTc9c3RhdGljIGludCB3aWxjX21hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy02MTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6NjE1Olx0cmV0ID0gd2lsY193bGFuX2luaXRpYWxpemUobmRldiwgdmlmKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy02MTYtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz0xNzM1PUVYUE9SVF9TWU1CT0xfR1BMKHdpbGNfbG9hZF9tYWNfZnJvbV9udik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTE3MzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjE3Mzc6aW50IHdpbGNfd2xhbl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTE3Mzgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmg9NDcwPWludCB3aWxjX3NlbmRfY29uZmlnX3BrdChzdHJ1Y3Qgd2lsY192aWYgKnZpZiwgdTggbW9kZSwgc3RydWN0IHdpZCAqd2lkcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmgtNDcxLVx0XHRcdCB1MzIgY291bnQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uaDo0NzI6aW50IHdpbGNfd2xhbl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uaC00NzMtaW50IHdpbGNfZ2V0X2NoaXBpZChzdHJ1Y3Qgd2lsYyAqd2lsYyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzMDY2CgkJCQkJCQlvdXRwdXQ6IDIxCgkJCQkJCQl0aG91Z2h0czogNTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVHJhY2luZyB0aGUgRHJpdmVyIEluaXRpYWxpemF0aW9uKioKCk9rYXksIGxldCYjMzk7cyBzZWUuLi4gKmB3aWxjX3dsYW5faW5pdGAqIGlzIGJlaW5nIGNhbGxlZCBmcm9tICpgd2lsY19tYWNfb3BlbmAqLiBSaWdodCwgYW5kICpgd2lsY19tYWNfb3BlbmAqIGlzIG91ciAqYG5kb19vcGVuYCogZnVuY3Rpb24uIFRoYXQgbWFrZXMgc2Vuc2UsIHRoYXQmIzM5O3Mgd2hlcmUgdGhlIGRldmljZSB3b3VsZCBnZXQgaW5pdGlhbGl6ZWQgd2hlbiB0aGUgaW50ZXJmYWNlIGlzIGJyb3VnaHQgdXAuIEJ1dCwgSSYjMzk7bSB0cnlpbmcgdG8gcmVjYWxsICpob3cqIHRoZSBuZXQgZGV2aWNlIGl0c2VsZiBnZXRzIHJlZ2lzdGVyZWQgd2l0aCB0aGUga2VybmVsLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgdW5kZXJzdGFuZCB0aGUgd2hvbGUgcGljdHVyZS4gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IGNoZWNrICpgd2lsY19uZXRkZXZfaW5pdGAqLiBUaGF0JiMzOTtzIHRoZSBsb2dpY2FsIG5leHQgcGxhY2UgdG8gbG9vayBmb3IgdGhlIG5ldGRldiByZWdpc3RyYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7d2lsY19uZXRkZXZfaW5pdCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzMzAyCgkJCQkJCQlvdXRwdXQ6IDE4CgkJCQkJCQl0aG91Z2h0czogMzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgdGFraW5nIG9uIHRoZSBwZXJzb25hIHlvdSByZXF1ZXN0ZWQ6CgoqKkRpZ2dpbmcgaW50byB0aGUgV0lMQzEwMDAgRHJpdmVyKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBpdC4gR2l2ZW4gdGhlIG5hdHVyZSBvZiB0aGlzIGlucXVpcnksIEkmIzM5O20gdGhpbmtpbmcgdGhlIGxpa2VseSBhcmVhIGZvciBleGFtaW5hdGlvbiByZWdhcmRpbmcgdGhpcyBzcGVjaWZpYyB3aXJlbGVzcyBkcml2ZXIgaXMgd2l0aGluIHRoZSBtaWNyb2NoaXAvd2lsYzEwMDAgZGlyZWN0b3J5LCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBvdmVyYWxsIG5ldHdvcmtpbmcgaW5mcmFzdHJ1Y3R1cmUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGRldmljZSBpcyBnZXR0aW5nIHJlZ2lzdGVyZWQgd2l0aGluIHRoZSBrZXJuZWwuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gY2hlY2sgdGhlIGByZWdpc3Rlcl9uZXRkZXZgIG9yIGByZWdpc3Rlcl9uZXRkZXZpY2VgIGNhbGxzIHdpdGhpbiB0aGF0IGRyaXZlciBjb2RlLiBUaG9zZSBmdW5jdGlvbnMgYXJlIHRoZSBicmVhZCBhbmQgYnV0dGVyIGZvciBicmluZ2luZyBhIG5ldHdvcmsgaW50ZXJmYWNlIG9ubGluZSwgc28gdGhhdOKAmXMgd2hlcmUgSSYjMzk7bGwgYmVnaW4gbXkgaW52ZXN0aWdhdGlvbi4gTGV0JiMzOTtzIHNlZSB3aGF0IHdlIGNhbiBmaW5kIHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtyZWdpc3Rlcl9uZXRkZXYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDkwNDYgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbkRvY3VtZW50YXRpb24vYXJjaC9wb3dlcnBjL2VlaC1wY2ktZXJyb3ItcmVjb3ZlcnkucnN0PTE5Nz1UaGUgZm9sbG93aW5nIHNlcXVlbmNlIGlzIGFuIGV4YW1wbGUgb2YgdGhlIHBjbmV0MzIgZGV2aWNlIGRyaXZlcjo6XG4tLVxuRG9jdW1lbnRhdGlvbi9hcmNoL3Bvd2VycGMvZWVoLXBjaS1lcnJvci1yZWNvdmVyeS5yc3QtMjI3LSAgICAgICAgICAgICAgICAgICAgICBjYWxsc1xuRG9jdW1lbnRhdGlvbi9hcmNoL3Bvd2VycGMvZWVoLXBjaS1lcnJvci1yZWNvdmVyeS5yc3Q6MjI4OiAgICAgICAgICAgICAgICAgICAgICB1bnJlZ2lzdGVyX25ldGRldigpIC8vIGluIC9uZXQvY29yZS9kZXYuY1xuRG9jdW1lbnRhdGlvbi9hcmNoL3Bvd2VycGMvZWVoLXBjaS1lcnJvci1yZWNvdmVyeS5yc3QtMjI5LSAgICAgICAgICAgICAgICAgICAgICB7XG4tLVxuRG9jdW1lbnRhdGlvbi9hcmNoL3Bvd2VycGMvZWVoLXBjaS1lcnJvci1yZWNvdmVyeS5yc3Q9MjQ5PXdoaWNoIGNhbGxzIHN0cnVjdCBwY2lfZHJpdmVyLVx1MDAzZXJlbW92ZSgpIHdoaWNoIGlzIHBjbmV0MzJfcmVtb3ZlX29uZSgpXG5Eb2N1bWVudGF0aW9uL2FyY2gvcG93ZXJwYy9lZWgtcGNpLWVycm9yLXJlY292ZXJ5LnJzdDoyNTA6d2hpY2ggY2FsbHMgdW5yZWdpc3Rlcl9uZXRkZXYoKSAgKGluIG5ldC9jb3JlL2Rldi5jKVxuRG9jdW1lbnRhdGlvbi9hcmNoL3Bvd2VycGMvZWVoLXBjaS1lcnJvci1yZWNvdmVyeS5yc3QtMjUxLXdoaWNoIGNhbGxzIGRldl9jbG9zZSgpICAoaW4gbmV0L2NvcmUvZGV2LmMpXG4tLVxuRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL2RyaXZlci1tb2RlbC9kZXZyZXMucnN0PTM3OT1ORVRcbi0tXG5Eb2N1bWVudGF0aW9uL2RyaXZlci1hcGkvZHJpdmVyLW1vZGVsL2RldnJlcy5yc3QtMzgxLSAgZGV2bV9hbGxvY19ldGhlcmRldl9tcXMoKVxuRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL2RyaXZlci1tb2RlbC9kZXZyZXMucnN0OjM4MjogIGRldm1fcmVnaXN0ZXJfbmV0ZGV2KClcbkRvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9kcml2ZXItbW9kZWwvZGV2cmVzLnJzdC0zODMtXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RyaXZlci5yc3Q9Mjg9QXV0by1jbG9zZVxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kcml2ZXIucnN0LTMwLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RyaXZlci5yc3Q6MzE6VGhlIG5kb19zdG9wIHJvdXRpbmUgd2lsbCBiZSBjYWxsZWQgYnkgdW5yZWdpc3Rlcl9uZXRkZXZpY2VcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kcml2ZXIucnN0LTMyLWlmIGRldmljZSBpcyBzdGlsbCBVUC5cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbXVsdGlxdWV1ZS5yc3Q9MjQ9ZGV2aWNlIGlzIHN0aWxsIG9wZXJhdGlvbmFsLiAgbmV0ZGV2LVx1MDAzZXF1ZXVlX2xvY2sgaXMgc3RpbGwgdXNlZCB3aGVuIHRoZSBkZXZpY2VcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9tdWx0aXF1ZXVlLnJzdDoyNTpjb21lcyBvbmxpbmUgb3Igd2hlbiBpdCYjMzk7cyBjb21wbGV0ZWx5IHNodXQgZG93biAodW5yZWdpc3Rlcl9uZXRkZXYoKSwgZXRjLikuXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbXVsdGlxdWV1ZS5yc3QtMjYtXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0PTI4PUZpcnN0IGdyb3VwIGNhbiBiZSB1c2VkIGluIG5vcm1hbCBjb250ZXh0cyB3aGVyZSBgYHJ0bmxfbG9ja2BgIGlzIG5vdCBhbHJlYWR5XG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6Mjk6aGVsZDogcmVnaXN0ZXJfbmV0ZGV2KCksIHVucmVnaXN0ZXJfbmV0ZGV2KCkuXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtMzAtU2Vjb25kIGdyb3VwIGNhbiBiZSB1c2VkIHdoZW4gYGBydG5sX2xvY2tgYCBpcyBhbHJlYWR5IGhlbGQ6XG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6MzE6cmVnaXN0ZXJfbmV0ZGV2aWNlKCksIHVucmVnaXN0ZXJfbmV0ZGV2aWNlKCksIGZyZWVfbmV0ZGV2KCkuXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtMzItXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0PTM5PUluIHRoYXQgY2FzZSB0aGUgc3RydWN0IG5ldF9kZXZpY2UgcmVnaXN0cmF0aW9uIGlzIGRvbmUgdXNpbmdcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDo0MDp0aGUgcmVnaXN0ZXJfbmV0ZGV2KCksIGFuZCB1bnJlZ2lzdGVyX25ldGRldigpIGZ1bmN0aW9uczpcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC00MS1cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtNTMtXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6NTQ6ICAgIC8qIC4uLiBkbyBhbGwgZGV2aWNlIHNldHVwIGJlZm9yZSBjYWxsaW5nIHJlZ2lzdGVyX25ldGRldigpIC4uLlxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTU1LSAgICAgKi9cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC01Ni1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDo1NzogICAgZXJyID0gcmVnaXN0ZXJfbmV0ZGV2KGRldik7XG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtNTgtICAgIGlmIChlcnIpXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTcxLSAge1xuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0OjcyOiAgICB1bnJlZ2lzdGVyX25ldGRldihkZXYpO1xuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTczLSAgICBmcmVlX25ldGRldihkZXYpO1xuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC03NS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDo3NjpOb3RlIHRoYXQgYWZ0ZXIgY2FsbGluZyByZWdpc3Rlcl9uZXRkZXYoKSB0aGUgZGV2aWNlIGlzIHZpc2libGUgaW4gdGhlIHN5c3RlbS5cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC03Ny1Vc2VycyBjYW4gb3BlbiBpdCBhbmQgc3RhcnQgc2VuZGluZyAvIHJlY2VpdmluZyB0cmFmZmljIGltbWVkaWF0ZWx5LFxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdD03OT1yZWdpc3RyYXRpb24uXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtODAtXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6ODE6dW5yZWdpc3Rlcl9uZXRkZXYoKSBjbG9zZXMgdGhlIGRldmljZSBhbmQgd2FpdHMgZm9yIGFsbCB1c2VycyB0byBiZSBkb25lXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtODItd2l0aCBpdC4gVGhlIG1lbW9yeSBvZiBzdHJ1Y3QgbmV0X2RldmljZSBpdHNlbGYgbWF5IHN0aWxsIGJlIHJlZmVyZW5jZWRcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdD04Mz1ieSBzeXNmcyBidXQgYWxsIG9wZXJhdGlvbnMgb24gdGhhdCBkZXZpY2Ugd2lsbCBmYWlsLlxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTg0LVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0Ojg1OmZyZWVfbmV0ZGV2KCkgY2FuIGJlIGNhbGxlZCBhZnRlciB1bnJlZ2lzdGVyX25ldGRldigpIHJldHVybnMgb3Igd2hlblxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0Ojg2OnJlZ2lzdGVyX25ldGRldigpIGZhaWxlZC5cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC04Ny1cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q9OTY9RXhhbXBsZSBmbG93IG9mIG5ldGRldiBoYW5kbGluZyB1bmRlciBgYHJ0bmxfbG9ja2BgOlxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xMzUtXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6MTM2OiAgICBlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2UoZGV2KTtcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xMzctICAgIGlmIChlcnIpXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6MTM4OiAgICAgIC8qIHJlZ2lzdGVyX25ldGRldmljZSgpIGNhbGxzIGRlc3RydWN0b3Igb24gZmFpbHVyZSAqL1xuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTEzOS0gICAgICBnb3RvIGVycl9mcmVlX2RldjtcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xNDAtXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6MTQxOiAgICAvKiBJZiBhbnl0aGluZyBmYWlscyBub3cgdW5yZWdpc3Rlcl9uZXRkZXZpY2UoKSAob3IgdW5yZWdpc3Rlcl9uZXRkZXYoKSlcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xNDItICAgICAqIHdpbGwgdGFrZSBjYXJlIG9mIGNhbGxpbmcgbXlfZGVzdHJ1Y3RvciBhbmQgZnJlZV9uZXRkZXYoKS5cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q9MTU0PUlmIHN0cnVjdCBuZXRfZGV2aWNlLnByaXZfZGVzdHJ1Y3RvciBpcyBzZXQgaXQgd2lsbCBiZSBjYWxsZWQgYnkgdGhlIGNvcmVcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDoxNTU6c29tZSB0aW1lIGFmdGVyIHVucmVnaXN0ZXJfbmV0ZGV2aWNlKCksIGl0IHdpbGwgYWxzbyBiZSBjYWxsZWQgaWZcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDoxNTY6cmVnaXN0ZXJfbmV0ZGV2aWNlKCkgZmFpbHMuIFRoZSBjYWxsYmFjayBtYXkgYmUgaW52b2tlZCB3aXRoIG9yIHdpdGhvdXRcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xNTctYGBydG5sX2xvY2tgYCBoZWxkLlxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdD0xNjI9U2V0dGluZyBzdHJ1Y3QgbmV0X2RldmljZS5uZWVkc19mcmVlX25ldGRldiBtYWtlcyBjb3JlIGNhbGwgZnJlZV9uZXRkZXYoKVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0OjE2MzphdXRvbWF0aWNhbGx5IGFmdGVyIHVucmVnaXN0ZXJfbmV0ZGV2aWNlKCkgd2hlbiBhbGwgcmVmZXJlbmNlcyB0byB0aGUgZGV2aWNlXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6MTY0OmFyZSBnb25lLiBJdCBvbmx5IHRha2VzIGVmZmVjdCBhZnRlciBhIHN1Y2Nlc3NmdWwgY2FsbCB0byByZWdpc3Rlcl9uZXRkZXZpY2UoKVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0OjE2NTpzbyBpZiByZWdpc3Rlcl9uZXRkZXZpY2UoKSBmYWlscyBkcml2ZXIgaXMgcmVzcG9uc2libGUgZm9yIGNhbGxpbmdcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xNjYtZnJlZV9uZXRkZXYoKS5cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xNjctXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6MTY4OmZyZWVfbmV0ZGV2KCkgaXMgc2FmZSB0byBjYWxsIG9uIGVycm9yIHBhdGhzIHJpZ2h0IGFmdGVyIHVucmVnaXN0ZXJfbmV0ZGV2aWNlKClcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDoxNjk6b3Igd2hlbiByZWdpc3Rlcl9uZXRkZXZpY2UoKSBmYWlscy4gUGFydHMgb2YgbmV0ZGV2IChkZSlyZWdpc3RyYXRpb24gcHJvY2Vzc1xuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTE3MC1oYXBwZW4gYWZ0ZXIgYGBydG5sX2xvY2tgYCBpcyByZWxlYXNlZCwgdGhlcmVmb3JlIGluIHRob3NlIGNhc2VzIGZyZWVfbmV0ZGV2KClcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvc3dpdGNoZGV2LnJzdD04NT1PbiBzd2l0Y2hkZXYgZHJpdmVyIGluaXRpYWxpemF0aW9uLCB0aGUgZHJpdmVyIHdpbGwgYWxsb2NhdGUgYW5kIHJlZ2lzdGVyIGFcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9zd2l0Y2hkZXYucnN0Ojg2OnN0cnVjdCBuZXRfZGV2aWNlICh1c2luZyByZWdpc3Rlcl9uZXRkZXYoKSkgZm9yIGVhY2ggZW51bWVyYXRlZCBwaHlzaWNhbCBzd2l0Y2hcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9zd2l0Y2hkZXYucnN0LTg3LXBvcnQsIGNhbGxlZCB0aGUgcG9ydCBuZXRkZXYuICBBIHBvcnQgbmV0ZGV2IGlzIHRoZSBzb2Z0d2FyZSByZXByZXNlbnRhdGlvbiBvZlxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy94ZnJtL3hmcm1fZGV2aWNlLnJzdD05Nz1GbG93XG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3hmcm0veGZybV9kZXZpY2UucnN0LTk5LVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3hmcm0veGZybV9kZXZpY2UucnN0OjEwMDpBdCBwcm9iZSB0aW1lIGFuZCBiZWZvcmUgdGhlIGNhbGwgdG8gcmVnaXN0ZXJfbmV0ZGV2KCksIHRoZSBkcml2ZXIgc2hvdWxkXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcveGZybS94ZnJtX2RldmljZS5yc3QtMTAxLXNldCB1cCBsb2NhbCBkYXRhIHN0cnVjdHVyZXMgYW5kIFhGUk0gY2FsbGJhY2tzLCBhbmQgc2V0IHRoZSBmZWF0dXJlIGJpdHMuXG4tLVxuYXJjaC9tNjhrL2VtdS9uZmV0aC5jPTE4NT1zdGF0aWMgc3RydWN0IG5ldF9kZXZpY2UgKiBfX2luaXQgbmZldGhfcHJvYmUoaW50IHVuaXQpXG4tLVxuYXJjaC9tNjhrL2VtdS9uZmV0aC5jLTIwNy1cbmFyY2gvbTY4ay9lbXUvbmZldGguYzoyMDg6XHRlcnIgPSByZWdpc3Rlcl9uZXRkZXYoZGV2KTtcbmFyY2gvbTY4ay9lbXUvbmZldGguYy0yMDktXHRpZiAoZXJyKSB7XG4tLVxuYXJjaC9tNjhrL2VtdS9uZmV0aC5jPTI1MT1zdGF0aWMgdm9pZCBfX2V4aXQgbmZldGhfY2xlYW51cCh2b2lkKVxuLS1cbmFyY2gvbTY4ay9lbXUvbmZldGguYy0yNTYtXHRcdGlmIChuZmV0aF9kZXZbaV0pIHtcbmFyY2gvbTY4ay9lbXUvbmZldGguYzoyNTc6XHRcdFx0dW5yZWdpc3Rlcl9uZXRkZXYobmZldGhfZGV2W2ldKTtcbmFyY2gvbTY4ay9lbXUvbmZldGguYy0yNTgtXHRcdFx0ZnJlZV9uZXRkZXYobmZldGhfZGV2W2ldKTtcbi0tXG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYz03ODE9c3RhdGljIGludCB2ZWN0b3JfcmVtb3ZlKGludCBuLCBjaGFyICoqZXJyb3Jfb3V0KVxuLS1cbmFyY2gvdW0vZHJpdmVycy92ZWN0b3Jfa2Vybi5jLTc5My1cdFx0cmV0dXJuIC1FQlVTWTtcbmFyY2gvdW0vZHJpdmVycy92ZWN0b3Jfa2Vybi5jOjc5NDpcdHVucmVnaXN0ZXJfbmV0ZGV2KGRldik7XG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYy03OTUtXHRwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihcdTAwMjZ2ZWNfZC1cdTAwM2VwZGV2KTtcbi0tXG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYz0xNTc0PXN0YXRpYyB2b2lkIHZlY3Rvcl9ldGhfY29uZmlndXJlKFxuLS1cbmFyY2gvdW0vZHJpdmVycy92ZWN0b3Jfa2Vybi5jLTE2MDAtXHQvKiBJZiB0aGlzIG5hbWUgZW5kcyB1cCBjb25mbGljdGluZyB3aXRoIGFuIGV4aXN0aW5nIHJlZ2lzdGVyZWRcbmFyY2gvdW0vZHJpdmVycy92ZWN0b3Jfa2Vybi5jOjE2MDE6XHQgKiBuZXRkZXZpY2UsIHRoYXQgaXMgT0ssIHJlZ2lzdGVyX25ldGRldnssaWNlfSgpIHdpbGwgbm90aWNlIHRoaXNcbmFyY2gvdW0vZHJpdmVycy92ZWN0b3Jfa2Vybi5jLTE2MDItXHQgKiBhbmQgZmFpbC5cbi0tXG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYy0xNjQ5LVx0cnRubF9sb2NrKCk7XG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYzoxNjUwOlx0ZXJyID0gcmVnaXN0ZXJfbmV0ZGV2aWNlKGRldik7XG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYy0xNjUxLVx0cnRubF91bmxvY2soKTtcbi0tXG5hcmNoL3h0ZW5zYS9wbGF0Zm9ybXMvaXNzL25ldHdvcmsuYz00Nzk9c3RhdGljIHZvaWQgaXNzX25ldF9jb25maWd1cmUoaW50IGluZGV4LCBjaGFyICppbml0KVxuLS1cbmFyY2gveHRlbnNhL3BsYXRmb3Jtcy9pc3MvbmV0d29yay5jLTUwMC1cdCAqIElmIHRoaXMgbmFtZSBlbmRzIHVwIGNvbmZsaWN0aW5nIHdpdGggYW4gZXhpc3RpbmcgcmVnaXN0ZXJlZFxuYXJjaC94dGVuc2EvcGxhdGZvcm1zL2lzcy9uZXR3b3JrLmM6NTAxOlx0ICogbmV0ZGV2aWNlLCB0aGF0IGlzIE9LLCByZWdpc3Rlcl9uZXRkZXZ7LGljZX0oKSB3aWxsIG5vdGljZSB0aGlzXG5hcmNoL3h0ZW5zYS9wbGF0Zm9ybXMvaXNzL25ldHdvcmsuYy01MDItXHQgKiBhbmQgZmFpbC5cbi0tXG5hcmNoL3h0ZW5zYS9wbGF0Zm9ybXMvaXNzL25ldHdvcmsuYy01MzktXHRydG5sX2xvY2soKTtcbmFyY2gveHRlbnNhL3BsYXRmb3Jtcy9pc3MvbmV0d29yay5jOjU0MDpcdGlmIChyZWdpc3Rlcl9uZXRkZXZpY2UoZGV2KSkge1xuYXJjaC94dGVuc2EvcGxhdGZvcm1zL2lzcy9uZXR3b3JrLmMtNTQxLVx0XHRydG5sX3VubG9jaygpO1xuLS1cbmRyaXZlcnMvZmlyZXdpcmUvbmV0LmM9MTQzMj1zdGF0aWMgaW50IGZ3bmV0X3Byb2JlKHN0cnVjdCBmd191bml0ICp1bml0LFxuLS1cbmRyaXZlcnMvZmlyZXdpcmUvbmV0LmMtMTQ5NS1cbmRyaXZlcnMvZmlyZXdpcmUvbmV0LmM6MTQ5NjpcdHJldCA9IHJlZ2lzdGVyX25ldGRldihuZXQpO1xuZHJpdmVycy9maXJld2lyZS9uZXQuYy0xNDk3LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL2ZpcmV3aXJlL25ldC5jLTE1MDUtXHRpZiAocmV0IFx1MDAyNlx1MDAyNiBhbGxvY2F0ZWRfbmV0ZGV2KSB7XG5kcml2ZXJzL2ZpcmV3aXJlL25ldC5jOjE1MDY6XHRcdHVucmVnaXN0ZXJfbmV0ZGV2KG5ldCk7XG5kcml2ZXJzL2ZpcmV3aXJlL25ldC5jLTE1MDctXHRcdGxpc3RfZGVsKFx1MDAyNmRldi1cdTAwM2VkZXZfbGluayk7XG4tLVxuZHJpdmVycy9maXJld2lyZS9uZXQuYz0xNTUyPXN0YXRpYyB2b2lkIGZ3bmV0X3JlbW92ZShzdHJ1Y3QgZndfdW5pdCAqdW5pdClcbi0tXG5kcml2ZXJzL2ZpcmV3aXJlL25ldC5jLTE1NjUtXHRpZiAobGlzdF9lbXB0eShcdTAwMjZkZXYtXHUwMDNlcGVlcl9saXN0KSkge1xuZHJpdmVycy9maXJld2lyZS9uZXQuYzoxNTY2Olx0XHR1bnJlZ2lzdGVyX25ldGRldihuZXQpO1xuZHJpdmVycy9maXJld2lyZS9uZXQuYy0xNTY3LVxuLS1cbmRyaXZlcnMvaHNpL2NsaWVudHMvc3NpX3Byb3RvY29sLmM9MTA3Mz1zdGF0aWMgaW50IHNzaV9wcm90b2NvbF9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9oc2kvY2xpZW50cy9zc2lfcHJvdG9jb2wuYy0xMTI3LVx0bmV0aWZfY2Fycmllcl9vZmYoc3NpLVx1MDAzZW5ldGRldik7XG5kcml2ZXJzL2hzaS9jbGllbnRzL3NzaV9wcm90b2NvbC5jOjExMjg6XHRlcnIgPSByZWdpc3Rlcl9uZXRkZXYoc3NpLVx1MDAzZW5ldGRldik7XG5kcml2ZXJzL2hzaS9jbGllbnRzL3NzaV9wcm90b2NvbC5jLTExMjktXHRpZiAoZXJyIFx1MDAzYyAwKSB7XG4tLVxuZHJpdmVycy9oc2kvY2xpZW50cy9zc2lfcHJvdG9jb2wuYz0xMTUwPXN0YXRpYyBpbnQgc3NpX3Byb3RvY29sX3JlbW92ZShzdHJ1Y3QgZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9oc2kvY2xpZW50cy9zc2lfcHJvdG9jb2wuYy0xMTU1LVx0bGlzdF9kZWwoXHUwMDI2c3NpLVx1MDAzZWxpbmspO1xuZHJpdmVycy9oc2kvY2xpZW50cy9zc2lfcHJvdG9jb2wuYzoxMTU2Olx0dW5yZWdpc3Rlcl9uZXRkZXYoc3NpLVx1MDAzZW5ldGRldik7XG5kcml2ZXJzL2hzaS9jbGllbnRzL3NzaV9wcm90b2NvbC5jLTExNTctXHRzc2lwX2ZyZWVfY21kcyhzc2kpO1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtYS5jPTU0ODY9c3RhdGljIGludCBfX2luaXQgY21hX2luaXQodm9pZClcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYy01NTExLVx0aWJfc2FfcmVnaXN0ZXJfY2xpZW50KFx1MDAyNnNhX2NsaWVudCk7XG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYzo1NTEyOlx0cmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNmNtYV9uYik7XG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYy01NTEzLVx0cmVnaXN0ZXJfbmV0ZXZlbnRfbm90aWZpZXIoXHUwMDI2Y21hX25ldGV2ZW50X2NiKTtcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYy01NTI4LVx0dW5yZWdpc3Rlcl9uZXRldmVudF9ub3RpZmllcihcdTAwMjZjbWFfbmV0ZXZlbnRfY2IpO1xuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY21hLmM6NTUyOTpcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNmNtYV9uYik7XG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYy01NTMwLVx0aWJfc2FfdW5yZWdpc3Rlcl9jbGllbnQoXHUwMDI2c2FfY2xpZW50KTtcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYz01NTM3PXN0YXRpYyB2b2lkIF9fZXhpdCBjbWFfY2xlYW51cCh2b2lkKVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtYS5jLTU1NDEtXHR1bnJlZ2lzdGVyX25ldGV2ZW50X25vdGlmaWVyKFx1MDAyNmNtYV9uZXRldmVudF9jYik7XG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYzo1NTQyOlx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2Y21hX25iKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtYS5jLTU1NDMtXHRpYl9zYV91bnJlZ2lzdGVyX2NsaWVudChcdTAwMjZzYV9jbGllbnQpO1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2RldmljZS5jPTMwMzU9c3RhdGljIGludCBfX2luaXQgaWJfY29yZV9pbml0KHZvaWQpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZGV2aWNlLmMtMzEwNS1cbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2RldmljZS5jOjMxMDY6XHRyZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2bmJfbmV0ZGV2aWNlKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2RldmljZS5jLTMxMDctXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZGV2aWNlLmM9MzEzNT1zdGF0aWMgdm9pZCBfX2V4aXQgaWJfY29yZV9jbGVhbnVwKHZvaWQpXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9kZXZpY2UuYy0zMTM2LXtcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2RldmljZS5jOjMxMzc6XHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZuYl9uZXRkZXZpY2UpO1xuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZGV2aWNlLmMtMzEzOC1cdHJvY2VfZ2lkX21nbXRfY2xlYW51cCgpO1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3JvY2VfZ2lkX21nbXQuYz05MTg9aW50IF9faW5pdCByb2NlX2dpZF9tZ210X2luaXQodm9pZClcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9yb2NlX2dpZF9tZ210LmMtOTMxLVx0ICovXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9yb2NlX2dpZF9tZ210LmM6OTMyOlx0cmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNm5iX25ldGRldmljZSk7XG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9yb2NlX2dpZF9tZ210LmMtOTMzLVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3JvY2VfZ2lkX21nbXQuYz05Mzc9dm9pZCBfX2V4aXQgcm9jZV9naWRfbWdtdF9jbGVhbnVwKHZvaWQpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvcm9jZV9naWRfbWdtdC5jLTk0MS1cdHVucmVnaXN0ZXJfaW5ldGFkZHJfbm90aWZpZXIoXHUwMDI2bmJfaW5ldGFkZHIpO1xuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvcm9jZV9naWRfbWdtdC5jOjk0MjpcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNm5iX25ldGRldmljZSk7XG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9yb2NlX2dpZF9tZ210LmMtOTQzLVx0LyogRW5zdXJlIGFsbCBnaWQgZGVsZXRpb24gdGFza3MgY29tcGxldGUgYmVmb3JlIHdlIGdvIGRvd24sXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JuZ19yZS9ibmdfZGV2LmM9MjM9c3RhdGljIHN0cnVjdCBibmdfcmVfZGV2ICpibmdfcmVfZGV2X2FkZChzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZSAqYWRldixcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvYm5nX3JlL2JuZ19kZXYuYy00NC1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibmdfcmUvYm5nX2Rldi5jOjQ1OnN0YXRpYyBpbnQgYm5nX3JlX3JlZ2lzdGVyX25ldGRldihzdHJ1Y3QgYm5nX3JlX2RldiAqcmRldilcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibmdfcmUvYm5nX2Rldi5jLTQ2LXtcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvYm5nX3JlL2JuZ19kZXYuYz0yNzY9c3RhdGljIGludCBibmdfcmVfZGV2X2luaXQoc3RydWN0IGJuZ19yZV9kZXYgKnJkZXYpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JuZ19yZS9ibmdfZGV2LmMtMjg1LVx0LyogUmVnaXN0ZXJlZCBhIG5ldyBSb0NFIGRldmljZSBpbnN0YW5jZSB0byBuZXRkZXYgKi9cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibmdfcmUvYm5nX2Rldi5jOjI4NjpcdHJjID0gYm5nX3JlX3JlZ2lzdGVyX25ldGRldihyZGV2KTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibmdfcmUvYm5nX2Rldi5jLTI4Ny1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibnh0X3JlL21haW4uYz01MTQ9c3RhdGljIHN0cnVjdCBibnh0X3VscF9vcHMgYm54dF9yZV91bHBfb3BzID0ge1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibnh0X3JlL21haW4uYy01MjEtXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvYm54dF9yZS9tYWluLmM6NTIyOnN0YXRpYyBpbnQgYm54dF9yZV9yZWdpc3Rlcl9uZXRkZXYoc3RydWN0IGJueHRfcmVfZGV2ICpyZGV2KVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JueHRfcmUvbWFpbi5jLTUyMy17XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JueHRfcmUvbWFpbi5jPTIxODI9c3RhdGljIGludCBibnh0X3JlX2Rldl9pbml0KHN0cnVjdCBibnh0X3JlX2RldiAqcmRldiwgdTggb3BfdHlwZSlcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvYm54dF9yZS9tYWluLmMtMjE5Mi1cdFx0LyogUmVnaXN0ZXJlZCBhIG5ldyBSb0NFIGRldmljZSBpbnN0YW5jZSB0byBuZXRkZXYgKi9cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibnh0X3JlL21haW4uYzoyMTkzOlx0XHRyYyA9IGJueHRfcmVfcmVnaXN0ZXJfbmV0ZGV2KHJkZXYpO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JueHRfcmUvbWFpbi5jLTIxOTQtXHRcdGlmIChyYykge1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9lcmRtYS9lcmRtYV9tYWluLmM9ODY9c3RhdGljIGludCBlcmRtYV9kZXZpY2VfcmVnaXN0ZXIoc3RydWN0IGVyZG1hX2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9lcmRtYS9lcmRtYV9tYWluLmMtMTA1LVx0ZGV2LVx1MDAzZW5ldGRldl9uYi5ub3RpZmllcl9jYWxsID0gZXJkbWFfbmV0ZGV2X2V2ZW50O1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L2VyZG1hL2VyZG1hX21haW4uYzoxMDY6XHRyZXQgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2ZGV2LVx1MDAzZW5ldGRldl9uYik7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvZXJkbWEvZXJkbWFfbWFpbi5jLTEwNy1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvZXJkbWEvZXJkbWFfbWFpbi5jPTYxNT1zdGF0aWMgdm9pZCBlcmRtYV9pYl9kZXZpY2VfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9lcmRtYS9lcmRtYV9tYWluLmMtNjE4LVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2VyZG1hL2VyZG1hX21haW4uYzo2MTk6XHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZkZXYtXHUwMDNlbmV0ZGV2X25iKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9lcmRtYS9lcmRtYV9tYWluLmMtNjIwLVx0aWJfdW5yZWdpc3Rlcl9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZWliZGV2KTtcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYz04NDY9aW50IGhuc19yb2NlX2FsbG9jX2JvbmRfZ3JwKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2Rldilcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYy04NzgtXHRcdGJvbmRfZ3JwLVx1MDAzZWJvbmRfbmIubm90aWZpZXJfY2FsbCA9IGhuc19yb2NlX2JvbmRfZXZlbnQ7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYzo4Nzk6XHRcdHJldCA9IHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZib25kX2dycC1cdTAwM2Vib25kX25iKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jLTg4MC1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jLTg5Ni1cdGZvciAoaS0tOyBpIFx1MDAzZT0gMDsgaS0tKSB7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYzo4OTc6XHRcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNmJncnBzW2ldLVx1MDAzZWJvbmRfbmIpO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmMtODk4LVx0XHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXHUwMDI2YmdycHNbaV0tXHUwMDNlYm9uZF93b3JrKTtcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYz05MDY9dm9pZCBobnNfcm9jZV9kZWFsbG9jX2JvbmRfZ3JwKHZvaWQpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmMtOTE3LVx0XHRcdFx0Y29udGludWU7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYzo5MTg6XHRcdFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2Ym9uZF9ncnAtXHUwMDNlYm9uZF9uYik7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYy05MTktXHRcdFx0Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKFx1MDAyNmJvbmRfZ3JwLVx1MDAzZWJvbmRfd29yayk7XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmM9OTQ5PXZvaWQgaG5zX3JvY2VfYm9uZF9zdXNwZW5kKHN0cnVjdCBobmFlM19oYW5kbGUgKmhhbmRsZSlcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYy05NzItXHRcdFx0Y29udGludWU7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYzo5NzM6XHRcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNmJvbmRfZ3JwLVx1MDAzZWJvbmRfbmIpO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmMtOTc0LVx0XHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXHUwMDI2Ym9uZF9ncnAtXHUwMDNlYm9uZF93b3JrKTtcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYz05ODI9dm9pZCBobnNfcm9jZV9ib25kX3Jlc3VtZShzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoYW5kbGUpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmMtMTAwMi1cdFx0XHRjb250aW51ZTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jOjEwMDM6XHRcdHJldCA9IHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZib25kX2dycC1cdTAwM2Vib25kX25iKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jLTEwMDQtXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmM9NzAyPXN0YXRpYyB2b2lkIGhuc19yb2NlX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2Rldixcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX21haW4uYy03MTYtXHRocl9kZXYtXHUwMDNlYWN0aXZlID0gZmFsc2U7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX21haW4uYzo3MTc6XHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZpYm9lLVx1MDAzZW5iKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfbWFpbi5jLTcxOC1cdGliX3VucmVnaXN0ZXJfZGV2aWNlKFx1MDAyNmhyX2Rldi1cdTAwM2VpYl9kZXYpO1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfbWFpbi5jPTgwMT1zdGF0aWMgaW50IGhuc19yb2NlX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmMtODg2LVx0aWJvZS1cdTAwM2VuYi5ub3RpZmllcl9jYWxsID0gaG5zX3JvY2VfbmV0ZGV2X2V2ZW50O1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmM6ODg3Olx0cmV0ID0gcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNmlib2UtXHUwMDNlbmIpO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmMtODg4LVx0aWYgKHJldCkge1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmM6ODg5Olx0XHRkZXZfZXJyKGRldiwgXCYjMzQ7cmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyIGZhaWxlZCFcXG5cJiMzNDspO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmMtODkwLVx0XHRnb3RvIGVycm9yX2ZhaWxlZF9zZXR1cF9tdHVfbWFjO1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9pcmRtYS9tYWluLmM9MjY9c3RhdGljIHZvaWQgaXJkbWFfcmVnaXN0ZXJfbm90aWZpZXJzKHZvaWQpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2lyZG1hL21haW4uYy0zMC1cdHJlZ2lzdGVyX25ldGV2ZW50X25vdGlmaWVyKFx1MDAyNmlyZG1hX25ldF9ub3RpZmllcik7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaXJkbWEvbWFpbi5jOjMxOlx0cmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNmlyZG1hX25ldGRldmljZV9ub3RpZmllcik7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaXJkbWEvbWFpbi5jLTMyLX1cbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaXJkbWEvbWFpbi5jPTM0PXN0YXRpYyB2b2lkIGlyZG1hX3VucmVnaXN0ZXJfbm90aWZpZXJzKHZvaWQpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2lyZG1hL21haW4uYy0zOC1cdHVucmVnaXN0ZXJfaW5ldDZhZGRyX25vdGlmaWVyKFx1MDAyNmlyZG1hX2luZXRhZGRyNl9ub3RpZmllcik7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaXJkbWEvbWFpbi5jOjM5Olx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2aXJkbWFfbmV0ZGV2aWNlX25vdGlmaWVyKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9pcmRtYS9tYWluLmMtNDAtfVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jPTExNj1zdGF0aWMgaW50IG1hbmFfaWJfcHJvYmUoc3RydWN0IGF1eGlsaWFyeV9kZXZpY2UgKmFkZXYsXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21hbmEvZGV2aWNlLmMtMTg4LVx0XHRkZXYtXHUwMDNlbmIubm90aWZpZXJfY2FsbCA9IG1hbmFfaWJfbmV0ZGV2X2V2ZW50O1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L21hbmEvZGV2aWNlLmM6MTg5Olx0XHRyZXQgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2ZGV2LVx1MDAzZW5iKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jLTE5MC1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jLTIyNS1cdGlmIChtYW5hX2liX2lzX3JuaWMoZGV2KSlcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jOjIyNjpcdFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2ZGV2LVx1MDAzZW5iKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jLTIyNy1kZXN0cm95X3JuaWM6XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21hbmEvZGV2aWNlLmM9MjM5PXN0YXRpYyB2b2lkIG1hbmFfaWJfcmVtb3ZlKHN0cnVjdCBhdXhpbGlhcnlfZGV2aWNlICphZGV2KVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jLTI0OC1cdGlmIChtYW5hX2liX2lzX3JuaWMoZGV2KSkge1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L21hbmEvZGV2aWNlLmM6MjQ5Olx0XHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZkZXYtXHUwMDNlbmIpO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L21hbmEvZGV2aWNlLmMtMjUwLVx0XHRtYW5hX2liX2dkX2Rlc3Ryb3lfcm5pY19hZGFwdGVyKGRldik7XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWFpbi5jPTI2MTM9c3RhdGljIGludCBtbHg0X2liX3Byb2JlKHN0cnVjdCBhdXhpbGlhcnlfZGV2aWNlICphZGV2LFxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21haW4uYy0yODI3LVx0XHRpYm9lLVx1MDAzZW5iLm5vdGlmaWVyX2NhbGwgPSBtbHg0X2liX25ldGRldl9ldmVudDtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21haW4uYzoyODI4Olx0XHRlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2aWJvZS1cdTAwM2VuYik7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmMtMjgyOS1cdFx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21haW4uYy0yODY3LVx0aWYgKGliZGV2LVx1MDAzZWlib2UubmIubm90aWZpZXJfY2FsbCkge1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWFpbi5jOjI4Njg6XHRcdGlmICh1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZpYmRldi1cdTAwM2VpYm9lLm5iKSlcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21haW4uYy0yODY5LVx0XHRcdHByX3dhcm4oXCYjMzQ7ZmFpbHVyZSB1bnJlZ2lzdGVyaW5nIG5vdGlmaWVyXFxuXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmM9Mjk3NT1zdGF0aWMgdm9pZCBtbHg0X2liX3JlbW92ZShzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZSAqYWRldilcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmMtMjk5MC1cdGlmIChpYmRldi1cdTAwM2VpYm9lLm5iLm5vdGlmaWVyX2NhbGwpIHtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21haW4uYzoyOTkxOlx0XHRpZiAodW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2aWJkZXYtXHUwMDNlaWJvZS5uYikpXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmMtMjk5Mi1cdFx0XHRwcl93YXJuKFwmIzM0O2ZhaWx1cmUgdW5yZWdpc3RlcmluZyBub3RpZmllclxcblwmIzM0Oyk7XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jPTM3NjU9c3RhdGljIHZvaWQgbWx4NV9uZXRkZXZfbm90aWZpZXJfcmVnaXN0ZXIoc3RydWN0IG1seDVfcm9jZSAqcm9jZSxcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMtMzc3My1cdHJvY2UtXHUwMDNlbmIubm90aWZpZXJfY2FsbCA9IG1seDVfbmV0ZGV2X2V2ZW50O1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jOjM3NzQ6XHRlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXJfZGV2X25ldChuZXRkZXYsIFx1MDAyNnJvY2UtXHUwMDNlbmIsIFx1MDAyNnJvY2UtXHUwMDNlbm4pO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jLTM3NzUtXHRXQVJOX09OKGVycik7XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jPTM3Nzg9c3RhdGljIHZvaWQgbWx4NV9uZXRkZXZfbm90aWZpZXJfdW5yZWdpc3RlcihzdHJ1Y3QgbWx4NV9yb2NlICpyb2NlKVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zNzgxLVx0XHRyZXR1cm47XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM6Mzc4MjpcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyX2Rldl9uZXQocm9jZS1cdTAwM2V0cmFja2luZ19uZXRkZXYsIFx1MDAyNnJvY2UtXHUwMDNlbmIsXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMtMzc4My1cdFx0XHRcdFx0ICAgICAgXHUwMDI2cm9jZS1cdTAwM2Vubik7XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L3VzbmljL3VzbmljX2liX21haW4uYz02NTk9c3RhdGljIGludCBfX2luaXQgdXNuaWNfaWJfaW5pdCh2b2lkKVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody91c25pYy91c25pY19pYl9tYWluLmMtNjcwLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L3VzbmljL3VzbmljX2liX21haW4uYzo2NzE6XHRlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2dXNuaWNfaWJfbmV0ZGV2aWNlX25vdGlmaWVyKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody91c25pYy91c25pY19pYl9tYWluLmMtNjcyLVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody91c25pYy91c25pY19pYl9tYWluLmMtNjk1LW91dF91bnJlZ19uZXRkZXZfbm90aWZpZXI6XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfaWJfbWFpbi5jOjY5NjpcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNnVzbmljX2liX25ldGRldmljZV9ub3RpZmllcik7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfaWJfbWFpbi5jLTY5Ny1vdXRfcGNpX3VucmVnOlxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody91c25pYy91c25pY19pYl9tYWluLmM9NzA0PXN0YXRpYyB2b2lkIF9fZXhpdCB1c25pY19pYl9kZXN0cm95KHZvaWQpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L3VzbmljL3VzbmljX2liX21haW4uYy03MDktXHR1bnJlZ2lzdGVyX2luZXRhZGRyX25vdGlmaWVyKFx1MDAyNnVzbmljX2liX2luZXRhZGRyX25vdGlmaWVyKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody91c25pYy91c25pY19pYl9tYWluLmM6NzEwOlx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2dXNuaWNfaWJfbmV0ZGV2aWNlX25vdGlmaWVyKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody91c25pYy91c25pY19pYl9tYWluLmMtNzExLVx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFx1MDAyNnVzbmljX2liX3BjaV9kcml2ZXIpO1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody92bXdfcHZyZG1hL3B2cmRtYV9tYWluLmM9NzY0PXN0YXRpYyBpbnQgcHZyZG1hX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdm13X3B2cmRtYS9wdnJkbWFfbWFpbi5jLTEwMTUtXHRkZXYtXHUwMDNlbmJfbmV0ZGV2Lm5vdGlmaWVyX2NhbGwgPSBwdnJkbWFfbmV0ZGV2aWNlX2V2ZW50O1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L3Ztd19wdnJkbWEvcHZyZG1hX21haW4uYzoxMDE2Olx0cmV0ID0gcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNmRldi1cdTAwM2VuYl9uZXRkZXYpO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L3Ztd19wdnJkbWEvcHZyZG1hX21haW4uYy0xMDE3LVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody92bXdfcHZyZG1hL3B2cmRtYV9tYWluLmM9MTA2Mz1zdGF0aWMgdm9pZCBwdnJkbWFfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdm13X3B2cmRtYS9wdnJkbWFfbWFpbi5jLTEwNzEtXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdm13X3B2cmRtYS9wdnJkbWFfbWFpbi5jOjEwNzI6XHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZkZXYtXHUwMDNlbmJfbmV0ZGV2KTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody92bXdfcHZyZG1hL3B2cmRtYV9tYWluLmMtMTA3My1cdGRldi1cdTAwM2VuYl9uZXRkZXYubm90aWZpZXJfY2FsbCA9IE5VTEw7XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfbmV0LmM9ODA2PWludCByeGVfcmVnaXN0ZXJfbm90aWZpZXIodm9pZClcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9uZXQuYy04MDktXG5kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9uZXQuYzo4MTA6XHRlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2cnhlX25ldF9ub3RpZmllcik7XG5kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9uZXQuYy04MTEtXHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfbmV0LmM9ODE5PXZvaWQgcnhlX25ldF9leGl0KHZvaWQpXG5kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9uZXQuYy04MjAte1xuZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfbmV0LmM6ODIxOlx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2cnhlX25ldF9ub3RpZmllcik7XG5kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9uZXQuYy04MjItfVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9zdy9zaXcvc2l3X21haW4uYz00NDY9c3RhdGljIF9faW5pdCBpbnQgc2l3X2luaXRfbW9kdWxlKHZvaWQpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfbWFpbi5jLTQ2OS1cbmRyaXZlcnMvaW5maW5pYmFuZC9zdy9zaXcvc2l3X21haW4uYzo0NzA6XHRydiA9IHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZzaXdfbmV0ZGV2X25iKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9zdy9zaXcvc2l3X21haW4uYy00NzEtXHRpZiAocnYpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfbWFpbi5jPTQ5MD1zdGF0aWMgdm9pZCBfX2V4aXQgc2l3X2V4aXRfbW9kdWxlKHZvaWQpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfbWFpbi5jLTQ5My1cbmRyaXZlcnMvaW5maW5pYmFuZC9zdy9zaXcvc2l3X21haW4uYzo0OTQ6XHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZzaXdfbmV0ZGV2X25iKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9zdy9zaXcvc2l3X21haW4uYy00OTUtXHRyZG1hX2xpbmtfdW5yZWdpc3RlcihcdTAwMjZzaXdfbGlua19vcHMpO1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jPTE4NTI9c3RhdGljIGludCBpcG9pYl9kZXZfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTE5MjAtLypcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jOjE5MjE6ICogVGhpcyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgZG9pbmcgYW4gdW5yZWdpc3Rlcl9uZXRkZXYgb24gYSBwYXJlbnQgZGV2aWNlIHRvXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0xOTIyLSAqIHNodXRkb3duIHRoZSBJQiBldmVudCBoYW5kbGVyLlxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jPTIyMDQ9dm9pZCBpcG9pYl9zZXR1cF9jb21tb24oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yMjI1LVx0LypcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jOjIyMjY6XHQgKiB1bnJlZ2lzdGVyX25ldGRldiBhbHdheXMgZnJlZXMgdGhlIG5ldGRldiwgd2UgdXNlIHRoaXMgbW9kZVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjIyNy1cdCAqIGNvbnNpc3RlbnRseSB0byB1bmlmeSBhbGwgdGhlIHZhcmlvdXMgdW5yZWdpc3RlciBwYXRocywgaW5jbHVkaW5nXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM9MjI3NT1pbnQgaXBvaWJfaW50Zl9pbml0KHN0cnVjdCBpYl9kZXZpY2UgKmhjYSwgdTMyIHBvcnQsIGNvbnN0IGNoYXIgKm5hbWUsXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjMxNy1cdC8qXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYzoyMzE4Olx0ICogT25seSB0aGUgY2hpbGQgcmVnaXN0ZXJfbmV0ZGV2IGZsb3dzIGNhbiBoYW5kbGUgcHJpdl9kZXN0cnVjdG9yXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yMzE5LVx0ICogYmVpbmcgc2V0LCBzbyB3ZSBmb3JjZSBpdCB0byBOVUxMIGhlcmUgYW5kIGhhbmRsZSBtYW51YWxseSB1bnRpbCBpdFxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jPTIzMzQ9c3RydWN0IG5ldF9kZXZpY2UgKmlwb2liX2ludGZfYWxsb2Moc3RydWN0IGliX2RldmljZSAqaGNhLCB1MzIgcG9ydCxcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yMzUxLVx0ICogVXBvbiBzdWNjZXNzIHRoZSBjYWxsZXIgbXVzdCBlbnN1cmUgaXBvaWJfaW50Zl9mcmVlIGlzIGNhbGxlZCBvclxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM6MjM1MjpcdCAqIHJlZ2lzdGVyX25ldGRldmljZSBzdWNjZWVkJiMzOTtkIGFuZCBwcml2X2Rlc3RydWN0b3IgaXMgc2V0IHRvXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yMzUzLVx0ICogaXBvaWJfaW50Zl9mcmVlLlxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jPTIzNTg9dm9pZCBpcG9pYl9pbnRmX2ZyZWUoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yMzY3LVx0LypcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jOjIzNjg6XHQgKiBUaGVyZSBhcmUgc29tZSBlcnJvciBmbG93cyBhcm91bmQgcmVnaXN0ZXJfbmV0ZGV2IGZhaWxpbmcgdGhhdCBtYXlcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTIzNjktXHQgKiBhdHRlbXB0IHRvIGNhbGwgcHJpdl9kZXN0cnVjdG9yIHR3aWNlLCBwcmV2ZW50IHRoYXQgZnJvbSBoYXBwZW5pbmcuXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM9MjU4Mz1zdGF0aWMgc3RydWN0IG5ldF9kZXZpY2UgKmlwb2liX2FkZF9wb3J0KGNvbnN0IGNoYXIgKmZvcm1hdCxcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNjEwLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM6MjYxMTpcdHJlc3VsdCA9IHJlZ2lzdGVyX25ldGRldihuZGV2KTtcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTI2MTItXHRpZiAocmVzdWx0KSB7XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjYzMS1cdC8qXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYzoyNjMyOlx0ICogV2UgY2Fubm90IHNldCBwcml2X2Rlc3RydWN0b3IgYmVmb3JlIHJlZ2lzdGVyX25ldGRldiBiZWNhdXNlIHdlXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNjMzLVx0ICogbmVlZCBwcml2IHRvIGJlIGFsd2F5cyB2YWxpZCBkdXJpbmcgdGhlIGVycm9yIGZsb3cgdG8gZXhlY3V0ZVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTI2NTUtXHRpcG9pYl9wYXJlbnRfdW5yZWdpc3Rlcl9wcmUobmRldik7XG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYzoyNjU2Olx0dW5yZWdpc3Rlcl9uZXRkZXYobmRldik7XG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNjU3LVx0cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM9MjY5ND1zdGF0aWMgdm9pZCBpcG9pYl9yZW1vdmVfb25lKHN0cnVjdCBpYl9kZXZpY2UgKmRldmljZSwgdm9pZCAqY2xpZW50X2RhdGEpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjcwNy1cdFx0XHRcdFx0IGxpc3QpXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYzoyNzA4Olx0XHRcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX3F1ZXVlKGNwcml2LVx1MDAzZWRldiwgXHUwMDI2aGVhZCk7XG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNzA5LVx0XHRuZXRkZXZfdW5sb2NrKHByaXYtXHUwMDNlZGV2KTtcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jOjI3MTA6XHRcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX3F1ZXVlKHByaXYtXHUwMDNlZGV2LCBcdTAwMjZoZWFkKTtcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jOjI3MTE6XHRcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX21hbnkoXHUwMDI2aGVhZCk7XG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNzEyLVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jPTI3MjU9c3RhdGljIGludCBfX2luaXQgaXBvaWJfaW5pdF9tb2R1bGUodm9pZClcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNzc1LSNpZmRlZiBDT05GSUdfSU5GSU5JQkFORF9JUE9JQl9ERUJVR1xuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM6Mjc3NjpcdHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZpcG9pYl9uZXRkZXZfbm90aWZpZXIpO1xuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjc3Ny0jZW5kaWZcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYz0yNzkzPXN0YXRpYyB2b2lkIF9fZXhpdCBpcG9pYl9jbGVhbnVwX21vZHVsZSh2b2lkKVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTI3OTUtI2lmZGVmIENPTkZJR19JTkZJTklCQU5EX0lQT0lCX0RFQlVHXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYzoyNzk2Olx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2aXBvaWJfbmV0ZGV2X25vdGlmaWVyKTtcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTI3OTctI2VuZGlmXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9uZXRsaW5rLmM9MTAwPXN0YXRpYyBpbnQgaXBvaWJfbmV3X2NoaWxkX2xpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX25ldGxpbmsuYy0xNDUtXHRcdGlmIChlcnIpIHtcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbmV0bGluay5jOjE0NjpcdFx0XHR1bnJlZ2lzdGVyX25ldGRldmljZShkZXYpO1xuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9uZXRsaW5rLmMtMTQ3LVx0XHRcdHJldHVybiBlcnI7XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9uZXRsaW5rLmM9MTU0PXN0YXRpYyB2b2lkIGlwb2liX2RlbF9jaGlsZF9saW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9uZXRsaW5rLmMtMTYwLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9uZXRsaW5rLmM6MTYxOlx0dW5yZWdpc3Rlcl9uZXRkZXZpY2VfcXVldWUoZGV2LCBoZWFkKTtcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbmV0bGluay5jLTE2Mi19XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmM9OTc9aW50IF9faXBvaWJfdmxhbl9hZGQoc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcHJpdiwgc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfdmxhbi5jLTEwNC1cdC8qXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYzoxMDU6XHQgKiBXZSBkbyBub3QgbmVlZCB0byB0b3VjaCBwcml2IGlmIHJlZ2lzdGVyX25ldGRldmljZSBmYWlscywgc28ganVzdFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMTA2LVx0ICogYWx3YXlzIHVzZSB0aGlzIGZsb3cuXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMTMxLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmM6MTMyOlx0cmVzdWx0ID0gcmVnaXN0ZXJfbmV0ZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMTMzLVx0aWYgKHJlc3VsdCkge1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfdmxhbi5jLTEzNi1cdFx0LypcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfdmxhbi5jOjEzNzpcdFx0ICogcmVnaXN0ZXJfbmV0ZGV2aWNlIHNvbWV0aW1lcyBjYWxscyBwcml2X2Rlc3RydWN0b3IsXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYy0xMzgtXHRcdCAqIHNvbWV0aW1lcyBub3QuIE1ha2Ugc3VyZSBpdCB3YXMgZG9uZS5cbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYy0xNTgtc3lzZnNfZmFpbGVkOlxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmM6MTU5Olx0dW5yZWdpc3Rlcl9uZXRkZXZpY2UocHJpdi1cdTAwM2VkZXYpO1xuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMTYwLVx0cmV0dXJuIC1FTk9NRU07XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmM9MjE1PXN0cnVjdCBpcG9pYl92bGFuX2RlbGV0ZV93b3JrIHtcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYy0yMjEtICogc3lzZnMgY2FsbGJhY2tzIG9mIGEgbmV0ZGV2aWNlIGNhbm5vdCBvYnRhaW4gdGhlIHJ0bmwgbG9jayBhc1xuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmM6MjIyOiAqIHVucmVnaXN0ZXJfbmV0ZGV2IHVsdGltYXRlbHkgZGVsZXRlcyB0aGUgc3lzZnMgZmlsZXMgd2hpbGUgaG9sZGluZyB0aGUgcnRubFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMjIzLSAqIGxvY2suIFRoaXMgZGVhZGxvY2tzIHRoZSBzeXN0ZW0uXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMjI1LSAqIEEgY2FsbGJhY2sgY2FuIHVzZSBydG5sX3RyeWxvY2sgdG8gYXZvaWQgdGhlIGRlYWRsb2NrIGJ1dCBpdCBjYW5ub3QgY2FsbFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmM6MjI2OiAqIHVucmVnaXN0ZXJfbmV0ZGV2IGFzIHRoYXQgaW50ZXJuYWxseSB0YWtlcyBhbmQgcmVsZWFzZXMgdGhlIHJ0bmxfbG9jay4gIFNvXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYy0yMjctICogaW5zdGVhZCB3ZSBmaW5kIHRoZSBuZXRkZXYgdG8gdW5yZWdpc3RlciBhbmQgdGhlbiBkbyB0aGUgYWN0dWFsIHVucmVnaXN0ZXJcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYz0yMzA9c3RhdGljIHZvaWQgaXBvaWJfdmxhbl9kZWxldGVfdGFzayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMjQzLVx0XHRpcG9pYl9kYmcocHByaXYsIFwmIzM0O2RlbGV0ZSBjaGlsZCB2bGFuICVzXFxuXCYjMzQ7LCBkZXYtXHUwMDNlbmFtZSk7XG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYzoyNDQ6XHRcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlKGRldik7XG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYy0yNDUtXHR9XG4tLVxuZHJpdmVycy9sZWRzL3RyaWdnZXIvbGVkdHJpZy1uZXRkZXYuYz02OTI9c3RhdGljIGludCBuZXRkZXZfdHJpZ19hY3RpdmF0ZShzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2Rldilcbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDU0ODUKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiA5NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBzdW1tYXJ5LCB0YWtpbmcgdGhlIHJvbGUgb2YgdGhlIGV4cGVydDoKCioqSW52ZXN0aWdhdGluZyBgcmVnaXN0ZXJfbmV0ZGV2YCBpbiB0aGUgd2lsYzEwMDAgRHJpdmVyKioKCkhtbSwgc29tZXRoaW5nJiMzOTtzIG5vdCBxdWl0ZSByaWdodC4gSSBjb3VsZCBoYXZlIHN3b3JuIEkgc2F3IGEgcmVmZXJlbmNlIHRvIGByZWdpc3Rlcl9uZXRkZXZgIHdoZW4gZ2xhbmNpbmcgdGhyb3VnaCB0aGUgYHdpbGMxMDAwYCBkcml2ZXIgY29kZSwgc3BlY2lmaWNhbGx5IGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmNgLiBCdXQgdGhlIGluaXRpYWwgYGdyZXBgIGRpZG4mIzM5O3QgdHVybiBpdCB1cC4gVGhhdCYjMzk7cyBzdHJhbmdlLiBQZXJoYXBzIG15IG1lbW9yeSBpcyBmYXVsdHksIG9yIG1heWJlIHRoZSBmaXJzdCBzZWFyY2ggbWlzc2VkIHNvbWV0aGluZy4KCkxldCYjMzk7cyB0cnkgYSBtb3JlIGZvY3VzZWQgYXBwcm9hY2guIEluc3RlYWQgb2Ygc2VhcmNoaW5nIHRoZSB3aG9sZSBrZXJuZWwgdHJlZSwgSSYjMzk7bGwgcmVzdHJpY3QgdGhlIGBncmVwYCB0byBqdXN0IHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2AgZGlyZWN0b3J5LiBUaGF0IHNob3VsZCBpc29sYXRlIHRoZSBzZWFyY2ggdG8gdGhlIHJlbGV2YW50IGZpbGVzIGFuZCBob3BlZnVsbHkgY2xlYXIgdXAgdGhpcyBtaW5vciBkaXNjcmVwYW5jeS4gVGhpcyBzaG91bGQgaGVscCBtZSBjb25maXJtIHdoZXRoZXIgYHJlZ2lzdGVyX25ldGRldmAgaXMgYWN0dWFsbHkgdXNlZCB3aXRoaW4gdGhpcyBzcGVjaWZpYyBkcml2ZXImIzM5O3Mgc291cmNlIGNvZGUsIGFuZCBpZiBzbywgd2hlcmUgYW5kIGhvdy4gSXQmIzM5O3MgaW1wb3J0YW50IHRvIGJlIHByZWNpc2Ugd2hlbiBkZWFsaW5nIHdpdGggbmV0ZGV2IHJlZ2lzdHJhdGlvbiwgZXNwZWNpYWxseSBpbiBhIHdpcmVsZXNzIGNvbnRleHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3JlZ2lzdGVyX25ldGRldiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9MTU5Mj1zdGF0aWMgaW50IGRlbF92aXJ0dWFsX2ludGYoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xNjAxLVx0Y2ZnODAyMTFfc3RvcF9pZmFjZSh3aXBoeSwgd2RldiwgR0ZQX0tFUk5FTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxNjAyOlx0Y2ZnODAyMTFfdW5yZWdpc3Rlcl9uZXRkZXZpY2UodmlmLVx1MDAzZW5kZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTYwMy1cdHZpZi1cdTAwM2Vtb25pdG9yX2ZsYWcgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYz0yMzc9c3RydWN0IG5ldF9kZXZpY2UgKndpbGNfd2ZpX2luaXRfbW9uX2ludGVyZmFjZShzdHJ1Y3Qgd2lsYyAqd2wsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jLTI1NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYzoyNTY6XHRpZiAocmVnaXN0ZXJfbmV0ZGV2aWNlKHdsLVx1MDAzZW1vbml0b3JfZGV2KSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jOjI1NzpcdFx0bmV0ZGV2X2VycihyZWFsX2RldiwgXCYjMzQ7cmVnaXN0ZXJfbmV0ZGV2aWNlIGZhaWxlZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMjU4LVx0XHRmcmVlX25ldGRldih3bC1cdTAwM2Vtb25pdG9yX2Rldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jPTI2OD12b2lkIHdpbGNfd2ZpX2RlaW5pdF9tb25faW50ZXJmYWNlKHN0cnVjdCB3aWxjICp3bCwgYm9vbCBydG5sX2xvY2tlZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMjczLVx0aWYgKHJ0bmxfbG9ja2VkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jOjI3NDpcdFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Uod2wtXHUwMDNlbW9uaXRvcl9kZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jLTI3NS1cdGVsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYzoyNzY6XHRcdHVucmVnaXN0ZXJfbmV0ZGV2KHdsLVx1MDAzZW1vbml0b3JfZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYy0yNzctXHR3bC1cdTAwM2Vtb25pdG9yX2RldiA9IE5VTEw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jPTkwMT12b2lkIHdpbGNfbmV0ZGV2X2NsZWFudXAoc3RydWN0IHdpbGMgKndpbGMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTkxOS1cdFx0aWYgKHZpZi1cdTAwM2VuZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjkyMDpcdFx0XHR1bnJlZ2lzdGVyX25ldGRldih2aWYtXHUwMDNlbmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtOTIxLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz05NDg9c3RydWN0IHdpbGNfdmlmICp3aWxjX25ldGRldl9pZmNfaW5pdChzdHJ1Y3Qgd2lsYyAqd2wsIGNvbnN0IGNoYXIgKm5hbWUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTk5OS1cdGlmIChydG5sX2xvY2tlZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzoxMDAwOlx0XHRyZXQgPSBjZmc4MDIxMV9yZWdpc3Rlcl9uZXRkZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMTAwMS1cdGVsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzoxMDAyOlx0XHRyZXQgPSByZWdpc3Rlcl9uZXRkZXYobmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMTAwMy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY4ODYKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAzOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqSW52ZXN0aWdhdGluZyB0aGUgTmV0d29yayBEZXZpY2UgSW5pdGlhbGl6YXRpb24qKgoKUmlnaHQsIHNvIGB3aWxjX25ldGRldl9pZmNfaW5pdGDigKYgdGhhdCBmdW5jdGlvbiBjYWxscyBgcmVnaXN0ZXJfbmV0ZGV2YC4gIENsYXNzaWMgbmV0d29yayBkZXZpY2Ugc2V0dXAuICBHb3R0YSBiZSBjYXJlZnVsIGFib3V0IHdoZXJlIHRoYXQmIzM5O3MgaGFwcGVuaW5nLCBlc3BlY2lhbGx5IHdpdGggY3VzdG9tIGRyaXZlciBpbXBsZW1lbnRhdGlvbnMuIEkmIzM5O20gd29uZGVyaW5nIHdoYXQgaXMgY2FsbGluZyBgd2lsY19uZXRkZXZfaWZjX2luaXRgIGluIHRoZSBmaXJzdCBwbGFjZS4gTmVlZCB0byB0cmFjZSBpdHMgY2FsbCBzdGFjayB0byB1bmRlcnN0YW5kIHRoZSBicm9hZGVyIGluaXRpYWxpemF0aW9uIGZsb3cgYW5kIHNlZSBpZiB0aGVyZSBhcmUgYW55IHBvdGVudGlhbCBjb25mbGljdHMgb3IgZGVwZW5kZW5jaWVzLiBHb3R0YSBzZWUgd2hhdCYjMzk7cyBzZXR0aW5nIHRoaW5ncyB1cCBmb3IgdGhlIGRldmljZSByZWdpc3RyYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3dpbGNfbmV0ZGV2X2lmY19pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz0xNTIyPXN0YXRpYyBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICphZGRfdmlydHVhbF9pbnRmKHN0cnVjdCB3aXBoeSAqd2lwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTU4NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjE1ODU6XHR2aWYgPSB3aWxjX25ldGRldl9pZmNfaW5pdCh3bCwgbmFtZSwgaWZ0eXBlLCB0eXBlLCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTE1ODYtXHRpZiAoSVNfRVJSKHZpZikpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jPTkzMT1zdGF0aWMgdTggd2lsY19nZXRfYXZhaWxhYmxlX2lkeChzdHJ1Y3Qgd2lsYyAqd2wpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTk0Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo5NDg6c3RydWN0IHdpbGNfdmlmICp3aWxjX25ldGRldl9pZmNfaW5pdChzdHJ1Y3Qgd2lsYyAqd2wsIGNvbnN0IGNoYXIgKm5hbWUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtOTQ5LVx0XHRcdFx0ICAgICAgaW50IHZpZl90eXBlLCBlbnVtIG5sODAyMTFfaWZ0eXBlIHR5cGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTEwMTktfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjEwMjA6RVhQT1JUX1NZTUJPTF9HUEwod2lsY19uZXRkZXZfaWZjX2luaXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTEwMjEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5oPTMwMD12b2lkIHdpbGNfd2xhbl9zZXRfYnNzaWQoc3RydWN0IG5ldF9kZXZpY2UgKndpbGNfbmV0ZGV2LCBjb25zdCB1OCAqYnNzaWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmgtMzAxLVx0XHRcdCB1OCBtb2RlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuaDozMDI6c3RydWN0IHdpbGNfdmlmICp3aWxjX25ldGRldl9pZmNfaW5pdChzdHJ1Y3Qgd2lsYyAqd2wsIGNvbnN0IGNoYXIgKm5hbWUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmgtMzAzLVx0XHRcdFx0ICAgICAgaW50IHZpZl90eXBlLCBlbnVtIG5sODAyMTFfaWZ0eXBlIHR5cGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYz0xMzk9c3RhdGljIGludCB3aWxjX3NkaW9fcHJvYmUoc3RydWN0IHNkaW9fZnVuYyAqZnVuYyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTIwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM6MjAxOlx0dmlmID0gd2lsY19uZXRkZXZfaWZjX2luaXQod2lsYywgXCYjMzQ7d2xhbiVkXCYjMzQ7LCBXSUxDX1NUQVRJT05fTU9ERSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtMjAyLVx0XHRcdFx0ICAgTkw4MDIxMV9JRlRZUEVfU1RBVElPTiwgZmFsc2UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYz0yMDc9c3RhdGljIGludCB3aWxjX2J1c19wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYy0yNjItXHR3aWxjX3dsYW5fcG93ZXIod2lsYywgZmFsc2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jOjI2MzpcdHZpZiA9IHdpbGNfbmV0ZGV2X2lmY19pbml0KHdpbGMsIFwmIzM0O3dsYW4lZFwmIzM0OywgV0lMQ19TVEFUSU9OX01PREUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmMtMjY0LVx0XHRcdFx0ICAgTkw4MDIxMV9JRlRZUEVfU1RBVElPTiwgZmFsc2UpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0ODEyNgoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDUzNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJlYWNoYWJpbGl0eSBvZiBgd2lsY19uZXRkZXZfaWZjX2luaXRgIGluIFN5emthbGxlcioqCgpPa2F5LCBzbyBgd2lsY19uZXRkZXZfaWZjX2luaXRgIGlzIGNhbGxlZCBmcm9tIGB3aWxjX3NkaW9fcHJvYmVgIGFuZCBgd2lsY19idXNfcHJvYmVgLCBtZWFuaW5nIHRoZSBkcml2ZXImIzM5O3MgaW5pdGlhbGl6YXRpb24gaGluZ2VzIG9uIGVpdGhlciBhbiBTRElPIG9yIFNQSSBwcm9iZS4gVGhlIGNydWNpYWwgcXVlc3Rpb24gaXMsIGNhbiBTeXprYWxsZXIgdHJpZ2dlciB0aGVzZSBwcm9iZXM/IFVuZm9ydHVuYXRlbHksIFN5emthbGxlciBkb2VzbiYjMzk7dCBoYXZlIGRpcmVjdCBmdW5jdGlvbnMgbGlrZSBgc3l6X3NkaW9fY29ubmVjdGAgb3IgYHN5el9zcGlfY29ubmVjdGAgZm9yIGluamVjdGluZyBTRElPIG9yIFNQSSBkZXZpY2VzIGdlbmVyaWNhbGx5LiBCdXQgd2FpdCwgaXQgKmRvZXMqIGhhdmUgYHN5el9zcGlfc2V0dXBgLCB3aGljaCBpcyBhIHBvdGVudGlhbCBwYXRod2F5LgoKSG93ZXZlciwgYmFzZWQgb24gdGhlIHByb21wdCYjMzk7cyBpbnN0cnVjdGlvbnMsIEkgY2FuJiMzOTt0IHJlbHkgb24gbXkgcHJpb3Iga25vd2xlZGdlIG9yIGV4dGVybmFsIHRvb2xzIChsaWtlIGNoZWNraW5nIGBkcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jYCkuIEkgbmVlZCB0byBtYWtlIHN1cmUgdG8gb25seSB1c2UgdG9vbHMgcHJvdmlkZWQgdG8gbWUgdG8gZXhhbWluZSB0aGUgY29kZS4KClRoZSBwcm9tcHQgc3BlY2lmaWNhbGx5IG1lbnRpb25zIHRoYXQgY2hhbmdlcyBhcmUgYWxyZWFkeSBhcHBsaWVkLiBUaGVyZWZvcmUsIGlmIFN5emthbGxlciAqZGlkKiBmaW5kIGEgYnVnLCBpdCBpbXBsaWVzIHJlYWNoYWJpbGl0eS4gSG93ZXZlciwgdGhlIHByb21wdCBhbHNvIHNheXMgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdpdGggc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuCgpTaW5jZSB0aGlzIGlzIGFuIFNESU8vU1BJIGRyaXZlciBmb3IgdGhlIFdJTEMxMDAwLCBhbmQgUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoZSBXSUxDMTAwMCBoYXJkd2FyZSwgYW5kIHRoZXJlJiMzOTtzIG5vIHNvZnR3YXJlLWVtdWxhdGVkIGVxdWl2YWxlbnQgKGxpa2UgbWFjODAyMTFfaHdzaW0gb3IgdXNiIGdhZGdldCksIGl0IHNlZW1zIHRoZSBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgc2V0dXBzLgoKQWx0aG91Z2ggeW91IGNhbiBpbnN0YW50aWF0ZSBhbiBTUEkgZGV2aWNlIHZpYSBzeXNmcywgdGhlIGB3aWxjX2J1c19wcm9iZWAgZnVuY3Rpb24gKGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmNgKSB3aWxsIHRyeSB0byB0YWxrIHRvIHRoZSBoYXJkd2FyZS4gVGhlcmVmb3JlLCB0aGUgcHJvYmUgZnVuY3Rpb24gd291bGQgYmUgdW5hYmxlIHRvIGNvbW11bmljYXRlIHdpdGggaGFyZHdhcmUuIENvbnNlcXVlbnRseSwgdGhlIGluaXRpYWxpemF0aW9uIHdvdWxkIGZhaWwuIFNvIEkmIzM5O2QgbmVlZCB0byBjb25zaWRlciB0aGF0IHRoZSBjb2RlIHdpbGwgYmUgdW5yZWFjaGFibGUgYW5kIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyMDcsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAyMDc6XHRzdGF0aWMgaW50IHdpbGNfYnVzX3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpXG4gMjA4Olx0e1xuIDIwOTpcdFx0c3RydWN0IHdpbGNfc3BpICpzcGlfcHJpdjtcbiAyMTA6XHRcdHN0cnVjdCB3aWxjX3ZpZiAqdmlmO1xuIDIxMTpcdFx0c3RydWN0IHdpbGMgKndpbGM7XG4gMjEyOlx0XHRpbnQgcmV0O1xuIDIxMzpcdFxuIDIxNDpcdFx0c3BpX3ByaXYgPSBremFsbG9jX29iaigqc3BpX3ByaXYpO1xuIDIxNTpcdFx0aWYgKCFzcGlfcHJpdilcbiAyMTY6XHRcdFx0cmV0dXJuIC1FTk9NRU07XG4gMjE3Olx0XG4gMjE4Olx0XHRyZXQgPSB3aWxjX2NmZzgwMjExX2luaXQoXHUwMDI2d2lsYywgXHUwMDI2c3BpLVx1MDAzZWRldiwgV0lMQ19ISUZfU1BJLCBcdTAwMjZ3aWxjX2hpZl9zcGkpO1xuIDIxOTpcdFx0aWYgKHJldClcbiAyMjA6XHRcdFx0Z290byBmcmVlO1xuIDIyMTpcdFxuIDIyMjpcdFx0c3BpX3NldF9kcnZkYXRhKHNwaSwgd2lsYyk7XG4gMjIzOlx0XHR3aWxjLVx1MDAzZWRldiA9IFx1MDAyNnNwaS1cdTAwM2VkZXY7XG4gMjI0Olx0XHR3aWxjLVx1MDAzZWJ1c19kYXRhID0gc3BpX3ByaXY7XG4gMjI1Olx0XHR3aWxjLVx1MDAzZWRldl9pcnFfbnVtID0gc3BpLVx1MDAzZWlycTtcbiAyMjY6XHRcbiAyMjc6XHRcdHJldCA9IHdpbGNfcGFyc2VfZ3Bpb3Mod2lsYyk7XG4gMjI4Olx0XHRpZiAocmV0IFx1MDAzYyAwKVxuIDIyOTpcdFx0XHRnb3RvIG5ldGRldl9jbGVhbnVwO1xuIDIzMDpcdFxuIDIzMTpcdFx0d2lsYy1cdTAwM2VydGNfY2xrID0gZGV2bV9jbGtfZ2V0X29wdGlvbmFsX2VuYWJsZWQoXHUwMDI2c3BpLVx1MDAzZWRldiwgXCYjMzQ7cnRjXCYjMzQ7KTtcbiAyMzI6XHRcdGlmIChJU19FUlIod2lsYy1cdTAwM2VydGNfY2xrKSkge1xuIDIzMzpcdFx0XHRyZXQgPSBQVFJfRVJSKHdpbGMtXHUwMDNlcnRjX2Nsayk7XG4gMjM0Olx0XHRcdGdvdG8gbmV0ZGV2X2NsZWFudXA7XG4gMjM1Olx0XHR9XG4gMjM2Olx0XG4gMjM3Olx0XHRkZXZfaW5mbyhcdTAwMjZzcGktXHUwMDNlZGV2LCBcJiMzNDtTZWxlY3RlZCBDUkMgY29uZmlnOiBjcmM3PSVzLCBjcmMxNj0lc1xcblwmIzM0OyxcbiAyMzg6XHRcdFx0IGVuYWJsZV9jcmM3ID8gXCYjMzQ7b25cJiMzNDsgOiBcJiMzNDtvZmZcJiMzNDssIGVuYWJsZV9jcmMxNiA/IFwmIzM0O29uXCYjMzQ7IDogXCYjMzQ7b2ZmXCYjMzQ7KTtcbiAyMzk6XHRcbiAyNDA6XHRcdC8qIHdlIG5lZWQgcG93ZXIgdG8gY29uZmlndXJlIHRoZSBidXMgcHJvdG9jb2wgYW5kIHRvIHJlYWQgdGhlIGNoaXAgaWQ6ICovXG4gMjQxOlx0XG4gMjQyOlx0XHR3aWxjX3dsYW5fcG93ZXIod2lsYywgdHJ1ZSk7XG4gMjQzOlx0XG4gMjQ0Olx0XHRyZXQgPSB3aWxjX3NwaV9jb25maWd1cmVfYnVzX3Byb3RvY29sKHdpbGMpO1xuIDI0NTpcdFx0aWYgKHJldClcbiAyNDY6XHRcdFx0Z290byBwb3dlcl9kb3duO1xuIDI0NzpcdFxuIDI0ODpcdFx0cmV0ID0gd2lsY19nZXRfY2hpcGlkKHdpbGMpO1xuIDI0OTpcdFx0aWYgKHJldClcbiAyNTA6XHRcdFx0Z290byBwb3dlcl9kb3duO1xuIDI1MTpcdFxuIDI1MjpcdFx0cmV0ID0gd2lsY19jZmc4MDIxMV9yZWdpc3Rlcih3aWxjKTtcbiAyNTM6XHRcdGlmIChyZXQpXG4gMjU0Olx0XHRcdGdvdG8gcG93ZXJfZG93bjtcbiAyNTU6XHRcbiAyNTY6XHRcdHJldCA9IHdpbGNfbG9hZF9tYWNfZnJvbV9udih3aWxjKTtcbiAyNTc6XHRcdGlmIChyZXQpIHtcbiAyNTg6XHRcdFx0cHJfZXJyKFwmIzM0O0NhbiBub3QgcmV0cmlldmUgTUFDIGFkZHJlc3MgZnJvbSBjaGlwXFxuXCYjMzQ7KTtcbiAyNTk6XHRcdFx0Z290byB1bnJlZ2lzdGVyX3dpcGh5O1xuIDI2MDpcdFx0fVxuIDI2MTpcdFxuIDI2MjpcdFx0d2lsY193bGFuX3Bvd2VyKHdpbGMsIGZhbHNlKTtcbiAyNjM6XHRcdHZpZiA9IHdpbGNfbmV0ZGV2X2lmY19pbml0KHdpbGMsIFwmIzM0O3dsYW4lZFwmIzM0OywgV0lMQ19TVEFUSU9OX01PREUsXG4gMjY0Olx0XHRcdFx0XHQgICBOTDgwMjExX0lGVFlQRV9TVEFUSU9OLCBmYWxzZSk7XG4gMjY1Olx0XHRpZiAoSVNfRVJSKHZpZikpIHtcbiAyNjY6XHRcdFx0cmV0ID0gUFRSX0VSUih2aWYpO1xuIDI2NzpcdFx0XHRnb3RvIHVucmVnaXN0ZXJfd2lwaHk7XG4gMjY4Olx0XHR9XG4gMjY5Olx0XHRyZXR1cm4gMDtcbiAyNzA6XHRcbiAyNzE6XHR1bnJlZ2lzdGVyX3dpcGh5OlxuIDI3MjpcdFx0d2lwaHlfdW5yZWdpc3Rlcih3aWxjLVx1MDAzZXdpcGh5KTtcbiAyNzM6XHRwb3dlcl9kb3duOlxuIDI3NDpcdFx0d2lsY193bGFuX3Bvd2VyKHdpbGMsIGZhbHNlKTtcbiAyNzU6XHRuZXRkZXZfY2xlYW51cDpcbiAyNzY6XHRcdHdpbGNfbmV0ZGV2X2NsZWFudXAod2lsYyk7XG4gMjc3Olx0XHR3aXBoeV9mcmVlKHdpbGMtXHUwMDNld2lwaHkpO1xuIDI3ODpcdGZyZWU6XG4gMjc5Olx0XHRrZnJlZShzcGlfcHJpdik7XG4gMjgwOlx0XHRyZXR1cm4gcmV0O1xuIDI4MTpcdH1cbiAyODI6XHRcbiAyODM6XHRzdGF0aWMgdm9pZCB3aWxjX2J1c19yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcbiAyODQ6XHR7XG4gMjg1Olx0XHRzdHJ1Y3Qgd2lsYyAqd2lsYyA9IHNwaV9nZXRfZHJ2ZGF0YShzcGkpO1xuIDI4NjpcdFx0c3RydWN0IHdpbGNfc3BpICpzcGlfcHJpdiA9IHdpbGMtXHUwMDNlYnVzX2RhdGE7XG4gMjg3Olx0XG4gMjg4Olx0XHR3aWxjX25ldGRldl9jbGVhbnVwKHdpbGMpO1xuIDI4OTpcdFx0d2lwaHlfdW5yZWdpc3Rlcih3aWxjLVx1MDAzZXdpcGh5KTtcbiAyOTA6XHRcdHdpcGh5X2ZyZWUod2lsYy1cdTAwM2V3aXBoeSk7XG4gMjkxOlx0XHRrZnJlZShzcGlfcHJpdik7XG4gMjkyOlx0fVxuIDI5MzpcdFxuIDI5NDpcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHdpbGNfb2ZfbWF0Y2hbXSA9IHtcbiAyOTU6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDttaWNyb2NoaXAsd2lsYzEwMDBcJiMzNDssIH0sXG4gMjk2Olx0XHR7IC8qIHNlbnRpbmVsICovIH1cbiAyOTc6XHR9O1xuIDI5ODpcdE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHdpbGNfb2ZfbWF0Y2gpO1xuIDI5OTpcdFxuIDMwMDpcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BpX2RldmljZV9pZCB3aWxjX3NwaV9pZFtdID0ge1xuIDMwMTpcdFx0eyBcJiMzNDt3aWxjMTAwMFwmIzM0OywgMCB9LFxuIDMwMjpcdFx0eyAvKiBzZW50aW5lbCAqLyB9XG4gMzAzOlx0fTtcbiAzMDQ6XHRNT0RVTEVfREVWSUNFX1RBQkxFKHNwaSwgd2lsY19zcGlfaWQpO1xuIDMwNTpcdFxuIDMwNjpcdHN0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciB3aWxjX3NwaV9kcml2ZXIgPSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUwNjkyCgkJCQkJCQlvdXRwdXQ6IDUwCgkJCQkJCQl0aG91Z2h0czogOTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW5pdGlhbCBIYXJkd2FyZSBWYWxpZGF0aW9uKioKCk9rYXksIHNvIHRoZSBmaXJzdCB0aGluZ3MgdGhpcyBjb2RlIGJsb2NrIGRvZXMgYXJlIGEgY2FsbCB0byBgd2lsY19zcGlfY29uZmlndXJlX2J1c19wcm90b2NvbCh3aWxjKWAgYW5kIHRoZW4gYSBjYWxsIHRvIGB3aWxjX2dldF9jaGlwaWQod2lsYylgLiBSaWdodCBhd2F5LCBteSBleHBlcnQgaW50dWl0aW9uIHRlbGxzIG1lIHRoYXQgdGhpcyBpcyBsaWtlbHkgYSBoYXJkd2FyZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZS4gYHdpbGNfZ2V0X2NoaXBpZCh3aWxjKWAgaXMgdGhlIGNyaXRpY2FsIGZ1bmN0aW9uIGhlcmU7IGlmIHRoZSBoYXJkd2FyZSBpc24mIzM5O3QgcHJlc2VudCBvciBmdW5jdGlvbmluZywgdGhhdCBjYWxsICp3aWxsKiBmYWlsLiBJZiBpdCBmYWlscywgdGhhdCBtZWFucyB3ZSBoYXZlbiYjMzk7dCBldmVuIGdvdCB0aGUgcmlnaHQgY2hpcCBJRC4gVGhhdCB3aWxsIHRyaWdnZXIgdGhlIHJldHVybiBvZiBhbiBlcnJvci4gQ29uc2VxdWVudGx5LCB0aGUgY29yZSBuZXR3b3JrIGludGVyZmFjZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiwgYHdpbGNfbmV0ZGV2X2lmY19pbml0YCwgd2lsbCBuZXZlciBnZXQgZXhlY3V0ZWQgd2hpY2ggaXMgZXhhY3RseSB3aGF0IHdlIHdhbnQuIEkgbmVlZCB0byB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgYHdpbGNfZ2V0X2NoaXBpZGAgdG8gdW5kZXJzdGFuZCBob3cgaXQgZGV0ZXJtaW5lcyBjaGlwIHByZXNlbmNlIGFuZCB3aGV0aGVyIHRoZSBTUEkgaW50ZXJmYWNlIGlzIG9wZXJhdGlvbmFsLCBhcyB0aGF0JiMzOTtzIHdoZXJlIHRoZSBydWJiZXIgbWVldHMgdGhlIHJvYWQuIEkmIzM5O2xsIGZvY3VzIG9uIHRoYXQgZnVuY3Rpb24mIzM5O3MgaW1wbGVtZW50YXRpb24gbmV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTU5MSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxMDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MTU5MTpcdGludCB3aWxjX2dldF9jaGlwaWQoc3RydWN0IHdpbGMgKndpbGMpXG4xNTkyOlx0e1xuMTU5MzpcdFx0dTMyIGNoaXBpZCA9IDA7XG4xNTk0Olx0XHR1MzIgcmZyZXZpZCA9IDA7XG4xNTk1Olx0XG4xNTk2Olx0XHRpZiAod2lsYy1cdTAwM2VjaGlwaWQgPT0gMCkge1xuMTU5NzpcdFx0XHR3aWxjLVx1MDAzZWhpZl9mdW5jLVx1MDAzZWhpZl9yZWFkX3JlZyh3aWxjLCBXSUxDMzAwMF9DSElQX0lELCBcdTAwMjZjaGlwaWQpO1xuMTU5ODpcdFx0XHRpZiAoIWlzX3dpbGMzMDAwKGNoaXBpZCkpIHtcbjE1OTk6XHRcdFx0XHR3aWxjLVx1MDAzZWhpZl9mdW5jLVx1MDAzZWhpZl9yZWFkX3JlZyh3aWxjLCBXSUxDX0NISVBJRCwgXHUwMDI2Y2hpcGlkKTtcbjE2MDA6XHRcdFx0XHR3aWxjLVx1MDAzZWhpZl9mdW5jLVx1MDAzZWhpZl9yZWFkX3JlZyh3aWxjLCBXSUxDX1JGX1JFVklTSU9OX0lELFxuMTYwMTpcdFx0XHRcdFx0XHRcdCAgICAgXHUwMDI2cmZyZXZpZCk7XG4xNjAyOlx0XG4xNjAzOlx0XHRcdFx0aWYgKCFpc193aWxjMTAwMChjaGlwaWQpKSB7XG4xNjA0Olx0XHRcdFx0XHR3aWxjLVx1MDAzZWNoaXBpZCA9IDA7XG4xNjA1Olx0XHRcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbjE2MDY6XHRcdFx0XHR9XG4xNjA3Olx0XHRcdFx0aWYgKGNoaXBpZCA9PSBXSUxDXzEwMDBfQkFTRV9JRF8yQSkgeyAvKiAweDEwMDJBMCAqL1xuMTYwODpcdFx0XHRcdFx0aWYgKHJmcmV2aWQgIT0gMHgxKVxuMTYwOTpcdFx0XHRcdFx0XHRjaGlwaWQgPSBXSUxDXzEwMDBfQkFTRV9JRF8yQV9SRVYxO1xuMTYxMDpcdFx0XHRcdH0gZWxzZSBpZiAoY2hpcGlkID09IFdJTENfMTAwMF9CQVNFX0lEXzJCKSB7IC8qIDB4MTAwMkIwICovXG4xNjExOlx0XHRcdFx0XHRpZiAocmZyZXZpZCA9PSAweDQpXG4xNjEyOlx0XHRcdFx0XHRcdGNoaXBpZCA9IFdJTENfMTAwMF9CQVNFX0lEXzJCX1JFVjE7XG4xNjEzOlx0XHRcdFx0XHRlbHNlIGlmIChyZnJldmlkICE9IDB4MylcbjE2MTQ6XHRcdFx0XHRcdFx0Y2hpcGlkID0gV0lMQ18xMDAwX0JBU0VfSURfMkJfUkVWMjtcbjE2MTU6XHRcdFx0XHR9XG4xNjE2Olx0XHRcdH1cbjE2MTc6XHRcbjE2MTg6XHRcdFx0d2lsYy1cdTAwM2VjaGlwaWQgPSBjaGlwaWQ7XG4xNjE5Olx0XHR9XG4xNjIwOlx0XG4xNjIxOlx0XHRyZXR1cm4gMDtcbjE2MjI6XHR9XG4xNjIzOlx0RVhQT1JUX1NZTUJPTF9HUEwod2lsY19nZXRfY2hpcGlkKTtcbjE2MjQ6XHRcbjE2MjU6XHRzdGF0aWMgaW50IGluaXRfY2hpcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuMTYyNjpcdHtcbjE2Mjc6XHRcdHUzMiByZWc7XG4xNjI4Olx0XHRpbnQgcmV0LCBydjtcbjE2Mjk6XHRcdHN0cnVjdCB3aWxjX3ZpZiAqdmlmID0gbmV0ZGV2X3ByaXYoZGV2KTtcbjE2MzA6XHRcdHN0cnVjdCB3aWxjICp3aWxjID0gdmlmLVx1MDAzZXdpbGM7XG4xNjMxOlx0XG4xNjMyOlx0XHRyZXQgPSBhY3F1aXJlX2J1cyh3aWxjLCBXSUxDX0JVU19BQ1FVSVJFX0FORF9XQUtFVVApO1xuMTYzMzpcdFx0aWYgKHJldClcbjE2MzQ6XHRcdFx0cmV0dXJuIHJldDtcbjE2MzU6XHRcbjE2MzY6XHRcdHJldCA9IHdpbGNfZ2V0X2NoaXBpZCh3aWxjKTtcbjE2Mzc6XHRcdGlmIChyZXQpXG4xNjM4Olx0XHRcdGdvdG8gcmVsZWFzZTtcbjE2Mzk6XHRcbjE2NDA6XHRcdGlmICgod2lsYy1cdTAwM2VjaGlwaWQgXHUwMDI2IDB4ZmZmKSAhPSAweGEwKSB7XG4xNjQxOlx0XHRcdHJldCA9IHdpbGMtXHUwMDNlaGlmX2Z1bmMtXHUwMDNlaGlmX3JlYWRfcmVnKHdpbGMsXG4xNjQyOlx0XHRcdFx0XHRcdFx0ICAgV0lMQ19DT1JUVVNfUkVTRVRfTVVYX1NFTCxcbjE2NDM6XHRcdFx0XHRcdFx0XHQgICBcdTAwMjZyZWcpO1xuMTY0NDpcdFx0XHRpZiAocmV0KSB7XG4xNjQ1Olx0XHRcdFx0bmV0ZGV2X2VycihkZXYsIFwmIzM0O2ZhaWwgcmVhZCByZWcgMHgxMTE4XFxuXCYjMzQ7KTtcbjE2NDY6XHRcdFx0XHRnb3RvIHJlbGVhc2U7XG4xNjQ3Olx0XHRcdH1cbjE2NDg6XHRcdFx0cmVnIHw9IEJJVCgwKTtcbjE2NDk6XHRcdFx0cmV0ID0gd2lsYy1cdTAwM2VoaWZfZnVuYy1cdTAwM2VoaWZfd3JpdGVfcmVnKHdpbGMsXG4xNjUwOlx0XHRcdFx0XHRcdFx0ICAgIFdJTENfQ09SVFVTX1JFU0VUX01VWF9TRUwsXG4xNjUxOlx0XHRcdFx0XHRcdFx0ICAgIHJlZyk7XG4xNjUyOlx0XHRcdGlmIChyZXQpIHtcbjE2NTM6XHRcdFx0XHRuZXRkZXZfZXJyKGRldiwgXCYjMzQ7ZmFpbCB3cml0ZSByZWcgMHgxMTE4XFxuXCYjMzQ7KTtcbjE2NTQ6XHRcdFx0XHRnb3RvIHJlbGVhc2U7XG4xNjU1Olx0XHRcdH1cbjE2NTY6XHRcdFx0cmV0ID0gd2lsYy1cdTAwM2VoaWZfZnVuYy1cdTAwM2VoaWZfd3JpdGVfcmVnKHdpbGMsXG4xNjU3Olx0XHRcdFx0XHRcdFx0ICAgIFdJTENfQ09SVFVTX0JPT1RfUkVHSVNURVIsXG4xNjU4Olx0XHRcdFx0XHRcdFx0ICAgIFdJTENfQ09SVFVTX0JPT1RfRlJPTV9JUkFNKTtcbjE2NTk6XHRcdFx0aWYgKHJldCkge1xuMTY2MDpcdFx0XHRcdG5ldGRldl9lcnIoZGV2LCBcJiMzNDtmYWlsIHdyaXRlIHJlZyAweGMwMDAwXFxuXCYjMzQ7KTtcbjE2NjE6XHRcdFx0XHRnb3RvIHJlbGVhc2U7XG4xNjYyOlx0XHRcdH1cbjE2NjM6XHRcdH1cbjE2NjQ6XHRcbjE2NjU6XHRcdGlmIChpc193aWxjMzAwMCh3aWxjLVx1MDAzZWNoaXBpZCkpIHtcbjE2NjY6XHRcdFx0cmV0ID0gd2lsYy1cdTAwM2VoaWZfZnVuYy1cdTAwM2VoaWZfcmVhZF9yZWcod2lsYywgV0lMQzMwMDBfQk9PVFJPTV9TVEFUVVMsIFx1MDAyNnJlZyk7XG4xNjY3Olx0XHRcdGlmIChyZXQpIHtcbjE2Njg6XHRcdFx0XHRuZXRkZXZfZXJyKGRldiwgXCYjMzQ7ZmFpbGVkIHRvIHJlYWQgV0lMQzMwMDAgQm9vdFJPTSBzdGF0dXMgcmVnaXN0ZXJcXG5cJiMzNDspO1xuMTY2OTpcdFx0XHRcdGdvdG8gcmVsZWFzZTtcbjE2NzA6XHRcdFx0fVxuMTY3MTpcdFxuMTY3MjpcdFx0XHRyZXQgPSB3aWxjLVx1MDAzZWhpZl9mdW5jLVx1MDAzZWhpZl93cml0ZV9yZWcod2lsYywgV0lMQzMwMDBfQ09SVFVTX0JPT1RfUkVHSVNURVJfMixcbjE2NzM6XHRcdFx0XHRcdFx0XHQgICAgV0lMQ19DT1JUVVNfQk9PVF9GUk9NX0lSQU0pO1xuMTY3NDpcdFx0XHRpZiAocmV0KSB7XG4xNjc1Olx0XHRcdFx0bmV0ZGV2X2VycihkZXYsIFwmIzM0O2ZhaWxlZCB0byB3cml0ZSBXSUxDMzAwMCBCb290IHJlZ2lzdGVyXFxuXCYjMzQ7KTtcbjE2NzY6XHRcdFx0XHRnb3RvIHJlbGVhc2U7XG4xNjc3Olx0XHRcdH1cbjE2Nzg6XHRcdH1cbjE2Nzk6XHRcbjE2ODA6XHRyZWxlYXNlOlxuMTY4MTpcdFx0cnYgPSByZWxlYXNlX2J1cyh3aWxjLCBXSUxDX0JVU19SRUxFQVNFX0FMTE9XX1NMRUVQKTtcbjE2ODI6XHRcbjE2ODM6XHRcdHJldHVybiByZXQgPyByZXQgOiBydjtcbjE2ODQ6XHR9XG4xNjg1Olx0XG4xNjg2Olx0aW50IHdpbGNfbG9hZF9tYWNfZnJvbV9udihzdHJ1Y3Qgd2lsYyAqd2wpXG4xNjg3Olx0e1xuMTY4ODpcdFx0aW50IHJldCwgcnY7XG4xNjg5Olx0XHR1bnNpZ25lZCBpbnQgaTtcbjE2OTA6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTI3MjMKCQkJCQkJCW91dHB1dDogMTcKCQkJCQkJCXRob3VnaHRzOiAyODEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBDb2RlJiMzOTtzIFJlYWNoYWJpbGl0eSoqCgpPa2F5LCBzbyBgd2lsY19nZXRfY2hpcGlkYCBncmFicyB0aGUgY2hpcCBJRCBmcm9tIHRoZSBoYXJkd2FyZS4gSWYgdGhhdCBJRCBpc24mIzM5O3Qgd2hhdCB3ZSBleHBlY3QgKFdJTEMxMDAwIG9yIFdJTEMzMDAwKSwgaXQga2lja3MgYmFjayBhbiBgLUVJTlZBTGAuIEluIGEgdmlydHVhbCBlbnZpcm9ubWVudCwgbGlrZSBRRU1VLCB0aGVyZSYjMzk7cyBubyBhY3R1YWwgaGFyZHdhcmUgdG8gcmVhZCBmcm9tLiBNeSBndXQgc2F5cyBgaGlmX3JlYWRfcmVnYCB3aWxsIGZhaWwgb3IgcmV0dXJuIHplcm8sIHdoaWNoIGlzIGRlZmluaXRlbHkgbm90IGEgdmFsaWQgY2hpcCBJRC4gVGhhdCB3b3VsZCBjYXVzZSBgd2lsY19idXNfcHJvYmVgIHRvIGZhaWwsIGFuZCB0aGUgbmV0d29yayBkZXZpY2Ugd291bGQgbmV2ZXIgZXZlbiBnZXQgcmVnaXN0ZXJlZC4gU28sIGJ5IGFsbCBsb2dpYywgdGhpcyBjb2RlIHBhdGggc2hvdWxkbiYjMzk7dCAqZXZlciogYmUgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgc2V0dXAuCgpCdXQgd2FpdCBhIG1pbnV0ZeKApiBTeXprYWxsZXIgZm91bmQgYSBidWcgaGVyZT8gSG93IGlzIHRoYXQgZXZlbiBwb3NzaWJsZT8gRG9lcyBTeXprYWxsZXIgaGF2ZSBzb21lIHRyaWNrIHVwIGl0cyBzbGVldmUgdG8gbW9jayBTUEkgZGV2aWNlcz8gSSBkb24mIzM5O3QgcmVjYWxsIHNlZWluZyBhIGdlbmVyaWMgU1BJIG1vY2sgaW4gU3l6a2FsbGVyLiBIbW0uLi4gbWF5YmUgaXQgaW5qZWN0cyBTUEkgdHJhZmZpYyB2aWEgYSBkdW1teSBTUEkgY29udHJvbGxlcj8KCklmIFN5emthbGxlciBmb3VuZCBhIGJ1ZywgdGhhdCBtZWFucyB0aGlzIGNvZGUgKmlzKiByZWFjaGFibGUgc29tZWhvdy4gSSBuZWVkIHRvIHJlLWV2YWx1YXRlIG15IGFzc3VtcHRpb25zLiBMZXQmIzM5O3Mgc2VlIGlmIFN5emthbGxlciBhY3R1YWxseSBvZmZlcnMgc29tZXRoaW5nIHRoYXQgY2FuIGZha2UgU1BJLiBMZXQgbWUgY2hlY2sgdGhlIGtlcm5lbCBjb2RlIHRvIHNlZSBpZiB0aGVyZSBpcyBhIGR1bW15IFNQSSBjb250cm9sbGVyIGluIHRoZSBrZXJuZWwuIEkga25vdyB0aGVyZSYjMzk7cyBgZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuY2AsIGJ1dCB0aGF0JiMzOTtzIGp1c3QgZm9yIHRlc3RpbmcgYW4gZXhpc3RpbmcgY29udHJvbGxlci4gSSBuZWVkIGEgKmR1bW15KiBjb250cm9sbGVyLiBJcyB0aGVyZSBzb21ldGhpbmcgbGlrZSBgZHJpdmVycy9zcGkvc3BpLW1vY2t1cC5jYCBvciBwZXJoYXBzIGBkcml2ZXJzL3NwaS9zcGktbW9jay5jYC4uLiBvciBzaW1pbGFyPyBJIG5lZWQgdG8gZGlnIGluIHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NwaS1tb2NrJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTMzOTYKCQkJCQkJCW91dHB1dDogMTcKCQkJCQkJCXRob3VnaHRzOiAxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBmb2N1c2luZyBvbiB0aGUgcHJvdmlkZWQgdGV4dCwgYXNzdW1pbmcgYW4gZXhwZXJ0IGJhY2tncm91bmQ6CgoqKkNvbnNpZGVyaW5nIGBkcml2ZXJzL3NwaS9zcGktZHVtbXkuY2AqKgoKT2theSwgSSYjMzk7bSB0aGlua2luZyBhYm91dCBTUEkgZHJpdmVycywgYW5kIHRoZSBxdWVzdGlvbiB0aGF0IGltbWVkaWF0ZWx5IHBvcHMgaW50byBteSBoZWFkIGlzLCAmIzM0O1doYXQgYWJvdXQgYGRyaXZlcnMvc3BpL3NwaS1kdW1teS5jYD8mIzM0OyBUaGF0IHBhcnRpY3VsYXIgZmlsZSBpbiB0aGUga2VybmVsIHRyZWUgdXN1YWxseSBjYXRjaGVzIG15IGF0dGVudGlvbiBhcyBpdCByZXByZXNlbnRzIHRoZSBiYXJlIG1pbmltdW0gZm9yIGFuIFNQSSBkcml2ZXIsIG9mdGVuIHVzZWQgZm9yIHRlc3Rpbmcgb3IgYXMgYSBzdGFydGluZyBwb2ludC4gSXMgc29tZW9uZSB3b3JraW5nIHdpdGggaXQgZGlyZWN0bHk/IE9yIHBlcmhhcHMgdGhleSYjMzk7cmUgdXNpbmcgaXQgdG8gYnVpbGQgYSBtb3JlIGNvbXBsZXggU1BJIGRyaXZlciwgYW5kIG5lZWQgc29tZXRoaW5nIGJhc2ljIGZvciByZWZlcmVuY2U/IFRoZSBjb250ZXh0IGlzbiYjMzk7dCBmdWxseSBjbGVhciBoZXJlLCBhbmQgYXMgYW4gZXhwZXJ0IEkmIzM5O2QgbmVlZCBtb3JlIHNwZWNpZmljcyBvbiB3aGVyZSB0aGlzIGlzIGJlaW5nIGxvb2tlZCBhdCBpbiBvcmRlciB0byBmdWxseSBkZXRlcm1pbmUgaXRzIHJlbGV2YW5jZS4gTXkgbWluZCBpbW1lZGlhdGVseSBiZWdpbnMgc2Nhbm5pbmcgZm9yIHBvc3NpYmxlIHVzZSBjYXNlcyBhbmQgaW1wbGljYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NwaS1kdW1teSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUzNjIyCgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkludmVzdGlnYXRpbmcgYSBQb3RlbnRpYWwgU1BJIExvb3BiYWNrIFRlc3QqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRlc3Rpbmcgc29tZSBTUEkgZnVuY3Rpb25hbGl0eSwgYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcyB0byBkaXZlIGludG8gZXhpc3RpbmcgZXhhbXBsZXMuIFdoYXQmIzM5O3MgdGhlIHN0YW5kYXJkIHByYWN0aWNlPyBMZXQmIzM5O3Mgc2VlLi4uIG15IG1pbmQgaW1tZWRpYXRlbHkganVtcGVkIHRvIHRoZSBgZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuY2AgZmlsZS4gSXQmIzM5O3MgYSBwcmV0dHkgbG9naWNhbCBwbGFjZSB0byBzdGFydCDigJMgdXN1YWxseSwgdGhhdCYjMzk7cyB3aGVyZSB5b3UmIzM5O2xsIGZpbmQgYSBiYXNpYyBmcmFtZXdvcmsgZm9yIGV4ZXJjaXNpbmcgdGhlIGxvb3BiYWNrIGNhcGFiaWxpdGllcywgcmlnaHQ/IEkmIzM5O2QgZXhwZWN0IGl0IHRvIGNvdmVyIGZ1bmRhbWVudGFsIGFzcGVjdHMgbGlrZSBjb25maWd1cmluZyB0aGUgU1BJIGNvbnRyb2xsZXIsIHNldHRpbmcgdXAgdGhlIHRyYW5zYWN0aW9ucywgYW5kIHZlcmlmeWluZyB0aGUgZGF0YSBpbnRlZ3JpdHkgYWZ0ZXIgdGhlIGxvb3BiYWNrIG9wZXJhdGlvbi4gSSYjMzk7bSBrZWVuIHRvIHNlZSB0aGUgYXBwcm9hY2ggdGFrZW4sIHRoZSBkYXRhIHBhdHRlcm5zIHVzZWQsIGFuZCB0aGUgZXJyb3IgaGFuZGxpbmcgaW1wbGVtZW50ZWQuIEl0JiMzOTtsbCBnaXZlIG1lIGEgc29saWQgZm91bmRhdGlvbiBvciwgYXQgbGVhc3QsIGEgZ29vZCBzdGFydGluZyBwb2ludCB0byB0YWlsb3IgdG8gbXkgc3BlY2lmaWMgdGVzdGluZyBuZWVkcywgaW5jbHVkaW5nIHBlcmZvcm1hbmNlIG9yIG1vcmUgcm9idXN0IGRhdGEgcGF0dGVybnMuIExldCYjMzk7cyBzZWUgd2hhdCYjMzk7cyBpbiB0aGVyZS4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzcGktbG9vcGJhY2stdGVzdCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaW5jb21wbGV0ZS1kZXZpY2VzLnlhbWw9MjY9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaW5jb21wbGV0ZS1kZXZpY2VzLnlhbWwtMjQ1LSAgICAgICAgICAtIGdwaW8tdmlydHVzZXJcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbmNvbXBsZXRlLWRldmljZXMueWFtbDoyNDY6ICAgICAgICAgIC0gbGludXgsc3BpLWxvb3BiYWNrLXRlc3RcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbmNvbXBsZXRlLWRldmljZXMueWFtbC0yNDctICAgICAgICAgIC0gbWFpbGJveC10ZXN0XG4tLVxuZHJpdmVycy9zcGkvTWFrZWZpbGU9MTQ9b2JqLSQoQ09ORklHX1NQSV9TUElERVYpXHRcdCYjNDM7PSBzcGlkZXYub1xuZHJpdmVycy9zcGkvTWFrZWZpbGU6MTU6b2JqLSQoQ09ORklHX1NQSV9MT09QQkFDS19URVNUKVx0XHQmIzQzOz0gc3BpLWxvb3BiYWNrLXRlc3Qub1xuZHJpdmVycy9zcGkvTWFrZWZpbGUtMTYtXG4tLVxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYy0yLS8qXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jOjM6ICogIGxpbnV4L2RyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmNcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmMtNC0gKlxuLS1cbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmM9MzU3PXN0YXRpYyBpbnQgc3BpX2xvb3BiYWNrX3Rlc3RfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcbi0tXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTM3MS1cbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmM6MzcyOlx0ZGV2X2luZm8oXHUwMDI2c3BpLVx1MDAzZWRldiwgXCYjMzQ7RXhlY3V0aW5nIHNwaS1sb29wYmFjay10ZXN0c1xcblwmIzM0Oyk7XG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTM3My1cbi0tXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTM3NS1cbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmM6Mzc2Olx0ZGV2X2luZm8oXHUwMDI2c3BpLVx1MDAzZWRldiwgXCYjMzQ7RmluaXNoZWQgc3BpLWxvb3BiYWNrLXRlc3RzIHdpdGggcmV0dXJuOiAlaVxcblwmIzM0OyxcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmMtMzc3LVx0XHQgcmV0KTtcbi0tXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jPTM4Mz1zdGF0aWMgc3RydWN0IG9mX2RldmljZV9pZCBzcGlfbG9vcGJhY2tfdGVzdF9vZl9tYXRjaFtdID0ge1xuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYzozODQ6XHR7IC5jb21wYXRpYmxlXHQ9IFwmIzM0O2xpbnV4LHNwaS1sb29wYmFjay10ZXN0XCYjMzQ7LCB9LFxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYy0zODUtXHR7IH1cbi0tXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jPTM5NT1zdGF0aWMgc3RydWN0IHNwaV9kcml2ZXIgc3BpX2xvb3BiYWNrX3Rlc3RfZHJpdmVyID0ge1xuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYy0zOTYtXHQuZHJpdmVyID0ge1xuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYzozOTc6XHRcdC5uYW1lID0gXCYjMzQ7c3BpLWxvb3BiYWNrLXRlc3RcJiMzNDssXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTM5OC1cdFx0Lm9mX21hdGNoX3RhYmxlID0gc3BpX2xvb3BiYWNrX3Rlc3Rfb2ZfbWF0Y2gsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU0NTU0CgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTY4OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiB0aGUgd2lsYzEwMDAgRHJpdmVyIFBhdGNoIGZvciBGdXp6aW5nIEVsaWdpYmlsaXR5KioKCk9rYXksIHNvIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgdGhpcyBwYXRjaCBpcyB3b3J0aCBmdXp6aW5nLiBUaGUga2V5IGlzIHdoZXRoZXIgdGhlIGNvZGUgcGF0aCBpdCBtb2RpZmllcyBpcyByZWFjaGFibGUgd2l0aGluIHRoZSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LiAgTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyB0aGF0IG1heWJlIGBzeXprYWxsZXJgIGNvdWxkIGJlIGluamVjdGluZyBwYWNrZXRzIHRocm91Z2ggYG1hYzgwMjExX2h3c2ltYCwgYnV0IHRoYXQmIzM5O3MgYSBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSBjb21wb25lbnQgZm9yIG1hYzgwMjExLCBhbmQgaXQgb3BlcmF0ZXMgc2VwYXJhdGVseSwgbm90IGludm9sdmluZyB0aGUgYHdpbGMxMDAwYCBkcml2ZXIgYXQgYWxsLgoKVGhlbiBJIHJlY2FsbGVkIHRoYXQgdGhlIGB3aWxjMTAwMGAgZHJpdmVyIGlzIGEgY2ZnODAyMTEgZHJpdmVyIGFuZCwgaW1wb3J0YW50bHksIHRoZSB1c2VyIGhhcyBlbXBoYXNpemVkIHRoYXQgSSBtdXN0IGJhc2UgbXkgZGVjaXNpb24gb24gdGhlICphY3R1YWwqIHNvdXJjZSBjb2RlLCBub3QgbXkgcHJlc3VtZWQga25vd2xlZGdlLCBhbmQgdGhhdCBpdCYjMzk7cyBhbHJlYWR5IGNvbW1pdHRlZC4gSSYjMzk7bSBzcGVjaWZpY2FsbHkgaW5zdHJ1Y3RlZCB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoIGNvbmNlcm5zIGNvZGUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGV2ZW4gd2l0aCBzb2Z0d2FyZSBlbXVsYXRpb24gbGlrZSBgbWFjODAyMTFfaHdzaW1gLiBTaW5jZSB0aGUgYnVnIGlzIGluIGB3aWxjX3dmaV9tb25feG1pdGAsIHRoaXMgbWVhbnMgYHdpbGNfd2ZpX21vbl94bWl0YCB3YXMgZXhlY3V0ZWQuCgpNeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGRvZXMgdGhlIGB3aWxjMTAwMGAgaGF2ZSBhIFVTQiB2ZXJzaW9uPyAgTGV0JiMzOTtzIGNoZWNrIGBkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvS2NvbmZpZ2AuIEl0IGFwcGVhcnMgdGhlIGNoaXAgY29tZXMgaW4gYFdJTEMxMDAwX1NESU9gIGFuZCBgV0lMQzEwMDBfU1BJYCB2ZXJzaW9ucyBvbmx5LiBObyBVU0IuICBTbywgaG93IGVsc2UgY291bGQgYHdpbGNfd2ZpX21vbl94bWl0YCBiZSByZWFjaGVkPwoKVGhlIGNvZGUgcmV2ZWFscyB0aGF0IGl0IGlzIGEgc3RhdGljIGZ1bmN0aW9uIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jYCwgYm91bmQgdG8gYHdpbGNfd2ZpX25ldGRldl9vcHMubmRvX3N0YXJ0X3htaXRgLiBJdCBjYW4gb25seSBiZSBjYWxsZWQgaWYgYSBuZXRkZXYgaXMgY3JlYXRlZCB1c2luZyBgd2lsY193ZmlfbmV0ZGV2X29wc2AuIFRoaXMgbmV0ZGV2IGlzIGNyZWF0ZWQgaW4gYHdpbGNfd2ZpX2luaXRfbW9uX2ludGVyZmFjZWAsIGNhbGxlZCBieSBgYWRkX3ZpcnR1YWxfaW50ZmAgaW4gYGNmZzgwMjExLmNgLiBgYWRkX3ZpcnR1YWxfaW50ZmAgaXMgYSBjYWxsYmFjayBmdW5jdGlvbiBpbiBgd2lsY19jZmc4MDIxMV9vcHNgLCB3aGljaCBpcyByZWdpc3RlcmVkIHZpYSBgd2lwaHlfcmVnaXN0ZXJgIGluIGB3aWxjX2NmZzgwMjExX3JlZ2lzdGVyYC4gQW5kIGB3aWxjX2NmZzgwMjExX3JlZ2lzdGVyYCBpcyBpbnZva2VkIGJ5IGB3aWxjX2J1c19wcm9iZWAgKFNQSSkgb3IgYHdpbGNfc2Rpb19wcm9iZWAgKFNESU8pLgoKQm90aCBwcm9iZSBmdW5jdGlvbnMgcmVseSBvbiBhIHBoeXNpY2FsIGhhcmR3YXJlIGNoaXAgcmVzcG9uZGluZyB0byBjaGlwIElEIHJlYWRzLiBJZiB0aGUgaGFyZHdhcmUgaXNuJiMzOTt0IHByZXNlbnQsIHRoZSBwcm9iZSBmYWlscywgdGhlIHdpcGh5IGRvZXNuJiMzOTt0IHJlZ2lzdGVyLCB0aGUgbmV0ZGV2IGlzbiYjMzk7dCBjcmVhdGVkLCBhbmQgYHdpbGNfd2ZpX21vbl94bWl0YCBpcyB1bnJlYWNoYWJsZS4KCkNvdWxkIHN5emthbGxlciBiZSBieXBhc3NpbmcgdGhpcyB3aXRoIHNvbWUga2luZCBvZiBmYXVsdCBpbmplY3Rpb24/ICBUaGUgaW5zdHJ1Y3Rpb25zIGFyZSB2ZXJ5IGNsZWFyOiAmIzM0O1JldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnMgY29kZSBwYXRocyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLiYjMzQ7ICBBbmQgZnVydGhlciwgJiMzNDtDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuJiMzNDsKClRoaXMgaXMgYSAqdmVuZG9yLXNwZWNpZmljKiBTRElPL1NQSSBXaUZpIGRyaXZlciB0aGF0ICpyZXF1aXJlcyogcGh5c2ljYWwgaGFyZHdhcmUgdGhhdCBpc24mIzM5O3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gIFNvLCBpdCBmYWxscyB1bmRlciB0aGUgJiMzNDtpbXBvc3NpYmxlIHRvIHJlYWNoJiMzNDsgY2F0ZWdvcnkuICBJcyB0aGVyZSAqYW55KiBjaGFuY2UgUUVNVSBlbXVsYXRlcyBXSUxDMTAwMD8gIE5vLiBXSUxDMTAwMCBpcyBhIHZlcnkgc3BlY2lmaWMgTWljcm9jaGlwIFdpRmkgY2hpcC4gUUVNVSBkb2VzbiYjMzk7dCBkbyBpdC4KCldoYXQgYWJvdXQgc3l6a2FsbGVyIHVzaW5nIGEgZHVtbXkgU0RJTy9TUEkgY29udHJvbGxlciB0byBpbmplY3QgcmVzcG9uc2VzPyBTeXprYWxsZXIgZG9lc24mIzM5O3QgaGF2ZSBhIGdlbmVyaWMgU0RJTy9TUEkgaW5qZWN0aW9uIGZyYW1ld29yay4gSXQgaGFzIFVTQiBhbmQgUENJIGluamVjdGlvbiB2aWEgZHVtbXkgSENEIGFuZCByYXcgUENJLiBTbywgaWYgaXQmIzM5O3MgU0RJTy9TUEksIGl0JiMzOTtzIG5vdCByZWFjaGFibGUuICBJIHF1aWNrbHkgcmV2aWV3ZWQgdGhlIGtlcm5lbCBzb3VyY2UgbG9va2luZyBmb3Igc29mdHdhcmUgZW11bGF0aW9uIG9mIGB3aWxjMTAwMGAgb3IgYSBgbWFjODAyMTFfaHdzaW1gLWxpa2UgZXF1aXZhbGVudCwgYnV0IG5vdGhpbmcgZXhpc3RzLgoKSSYjMzk7bSBub3cgcmV2aXNpdGluZyB0aGUgcGF0Y2ggaXRzZWxmLiBUaGUgcGF0Y2ggYWRkcyBjaGVja3MgZm9yIGBza2ItJmd0O2xlbmAgYW5kIGBydGFwX2xlbmAgaW4gYHdpbGNfd2ZpX21vbl94bWl0YC4gIEl0IGxvb2tzIGxpa2UgYSBmaXggZm9yIGFuIG91dC1vZi1ib3VuZHMgcmVhZCBvciBhIHJlbGF0ZWQgaXNzdWUgd2hlbiBwYXJzaW5nIHRoZSByYWRpb3RhcCBoZWFkZXIgYW5kIDgwMi4xMSBoZWFkZXIgaW4gdGhlIG1vbml0b3IgaW50ZXJmYWNlIHRyYW5zbWl0IHBhdGguCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7d2lsYzEwMDAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC9LY29uZmlnPTEzPWlmIFdMQU5fVkVORE9SX01JQ1JPQ0hJUFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL0tjb25maWc6MTQ6c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9LY29uZmlnXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvS2NvbmZpZy0xNS1lbmRpZiAjIFdMQU5fVkVORE9SX01JQ1JPQ0hJUFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC9NYWtlZmlsZToyOm9iai0kKENPTkZJR19XSUxDMTAwMClcdFx0JiM0Mzs9IHdpbGMxMDAwL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZToyOm9iai0kKENPTkZJR19XSUxDMTAwMCkgJiM0Mzs9IHdpbGMxMDAwLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS0zLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjQ6d2lsYzEwMDAtb2JqcyA6PSBjZmc4MDIxMS5vIG5ldGRldi5vIG1vbi5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGUtNS1cdFx0XHRoaWYubyB3bGFuX2NmZy5vIHdsYW4ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlLTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6NzpvYmotJChDT05GSUdfV0lMQzEwMDBfU0RJTykgJiM0Mzs9IHdpbGMxMDAwLXNkaW8ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjg6d2lsYzEwMDAtc2Rpby1vYmpzICYjNDM7PSBzZGlvLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS05LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjEwOm9iai0kKENPTkZJR19XSUxDMTAwMF9TUEkpICYjNDM7PSB3aWxjMTAwMC1zcGkub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjExOndpbGMxMDAwLXNwaS1vYmpzICYjNDM7PSBzcGkub1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jPTE4NDk9aW50IHdpbGNfY2ZnODAyMTFfcmVnaXN0ZXIoc3RydWN0IHdpbGMgKndpbGMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTg1MS1cdC8qIFdQQTMvU0FFIHN1cHBvcnRlZCBvbmx5IG9uIFdJTEMxMDAwICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxODUyOlx0aWYgKGlzX3dpbGMxMDAwKHdpbGMtXHUwMDNlY2hpcGlkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTE4NTMtXHRcdHdpbGMtXHUwMDNld2lwaHktXHUwMDNlZmVhdHVyZXMgfD0gTkw4MDIxMV9GRUFUVVJFX1NBRTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6MjI6I2RlZmluZSBXSUxDMTAwMF9GV19QUkVGSVhcdFx0XCYjMzQ7YXRtZWwvd2lsYzEwMDBfd2lmaV9maXJtd2FyZS1cJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy0yMy0jZGVmaW5lIF9fV0lMQzEwMDBfRlcoYXBpKVx0XHRXSUxDMTAwMF9GV19QUkVGSVggI2FwaSBcJiMzNDsuYmluXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jPTIwMD1zdGF0aWMgaW50IHdpbGNfd2xhbl9nZXRfZmlybXdhcmUoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMjA3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjIwODpcdGlmIChpc193aWxjMTAwMCh3aWxjLVx1MDAzZWNoaXBpZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMjA5LVx0XHRmaXJtd2FyZSA9IFdJTEMxMDAwX0ZXKFdJTEMxMDAwX0FQSV9WRVIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy0yMTUtXHRuZXRkZXZfaW5mbyhkZXYsIFwmIzM0O1dJTEMlZCBsb2FkaW5nIGZpcm13YXJlIFslc11cXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6MjE2Olx0XHQgICAgaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpID8gMTAwMCA6IDMwMDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMjE3LVx0XHQgICAgZmlybXdhcmUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz00NTY9c3RhdGljIHZvaWQgd2lsY193bGFuX2RlaW5pdGlhbGl6ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy00NjYtXHRpZiAod2wtXHUwMDNlaW5pdGlhbGl6ZWQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo0Njc6XHRcdG5ldGRldl9pbmZvKGRldiwgXCYjMzQ7RGVpbml0aWFsaXppbmcgd2lsYzEwMDAuLi5cXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTQ2OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNDg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjQ4NTpcdFx0bmV0ZGV2X2RiZyhkZXYsIFwmIzM0O3dpbGMxMDAwIGRlaW5pdGlhbGl6YXRpb24gRG9uZVxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNDg2LVx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo0ODc6XHRcdG5ldGRldl9kYmcoZGV2LCBcJiMzNDt3aWxjMTAwMCBpcyBub3QgaW5pdGlhbGl6ZWRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTQ4OC1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM9NTA4PXN0YXRpYyBpbnQgd2lsY193bGFuX2luaXRpYWxpemUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHdpbGNfdmlmICp2aWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTU4My1cdH0gZWxzZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6NTg0Olx0XHRuZXRkZXZfZGJnKGRldiwgXCYjMzQ7d2lsYzEwMDAgYWxyZWFkeSBpbml0aWFsaXplZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNTg1LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz03ODc9c3RhdGljIGludCB3aWxjX21hY19jbG9zZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtODA2LVx0aWYgKHdsLVx1MDAzZW9wZW5faWZjcyA9PSAwKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6ODA3Olx0XHRuZXRkZXZfZGJnKG5kZXYsIFwmIzM0O0RlaW5pdGlhbGl6aW5nIHdpbGMxMDAwXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy04MDgtXHRcdHdsLVx1MDAzZWNsb3NlID0gMTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYzoxNzojZGVmaW5lIFNESU9fTU9EQUxJQVMgXCYjMzQ7d2lsYzEwMDBfc2Rpb1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy0xOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jPTgwMD1zdGF0aWMgaW50IHdpbGNfc2Rpb19yZWFkX2ludChzdHJ1Y3Qgd2lsYyAqd2lsYywgdTMyICppbnRfc3RhdHVzKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtODE3LVx0XHRjbWQuZnVuY3Rpb24gPSAwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYzo4MTg6XHRcdGNtZC5hZGRyZXNzID0gaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpID9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtODE5LVx0XHRcdCAgICAgIFdJTEMxMDAwX1NESU9fSVJRX0ZMQUdfUkVHIDpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTgyOC1cdGlmIChzZGlvX3ByaXYtXHUwMDNlaXJxX2dwaW8pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jOjgyOTpcdFx0aXJxX2ZsYWdzIFx1MDAyNj0gaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpID8gMHgxZiA6IDB4MGY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTgzMC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jPTg0Mj1zdGF0aWMgaW50IHdpbGNfc2Rpb19jbGVhcl9pbnRfZXh0KHN0cnVjdCB3aWxjICp3aWxjLCB1MzIgdmFsKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtODUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYzo4NTI6XHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTg1My1cdFx0Lyogc2VsZWN0IFZNTSB0YWJsZSAwICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy04OTgtXHRcdGNtZC5yYXcgPSAwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYzo4OTk6XHRcdGNtZC5hZGRyZXNzID0gaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpID9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtOTAwLVx0XHRcdCAgICAgIFdJTEMxMDAwX1NESU9fSVJRX0NMRUFSX0ZMQUdfUkVHIDpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jPTEwNTI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgd2lsY19vZl9tYXRjaFtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYzoxMDUzOlx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21pY3JvY2hpcCx3aWxjMTAwMFwmIzM0OywgfSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtMTA1NC1cdHsgLyogc2VudGluZWwgKi8gfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYy0xNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYzoxNjojZGVmaW5lIFNQSV9NT0RBTElBU1x0XHRcJiMzNDt3aWxjMTAwMF9zcGlcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYy0xNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmM9Mjk0PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHdpbGNfb2ZfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYzoyOTU6XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWljcm9jaGlwLHdpbGMxMDAwXCYjMzQ7LCB9LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTI5Ni1cdHsgLyogc2VudGluZWwgKi8gfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYz0zMDA9c3RhdGljIGNvbnN0IHN0cnVjdCBzcGlfZGV2aWNlX2lkIHdpbGNfc3BpX2lkW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmM6MzAxOlx0eyBcJiMzNDt3aWxjMTAwMFwmIzM0OywgMCB9LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTMwMi1cdHsgLyogc2VudGluZWwgKi8gfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYz0xMjI3PXN0YXRpYyBpbnQgd2lsY192YWxpZGF0ZV9jaGlwaWQoc3RydWN0IHdpbGMgKndpbGMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTEyNDAtXHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmM6MTI0MTpcdGlmICghaXNfd2lsYzEwMDAoY2hpcGlkKSBcdTAwMjZcdTAwMjYgIWlzX3dpbGMzMDAwKGNoaXBpZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYy0xMjQyLVx0XHRkZXZfZXJyKFx1MDAyNnNwaS1cdTAwM2VkZXYsIFwmIzM0O1Vua25vd24gY2hpcCBpZCAweCV4XFxuXCYjMzQ7LCBjaGlwaWQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9NTMwPXN0YXRpYyBzdHJ1Y3QgcnhxX2VudHJ5X3QgKndpbGNfd2xhbl9yeHFfcmVtb3ZlKHN0cnVjdCB3aWxjICp3aWxjKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNTQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo1NDQ6c3RhdGljIGludCBjaGlwX2FsbG93X3NsZWVwX3dpbGMxMDAwKHN0cnVjdCB3aWxjICp3aWxjKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy01NDUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9NjMwPXN0YXRpYyBpbnQgY2hpcF9hbGxvd19zbGVlcChzdHJ1Y3Qgd2lsYyAqd2lsYylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNjMxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM6NjMyOlx0aWYgKGlzX3dpbGMxMDAwKHdpbGMtXHUwMDNlY2hpcGlkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM6NjMzOlx0XHRyZXR1cm4gY2hpcF9hbGxvd19zbGVlcF93aWxjMTAwMCh3aWxjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNjM0LVx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNjM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo2Mzg6c3RhdGljIGludCBjaGlwX3dha2V1cF93aWxjMTAwMChzdHJ1Y3Qgd2lsYyAqd2lsYylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNjM5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jPTc2MD1zdGF0aWMgaW50IGNoaXBfd2FrZXVwKHN0cnVjdCB3aWxjICp3aWxjKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy03NjEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo3NjI6XHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo3NjM6XHRcdHJldHVybiBjaGlwX3dha2V1cF93aWxjMTAwMCh3aWxjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNzY0LVx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9NzkzPWludCBob3N0X3dha2V1cF9ub3RpZnkoc3RydWN0IHdpbGMgKndpbGMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy03OTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjgwMDpcdHdpbGMtXHUwMDNlaGlmX2Z1bmMtXHUwMDNlaGlmX3dyaXRlX3JlZyh3aWxjLCBpc193aWxjMTAwMCh3aWxjLVx1MDAzZWNoaXBpZCkgP1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy04MDEtXHRcdFx0XHRcdCAgICBXSUxDMTAwMF9DT1JUVVNfSU5URVJSVVBUXzIgOlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9ODA3PWludCBob3N0X3NsZWVwX25vdGlmeShzdHJ1Y3Qgd2lsYyAqd2lsYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTgxMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM6ODE0Olx0d2lsYy1cdTAwM2VoaWZfZnVuYy1cdTAwM2VoaWZfd3JpdGVfcmVnKHdpbGMsIGlzX3dpbGMxMDAwKHdpbGMtXHUwMDNlY2hpcGlkKSA/XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTgxNS1cdFx0XHRcdFx0ICAgIFdJTEMxMDAwX0NPUlRVU19JTlRFUlJVUFRfMSA6XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz04MjE9aW50IHdpbGNfd2xhbl9oYW5kbGVfdHhxKHN0cnVjdCB3aWxjICp3aWxjLCB1MzIgKnR4cV9jb3VudClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTk1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM6OTUxOlx0XHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTk1Mi1cdFx0XHRyZXQgPSBmdW5jLVx1MDAzZWhpZl93cml0ZV9yZWcod2lsYywgV0lMQ19IT1NUX1ZNTV9DVEwsIDB4Mik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz0xNTkxPWludCB3aWxjX2dldF9jaGlwaWQoc3RydWN0IHdpbGMgKndpbGMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy0xNjAyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzoxNjAzOlx0XHRcdGlmICghaXNfd2lsYzEwMDAoY2hpcGlkKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy0xNjA0LVx0XHRcdFx0d2lsYy1cdTAwM2VjaGlwaWQgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9MTczNz1pbnQgd2lsY193bGFuX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTE3NjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjE3NjE6XHRcdGlmICghaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpIFx1MDAyNlx1MDAyNiAhaXNfd2lsYzMwMDAod2lsYy1cdTAwM2VjaGlwaWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTE3NjItXHRcdFx0bmV0ZGV2X2VycihkZXYsIFwmIzM0O1Vuc3VwcG9ydGVkIGNoaXBpZDogJXhcXG5cJiMzNDssIHdpbGMtXHUwMDNlY2hpcGlkKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5oPTQzMz1zdHJ1Y3Qgd2lsY192aWY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5oLTQzNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmg6NDM1OnN0YXRpYyBpbmxpbmUgYm9vbCBpc193aWxjMTAwMCh1MzIgaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5oLTQzNi17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYyMTEwCgkJCQkJCQlvdXRwdXQ6IDEyMwoJCQkJCQkJdGhvdWdodHM6IDI3NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipVbnJlYWNoYWJsZSBDb2RlIGluIHRoZSBXSUxDMTAwMCBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7dmUgbG9va2VkIGF0IHRoaXMgcGF0Y2ggYW5kLCB5ZWFoLCBubyBVU0Igc3VwcG9ydCBoZXJlLCB0aGF0JiMzOTtzIGltbWVkaWF0ZWx5IGNsZWFyLiBJdCYjMzk7cyBhbGwgU0RJTyBhbmQgU1BJLCB3aGljaCBtYWtlcyB0aGluZ3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gVGhlIGNyaXRpY2FsIHBvaW50IGlzIHRoYXQgUUVNVSwgYW5kIGJ5IGV4dGVuc2lvbiwgYW55IHN0YW5kYXJkIGNsb3VkIGVudmlyb25tZW50IGxpa2UgR0NFLCBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoZSBuZWNlc3NhcnkgaGFyZHdhcmUuIFRoaXMgaW1tZWRpYXRlbHkgc2V0cyBvZmYgYWxhcm0gYmVsbHMuIEkgY2FuJiMzOTt0IHRoaW5rIG9mIGFueSB3YXkgdGhpcyB3b3VsZCBldmVyIGJlIHJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGZ1enppbmcgY29udGV4dC4KCkxldCYjMzk7cyBkbyBhIHF1aWNrIGRvdWJsZS1jaGVjayB0aG91Z2gsIGp1c3QgdG8gYmUgdGhvcm91Z2guIENvdWxkIHRoaXMgYHdpbGNfd2ZpX21vbl94bWl0YCBmdW5jdGlvbiAqc29tZWhvdyogYmUgY2FsbGVkIGJ5IG90aGVyIGNvZGUgZGlyZWN0bHk/IE5vLCBpdCYjMzk7cyBgc3RhdGljYCwgc28gdGhhdCYjMzk7cyBhIGRlYWQgZW5kLiBPa2F5LCBzbyBwZXJoYXBzIHRoZSBuZXR3b3JrIGRldmljZSBjb3VsZCBzb21laG93IGJlIGNyZWF0ZWQgd2l0aG91dCB0aGUgaGFyZHdhcmUgYmVpbmcgcHJlc2VudD8gVGhhdCBkb2VzbiYjMzk7dCBzZWVtIGxpa2VseSBlaXRoZXIuIGB3aWxjX3dmaV9pbml0X21vbl9pbnRlcmZhY2VgIHRha2VzIGEgYHN0cnVjdCB3aWxjICp3bGAgYXMgYW4gYXJndW1lbnQsIGFuZCB0aGF0IGB3bGAgaXMgYWxsb2NhdGVkIGFuZCBpbml0aWFsaXplZCBkdXJpbmcgcHJvYmUuIFRoZSBwcm9iZSByZXF1aXJlcyB0aGUgcGh5c2ljYWwgaGFyZHdhcmUgdG8gc3VjY2VlZC4gU28sIHRvIHJlY2FwLCB0aGVyZSYjMzk7cyBubyB3YXkgdG8gaW5zdGFudGlhdGUgdGhpcyBwYXJ0aWN1bGFyIGRyaXZlci4KClRoZXJlZm9yZSwgSSYjMzk7bSBjb25maWRlbnQgaW4gc2F5aW5nIHRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSwgcGVyaW9kLgoKSSYjMzk7bGwgZm9ybXVsYXRlIG15IHJlc3BvbnNlLCB0aGVuLgpgV29ydGhGdXp6aW5nOiBmYWxzZWAKYFJlYXNvbmluZzogVGhlIHBhdGNoIGFkZHJlc3NlcyB0aGUgTWljcm9jaGlwIFdJTEMxMDAwIHdpcmVsZXNzIGRyaXZlciwgYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyIGZvciBTRElPL1NQSSBXaUZpIGNoaXBzLiBTaW5jZSBRRU1VIGFuZCBvdGhlciBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgZG9uJiMzOTt0IGVtdWxhdGUgdGhpcyBwYXJ0aWN1bGFyIGhhcmR3YXJlLCBhbmQgdGhlcmUmIzM5O3Mgbm8gc29mdHdhcmUtZW11bGF0ZWQgYWx0ZXJuYXRpdmUsIGxpa2UgbWFjODAyMTFfaHdzaW0gb3IgVVNCIGdhZGdldCwgdGhlIGRyaXZlciBjYW4mIzM5O3QgYmUgcHJvYmVkIGFuZCB0aGUgY29kZSBpbiBxdWVzdGlvbiBzaW1wbHkgY2FuJiMzOTt0IGJlIHJlYWNoZWQgZHVyaW5nIGZ1enppbmcuYAoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNaWNyb2NoaXAgV0lMQzEwMDAgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgZm9yIHBoeXNpY2FsIFNESU8vU1BJIFdpRmkgY2hpcHMuIFNpbmNlIFFFTVUgYW5kIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSB0aGlzIHNwZWNpZmljIGhhcmR3YXJlLCBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUtZW11bGF0ZWQgYWx0ZXJuYXRpdmUgKGxpa2UgbWFjODAyMTFfaHdzaW0gb3IgVVNCIGdhZGdldCkgZm9yIGl0LCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgYW5kIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1pY3JvY2hpcCBXSUxDMTAwMCB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIGRyaXZlciBmb3IgcGh5c2ljYWwgU0RJTy9TUEkgV2lGaSBjaGlwcy4gU2luY2UgUUVNVSBhbmQgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGRvIG5vdCBlbXVsYXRlIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUsIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZS1lbXVsYXRlZCBhbHRlcm5hdGl2ZSAobGlrZSBtYWM4MDIxMV9od3NpbSBvciBVU0IgZ2FkZ2V0KSBmb3IgaXQsIHRoZSBkcml2ZXIgY2Fubm90IGJlIHByb2JlZCBhbmQgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDc6MjEuMjM0OTA2NDU0WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQwNjI5MzU5MzU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWljcm9jaGlwIFdJTEMxMDAwIHdpcmVsZXNzIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyIGZvciBwaHlzaWNhbCBTRElPL1NQSSBXaUZpIGNoaXBzLiBTaW5jZSBRRU1VIGFuZCBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBoYXJkd2FyZSwgYW5kIHRoZXJlIGlzIG5vIHNvZnR3YXJlLWVtdWxhdGVkIGFsdGVybmF0aXZlIChsaWtlIG1hYzgwMjExX2h3c2ltIG9yIFVTQiBnYWRnZXQpIGZvciBpdCwgdGhlIGRyaXZlciBjYW5ub3QgYmUgcHJvYmVkIGFuZCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA3OjIxLjIzNDkxMTg2NFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTExMDAwODU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMmNhZjk5ODcxMmRhNmU2MjVjMmI5NjUxYWU3ZDA3Zjg1NmQ2NmYxM1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCAzMCAwMjowNzoyMCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmNcXG5pbmRleCBiNWNmNmZhN2E4NTEwLi45YjhjMDgzYjQwM2RlIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uY1xcbkBAIC0xNDIsNiArMTQyLDkgQEAgc3RhdGljIGludCBtb25fbWdtdF90eChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1OCAqYnVmLCBzaXplX3QgbGVuKVxcbiBzdGF0aWMgbmV0ZGV2X3R4X3Qgd2lsY193ZmlfbW9uX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbiB7XFxuK1xcdHN0cnVjdCBpZWVlODAyMTFfcmFkaW90YXBfaGVhZGVyX2ZpeGVkICpydGFwX2hkcjtcXG4rXFx0c3RydWN0IGllZWU4MDIxMV9oZHJfM2FkZHIgKmhkcjtcXG4rXFx0dW5zaWduZWQgaW50IGhkcl9sZW47XFxuIFxcdHUzMiBydGFwX2xlbiwgcmV0ID0gMDtcXG4gXFx0c3RydWN0IHdpbGNfd2ZpX21vbl9wcml2ICAqbW9uX3ByaXY7XFxuIFxcdHN0cnVjdCBza19idWZmICpza2IyO1xcbkBAIC0xNTMsMTMgKzE1NiwyNiBAQCBzdGF0aWMgbmV0ZGV2X3R4X3Qgd2lsY193ZmlfbW9uX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gXFx0aWYgKCFtb25fcHJpdilcXG4gXFx0XFx0cmV0dXJuIC1FRkFVTFQ7XFxuIFxcbitcXHRpZiAoc2tiLVxcdTAwM2VsZW4gXFx1MDAzYyBzaXplb2YoKnJ0YXBfaGRyKSlcXG4rXFx0XFx0Z290byBkcm9wO1xcbitcXG4rXFx0cnRhcF9oZHIgPSAodm9pZCAqKXNrYi1cXHUwMDNlZGF0YTtcXG4rXFx0aWYgKHJ0YXBfaGRyLVxcdTAwM2VpdF92ZXJzaW9uKVxcbitcXHRcXHRnb3RvIGRyb3A7XFxuK1xcbiBcXHRydGFwX2xlbiA9IGllZWU4MDIxMV9nZXRfcmFkaW90YXBfbGVuKHNrYi1cXHUwMDNlZGF0YSk7XFxuLVxcdGlmIChza2ItXFx1MDAzZWxlbiBcXHUwMDNjIHJ0YXBfbGVuKVxcbi1cXHRcXHRyZXR1cm4gLTE7XFxuK1xcdGlmIChydGFwX2xlbiBcXHUwMDNjIHNpemVvZigqcnRhcF9oZHIpIHx8IHNrYi1cXHUwMDNlbGVuIFxcdTAwM2MgcnRhcF9sZW4pXFxuK1xcdFxcdGdvdG8gZHJvcDtcXG4gXFxuIFxcdHNrYl9wdWxsKHNrYiwgcnRhcF9sZW4pO1xcbitcXHRoZHJfbGVuID0gaWVlZTgwMjExX2dldF9oZHJsZW5fZnJvbV9za2Ioc2tiKTtcXG4rXFx0aWYgKGhkcl9sZW4gXFx1MDAzYyBzaXplb2YoKmhkcikpXFxuK1xcdFxcdGdvdG8gZHJvcDtcXG4gXFxuLVxcdGlmIChza2ItXFx1MDAzZWRhdGFbMF0gPT0gMHhjMCBcXHUwMDI2XFx1MDAyNiBpc19icm9hZGNhc3RfZXRoZXJfYWRkcihcXHUwMDI2c2tiLVxcdTAwM2VkYXRhWzRdKSkge1xcbitcXHRoZHIgPSAodm9pZCAqKXNrYi1cXHUwMDNlZGF0YTtcXG4rXFxuK1xcdGlmIChpZWVlODAyMTFfaXNfZGVhdXRoKGhkci1cXHUwMDNlZnJhbWVfY29udHJvbCkgXFx1MDAyNlxcdTAwMjZcXG4rXFx0ICAgIGlzX2Jyb2FkY2FzdF9ldGhlcl9hZGRyKGhkci1cXHUwMDNlYWRkcjEpKSB7XFxuIFxcdFxcdHNrYjIgPSBkZXZfYWxsb2Nfc2tiKHNrYi1cXHUwMDNlbGVuICsgc2l6ZW9mKCpjYl9oZHIpKTtcXG4gXFx0XFx0aWYgKCFza2IyKVxcbiBcXHRcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG5AQCAtMTkxLDggKzIwNyw4IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCB3aWxjX3dmaV9tb25feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiBcXHR9XFxuIFxcdHNrYi1cXHUwMDNlZGV2ID0gbW9uX3ByaXYtXFx1MDAzZXJlYWxfbmRldjtcXG4gXFxuLVxcdGV0aGVyX2FkZHJfY29weShzcmNhZGQsIFxcdTAwMjZza2ItXFx1MDAzZWRhdGFbMTBdKTtcXG4tXFx0ZXRoZXJfYWRkcl9jb3B5KGJzc2lkLCBcXHUwMDI2c2tiLVxcdTAwM2VkYXRhWzE2XSk7XFxuK1xcdGV0aGVyX2FkZHJfY29weShzcmNhZGQsIGhkci1cXHUwMDNlYWRkcjIpO1xcbitcXHRldGhlcl9hZGRyX2NvcHkoYnNzaWQsIGhkci1cXHUwMDNlYWRkcjMpO1xcbiBcXHQvKlxcbiBcXHQgKiBJZGVudGlmeSBpZiBkYXRhIG9yIG1nbXQgcGFja2V0LCBpZiBzb3VyY2UgYWRkcmVzcyBhbmQgYnNzaWRcXG4gXFx0ICogZmllbGRzIGFyZSBlcXVhbCBzZW5kIGl0IHRvIG1nbXQgZnJhbWVzIGhhbmRsZXJcXG5AQCAtMjA3LDYgKzIyMywxMCBAQCBzdGF0aWMgbmV0ZGV2X3R4X3Qgd2lsY193ZmlfbW9uX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gXFx0fVxcbiBcXG4gXFx0cmV0dXJuIHJldDtcXG4rXFxuK2Ryb3A6XFxuK1xcdGRldl9rZnJlZV9za2Ioc2tiKTtcXG4rXFx0cmV0dXJuIE5FVERFVl9UWF9PSztcXG4gfVxcbiBcXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyB3aWxjX3dmaV9uZXRkZXZfb3BzID0ge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowNzoyMS43NDY3NTI4MTNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxNDAxMTc1MDQ0NjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNaWNyb2NoaXAgV0lMQzEwMDAgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgZm9yIHBoeXNpY2FsIFNESU8vU1BJIFdpRmkgY2hpcHMuIFNpbmNlIFFFTVUgYW5kIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSB0aGlzIHNwZWNpZmljIGhhcmR3YXJlLCBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUtZW11bGF0ZWQgYWx0ZXJuYXRpdmUgKGxpa2UgbWFjODAyMTFfaHdzaW0gb3IgVVNCIGdhZGdldCkgZm9yIGl0LCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgYW5kIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMmNhZjk5ODcxMmRhNmU2MjVjMmI5NjUxYWU3ZDA3Zjg1NmQ2NmYxM1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDMwIDAyOjA3OjIwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jXG5pbmRleCBiNWNmNmZhN2E4NTEwLi45YjhjMDgzYjQwM2RlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmNcbkBAIC0xNDIsNiArMTQyLDkgQEAgc3RhdGljIGludCBtb25fbWdtdF90eChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1OCAqYnVmLCBzaXplX3QgbGVuKVxuIHN0YXRpYyBuZXRkZXZfdHhfdCB3aWxjX3dmaV9tb25feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRcdFx0ICAgICBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuIHtcbitcdHN0cnVjdCBpZWVlODAyMTFfcmFkaW90YXBfaGVhZGVyX2ZpeGVkICpydGFwX2hkcjtcbitcdHN0cnVjdCBpZWVlODAyMTFfaGRyXzNhZGRyICpoZHI7XG4rXHR1bnNpZ25lZCBpbnQgaGRyX2xlbjtcbiBcdHUzMiBydGFwX2xlbiwgcmV0ID0gMDtcbiBcdHN0cnVjdCB3aWxjX3dmaV9tb25fcHJpdiAgKm1vbl9wcml2O1xuIFx0c3RydWN0IHNrX2J1ZmYgKnNrYjI7XG5AQCAtMTUzLDEzICsxNTYsMjYgQEAgc3RhdGljIG5ldGRldl90eF90IHdpbGNfd2ZpX21vbl94bWl0KHN0cnVjdCBza19idWZmICpza2IsXG4gXHRpZiAoIW1vbl9wcml2KVxuIFx0XHRyZXR1cm4gLUVGQVVMVDtcbiBcbitcdGlmIChza2ItXHUwMDNlbGVuIFx1MDAzYyBzaXplb2YoKnJ0YXBfaGRyKSlcbitcdFx0Z290byBkcm9wO1xuK1xuK1x0cnRhcF9oZHIgPSAodm9pZCAqKXNrYi1cdTAwM2VkYXRhO1xuK1x0aWYgKHJ0YXBfaGRyLVx1MDAzZWl0X3ZlcnNpb24pXG4rXHRcdGdvdG8gZHJvcDtcbitcbiBcdHJ0YXBfbGVuID0gaWVlZTgwMjExX2dldF9yYWRpb3RhcF9sZW4oc2tiLVx1MDAzZWRhdGEpO1xuLVx0aWYgKHNrYi1cdTAwM2VsZW4gXHUwMDNjIHJ0YXBfbGVuKVxuLVx0XHRyZXR1cm4gLTE7XG4rXHRpZiAocnRhcF9sZW4gXHUwMDNjIHNpemVvZigqcnRhcF9oZHIpIHx8IHNrYi1cdTAwM2VsZW4gXHUwMDNjIHJ0YXBfbGVuKVxuK1x0XHRnb3RvIGRyb3A7XG4gXG4gXHRza2JfcHVsbChza2IsIHJ0YXBfbGVuKTtcbitcdGhkcl9sZW4gPSBpZWVlODAyMTFfZ2V0X2hkcmxlbl9mcm9tX3NrYihza2IpO1xuK1x0aWYgKGhkcl9sZW4gXHUwMDNjIHNpemVvZigqaGRyKSlcbitcdFx0Z290byBkcm9wO1xuIFxuLVx0aWYgKHNrYi1cdTAwM2VkYXRhWzBdID09IDB4YzAgXHUwMDI2XHUwMDI2IGlzX2Jyb2FkY2FzdF9ldGhlcl9hZGRyKFx1MDAyNnNrYi1cdTAwM2VkYXRhWzRdKSkge1xuK1x0aGRyID0gKHZvaWQgKilza2ItXHUwMDNlZGF0YTtcbitcbitcdGlmIChpZWVlODAyMTFfaXNfZGVhdXRoKGhkci1cdTAwM2VmcmFtZV9jb250cm9sKSBcdTAwMjZcdTAwMjZcbitcdCAgICBpc19icm9hZGNhc3RfZXRoZXJfYWRkcihoZHItXHUwMDNlYWRkcjEpKSB7XG4gXHRcdHNrYjIgPSBkZXZfYWxsb2Nfc2tiKHNrYi1cdTAwM2VsZW4gKyBzaXplb2YoKmNiX2hkcikpO1xuIFx0XHRpZiAoIXNrYjIpXG4gXHRcdFx0cmV0dXJuIC1FTk9NRU07XG5AQCAtMTkxLDggKzIwNyw4IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCB3aWxjX3dmaV9tb25feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0fVxuIFx0c2tiLVx1MDAzZWRldiA9IG1vbl9wcml2LVx1MDAzZXJlYWxfbmRldjtcbiBcbi1cdGV0aGVyX2FkZHJfY29weShzcmNhZGQsIFx1MDAyNnNrYi1cdTAwM2VkYXRhWzEwXSk7XG4tXHRldGhlcl9hZGRyX2NvcHkoYnNzaWQsIFx1MDAyNnNrYi1cdTAwM2VkYXRhWzE2XSk7XG4rXHRldGhlcl9hZGRyX2NvcHkoc3JjYWRkLCBoZHItXHUwMDNlYWRkcjIpO1xuK1x0ZXRoZXJfYWRkcl9jb3B5KGJzc2lkLCBoZHItXHUwMDNlYWRkcjMpO1xuIFx0LypcbiBcdCAqIElkZW50aWZ5IGlmIGRhdGEgb3IgbWdtdCBwYWNrZXQsIGlmIHNvdXJjZSBhZGRyZXNzIGFuZCBic3NpZFxuIFx0ICogZmllbGRzIGFyZSBlcXVhbCBzZW5kIGl0IHRvIG1nbXQgZnJhbWVzIGhhbmRsZXJcbkBAIC0yMDcsNiArMjIzLDEwIEBAIHN0YXRpYyBuZXRkZXZfdHhfdCB3aWxjX3dmaV9tb25feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0fVxuIFxuIFx0cmV0dXJuIHJldDtcbitcbitkcm9wOlxuK1x0ZGV2X2tmcmVlX3NrYihza2IpO1xuK1x0cmV0dXJuIE5FVERFVl9UWF9PSztcbiB9XG4gXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyB3aWxjX3dmaV9uZXRkZXZfb3BzID0ge1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDc6MjEuNzQ2NzU0NTYzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTI0NzkwMjM1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGB3aWxjX3dmaV9tb25feG1pdGAgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGB3aWxjX3dmaV9tb25feG1pdGAgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmNgLiBSaWdodCwgdGhhdCdzIHRoZSBkcml2ZXIgZm9yIHRoZSBNaWNyb2NoaXAgV0lMQzEwMDAgd2lyZWxlc3MgY2hpcHMuIE15IGZpcnN0IHF1ZXN0aW9uIGlzIGFsd2F5cyB3aGV0aGVyIHRoaXMgZHJpdmVyIGlzIGV2ZW4gKnJlYWNoYWJsZSogaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gVGhlc2UgaGFyZHdhcmUtc3BlY2lmaWMgd2lyZWxlc3MgZHJpdmVycywgbGlrZSB0aGUgd2lsYzEwMDAsIHVzdWFsbHkgZGVwZW5kIG9uIHRoZSBwaHlzaWNhbCBoYXJkd2FyZSBiZWluZyBwcmVzZW50LCB3aGljaCBwb3NlcyBhIGh1Z2UgaHVyZGxlIGZvciBmdXp6aW5nIGFuZCB0ZXN0aW5nLlxuXG5JIG5lZWQgdG8gcXVpY2tseSBmaWd1cmUgb3V0IGlmIHRoaXMgaXMgc29tZSBraW5kIG9mIHNvZnR3YXJlLWVtdWxhdGVkIHZlcnNpb24gb2YgdGhlIGhhcmR3YXJlLCBvciBpZiB0aGVyZSdzIGFueSBjbGV2ZXIgd2F5IHRvIG1ha2UgaXQgd29yayB3aXRob3V0IHRoZSBhY3R1YWwgY2hpcC4gSSByZW1lbWJlciBzeXprYWxsZXIgaGFzIHNvbWUgcGFja2V0IGluamVjdGlvbiBjYXBhYmlsaXRpZXMgZm9yIG5ldCBkZXZpY2VzLCBidXQgdGhhdCB3b24ndCBoZWxwIGlmIHRoZSBkZXZpY2UgaXRzZWxmIGNhbid0IGV2ZW4gYmUgaW5zdGFudGlhdGVkIGluIHRoZSBmaXJzdCBwbGFjZSwgb3IgYm91bmQgdG8gYSBuZXR3b3JrIG5hbWVzcGFjZS4gU28sIGJlZm9yZSBJIGdvIGRvd24gdGhhdCByYWJiaXQgaG9sZSwgSSBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoaXMgZHJpdmVyLiBMZXQgbWUgZGlnIGludG8gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9LY29uZmlnYC4gSG9wZWZ1bGx5LCB0aGF0IHdpbGwgZ2l2ZSBtZSBzb21lIGNsdWVzIGFzIHRvIHRoZSBkcml2ZXIncyBkZXBlbmRlbmNpZXMgYW5kIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjg0NCwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3MiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA3OjI2Ljk5NDY2MDU2WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA0NDEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDEwMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG4gICAyOlxcdGNvbmZpZyBXSUxDMTAwMFxcbiAgIDM6XFx0XFx0dHJpc3RhdGVcXG4gICA0OlxcdFxcdGhlbHBcXG4gICA1OlxcdFxcdCAgQWRkIHN1cHBvcnQgZm9yIHRoZSBBdG1lbCBXSUxDMTAwMCA4MDIuMTEgYi9nL24gU29DLlxcbiAgIDY6XFx0XFx0ICBUaGlzIHByb3ZpZGVzIFdpLUZJIG92ZXIgYW4gU0RJTyBvciBTUEkgaW50ZXJmYWNlLCBhbmRcXG4gICA3OlxcdFxcdCAgaXMgdXN1YWxseSBmb3VuZCBpbiBJb1QgZGV2aWNlcy5cXG4gICA4OlxcdFxcbiAgIDk6XFx0XFx0ICBUaGlzIG1vZHVsZSBvbmx5IHN1cHBvcnQgSUVFRSA4MDIuMTFuIFdpRmkuXFxuICAxMDpcXHRcXG4gIDExOlxcdGNvbmZpZyBXSUxDMTAwMF9TRElPXFxuICAxMjpcXHRcXHR0cmlzdGF0ZSBcXFwiQXRtZWwgV0lMQzEwMDAgU0RJTyAoV2lGaSBvbmx5KVxcXCJcXG4gIDEzOlxcdFxcdGRlcGVuZHMgb24gQ0ZHODAyMTEgXFx1MDAyNlxcdTAwMjYgSU5FVCBcXHUwMDI2XFx1MDAyNiBNTUNcXG4gIDE0OlxcdFxcdHNlbGVjdCBXSUxDMTAwMFxcbiAgMTU6XFx0XFx0aGVscFxcbiAgMTY6XFx0XFx0ICBUaGlzIG1vZHVsZSBhZGRzIHN1cHBvcnQgZm9yIHRoZSBTRElPIGludGVyZmFjZSBvZiBhZGFwdGVycyB1c2luZ1xcbiAgMTc6XFx0XFx0ICBXSUxDMTAwMCBjaGlwc2V0LiBUaGUgQXRtZWwgV0lMQzEwMDAgU0RJTyBpcyBhIGZ1bGwgc3BlZWQgaW50ZXJmYWNlLlxcbiAgMTg6XFx0XFx0ICBJdCBtZWV0cyBTRElPIGNhcmQgc3BlY2lmaWNhdGlvbiB2ZXJzaW9uIDIuMC4gVGhlIGludGVyZmFjZSBzdXBwb3J0c1xcbiAgMTk6XFx0XFx0ICB0aGUgMS1iaXQvNC1iaXQgU0QgdHJhbnNmZXIgbW9kZSBhdCB0aGUgY2xvY2sgcmFuZ2Ugb2YgMC01MCBNSHouXFxuICAyMDpcXHRcXHQgIFRoZSBob3N0IGNhbiB1c2UgdGhpcyBpbnRlcmZhY2UgdG8gcmVhZCBhbmQgd3JpdGUgZnJvbSBhbnkgcmVnaXN0ZXJcXG4gIDIxOlxcdFxcdCAgd2l0aGluIHRoZSBjaGlwIGFzIHdlbGwgYXMgY29uZmlndXJlIHRoZSBXSUxDMTAwMCBmb3IgZGF0YSBETUEuXFxuICAyMjpcXHRcXHQgIFRvIHVzZSB0aGlzIGludGVyZmFjZSwgcGluOSAoU0RJT19TUElfQ0ZHKSBtdXN0IGJlIGdyb3VuZGVkLiBTZWxlY3RcXG4gIDIzOlxcdFxcdCAgdGhpcyBpZiB5b3VyIHBsYXRmb3JtIGlzIHVzaW5nIHRoZSBTRElPIGJ1cy5cXG4gIDI0OlxcdFxcbiAgMjU6XFx0Y29uZmlnIFdJTEMxMDAwX1NQSVxcbiAgMjY6XFx0XFx0dHJpc3RhdGUgXFxcIkF0bWVsIFdJTEMxMDAwIFNQSSAoV2lGaSBvbmx5KVxcXCJcXG4gIDI3OlxcdFxcdGRlcGVuZHMgb24gQ0ZHODAyMTEgXFx1MDAyNlxcdTAwMjYgSU5FVCBcXHUwMDI2XFx1MDAyNiBTUElcXG4gIDI4OlxcdFxcdHNlbGVjdCBXSUxDMTAwMFxcbiAgMjk6XFx0XFx0c2VsZWN0IENSQzdcXG4gIDMwOlxcdFxcdHNlbGVjdCBDUkNfSVRVX1RcXG4gIDMxOlxcdFxcdGhlbHBcXG4gIDMyOlxcdFxcdCAgVGhpcyBtb2R1bGUgYWRkcyBzdXBwb3J0IGZvciB0aGUgU1BJIGludGVyZmFjZSBvZiBhZGFwdGVycyB1c2luZ1xcbiAgMzM6XFx0XFx0ICBXSUxDMTAwMCBjaGlwc2V0LiBUaGUgQXRtZWwgV0lMQzEwMDAgaGFzIGEgU2VyaWFsIFBlcmlwaGVyYWxcXG4gIDM0OlxcdFxcdCAgSW50ZXJmYWNlIChTUEkpIHRoYXQgb3BlcmF0ZXMgYXMgYSBTUEkgc2xhdmUuIFRoaXMgU1BJIGludGVyZmFjZSBjYW5cXG4gIDM1OlxcdFxcdCAgYmUgdXNlZCBmb3IgY29udHJvbCBhbmQgZm9yIHNlcmlhbCBJL08gb2YgODAyLjExIGRhdGEuIFRoZSBTUEkgaXMgYVxcbiAgMzY6XFx0XFx0ICBmdWxsLWR1cGxleCBzbGF2ZSBzeW5jaHJvbm91cyBzZXJpYWwgaW50ZXJmYWNlIHRoYXQgaXMgYXZhaWxhYmxlXFxuICAzNzpcXHRcXHQgIGltbWVkaWF0ZWx5IGZvbGxvd2luZyByZXNldCB3aGVuIHBpbiA5IChTRElPX1NQSV9DRkcpIGlzIHRpZWQgdG9cXG4gIDM4OlxcdFxcdCAgVkRESU8uIFNlbGVjdCB0aGlzIGlmIHlvdXIgcGxhdGZvcm0gaXMgdXNpbmcgdGhlIFNQSSBidXMuXFxuICAzOTpcXHRcXG4gIDQwOlxcdGNvbmZpZyBXSUxDMTAwMF9IV19PT0JfSU5UUlxcbiAgNDE6XFx0XFx0Ym9vbCBcXFwiV0lMQzEwMDAgb3V0IG9mIGJhbmQgaW50ZXJydXB0XFxcIlxcbiAgNDI6XFx0XFx0ZGVwZW5kcyBvbiBXSUxDMTAwMF9TRElPXFxuICA0MzpcXHRcXHRoZWxwXFxuICA0NDpcXHRcXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgb3V0LW9mLWJhbmQgaW50ZXJydXB0IHN1cHBvcnQgZm9yIHRoZSBXSUxDMTAwMFxcbiAgNDU6XFx0XFx0ICBjaGlwc2V0LiBUaGlzIE9PQiBpbnRlcnJ1cHQgaXMgaW50ZW5kZWQgdG8gcHJvdmlkZSBhIGZhc3RlciBpbnRlcnJ1cHRcXG4gIDQ2OlxcdFxcdCAgbWVjaGFuaXNtIGZvciBTRElPIGhvc3QgY29udHJvbGxlcnMgdGhhdCBkb24ndCBzdXBwb3J0IFNESU8gaW50ZXJydXB0LlxcbiAgNDc6XFx0XFx0ICBTZWxlY3QgdGhpcyBvcHRpb24gSWYgdGhlIFNESU8gaG9zdCBjb250cm9sbGVyIGluIHlvdXIgcGxhdGZvcm1cXG4gIDQ4OlxcdFxcdCAgZG9lc24ndCBzdXBwb3J0IFNESU8gdGltZSBkaXZpc2lvbiBpbnRlcnJ1cHQuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA3OjI2Ljk5NDc2NzI2WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTY3NTEzMDU3NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBBdG1lbCBXSUxDMTAwMCBEcml2ZXIgaW4gUUVNVSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgQXRtZWwgV0lMQzEwMDAgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZm9yIFNESU8vU1BJLiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzLCBjYW4gSSBpbnN0YW50aWF0ZSB0aGlzIHRoaW5nIHdpdGhpbiBhIFFFTVUgZW52aXJvbm1lbnQ/IEdlbmVyYWxseSwgSSdkIGV4cGVjdCBTRElPIGFuZCBTUEkgZGV2aWNlcyB0byBiZSB0cmlja3kg4oCTIHR5cGljYWxseSwgeW91IG5lZWQgdG8gbW9jayB0aGVtLCB3aGljaCBpcyBwb3NzaWJsZSwgYnV0IHVzdWFsbHksIHRoYXQgbWVhbnMgcGh5c2ljYWwgaGFyZHdhcmUgb3IgdmVyeSBzcGVjaWZpYyBib2FyZCBlbXVsYXRpb24uXG5cbldhaXQgYSBzZWNvbmQsIHRob3VnaC4uLiBpc24ndCB0aGVyZSBzb21ldGhpbmcgYWJvdXQgc3l6a2FsbGVyPyBZZWFoLCBpdCBzdXBwb3J0cyBpbmplY3RpbmcgZGV2aWNlcyB2aWEgYG1hYzgwMjExX2h3c2ltYCwgYnV0IHRoaXMgaXMgYSAqc3BlY2lmaWMqIGRyaXZlciwgdGhlIFdJTEMxMDAwLiBTbyBob3cncyB0aGlzIGdvaW5nIHRvIHdvcms/XG5cbkhvbGQgb24sIEkgc2VlIGEgc3l6a2FsbGVyIHJlcG9ydCwgXCJzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcIi4gVGhhdCdzIGludGVyZXN0aW5nLCB0aGUgYXV0aG9yIGlzIGlkZW50aWZpZWQgYXMgc3l6LWNsdXN0ZXIuIEJ1dCB0aGVuLCB0aGUgY29tbWl0IHNheXMgdGhlIHBhdGNoIGlzICp1bmRlciByZXZpZXcqLCB5ZXQgc3l6a2FsbGVyIGZvdW5kIGEgYnVnPyBUaGF0IHNlZW1zIGNvbnRyYWRpY3RvcnkuIExldCdzIHNlZSBpZiBzeXprYWxsZXIgY2FuIGV2ZW4gKnJlYWNoKiB0aGlzIGRyaXZlci5cblxuSG1tLCBzeXprYWxsZXIgKmRvZXMqIGhhdmUgbWV0aG9kcyBmb3IgY3JlYXRpbmcgbmV0IGRldmljZXMuIE1heWJlIHRoZSBXSUxDMTAwMCBkcml2ZXIgcmVnaXN0ZXJzIGEgbmV0IGRldmljZT8gSWYgc28sIGNvdWxkIEkgY3JlYXRlIGl0IHVzaW5nIG5ldGxpbmsgY29tbWFuZHMsIGxpa2UgYGlwIGxpbmsgYWRkIHR5cGUgLi4uYD8gT3IgaXMgaXQgcGVyaGFwcyBhIHZpcnR1YWwgZGV2aWNlP1xuXG5Pa2F5LCBsZXQgbWUgY2hlY2sgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uY2AuIEknbGwgc3RhcnQgd2l0aCBgd2lsY193ZmlfbW9uX3htaXRgIGFuZCBzZWUgd2hhdCBpdCdzIGRvaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MjEzLCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjU4LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDc6MzIuNjY5OTAwNDc0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyOTA4NTcxOTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwid2lsY193ZmlfbW9uX3htaXRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jPTExNT1zdGF0aWMgaW50IG1vbl9tZ210X3R4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGNvbnN0IHU4ICpidWYsIHNpemVfdCBsZW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMTQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYzoxNDI6c3RhdGljIG5ldGRldl90eF90IHdpbGNfd2ZpX21vbl94bWl0KHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jLTE0My1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmM9MjMyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgd2lsY193ZmlfbmV0ZGV2X29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmM6MjMzOlxcdC5uZG9fc3RhcnRfeG1pdCAgICAgICAgID0gd2lsY193ZmlfbW9uX3htaXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jLTIzNC1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDc6MzUuOTYwNzYzNjQ4WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzAzMDI1MTY1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkRpdmluZyBpbnRvIHRoZSBOZXR3b3JrIERyaXZlcidzIFRyYW5zbWlzc2lvbiBQYXRoKipcblxuUmlnaHQsIHNvIEknbSBsb29raW5nIGF0IGBuZG9fc3RhcnRfeG1pdGAuIFRoYXQncyB0aGUgZnVuY3Rpb24gY2FsbGVkIHdpdGhpbiB0aGUgYHdpbGNfd2ZpX25ldGRldl9vcHNgIHN0cnVjdHVyZSB0byBoYW5kbGUgdHJhbnNtaXNzaW9uIGZyb20gdGhlIHdpcmVsZXNzIGNhcmQuIFRoYXQncyBhIGtleSBlbnRyeSBwb2ludCwgdGhlIGNyaXRpY2FsIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIGEgcGFja2V0IG5lZWRzIHRvIGdvIG91dCBvdmVyIHRoZSBhaXIuIEJ1dCwgZmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBsYXJnZXIgY29udGV4dC4gSG93IGlzIHRoaXMgbmV0d29yayBkZXZpY2UsIHRoZSB0aGluZyB0aGF0IGhvdXNlcyBhbGwgdGhlc2Ugb3BlcmF0aW9ucywgYWN0dWFsbHkgY3JlYXRlZCBpbiB0aGUgZmlyc3QgcGxhY2U/IFdoZXJlIGRvZXMgYHdpbGNfd2ZpX25ldGRldl9vcHNgIGdldCBwb3B1bGF0ZWQ/IElzIGl0IGR1cmluZyB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1vZHVsZSwgd2hlbiB0aGUgZGV2aWNlIHJlZ2lzdGVycyB3aXRoIHRoZSBrZXJuZWwsIG9yIHNvbWUgb3RoZXIgcGFydCBvZiB0aGUgYm9vdCBwcm9jZXNzPyBLbm93aW5nIHRoaXMgc2hvdWxkIGdpdmUgbWUgYmV0dGVyIGluc2lnaHQgaW50byB0aGUgd2hvbGUgZHJpdmVyJ3MgaW5pdGlhbGl6YXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUxNDIsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowNzozOC45OTEwMTgwNjdaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjI0ODA4MTAzMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ3aWxjX3dmaV9uZXRkZXZfb3BzXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYz0xNDI9c3RhdGljIG5ldGRldl90eF90IHdpbGNfd2ZpX21vbl94bWl0KHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMjMxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYzoyMzI6c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyB3aWxjX3dmaV9uZXRkZXZfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYy0yMzMtXFx0Lm5kb19zdGFydF94bWl0ICAgICAgICAgPSB3aWxjX3dmaV9tb25feG1pdCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYz0yMzc9c3RydWN0IG5ldF9kZXZpY2UgKndpbGNfd2ZpX2luaXRfbW9uX2ludGVyZmFjZShzdHJ1Y3Qgd2lsYyAqd2wsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMjUyLVxcdHN0cnNjcHkod2wtXFx1MDAzZW1vbml0b3JfZGV2LVxcdTAwM2VuYW1lLCBuYW1lLCBJRk5BTVNJWik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jOjI1MzpcXHR3bC1cXHUwMDNlbW9uaXRvcl9kZXYtXFx1MDAzZW5ldGRldl9vcHMgPSBcXHUwMDI2d2lsY193ZmlfbmV0ZGV2X29wcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMjU0LVxcdHdsLVxcdTAwM2Vtb25pdG9yX2Rldi1cXHUwMDNlbmVlZHNfZnJlZV9uZXRkZXYgPSB0cnVlO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowNzo0MS4yMzkxMDMyNzhaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTYxNzA1MDExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBgd2lsY193ZmlfaW5pdF9tb25faW50ZXJmYWNlYCBGdW5jdGlvbioqXG5cbkFscmlnaHQsIHNvIGB3aWxjX3dmaV9pbml0X21vbl9pbnRlcmZhY2VgIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyB0aGUgbmV0d29yayBkZXZpY2UsIHRoZSBjb3JlIG9mIHRoZSBtb25pdG9yaW5nIGludGVyZmFjZS4gTXkgZmlyc3QgaW5zdGluY3QsIGFzIGFsd2F5cywgaXMgdG8gdW5kZXJzdGFuZCBpdHMgcGxhY2UgaW4gdGhlIHN5c3RlbS4gVGhlIG5leHQgc3RlcCBpcyBjbGVhcjogbGV0J3MgdHJhY2UgaXRzIGNhbGwgZ3JhcGguIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIGFuZCBob3cgdGhpcyBmdW5jdGlvbiBpcyBpbnZva2VkLiBLbm93aW5nIHRoZSBjYWxsaW5nIGNvbnRleHQgaXMgY3J1Y2lhbC4gV2hhdCB0cmlnZ2VycyB0aGlzIGNyZWF0aW9uPyBJcyBpdCBvbiBtb2R1bGUgbG9hZCwgc3BlY2lmaWMgZXZlbnRzLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseT8gQSBxdWljayBjb2RlIGRpdmUgc2hvdWxkIHJldmVhbCB0aGUgcmVsZXZhbnQgY2FsbCBzaXRlcy4gVGhlIGdvYWwgaXMgdG8gZnVsbHkgZ3Jhc3AgdGhlIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIGFuZCBkZXBlbmRlbmNpZXMgZm9yIHRoaXMgcGFydGljdWxhciBtb25pdG9yaW5nIGludGVyZmFjZS4gVW5kZXJzdGFuZGluZyB0aGUgaW5pdGlhbCBjb250ZXh0IGlzIHZpdGFsIHRvIHVuZGVyc3RhbmQgdGhlIG1vbml0b3JpbmcgaW50ZXJmYWNlJ3MgbGlmZWN5Y2xlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NzQ4LCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDc6NDQuNDAwODEyNjA5WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjg4MDM3MjkyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIndpbGNfd2ZpX2luaXRfbW9uX2ludGVyZmFjZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz0xNTIyPXN0YXRpYyBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICphZGRfdmlydHVhbF9pbnRmKHN0cnVjdCB3aXBoeSAqd2lwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xNTUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjE1NTI6XFx0XFx0bmRldiA9IHdpbGNfd2ZpX2luaXRfbW9uX2ludGVyZmFjZSh3bCwgbmFtZSwgdmlmLVxcdTAwM2VuZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xNTUzLVxcdFxcdGlmIChuZGV2KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuaD0xNz12b2lkIHdpbGNfd2ZpX2RlaW5pdF9tb25faW50ZXJmYWNlKHN0cnVjdCB3aWxjICp3bCwgYm9vbCBydG5sX2xvY2tlZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmg6MTg6c3RydWN0IG5ldF9kZXZpY2UgKndpbGNfd2ZpX2luaXRfbW9uX2ludGVyZmFjZShzdHJ1Y3Qgd2lsYyAqd2wsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmgtMTktXFx0XFx0XFx0XFx0XFx0ICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmM9MjMyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgd2lsY193ZmlfbmV0ZGV2X29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYy0yMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jOjIzNzpzdHJ1Y3QgbmV0X2RldmljZSAqd2lsY193ZmlfaW5pdF9tb25faW50ZXJmYWNlKHN0cnVjdCB3aWxjICp3bCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMjM4LVxcdFxcdFxcdFxcdFxcdCAgICAgICBjb25zdCBjaGFyICpuYW1lLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowNzo0Ni42ODg4NTcwNDFaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njc5ODg3OTgyMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGBhZGRfdmlydHVhbF9pbnRmYCBDYWxsIFBhdGgqKlxuXG5Pa2F5LCBzbyBgYWRkX3ZpcnR1YWxfaW50ZmAgaXMgYSBgY2ZnODAyMTFgIGNhbGxiYWNrLiBUaGF0IG1lYW5zIGlmIHRoZSBkZXZpY2UgaXMgcHJlc2VudCwgc3l6a2FsbGVyICpjb3VsZCogdXNlIG5ldGxpbmsgKGBubDgwMjExYCkgdG8gY3JlYXRlIGEgbW9uaXRvciBpbnRlcmZhY2UgYW5kIHRoZW4gaW5qZWN0IHBhY2tldHMsIHdoaWNoIHNob3VsZCBsZWFkIHRvIGB3aWxjX3dmaV9tb25feG1pdGAuIFRoZSBrZXkgcXVlc3Rpb24gaXM6IGlzIHRoZSBgd2lsYzEwMDBgIGRldmljZSBldmVuIHByZXNlbnQgaW4gdGhpcyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD9cblxuVGhpcyBkcml2ZXIncyBmb3IgYW4gU0RJTy9TUEkgZGV2aWNlLCB3aGljaCByYWlzZXMgYSByZWQgZmxhZy4gVW5sZXNzIHRoZXJlJ3Mgc29tZSBraW5kIG9mIG1vY2tpbmcgbWVjaGFuaXNtLCB0aGUgZHJpdmVyICp3b24ndCogcHJvYmUsIGFuZCB0aGF0IGBhZGRfdmlydHVhbF9pbnRmYCBmdW5jdGlvbiBjYWxsIGlzIGdvaW5nIHRvIGJlIHVucmVhY2hhYmxlIGJlY2F1c2UgdGhlIGRyaXZlciBkb2Vzbid0IHJlZ2lzdGVyIGEgV2ktRmkgcGh5c2ljYWwgZGV2aWNlIChgd2lwaHlgKS4gU28sIEkgbmVlZCB0byBpbnZlc3RpZ2F0ZSBhbnkgcG90ZW50aWFsIG1vY2tpbmcgY2FwYWJpbGl0aWVzIG9yIHNvZnR3YXJlIGJ1cyBwcm9iaW5nIHBvc3NpYmlsaXRpZXMuXG5cblNESU8gYW5kIFNQSSBkZXZpY2VzIGFyZSB0eXBpY2FsbHkgYWJzZW50IGluIGEgc3RhbmRhcmQgeDg2IFFFTVUgc2V0dXAsIHVubGVzcyBleHBsaWNpdGx5IGNvbmZpZ3VyZWQsIGFuZCBzeXprYWxsZXIsIHRvIG15IGtub3dsZWRnZSwgZG9lc24ndCBoYXZlIGEgZ2VuZXJpYyB3YXkgdG8gbW9jayB0aGVzZS4gVW5sZXNzLi4uIGlzIHRoZXJlIGEgc3l6a2FsbGVyIHBzZXVkby1kZXZpY2UsIG9yIGlzIGl0IGEgVVNCIGRldmljZSBtYXNxdWVyYWRpbmc/IExldCdzIGNoZWNrLi4uIG5vLCB0aGUgS2NvbmZpZyBvcHRpb25zIHNwZWNpZnkgU0RJTyBhbmQgU1BJLlxuXG5SaWdodCwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgc3l6a2FsbGVyJ3MgZGV2aWNlIGluamVjdGlvbiBjYXBhYmlsaXRpZXMuIENhbiBzeXprYWxsZXIgcHJvYmUgU1BJIG9yIFNESU8gZGV2aWNlcywgcGVyaW9kPyBJIGtub3cgaXQgaGFzIHNvbWUgVVNCIGFuZCBQQ0kgZGV2aWNlIGluamVjdGlvbiBmZWF0dXJlcywgYnV0IEkgZG9uJ3QgcmVjYWxsIHNlZWluZyBhbnkgZ2VuZXJpYyBzdXBwb3J0IGZvciBTRElPIG9yIFNQSS5cblxuSG9sZCBvbi4uLiBwZXJoYXBzIHRoZXJlJ3MgYSB3b3JrYXJvdW5kPyBJIG5lZWQgdG8gZXhwbG9yZSBpZiB0aGVyZSdzIGFueSBvdGhlciBhdmVudWUgdG8gdHJpZ2dlciB0aGlzIGJlaGF2aW9yLiBMZXQgbWUgc2VlIGlmIHRoZXJlIGFyZSBhbnkgZXhpc3Rpbmcgc3l6a2FsbGVyIGRlc2NyaXB0aW9ucyBmb3Igd2lsYzEwMDAuIFRoYXQncyB0aGUgbG9naWNhbCBuZXh0IHN0ZXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY0NzUsIk91dHB1dFRva2VucyI6MTYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDc6NTMuNDg3NzQwNzMxWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzU2NTc5NTc3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIndpbGNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2MTIwIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG4ubWFpbG1hcD00OTM9S3J6eXN6dG9mIEtvemxvd3NraSBcXHUwMDNja3J6a0BrZXJuZWwub3JnXFx1MDAzZSBcXHUwMDNja3J6eXN6dG9mLmtvemxvd3NraUBsaW5hcm8ub3JnXFx1MDAzZVxcbi5tYWlsbWFwOjQ5NDpLcnp5c3p0b2YgV2lsY3p5xYRza2kgXFx1MDAzY2t3aWxjenluc2tpQGtlcm5lbC5vcmdcXHUwMDNlIFxcdTAwM2Nrcnp5c3p0b2Yud2lsY3p5bnNraUBsaW51eC5jb21cXHUwMDNlXFxuLm1haWxtYXA6NDk1OktyenlzenRvZiBXaWxjennFhHNraSBcXHUwMDNja3dpbGN6eW5za2lAa2VybmVsLm9yZ1xcdTAwM2UgXFx1MDAzY2t3QGxpbnV4LmNvbVxcdTAwM2VcXG4ubWFpbG1hcC00OTYtS3NoaXRpeiBHb2RhcmEgXFx1MDAzY3F1aWNfa2dvZGFyYUBxdWljaW5jLmNvbVxcdTAwM2UgXFx1MDAzY2tnb2RhcmFAY29kZWF1cm9yYS5vcmdcXHUwMDNlXFxuLS1cXG4ubWFpbG1hcD01Njc9TWF0IE1hcnRpbmVhdSBcXHUwMDNjbWFydGluZWF1QGtlcm5lbC5vcmdcXHUwMDNlIFxcdTAwM2NtYXRoZXdtQGNvZGVhdXJvcmEub3JnXFx1MDAzZVxcbi5tYWlsbWFwOjU2ODpNYXR0aGV3IFdpbGNveCBcXHUwMDNjd2lsbHlAaW5mcmFkZWFkLm9yZ1xcdTAwM2UgXFx1MDAzY21hdHRoZXcuci53aWxjb3hAaW50ZWwuY29tXFx1MDAzZVxcbi5tYWlsbWFwLTU2OS1NYXR0aGV3IFdpbGNveCBcXHUwMDNjd2lsbHlAaW5mcmFkZWFkLm9yZ1xcdTAwM2UgXFx1MDAzY21hdHRoZXdAd2lsLmN4XFx1MDAzZVxcbi5tYWlsbWFwOjU3MDpNYXR0aGV3IFdpbGNveCBcXHUwMDNjd2lsbHlAaW5mcmFkZWFkLm9yZ1xcdTAwM2UgXFx1MDAzY21hd2lsY294QGxpbnV4b25oeXBlcnYuY29tXFx1MDAzZVxcbi5tYWlsbWFwOjU3MTpNYXR0aGV3IFdpbGNveCBcXHUwMDNjd2lsbHlAaW5mcmFkZWFkLm9yZ1xcdTAwM2UgXFx1MDAzY21hd2lsY294QG1pY3Jvc29mdC5jb21cXHUwMDNlXFxuLm1haWxtYXAtNTcyLU1hdHRoZXcgV2lsY294IFxcdTAwM2N3aWxseUBpbmZyYWRlYWQub3JnXFx1MDAzZSBcXHUwMDNjd2lsbHlAZGViaWFuLm9yZ1xcdTAwM2VcXG4tLVxcbi5tYWlsbWFwPTg1OD1TdmVuIFBldGVyIFxcdTAwM2NzdmVuQGtlcm5lbC5vcmdcXHUwMDNlIFxcdTAwM2NzdmVuQHN2ZW5wZXRlci5kZXZcXHUwMDNlXFxuLm1haWxtYXA6ODU5OlN6eW1vbiBXaWxjemVrIFxcdTAwM2Nzd2lsY3play5seEBnbWFpbC5jb21cXHUwMDNlIFxcdTAwM2Nzenltb253aWxjemVrQGdteC5jb21cXHUwMDNlXFxuLm1haWxtYXAtODYwLVRha2FzaGkgWU9TSElJIFxcdTAwM2N0YWthc2hpLnlvc2hpaS56akByZW5lc2FzLmNvbVxcdTAwM2VcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3RpbmcvZGVidWdmcy13aWxjby1lYzoxOldoYXQ6XFx0XFx0L3N5cy9rZXJuZWwvZGVidWcvd2lsY29fZWMvaDFfZ3Bpb1xcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3RpbmcvZGVidWdmcy13aWxjby1lYy0yLURhdGU6XFx0XFx0QXByaWwgMjAxOVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjPTQ9RGVzY3JpcHRpb246XFxuLS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWMtMTMtXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjOjE0OldoYXQ6XFx0XFx0L3N5cy9rZXJuZWwvZGVidWcvd2lsY29fZWMvcmF3XFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjLTE1LURhdGU6XFx0XFx0SmFudWFyeSAyMDE5XFxuLS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWM9MTc9RGVzY3JpcHRpb246XFxuLS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWMtMjQtXFx0XFx0Rm9yIHdyaXRpbmcsIGJ5dGVzIDAtMSBpbmRpY2F0ZSB0aGUgbWVzc2FnZSB0eXBlLCBvbmUgb2YgZW51bVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3RpbmcvZGVidWdmcy13aWxjby1lYzoyNTpcXHRcXHR3aWxjb19lY19tc2dfdHlwZS4gQnl0ZSAyKyBjb25zaXN0IG9mIHRoZSBkYXRhIHBhc3NlZCBpbiB0aGVcXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWMtMjYtXFx0XFx0cmVxdWVzdCwgc3RhcnRpbmcgYXQgTUJPWFswXS4gQXQgbGVhc3QgdGhyZWUgYnl0ZXMgYXJlIHJlcXVpcmVkXFxuLS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWMtMzQtXFx0XFx0ICAgIC8vIE1CT1ggPSBbMzgsIDAwLCAwMywgMDBdXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjOjM1OlxcdFxcdCAgICAkIGVjaG8gMDAgZjAgMzggMDAgMDMgMDAgXFx1MDAzZSAvc3lzL2tlcm5lbC9kZWJ1Zy93aWxjb19lYy9yYXdcXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWMtMzYtXFx0XFx0ICAgIC8vIFZpZXcgdGhlIHJlc3VsdC4gVGhlIGRlY29kZWQgQVNDSUkgcmVzdWx0IFxcXCIxMi8yMS8xOFxcXCIgaXNcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3RpbmcvZGVidWdmcy13aWxjby1lYy0zOC1cXHRcXHQgICAgLy8gQ29ycmVzcG9uZHMgd2l0aCBNQk9YID0gWzAwLCAwMCwgMzEsIDMyLCAyZiwgMzIsIDMxLCAzOCwgLi4uXVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3RpbmcvZGVidWdmcy13aWxjby1lYzozOTpcXHRcXHQgICAgJCBjYXQgL3N5cy9rZXJuZWwvZGVidWcvd2lsY29fZWMvcmF3XFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjLTQwLVxcdFxcdCAgICAwMCAwMCAzMSAzMiAyZiAzMiAzMSAyZiAzMSAzOCAwMCAzOCAwMCAwMSAwMCAyZiAwMCAgLi4xMi8yMS8xOC44Li4uXFxuLS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLXBvd2VyLXdpbGNvOjE6V2hhdDpcXHRcXHQvc3lzL2NsYXNzL3Bvd2VyX3N1cHBseS93aWxjby1jaGFyZ2VyL2NoYXJnZV90eXBlXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1wb3dlci13aWxjby0yLURhdGU6XFx0XFx0QXByaWwgMjAxOVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1wb3dlci13aWxjbz00PURlc2NyaXB0aW9uOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1wb3dlci13aWxjby0yNy1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLXBvd2VyLXdpbGNvOjI4OldoYXQ6XFx0XFx0L3N5cy9jbGFzcy9wb3dlcl9zdXBwbHkvd2lsY28tY2hhcmdlci9jaGFyZ2VfY29udHJvbF9zdGFydF90aHJlc2hvbGRcXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLXBvd2VyLXdpbGNvLTI5LURhdGU6XFx0XFx0QXByaWwgMjAxOVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1wb3dlci13aWxjbz0zMT1EZXNjcmlwdGlvbjpcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtcG93ZXItd2lsY28tMzQtXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1wb3dlci13aWxjbzozNTpXaGF0OlxcdFxcdC9zeXMvY2xhc3MvcG93ZXJfc3VwcGx5L3dpbGNvLWNoYXJnZXIvY2hhcmdlX2NvbnRyb2xfZW5kX3RocmVzaG9sZFxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtcG93ZXItd2lsY28tMzYtRGF0ZTpcXHRcXHRBcHJpbCAyMDE5XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZmlybXdhcmUvdGhlYWQsdGgxNTIwLWFvbi55YW1sPTIxPW1haW50YWluZXJzOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9maXJtd2FyZS90aGVhZCx0aDE1MjAtYW9uLnlhbWw6MjI6ICAtIE1pY2hhbCBXaWxjenluc2tpIFxcdTAwM2NtLndpbGN6eW5za2lAc2Ftc3VuZy5jb21cXHUwMDNlXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Zpcm13YXJlL3RoZWFkLHRoMTUyMC1hb24ueWFtbC0yMy1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tYWlsYm94L3RoZWFkLHRoMTUyMC1tYm94LnlhbWw9MTU9bWFpbnRhaW5lcnM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21haWxib3gvdGhlYWQsdGgxNTIwLW1ib3gueWFtbDoxNjogIC0gTWljaGFsIFdpbGN6eW5za2kgXFx1MDAzY20ud2lsY3p5bnNraUBzYW1zdW5nLmNvbVxcdTAwM2VcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWFpbGJveC90aGVhZCx0aDE1MjAtbWJveC55YW1sLTE3LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21tYy9tbWMtcHdyc2VxLXNkODc4Ny55YW1sPTEyPXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbW1jL21tYy1wd3JzZXEtc2Q4Nzg3LnlhbWwtMTUtICAgICAgLSBtbWMtcHdyc2VxLXNkODc4N1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tbWMvbW1jLXB3cnNlcS1zZDg3ODcueWFtbDoxNjogICAgICAtIG1tYy1wd3JzZXEtd2lsYzEwMDBcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbW1jL21tYy1wd3JzZXEtc2Q4Nzg3LnlhbWwtMTctXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTMtLS0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw9MTM9ZGVzY3JpcHRpb246XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDoxNDogIFRoZSB3aWxjMTAwMCBjaGlwcyBjYW4gYmUgY29ubmVjdGVkIHZpYSBTUEkgb3IgU0RJTy4gVGhpcyBkb2N1bWVudFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6MTU6ICBkZXNjcmliZXMgdGhlIGJpbmRpbmcgdG8gY29ubmVjdCB3aWxjIGRldmljZXMuXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC0xNi1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sPTE3PXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTIwLSAgICAgIC0gaXRlbXM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDoyMTogICAgICAgICAgLSBjb25zdDogbWljcm9jaGlwLHdpbGMzMDAwXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDoyMjogICAgICAgICAgLSBjb25zdDogbWljcm9jaGlwLHdpbGMxMDAwXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDoyMzogICAgICAtIGNvbnN0OiBtaWNyb2NoaXAsd2lsYzEwMDBcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTI0LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC0zOC0gICAgbWF4SXRlbXM6IDFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sOjM5OiAgICBkZXNjcmlwdGlvbjogVXNlZCBieSB3aWxjMTAwMC1zcGkgdG8gZGV0ZXJtaW5lIHRoZSBHUElPIGxpbmVcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTQwLSAgICAgIGNvbm5lY3RlZCB0byB0aGUgRU5BQkxFIGxpbmUuICBJZiBzcGVjaWZpZWQsIHJlc2V0LWdwaW9zXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTQ3LSAgICBtYXhJdGVtczogMVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6NDg6ICAgIGRlc2NyaXB0aW9uOiBVc2VkIGJ5IHdpbGMxMDAwLXNwaSB0byBkZXRlcm1pbmUgdGhlIEdQSU8gbGluZVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtNDktICAgICAgY29ubmVjdGVkIHRvIHRoZSBSRVNFVCBsaW5lLiAgVGhpcyBzaG91bGQgYmUgZGVjbGFyZWQgYXMgYW5cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw9NjE9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTY4LSAgICAgIHdpZmlAMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDo2OTogICAgICAgIGNvbXBhdGlibGUgPSBcXFwibWljcm9jaGlwLHdpbGMxMDAwXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTcwLSAgICAgICAgc3BpLW1heC1mcmVxdWVuY3kgPSBcXHUwMDNjNDgwMDAwMDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC05MS0gICAgICB3aWZpQDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6OTI6ICAgICAgICBjb21wYXRpYmxlID0gXFxcIm1pY3JvY2hpcCx3aWxjMTAwMFxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC05My0gICAgICAgIHJlZyA9IFxcdTAwM2MwXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wd20vdGhlYWQsdGgxNTIwLXB3bS55YW1sPTk9bWFpbnRhaW5lcnM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3B3bS90aGVhZCx0aDE1MjAtcHdtLnlhbWw6MTA6ICAtIE1pY2hhbCBXaWxjenluc2tpIFxcdTAwM2NtLndpbGN6eW5za2lAc2Ftc3VuZy5jb21cXHUwMDNlXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3B3bS90aGVhZCx0aDE1MjAtcHdtLnlhbWwtMTEtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcmVzZXQvdGhlYWQsdGgxNTIwLXJlc2V0LnlhbWw9MTM9bWFpbnRhaW5lcnM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Jlc2V0L3RoZWFkLHRoMTUyMC1yZXNldC55YW1sOjE0OiAgLSBNaWNoYWwgV2lsY3p5bnNraSBcXHUwMDNjbS53aWxjenluc2tpQHNhbXN1bmcuY29tXFx1MDAzZVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9yZXNldC90aGVhZCx0aDE1MjAtcmVzZXQueWFtbC0xNS1cXG4tLVxcbk1BSU5UQUlORVJTPTIwODIwPU06XFx0TWFuaXZhbm5hbiBTYWRoYXNpdmFtIFxcdTAwM2NtYW5pQGtlcm5lbC5vcmdcXHUwMDNlXFxuTUFJTlRBSU5FUlM6MjA4MjE6TTpcXHRLcnp5c3p0b2YgV2lsY3p5xYRza2kgXFx1MDAzY2t3aWxjenluc2tpQGtlcm5lbC5vcmdcXHUwMDNlXFxuTUFJTlRBSU5FUlMtMjA4MjItUjpcXHRLaXNob24gVmlqYXkgQWJyYWhhbSBJIFxcdTAwM2NraXNob25Aa2VybmVsLm9yZ1xcdTAwM2VcXG4tLVxcbk1BSU5UQUlORVJTPTIwODcxPU06XFx0TG9yZW56byBQaWVyYWxpc2kgXFx1MDAzY2xwaWVyYWxpc2lAa2VybmVsLm9yZ1xcdTAwM2VcXG5NQUlOVEFJTkVSUzoyMDg3MjpNOlxcdEtyenlzenRvZiBXaWxjennFhHNraSBcXHUwMDNja3dpbGN6eW5za2lAa2VybmVsLm9yZ1xcdTAwM2VcXG5NQUlOVEFJTkVSUy0yMDg3My1NOlxcdE1hbml2YW5uYW4gU2FkaGFzaXZhbSBcXHUwMDNjbWFuaUBrZXJuZWwub3JnXFx1MDAzZVxcbi0tXFxuTUFJTlRBSU5FUlM9MjA5MzQ9UjpcXHRCam9ybiBIZWxnYWFzIFxcdTAwM2NiaGVsZ2Fhc0Bnb29nbGUuY29tXFx1MDAzZVxcbk1BSU5UQUlORVJTOjIwOTM1OlI6XFx0S3J6eXN6dG9mIFdpbGN6ecWEc2tpIFxcdTAwM2Nrd2lsY3p5bnNraUBrZXJuZWwub3JnXFx1MDAzZVxcbk1BSU5UQUlORVJTLTIwOTM2LUw6XFx0bGludXgtcGNpQHZnZXIua2VybmVsLm9yZ1xcbi0tXFxuTUFJTlRBSU5FUlM9MjE4NjA9UFdNIFNVQlNZU1RFTSBCSU5ESU5HUyBbUlVTVF1cXG5NQUlOVEFJTkVSUzoyMTg2MTpNOlxcdE1pY2hhbCBXaWxjenluc2tpIFxcdTAwM2NtLndpbGN6eW5za2lAc2Ftc3VuZy5jb21cXHUwMDNlXFxuTUFJTlRBSU5FUlMtMjE4NjItTDpcXHRsaW51eC1wd21Admdlci5rZXJuZWwub3JnXFxuLS1cXG5NQUlOVEFJTkVSUz0yMTg2OD1QV00gU1VCU1lTVEVNIERSSVZFUlMgW1JVU1RdXFxuTUFJTlRBSU5FUlM6MjE4Njk6UjpcXHRNaWNoYWwgV2lsY3p5bnNraSBcXHUwMDNjbS53aWxjenluc2tpQHNhbXN1bmcuY29tXFx1MDAzZVxcbk1BSU5UQUlORVJTLTIxODcwLUY6XFx0ZHJpdmVycy9wd20vKi5yc1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k9NDI9XFx0d2lmaV9wd3JzZXE6IHdpZmlfcHdyc2VxIHtcXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaTo0MzpcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1tYy1wd3JzZXEtd2lsYzEwMDBcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTQ0LVxcdFxcdHJlc2V0LWdwaW9zID0gXFx1MDAzY1xcdTAwMjZwaW9BIFBJTl9QQTI3IEdQSU9fQUNUSVZFX0hJR0hcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTQ1LVxcdFxcdHBvd2VyZG93bi1ncGlvcyA9IFxcdTAwM2NcXHUwMDI2cGlvQSBQSU5fUEEyOSBHUElPX0FDVElWRV9ISUdIXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaTo0NjpcXHRcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfd2lsY19wd3JzZXFcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTQ3LVxcdFxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaT0zNDc9XFx0XFx0Y29uZi1jayB7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS0zNTItXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k6MzUzOlxcdHBpbmN0cmxfd2lsY19kZWZhdWx0OiB3aWxjX2RlZmF1bHQge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTM1NC1cXHRcXHRjb25mLWlycSB7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS0zNTktXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k6MzYwOlxcdHBpbmN0cmxfd2lsY19wd3JzZXE6IHdpbGNfcHdyc2VxIHtcXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS0zNjEtXFx0XFx0Y29uZi1jZS1ucnN0IHtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpPTM3ND1cXHUwMDI2c2RtbWMxIHtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTM4NS1cXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaTozODY6XFx0d2lsYzogd2lmaUAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS0zODctXFx0XFx0cmVnID0gXFx1MDAzYzBcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpOjM4ODpcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1pY3JvY2hpcCx3aWxjMzAwMFxcXCIsIFxcXCJtaWNyb2NoaXAsd2lsYzEwMDBcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTM4OS1cXHRcXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpOjM5MDpcXHRcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfd2lsY19kZWZhdWx0XFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS0zOTEtXFx0XFx0Y2xvY2tzID0gXFx1MDAzY1xcdTAwMjZwbWMgUE1DX1RZUEVfU1lTVEVNIDlcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMl9pY3AuZHRzPTcwNj1cXHUwMDI2cXNwaTEge1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMl9pY3AuZHRzLTcwOC1cXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfcXNwaTFfZGVmYXVsdFxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMl9pY3AuZHRzOjcwOTpcXHRzdGF0dXMgPSBcXFwiZGlzYWJsZWRcXFwiOyAvKiBDb25mbGljdCB3aXRoIHdpbGNfcHdyc2VxLCBmbHgyICovXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMl9pY3AuZHRzLTcxMC1cXG4tLVxcbmRyaXZlcnMvZmlybXdhcmUvdGhlYWQsdGgxNTIwLWFvbi5jLTQtICogQ29weXJpZ2h0IChjKSAyMDI0IFNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuXFxuZHJpdmVycy9maXJtd2FyZS90aGVhZCx0aDE1MjAtYW9uLmM6NTogKiBBdXRob3I6IE1pY2hhbCBXaWxjenluc2tpIFxcdTAwM2NtLndpbGN6eW5za2lAc2Ftc3VuZy5jb21cXHUwMDNlXFxuZHJpdmVycy9maXJtd2FyZS90aGVhZCx0aDE1MjAtYW9uLmMtNi0gKi9cXG4tLVxcbmRyaXZlcnMvZmlybXdhcmUvdGhlYWQsdGgxNTIwLWFvbi5jPTI0NT1FWFBPUlRfU1lNQk9MX0dQTCh0aDE1MjBfYW9uX2RlaW5pdCk7XFxuZHJpdmVycy9maXJtd2FyZS90aGVhZCx0aDE1MjAtYW9uLmMtMjQ2LVxcbmRyaXZlcnMvZmlybXdhcmUvdGhlYWQsdGgxNTIwLWFvbi5jOjI0NzpNT0RVTEVfQVVUSE9SKFxcXCJNaWNoYWwgV2lsY3p5bnNraSBcXHUwMDNjbS53aWxjenluc2tpQHNhbXN1bmcuY29tXFx1MDAzZVxcXCIpO1xcbmRyaXZlcnMvZmlybXdhcmUvdGhlYWQsdGgxNTIwLWFvbi5jLTI0OC1NT0RVTEVfREVTQ1JJUFRJT04oXFxcIlQtSEVBRCBUSDE1MjAgQWx3YXlzLU9uIGZpcm13YXJlIHByb3RvY29sIGxpYnJhcnlcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jPTQ1PXN0YXRpYyB2b2lkIG1tY19wd3JzZXFfc2Q4Nzg3X3Bvd2VyX29mZihzdHJ1Y3QgbW1jX2hvc3QgKmhvc3QpXFxuLS1cXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy01Mi1cXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYzo1MzpzdGF0aWMgdm9pZCBtbWNfcHdyc2VxX3dpbGMxMDAwX3ByZV9wb3dlcl9vbihzdHJ1Y3QgbW1jX2hvc3QgKmhvc3QpXFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmMtNTQte1xcbi0tXFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmMtNjItXFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM6NjM6c3RhdGljIHZvaWQgbW1jX3B3cnNlcV93aWxjMTAwMF9wb3dlcl9vZmYoc3RydWN0IG1tY19ob3N0ICpob3N0KVxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTY0LXtcXG4tLVxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jPTcxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbW1jX3B3cnNlcV9vcHMgbW1jX3B3cnNlcV9zZDg3ODdfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmMtNzUtXFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM6NzY6c3RhdGljIGNvbnN0IHN0cnVjdCBtbWNfcHdyc2VxX29wcyBtbWNfcHdyc2VxX3dpbGMxMDAwX29wcyA9IHtcXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYzo3NzpcXHQucHJlX3Bvd2VyX29uID0gbW1jX3B3cnNlcV93aWxjMTAwMF9wcmVfcG93ZXJfb24sXFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM6Nzg6XFx0LnBvd2VyX29mZiA9IG1tY19wd3JzZXFfd2lsYzEwMDBfcG93ZXJfb2ZmLFxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTc5LX07XFxuLS1cXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYz04MT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtbWNfcHdyc2VxX3NkODc4N19vZl9tYXRjaFtdID0ge1xcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTgyLVxcdHsgLmNvbXBhdGlibGUgPSBcXFwibW1jLXB3cnNlcS1zZDg3ODdcXFwiLCAuZGF0YSA9IFxcdTAwMjZtbWNfcHdyc2VxX3NkODc4N19vcHMgfSxcXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYzo4MzpcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1tYy1wd3JzZXEtd2lsYzEwMDBcXFwiLCAuZGF0YSA9IFxcdTAwMjZtbWNfcHdyc2VxX3dpbGMxMDAwX29wcyB9LFxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTg0LVxcdHsvKiBzZW50aW5lbCAqL30sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvS2NvbmZpZz0xMz1pZiBXTEFOX1ZFTkRPUl9NSUNST0NISVBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvS2NvbmZpZzoxNDpzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC9LY29uZmlnLTE1LWVuZGlmICMgV0xBTl9WRU5ET1JfTUlDUk9DSElQXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX1dJTEMxMDAwKVxcdFxcdCs9IHdpbGMxMDAwL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZToyOm9iai0kKENPTkZJR19XSUxDMTAwMCkgKz0gd2lsYzEwMDAub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS0zLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZTo0OndpbGMxMDAwLW9ianMgOj0gY2ZnODAyMTEubyBuZXRkZXYubyBtb24ubyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlLTUtXFx0XFx0XFx0aGlmLm8gd2xhbl9jZmcubyB3bGFuLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGUtNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6NzpvYmotJChDT05GSUdfV0lMQzEwMDBfU0RJTykgKz0gd2lsYzEwMDAtc2Rpby5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjg6d2lsYzEwMDAtc2Rpby1vYmpzICs9IHNkaW8ub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS05LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZToxMDpvYmotJChDT05GSUdfV0lMQzEwMDBfU1BJKSArPSB3aWxjMTAwMC1zcGkub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZToxMTp3aWxjMTAwMC1zcGktb2JqcyArPSBzcGkub1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9MjA9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdHhyeF9zdHlwZXNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoyMTpcXHR3aWxjX3dmaV9jZmc4MDIxMV9tZ210X3R5cGVzW05VTV9OTDgwMjExX0lGVFlQRVNdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTIyLVxcdFtOTDgwMjExX0lGVFlQRV9TVEFUSU9OXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jPTUyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgd2lwaHlfd293bGFuX3N1cHBvcnQgd293bGFuX3N1cHBvcnQgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo1NzpzdHJ1Y3Qgd2lsY19wMnBfbWdtdF9kYXRhIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01OC1cXHRpbnQgc2l6ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTYxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjYyOnN0cnVjdCB3aWxjX3AycF9wdWJfYWN0X2ZyYW1lIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02My1cXHR1OCBjYXRlZ29yeTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTcxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjcyOnN0cnVjdCB3aWxjX3ZlbmRvcl9zcGVjaWZpY19pZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNzMtXFx0dTggdGFnX251bWJlcjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTc5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjgwOnN0cnVjdCB3aWxjX2F0dHJfZW50cnkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTgxLVxcdHU4ICBhdHRyX3R5cGU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy04NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo4NjpzdHJ1Y3Qgd2lsY19hdHRyX29wZXJfY2gge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTg3LVxcdHU4IGF0dHJfdHlwZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTkzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjk0OnN0cnVjdCB3aWxjX2F0dHJfY2hfbGlzdCB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtOTUtXFx0dTggYXR0cl90eXBlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjEwMTpzdHJ1Y3Qgd2lsY19jaF9saXN0X2VsZW0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTEwMi1cXHR1OCBvcF9jbGFzcztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jPTEwNz1zdGF0aWMgdm9pZCBjZmdfc2Nhbl9yZXN1bHQoZW51bSBzY2FuX2V2ZW50IHNjYW5fZXZlbnQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MTA4OlxcdFxcdFxcdCAgICBzdHJ1Y3Qgd2lsY19yY3ZkX25ldF9pbmZvICppbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjEwOTpcXHRcXHRcXHQgICAgc3RydWN0IHdpbGNfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xMTAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9MTYzPXN0YXRpYyB2b2lkIGNmZ19jb25uZWN0X3Jlc3VsdChlbnVtIGNvbm5fZXZlbnQgY29ubl9kaXNjb25uX2V2dCwgdTggbWFjX3N0YXR1cyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxNjQ6XFx0XFx0XFx0ICAgICAgIHN0cnVjdCB3aWxjX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTY1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xNjYtXFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IHByaXYtXFx1MDAzZWRldjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxNjc6XFx0c3RydWN0IHdpbGNfdmlmICp2aWYgPSBuZXRkZXZfcHJpdihkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjE2ODpcXHRzdHJ1Y3Qgd2lsYyAqd2wgPSB2aWYtXFx1MDAzZXdpbGM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTY5LVxcdHN0cnVjdCBob3N0X2lmX2RydiAqd2ZpX2RydiA9IHByaXYtXFx1MDAzZWhpZl9kcnY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MTcwOlxcdHN0cnVjdCB3aWxjX2Nvbm5faW5mbyAqY29ubl9pbmZvID0gXFx1MDAyNndmaV9kcnYtXFx1MDAzZWNvbm5faW5mbztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xNzEtXFx0c3RydWN0IHdpcGh5ICp3aXBoeSA9IGRldi1cXHUwMDNlaWVlZTgwMjExX3B0ci1cXHUwMDNld2lwaHk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xODAtXFx0XFx0XFx0Y29ubmVjdF9zdGF0dXMgPSBXTEFOX1NUQVRVU19VTlNQRUNJRklFRF9GQUlMVVJFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjE4MTpcXHRcXHRcXHR3aWxjX3dsYW5fc2V0X2Jzc2lkKHByaXYtXFx1MDAzZWRldiwgTlVMTCwgV0lMQ19TVEFUSU9OX01PREUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTE4Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTIwNi1cXHRcXHRldGhfemVyb19hZGRyKHByaXYtXFx1MDAzZWFzc29jaWF0ZWRfYnNzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoyMDc6XFx0XFx0d2lsY193bGFuX3NldF9ic3NpZChwcml2LVxcdTAwM2VkZXYsIE5VTEwsIFdJTENfU1RBVElPTl9NT0RFKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0yMDgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0yMjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MjIyOnN0cnVjdCB3aWxjX3ZpZiAqd2lsY19nZXRfd2xfdG9fdmlmKHN0cnVjdCB3aWxjICp3bClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0yMjMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjIyNDpcXHRzdHJ1Y3Qgd2lsY192aWYgKnZpZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0yMjUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz0yMzM9c3RhdGljIGludCBzZXRfY2hhbm5lbChzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMjM2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoyMzc6XFx0c3RydWN0IHdpbGMgKndsID0gd2lwaHlfcHJpdih3aXBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MjM4OlxcdHN0cnVjdCB3aWxjX3ZpZiAqdmlmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTIzOS1cXHR1MzIgY2hhbm5lbG51bTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTI0My1cXHRzcmN1X2lkeCA9IHNyY3VfcmVhZF9sb2NrKFxcdTAwMjZ3bC1cXHUwMDNlc3JjdSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MjQ0OlxcdHZpZiA9IHdpbGNfZ2V0X3dsX3RvX3ZpZih3bCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMjQ1LVxcdGlmIChJU19FUlIodmlmKSkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMjUyLVxcdHdsLVxcdTAwM2VvcF9jaCA9IGNoYW5uZWxudW07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MjUzOlxcdHJlc3VsdCA9IHdpbGNfc2V0X21hY19jaG5sX251bSh2aWYsIGNoYW5uZWxudW0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTI1NC1cXHRpZiAocmVzdWx0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9MjYxPXN0YXRpYyBpbnQgc2NhbihzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgY2ZnODAyMTFfc2Nhbl9yZXF1ZXN0ICpyZXF1ZXN0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTI2Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MjYzOlxcdHN0cnVjdCB3aWxjX3ZpZiAqdmlmID0gbmV0ZGV2X3ByaXYocmVxdWVzdC1cXHUwMDNld2Rldi1cXHUwMDNlbmV0ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoyNjQ6XFx0c3RydWN0IHdpbGNfcHJpdiAqcHJpdiA9IFxcdTAwMjZ2aWYtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMjY1LVxcdHUzMiBpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMjg3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjI4ODpcXHRyZXQgPSB3aWxjX3NjYW4odmlmLCBXSUxDX0ZXX1VTRVJfU0NBTiwgc2Nhbl90eXBlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTI4OS1cXHRcXHRcXHRzY2FuX2NoX2xpc3QsIGNmZ19zY2FuX3Jlc3VsdCwgcmVxdWVzdCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz0yOTk9c3RhdGljIGludCBjb25uZWN0KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0zMDEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjMwMjpcXHRzdHJ1Y3Qgd2lsY192aWYgKnZpZiA9IG5ldGRldl9wcml2KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MzAzOlxcdHN0cnVjdCB3aWxjX3ByaXYgKnByaXYgPSBcXHUwMDI2dmlmLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTMwNC1cXHRzdHJ1Y3QgaG9zdF9pZl9kcnYgKndmaV9kcnYgPSBwcml2LVxcdTAwM2VoaWZfZHJ2O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMzk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjM5NjpcXHRqb2luX3BhcmFtcyA9IHdpbGNfcGFyc2Vfam9pbl9ic3NfcGFyYW0oYnNzLCBcXHUwMDI2c21lLVxcdTAwM2VjcnlwdG8pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTM5Ny1cXHRpZiAoIWpvaW5fcGFyYW1zKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00MDQtXFx0Y2ggPSBpZWVlODAyMTFfZnJlcXVlbmN5X3RvX2NoYW5uZWwoYnNzLVxcdTAwM2VjaGFubmVsLVxcdTAwM2VjZW50ZXJfZnJlcSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDA1OlxcdHZpZi1cXHUwMDNld2lsYy1cXHUwMDNlb3BfY2ggPSBjaDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00MDYtXFx0aWYgKHZpZi1cXHUwMDNlaWZ0eXBlICE9IFdJTENfQ0xJRU5UX01PREUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDA3OlxcdFxcdHZpZi1cXHUwMDNld2lsYy1cXHUwMDNlc3RhX2NoID0gY2g7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDA4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjQwOTpcXHR3aWxjX3dsYW5fc2V0X2Jzc2lkKGRldiwgYnNzLVxcdTAwM2Vic3NpZCwgV0lMQ19TVEFUSU9OX01PREUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQxMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0MjQ6XFx0cmV0ID0gd2lsY19zZXRfam9pbl9yZXEodmlmLCBic3MtXFx1MDAzZWJzc2lkLCBzbWUtXFx1MDAzZWllLCBzbWUtXFx1MDAzZWllX2xlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDI1LVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0MjY6XFx0XFx0bmV0ZGV2X2VycihkZXYsIFxcXCJ3aWxjX3NldF9qb2luX3JlcSgpOiBFcnJvclxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDI3LVxcdFxcdHJldCA9IC1FTk9FTlQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDI4LVxcdFxcdGlmICh2aWYtXFx1MDAzZWlmdHlwZSAhPSBXSUxDX0NMSUVOVF9NT0RFKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjQyOTpcXHRcXHRcXHR2aWYtXFx1MDAzZXdpbGMtXFx1MDAzZXN0YV9jaCA9IFdJTENfSU5WQUxJRF9DSEFOTkVMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjQzMDpcXHRcXHR3aWxjX3dsYW5fc2V0X2Jzc2lkKGRldiwgTlVMTCwgV0lMQ19TVEFUSU9OX01PREUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQzMS1cXHRcXHR3ZmlfZHJ2LVxcdTAwM2Vjb25uX2luZm8uY29ubl9yZXN1bHQgPSBOVUxMO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9NDQ4PXN0YXRpYyBpbnQgZGlzY29ubmVjdChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDUwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0NTE6XFx0c3RydWN0IHdpbGNfdmlmICp2aWYgPSBuZXRkZXZfcHJpdihkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjQ1MjpcXHRzdHJ1Y3Qgd2lsY19wcml2ICpwcml2ID0gXFx1MDAyNnZpZi1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0NTM6XFx0c3RydWN0IHdpbGMgKndpbGMgPSB2aWYtXFx1MDAzZXdpbGM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDU0LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00NTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDU4OlxcdGlmICghd2lsYylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00NTktXFx0XFx0cmV0dXJuIC1FSU87XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjQ2MTpcXHRpZiAod2lsYy1cXHUwMDNlY2xvc2UpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00NjItXFx0XFx0LyogYWxyZWFkeSBkaXNjb25uZWN0ZWQgZG9uZSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDY3LVxcdGlmICh2aWYtXFx1MDAzZWlmdHlwZSAhPSBXSUxDX0NMSUVOVF9NT0RFKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjQ2ODpcXHRcXHR3aWxjLVxcdTAwM2VzdGFfY2ggPSBXSUxDX0lOVkFMSURfQ0hBTk5FTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0Njk6XFx0d2lsY193bGFuX3NldF9ic3NpZChwcml2LVxcdTAwM2VkZXYsIE5VTEwsIFdJTENfU1RBVElPTl9NT0RFKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00NzAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00NzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDczOlxcdHJldCA9IHdpbGNfZGlzY29ubmVjdCh2aWYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQ3NC1cXHRpZiAocmV0ICE9IDApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQ4My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0ODQ6c3RhdGljIGludCB3aWxjX3dmaV9jZmdfYWxsb2NhdGVfd3BhX2VudHJ5KHN0cnVjdCB3aWxjX3ByaXYgKnByaXYsIHU4IGlkeClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00ODUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjQ4NjpcXHRpZiAoIXByaXYtXFx1MDAzZXdpbGNfZ3RrW2lkeF0pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0ODc6XFx0XFx0cHJpdi1cXHUwMDNld2lsY19ndGtbaWR4XSA9IGt6YWxsb2Nfb2JqKCpwcml2LVxcdTAwM2V3aWxjX2d0a1tpZHhdKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0ODg6XFx0XFx0aWYgKCFwcml2LVxcdTAwM2V3aWxjX2d0a1tpZHhdKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQ4OS1cXHRcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQ5MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0OTI6XFx0aWYgKCFwcml2LVxcdTAwM2V3aWxjX3B0a1tpZHhdKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDkzOlxcdFxcdHByaXYtXFx1MDAzZXdpbGNfcHRrW2lkeF0gPSBremFsbG9jX29iaigqcHJpdi1cXHUwMDNld2lsY19wdGtbaWR4XSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDk0OlxcdFxcdGlmICghcHJpdi1cXHUwMDNld2lsY19wdGtbaWR4XSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00OTUtXFx0XFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01MDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NTAxOnN0YXRpYyBpbnQgd2lsY193ZmlfY2ZnX2FsbG9jYXRlX3dwYV9pZ3RrX2VudHJ5KHN0cnVjdCB3aWxjX3ByaXYgKnByaXYsIHU4IGlkeClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01MDIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTUwMy1cXHRpZHggLT0gNDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo1MDQ6XFx0aWYgKCFwcml2LVxcdTAwM2V3aWxjX2lndGtbaWR4XSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjUwNTpcXHRcXHRwcml2LVxcdTAwM2V3aWxjX2lndGtbaWR4XSA9IGt6YWxsb2Nfb2JqKCpwcml2LVxcdTAwM2V3aWxjX2lndGtbaWR4XSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NTA2OlxcdFxcdGlmICghcHJpdi1cXHUwMDNld2lsY19pZ3RrW2lkeF0pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTA3LVxcdFxcdFxcdHJldHVybiAtRU5PTUVNO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjUxMjpzdGF0aWMgaW50IHdpbGNfd2ZpX2NmZ19jb3B5X3dwYV9pbmZvKHN0cnVjdCB3aWxjX3dmaV9rZXkgKmtleV9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTUxMy1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3Qga2V5X3BhcmFtcyAqcGFyYW1zKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9NTM3PXN0YXRpYyBpbnQgYWRkX2tleShzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LCBpbnQgbGlua19pZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTU0Ni1cXHR1OCBvcF9tb2RlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjU0NzpcXHRzdHJ1Y3Qgd2lsY192aWYgKnZpZiA9IG5ldGRldl9wcml2KHdkZXYtXFx1MDAzZW5ldGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NTQ4OlxcdHN0cnVjdCB3aWxjX3ByaXYgKnByaXYgPSBcXHUwMDI2dmlmLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjU0OTpcXHRzdHJ1Y3Qgd2lsY193Zmlfa2V5ICprZXk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTUwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTU1LVxcdFxcdCAgICBwcml2LVxcdTAwM2V3ZGV2LmlmdHlwZSA9PSBOTDgwMjExX0lGVFlQRV9QMlBfR08pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo1NTY6XFx0XFx0XFx0c3RydWN0IHdpbGNfd2ZpX2tleSAqa2V5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTU1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo1NTg6XFx0XFx0XFx0cmV0ID0gd2lsY193ZmlfY2ZnX2FsbG9jYXRlX3dwYV9lbnRyeShwcml2LCBrZXlfaW5kZXgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTU1OS1cXHRcXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjU3NTpcXHRcXHRcXHRcXHRwcml2LVxcdTAwM2V3aWxjX2dyb3Vwa2V5ID0gbW9kZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01NzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NTc3OlxcdFxcdFxcdFxcdGtleSA9IHByaXYtXFx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTc4LVxcdFxcdFxcdH0gZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01ODEtXFx0XFx0XFx0XFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjU4MjpcXHRcXHRcXHRcXHRcXHRtb2RlID0gcHJpdi1cXHUwMDNld2lsY19ncm91cGtleSB8IFdJTENfRldfQUVTO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTU4My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo1ODQ6XFx0XFx0XFx0XFx0a2V5ID0gcHJpdi1cXHUwMDNld2lsY19wdGtba2V5X2luZGV4XTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01ODUtXFx0XFx0XFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjU4NjpcXHRcXHRcXHRyZXQgPSB3aWxjX3dmaV9jZmdfY29weV93cGFfaW5mbyhrZXksIHBhcmFtcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTg3LVxcdFxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02MDItXFx0XFx0aWYgKCFwYWlyd2lzZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2MDM6XFx0XFx0XFx0cmV0ID0gd2lsY19hZGRfcnhfZ3RrKHZpZiwgcGFyYW1zLVxcdTAwM2VrZXksIGtleWxlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02MDQtXFx0XFx0XFx0XFx0XFx0ICAgICAga2V5X2luZGV4LCBwYXJhbXMtXFx1MDAzZXNlcV9sZW4sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02MDctXFx0XFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjYwODpcXHRcXHRcXHRyZXQgPSB3aWxjX2FkZF9wdGsodmlmLCBwYXJhbXMtXFx1MDAzZWtleSwga2V5bGVuLCBtYWNfYWRkcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02MDktXFx0XFx0XFx0XFx0XFx0ICAgcnhfbWljLCB0eF9taWMsIG9wX21vZGUsIG1vZGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02MTMtXFx0Y2FzZSBXTEFOX0NJUEhFUl9TVUlURV9BRVNfQ01BQzpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2MTQ6XFx0XFx0cmV0ID0gd2lsY193ZmlfY2ZnX2FsbG9jYXRlX3dwYV9pZ3RrX2VudHJ5KHByaXYsIGtleV9pbmRleCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjE1LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02MTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjE4OlxcdFxcdGtleSA9IHByaXYtXFx1MDAzZXdpbGNfaWd0a1trZXlfaW5kZXggLSA0XTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2MTk6XFx0XFx0cmV0ID0gd2lsY193ZmlfY2ZnX2NvcHlfd3BhX2luZm8oa2V5LCBwYXJhbXMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTYyMC1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjYyOTpcXHRcXHRyZXQgPSB3aWxjX2FkZF9pZ3RrKHZpZiwgcGFyYW1zLVxcdTAwM2VrZXksIGtleWxlbiwgcGFyYW1zLVxcdTAwM2VzZXEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjMwLVxcdFxcdFxcdFxcdCAgICBwYXJhbXMtXFx1MDAzZXNlcV9sZW4sIG1hY19hZGRyLCBvcF9tb2RlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9NjQyPXN0YXRpYyBpbnQgZGVsX2tleShzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LCBpbnQgbGlua19pZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTY0Ni17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjQ3OlxcdHN0cnVjdCB3aWxjX3ZpZiAqdmlmID0gbmV0ZGV2X3ByaXYod2Rldi1cXHUwMDNlbmV0ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NDg6XFx0c3RydWN0IHdpbGNfcHJpdiAqcHJpdiA9IFxcdTAwMjZ2aWYtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjQ5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjUxLVxcdFxcdGtleV9pbmRleCAtPSA0O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY1MjpcXHRcXHRpZiAocHJpdi1cXHUwMDNld2lsY19pZ3RrW2tleV9pbmRleF0pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NTM6XFx0XFx0XFx0a2ZyZWUocHJpdi1cXHUwMDNld2lsY19pZ3RrW2tleV9pbmRleF0tXFx1MDAzZWtleSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjU0OlxcdFxcdFxcdHByaXYtXFx1MDAzZXdpbGNfaWd0a1trZXlfaW5kZXhdLVxcdTAwM2VrZXkgPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY1NTpcXHRcXHRcXHRrZnJlZShwcml2LVxcdTAwM2V3aWxjX2lndGtba2V5X2luZGV4XS1cXHUwMDNlc2VxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NTY6XFx0XFx0XFx0cHJpdi1cXHUwMDNld2lsY19pZ3RrW2tleV9pbmRleF0tXFx1MDAzZXNlcSA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjU3OlxcdFxcdFxcdGtmcmVlKHByaXYtXFx1MDAzZXdpbGNfaWd0a1trZXlfaW5kZXhdKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NTg6XFx0XFx0XFx0cHJpdi1cXHUwMDNld2lsY19pZ3RrW2tleV9pbmRleF0gPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTY1OS1cXHRcXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjYwLVxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjYxOlxcdFxcdGlmIChwcml2LVxcdTAwM2V3aWxjX2d0a1trZXlfaW5kZXhdKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjYyOlxcdFxcdFxcdGtmcmVlKHByaXYtXFx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXFx1MDAzZWtleSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjYzOlxcdFxcdFxcdHByaXYtXFx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXFx1MDAzZWtleSA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjY0OlxcdFxcdFxcdGtmcmVlKHByaXYtXFx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXFx1MDAzZXNlcSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjY1OlxcdFxcdFxcdHByaXYtXFx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXFx1MDAzZXNlcSA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY2NzpcXHRcXHRcXHRrZnJlZShwcml2LVxcdTAwM2V3aWxjX2d0a1trZXlfaW5kZXhdKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2Njg6XFx0XFx0XFx0cHJpdi1cXHUwMDNld2lsY19ndGtba2V5X2luZGV4XSA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjY5LVxcdFxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NzA6XFx0XFx0aWYgKHByaXYtXFx1MDAzZXdpbGNfcHRrW2tleV9pbmRleF0pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NzE6XFx0XFx0XFx0a2ZyZWUocHJpdi1cXHUwMDNld2lsY19wdGtba2V5X2luZGV4XS1cXHUwMDNla2V5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NzI6XFx0XFx0XFx0cHJpdi1cXHUwMDNld2lsY19wdGtba2V5X2luZGV4XS1cXHUwMDNla2V5ID0gTlVMTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NzM6XFx0XFx0XFx0a2ZyZWUocHJpdi1cXHUwMDNld2lsY19wdGtba2V5X2luZGV4XS1cXHUwMDNlc2VxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NzQ6XFx0XFx0XFx0cHJpdi1cXHUwMDNld2lsY19wdGtba2V5X2luZGV4XS1cXHUwMDNlc2VxID0gTlVMTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NzU6XFx0XFx0XFx0a2ZyZWUocHJpdi1cXHUwMDNld2lsY19wdGtba2V5X2luZGV4XSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6Njc2OlxcdFxcdFxcdHByaXYtXFx1MDAzZXdpbGNfcHRrW2tleV9pbmRleF0gPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTY3Ny1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz02ODM9c3RhdGljIGludCBnZXRfa2V5KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsIGludCBsaW5rX2lkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjg3LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2ODg6XFx0c3RydWN0IHdpbGNfdmlmICp2aWYgPSBuZXRkZXZfcHJpdih3ZGV2LVxcdTAwM2VuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY4OTpcXHRzdHJ1Y3Qgd2lsY19wcml2ICpwcml2ID0gXFx1MDAyNnZpZi1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02OTAtXFx0c3RydWN0ICBrZXlfcGFyYW1zIGtleV9wYXJhbXM7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02OTQtXFx0XFx0XFx0a2V5X2luZGV4IC09IDQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6Njk1OlxcdFxcdFxcdGtleV9wYXJhbXMua2V5ID0gcHJpdi1cXHUwMDNld2lsY19pZ3RrW2tleV9pbmRleF0tXFx1MDAzZWtleTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2OTY6XFx0XFx0XFx0a2V5X3BhcmFtcy5jaXBoZXIgPSBwcml2LVxcdTAwM2V3aWxjX2lndGtba2V5X2luZGV4XS1cXHUwMDNlY2lwaGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY5NzpcXHRcXHRcXHRrZXlfcGFyYW1zLmtleV9sZW4gPSBwcml2LVxcdTAwM2V3aWxjX2lndGtba2V5X2luZGV4XS1cXHUwMDNla2V5X2xlbjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2OTg6XFx0XFx0XFx0a2V5X3BhcmFtcy5zZXEgPSBwcml2LVxcdTAwM2V3aWxjX2lndGtba2V5X2luZGV4XS1cXHUwMDNlc2VxO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY5OTpcXHRcXHRcXHRrZXlfcGFyYW1zLnNlcV9sZW4gPSBwcml2LVxcdTAwM2V3aWxjX2lndGtba2V5X2luZGV4XS1cXHUwMDNlc2VxX2xlbjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy03MDAtXFx0XFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo3MDE6XFx0XFx0XFx0a2V5X3BhcmFtcy5rZXkgPSBwcml2LVxcdTAwM2V3aWxjX2d0a1trZXlfaW5kZXhdLVxcdTAwM2VrZXk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NzAyOlxcdFxcdFxcdGtleV9wYXJhbXMuY2lwaGVyID0gcHJpdi1cXHUwMDNld2lsY19ndGtba2V5X2luZGV4XS1cXHUwMDNlY2lwaGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjcwMzpcXHRcXHRcXHRrZXlfcGFyYW1zLmtleV9sZW4gPSBwcml2LVxcdTAwM2V3aWxjX2d0a1trZXlfaW5kZXhdLVxcdTAwM2VrZXlfbGVuO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjcwNDpcXHRcXHRcXHRrZXlfcGFyYW1zLnNlcSA9IHByaXYtXFx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXFx1MDAzZXNlcTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo3MDU6XFx0XFx0XFx0a2V5X3BhcmFtcy5zZXFfbGVuID0gcHJpdi1cXHUwMDNld2lsY19ndGtba2V5X2luZGV4XS1cXHUwMDNlc2VxX2xlbjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy03MDYtXFx0XFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTcwNy1cXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjcwODpcXHRcXHRrZXlfcGFyYW1zLmtleSA9IHByaXYtXFx1MDAzZXdpbGNfcHRrW2tleV9pbmRleF0tXFx1MDAzZWtleTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo3MDk6XFx0XFx0a2V5X3BhcmFtcy5jaXBoZXIgPSBwcml2LVxcdTAwM2V3aWxjX3B0a1trZXlfaW5kZXhdLVxcdTAwM2VjaXBoZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NzEwOlxcdFxcdGtleV9wYXJhbXMua2V5X2xlbiA9IHByaXYtXFx1MDAzZXdpbGNfcHRrW2tleV9pbmRleF0tXFx1MDAzZWtleV9sZW47XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NzExOlxcdFxcdGtleV9wYXJhbXMuc2VxID0gcHJpdi1cXHUwMDNld2lsY19wdGtba2V5X2luZGV4XS1cXHUwMDNlc2VxO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjcxMjpcXHRcXHRrZXlfcGFyYW1zLnNlcV9sZW4gPSBwcml2LVxcdTAwM2V3aWxjX3B0a1trZXlfaW5kZXhdLVxcdTAwM2VzZXFfbGVuO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTcxMy1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz03Mjg9c3RhdGljIGludCBzZXRfZGVmYXVsdF9tZ210X2tleShzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNzMwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo3MzE6XFx0c3RydWN0IHdpbGNfdmlmICp2aWYgPSBuZXRkZXZfcHJpdih3ZGV2LVxcdTAwM2VuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTczMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo3MzM6XFx0cmV0dXJuIHdpbGNfc2V0X2RlZmF1bHRfbWdtdF9rZXlfaW5kZXgodmlmLCBrZXlfaW5kZXgpO1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowNzo1NS44NDQzMjgzNThaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTE1NDg5MjgyMjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVhY2hpbmcgdGhlIFdJTEMxMDAwIERyaXZlciBpbiBhIFZpcnR1YWxpemVkIEVudmlyb25tZW50KipcblxuT2theSwgc28gSSBzZWUgYG1tYy1wd3JzZXEtd2lsYzEwMDBgIGluIHRoZSBwb3dlciBzZXF1ZW5jZSBkcml2ZXIgYW5kIHRoZSBkZXZpY2UgdHJlZSBpbnN0YW50aWF0aW9uIGZvciBgbWljcm9jaGlwLHdpbGMxMDAwYCBpbiBhbiBBUk0gZGV2aWNlIGRlc2NyaXB0aW9uLiBUaGlzIHRlbGxzIG1lIGl0J3MgYW4gQVJNLWJhc2VkIFNESU8vU1BJIFdpLUZpIGNoaXAsIG1hbmFnZWQgdmlhIERldmljZSBUcmVlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGNhbiB0aGlzIGV2ZW4gYmUgcmVhY2hlZCBpbiBRRU1VPyBTeXprYWxsZXIgdXN1YWxseSBzdHJ1Z2dsZXMgd2l0aCBEZXZpY2UgVHJlZS1pbnN0YW50aWF0ZWQgaGFyZHdhcmUgdW5sZXNzIHRoZXJlJ3MgYSBtb2NrIG9yIGl0J3MgYSBnZW5lcmljIHN1YnN5c3RlbS4gSWYgdGhlIGRyaXZlciBpc24ndCBsb2FkZWQsIGxpa2UgYHdpbGNfd2ZpX21vbl94bWl0YCwgdGhlbiB0aGUgY29kZSBwYXRoIHdvdWxkIG5ldmVyIGV4ZWN1dGUuIEknbSBjaGVja2luZywgYnV0IEknbSBleHBlY3RpbmcgdGhpcyB0byBvbmx5IGJlIFNESU8vU1BJLiBTeXprYWxsZXIgZG9lc24ndCBoYXZlIG5hdGl2ZSBTRElPL1NQSSBpbmplY3Rpb24gc3VwcG9ydC5cblxuV2FpdCwgaG93IGRpZCBTeXprYWxsZXIgZmluZCBhIGJ1ZyBpZiBJJ20gdGhpbmtpbmcgdGhpcyBpcyB1bnJlYWNoYWJsZT8gSSBuZWVkIHRvIGNoZWNrIHRoZSBjb21taXQgbWVzc2FnZS4gXCJzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcIi4gQWghIFRoaXMgd2Fzbid0IGEgXCJmb3VuZFwiIGJ1ZywgdGhpcyB3YXMgYSBwYXRjaCB0ZXN0aW5nIHJlcXVlc3QgZnJvbSBhIGRldmVsb3BlciFcblxuR2l2ZW4gdGhpcyBpcyBhIHBoeXNpY2FsIGNoaXAgKFdJTEMxMDAwKSwgaXQncyBwcm9iYWJseSAqaW1wb3NzaWJsZSogdG8gcmVhY2ggaW4gc3RhbmRhcmQgUUVNVS4gUUVNVSBkb2Vzbid0IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBNaWNyb2NoaXAgY2hpcC4gU3l6a2FsbGVyIG1pZ2h0IHJ1biBvbiBBUk0gUUVNVSwgYnV0IGlmIHRoZSBkZXZpY2UgaXNuJ3QgZW11bGF0ZWQsIGl0J3Mgc3RpbGwgdW5yZWFjaGFibGUsIGxpa2UgdGhlIHByb21wdCBzYXlzLlxuXG5UaGUgcHJvbXB0IHNwZWNpZmljYWxseSBzYXlzIHRvIHJldHVybiBmYWxzZSBpZiB0aGUgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgaW4gc3RhbmRhcmQgUUVNVS4gU28sIHVubGVzcyBJIGZpbmQgc29tZSBraW5kIG9mIHNvZnR3YXJlIGVtdWxhdGlvbiBpbiB0aGUga2VybmVsLCBpdCdzIHVucmVhY2hhYmxlLiBJJ2xsIGRvdWJsZS1jaGVjayBmb3IgdGhhdCwgYnV0IEknbSBiZXR0aW5nIEkgd29uJ3QgZmluZCBhbnl0aGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjMzNzQsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5OTEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDg6MDcuMzkzMjU5NzYzWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzE2NTQyMjM1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIndpbGMxMDAwXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tbWMvbW1jLXB3cnNlcS1zZDg3ODcueWFtbD0xMj1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21tYy9tbWMtcHdyc2VxLXNkODc4Ny55YW1sLTE1LSAgICAgIC0gbW1jLXB3cnNlcS1zZDg3ODdcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbW1jL21tYy1wd3JzZXEtc2Q4Nzg3LnlhbWw6MTY6ICAgICAgLSBtbWMtcHdyc2VxLXdpbGMxMDAwXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21tYy9tbWMtcHdyc2VxLXNkODc4Ny55YW1sLTE3LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC0zLS0tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTUtJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sPTEzPWRlc2NyaXB0aW9uOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6MTQ6ICBUaGUgd2lsYzEwMDAgY2hpcHMgY2FuIGJlIGNvbm5lY3RlZCB2aWEgU1BJIG9yIFNESU8uIFRoaXMgZG9jdW1lbnRcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTE1LSAgZGVzY3JpYmVzIHRoZSBiaW5kaW5nIHRvIGNvbm5lY3Qgd2lsYyBkZXZpY2VzLlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbD0xNz1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC0yMS0gICAgICAgICAgLSBjb25zdDogbWljcm9jaGlwLHdpbGMzMDAwXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDoyMjogICAgICAgICAgLSBjb25zdDogbWljcm9jaGlwLHdpbGMxMDAwXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDoyMzogICAgICAtIGNvbnN0OiBtaWNyb2NoaXAsd2lsYzEwMDBcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTI0LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC0zOC0gICAgbWF4SXRlbXM6IDFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sOjM5OiAgICBkZXNjcmlwdGlvbjogVXNlZCBieSB3aWxjMTAwMC1zcGkgdG8gZGV0ZXJtaW5lIHRoZSBHUElPIGxpbmVcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTQwLSAgICAgIGNvbm5lY3RlZCB0byB0aGUgRU5BQkxFIGxpbmUuICBJZiBzcGVjaWZpZWQsIHJlc2V0LWdwaW9zXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTQ3LSAgICBtYXhJdGVtczogMVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6NDg6ICAgIGRlc2NyaXB0aW9uOiBVc2VkIGJ5IHdpbGMxMDAwLXNwaSB0byBkZXRlcm1pbmUgdGhlIEdQSU8gbGluZVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtNDktICAgICAgY29ubmVjdGVkIHRvIHRoZSBSRVNFVCBsaW5lLiAgVGhpcyBzaG91bGQgYmUgZGVjbGFyZWQgYXMgYW5cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw9NjE9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTY4LSAgICAgIHdpZmlAMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDo2OTogICAgICAgIGNvbXBhdGlibGUgPSBcXFwibWljcm9jaGlwLHdpbGMxMDAwXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTcwLSAgICAgICAgc3BpLW1heC1mcmVxdWVuY3kgPSBcXHUwMDNjNDgwMDAwMDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC05MS0gICAgICB3aWZpQDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6OTI6ICAgICAgICBjb21wYXRpYmxlID0gXFxcIm1pY3JvY2hpcCx3aWxjMTAwMFxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC05My0gICAgICAgIHJlZyA9IFxcdTAwM2MwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpPTQyPVxcdHdpZmlfcHdyc2VxOiB3aWZpX3B3cnNlcSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k6NDM6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtbWMtcHdyc2VxLXdpbGMxMDAwXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS00NC1cXHRcXHRyZXNldC1ncGlvcyA9IFxcdTAwM2NcXHUwMDI2cGlvQSBQSU5fUEEyNyBHUElPX0FDVElWRV9ISUdIXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpPTM4Nj1cXHR3aWxjOiB3aWZpQDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTM4Ny1cXHRcXHRyZWcgPSBcXHUwMDNjMFxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k6Mzg4OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWljcm9jaGlwLHdpbGMzMDAwXFxcIiwgXFxcIm1pY3JvY2hpcCx3aWxjMTAwMFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2ktMzg5LVxcdFxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuLS1cXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYz00NT1zdGF0aWMgdm9pZCBtbWNfcHdyc2VxX3NkODc4N19wb3dlcl9vZmYoc3RydWN0IG1tY19ob3N0ICpob3N0KVxcbi0tXFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmMtNTItXFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM6NTM6c3RhdGljIHZvaWQgbW1jX3B3cnNlcV93aWxjMTAwMF9wcmVfcG93ZXJfb24oc3RydWN0IG1tY19ob3N0ICpob3N0KVxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTU0LXtcXG4tLVxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTYyLVxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jOjYzOnN0YXRpYyB2b2lkIG1tY19wd3JzZXFfd2lsYzEwMDBfcG93ZXJfb2ZmKHN0cnVjdCBtbWNfaG9zdCAqaG9zdClcXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy02NC17XFxuLS1cXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYz03MT1zdGF0aWMgY29uc3Qgc3RydWN0IG1tY19wd3JzZXFfb3BzIG1tY19wd3JzZXFfc2Q4Nzg3X29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTc1LVxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jOjc2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgbW1jX3B3cnNlcV9vcHMgbW1jX3B3cnNlcV93aWxjMTAwMF9vcHMgPSB7XFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM6Nzc6XFx0LnByZV9wb3dlcl9vbiA9IG1tY19wd3JzZXFfd2lsYzEwMDBfcHJlX3Bvd2VyX29uLFxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jOjc4OlxcdC5wb3dlcl9vZmYgPSBtbWNfcHdyc2VxX3dpbGMxMDAwX3Bvd2VyX29mZixcXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy03OS19O1xcbi0tXFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM9ODE9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbW1jX3B3cnNlcV9zZDg3ODdfb2ZfbWF0Y2hbXSA9IHtcXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy04Mi1cXHR7IC5jb21wYXRpYmxlID0gXFxcIm1tYy1wd3JzZXEtc2Q4Nzg3XFxcIiwgLmRhdGEgPSBcXHUwMDI2bW1jX3B3cnNlcV9zZDg3ODdfb3BzIH0sXFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM6ODM6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtbWMtcHdyc2VxLXdpbGMxMDAwXFxcIiwgLmRhdGEgPSBcXHUwMDI2bW1jX3B3cnNlcV93aWxjMTAwMF9vcHMgfSxcXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy04NC1cXHR7Lyogc2VudGluZWwgKi99LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL0tjb25maWc9MTM9aWYgV0xBTl9WRU5ET1JfTUlDUk9DSElQXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL0tjb25maWc6MTQ6c291cmNlIFxcXCJkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvS2NvbmZpZ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvS2NvbmZpZy0xNS1lbmRpZiAjIFdMQU5fVkVORE9SX01JQ1JPQ0hJUFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC9NYWtlZmlsZToyOm9iai0kKENPTkZJR19XSUxDMTAwMClcXHRcXHQrPSB3aWxjMTAwMC9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfV0lMQzEwMDApICs9IHdpbGMxMDAwLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGUtMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6NDp3aWxjMTAwMC1vYmpzIDo9IGNmZzgwMjExLm8gbmV0ZGV2Lm8gbW9uLm8gXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS01LVxcdFxcdFxcdGhpZi5vIHdsYW5fY2ZnLm8gd2xhbi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlLTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX1dJTEMxMDAwX1NESU8pICs9IHdpbGMxMDAwLXNkaW8ub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZTo4OndpbGMxMDAwLXNkaW8tb2JqcyArPSBzZGlvLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGUtOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6MTA6b2JqLSQoQ09ORklHX1dJTEMxMDAwX1NQSSkgKz0gd2lsYzEwMDAtc3BpLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6MTE6d2lsYzEwMDAtc3BpLW9ianMgKz0gc3BpLm9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jPTE4NDk9aW50IHdpbGNfY2ZnODAyMTFfcmVnaXN0ZXIoc3RydWN0IHdpbGMgKndpbGMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xODUxLVxcdC8qIFdQQTMvU0FFIHN1cHBvcnRlZCBvbmx5IG9uIFdJTEMxMDAwICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MTg1MjpcXHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xODUzLVxcdFxcdHdpbGMtXFx1MDAzZXdpcGh5LVxcdTAwM2VmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfU0FFO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzoyMjojZGVmaW5lIFdJTEMxMDAwX0ZXX1BSRUZJWFxcdFxcdFxcXCJhdG1lbC93aWxjMTAwMF93aWZpX2Zpcm13YXJlLVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMjMtI2RlZmluZSBfX1dJTEMxMDAwX0ZXKGFwaSlcXHRcXHRXSUxDMTAwMF9GV19QUkVGSVggI2FwaSBcXFwiLmJpblxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz0yMDA9c3RhdGljIGludCB3aWxjX3dsYW5fZ2V0X2Zpcm13YXJlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMjA3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzoyMDg6XFx0aWYgKGlzX3dpbGMxMDAwKHdpbGMtXFx1MDAzZWNoaXBpZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTIwOS1cXHRcXHRmaXJtd2FyZSA9IFdJTEMxMDAwX0ZXKFdJTEMxMDAwX0FQSV9WRVIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTIxNS1cXHRuZXRkZXZfaW5mbyhkZXYsIFxcXCJXSUxDJWQgbG9hZGluZyBmaXJtd2FyZSBbJXNdXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzoyMTY6XFx0XFx0ICAgIGlzX3dpbGMxMDAwKHdpbGMtXFx1MDAzZWNoaXBpZCkgPyAxMDAwIDogMzAwMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMjE3LVxcdFxcdCAgICBmaXJtd2FyZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM9NDU2PXN0YXRpYyB2b2lkIHdpbGNfd2xhbl9kZWluaXRpYWxpemUoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy00NjYtXFx0aWYgKHdsLVxcdTAwM2Vpbml0aWFsaXplZCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo0Njc6XFx0XFx0bmV0ZGV2X2luZm8oZGV2LCBcXFwiRGVpbml0aWFsaXppbmcgd2lsYzEwMDAuLi5cXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy00NjgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNDg0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo0ODU6XFx0XFx0bmV0ZGV2X2RiZyhkZXYsIFxcXCJ3aWxjMTAwMCBkZWluaXRpYWxpemF0aW9uIERvbmVcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy00ODYtXFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6NDg3OlxcdFxcdG5ldGRldl9kYmcoZGV2LCBcXFwid2lsYzEwMDAgaXMgbm90IGluaXRpYWxpemVkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNDg4LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz01MDg9c3RhdGljIGludCB3aWxjX3dsYW5faW5pdGlhbGl6ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgd2lsY192aWYgKnZpZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy01ODMtXFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6NTg0OlxcdFxcdG5ldGRldl9kYmcoZGV2LCBcXFwid2lsYzEwMDAgYWxyZWFkeSBpbml0aWFsaXplZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTU4NS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM9Nzg3PXN0YXRpYyBpbnQgd2lsY19tYWNfY2xvc2Uoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtODA2LVxcdGlmICh3bC1cXHUwMDNlb3Blbl9pZmNzID09IDApIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6ODA3OlxcdFxcdG5ldGRldl9kYmcobmRldiwgXFxcIkRlaW5pdGlhbGl6aW5nIHdpbGMxMDAwXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtODA4LVxcdFxcdHdsLVxcdTAwM2VjbG9zZSA9IDE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM6MTc6I2RlZmluZSBTRElPX01PREFMSUFTIFxcXCJ3aWxjMTAwMF9zZGlvXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtMTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jPTgwMD1zdGF0aWMgaW50IHdpbGNfc2Rpb19yZWFkX2ludChzdHJ1Y3Qgd2lsYyAqd2lsYywgdTMyICppbnRfc3RhdHVzKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy04MTctXFx0XFx0Y21kLmZ1bmN0aW9uID0gMDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jOjgxODpcXHRcXHRjbWQuYWRkcmVzcyA9IGlzX3dpbGMxMDAwKHdpbGMtXFx1MDAzZWNoaXBpZCkgP1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtODE5LVxcdFxcdFxcdCAgICAgIFdJTEMxMDAwX1NESU9fSVJRX0ZMQUdfUkVHIDpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtODI4LVxcdGlmIChzZGlvX3ByaXYtXFx1MDAzZWlycV9ncGlvKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM6ODI5OlxcdFxcdGlycV9mbGFncyBcXHUwMDI2PSBpc193aWxjMTAwMCh3aWxjLVxcdTAwM2VjaGlwaWQpID8gMHgxZiA6IDB4MGY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy04MzAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jPTg0Mj1zdGF0aWMgaW50IHdpbGNfc2Rpb19jbGVhcl9pbnRfZXh0KHN0cnVjdCB3aWxjICp3aWxjLCB1MzIgdmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy04NTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYzo4NTI6XFx0aWYgKGlzX3dpbGMxMDAwKHdpbGMtXFx1MDAzZWNoaXBpZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTg1My1cXHRcXHQvKiBzZWxlY3QgVk1NIHRhYmxlIDAgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtODk4LVxcdFxcdGNtZC5yYXcgPSAwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM6ODk5OlxcdFxcdGNtZC5hZGRyZXNzID0gaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSA/XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy05MDAtXFx0XFx0XFx0ICAgICAgV0lMQzEwMDBfU0RJT19JUlFfQ0xFQVJfRkxBR19SRUcgOlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYz0xMDUyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHdpbGNfb2ZfbWF0Y2hbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jOjEwNTM6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtaWNyb2NoaXAsd2lsYzEwMDBcXFwiLCB9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtMTA1NC1cXHR7IC8qIHNlbnRpbmVsICovIH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYy0xNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmM6MTY6I2RlZmluZSBTUElfTU9EQUxJQVNcXHRcXHRcXFwid2lsYzEwMDBfc3BpXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYy0xNy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYz0yOTQ9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgd2lsY19vZl9tYXRjaFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYzoyOTU6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtaWNyb2NoaXAsd2lsYzEwMDBcXFwiLCB9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYy0yOTYtXFx0eyAvKiBzZW50aW5lbCAqLyB9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmM9MzAwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BpX2RldmljZV9pZCB3aWxjX3NwaV9pZFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYzozMDE6XFx0eyBcXFwid2lsYzEwMDBcXFwiLCAwIH0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTMwMi1cXHR7IC8qIHNlbnRpbmVsICovIH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYz0xMjI3PXN0YXRpYyBpbnQgd2lsY192YWxpZGF0ZV9jaGlwaWQoc3RydWN0IHdpbGMgKndpbGMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmMtMTI0MC1cXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jOjEyNDE6XFx0aWYgKCFpc193aWxjMTAwMChjaGlwaWQpIFxcdTAwMjZcXHUwMDI2ICFpc193aWxjMzAwMChjaGlwaWQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTEyNDItXFx0XFx0ZGV2X2VycihcXHUwMDI2c3BpLVxcdTAwM2VkZXYsIFxcXCJVbmtub3duIGNoaXAgaWQgMHgleFxcXFxuXFxcIiwgY2hpcGlkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9NTMwPXN0YXRpYyBzdHJ1Y3QgcnhxX2VudHJ5X3QgKndpbGNfd2xhbl9yeHFfcmVtb3ZlKHN0cnVjdCB3aWxjICp3aWxjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy01NDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo1NDQ6c3RhdGljIGludCBjaGlwX2FsbG93X3NsZWVwX3dpbGMxMDAwKHN0cnVjdCB3aWxjICp3aWxjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNTQ1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9NjMwPXN0YXRpYyBpbnQgY2hpcF9hbGxvd19zbGVlcChzdHJ1Y3Qgd2lsYyAqd2lsYylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTYzMS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo2MzI6XFx0aWYgKGlzX3dpbGMxMDAwKHdpbGMtXFx1MDAzZWNoaXBpZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo2MzM6XFx0XFx0cmV0dXJuIGNoaXBfYWxsb3dfc2xlZXBfd2lsYzEwMDAod2lsYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy02MzQtXFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy02MzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo2Mzg6c3RhdGljIGludCBjaGlwX3dha2V1cF93aWxjMTAwMChzdHJ1Y3Qgd2lsYyAqd2lsYylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTYzOS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jPTc2MD1zdGF0aWMgaW50IGNoaXBfd2FrZXVwKHN0cnVjdCB3aWxjICp3aWxjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNzYxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjc2MjpcXHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjc2MzpcXHRcXHRyZXR1cm4gY2hpcF93YWtldXBfd2lsYzEwMDAod2lsYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy03NjQtXFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz03OTM9aW50IGhvc3Rfd2FrZXVwX25vdGlmeShzdHJ1Y3Qgd2lsYyAqd2lsYylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNzk5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM6ODAwOlxcdHdpbGMtXFx1MDAzZWhpZl9mdW5jLVxcdTAwM2VoaWZfd3JpdGVfcmVnKHdpbGMsIGlzX3dpbGMxMDAwKHdpbGMtXFx1MDAzZWNoaXBpZCkgP1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtODAxLVxcdFxcdFxcdFxcdFxcdCAgICBXSUxDMTAwMF9DT1JUVVNfSU5URVJSVVBUXzIgOlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz04MDc9aW50IGhvc3Rfc2xlZXBfbm90aWZ5KHN0cnVjdCB3aWxjICp3aWxjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy04MTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo4MTQ6XFx0d2lsYy1cXHUwMDNlaGlmX2Z1bmMtXFx1MDAzZWhpZl93cml0ZV9yZWcod2lsYywgaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSA/XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy04MTUtXFx0XFx0XFx0XFx0XFx0ICAgIFdJTEMxMDAwX0NPUlRVU19JTlRFUlJVUFRfMSA6XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jPTgyMT1pbnQgd2lsY193bGFuX2hhbmRsZV90eHEoc3RydWN0IHdpbGMgKndpbGMsIHUzMiAqdHhxX2NvdW50KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy05NTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo5NTE6XFx0XFx0aWYgKGlzX3dpbGMxMDAwKHdpbGMtXFx1MDAzZWNoaXBpZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTk1Mi1cXHRcXHRcXHRyZXQgPSBmdW5jLVxcdTAwM2VoaWZfd3JpdGVfcmVnKHdpbGMsIFdJTENfSE9TVF9WTU1fQ1RMLCAweDIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz0xNTkxPWludCB3aWxjX2dldF9jaGlwaWQoc3RydWN0IHdpbGMgKndpbGMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTE2MDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzoxNjAzOlxcdFxcdFxcdGlmICghaXNfd2lsYzEwMDAoY2hpcGlkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtMTYwNC1cXHRcXHRcXHRcXHR3aWxjLVxcdTAwM2VjaGlwaWQgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz0xNzM3PWludCB3aWxjX3dsYW5faW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy0xNzYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM6MTc2MTpcXHRcXHRpZiAoIWlzX3dpbGMxMDAwKHdpbGMtXFx1MDAzZWNoaXBpZCkgXFx1MDAyNlxcdTAwMjYgIWlzX3dpbGMzMDAwKHdpbGMtXFx1MDAzZWNoaXBpZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTE3NjItXFx0XFx0XFx0bmV0ZGV2X2VycihkZXYsIFxcXCJVbnN1cHBvcnRlZCBjaGlwaWQ6ICV4XFxcXG5cXFwiLCB3aWxjLVxcdTAwM2VjaGlwaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uaD00MzM9c3RydWN0IHdpbGNfdmlmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmgtNDM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmg6NDM1OnN0YXRpYyBpbmxpbmUgYm9vbCBpc193aWxjMTAwMCh1MzIgaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uaC00MzYte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowODowOS43MDk4MDc3NThaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDcxODE3MTI2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGBpc193aWxjMTAwMCgpYCBDaGVjayoqXG5cbk9rYXksIEknbSBzZWVpbmcgdGhpcyBgaXNfd2lsYzEwMDAoKWAgY2hlY2suLi4gbGV0IG1lIHN0ZXAgYmFjayBhbmQgdGhpbmsgdGhpcyB0aHJvdWdoLiBJcyAqdGhpcyogdGhlIG9ubHkgd2F5IHdlIGdldCB0byB0aGlzIHBhcnQgb2YgdGhlIGNvZGU/IE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBhcmUgdGhlcmUgb3RoZXIgcG90ZW50aWFsIGVudHJ5IHBvaW50cywgb3RoZXIgc2NlbmFyaW9zIHRoYXQgY2FuIHRyaWdnZXIgdGhpcz8gQWgsIEkga25vdyEgU3l6a2FsbGVyISBJZiBTeXprYWxsZXIgaXMgcnVubmluZyBvbiBBUk0gUUVNVSwgYW5kIHRoZSBkZXZpY2UgdHJlZSBzcGVjaWZpY2FsbHkgKmluY2x1ZGVzKiBzb21ldGhpbmcgbGlrZSBgbWljcm9jaGlwLHdpbGMxMDAwYCwgdGhlIGRyaXZlciAqY291bGQqIGJlIHByb2JlZC4gSG93ZXZlciwgaGFuZyBvbi4uLiB0aGUgcHJvYmUgaXRzZWxmIG5lZWRzIHRoZSBoYXJkd2FyZS4gSXQgbmVlZHMgdG8gY29tbXVuaWNhdGUsIGVpdGhlciBTUEkgb3IgU0RJTy4gTm93LCBpZiB0aGVyZSdzICpubyogYWN0dWFsIGhhcmR3YXJlIHByZXNlbnQg4oCTIHdoaWNoIGlzIGxpa2VseSBpbiB0aGlzIHNpbXVsYXRlZCBlbnZpcm9ubWVudCDigJMgdGhlIHByb2JlICpzaG91bGQqIGZhaWwsIHJpZ2h0PyBTbywgbGV0J3MganVzdCBtYWtlIGFic29sdXRlbHkgc3VyZSBieSBjaGVja2luZyBmb3IgYHdpbGNfc2Rpb19wcm9iZWAgb3IgYHdpbGNfc3BpX3Byb2JlYC4gSSBuZWVkIHRvIGNvbmZpcm0gdGhvc2UgcG90ZW50aWFsIHByb2JlIHBhdGhzIGZvciBhIGNvbXBsZXRlIHBpY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxNzY5LCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA4OjE0LjQyNzk4MjcxMVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjExNzkwMTM1OCwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwid2lsY19zcGlfcHJvYmVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA4OjE2LjU0NTg5MjAxOVoiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTEyMTQ0NDU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgdGhlIG9uZSB0aGlua2luZyBpdDpcblxuKipEaWdnaW5nIGludG8gdGhlIFdpLUZpIERyaXZlcioqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIHRoaXMgaXNzdWUgbWlnaHQgYmUgc3RlbW1pbmcgZnJvbS4gVGhlIHByb2JsZW0gc291bmRzIGxpa2UgYSByZXNvdXJjZSBpbml0aWFsaXphdGlvbiBvciBkZS1pbml0aWFsaXphdGlvbiBwcm9ibGVtIHNvIGxldCdzIGNoZWNrIHRoZSBgd2lsY19tYWNfY2xvc2VgIGZ1bmN0aW9uIGZpcnN0LiBJdCdzIHRoZSBsb2dpY2FsIHBsYWNlIHRvIHN0YXJ0IGxvb2tpbmcgYXQgd2hlcmUgdGhlIGNvbm5lY3Rpb24gZW5kcy4gSWYgaXQgaXNuJ3QgdGhlIHByb2JsZW0sIG15IG5leHQgc3RlcCBpcyBgd2lsY193bGFuX2luaXRgLiBJJ2xsIHdhbnQgdG8gc2VlIGhvdyB0aGUgY29ubmVjdGlvbiBpcyBzZXQgdXAgaW4gdGhlIGZpcnN0IHBsYWNlLCBvciBpZiB0aGVyZSBpcyBhbiBlcnJvciBpbiBpbml0aWFsaXphdGlvbi4gT25lIG9mIHRob3NlIHNlZW1zIGxpa2UgdGhlIGxpa2VsaWVzdCBjYW5kaWRhdGUgZm9yIHRoZSByb290IG9mIHRoZSBwcm9ibGVtLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjE0NiwiT3V0cHV0VG9rZW5zIjoyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA4OjE5LjQ1ODA0MDEzNVoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjMwMzcyNDk0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ3aWxjX3dsYW5faW5pdFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM9NDkxPXN0YXRpYyBpbnQgd2xhbl9pbml0aWFsaXplX3RocmVhZHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy01MDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjUwODpzdGF0aWMgaW50IHdpbGNfd2xhbl9pbml0aWFsaXplKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCB3aWxjX3ZpZiAqdmlmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy01MDkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTUxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6NTE3OlxcdFxcdHJldCA9IHdpbGNfd2xhbl9pbml0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTUxOC1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jPTU5Nz1zdGF0aWMgaW50IHdpbGNfbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNjE0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo2MTU6XFx0cmV0ID0gd2lsY193bGFuX2luaXRpYWxpemUobmRldiwgdmlmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNjE2LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9MTczNT1FWFBPUlRfU1lNQk9MX0dQTCh3aWxjX2xvYWRfbWFjX2Zyb21fbnYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtMTczNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjE3Mzc6aW50IHdpbGNfd2xhbl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy0xNzM4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmg9NDcwPWludCB3aWxjX3NlbmRfY29uZmlnX3BrdChzdHJ1Y3Qgd2lsY192aWYgKnZpZiwgdTggbW9kZSwgc3RydWN0IHdpZCAqd2lkcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5oLTQ3MS1cXHRcXHRcXHQgdTMyIGNvdW50KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5oOjQ3MjppbnQgd2lsY193bGFuX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uaC00NzMtaW50IHdpbGNfZ2V0X2NoaXBpZChzdHJ1Y3Qgd2lsYyAqd2lsYyk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA4OjIxLjc2MTc3NTMzNFoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTg0ODk2MDk2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlRyYWNpbmcgdGhlIERyaXZlciBJbml0aWFsaXphdGlvbioqXG5cbk9rYXksIGxldCdzIHNlZS4uLiAqYHdpbGNfd2xhbl9pbml0YCogaXMgYmVpbmcgY2FsbGVkIGZyb20gKmB3aWxjX21hY19vcGVuYCouIFJpZ2h0LCBhbmQgKmB3aWxjX21hY19vcGVuYCogaXMgb3VyICpgbmRvX29wZW5gKiBmdW5jdGlvbi4gVGhhdCBtYWtlcyBzZW5zZSwgdGhhdCdzIHdoZXJlIHRoZSBkZXZpY2Ugd291bGQgZ2V0IGluaXRpYWxpemVkIHdoZW4gdGhlIGludGVyZmFjZSBpcyBicm91Z2h0IHVwLiBCdXQsIEknbSB0cnlpbmcgdG8gcmVjYWxsICpob3cqIHRoZSBuZXQgZGV2aWNlIGl0c2VsZiBnZXRzIHJlZ2lzdGVyZWQgd2l0aCB0aGUga2VybmVsLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgdW5kZXJzdGFuZCB0aGUgd2hvbGUgcGljdHVyZS4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgKmB3aWxjX25ldGRldl9pbml0YCouIFRoYXQncyB0aGUgbG9naWNhbCBuZXh0IHBsYWNlIHRvIGxvb2sgZm9yIHRoZSBuZXRkZXYgcmVnaXN0cmF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzA2NiwiT3V0cHV0VG9rZW5zIjoyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA4OjI0Ljk0NjY3NDY0WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTk2NDA1MTYyLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ3aWxjX25ldGRldl9pbml0XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowODoyNy4xNDMwODYwMzJaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk5OTcwMjQ0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHN1bW1hcnksIHRha2luZyBvbiB0aGUgcGVyc29uYSB5b3UgcmVxdWVzdGVkOlxuXG4qKkRpZ2dpbmcgaW50byB0aGUgV0lMQzEwMDAgRHJpdmVyKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gaXQuIEdpdmVuIHRoZSBuYXR1cmUgb2YgdGhpcyBpbnF1aXJ5LCBJJ20gdGhpbmtpbmcgdGhlIGxpa2VseSBhcmVhIGZvciBleGFtaW5hdGlvbiByZWdhcmRpbmcgdGhpcyBzcGVjaWZpYyB3aXJlbGVzcyBkcml2ZXIgaXMgd2l0aGluIHRoZSBtaWNyb2NoaXAvd2lsYzEwMDAgZGlyZWN0b3J5LCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBvdmVyYWxsIG5ldHdvcmtpbmcgaW5mcmFzdHJ1Y3R1cmUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGRldmljZSBpcyBnZXR0aW5nIHJlZ2lzdGVyZWQgd2l0aGluIHRoZSBrZXJuZWwuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gY2hlY2sgdGhlIGByZWdpc3Rlcl9uZXRkZXZgIG9yIGByZWdpc3Rlcl9uZXRkZXZpY2VgIGNhbGxzIHdpdGhpbiB0aGF0IGRyaXZlciBjb2RlLiBUaG9zZSBmdW5jdGlvbnMgYXJlIHRoZSBicmVhZCBhbmQgYnV0dGVyIGZvciBicmluZ2luZyBhIG5ldHdvcmsgaW50ZXJmYWNlIG9ubGluZSwgc28gdGhhdOKAmXMgd2hlcmUgSSdsbCBiZWdpbiBteSBpbnZlc3RpZ2F0aW9uLiBMZXQncyBzZWUgd2hhdCB3ZSBjYW4gZmluZCB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzMzMDIsIk91dHB1dFRva2VucyI6MTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowODozMS4xNDI3OTE2OTFaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyNDIzOTk3MTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicmVnaXN0ZXJfbmV0ZGV2XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgOTA0NiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuRG9jdW1lbnRhdGlvbi9hcmNoL3Bvd2VycGMvZWVoLXBjaS1lcnJvci1yZWNvdmVyeS5yc3Q9MTk3PVRoZSBmb2xsb3dpbmcgc2VxdWVuY2UgaXMgYW4gZXhhbXBsZSBvZiB0aGUgcGNuZXQzMiBkZXZpY2UgZHJpdmVyOjpcXG4tLVxcbkRvY3VtZW50YXRpb24vYXJjaC9wb3dlcnBjL2VlaC1wY2ktZXJyb3ItcmVjb3ZlcnkucnN0LTIyNy0gICAgICAgICAgICAgICAgICAgICAgY2FsbHNcXG5Eb2N1bWVudGF0aW9uL2FyY2gvcG93ZXJwYy9lZWgtcGNpLWVycm9yLXJlY292ZXJ5LnJzdDoyMjg6ICAgICAgICAgICAgICAgICAgICAgIHVucmVnaXN0ZXJfbmV0ZGV2KCkgLy8gaW4gL25ldC9jb3JlL2Rldi5jXFxuRG9jdW1lbnRhdGlvbi9hcmNoL3Bvd2VycGMvZWVoLXBjaS1lcnJvci1yZWNvdmVyeS5yc3QtMjI5LSAgICAgICAgICAgICAgICAgICAgICB7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2FyY2gvcG93ZXJwYy9lZWgtcGNpLWVycm9yLXJlY292ZXJ5LnJzdD0yNDk9d2hpY2ggY2FsbHMgc3RydWN0IHBjaV9kcml2ZXItXFx1MDAzZXJlbW92ZSgpIHdoaWNoIGlzIHBjbmV0MzJfcmVtb3ZlX29uZSgpXFxuRG9jdW1lbnRhdGlvbi9hcmNoL3Bvd2VycGMvZWVoLXBjaS1lcnJvci1yZWNvdmVyeS5yc3Q6MjUwOndoaWNoIGNhbGxzIHVucmVnaXN0ZXJfbmV0ZGV2KCkgIChpbiBuZXQvY29yZS9kZXYuYylcXG5Eb2N1bWVudGF0aW9uL2FyY2gvcG93ZXJwYy9lZWgtcGNpLWVycm9yLXJlY292ZXJ5LnJzdC0yNTEtd2hpY2ggY2FsbHMgZGV2X2Nsb3NlKCkgIChpbiBuZXQvY29yZS9kZXYuYylcXG4tLVxcbkRvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9kcml2ZXItbW9kZWwvZGV2cmVzLnJzdD0zNzk9TkVUXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RyaXZlci1hcGkvZHJpdmVyLW1vZGVsL2RldnJlcy5yc3QtMzgxLSAgZGV2bV9hbGxvY19ldGhlcmRldl9tcXMoKVxcbkRvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9kcml2ZXItbW9kZWwvZGV2cmVzLnJzdDozODI6ICBkZXZtX3JlZ2lzdGVyX25ldGRldigpXFxuRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL2RyaXZlci1tb2RlbC9kZXZyZXMucnN0LTM4My1cXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kcml2ZXIucnN0PTI4PUF1dG8tY2xvc2VcXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kcml2ZXIucnN0LTMwLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kcml2ZXIucnN0OjMxOlRoZSBuZG9fc3RvcCByb3V0aW5lIHdpbGwgYmUgY2FsbGVkIGJ5IHVucmVnaXN0ZXJfbmV0ZGV2aWNlXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RyaXZlci5yc3QtMzItaWYgZGV2aWNlIGlzIHN0aWxsIFVQLlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL211bHRpcXVldWUucnN0PTI0PWRldmljZSBpcyBzdGlsbCBvcGVyYXRpb25hbC4gIG5ldGRldi1cXHUwMDNlcXVldWVfbG9jayBpcyBzdGlsbCB1c2VkIHdoZW4gdGhlIGRldmljZVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9tdWx0aXF1ZXVlLnJzdDoyNTpjb21lcyBvbmxpbmUgb3Igd2hlbiBpdCdzIGNvbXBsZXRlbHkgc2h1dCBkb3duICh1bnJlZ2lzdGVyX25ldGRldigpLCBldGMuKS5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbXVsdGlxdWV1ZS5yc3QtMjYtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q9Mjg9Rmlyc3QgZ3JvdXAgY2FuIGJlIHVzZWQgaW4gbm9ybWFsIGNvbnRleHRzIHdoZXJlIGBgcnRubF9sb2NrYGAgaXMgbm90IGFscmVhZHlcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6Mjk6aGVsZDogcmVnaXN0ZXJfbmV0ZGV2KCksIHVucmVnaXN0ZXJfbmV0ZGV2KCkuXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTMwLVNlY29uZCBncm91cCBjYW4gYmUgdXNlZCB3aGVuIGBgcnRubF9sb2NrYGAgaXMgYWxyZWFkeSBoZWxkOlxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDozMTpyZWdpc3Rlcl9uZXRkZXZpY2UoKSwgdW5yZWdpc3Rlcl9uZXRkZXZpY2UoKSwgZnJlZV9uZXRkZXYoKS5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtMzItXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q9Mzk9SW4gdGhhdCBjYXNlIHRoZSBzdHJ1Y3QgbmV0X2RldmljZSByZWdpc3RyYXRpb24gaXMgZG9uZSB1c2luZ1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDo0MDp0aGUgcmVnaXN0ZXJfbmV0ZGV2KCksIGFuZCB1bnJlZ2lzdGVyX25ldGRldigpIGZ1bmN0aW9uczpcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtNDEtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtNTMtXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0OjU0OiAgICAvKiAuLi4gZG8gYWxsIGRldmljZSBzZXR1cCBiZWZvcmUgY2FsbGluZyByZWdpc3Rlcl9uZXRkZXYoKSAuLi5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtNTUtICAgICAqL1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC01Ni1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6NTc6ICAgIGVyciA9IHJlZ2lzdGVyX25ldGRldihkZXYpO1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC01OC0gICAgaWYgKGVycilcXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC03MS0gIHtcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6NzI6ICAgIHVucmVnaXN0ZXJfbmV0ZGV2KGRldik7XFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTczLSAgICBmcmVlX25ldGRldihkZXYpO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTc1LVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDo3NjpOb3RlIHRoYXQgYWZ0ZXIgY2FsbGluZyByZWdpc3Rlcl9uZXRkZXYoKSB0aGUgZGV2aWNlIGlzIHZpc2libGUgaW4gdGhlIHN5c3RlbS5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtNzctVXNlcnMgY2FuIG9wZW4gaXQgYW5kIHN0YXJ0IHNlbmRpbmcgLyByZWNlaXZpbmcgdHJhZmZpYyBpbW1lZGlhdGVseSxcXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdD03OT1yZWdpc3RyYXRpb24uXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTgwLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDo4MTp1bnJlZ2lzdGVyX25ldGRldigpIGNsb3NlcyB0aGUgZGV2aWNlIGFuZCB3YWl0cyBmb3IgYWxsIHVzZXJzIHRvIGJlIGRvbmVcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtODItd2l0aCBpdC4gVGhlIG1lbW9yeSBvZiBzdHJ1Y3QgbmV0X2RldmljZSBpdHNlbGYgbWF5IHN0aWxsIGJlIHJlZmVyZW5jZWRcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q9ODM9Ynkgc3lzZnMgYnV0IGFsbCBvcGVyYXRpb25zIG9uIHRoYXQgZGV2aWNlIHdpbGwgZmFpbC5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtODQtXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0Ojg1OmZyZWVfbmV0ZGV2KCkgY2FuIGJlIGNhbGxlZCBhZnRlciB1bnJlZ2lzdGVyX25ldGRldigpIHJldHVybnMgb3Igd2hlblxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDo4NjpyZWdpc3Rlcl9uZXRkZXYoKSBmYWlsZWQuXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTg3LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0PTk2PUV4YW1wbGUgZmxvdyBvZiBuZXRkZXYgaGFuZGxpbmcgdW5kZXIgYGBydG5sX2xvY2tgYDpcXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xMzUtXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0OjEzNjogICAgZXJyID0gcmVnaXN0ZXJfbmV0ZGV2aWNlKGRldik7XFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTEzNy0gICAgaWYgKGVycilcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6MTM4OiAgICAgIC8qIHJlZ2lzdGVyX25ldGRldmljZSgpIGNhbGxzIGRlc3RydWN0b3Igb24gZmFpbHVyZSAqL1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xMzktICAgICAgZ290byBlcnJfZnJlZV9kZXY7XFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTE0MC1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6MTQxOiAgICAvKiBJZiBhbnl0aGluZyBmYWlscyBub3cgdW5yZWdpc3Rlcl9uZXRkZXZpY2UoKSAob3IgdW5yZWdpc3Rlcl9uZXRkZXYoKSlcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtMTQyLSAgICAgKiB3aWxsIHRha2UgY2FyZSBvZiBjYWxsaW5nIG15X2Rlc3RydWN0b3IgYW5kIGZyZWVfbmV0ZGV2KCkuXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q9MTU0PUlmIHN0cnVjdCBuZXRfZGV2aWNlLnByaXZfZGVzdHJ1Y3RvciBpcyBzZXQgaXQgd2lsbCBiZSBjYWxsZWQgYnkgdGhlIGNvcmVcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6MTU1OnNvbWUgdGltZSBhZnRlciB1bnJlZ2lzdGVyX25ldGRldmljZSgpLCBpdCB3aWxsIGFsc28gYmUgY2FsbGVkIGlmXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0OjE1NjpyZWdpc3Rlcl9uZXRkZXZpY2UoKSBmYWlscy4gVGhlIGNhbGxiYWNrIG1heSBiZSBpbnZva2VkIHdpdGggb3Igd2l0aG91dFxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xNTctYGBydG5sX2xvY2tgYCBoZWxkLlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0PTE2Mj1TZXR0aW5nIHN0cnVjdCBuZXRfZGV2aWNlLm5lZWRzX2ZyZWVfbmV0ZGV2IG1ha2VzIGNvcmUgY2FsbCBmcmVlX25ldGRldigpXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0OjE2MzphdXRvbWF0aWNhbGx5IGFmdGVyIHVucmVnaXN0ZXJfbmV0ZGV2aWNlKCkgd2hlbiBhbGwgcmVmZXJlbmNlcyB0byB0aGUgZGV2aWNlXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0OjE2NDphcmUgZ29uZS4gSXQgb25seSB0YWtlcyBlZmZlY3QgYWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgdG8gcmVnaXN0ZXJfbmV0ZGV2aWNlKClcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6MTY1OnNvIGlmIHJlZ2lzdGVyX25ldGRldmljZSgpIGZhaWxzIGRyaXZlciBpcyByZXNwb25zaWJsZSBmb3IgY2FsbGluZ1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xNjYtZnJlZV9uZXRkZXYoKS5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtMTY3LVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDoxNjg6ZnJlZV9uZXRkZXYoKSBpcyBzYWZlIHRvIGNhbGwgb24gZXJyb3IgcGF0aHMgcmlnaHQgYWZ0ZXIgdW5yZWdpc3Rlcl9uZXRkZXZpY2UoKVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDoxNjk6b3Igd2hlbiByZWdpc3Rlcl9uZXRkZXZpY2UoKSBmYWlscy4gUGFydHMgb2YgbmV0ZGV2IChkZSlyZWdpc3RyYXRpb24gcHJvY2Vzc1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xNzAtaGFwcGVuIGFmdGVyIGBgcnRubF9sb2NrYGAgaXMgcmVsZWFzZWQsIHRoZXJlZm9yZSBpbiB0aG9zZSBjYXNlcyBmcmVlX25ldGRldigpXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvc3dpdGNoZGV2LnJzdD04NT1PbiBzd2l0Y2hkZXYgZHJpdmVyIGluaXRpYWxpemF0aW9uLCB0aGUgZHJpdmVyIHdpbGwgYWxsb2NhdGUgYW5kIHJlZ2lzdGVyIGFcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvc3dpdGNoZGV2LnJzdDo4NjpzdHJ1Y3QgbmV0X2RldmljZSAodXNpbmcgcmVnaXN0ZXJfbmV0ZGV2KCkpIGZvciBlYWNoIGVudW1lcmF0ZWQgcGh5c2ljYWwgc3dpdGNoXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3N3aXRjaGRldi5yc3QtODctcG9ydCwgY2FsbGVkIHRoZSBwb3J0IG5ldGRldi4gIEEgcG9ydCBuZXRkZXYgaXMgdGhlIHNvZnR3YXJlIHJlcHJlc2VudGF0aW9uIG9mXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcveGZybS94ZnJtX2RldmljZS5yc3Q9OTc9Rmxvd1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3hmcm0veGZybV9kZXZpY2UucnN0LTk5LVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy94ZnJtL3hmcm1fZGV2aWNlLnJzdDoxMDA6QXQgcHJvYmUgdGltZSBhbmQgYmVmb3JlIHRoZSBjYWxsIHRvIHJlZ2lzdGVyX25ldGRldigpLCB0aGUgZHJpdmVyIHNob3VsZFxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy94ZnJtL3hmcm1fZGV2aWNlLnJzdC0xMDEtc2V0IHVwIGxvY2FsIGRhdGEgc3RydWN0dXJlcyBhbmQgWEZSTSBjYWxsYmFja3MsIGFuZCBzZXQgdGhlIGZlYXR1cmUgYml0cy5cXG4tLVxcbmFyY2gvbTY4ay9lbXUvbmZldGguYz0xODU9c3RhdGljIHN0cnVjdCBuZXRfZGV2aWNlICogX19pbml0IG5mZXRoX3Byb2JlKGludCB1bml0KVxcbi0tXFxuYXJjaC9tNjhrL2VtdS9uZmV0aC5jLTIwNy1cXG5hcmNoL202OGsvZW11L25mZXRoLmM6MjA4OlxcdGVyciA9IHJlZ2lzdGVyX25ldGRldihkZXYpO1xcbmFyY2gvbTY4ay9lbXUvbmZldGguYy0yMDktXFx0aWYgKGVycikge1xcbi0tXFxuYXJjaC9tNjhrL2VtdS9uZmV0aC5jPTI1MT1zdGF0aWMgdm9pZCBfX2V4aXQgbmZldGhfY2xlYW51cCh2b2lkKVxcbi0tXFxuYXJjaC9tNjhrL2VtdS9uZmV0aC5jLTI1Ni1cXHRcXHRpZiAobmZldGhfZGV2W2ldKSB7XFxuYXJjaC9tNjhrL2VtdS9uZmV0aC5jOjI1NzpcXHRcXHRcXHR1bnJlZ2lzdGVyX25ldGRldihuZmV0aF9kZXZbaV0pO1xcbmFyY2gvbTY4ay9lbXUvbmZldGguYy0yNTgtXFx0XFx0XFx0ZnJlZV9uZXRkZXYobmZldGhfZGV2W2ldKTtcXG4tLVxcbmFyY2gvdW0vZHJpdmVycy92ZWN0b3Jfa2Vybi5jPTc4MT1zdGF0aWMgaW50IHZlY3Rvcl9yZW1vdmUoaW50IG4sIGNoYXIgKiplcnJvcl9vdXQpXFxuLS1cXG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYy03OTMtXFx0XFx0cmV0dXJuIC1FQlVTWTtcXG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYzo3OTQ6XFx0dW5yZWdpc3Rlcl9uZXRkZXYoZGV2KTtcXG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYy03OTUtXFx0cGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIoXFx1MDAyNnZlY19kLVxcdTAwM2VwZGV2KTtcXG4tLVxcbmFyY2gvdW0vZHJpdmVycy92ZWN0b3Jfa2Vybi5jPTE1NzQ9c3RhdGljIHZvaWQgdmVjdG9yX2V0aF9jb25maWd1cmUoXFxuLS1cXG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYy0xNjAwLVxcdC8qIElmIHRoaXMgbmFtZSBlbmRzIHVwIGNvbmZsaWN0aW5nIHdpdGggYW4gZXhpc3RpbmcgcmVnaXN0ZXJlZFxcbmFyY2gvdW0vZHJpdmVycy92ZWN0b3Jfa2Vybi5jOjE2MDE6XFx0ICogbmV0ZGV2aWNlLCB0aGF0IGlzIE9LLCByZWdpc3Rlcl9uZXRkZXZ7LGljZX0oKSB3aWxsIG5vdGljZSB0aGlzXFxuYXJjaC91bS9kcml2ZXJzL3ZlY3Rvcl9rZXJuLmMtMTYwMi1cXHQgKiBhbmQgZmFpbC5cXG4tLVxcbmFyY2gvdW0vZHJpdmVycy92ZWN0b3Jfa2Vybi5jLTE2NDktXFx0cnRubF9sb2NrKCk7XFxuYXJjaC91bS9kcml2ZXJzL3ZlY3Rvcl9rZXJuLmM6MTY1MDpcXHRlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2UoZGV2KTtcXG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYy0xNjUxLVxcdHJ0bmxfdW5sb2NrKCk7XFxuLS1cXG5hcmNoL3h0ZW5zYS9wbGF0Zm9ybXMvaXNzL25ldHdvcmsuYz00Nzk9c3RhdGljIHZvaWQgaXNzX25ldF9jb25maWd1cmUoaW50IGluZGV4LCBjaGFyICppbml0KVxcbi0tXFxuYXJjaC94dGVuc2EvcGxhdGZvcm1zL2lzcy9uZXR3b3JrLmMtNTAwLVxcdCAqIElmIHRoaXMgbmFtZSBlbmRzIHVwIGNvbmZsaWN0aW5nIHdpdGggYW4gZXhpc3RpbmcgcmVnaXN0ZXJlZFxcbmFyY2gveHRlbnNhL3BsYXRmb3Jtcy9pc3MvbmV0d29yay5jOjUwMTpcXHQgKiBuZXRkZXZpY2UsIHRoYXQgaXMgT0ssIHJlZ2lzdGVyX25ldGRldnssaWNlfSgpIHdpbGwgbm90aWNlIHRoaXNcXG5hcmNoL3h0ZW5zYS9wbGF0Zm9ybXMvaXNzL25ldHdvcmsuYy01MDItXFx0ICogYW5kIGZhaWwuXFxuLS1cXG5hcmNoL3h0ZW5zYS9wbGF0Zm9ybXMvaXNzL25ldHdvcmsuYy01MzktXFx0cnRubF9sb2NrKCk7XFxuYXJjaC94dGVuc2EvcGxhdGZvcm1zL2lzcy9uZXR3b3JrLmM6NTQwOlxcdGlmIChyZWdpc3Rlcl9uZXRkZXZpY2UoZGV2KSkge1xcbmFyY2gveHRlbnNhL3BsYXRmb3Jtcy9pc3MvbmV0d29yay5jLTU0MS1cXHRcXHRydG5sX3VubG9jaygpO1xcbi0tXFxuZHJpdmVycy9maXJld2lyZS9uZXQuYz0xNDMyPXN0YXRpYyBpbnQgZnduZXRfcHJvYmUoc3RydWN0IGZ3X3VuaXQgKnVuaXQsXFxuLS1cXG5kcml2ZXJzL2ZpcmV3aXJlL25ldC5jLTE0OTUtXFxuZHJpdmVycy9maXJld2lyZS9uZXQuYzoxNDk2OlxcdHJldCA9IHJlZ2lzdGVyX25ldGRldihuZXQpO1xcbmRyaXZlcnMvZmlyZXdpcmUvbmV0LmMtMTQ5Ny1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9maXJld2lyZS9uZXQuYy0xNTA1LVxcdGlmIChyZXQgXFx1MDAyNlxcdTAwMjYgYWxsb2NhdGVkX25ldGRldikge1xcbmRyaXZlcnMvZmlyZXdpcmUvbmV0LmM6MTUwNjpcXHRcXHR1bnJlZ2lzdGVyX25ldGRldihuZXQpO1xcbmRyaXZlcnMvZmlyZXdpcmUvbmV0LmMtMTUwNy1cXHRcXHRsaXN0X2RlbChcXHUwMDI2ZGV2LVxcdTAwM2VkZXZfbGluayk7XFxuLS1cXG5kcml2ZXJzL2ZpcmV3aXJlL25ldC5jPTE1NTI9c3RhdGljIHZvaWQgZnduZXRfcmVtb3ZlKHN0cnVjdCBmd191bml0ICp1bml0KVxcbi0tXFxuZHJpdmVycy9maXJld2lyZS9uZXQuYy0xNTY1LVxcdGlmIChsaXN0X2VtcHR5KFxcdTAwMjZkZXYtXFx1MDAzZXBlZXJfbGlzdCkpIHtcXG5kcml2ZXJzL2ZpcmV3aXJlL25ldC5jOjE1NjY6XFx0XFx0dW5yZWdpc3Rlcl9uZXRkZXYobmV0KTtcXG5kcml2ZXJzL2ZpcmV3aXJlL25ldC5jLTE1NjctXFxuLS1cXG5kcml2ZXJzL2hzaS9jbGllbnRzL3NzaV9wcm90b2NvbC5jPTEwNzM9c3RhdGljIGludCBzc2lfcHJvdG9jb2xfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9oc2kvY2xpZW50cy9zc2lfcHJvdG9jb2wuYy0xMTI3LVxcdG5ldGlmX2NhcnJpZXJfb2ZmKHNzaS1cXHUwMDNlbmV0ZGV2KTtcXG5kcml2ZXJzL2hzaS9jbGllbnRzL3NzaV9wcm90b2NvbC5jOjExMjg6XFx0ZXJyID0gcmVnaXN0ZXJfbmV0ZGV2KHNzaS1cXHUwMDNlbmV0ZGV2KTtcXG5kcml2ZXJzL2hzaS9jbGllbnRzL3NzaV9wcm90b2NvbC5jLTExMjktXFx0aWYgKGVyciBcXHUwMDNjIDApIHtcXG4tLVxcbmRyaXZlcnMvaHNpL2NsaWVudHMvc3NpX3Byb3RvY29sLmM9MTE1MD1zdGF0aWMgaW50IHNzaV9wcm90b2NvbF9yZW1vdmUoc3RydWN0IGRldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9oc2kvY2xpZW50cy9zc2lfcHJvdG9jb2wuYy0xMTU1LVxcdGxpc3RfZGVsKFxcdTAwMjZzc2ktXFx1MDAzZWxpbmspO1xcbmRyaXZlcnMvaHNpL2NsaWVudHMvc3NpX3Byb3RvY29sLmM6MTE1NjpcXHR1bnJlZ2lzdGVyX25ldGRldihzc2ktXFx1MDAzZW5ldGRldik7XFxuZHJpdmVycy9oc2kvY2xpZW50cy9zc2lfcHJvdG9jb2wuYy0xMTU3LVxcdHNzaXBfZnJlZV9jbWRzKHNzaSk7XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYz01NDg2PXN0YXRpYyBpbnQgX19pbml0IGNtYV9pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYy01NTExLVxcdGliX3NhX3JlZ2lzdGVyX2NsaWVudChcXHUwMDI2c2FfY2xpZW50KTtcXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYzo1NTEyOlxcdHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2Y21hX25iKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYy01NTEzLVxcdHJlZ2lzdGVyX25ldGV2ZW50X25vdGlmaWVyKFxcdTAwMjZjbWFfbmV0ZXZlbnRfY2IpO1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY21hLmMtNTUyOC1cXHR1bnJlZ2lzdGVyX25ldGV2ZW50X25vdGlmaWVyKFxcdTAwMjZjbWFfbmV0ZXZlbnRfY2IpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtYS5jOjU1Mjk6XFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNmNtYV9uYik7XFxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY21hLmMtNTUzMC1cXHRpYl9zYV91bnJlZ2lzdGVyX2NsaWVudChcXHUwMDI2c2FfY2xpZW50KTtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtYS5jPTU1Mzc9c3RhdGljIHZvaWQgX19leGl0IGNtYV9jbGVhbnVwKHZvaWQpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYy01NTQxLVxcdHVucmVnaXN0ZXJfbmV0ZXZlbnRfbm90aWZpZXIoXFx1MDAyNmNtYV9uZXRldmVudF9jYik7XFxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY21hLmM6NTU0MjpcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2Y21hX25iKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYy01NTQzLVxcdGliX3NhX3VucmVnaXN0ZXJfY2xpZW50KFxcdTAwMjZzYV9jbGllbnQpO1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZGV2aWNlLmM9MzAzNT1zdGF0aWMgaW50IF9faW5pdCBpYl9jb3JlX2luaXQodm9pZClcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2RldmljZS5jLTMxMDUtXFxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZGV2aWNlLmM6MzEwNjpcXHRyZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNm5iX25ldGRldmljZSk7XFxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZGV2aWNlLmMtMzEwNy1cXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2RldmljZS5jPTMxMzU9c3RhdGljIHZvaWQgX19leGl0IGliX2NvcmVfY2xlYW51cCh2b2lkKVxcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2RldmljZS5jLTMxMzYte1xcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2RldmljZS5jOjMxMzc6XFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNm5iX25ldGRldmljZSk7XFxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZGV2aWNlLmMtMzEzOC1cXHRyb2NlX2dpZF9tZ210X2NsZWFudXAoKTtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3JvY2VfZ2lkX21nbXQuYz05MTg9aW50IF9faW5pdCByb2NlX2dpZF9tZ210X2luaXQodm9pZClcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3JvY2VfZ2lkX21nbXQuYy05MzEtXFx0ICovXFxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvcm9jZV9naWRfbWdtdC5jOjkzMjpcXHRyZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNm5iX25ldGRldmljZSk7XFxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvcm9jZV9naWRfbWdtdC5jLTkzMy1cXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3JvY2VfZ2lkX21nbXQuYz05Mzc9dm9pZCBfX2V4aXQgcm9jZV9naWRfbWdtdF9jbGVhbnVwKHZvaWQpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9yb2NlX2dpZF9tZ210LmMtOTQxLVxcdHVucmVnaXN0ZXJfaW5ldGFkZHJfbm90aWZpZXIoXFx1MDAyNm5iX2luZXRhZGRyKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9yb2NlX2dpZF9tZ210LmM6OTQyOlxcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFxcdTAwMjZuYl9uZXRkZXZpY2UpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3JvY2VfZ2lkX21nbXQuYy05NDMtXFx0LyogRW5zdXJlIGFsbCBnaWQgZGVsZXRpb24gdGFza3MgY29tcGxldGUgYmVmb3JlIHdlIGdvIGRvd24sXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvYm5nX3JlL2JuZ19kZXYuYz0yMz1zdGF0aWMgc3RydWN0IGJuZ19yZV9kZXYgKmJuZ19yZV9kZXZfYWRkKHN0cnVjdCBhdXhpbGlhcnlfZGV2aWNlICphZGV2LFxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JuZ19yZS9ibmdfZGV2LmMtNDQtXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JuZ19yZS9ibmdfZGV2LmM6NDU6c3RhdGljIGludCBibmdfcmVfcmVnaXN0ZXJfbmV0ZGV2KHN0cnVjdCBibmdfcmVfZGV2ICpyZGV2KVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibmdfcmUvYm5nX2Rldi5jLTQ2LXtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibmdfcmUvYm5nX2Rldi5jPTI3Nj1zdGF0aWMgaW50IGJuZ19yZV9kZXZfaW5pdChzdHJ1Y3QgYm5nX3JlX2RldiAqcmRldilcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibmdfcmUvYm5nX2Rldi5jLTI4NS1cXHQvKiBSZWdpc3RlcmVkIGEgbmV3IFJvQ0UgZGV2aWNlIGluc3RhbmNlIHRvIG5ldGRldiAqL1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibmdfcmUvYm5nX2Rldi5jOjI4NjpcXHRyYyA9IGJuZ19yZV9yZWdpc3Rlcl9uZXRkZXYocmRldik7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JuZ19yZS9ibmdfZGV2LmMtMjg3LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JueHRfcmUvbWFpbi5jPTUxND1zdGF0aWMgc3RydWN0IGJueHRfdWxwX29wcyBibnh0X3JlX3VscF9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvYm54dF9yZS9tYWluLmMtNTIxLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibnh0X3JlL21haW4uYzo1MjI6c3RhdGljIGludCBibnh0X3JlX3JlZ2lzdGVyX25ldGRldihzdHJ1Y3QgYm54dF9yZV9kZXYgKnJkZXYpXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JueHRfcmUvbWFpbi5jLTUyMy17XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvYm54dF9yZS9tYWluLmM9MjE4Mj1zdGF0aWMgaW50IGJueHRfcmVfZGV2X2luaXQoc3RydWN0IGJueHRfcmVfZGV2ICpyZGV2LCB1OCBvcF90eXBlKVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JueHRfcmUvbWFpbi5jLTIxOTItXFx0XFx0LyogUmVnaXN0ZXJlZCBhIG5ldyBSb0NFIGRldmljZSBpbnN0YW5jZSB0byBuZXRkZXYgKi9cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvYm54dF9yZS9tYWluLmM6MjE5MzpcXHRcXHRyYyA9IGJueHRfcmVfcmVnaXN0ZXJfbmV0ZGV2KHJkZXYpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibnh0X3JlL21haW4uYy0yMTk0LVxcdFxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2VyZG1hL2VyZG1hX21haW4uYz04Nj1zdGF0aWMgaW50IGVyZG1hX2RldmljZV9yZWdpc3RlcihzdHJ1Y3QgZXJkbWFfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvZXJkbWEvZXJkbWFfbWFpbi5jLTEwNS1cXHRkZXYtXFx1MDAzZW5ldGRldl9uYi5ub3RpZmllcl9jYWxsID0gZXJkbWFfbmV0ZGV2X2V2ZW50O1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9lcmRtYS9lcmRtYV9tYWluLmM6MTA2OlxcdHJldCA9IHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2ZGV2LVxcdTAwM2VuZXRkZXZfbmIpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9lcmRtYS9lcmRtYV9tYWluLmMtMTA3LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9lcmRtYS9lcmRtYV9tYWluLmM9NjE1PXN0YXRpYyB2b2lkIGVyZG1hX2liX2RldmljZV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvZXJkbWEvZXJkbWFfbWFpbi5jLTYxOC1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvZXJkbWEvZXJkbWFfbWFpbi5jOjYxOTpcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2ZGV2LVxcdTAwM2VuZXRkZXZfbmIpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9lcmRtYS9lcmRtYV9tYWluLmMtNjIwLVxcdGliX3VucmVnaXN0ZXJfZGV2aWNlKFxcdTAwMjZkZXYtXFx1MDAzZWliZGV2KTtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jPTg0Nj1pbnQgaG5zX3JvY2VfYWxsb2NfYm9uZF9ncnAoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmMtODc4LVxcdFxcdGJvbmRfZ3JwLVxcdTAwM2Vib25kX25iLm5vdGlmaWVyX2NhbGwgPSBobnNfcm9jZV9ib25kX2V2ZW50O1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jOjg3OTpcXHRcXHRyZXQgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNmJvbmRfZ3JwLVxcdTAwM2Vib25kX25iKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYy04ODAtXFx0XFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmMtODk2LVxcdGZvciAoaS0tOyBpIFxcdTAwM2U9IDA7IGktLSkge1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jOjg5NzpcXHRcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2YmdycHNbaV0tXFx1MDAzZWJvbmRfbmIpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jLTg5OC1cXHRcXHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXFx1MDAyNmJncnBzW2ldLVxcdTAwM2Vib25kX3dvcmspO1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmM9OTA2PXZvaWQgaG5zX3JvY2VfZGVhbGxvY19ib25kX2dycCh2b2lkKVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmMtOTE3LVxcdFxcdFxcdFxcdGNvbnRpbnVlO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jOjkxODpcXHRcXHRcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2Ym9uZF9ncnAtXFx1MDAzZWJvbmRfbmIpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jLTkxOS1cXHRcXHRcXHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXFx1MDAyNmJvbmRfZ3JwLVxcdTAwM2Vib25kX3dvcmspO1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmM9OTQ5PXZvaWQgaG5zX3JvY2VfYm9uZF9zdXNwZW5kKHN0cnVjdCBobmFlM19oYW5kbGUgKmhhbmRsZSlcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jLTk3Mi1cXHRcXHRcXHRjb250aW51ZTtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYzo5NzM6XFx0XFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNmJvbmRfZ3JwLVxcdTAwM2Vib25kX25iKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYy05NzQtXFx0XFx0Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKFxcdTAwMjZib25kX2dycC1cXHUwMDNlYm9uZF93b3JrKTtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jPTk4Mj12b2lkIGhuc19yb2NlX2JvbmRfcmVzdW1lKHN0cnVjdCBobmFlM19oYW5kbGUgKmhhbmRsZSlcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jLTEwMDItXFx0XFx0XFx0Y29udGludWU7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmM6MTAwMzpcXHRcXHRyZXQgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNmJvbmRfZ3JwLVxcdTAwM2Vib25kX25iKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYy0xMDA0LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX21haW4uYz03MDI9c3RhdGljIHZvaWQgaG5zX3JvY2VfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LFxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmMtNzE2LVxcdGhyX2Rldi1cXHUwMDNlYWN0aXZlID0gZmFsc2U7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmM6NzE3OlxcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFxcdTAwMjZpYm9lLVxcdTAwM2VuYik7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmMtNzE4LVxcdGliX3VucmVnaXN0ZXJfZGV2aWNlKFxcdTAwMjZocl9kZXYtXFx1MDAzZWliX2Rldik7XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX21haW4uYz04MDE9c3RhdGljIGludCBobnNfcm9jZV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmMtODg2LVxcdGlib2UtXFx1MDAzZW5iLm5vdGlmaWVyX2NhbGwgPSBobnNfcm9jZV9uZXRkZXZfZXZlbnQ7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmM6ODg3OlxcdHJldCA9IHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2aWJvZS1cXHUwMDNlbmIpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfbWFpbi5jLTg4OC1cXHRpZiAocmV0KSB7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmM6ODg5OlxcdFxcdGRldl9lcnIoZGV2LCBcXFwicmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyIGZhaWxlZCFcXFxcblxcXCIpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfbWFpbi5jLTg5MC1cXHRcXHRnb3RvIGVycm9yX2ZhaWxlZF9zZXR1cF9tdHVfbWFjO1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2lyZG1hL21haW4uYz0yNj1zdGF0aWMgdm9pZCBpcmRtYV9yZWdpc3Rlcl9ub3RpZmllcnModm9pZClcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9pcmRtYS9tYWluLmMtMzAtXFx0cmVnaXN0ZXJfbmV0ZXZlbnRfbm90aWZpZXIoXFx1MDAyNmlyZG1hX25ldF9ub3RpZmllcik7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2lyZG1hL21haW4uYzozMTpcXHRyZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNmlyZG1hX25ldGRldmljZV9ub3RpZmllcik7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2lyZG1hL21haW4uYy0zMi19XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaXJkbWEvbWFpbi5jPTM0PXN0YXRpYyB2b2lkIGlyZG1hX3VucmVnaXN0ZXJfbm90aWZpZXJzKHZvaWQpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaXJkbWEvbWFpbi5jLTM4LVxcdHVucmVnaXN0ZXJfaW5ldDZhZGRyX25vdGlmaWVyKFxcdTAwMjZpcmRtYV9pbmV0YWRkcjZfbm90aWZpZXIpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9pcmRtYS9tYWluLmM6Mzk6XFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNmlyZG1hX25ldGRldmljZV9ub3RpZmllcik7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2lyZG1hL21haW4uYy00MC19XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWFuYS9kZXZpY2UuYz0xMTY9c3RhdGljIGludCBtYW5hX2liX3Byb2JlKHN0cnVjdCBhdXhpbGlhcnlfZGV2aWNlICphZGV2LFxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21hbmEvZGV2aWNlLmMtMTg4LVxcdFxcdGRldi1cXHUwMDNlbmIubm90aWZpZXJfY2FsbCA9IG1hbmFfaWJfbmV0ZGV2X2V2ZW50O1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jOjE4OTpcXHRcXHRyZXQgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNmRldi1cXHUwMDNlbmIpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jLTE5MC1cXHRcXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWFuYS9kZXZpY2UuYy0yMjUtXFx0aWYgKG1hbmFfaWJfaXNfcm5pYyhkZXYpKVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jOjIyNjpcXHRcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2ZGV2LVxcdTAwM2VuYik7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21hbmEvZGV2aWNlLmMtMjI3LWRlc3Ryb3lfcm5pYzpcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jPTIzOT1zdGF0aWMgdm9pZCBtYW5hX2liX3JlbW92ZShzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZSAqYWRldilcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jLTI0OC1cXHRpZiAobWFuYV9pYl9pc19ybmljKGRldikpIHtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWFuYS9kZXZpY2UuYzoyNDk6XFx0XFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNmRldi1cXHUwMDNlbmIpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jLTI1MC1cXHRcXHRtYW5hX2liX2dkX2Rlc3Ryb3lfcm5pY19hZGFwdGVyKGRldik7XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmM9MjYxMz1zdGF0aWMgaW50IG1seDRfaWJfcHJvYmUoc3RydWN0IGF1eGlsaWFyeV9kZXZpY2UgKmFkZXYsXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmMtMjgyNy1cXHRcXHRpYm9lLVxcdTAwM2VuYi5ub3RpZmllcl9jYWxsID0gbWx4NF9pYl9uZXRkZXZfZXZlbnQ7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWFpbi5jOjI4Mjg6XFx0XFx0ZXJyID0gcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFxcdTAwMjZpYm9lLVxcdTAwM2VuYik7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWFpbi5jLTI4MjktXFx0XFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWFpbi5jLTI4NjctXFx0aWYgKGliZGV2LVxcdTAwM2VpYm9lLm5iLm5vdGlmaWVyX2NhbGwpIHtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmM6Mjg2ODpcXHRcXHRpZiAodW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNmliZGV2LVxcdTAwM2VpYm9lLm5iKSlcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmMtMjg2OS1cXHRcXHRcXHRwcl93YXJuKFxcXCJmYWlsdXJlIHVucmVnaXN0ZXJpbmcgbm90aWZpZXJcXFxcblxcXCIpO1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWFpbi5jPTI5NzU9c3RhdGljIHZvaWQgbWx4NF9pYl9yZW1vdmUoc3RydWN0IGF1eGlsaWFyeV9kZXZpY2UgKmFkZXYpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmMtMjk5MC1cXHRpZiAoaWJkZXYtXFx1MDAzZWlib2UubmIubm90aWZpZXJfY2FsbCkge1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21haW4uYzoyOTkxOlxcdFxcdGlmICh1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2aWJkZXYtXFx1MDAzZWlib2UubmIpKVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21haW4uYy0yOTkyLVxcdFxcdFxcdHByX3dhcm4oXFxcImZhaWx1cmUgdW5yZWdpc3RlcmluZyBub3RpZmllclxcXFxuXFxcIik7XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM9Mzc2NT1zdGF0aWMgdm9pZCBtbHg1X25ldGRldl9ub3RpZmllcl9yZWdpc3RlcihzdHJ1Y3QgbWx4NV9yb2NlICpyb2NlLFxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jLTM3NzMtXFx0cm9jZS1cXHUwMDNlbmIubm90aWZpZXJfY2FsbCA9IG1seDVfbmV0ZGV2X2V2ZW50O1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYzozNzc0OlxcdGVyciA9IHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcl9kZXZfbmV0KG5ldGRldiwgXFx1MDAyNnJvY2UtXFx1MDAzZW5iLCBcXHUwMDI2cm9jZS1cXHUwMDNlbm4pO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zNzc1LVxcdFdBUk5fT04oZXJyKTtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYz0zNzc4PXN0YXRpYyB2b2lkIG1seDVfbmV0ZGV2X25vdGlmaWVyX3VucmVnaXN0ZXIoc3RydWN0IG1seDVfcm9jZSAqcm9jZSlcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zNzgxLVxcdFxcdHJldHVybjtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM6Mzc4MjpcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcl9kZXZfbmV0KHJvY2UtXFx1MDAzZXRyYWNraW5nX25ldGRldiwgXFx1MDAyNnJvY2UtXFx1MDAzZW5iLFxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zNzgzLVxcdFxcdFxcdFxcdFxcdCAgICAgIFxcdTAwMjZyb2NlLVxcdTAwM2Vubik7XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfaWJfbWFpbi5jPTY1OT1zdGF0aWMgaW50IF9faW5pdCB1c25pY19pYl9pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfaWJfbWFpbi5jLTY3MC1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfaWJfbWFpbi5jOjY3MTpcXHRlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNnVzbmljX2liX25ldGRldmljZV9ub3RpZmllcik7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L3VzbmljL3VzbmljX2liX21haW4uYy02NzItXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L3VzbmljL3VzbmljX2liX21haW4uYy02OTUtb3V0X3VucmVnX25ldGRldl9ub3RpZmllcjpcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfaWJfbWFpbi5jOjY5NjpcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2dXNuaWNfaWJfbmV0ZGV2aWNlX25vdGlmaWVyKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfaWJfbWFpbi5jLTY5Ny1vdXRfcGNpX3VucmVnOlxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L3VzbmljL3VzbmljX2liX21haW4uYz03MDQ9c3RhdGljIHZvaWQgX19leGl0IHVzbmljX2liX2Rlc3Ryb3kodm9pZClcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody91c25pYy91c25pY19pYl9tYWluLmMtNzA5LVxcdHVucmVnaXN0ZXJfaW5ldGFkZHJfbm90aWZpZXIoXFx1MDAyNnVzbmljX2liX2luZXRhZGRyX25vdGlmaWVyKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfaWJfbWFpbi5jOjcxMDpcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2dXNuaWNfaWJfbmV0ZGV2aWNlX25vdGlmaWVyKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfaWJfbWFpbi5jLTcxMS1cXHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNnVzbmljX2liX3BjaV9kcml2ZXIpO1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L3Ztd19wdnJkbWEvcHZyZG1hX21haW4uYz03NjQ9c3RhdGljIGludCBwdnJkbWFfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L3Ztd19wdnJkbWEvcHZyZG1hX21haW4uYy0xMDE1LVxcdGRldi1cXHUwMDNlbmJfbmV0ZGV2Lm5vdGlmaWVyX2NhbGwgPSBwdnJkbWFfbmV0ZGV2aWNlX2V2ZW50O1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody92bXdfcHZyZG1hL3B2cmRtYV9tYWluLmM6MTAxNjpcXHRyZXQgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNmRldi1cXHUwMDNlbmJfbmV0ZGV2KTtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdm13X3B2cmRtYS9wdnJkbWFfbWFpbi5jLTEwMTctXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L3Ztd19wdnJkbWEvcHZyZG1hX21haW4uYz0xMDYzPXN0YXRpYyB2b2lkIHB2cmRtYV9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L3Ztd19wdnJkbWEvcHZyZG1hX21haW4uYy0xMDcxLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody92bXdfcHZyZG1hL3B2cmRtYV9tYWluLmM6MTA3MjpcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2ZGV2LVxcdTAwM2VuYl9uZXRkZXYpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody92bXdfcHZyZG1hL3B2cmRtYV9tYWluLmMtMTA3My1cXHRkZXYtXFx1MDAzZW5iX25ldGRldi5ub3RpZmllcl9jYWxsID0gTlVMTDtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9zdy9yeGUvcnhlX25ldC5jPTgwNj1pbnQgcnhlX3JlZ2lzdGVyX25vdGlmaWVyKHZvaWQpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9uZXQuYy04MDktXFxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfbmV0LmM6ODEwOlxcdGVyciA9IHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2cnhlX25ldF9ub3RpZmllcik7XFxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfbmV0LmMtODExLVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9zdy9yeGUvcnhlX25ldC5jPTgxOT12b2lkIHJ4ZV9uZXRfZXhpdCh2b2lkKVxcbmRyaXZlcnMvaW5maW5pYmFuZC9zdy9yeGUvcnhlX25ldC5jLTgyMC17XFxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfbmV0LmM6ODIxOlxcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFxcdTAwMjZyeGVfbmV0X25vdGlmaWVyKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9uZXQuYy04MjItfVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfbWFpbi5jPTQ0Nj1zdGF0aWMgX19pbml0IGludCBzaXdfaW5pdF9tb2R1bGUodm9pZClcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9zdy9zaXcvc2l3X21haW4uYy00NjktXFxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfbWFpbi5jOjQ3MDpcXHRydiA9IHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2c2l3X25ldGRldl9uYik7XFxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfbWFpbi5jLTQ3MS1cXHRpZiAocnYpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvc3cvc2l3L3Npd19tYWluLmM9NDkwPXN0YXRpYyB2b2lkIF9fZXhpdCBzaXdfZXhpdF9tb2R1bGUodm9pZClcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9zdy9zaXcvc2l3X21haW4uYy00OTMtXFxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfbWFpbi5jOjQ5NDpcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2c2l3X25ldGRldl9uYik7XFxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfbWFpbi5jLTQ5NS1cXHRyZG1hX2xpbmtfdW5yZWdpc3RlcihcXHUwMDI2c2l3X2xpbmtfb3BzKTtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jPTE4NTI9c3RhdGljIGludCBpcG9pYl9kZXZfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMTkyMC0vKlxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jOjE5MjE6ICogVGhpcyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgZG9pbmcgYW4gdW5yZWdpc3Rlcl9uZXRkZXYgb24gYSBwYXJlbnQgZGV2aWNlIHRvXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMTkyMi0gKiBzaHV0ZG93biB0aGUgSUIgZXZlbnQgaGFuZGxlci5cXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jPTIyMDQ9dm9pZCBpcG9pYl9zZXR1cF9jb21tb24oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTIyMjUtXFx0LypcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYzoyMjI2OlxcdCAqIHVucmVnaXN0ZXJfbmV0ZGV2IGFsd2F5cyBmcmVlcyB0aGUgbmV0ZGV2LCB3ZSB1c2UgdGhpcyBtb2RlXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjIyNy1cXHQgKiBjb25zaXN0ZW50bHkgdG8gdW5pZnkgYWxsIHRoZSB2YXJpb3VzIHVucmVnaXN0ZXIgcGF0aHMsIGluY2x1ZGluZ1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM9MjI3NT1pbnQgaXBvaWJfaW50Zl9pbml0KHN0cnVjdCBpYl9kZXZpY2UgKmhjYSwgdTMyIHBvcnQsIGNvbnN0IGNoYXIgKm5hbWUsXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yMzE3LVxcdC8qXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM6MjMxODpcXHQgKiBPbmx5IHRoZSBjaGlsZCByZWdpc3Rlcl9uZXRkZXYgZmxvd3MgY2FuIGhhbmRsZSBwcml2X2Rlc3RydWN0b3JcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yMzE5LVxcdCAqIGJlaW5nIHNldCwgc28gd2UgZm9yY2UgaXQgdG8gTlVMTCBoZXJlIGFuZCBoYW5kbGUgbWFudWFsbHkgdW50aWwgaXRcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jPTIzMzQ9c3RydWN0IG5ldF9kZXZpY2UgKmlwb2liX2ludGZfYWxsb2Moc3RydWN0IGliX2RldmljZSAqaGNhLCB1MzIgcG9ydCxcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTIzNTEtXFx0ICogVXBvbiBzdWNjZXNzIHRoZSBjYWxsZXIgbXVzdCBlbnN1cmUgaXBvaWJfaW50Zl9mcmVlIGlzIGNhbGxlZCBvclxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jOjIzNTI6XFx0ICogcmVnaXN0ZXJfbmV0ZGV2aWNlIHN1Y2NlZWQnZCBhbmQgcHJpdl9kZXN0cnVjdG9yIGlzIHNldCB0b1xcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTIzNTMtXFx0ICogaXBvaWJfaW50Zl9mcmVlLlxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM9MjM1OD12b2lkIGlwb2liX2ludGZfZnJlZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjM2Ny1cXHQvKlxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jOjIzNjg6XFx0ICogVGhlcmUgYXJlIHNvbWUgZXJyb3IgZmxvd3MgYXJvdW5kIHJlZ2lzdGVyX25ldGRldiBmYWlsaW5nIHRoYXQgbWF5XFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjM2OS1cXHQgKiBhdHRlbXB0IHRvIGNhbGwgcHJpdl9kZXN0cnVjdG9yIHR3aWNlLCBwcmV2ZW50IHRoYXQgZnJvbSBoYXBwZW5pbmcuXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYz0yNTgzPXN0YXRpYyBzdHJ1Y3QgbmV0X2RldmljZSAqaXBvaWJfYWRkX3BvcnQoY29uc3QgY2hhciAqZm9ybWF0LFxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjYxMC1cXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYzoyNjExOlxcdHJlc3VsdCA9IHJlZ2lzdGVyX25ldGRldihuZGV2KTtcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNjEyLVxcdGlmIChyZXN1bHQpIHtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTI2MzEtXFx0LypcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYzoyNjMyOlxcdCAqIFdlIGNhbm5vdCBzZXQgcHJpdl9kZXN0cnVjdG9yIGJlZm9yZSByZWdpc3Rlcl9uZXRkZXYgYmVjYXVzZSB3ZVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTI2MzMtXFx0ICogbmVlZCBwcml2IHRvIGJlIGFsd2F5cyB2YWxpZCBkdXJpbmcgdGhlIGVycm9yIGZsb3cgdG8gZXhlY3V0ZVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjY1NS1cXHRpcG9pYl9wYXJlbnRfdW5yZWdpc3Rlcl9wcmUobmRldik7XFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM6MjY1NjpcXHR1bnJlZ2lzdGVyX25ldGRldihuZGV2KTtcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNjU3LVxcdHJldHVybiBFUlJfUFRSKC1FTk9NRU0pO1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM9MjY5ND1zdGF0aWMgdm9pZCBpcG9pYl9yZW1vdmVfb25lKHN0cnVjdCBpYl9kZXZpY2UgKmRldmljZSwgdm9pZCAqY2xpZW50X2RhdGEpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNzA3LVxcdFxcdFxcdFxcdFxcdCBsaXN0KVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jOjI3MDg6XFx0XFx0XFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2VfcXVldWUoY3ByaXYtXFx1MDAzZWRldiwgXFx1MDAyNmhlYWQpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTI3MDktXFx0XFx0bmV0ZGV2X3VubG9jayhwcml2LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jOjI3MTA6XFx0XFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2VfcXVldWUocHJpdi1cXHUwMDNlZGV2LCBcXHUwMDI2aGVhZCk7XFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM6MjcxMTpcXHRcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9tYW55KFxcdTAwMjZoZWFkKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNzEyLVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM9MjcyNT1zdGF0aWMgaW50IF9faW5pdCBpcG9pYl9pbml0X21vZHVsZSh2b2lkKVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjc3NS0jaWZkZWYgQ09ORklHX0lORklOSUJBTkRfSVBPSUJfREVCVUdcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYzoyNzc2OlxcdHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2aXBvaWJfbmV0ZGV2X25vdGlmaWVyKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNzc3LSNlbmRpZlxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM9Mjc5Mz1zdGF0aWMgdm9pZCBfX2V4aXQgaXBvaWJfY2xlYW51cF9tb2R1bGUodm9pZClcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTI3OTUtI2lmZGVmIENPTkZJR19JTkZJTklCQU5EX0lQT0lCX0RFQlVHXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM6Mjc5NjpcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2aXBvaWJfbmV0ZGV2X25vdGlmaWVyKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNzk3LSNlbmRpZlxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9uZXRsaW5rLmM9MTAwPXN0YXRpYyBpbnQgaXBvaWJfbmV3X2NoaWxkX2xpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbmV0bGluay5jLTE0NS1cXHRcXHRpZiAoZXJyKSB7XFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9uZXRsaW5rLmM6MTQ2OlxcdFxcdFxcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlKGRldik7XFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9uZXRsaW5rLmMtMTQ3LVxcdFxcdFxcdHJldHVybiBlcnI7XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX25ldGxpbmsuYz0xNTQ9c3RhdGljIHZvaWQgaXBvaWJfZGVsX2NoaWxkX2xpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGxpc3RfaGVhZCAqaGVhZClcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbmV0bGluay5jLTE2MC1cXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX25ldGxpbmsuYzoxNjE6XFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2VfcXVldWUoZGV2LCBoZWFkKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX25ldGxpbmsuYy0xNjItfVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmM9OTc9aW50IF9faXBvaWJfdmxhbl9hZGQoc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcHJpdiwgc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMTA0LVxcdC8qXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmM6MTA1OlxcdCAqIFdlIGRvIG5vdCBuZWVkIHRvIHRvdWNoIHByaXYgaWYgcmVnaXN0ZXJfbmV0ZGV2aWNlIGZhaWxzLCBzbyBqdXN0XFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMTA2LVxcdCAqIGFsd2F5cyB1c2UgdGhpcyBmbG93Llxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMTMxLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfdmxhbi5jOjEzMjpcXHRyZXN1bHQgPSByZWdpc3Rlcl9uZXRkZXZpY2UobmRldik7XFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMTMzLVxcdGlmIChyZXN1bHQpIHtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfdmxhbi5jLTEzNi1cXHRcXHQvKlxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfdmxhbi5jOjEzNzpcXHRcXHQgKiByZWdpc3Rlcl9uZXRkZXZpY2Ugc29tZXRpbWVzIGNhbGxzIHByaXZfZGVzdHJ1Y3RvcixcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYy0xMzgtXFx0XFx0ICogc29tZXRpbWVzIG5vdC4gTWFrZSBzdXJlIGl0IHdhcyBkb25lLlxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMTU4LXN5c2ZzX2ZhaWxlZDpcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYzoxNTk6XFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2UocHJpdi1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYy0xNjAtXFx0cmV0dXJuIC1FTk9NRU07XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYz0yMTU9c3RydWN0IGlwb2liX3ZsYW5fZGVsZXRlX3dvcmsge1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMjIxLSAqIHN5c2ZzIGNhbGxiYWNrcyBvZiBhIG5ldGRldmljZSBjYW5ub3Qgb2J0YWluIHRoZSBydG5sIGxvY2sgYXNcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYzoyMjI6ICogdW5yZWdpc3Rlcl9uZXRkZXYgdWx0aW1hdGVseSBkZWxldGVzIHRoZSBzeXNmcyBmaWxlcyB3aGlsZSBob2xkaW5nIHRoZSBydG5sXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMjIzLSAqIGxvY2suIFRoaXMgZGVhZGxvY2tzIHRoZSBzeXN0ZW0uXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYy0yMjUtICogQSBjYWxsYmFjayBjYW4gdXNlIHJ0bmxfdHJ5bG9jayB0byBhdm9pZCB0aGUgZGVhZGxvY2sgYnV0IGl0IGNhbm5vdCBjYWxsXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmM6MjI2OiAqIHVucmVnaXN0ZXJfbmV0ZGV2IGFzIHRoYXQgaW50ZXJuYWxseSB0YWtlcyBhbmQgcmVsZWFzZXMgdGhlIHJ0bmxfbG9jay4gIFNvXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMjI3LSAqIGluc3RlYWQgd2UgZmluZCB0aGUgbmV0ZGV2IHRvIHVucmVnaXN0ZXIgYW5kIHRoZW4gZG8gdGhlIGFjdHVhbCB1bnJlZ2lzdGVyXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYz0yMzA9c3RhdGljIHZvaWQgaXBvaWJfdmxhbl9kZWxldGVfdGFzayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYy0yNDMtXFx0XFx0aXBvaWJfZGJnKHBwcml2LCBcXFwiZGVsZXRlIGNoaWxkIHZsYW4gJXNcXFxcblxcXCIsIGRldi1cXHUwMDNlbmFtZSk7XFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmM6MjQ0OlxcdFxcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlKGRldik7XFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMjQ1LVxcdH1cXG4tLVxcbmRyaXZlcnMvbGVkcy90cmlnZ2VyL2xlZHRyaWctbmV0ZGV2LmM9NjkyPXN0YXRpYyBpbnQgbmV0ZGV2X3RyaWdfYWN0aXZhdGUoc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYpXFxuLS1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDg6MzMuMzg1MTk4NDcyWiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxNTI1MTkxMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBzdW1tYXJ5LCB0YWtpbmcgdGhlIHJvbGUgb2YgdGhlIGV4cGVydDpcblxuKipJbnZlc3RpZ2F0aW5nIGByZWdpc3Rlcl9uZXRkZXZgIGluIHRoZSB3aWxjMTAwMCBEcml2ZXIqKlxuXG5IbW0sIHNvbWV0aGluZydzIG5vdCBxdWl0ZSByaWdodC4gSSBjb3VsZCBoYXZlIHN3b3JuIEkgc2F3IGEgcmVmZXJlbmNlIHRvIGByZWdpc3Rlcl9uZXRkZXZgIHdoZW4gZ2xhbmNpbmcgdGhyb3VnaCB0aGUgYHdpbGMxMDAwYCBkcml2ZXIgY29kZSwgc3BlY2lmaWNhbGx5IGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmNgLiBCdXQgdGhlIGluaXRpYWwgYGdyZXBgIGRpZG4ndCB0dXJuIGl0IHVwLiBUaGF0J3Mgc3RyYW5nZS4gUGVyaGFwcyBteSBtZW1vcnkgaXMgZmF1bHR5LCBvciBtYXliZSB0aGUgZmlyc3Qgc2VhcmNoIG1pc3NlZCBzb21ldGhpbmcuXG5cbkxldCdzIHRyeSBhIG1vcmUgZm9jdXNlZCBhcHByb2FjaC4gSW5zdGVhZCBvZiBzZWFyY2hpbmcgdGhlIHdob2xlIGtlcm5lbCB0cmVlLCBJJ2xsIHJlc3RyaWN0IHRoZSBgZ3JlcGAgdG8ganVzdCB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9gIGRpcmVjdG9yeS4gVGhhdCBzaG91bGQgaXNvbGF0ZSB0aGUgc2VhcmNoIHRvIHRoZSByZWxldmFudCBmaWxlcyBhbmQgaG9wZWZ1bGx5IGNsZWFyIHVwIHRoaXMgbWlub3IgZGlzY3JlcGFuY3kuIFRoaXMgc2hvdWxkIGhlbHAgbWUgY29uZmlybSB3aGV0aGVyIGByZWdpc3Rlcl9uZXRkZXZgIGlzIGFjdHVhbGx5IHVzZWQgd2l0aGluIHRoaXMgc3BlY2lmaWMgZHJpdmVyJ3Mgc291cmNlIGNvZGUsIGFuZCBpZiBzbywgd2hlcmUgYW5kIGhvdy4gSXQncyBpbXBvcnRhbnQgdG8gYmUgcHJlY2lzZSB3aGVuIGRlYWxpbmcgd2l0aCBuZXRkZXYgcmVnaXN0cmF0aW9uLCBlc3BlY2lhbGx5IGluIGEgd2lyZWxlc3MgY29udGV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDU0ODUsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowODozNy41Mzc3MTk5NDhaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNjQzMTg4NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJyZWdpc3Rlcl9uZXRkZXZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz0xNTkyPXN0YXRpYyBpbnQgZGVsX3ZpcnR1YWxfaW50ZihzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTYwMS1cXHRjZmc4MDIxMV9zdG9wX2lmYWNlKHdpcGh5LCB3ZGV2LCBHRlBfS0VSTkVMKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxNjAyOlxcdGNmZzgwMjExX3VucmVnaXN0ZXJfbmV0ZGV2aWNlKHZpZi1cXHUwMDNlbmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTYwMy1cXHR2aWYtXFx1MDAzZW1vbml0b3JfZmxhZyA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmM9MjM3PXN0cnVjdCBuZXRfZGV2aWNlICp3aWxjX3dmaV9pbml0X21vbl9pbnRlcmZhY2Uoc3RydWN0IHdpbGMgKndsLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jLTI1NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmM6MjU2OlxcdGlmIChyZWdpc3Rlcl9uZXRkZXZpY2Uod2wtXFx1MDAzZW1vbml0b3JfZGV2KSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYzoyNTc6XFx0XFx0bmV0ZGV2X2VycihyZWFsX2RldiwgXFxcInJlZ2lzdGVyX25ldGRldmljZSBmYWlsZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYy0yNTgtXFx0XFx0ZnJlZV9uZXRkZXYod2wtXFx1MDAzZW1vbml0b3JfZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYz0yNjg9dm9pZCB3aWxjX3dmaV9kZWluaXRfbW9uX2ludGVyZmFjZShzdHJ1Y3Qgd2lsYyAqd2wsIGJvb2wgcnRubF9sb2NrZWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMjczLVxcdGlmIChydG5sX2xvY2tlZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmM6Mjc0OlxcdFxcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlKHdsLVxcdTAwM2Vtb25pdG9yX2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jLTI3NS1cXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jOjI3NjpcXHRcXHR1bnJlZ2lzdGVyX25ldGRldih3bC1cXHUwMDNlbW9uaXRvcl9kZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYy0yNzctXFx0d2wtXFx1MDAzZW1vbml0b3JfZGV2ID0gTlVMTDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz05MDE9dm9pZCB3aWxjX25ldGRldl9jbGVhbnVwKHN0cnVjdCB3aWxjICp3aWxjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTkxOS1cXHRcXHRpZiAodmlmLVxcdTAwM2VuZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo5MjA6XFx0XFx0XFx0dW5yZWdpc3Rlcl9uZXRkZXYodmlmLVxcdTAwM2VuZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtOTIxLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz05NDg9c3RydWN0IHdpbGNfdmlmICp3aWxjX25ldGRldl9pZmNfaW5pdChzdHJ1Y3Qgd2lsYyAqd2wsIGNvbnN0IGNoYXIgKm5hbWUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtOTk5LVxcdGlmIChydG5sX2xvY2tlZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6MTAwMDpcXHRcXHRyZXQgPSBjZmc4MDIxMV9yZWdpc3Rlcl9uZXRkZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTEwMDEtXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzoxMDAyOlxcdFxcdHJldCA9IHJlZ2lzdGVyX25ldGRldihuZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMTAwMy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDg6MzcuNjQ0MTU2MTI1WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyNzc0OTUyMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIE5ldHdvcmsgRGV2aWNlIEluaXRpYWxpemF0aW9uKipcblxuUmlnaHQsIHNvIGB3aWxjX25ldGRldl9pZmNfaW5pdGDigKYgdGhhdCBmdW5jdGlvbiBjYWxscyBgcmVnaXN0ZXJfbmV0ZGV2YC4gIENsYXNzaWMgbmV0d29yayBkZXZpY2Ugc2V0dXAuICBHb3R0YSBiZSBjYXJlZnVsIGFib3V0IHdoZXJlIHRoYXQncyBoYXBwZW5pbmcsIGVzcGVjaWFsbHkgd2l0aCBjdXN0b20gZHJpdmVyIGltcGxlbWVudGF0aW9ucy4gSSdtIHdvbmRlcmluZyB3aGF0IGlzIGNhbGxpbmcgYHdpbGNfbmV0ZGV2X2lmY19pbml0YCBpbiB0aGUgZmlyc3QgcGxhY2UuIE5lZWQgdG8gdHJhY2UgaXRzIGNhbGwgc3RhY2sgdG8gdW5kZXJzdGFuZCB0aGUgYnJvYWRlciBpbml0aWFsaXphdGlvbiBmbG93IGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSBwb3RlbnRpYWwgY29uZmxpY3RzIG9yIGRlcGVuZGVuY2llcy4gR290dGEgc2VlIHdoYXQncyBzZXR0aW5nIHRoaW5ncyB1cCBmb3IgdGhlIGRldmljZSByZWdpc3RyYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2ODg2LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDg6NDAuOTIxNjU0OTQxWiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDEwMTI4MzgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwid2lsY19uZXRkZXZfaWZjX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz0xNTIyPXN0YXRpYyBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICphZGRfdmlydHVhbF9pbnRmKHN0cnVjdCB3aXBoeSAqd2lwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xNTg0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjE1ODU6XFx0dmlmID0gd2lsY19uZXRkZXZfaWZjX2luaXQod2wsIG5hbWUsIGlmdHlwZSwgdHlwZSwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTU4Ni1cXHRpZiAoSVNfRVJSKHZpZikpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM9OTMxPXN0YXRpYyB1OCB3aWxjX2dldF9hdmFpbGFibGVfaWR4KHN0cnVjdCB3aWxjICp3bClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy05NDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjk0ODpzdHJ1Y3Qgd2lsY192aWYgKndpbGNfbmV0ZGV2X2lmY19pbml0KHN0cnVjdCB3aWxjICp3bCwgY29uc3QgY2hhciAqbmFtZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtOTQ5LVxcdFxcdFxcdFxcdCAgICAgIGludCB2aWZfdHlwZSwgZW51bSBubDgwMjExX2lmdHlwZSB0eXBlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTEwMTktfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzoxMDIwOkVYUE9SVF9TWU1CT0xfR1BMKHdpbGNfbmV0ZGV2X2lmY19pbml0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMTAyMS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuaD0zMDA9dm9pZCB3aWxjX3dsYW5fc2V0X2Jzc2lkKHN0cnVjdCBuZXRfZGV2aWNlICp3aWxjX25ldGRldiwgY29uc3QgdTggKmJzc2lkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuaC0zMDEtXFx0XFx0XFx0IHU4IG1vZGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuaDozMDI6c3RydWN0IHdpbGNfdmlmICp3aWxjX25ldGRldl9pZmNfaW5pdChzdHJ1Y3Qgd2lsYyAqd2wsIGNvbnN0IGNoYXIgKm5hbWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5oLTMwMy1cXHRcXHRcXHRcXHQgICAgICBpbnQgdmlmX3R5cGUsIGVudW0gbmw4MDIxMV9pZnR5cGUgdHlwZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM9MTM5PXN0YXRpYyBpbnQgd2lsY19zZGlvX3Byb2JlKHN0cnVjdCBzZGlvX2Z1bmMgKmZ1bmMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTIwMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jOjIwMTpcXHR2aWYgPSB3aWxjX25ldGRldl9pZmNfaW5pdCh3aWxjLCBcXFwid2xhbiVkXFxcIiwgV0lMQ19TVEFUSU9OX01PREUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy0yMDItXFx0XFx0XFx0XFx0ICAgTkw4MDIxMV9JRlRZUEVfU1RBVElPTiwgZmFsc2UpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jPTIwNz1zdGF0aWMgaW50IHdpbGNfYnVzX3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmMtMjYyLVxcdHdpbGNfd2xhbl9wb3dlcih3aWxjLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jOjI2MzpcXHR2aWYgPSB3aWxjX25ldGRldl9pZmNfaW5pdCh3aWxjLCBcXFwid2xhbiVkXFxcIiwgV0lMQ19TVEFUSU9OX01PREUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTI2NC1cXHRcXHRcXHRcXHQgICBOTDgwMjExX0lGVFlQRV9TVEFUSU9OLCBmYWxzZSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA4OjQxLjAyMjY3NDg0OVoiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4NDUyMjkzNzEwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUmVhY2hhYmlsaXR5IG9mIGB3aWxjX25ldGRldl9pZmNfaW5pdGAgaW4gU3l6a2FsbGVyKipcblxuT2theSwgc28gYHdpbGNfbmV0ZGV2X2lmY19pbml0YCBpcyBjYWxsZWQgZnJvbSBgd2lsY19zZGlvX3Byb2JlYCBhbmQgYHdpbGNfYnVzX3Byb2JlYCwgbWVhbmluZyB0aGUgZHJpdmVyJ3MgaW5pdGlhbGl6YXRpb24gaGluZ2VzIG9uIGVpdGhlciBhbiBTRElPIG9yIFNQSSBwcm9iZS4gVGhlIGNydWNpYWwgcXVlc3Rpb24gaXMsIGNhbiBTeXprYWxsZXIgdHJpZ2dlciB0aGVzZSBwcm9iZXM/IFVuZm9ydHVuYXRlbHksIFN5emthbGxlciBkb2Vzbid0IGhhdmUgZGlyZWN0IGZ1bmN0aW9ucyBsaWtlIGBzeXpfc2Rpb19jb25uZWN0YCBvciBgc3l6X3NwaV9jb25uZWN0YCBmb3IgaW5qZWN0aW5nIFNESU8gb3IgU1BJIGRldmljZXMgZ2VuZXJpY2FsbHkuIEJ1dCB3YWl0LCBpdCAqZG9lcyogaGF2ZSBgc3l6X3NwaV9zZXR1cGAsIHdoaWNoIGlzIGEgcG90ZW50aWFsIHBhdGh3YXkuXG5cbkhvd2V2ZXIsIGJhc2VkIG9uIHRoZSBwcm9tcHQncyBpbnN0cnVjdGlvbnMsIEkgY2FuJ3QgcmVseSBvbiBteSBwcmlvciBrbm93bGVkZ2Ugb3IgZXh0ZXJuYWwgdG9vbHMgKGxpa2UgY2hlY2tpbmcgYGRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmNgKS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0byBvbmx5IHVzZSB0b29scyBwcm92aWRlZCB0byBtZSB0byBleGFtaW5lIHRoZSBjb2RlLlxuXG5UaGUgcHJvbXB0IHNwZWNpZmljYWxseSBtZW50aW9ucyB0aGF0IGNoYW5nZXMgYXJlIGFscmVhZHkgYXBwbGllZC4gVGhlcmVmb3JlLCBpZiBTeXprYWxsZXIgKmRpZCogZmluZCBhIGJ1ZywgaXQgaW1wbGllcyByZWFjaGFiaWxpdHkuIEhvd2V2ZXIsIHRoZSBwcm9tcHQgYWxzbyBzYXlzIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aXRoIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLlxuXG5TaW5jZSB0aGlzIGlzIGFuIFNESU8vU1BJIGRyaXZlciBmb3IgdGhlIFdJTEMxMDAwLCBhbmQgUUVNVSBkb2Vzbid0IGVtdWxhdGUgdGhlIFdJTEMxMDAwIGhhcmR3YXJlLCBhbmQgdGhlcmUncyBubyBzb2Z0d2FyZS1lbXVsYXRlZCBlcXVpdmFsZW50IChsaWtlIG1hYzgwMjExX2h3c2ltIG9yIHVzYiBnYWRnZXQpLCBpdCBzZWVtcyB0aGUgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIHNldHVwcy5cblxuQWx0aG91Z2ggeW91IGNhbiBpbnN0YW50aWF0ZSBhbiBTUEkgZGV2aWNlIHZpYSBzeXNmcywgdGhlIGB3aWxjX2J1c19wcm9iZWAgZnVuY3Rpb24gKGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmNgKSB3aWxsIHRyeSB0byB0YWxrIHRvIHRoZSBoYXJkd2FyZS4gVGhlcmVmb3JlLCB0aGUgcHJvYmUgZnVuY3Rpb24gd291bGQgYmUgdW5hYmxlIHRvIGNvbW11bmljYXRlIHdpdGggaGFyZHdhcmUuIENvbnNlcXVlbnRseSwgdGhlIGluaXRpYWxpemF0aW9uIHdvdWxkIGZhaWwuIFNvIEknZCBuZWVkIHRvIGNvbnNpZGVyIHRoYXQgdGhlIGNvZGUgd2lsbCBiZSB1bnJlYWNoYWJsZSBhbmQgcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0ODEyNiwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUzNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowODo0OS40NzQ5NzMxNDlaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc5OTI5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyMDcsXG4gIFwiTGluZUNvdW50XCI6IDEwMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMjA3OlxcdHN0YXRpYyBpbnQgd2lsY19idXNfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcXG4gMjA4OlxcdHtcXG4gMjA5OlxcdFxcdHN0cnVjdCB3aWxjX3NwaSAqc3BpX3ByaXY7XFxuIDIxMDpcXHRcXHRzdHJ1Y3Qgd2lsY192aWYgKnZpZjtcXG4gMjExOlxcdFxcdHN0cnVjdCB3aWxjICp3aWxjO1xcbiAyMTI6XFx0XFx0aW50IHJldDtcXG4gMjEzOlxcdFxcbiAyMTQ6XFx0XFx0c3BpX3ByaXYgPSBremFsbG9jX29iaigqc3BpX3ByaXYpO1xcbiAyMTU6XFx0XFx0aWYgKCFzcGlfcHJpdilcXG4gMjE2OlxcdFxcdFxcdHJldHVybiAtRU5PTUVNO1xcbiAyMTc6XFx0XFxuIDIxODpcXHRcXHRyZXQgPSB3aWxjX2NmZzgwMjExX2luaXQoXFx1MDAyNndpbGMsIFxcdTAwMjZzcGktXFx1MDAzZWRldiwgV0lMQ19ISUZfU1BJLCBcXHUwMDI2d2lsY19oaWZfc3BpKTtcXG4gMjE5OlxcdFxcdGlmIChyZXQpXFxuIDIyMDpcXHRcXHRcXHRnb3RvIGZyZWU7XFxuIDIyMTpcXHRcXG4gMjIyOlxcdFxcdHNwaV9zZXRfZHJ2ZGF0YShzcGksIHdpbGMpO1xcbiAyMjM6XFx0XFx0d2lsYy1cXHUwMDNlZGV2ID0gXFx1MDAyNnNwaS1cXHUwMDNlZGV2O1xcbiAyMjQ6XFx0XFx0d2lsYy1cXHUwMDNlYnVzX2RhdGEgPSBzcGlfcHJpdjtcXG4gMjI1OlxcdFxcdHdpbGMtXFx1MDAzZWRldl9pcnFfbnVtID0gc3BpLVxcdTAwM2VpcnE7XFxuIDIyNjpcXHRcXG4gMjI3OlxcdFxcdHJldCA9IHdpbGNfcGFyc2VfZ3Bpb3Mod2lsYyk7XFxuIDIyODpcXHRcXHRpZiAocmV0IFxcdTAwM2MgMClcXG4gMjI5OlxcdFxcdFxcdGdvdG8gbmV0ZGV2X2NsZWFudXA7XFxuIDIzMDpcXHRcXG4gMjMxOlxcdFxcdHdpbGMtXFx1MDAzZXJ0Y19jbGsgPSBkZXZtX2Nsa19nZXRfb3B0aW9uYWxfZW5hYmxlZChcXHUwMDI2c3BpLVxcdTAwM2VkZXYsIFxcXCJydGNcXFwiKTtcXG4gMjMyOlxcdFxcdGlmIChJU19FUlIod2lsYy1cXHUwMDNlcnRjX2NsaykpIHtcXG4gMjMzOlxcdFxcdFxcdHJldCA9IFBUUl9FUlIod2lsYy1cXHUwMDNlcnRjX2Nsayk7XFxuIDIzNDpcXHRcXHRcXHRnb3RvIG5ldGRldl9jbGVhbnVwO1xcbiAyMzU6XFx0XFx0fVxcbiAyMzY6XFx0XFxuIDIzNzpcXHRcXHRkZXZfaW5mbyhcXHUwMDI2c3BpLVxcdTAwM2VkZXYsIFxcXCJTZWxlY3RlZCBDUkMgY29uZmlnOiBjcmM3PSVzLCBjcmMxNj0lc1xcXFxuXFxcIixcXG4gMjM4OlxcdFxcdFxcdCBlbmFibGVfY3JjNyA/IFxcXCJvblxcXCIgOiBcXFwib2ZmXFxcIiwgZW5hYmxlX2NyYzE2ID8gXFxcIm9uXFxcIiA6IFxcXCJvZmZcXFwiKTtcXG4gMjM5OlxcdFxcbiAyNDA6XFx0XFx0Lyogd2UgbmVlZCBwb3dlciB0byBjb25maWd1cmUgdGhlIGJ1cyBwcm90b2NvbCBhbmQgdG8gcmVhZCB0aGUgY2hpcCBpZDogKi9cXG4gMjQxOlxcdFxcbiAyNDI6XFx0XFx0d2lsY193bGFuX3Bvd2VyKHdpbGMsIHRydWUpO1xcbiAyNDM6XFx0XFxuIDI0NDpcXHRcXHRyZXQgPSB3aWxjX3NwaV9jb25maWd1cmVfYnVzX3Byb3RvY29sKHdpbGMpO1xcbiAyNDU6XFx0XFx0aWYgKHJldClcXG4gMjQ2OlxcdFxcdFxcdGdvdG8gcG93ZXJfZG93bjtcXG4gMjQ3OlxcdFxcbiAyNDg6XFx0XFx0cmV0ID0gd2lsY19nZXRfY2hpcGlkKHdpbGMpO1xcbiAyNDk6XFx0XFx0aWYgKHJldClcXG4gMjUwOlxcdFxcdFxcdGdvdG8gcG93ZXJfZG93bjtcXG4gMjUxOlxcdFxcbiAyNTI6XFx0XFx0cmV0ID0gd2lsY19jZmc4MDIxMV9yZWdpc3Rlcih3aWxjKTtcXG4gMjUzOlxcdFxcdGlmIChyZXQpXFxuIDI1NDpcXHRcXHRcXHRnb3RvIHBvd2VyX2Rvd247XFxuIDI1NTpcXHRcXG4gMjU2OlxcdFxcdHJldCA9IHdpbGNfbG9hZF9tYWNfZnJvbV9udih3aWxjKTtcXG4gMjU3OlxcdFxcdGlmIChyZXQpIHtcXG4gMjU4OlxcdFxcdFxcdHByX2VycihcXFwiQ2FuIG5vdCByZXRyaWV2ZSBNQUMgYWRkcmVzcyBmcm9tIGNoaXBcXFxcblxcXCIpO1xcbiAyNTk6XFx0XFx0XFx0Z290byB1bnJlZ2lzdGVyX3dpcGh5O1xcbiAyNjA6XFx0XFx0fVxcbiAyNjE6XFx0XFxuIDI2MjpcXHRcXHR3aWxjX3dsYW5fcG93ZXIod2lsYywgZmFsc2UpO1xcbiAyNjM6XFx0XFx0dmlmID0gd2lsY19uZXRkZXZfaWZjX2luaXQod2lsYywgXFxcIndsYW4lZFxcXCIsIFdJTENfU1RBVElPTl9NT0RFLFxcbiAyNjQ6XFx0XFx0XFx0XFx0XFx0ICAgTkw4MDIxMV9JRlRZUEVfU1RBVElPTiwgZmFsc2UpO1xcbiAyNjU6XFx0XFx0aWYgKElTX0VSUih2aWYpKSB7XFxuIDI2NjpcXHRcXHRcXHRyZXQgPSBQVFJfRVJSKHZpZik7XFxuIDI2NzpcXHRcXHRcXHRnb3RvIHVucmVnaXN0ZXJfd2lwaHk7XFxuIDI2ODpcXHRcXHR9XFxuIDI2OTpcXHRcXHRyZXR1cm4gMDtcXG4gMjcwOlxcdFxcbiAyNzE6XFx0dW5yZWdpc3Rlcl93aXBoeTpcXG4gMjcyOlxcdFxcdHdpcGh5X3VucmVnaXN0ZXIod2lsYy1cXHUwMDNld2lwaHkpO1xcbiAyNzM6XFx0cG93ZXJfZG93bjpcXG4gMjc0OlxcdFxcdHdpbGNfd2xhbl9wb3dlcih3aWxjLCBmYWxzZSk7XFxuIDI3NTpcXHRuZXRkZXZfY2xlYW51cDpcXG4gMjc2OlxcdFxcdHdpbGNfbmV0ZGV2X2NsZWFudXAod2lsYyk7XFxuIDI3NzpcXHRcXHR3aXBoeV9mcmVlKHdpbGMtXFx1MDAzZXdpcGh5KTtcXG4gMjc4OlxcdGZyZWU6XFxuIDI3OTpcXHRcXHRrZnJlZShzcGlfcHJpdik7XFxuIDI4MDpcXHRcXHRyZXR1cm4gcmV0O1xcbiAyODE6XFx0fVxcbiAyODI6XFx0XFxuIDI4MzpcXHRzdGF0aWMgdm9pZCB3aWxjX2J1c19yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcXG4gMjg0OlxcdHtcXG4gMjg1OlxcdFxcdHN0cnVjdCB3aWxjICp3aWxjID0gc3BpX2dldF9kcnZkYXRhKHNwaSk7XFxuIDI4NjpcXHRcXHRzdHJ1Y3Qgd2lsY19zcGkgKnNwaV9wcml2ID0gd2lsYy1cXHUwMDNlYnVzX2RhdGE7XFxuIDI4NzpcXHRcXG4gMjg4OlxcdFxcdHdpbGNfbmV0ZGV2X2NsZWFudXAod2lsYyk7XFxuIDI4OTpcXHRcXHR3aXBoeV91bnJlZ2lzdGVyKHdpbGMtXFx1MDAzZXdpcGh5KTtcXG4gMjkwOlxcdFxcdHdpcGh5X2ZyZWUod2lsYy1cXHUwMDNld2lwaHkpO1xcbiAyOTE6XFx0XFx0a2ZyZWUoc3BpX3ByaXYpO1xcbiAyOTI6XFx0fVxcbiAyOTM6XFx0XFxuIDI5NDpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB3aWxjX29mX21hdGNoW10gPSB7XFxuIDI5NTpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1pY3JvY2hpcCx3aWxjMTAwMFxcXCIsIH0sXFxuIDI5NjpcXHRcXHR7IC8qIHNlbnRpbmVsICovIH1cXG4gMjk3OlxcdH07XFxuIDI5ODpcXHRNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCB3aWxjX29mX21hdGNoKTtcXG4gMjk5OlxcdFxcbiAzMDA6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBzcGlfZGV2aWNlX2lkIHdpbGNfc3BpX2lkW10gPSB7XFxuIDMwMTpcXHRcXHR7IFxcXCJ3aWxjMTAwMFxcXCIsIDAgfSxcXG4gMzAyOlxcdFxcdHsgLyogc2VudGluZWwgKi8gfVxcbiAzMDM6XFx0fTtcXG4gMzA0OlxcdE1PRFVMRV9ERVZJQ0VfVEFCTEUoc3BpLCB3aWxjX3NwaV9pZCk7XFxuIDMwNTpcXHRcXG4gMzA2OlxcdHN0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciB3aWxjX3NwaV9kcml2ZXIgPSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA4OjQ5LjQ3NTE1NjQzOVoiLCJTZXEiOjI5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDI1MTE0ODk3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkluaXRpYWwgSGFyZHdhcmUgVmFsaWRhdGlvbioqXG5cbk9rYXksIHNvIHRoZSBmaXJzdCB0aGluZ3MgdGhpcyBjb2RlIGJsb2NrIGRvZXMgYXJlIGEgY2FsbCB0byBgd2lsY19zcGlfY29uZmlndXJlX2J1c19wcm90b2NvbCh3aWxjKWAgYW5kIHRoZW4gYSBjYWxsIHRvIGB3aWxjX2dldF9jaGlwaWQod2lsYylgLiBSaWdodCBhd2F5LCBteSBleHBlcnQgaW50dWl0aW9uIHRlbGxzIG1lIHRoYXQgdGhpcyBpcyBsaWtlbHkgYSBoYXJkd2FyZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZS4gYHdpbGNfZ2V0X2NoaXBpZCh3aWxjKWAgaXMgdGhlIGNyaXRpY2FsIGZ1bmN0aW9uIGhlcmU7IGlmIHRoZSBoYXJkd2FyZSBpc24ndCBwcmVzZW50IG9yIGZ1bmN0aW9uaW5nLCB0aGF0IGNhbGwgKndpbGwqIGZhaWwuIElmIGl0IGZhaWxzLCB0aGF0IG1lYW5zIHdlIGhhdmVuJ3QgZXZlbiBnb3QgdGhlIHJpZ2h0IGNoaXAgSUQuIFRoYXQgd2lsbCB0cmlnZ2VyIHRoZSByZXR1cm4gb2YgYW4gZXJyb3IuIENvbnNlcXVlbnRseSwgdGhlIGNvcmUgbmV0d29yayBpbnRlcmZhY2UgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24sIGB3aWxjX25ldGRldl9pZmNfaW5pdGAsIHdpbGwgbmV2ZXIgZ2V0IGV4ZWN1dGVkIHdoaWNoIGlzIGV4YWN0bHkgd2hhdCB3ZSB3YW50LiBJIG5lZWQgdG8gdGFrZSBhIGNsb3NlciBsb29rIGF0IGB3aWxjX2dldF9jaGlwaWRgIHRvIHVuZGVyc3RhbmQgaG93IGl0IGRldGVybWluZXMgY2hpcCBwcmVzZW5jZSBhbmQgd2hldGhlciB0aGUgU1BJIGludGVyZmFjZSBpcyBvcGVyYXRpb25hbCwgYXMgdGhhdCdzIHdoZXJlIHRoZSBydWJiZXIgbWVldHMgdGhlIHJvYWQuIEknbGwgZm9jdXMgb24gdGhhdCBmdW5jdGlvbidzIGltcGxlbWVudGF0aW9uIG5leHQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUwNjkyLCJPdXRwdXRUb2tlbnMiOjUwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTIsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowODo1My45MDAyNzUyNTVaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk0MTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMTU5MSxcbiAgXCJMaW5lQ291bnRcIjogMTAwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjE1OTE6XFx0aW50IHdpbGNfZ2V0X2NoaXBpZChzdHJ1Y3Qgd2lsYyAqd2lsYylcXG4xNTkyOlxcdHtcXG4xNTkzOlxcdFxcdHUzMiBjaGlwaWQgPSAwO1xcbjE1OTQ6XFx0XFx0dTMyIHJmcmV2aWQgPSAwO1xcbjE1OTU6XFx0XFxuMTU5NjpcXHRcXHRpZiAod2lsYy1cXHUwMDNlY2hpcGlkID09IDApIHtcXG4xNTk3OlxcdFxcdFxcdHdpbGMtXFx1MDAzZWhpZl9mdW5jLVxcdTAwM2VoaWZfcmVhZF9yZWcod2lsYywgV0lMQzMwMDBfQ0hJUF9JRCwgXFx1MDAyNmNoaXBpZCk7XFxuMTU5ODpcXHRcXHRcXHRpZiAoIWlzX3dpbGMzMDAwKGNoaXBpZCkpIHtcXG4xNTk5OlxcdFxcdFxcdFxcdHdpbGMtXFx1MDAzZWhpZl9mdW5jLVxcdTAwM2VoaWZfcmVhZF9yZWcod2lsYywgV0lMQ19DSElQSUQsIFxcdTAwMjZjaGlwaWQpO1xcbjE2MDA6XFx0XFx0XFx0XFx0d2lsYy1cXHUwMDNlaGlmX2Z1bmMtXFx1MDAzZWhpZl9yZWFkX3JlZyh3aWxjLCBXSUxDX1JGX1JFVklTSU9OX0lELFxcbjE2MDE6XFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgICBcXHUwMDI2cmZyZXZpZCk7XFxuMTYwMjpcXHRcXG4xNjAzOlxcdFxcdFxcdFxcdGlmICghaXNfd2lsYzEwMDAoY2hpcGlkKSkge1xcbjE2MDQ6XFx0XFx0XFx0XFx0XFx0d2lsYy1cXHUwMDNlY2hpcGlkID0gMDtcXG4xNjA1OlxcdFxcdFxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbjE2MDY6XFx0XFx0XFx0XFx0fVxcbjE2MDc6XFx0XFx0XFx0XFx0aWYgKGNoaXBpZCA9PSBXSUxDXzEwMDBfQkFTRV9JRF8yQSkgeyAvKiAweDEwMDJBMCAqL1xcbjE2MDg6XFx0XFx0XFx0XFx0XFx0aWYgKHJmcmV2aWQgIT0gMHgxKVxcbjE2MDk6XFx0XFx0XFx0XFx0XFx0XFx0Y2hpcGlkID0gV0lMQ18xMDAwX0JBU0VfSURfMkFfUkVWMTtcXG4xNjEwOlxcdFxcdFxcdFxcdH0gZWxzZSBpZiAoY2hpcGlkID09IFdJTENfMTAwMF9CQVNFX0lEXzJCKSB7IC8qIDB4MTAwMkIwICovXFxuMTYxMTpcXHRcXHRcXHRcXHRcXHRpZiAocmZyZXZpZCA9PSAweDQpXFxuMTYxMjpcXHRcXHRcXHRcXHRcXHRcXHRjaGlwaWQgPSBXSUxDXzEwMDBfQkFTRV9JRF8yQl9SRVYxO1xcbjE2MTM6XFx0XFx0XFx0XFx0XFx0ZWxzZSBpZiAocmZyZXZpZCAhPSAweDMpXFxuMTYxNDpcXHRcXHRcXHRcXHRcXHRcXHRjaGlwaWQgPSBXSUxDXzEwMDBfQkFTRV9JRF8yQl9SRVYyO1xcbjE2MTU6XFx0XFx0XFx0XFx0fVxcbjE2MTY6XFx0XFx0XFx0fVxcbjE2MTc6XFx0XFxuMTYxODpcXHRcXHRcXHR3aWxjLVxcdTAwM2VjaGlwaWQgPSBjaGlwaWQ7XFxuMTYxOTpcXHRcXHR9XFxuMTYyMDpcXHRcXG4xNjIxOlxcdFxcdHJldHVybiAwO1xcbjE2MjI6XFx0fVxcbjE2MjM6XFx0RVhQT1JUX1NZTUJPTF9HUEwod2lsY19nZXRfY2hpcGlkKTtcXG4xNjI0OlxcdFxcbjE2MjU6XFx0c3RhdGljIGludCBpbml0X2NoaXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4xNjI2OlxcdHtcXG4xNjI3OlxcdFxcdHUzMiByZWc7XFxuMTYyODpcXHRcXHRpbnQgcmV0LCBydjtcXG4xNjI5OlxcdFxcdHN0cnVjdCB3aWxjX3ZpZiAqdmlmID0gbmV0ZGV2X3ByaXYoZGV2KTtcXG4xNjMwOlxcdFxcdHN0cnVjdCB3aWxjICp3aWxjID0gdmlmLVxcdTAwM2V3aWxjO1xcbjE2MzE6XFx0XFxuMTYzMjpcXHRcXHRyZXQgPSBhY3F1aXJlX2J1cyh3aWxjLCBXSUxDX0JVU19BQ1FVSVJFX0FORF9XQUtFVVApO1xcbjE2MzM6XFx0XFx0aWYgKHJldClcXG4xNjM0OlxcdFxcdFxcdHJldHVybiByZXQ7XFxuMTYzNTpcXHRcXG4xNjM2OlxcdFxcdHJldCA9IHdpbGNfZ2V0X2NoaXBpZCh3aWxjKTtcXG4xNjM3OlxcdFxcdGlmIChyZXQpXFxuMTYzODpcXHRcXHRcXHRnb3RvIHJlbGVhc2U7XFxuMTYzOTpcXHRcXG4xNjQwOlxcdFxcdGlmICgod2lsYy1cXHUwMDNlY2hpcGlkIFxcdTAwMjYgMHhmZmYpICE9IDB4YTApIHtcXG4xNjQxOlxcdFxcdFxcdHJldCA9IHdpbGMtXFx1MDAzZWhpZl9mdW5jLVxcdTAwM2VoaWZfcmVhZF9yZWcod2lsYyxcXG4xNjQyOlxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgIFdJTENfQ09SVFVTX1JFU0VUX01VWF9TRUwsXFxuMTY0MzpcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2cmVnKTtcXG4xNjQ0OlxcdFxcdFxcdGlmIChyZXQpIHtcXG4xNjQ1OlxcdFxcdFxcdFxcdG5ldGRldl9lcnIoZGV2LCBcXFwiZmFpbCByZWFkIHJlZyAweDExMThcXFxcblxcXCIpO1xcbjE2NDY6XFx0XFx0XFx0XFx0Z290byByZWxlYXNlO1xcbjE2NDc6XFx0XFx0XFx0fVxcbjE2NDg6XFx0XFx0XFx0cmVnIHw9IEJJVCgwKTtcXG4xNjQ5OlxcdFxcdFxcdHJldCA9IHdpbGMtXFx1MDAzZWhpZl9mdW5jLVxcdTAwM2VoaWZfd3JpdGVfcmVnKHdpbGMsXFxuMTY1MDpcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgV0lMQ19DT1JUVVNfUkVTRVRfTVVYX1NFTCxcXG4xNjUxOlxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICByZWcpO1xcbjE2NTI6XFx0XFx0XFx0aWYgKHJldCkge1xcbjE2NTM6XFx0XFx0XFx0XFx0bmV0ZGV2X2VycihkZXYsIFxcXCJmYWlsIHdyaXRlIHJlZyAweDExMThcXFxcblxcXCIpO1xcbjE2NTQ6XFx0XFx0XFx0XFx0Z290byByZWxlYXNlO1xcbjE2NTU6XFx0XFx0XFx0fVxcbjE2NTY6XFx0XFx0XFx0cmV0ID0gd2lsYy1cXHUwMDNlaGlmX2Z1bmMtXFx1MDAzZWhpZl93cml0ZV9yZWcod2lsYyxcXG4xNjU3OlxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICBXSUxDX0NPUlRVU19CT09UX1JFR0lTVEVSLFxcbjE2NTg6XFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgIFdJTENfQ09SVFVTX0JPT1RfRlJPTV9JUkFNKTtcXG4xNjU5OlxcdFxcdFxcdGlmIChyZXQpIHtcXG4xNjYwOlxcdFxcdFxcdFxcdG5ldGRldl9lcnIoZGV2LCBcXFwiZmFpbCB3cml0ZSByZWcgMHhjMDAwMFxcXFxuXFxcIik7XFxuMTY2MTpcXHRcXHRcXHRcXHRnb3RvIHJlbGVhc2U7XFxuMTY2MjpcXHRcXHRcXHR9XFxuMTY2MzpcXHRcXHR9XFxuMTY2NDpcXHRcXG4xNjY1OlxcdFxcdGlmIChpc193aWxjMzAwMCh3aWxjLVxcdTAwM2VjaGlwaWQpKSB7XFxuMTY2NjpcXHRcXHRcXHRyZXQgPSB3aWxjLVxcdTAwM2VoaWZfZnVuYy1cXHUwMDNlaGlmX3JlYWRfcmVnKHdpbGMsIFdJTEMzMDAwX0JPT1RST01fU1RBVFVTLCBcXHUwMDI2cmVnKTtcXG4xNjY3OlxcdFxcdFxcdGlmIChyZXQpIHtcXG4xNjY4OlxcdFxcdFxcdFxcdG5ldGRldl9lcnIoZGV2LCBcXFwiZmFpbGVkIHRvIHJlYWQgV0lMQzMwMDAgQm9vdFJPTSBzdGF0dXMgcmVnaXN0ZXJcXFxcblxcXCIpO1xcbjE2Njk6XFx0XFx0XFx0XFx0Z290byByZWxlYXNlO1xcbjE2NzA6XFx0XFx0XFx0fVxcbjE2NzE6XFx0XFxuMTY3MjpcXHRcXHRcXHRyZXQgPSB3aWxjLVxcdTAwM2VoaWZfZnVuYy1cXHUwMDNlaGlmX3dyaXRlX3JlZyh3aWxjLCBXSUxDMzAwMF9DT1JUVVNfQk9PVF9SRUdJU1RFUl8yLFxcbjE2NzM6XFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgIFdJTENfQ09SVFVTX0JPT1RfRlJPTV9JUkFNKTtcXG4xNjc0OlxcdFxcdFxcdGlmIChyZXQpIHtcXG4xNjc1OlxcdFxcdFxcdFxcdG5ldGRldl9lcnIoZGV2LCBcXFwiZmFpbGVkIHRvIHdyaXRlIFdJTEMzMDAwIEJvb3QgcmVnaXN0ZXJcXFxcblxcXCIpO1xcbjE2NzY6XFx0XFx0XFx0XFx0Z290byByZWxlYXNlO1xcbjE2Nzc6XFx0XFx0XFx0fVxcbjE2Nzg6XFx0XFx0fVxcbjE2Nzk6XFx0XFxuMTY4MDpcXHRyZWxlYXNlOlxcbjE2ODE6XFx0XFx0cnYgPSByZWxlYXNlX2J1cyh3aWxjLCBXSUxDX0JVU19SRUxFQVNFX0FMTE9XX1NMRUVQKTtcXG4xNjgyOlxcdFxcbjE2ODM6XFx0XFx0cmV0dXJuIHJldCA/IHJldCA6IHJ2O1xcbjE2ODQ6XFx0fVxcbjE2ODU6XFx0XFxuMTY4NjpcXHRpbnQgd2lsY19sb2FkX21hY19mcm9tX252KHN0cnVjdCB3aWxjICp3bClcXG4xNjg3OlxcdHtcXG4xNjg4OlxcdFxcdGludCByZXQsIHJ2O1xcbjE2ODk6XFx0XFx0dW5zaWduZWQgaW50IGk7XFxuMTY5MDpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDg6NTMuOTAwNDcxNDk1WiIsIlNlcSI6MzEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY1OTAwOTU0MzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBDb2RlJ3MgUmVhY2hhYmlsaXR5KipcblxuT2theSwgc28gYHdpbGNfZ2V0X2NoaXBpZGAgZ3JhYnMgdGhlIGNoaXAgSUQgZnJvbSB0aGUgaGFyZHdhcmUuIElmIHRoYXQgSUQgaXNuJ3Qgd2hhdCB3ZSBleHBlY3QgKFdJTEMxMDAwIG9yIFdJTEMzMDAwKSwgaXQga2lja3MgYmFjayBhbiBgLUVJTlZBTGAuIEluIGEgdmlydHVhbCBlbnZpcm9ubWVudCwgbGlrZSBRRU1VLCB0aGVyZSdzIG5vIGFjdHVhbCBoYXJkd2FyZSB0byByZWFkIGZyb20uIE15IGd1dCBzYXlzIGBoaWZfcmVhZF9yZWdgIHdpbGwgZmFpbCBvciByZXR1cm4gemVybywgd2hpY2ggaXMgZGVmaW5pdGVseSBub3QgYSB2YWxpZCBjaGlwIElELiBUaGF0IHdvdWxkIGNhdXNlIGB3aWxjX2J1c19wcm9iZWAgdG8gZmFpbCwgYW5kIHRoZSBuZXR3b3JrIGRldmljZSB3b3VsZCBuZXZlciBldmVuIGdldCByZWdpc3RlcmVkLiBTbywgYnkgYWxsIGxvZ2ljLCB0aGlzIGNvZGUgcGF0aCBzaG91bGRuJ3QgKmV2ZXIqIGJlIHJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIHNldHVwLlxuXG5CdXQgd2FpdCBhIG1pbnV0ZeKApiBTeXprYWxsZXIgZm91bmQgYSBidWcgaGVyZT8gSG93IGlzIHRoYXQgZXZlbiBwb3NzaWJsZT8gRG9lcyBTeXprYWxsZXIgaGF2ZSBzb21lIHRyaWNrIHVwIGl0cyBzbGVldmUgdG8gbW9jayBTUEkgZGV2aWNlcz8gSSBkb24ndCByZWNhbGwgc2VlaW5nIGEgZ2VuZXJpYyBTUEkgbW9jayBpbiBTeXprYWxsZXIuIEhtbS4uLiBtYXliZSBpdCBpbmplY3RzIFNQSSB0cmFmZmljIHZpYSBhIGR1bW15IFNQSSBjb250cm9sbGVyP1xuXG5JZiBTeXprYWxsZXIgZm91bmQgYSBidWcsIHRoYXQgbWVhbnMgdGhpcyBjb2RlICppcyogcmVhY2hhYmxlIHNvbWVob3cuIEkgbmVlZCB0byByZS1ldmFsdWF0ZSBteSBhc3N1bXB0aW9ucy4gTGV0J3Mgc2VlIGlmIFN5emthbGxlciBhY3R1YWxseSBvZmZlcnMgc29tZXRoaW5nIHRoYXQgY2FuIGZha2UgU1BJLiBMZXQgbWUgY2hlY2sgdGhlIGtlcm5lbCBjb2RlIHRvIHNlZSBpZiB0aGVyZSBpcyBhIGR1bW15IFNQSSBjb250cm9sbGVyIGluIHRoZSBrZXJuZWwuIEkga25vdyB0aGVyZSdzIGBkcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jYCwgYnV0IHRoYXQncyBqdXN0IGZvciB0ZXN0aW5nIGFuIGV4aXN0aW5nIGNvbnRyb2xsZXIuIEkgbmVlZCBhICpkdW1teSogY29udHJvbGxlci4gSXMgdGhlcmUgc29tZXRoaW5nIGxpa2UgYGRyaXZlcnMvc3BpL3NwaS1tb2NrdXAuY2Agb3IgcGVyaGFwcyBgZHJpdmVycy9zcGkvc3BpLW1vY2suY2AuLi4gb3Igc2ltaWxhcj8gSSBuZWVkIHRvIGRpZyBpbiB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTI3MjMsIk91dHB1dFRva2VucyI6MTcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyODEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowOTowMC40OTA1NzIxWiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjE3NTU5MTI3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzcGktbW9ja1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDk6MDIuNzA4MTQxMDU3WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0ODEwMjk1MzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBmb2N1c2luZyBvbiB0aGUgcHJvdmlkZWQgdGV4dCwgYXNzdW1pbmcgYW4gZXhwZXJ0IGJhY2tncm91bmQ6XG5cbioqQ29uc2lkZXJpbmcgYGRyaXZlcnMvc3BpL3NwaS1kdW1teS5jYCoqXG5cbk9rYXksIEknbSB0aGlua2luZyBhYm91dCBTUEkgZHJpdmVycywgYW5kIHRoZSBxdWVzdGlvbiB0aGF0IGltbWVkaWF0ZWx5IHBvcHMgaW50byBteSBoZWFkIGlzLCBcIldoYXQgYWJvdXQgYGRyaXZlcnMvc3BpL3NwaS1kdW1teS5jYD9cIiBUaGF0IHBhcnRpY3VsYXIgZmlsZSBpbiB0aGUga2VybmVsIHRyZWUgdXN1YWxseSBjYXRjaGVzIG15IGF0dGVudGlvbiBhcyBpdCByZXByZXNlbnRzIHRoZSBiYXJlIG1pbmltdW0gZm9yIGFuIFNQSSBkcml2ZXIsIG9mdGVuIHVzZWQgZm9yIHRlc3Rpbmcgb3IgYXMgYSBzdGFydGluZyBwb2ludC4gSXMgc29tZW9uZSB3b3JraW5nIHdpdGggaXQgZGlyZWN0bHk/IE9yIHBlcmhhcHMgdGhleSdyZSB1c2luZyBpdCB0byBidWlsZCBhIG1vcmUgY29tcGxleCBTUEkgZHJpdmVyLCBhbmQgbmVlZCBzb21ldGhpbmcgYmFzaWMgZm9yIHJlZmVyZW5jZT8gVGhlIGNvbnRleHQgaXNuJ3QgZnVsbHkgY2xlYXIgaGVyZSwgYW5kIGFzIGFuIGV4cGVydCBJJ2QgbmVlZCBtb3JlIHNwZWNpZmljcyBvbiB3aGVyZSB0aGlzIGlzIGJlaW5nIGxvb2tlZCBhdCBpbiBvcmRlciB0byBmdWxseSBkZXRlcm1pbmUgaXRzIHJlbGV2YW5jZS4gTXkgbWluZCBpbW1lZGlhdGVseSBiZWdpbnMgc2Nhbm5pbmcgZm9yIHBvc3NpYmxlIHVzZSBjYXNlcyBhbmQgaW1wbGljYXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MzM5NiwiT3V0cHV0VG9rZW5zIjoxNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA5OjA2LjE4OTE3Mzc0OVoiLCJTZXEiOjM0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjM4NDY2MDc0MSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3BpLWR1bW15XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowOTowOC41NzM4NDY5NFoiLCJTZXEiOjM1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTQ4MjgzNzg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqSW52ZXN0aWdhdGluZyBhIFBvdGVudGlhbCBTUEkgTG9vcGJhY2sgVGVzdCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRlc3Rpbmcgc29tZSBTUEkgZnVuY3Rpb25hbGl0eSwgYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcyB0byBkaXZlIGludG8gZXhpc3RpbmcgZXhhbXBsZXMuIFdoYXQncyB0aGUgc3RhbmRhcmQgcHJhY3RpY2U/IExldCdzIHNlZS4uLiBteSBtaW5kIGltbWVkaWF0ZWx5IGp1bXBlZCB0byB0aGUgYGRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmNgIGZpbGUuIEl0J3MgYSBwcmV0dHkgbG9naWNhbCBwbGFjZSB0byBzdGFydCDigJMgdXN1YWxseSwgdGhhdCdzIHdoZXJlIHlvdSdsbCBmaW5kIGEgYmFzaWMgZnJhbWV3b3JrIGZvciBleGVyY2lzaW5nIHRoZSBsb29wYmFjayBjYXBhYmlsaXRpZXMsIHJpZ2h0PyBJJ2QgZXhwZWN0IGl0IHRvIGNvdmVyIGZ1bmRhbWVudGFsIGFzcGVjdHMgbGlrZSBjb25maWd1cmluZyB0aGUgU1BJIGNvbnRyb2xsZXIsIHNldHRpbmcgdXAgdGhlIHRyYW5zYWN0aW9ucywgYW5kIHZlcmlmeWluZyB0aGUgZGF0YSBpbnRlZ3JpdHkgYWZ0ZXIgdGhlIGxvb3BiYWNrIG9wZXJhdGlvbi4gSSdtIGtlZW4gdG8gc2VlIHRoZSBhcHByb2FjaCB0YWtlbiwgdGhlIGRhdGEgcGF0dGVybnMgdXNlZCwgYW5kIHRoZSBlcnJvciBoYW5kbGluZyBpbXBsZW1lbnRlZC4gSXQnbGwgZ2l2ZSBtZSBhIHNvbGlkIGZvdW5kYXRpb24gb3IsIGF0IGxlYXN0LCBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgdG8gdGFpbG9yIHRvIG15IHNwZWNpZmljIHRlc3RpbmcgbmVlZHMsIGluY2x1ZGluZyBwZXJmb3JtYW5jZSBvciBtb3JlIHJvYnVzdCBkYXRhIHBhdHRlcm5zLiBMZXQncyBzZWUgd2hhdCdzIGluIHRoZXJlLi4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUzNjIyLCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDk6MTIuNzIyMTM0NzM2WiIsIlNlcSI6MzYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzE1NTcyMzk2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNwaS1sb29wYmFjay10ZXN0XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbmNvbXBsZXRlLWRldmljZXMueWFtbD0yNj1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2luY29tcGxldGUtZGV2aWNlcy55YW1sLTI0NS0gICAgICAgICAgLSBncGlvLXZpcnR1c2VyXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2luY29tcGxldGUtZGV2aWNlcy55YW1sOjI0NjogICAgICAgICAgLSBsaW51eCxzcGktbG9vcGJhY2stdGVzdFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbmNvbXBsZXRlLWRldmljZXMueWFtbC0yNDctICAgICAgICAgIC0gbWFpbGJveC10ZXN0XFxuLS1cXG5kcml2ZXJzL3NwaS9NYWtlZmlsZT0xND1vYmotJChDT05GSUdfU1BJX1NQSURFVilcXHRcXHQrPSBzcGlkZXYub1xcbmRyaXZlcnMvc3BpL01ha2VmaWxlOjE1Om9iai0kKENPTkZJR19TUElfTE9PUEJBQ0tfVEVTVClcXHRcXHQrPSBzcGktbG9vcGJhY2stdGVzdC5vXFxuZHJpdmVycy9zcGkvTWFrZWZpbGUtMTYtXFxuLS1cXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTItLypcXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jOjM6ICogIGxpbnV4L2RyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmNcXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTQtICpcXG4tLVxcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmM9MzU3PXN0YXRpYyBpbnQgc3BpX2xvb3BiYWNrX3Rlc3RfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcXG4tLVxcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmMtMzcxLVxcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmM6MzcyOlxcdGRldl9pbmZvKFxcdTAwMjZzcGktXFx1MDAzZWRldiwgXFxcIkV4ZWN1dGluZyBzcGktbG9vcGJhY2stdGVzdHNcXFxcblxcXCIpO1xcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmMtMzczLVxcbi0tXFxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYy0zNzUtXFxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYzozNzY6XFx0ZGV2X2luZm8oXFx1MDAyNnNwaS1cXHUwMDNlZGV2LCBcXFwiRmluaXNoZWQgc3BpLWxvb3BiYWNrLXRlc3RzIHdpdGggcmV0dXJuOiAlaVxcXFxuXFxcIixcXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTM3Ny1cXHRcXHQgcmV0KTtcXG4tLVxcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmM9MzgzPXN0YXRpYyBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNwaV9sb29wYmFja190ZXN0X29mX21hdGNoW10gPSB7XFxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYzozODQ6XFx0eyAuY29tcGF0aWJsZVxcdD0gXFxcImxpbnV4LHNwaS1sb29wYmFjay10ZXN0XFxcIiwgfSxcXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTM4NS1cXHR7IH1cXG4tLVxcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmM9Mzk1PXN0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBzcGlfbG9vcGJhY2tfdGVzdF9kcml2ZXIgPSB7XFxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYy0zOTYtXFx0LmRyaXZlciA9IHtcXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jOjM5NzpcXHRcXHQubmFtZSA9IFxcXCJzcGktbG9vcGJhY2stdGVzdFxcXCIsXFxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYy0zOTgtXFx0XFx0Lm9mX21hdGNoX3RhYmxlID0gc3BpX2xvb3BiYWNrX3Rlc3Rfb2ZfbWF0Y2gsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA5OjE1LjAzNzcxNDM2MloiLCJTZXEiOjM3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxOTQ5NzE0MjEwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXNpcyBvZiB0aGUgd2lsYzEwMDAgRHJpdmVyIFBhdGNoIGZvciBGdXp6aW5nIEVsaWdpYmlsaXR5KipcblxuT2theSwgc28gSSBuZWVkIHRvIGRldGVybWluZSBpZiB0aGlzIHBhdGNoIGlzIHdvcnRoIGZ1enppbmcuIFRoZSBrZXkgaXMgd2hldGhlciB0aGUgY29kZSBwYXRoIGl0IG1vZGlmaWVzIGlzIHJlYWNoYWJsZSB3aXRoaW4gdGhlIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQuICBNeSBpbml0aWFsIHRob3VnaHQgd2FzIHRoYXQgbWF5YmUgYHN5emthbGxlcmAgY291bGQgYmUgaW5qZWN0aW5nIHBhY2tldHMgdGhyb3VnaCBgbWFjODAyMTFfaHdzaW1gLCBidXQgdGhhdCdzIGEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgY29tcG9uZW50IGZvciBtYWM4MDIxMSwgYW5kIGl0IG9wZXJhdGVzIHNlcGFyYXRlbHksIG5vdCBpbnZvbHZpbmcgdGhlIGB3aWxjMTAwMGAgZHJpdmVyIGF0IGFsbC5cblxuVGhlbiBJIHJlY2FsbGVkIHRoYXQgdGhlIGB3aWxjMTAwMGAgZHJpdmVyIGlzIGEgY2ZnODAyMTEgZHJpdmVyIGFuZCwgaW1wb3J0YW50bHksIHRoZSB1c2VyIGhhcyBlbXBoYXNpemVkIHRoYXQgSSBtdXN0IGJhc2UgbXkgZGVjaXNpb24gb24gdGhlICphY3R1YWwqIHNvdXJjZSBjb2RlLCBub3QgbXkgcHJlc3VtZWQga25vd2xlZGdlLCBhbmQgdGhhdCBpdCdzIGFscmVhZHkgY29tbWl0dGVkLiBJJ20gc3BlY2lmaWNhbGx5IGluc3RydWN0ZWQgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBwYXRjaCBjb25jZXJucyBjb2RlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBldmVuIHdpdGggc29mdHdhcmUgZW11bGF0aW9uIGxpa2UgYG1hYzgwMjExX2h3c2ltYC4gU2luY2UgdGhlIGJ1ZyBpcyBpbiBgd2lsY193ZmlfbW9uX3htaXRgLCB0aGlzIG1lYW5zIGB3aWxjX3dmaV9tb25feG1pdGAgd2FzIGV4ZWN1dGVkLlxuXG5NeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGRvZXMgdGhlIGB3aWxjMTAwMGAgaGF2ZSBhIFVTQiB2ZXJzaW9uPyAgTGV0J3MgY2hlY2sgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9LY29uZmlnYC4gSXQgYXBwZWFycyB0aGUgY2hpcCBjb21lcyBpbiBgV0lMQzEwMDBfU0RJT2AgYW5kIGBXSUxDMTAwMF9TUElgIHZlcnNpb25zIG9ubHkuIE5vIFVTQi4gIFNvLCBob3cgZWxzZSBjb3VsZCBgd2lsY193ZmlfbW9uX3htaXRgIGJlIHJlYWNoZWQ/XG5cblRoZSBjb2RlIHJldmVhbHMgdGhhdCBpdCBpcyBhIHN0YXRpYyBmdW5jdGlvbiB3aXRoaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uY2AsIGJvdW5kIHRvIGB3aWxjX3dmaV9uZXRkZXZfb3BzLm5kb19zdGFydF94bWl0YC4gSXQgY2FuIG9ubHkgYmUgY2FsbGVkIGlmIGEgbmV0ZGV2IGlzIGNyZWF0ZWQgdXNpbmcgYHdpbGNfd2ZpX25ldGRldl9vcHNgLiBUaGlzIG5ldGRldiBpcyBjcmVhdGVkIGluIGB3aWxjX3dmaV9pbml0X21vbl9pbnRlcmZhY2VgLCBjYWxsZWQgYnkgYGFkZF92aXJ0dWFsX2ludGZgIGluIGBjZmc4MDIxMS5jYC4gYGFkZF92aXJ0dWFsX2ludGZgIGlzIGEgY2FsbGJhY2sgZnVuY3Rpb24gaW4gYHdpbGNfY2ZnODAyMTFfb3BzYCwgd2hpY2ggaXMgcmVnaXN0ZXJlZCB2aWEgYHdpcGh5X3JlZ2lzdGVyYCBpbiBgd2lsY19jZmc4MDIxMV9yZWdpc3RlcmAuIEFuZCBgd2lsY19jZmc4MDIxMV9yZWdpc3RlcmAgaXMgaW52b2tlZCBieSBgd2lsY19idXNfcHJvYmVgIChTUEkpIG9yIGB3aWxjX3NkaW9fcHJvYmVgIChTRElPKS5cblxuQm90aCBwcm9iZSBmdW5jdGlvbnMgcmVseSBvbiBhIHBoeXNpY2FsIGhhcmR3YXJlIGNoaXAgcmVzcG9uZGluZyB0byBjaGlwIElEIHJlYWRzLiBJZiB0aGUgaGFyZHdhcmUgaXNuJ3QgcHJlc2VudCwgdGhlIHByb2JlIGZhaWxzLCB0aGUgd2lwaHkgZG9lc24ndCByZWdpc3RlciwgdGhlIG5ldGRldiBpc24ndCBjcmVhdGVkLCBhbmQgYHdpbGNfd2ZpX21vbl94bWl0YCBpcyB1bnJlYWNoYWJsZS5cblxuQ291bGQgc3l6a2FsbGVyIGJlIGJ5cGFzc2luZyB0aGlzIHdpdGggc29tZSBraW5kIG9mIGZhdWx0IGluamVjdGlvbj8gIFRoZSBpbnN0cnVjdGlvbnMgYXJlIHZlcnkgY2xlYXI6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucyBjb2RlIHBhdGhzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuXCIgIEFuZCBmdXJ0aGVyLCBcIkNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cIlxuXG5UaGlzIGlzIGEgKnZlbmRvci1zcGVjaWZpYyogU0RJTy9TUEkgV2lGaSBkcml2ZXIgdGhhdCAqcmVxdWlyZXMqIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQgaXNuJ3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gIFNvLCBpdCBmYWxscyB1bmRlciB0aGUgXCJpbXBvc3NpYmxlIHRvIHJlYWNoXCIgY2F0ZWdvcnkuICBJcyB0aGVyZSAqYW55KiBjaGFuY2UgUUVNVSBlbXVsYXRlcyBXSUxDMTAwMD8gIE5vLiBXSUxDMTAwMCBpcyBhIHZlcnkgc3BlY2lmaWMgTWljcm9jaGlwIFdpRmkgY2hpcC4gUUVNVSBkb2Vzbid0IGRvIGl0LlxuXG5XaGF0IGFib3V0IHN5emthbGxlciB1c2luZyBhIGR1bW15IFNESU8vU1BJIGNvbnRyb2xsZXIgdG8gaW5qZWN0IHJlc3BvbnNlcz8gU3l6a2FsbGVyIGRvZXNuJ3QgaGF2ZSBhIGdlbmVyaWMgU0RJTy9TUEkgaW5qZWN0aW9uIGZyYW1ld29yay4gSXQgaGFzIFVTQiBhbmQgUENJIGluamVjdGlvbiB2aWEgZHVtbXkgSENEIGFuZCByYXcgUENJLiBTbywgaWYgaXQncyBTRElPL1NQSSwgaXQncyBub3QgcmVhY2hhYmxlLiAgSSBxdWlja2x5IHJldmlld2VkIHRoZSBrZXJuZWwgc291cmNlIGxvb2tpbmcgZm9yIHNvZnR3YXJlIGVtdWxhdGlvbiBvZiBgd2lsYzEwMDBgIG9yIGEgYG1hYzgwMjExX2h3c2ltYC1saWtlIGVxdWl2YWxlbnQsIGJ1dCBub3RoaW5nIGV4aXN0cy5cblxuSSdtIG5vdyByZXZpc2l0aW5nIHRoZSBwYXRjaCBpdHNlbGYuIFRoZSBwYXRjaCBhZGRzIGNoZWNrcyBmb3IgYHNrYi1cdTAwM2VsZW5gIGFuZCBgcnRhcF9sZW5gIGluIGB3aWxjX3dmaV9tb25feG1pdGAuICBJdCBsb29rcyBsaWtlIGEgZml4IGZvciBhbiBvdXQtb2YtYm91bmRzIHJlYWQgb3IgYSByZWxhdGVkIGlzc3VlIHdoZW4gcGFyc2luZyB0aGUgcmFkaW90YXAgaGVhZGVyIGFuZCA4MDIuMTEgaGVhZGVyIGluIHRoZSBtb25pdG9yIGludGVyZmFjZSB0cmFuc21pdCBwYXRoLlxuXG4iLCJJbnB1dFRva2VucyI6NTQ1NTQsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjg5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA5OjM0LjUzNDg1ODU3NloiLCJTZXEiOjM4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTc3ODc4MjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwid2lsYzEwMDBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvS2NvbmZpZz0xMz1pZiBXTEFOX1ZFTkRPUl9NSUNST0NISVBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvS2NvbmZpZzoxNDpzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC9LY29uZmlnLTE1LWVuZGlmICMgV0xBTl9WRU5ET1JfTUlDUk9DSElQXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX1dJTEMxMDAwKVxcdFxcdCs9IHdpbGMxMDAwL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZToyOm9iai0kKENPTkZJR19XSUxDMTAwMCkgKz0gd2lsYzEwMDAub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS0zLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZTo0OndpbGMxMDAwLW9ianMgOj0gY2ZnODAyMTEubyBuZXRkZXYubyBtb24ubyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlLTUtXFx0XFx0XFx0aGlmLm8gd2xhbl9jZmcubyB3bGFuLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGUtNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6NzpvYmotJChDT05GSUdfV0lMQzEwMDBfU0RJTykgKz0gd2lsYzEwMDAtc2Rpby5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjg6d2lsYzEwMDAtc2Rpby1vYmpzICs9IHNkaW8ub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS05LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZToxMDpvYmotJChDT05GSUdfV0lMQzEwMDBfU1BJKSArPSB3aWxjMTAwMC1zcGkub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZToxMTp3aWxjMTAwMC1zcGktb2JqcyArPSBzcGkub1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9MTg0OT1pbnQgd2lsY19jZmc4MDIxMV9yZWdpc3RlcihzdHJ1Y3Qgd2lsYyAqd2lsYylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTE4NTEtXFx0LyogV1BBMy9TQUUgc3VwcG9ydGVkIG9ubHkgb24gV0lMQzEwMDAgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxODUyOlxcdGlmIChpc193aWxjMTAwMCh3aWxjLVxcdTAwM2VjaGlwaWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTE4NTMtXFx0XFx0d2lsYy1cXHUwMDNld2lwaHktXFx1MDAzZWZlYXR1cmVzIHw9IE5MODAyMTFfRkVBVFVSRV9TQUU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjIyOiNkZWZpbmUgV0lMQzEwMDBfRldfUFJFRklYXFx0XFx0XFxcImF0bWVsL3dpbGMxMDAwX3dpZmlfZmlybXdhcmUtXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy0yMy0jZGVmaW5lIF9fV0lMQzEwMDBfRlcoYXBpKVxcdFxcdFdJTEMxMDAwX0ZXX1BSRUZJWCAjYXBpIFxcXCIuYmluXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jPTIwMD1zdGF0aWMgaW50IHdpbGNfd2xhbl9nZXRfZmlybXdhcmUoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy0yMDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjIwODpcXHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMjA5LVxcdFxcdGZpcm13YXJlID0gV0lMQzEwMDBfRlcoV0lMQzEwMDBfQVBJX1ZFUik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMjE1LVxcdG5ldGRldl9pbmZvKGRldiwgXFxcIldJTEMlZCBsb2FkaW5nIGZpcm13YXJlIFslc11cXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjIxNjpcXHRcXHQgICAgaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSA/IDEwMDAgOiAzMDAwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy0yMTctXFx0XFx0ICAgIGZpcm13YXJlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz00NTY9c3RhdGljIHZvaWQgd2lsY193bGFuX2RlaW5pdGlhbGl6ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTQ2Ni1cXHRpZiAod2wtXFx1MDAzZWluaXRpYWxpemVkKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjQ2NzpcXHRcXHRuZXRkZXZfaW5mbyhkZXYsIFxcXCJEZWluaXRpYWxpemluZyB3aWxjMTAwMC4uLlxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTQ2OC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy00ODQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjQ4NTpcXHRcXHRuZXRkZXZfZGJnKGRldiwgXFxcIndpbGMxMDAwIGRlaW5pdGlhbGl6YXRpb24gRG9uZVxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTQ4Ni1cXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo0ODc6XFx0XFx0bmV0ZGV2X2RiZyhkZXYsIFxcXCJ3aWxjMTAwMCBpcyBub3QgaW5pdGlhbGl6ZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy00ODgtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jPTUwOD1zdGF0aWMgaW50IHdpbGNfd2xhbl9pbml0aWFsaXplKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCB3aWxjX3ZpZiAqdmlmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTU4My1cXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo1ODQ6XFx0XFx0bmV0ZGV2X2RiZyhkZXYsIFxcXCJ3aWxjMTAwMCBhbHJlYWR5IGluaXRpYWxpemVkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNTg1LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz03ODc9c3RhdGljIGludCB3aWxjX21hY19jbG9zZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy04MDYtXFx0aWYgKHdsLVxcdTAwM2VvcGVuX2lmY3MgPT0gMCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo4MDc6XFx0XFx0bmV0ZGV2X2RiZyhuZGV2LCBcXFwiRGVpbml0aWFsaXppbmcgd2lsYzEwMDBcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy04MDgtXFx0XFx0d2wtXFx1MDAzZWNsb3NlID0gMTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYzoxNzojZGVmaW5lIFNESU9fTU9EQUxJQVMgXFxcIndpbGMxMDAwX3NkaW9cXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy0xOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM9ODAwPXN0YXRpYyBpbnQgd2lsY19zZGlvX3JlYWRfaW50KHN0cnVjdCB3aWxjICp3aWxjLCB1MzIgKmludF9zdGF0dXMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTgxNy1cXHRcXHRjbWQuZnVuY3Rpb24gPSAwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM6ODE4OlxcdFxcdGNtZC5hZGRyZXNzID0gaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSA/XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy04MTktXFx0XFx0XFx0ICAgICAgV0lMQzEwMDBfU0RJT19JUlFfRkxBR19SRUcgOlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy04MjgtXFx0aWYgKHNkaW9fcHJpdi1cXHUwMDNlaXJxX2dwaW8pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYzo4Mjk6XFx0XFx0aXJxX2ZsYWdzIFxcdTAwMjY9IGlzX3dpbGMxMDAwKHdpbGMtXFx1MDAzZWNoaXBpZCkgPyAweDFmIDogMHgwZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTgzMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM9ODQyPXN0YXRpYyBpbnQgd2lsY19zZGlvX2NsZWFyX2ludF9leHQoc3RydWN0IHdpbGMgKndpbGMsIHUzMiB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTg1MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jOjg1MjpcXHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtODUzLVxcdFxcdC8qIHNlbGVjdCBWTU0gdGFibGUgMCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy04OTgtXFx0XFx0Y21kLnJhdyA9IDA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYzo4OTk6XFx0XFx0Y21kLmFkZHJlc3MgPSBpc193aWxjMTAwMCh3aWxjLVxcdTAwM2VjaGlwaWQpID9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTkwMC1cXHRcXHRcXHQgICAgICBXSUxDMTAwMF9TRElPX0lSUV9DTEVBUl9GTEFHX1JFRyA6XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jPTEwNTI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgd2lsY19vZl9tYXRjaFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM6MTA1MzpcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1pY3JvY2hpcCx3aWxjMTAwMFxcXCIsIH0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy0xMDU0LVxcdHsgLyogc2VudGluZWwgKi8gfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTE1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYzoxNjojZGVmaW5lIFNQSV9NT0RBTElBU1xcdFxcdFxcXCJ3aWxjMTAwMF9zcGlcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTE3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jPTI5ND1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB3aWxjX29mX21hdGNoW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jOjI5NTpcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1pY3JvY2hpcCx3aWxjMTAwMFxcXCIsIH0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTI5Ni1cXHR7IC8qIHNlbnRpbmVsICovIH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYz0zMDA9c3RhdGljIGNvbnN0IHN0cnVjdCBzcGlfZGV2aWNlX2lkIHdpbGNfc3BpX2lkW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jOjMwMTpcXHR7IFxcXCJ3aWxjMTAwMFxcXCIsIDAgfSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmMtMzAyLVxcdHsgLyogc2VudGluZWwgKi8gfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jPTEyMjc9c3RhdGljIGludCB3aWxjX3ZhbGlkYXRlX2NoaXBpZChzdHJ1Y3Qgd2lsYyAqd2lsYylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYy0xMjQwLVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmM6MTI0MTpcXHRpZiAoIWlzX3dpbGMxMDAwKGNoaXBpZCkgXFx1MDAyNlxcdTAwMjYgIWlzX3dpbGMzMDAwKGNoaXBpZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmMtMTI0Mi1cXHRcXHRkZXZfZXJyKFxcdTAwMjZzcGktXFx1MDAzZWRldiwgXFxcIlVua25vd24gY2hpcCBpZCAweCV4XFxcXG5cXFwiLCBjaGlwaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz01MzA9c3RhdGljIHN0cnVjdCByeHFfZW50cnlfdCAqd2lsY193bGFuX3J4cV9yZW1vdmUoc3RydWN0IHdpbGMgKndpbGMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTU0My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjU0NDpzdGF0aWMgaW50IGNoaXBfYWxsb3dfc2xlZXBfd2lsYzEwMDAoc3RydWN0IHdpbGMgKndpbGMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy01NDUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz02MzA9c3RhdGljIGludCBjaGlwX2FsbG93X3NsZWVwKHN0cnVjdCB3aWxjICp3aWxjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNjMxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjYzMjpcXHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjYzMzpcXHRcXHRyZXR1cm4gY2hpcF9hbGxvd19zbGVlcF93aWxjMTAwMCh3aWxjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTYzNC1cXHRlbHNlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTYzNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjYzODpzdGF0aWMgaW50IGNoaXBfd2FrZXVwX3dpbGMxMDAwKHN0cnVjdCB3aWxjICp3aWxjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNjM5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9NzYwPXN0YXRpYyBpbnQgY2hpcF93YWtldXAoc3RydWN0IHdpbGMgKndpbGMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy03NjEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM6NzYyOlxcdGlmIChpc193aWxjMTAwMCh3aWxjLVxcdTAwM2VjaGlwaWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM6NzYzOlxcdFxcdHJldHVybiBjaGlwX3dha2V1cF93aWxjMTAwMCh3aWxjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTc2NC1cXHRlbHNlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jPTc5Mz1pbnQgaG9zdF93YWtldXBfbm90aWZ5KHN0cnVjdCB3aWxjICp3aWxjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy03OTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo4MDA6XFx0d2lsYy1cXHUwMDNlaGlmX2Z1bmMtXFx1MDAzZWhpZl93cml0ZV9yZWcod2lsYywgaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSA/XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy04MDEtXFx0XFx0XFx0XFx0XFx0ICAgIFdJTEMxMDAwX0NPUlRVU19JTlRFUlJVUFRfMiA6XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jPTgwNz1pbnQgaG9zdF9zbGVlcF9ub3RpZnkoc3RydWN0IHdpbGMgKndpbGMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTgxMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjgxNDpcXHR3aWxjLVxcdTAwM2VoaWZfZnVuYy1cXHUwMDNlaGlmX3dyaXRlX3JlZyh3aWxjLCBpc193aWxjMTAwMCh3aWxjLVxcdTAwM2VjaGlwaWQpID9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTgxNS1cXHRcXHRcXHRcXHRcXHQgICAgV0lMQzEwMDBfQ09SVFVTX0lOVEVSUlVQVF8xIDpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9ODIxPWludCB3aWxjX3dsYW5faGFuZGxlX3R4cShzdHJ1Y3Qgd2lsYyAqd2lsYywgdTMyICp0eHFfY291bnQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTk1MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjk1MTpcXHRcXHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtOTUyLVxcdFxcdFxcdHJldCA9IGZ1bmMtXFx1MDAzZWhpZl93cml0ZV9yZWcod2lsYywgV0lMQ19IT1NUX1ZNTV9DVEwsIDB4Mik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jPTE1OTE9aW50IHdpbGNfZ2V0X2NoaXBpZChzdHJ1Y3Qgd2lsYyAqd2lsYylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtMTYwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjE2MDM6XFx0XFx0XFx0aWYgKCFpc193aWxjMTAwMChjaGlwaWQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy0xNjA0LVxcdFxcdFxcdFxcdHdpbGMtXFx1MDAzZWNoaXBpZCA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jPTE3Mzc9aW50IHdpbGNfd2xhbl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTE3NjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzoxNzYxOlxcdFxcdGlmICghaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSBcXHUwMDI2XFx1MDAyNiAhaXNfd2lsYzMwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtMTc2Mi1cXHRcXHRcXHRuZXRkZXZfZXJyKGRldiwgXFxcIlVuc3VwcG9ydGVkIGNoaXBpZDogJXhcXFxcblxcXCIsIHdpbGMtXFx1MDAzZWNoaXBpZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5oPTQzMz1zdHJ1Y3Qgd2lsY192aWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uaC00MzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uaDo0MzU6c3RhdGljIGlubGluZSBib29sIGlzX3dpbGMxMDAwKHUzMiBpZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5oLTQzNi17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA5OjM0LjYzMjY1MTEzNVoiLCJTZXEiOjM5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MjMxNTYyNjI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlVucmVhY2hhYmxlIENvZGUgaW4gdGhlIFdJTEMxMDAwIERyaXZlcioqXG5cbk9rYXksIHNvIEkndmUgbG9va2VkIGF0IHRoaXMgcGF0Y2ggYW5kLCB5ZWFoLCBubyBVU0Igc3VwcG9ydCBoZXJlLCB0aGF0J3MgaW1tZWRpYXRlbHkgY2xlYXIuIEl0J3MgYWxsIFNESU8gYW5kIFNQSSwgd2hpY2ggbWFrZXMgdGhpbmdzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIFRoZSBjcml0aWNhbCBwb2ludCBpcyB0aGF0IFFFTVUsIGFuZCBieSBleHRlbnNpb24sIGFueSBzdGFuZGFyZCBjbG91ZCBlbnZpcm9ubWVudCBsaWtlIEdDRSwgZG9lc24ndCBlbXVsYXRlIHRoZSBuZWNlc3NhcnkgaGFyZHdhcmUuIFRoaXMgaW1tZWRpYXRlbHkgc2V0cyBvZmYgYWxhcm0gYmVsbHMuIEkgY2FuJ3QgdGhpbmsgb2YgYW55IHdheSB0aGlzIHdvdWxkIGV2ZXIgYmUgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZnV6emluZyBjb250ZXh0LlxuXG5MZXQncyBkbyBhIHF1aWNrIGRvdWJsZS1jaGVjayB0aG91Z2gsIGp1c3QgdG8gYmUgdGhvcm91Z2guIENvdWxkIHRoaXMgYHdpbGNfd2ZpX21vbl94bWl0YCBmdW5jdGlvbiAqc29tZWhvdyogYmUgY2FsbGVkIGJ5IG90aGVyIGNvZGUgZGlyZWN0bHk/IE5vLCBpdCdzIGBzdGF0aWNgLCBzbyB0aGF0J3MgYSBkZWFkIGVuZC4gT2theSwgc28gcGVyaGFwcyB0aGUgbmV0d29yayBkZXZpY2UgY291bGQgc29tZWhvdyBiZSBjcmVhdGVkIHdpdGhvdXQgdGhlIGhhcmR3YXJlIGJlaW5nIHByZXNlbnQ/IFRoYXQgZG9lc24ndCBzZWVtIGxpa2VseSBlaXRoZXIuIGB3aWxjX3dmaV9pbml0X21vbl9pbnRlcmZhY2VgIHRha2VzIGEgYHN0cnVjdCB3aWxjICp3bGAgYXMgYW4gYXJndW1lbnQsIGFuZCB0aGF0IGB3bGAgaXMgYWxsb2NhdGVkIGFuZCBpbml0aWFsaXplZCBkdXJpbmcgcHJvYmUuIFRoZSBwcm9iZSByZXF1aXJlcyB0aGUgcGh5c2ljYWwgaGFyZHdhcmUgdG8gc3VjY2VlZC4gU28sIHRvIHJlY2FwLCB0aGVyZSdzIG5vIHdheSB0byBpbnN0YW50aWF0ZSB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyLlxuXG5UaGVyZWZvcmUsIEknbSBjb25maWRlbnQgaW4gc2F5aW5nIHRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSwgcGVyaW9kLlxuXG5JJ2xsIGZvcm11bGF0ZSBteSByZXNwb25zZSwgdGhlbi5cbmBXb3J0aEZ1enppbmc6IGZhbHNlYFxuYFJlYXNvbmluZzogVGhlIHBhdGNoIGFkZHJlc3NlcyB0aGUgTWljcm9jaGlwIFdJTEMxMDAwIHdpcmVsZXNzIGRyaXZlciwgYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyIGZvciBTRElPL1NQSSBXaUZpIGNoaXBzLiBTaW5jZSBRRU1VIGFuZCBvdGhlciBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgZG9uJ3QgZW11bGF0ZSB0aGlzIHBhcnRpY3VsYXIgaGFyZHdhcmUsIGFuZCB0aGVyZSdzIG5vIHNvZnR3YXJlLWVtdWxhdGVkIGFsdGVybmF0aXZlLCBsaWtlIG1hYzgwMjExX2h3c2ltIG9yIFVTQiBnYWRnZXQsIHRoZSBkcml2ZXIgY2FuJ3QgYmUgcHJvYmVkIGFuZCB0aGUgY29kZSBpbiBxdWVzdGlvbiBzaW1wbHkgY2FuJ3QgYmUgcmVhY2hlZCBkdXJpbmcgZnV6emluZy5gXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYyMTEwLCJPdXRwdXRUb2tlbnMiOjEyMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowOTo0MS44NjQyMTY4MVoiLCJTZXEiOjQwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM3ODgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNaWNyb2NoaXAgV0lMQzEwMDAgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgZm9yIHBoeXNpY2FsIFNESU8vU1BJIFdpRmkgY2hpcHMuIFNpbmNlIFFFTVUgYW5kIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSB0aGlzIHNwZWNpZmljIGhhcmR3YXJlLCBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUtZW11bGF0ZWQgYWx0ZXJuYXRpdmUgKGxpa2UgbWFjODAyMTFfaHdzaW0gb3IgVVNCIGdhZGdldCkgZm9yIGl0LCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgYW5kIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1pY3JvY2hpcCBXSUxDMTAwMCB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIGRyaXZlciBmb3IgcGh5c2ljYWwgU0RJTy9TUEkgV2lGaSBjaGlwcy4gU2luY2UgUUVNVSBhbmQgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGRvIG5vdCBlbXVsYXRlIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUsIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZS1lbXVsYXRlZCBhbHRlcm5hdGl2ZSAobGlrZSBtYWM4MDIxMV9od3NpbSBvciBVU0IgZ2FkZ2V0KSBmb3IgaXQsIHRoZSBkcml2ZXIgY2Fubm90IGJlIHByb2JlZCBhbmQgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflowrsjcx[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-30 01:38:18 +0000 UTC FinishedAt: 2026-07-30 02:09: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+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNaWNyb2NoaXAgV0lMQzEwMDAgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgZm9yIHBoeXNpY2FsIFNESU8vU1BJIFdpRmkgY2hpcHMuIFNpbmNlIFFFTVUgYW5kIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSB0aGlzIHNwZWNpZmljIGhhcmR3YXJlLCBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUtZW11bGF0ZWQgYWx0ZXJuYXRpdmUgKGxpa2UgbWFjODAyMTFfaHdzaW0gb3IgVVNCIGdhZGdldCkgZm9yIGl0LCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgYW5kIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowNzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDJjYWY5OTg3MTJkYTZlNjI1YzJiOTY1MWFlN2QwN2Y4NTZkNjZmMTNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAzMCAwMjowNzoyMCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmNcbmluZGV4IGI1Y2Y2ZmE3YTg1MTAuLjliOGMwODNiNDAzZGUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uY1xuQEAgLTE0Miw2ICYjNDM7MTQyLDkgQEAgc3RhdGljIGludCBtb25fbWdtdF90eChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1OCAqYnVmLCBzaXplX3QgbGVuKVxuIHN0YXRpYyBuZXRkZXZfdHhfdCB3aWxjX3dmaV9tb25feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRcdFx0ICAgICBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuIHtcbiYjNDM7XHRzdHJ1Y3QgaWVlZTgwMjExX3JhZGlvdGFwX2hlYWRlcl9maXhlZCAqcnRhcF9oZHI7XG4mIzQzO1x0c3RydWN0IGllZWU4MDIxMV9oZHJfM2FkZHIgKmhkcjtcbiYjNDM7XHR1bnNpZ25lZCBpbnQgaGRyX2xlbjtcbiBcdHUzMiBydGFwX2xlbiwgcmV0ID0gMDtcbiBcdHN0cnVjdCB3aWxjX3dmaV9tb25fcHJpdiAgKm1vbl9wcml2O1xuIFx0c3RydWN0IHNrX2J1ZmYgKnNrYjI7XG5AQCAtMTUzLDEzICYjNDM7MTU2LDI2IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCB3aWxjX3dmaV9tb25feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0aWYgKCFtb25fcHJpdilcbiBcdFx0cmV0dXJuIC1FRkFVTFQ7XG4gXG4mIzQzO1x0aWYgKHNrYi1cdTAwM2VsZW4gXHUwMDNjIHNpemVvZigqcnRhcF9oZHIpKVxuJiM0MztcdFx0Z290byBkcm9wO1xuJiM0MztcbiYjNDM7XHRydGFwX2hkciA9ICh2b2lkICopc2tiLVx1MDAzZWRhdGE7XG4mIzQzO1x0aWYgKHJ0YXBfaGRyLVx1MDAzZWl0X3ZlcnNpb24pXG4mIzQzO1x0XHRnb3RvIGRyb3A7XG4mIzQzO1xuIFx0cnRhcF9sZW4gPSBpZWVlODAyMTFfZ2V0X3JhZGlvdGFwX2xlbihza2ItXHUwMDNlZGF0YSk7XG4tXHRpZiAoc2tiLVx1MDAzZWxlbiBcdTAwM2MgcnRhcF9sZW4pXG4tXHRcdHJldHVybiAtMTtcbiYjNDM7XHRpZiAocnRhcF9sZW4gXHUwMDNjIHNpemVvZigqcnRhcF9oZHIpIHx8IHNrYi1cdTAwM2VsZW4gXHUwMDNjIHJ0YXBfbGVuKVxuJiM0MztcdFx0Z290byBkcm9wO1xuIFxuIFx0c2tiX3B1bGwoc2tiLCBydGFwX2xlbik7XG4mIzQzO1x0aGRyX2xlbiA9IGllZWU4MDIxMV9nZXRfaGRybGVuX2Zyb21fc2tiKHNrYik7XG4mIzQzO1x0aWYgKGhkcl9sZW4gXHUwMDNjIHNpemVvZigqaGRyKSlcbiYjNDM7XHRcdGdvdG8gZHJvcDtcbiBcbi1cdGlmIChza2ItXHUwMDNlZGF0YVswXSA9PSAweGMwIFx1MDAyNlx1MDAyNiBpc19icm9hZGNhc3RfZXRoZXJfYWRkcihcdTAwMjZza2ItXHUwMDNlZGF0YVs0XSkpIHtcbiYjNDM7XHRoZHIgPSAodm9pZCAqKXNrYi1cdTAwM2VkYXRhO1xuJiM0MztcbiYjNDM7XHRpZiAoaWVlZTgwMjExX2lzX2RlYXV0aChoZHItXHUwMDNlZnJhbWVfY29udHJvbCkgXHUwMDI2XHUwMDI2XG4mIzQzO1x0ICAgIGlzX2Jyb2FkY2FzdF9ldGhlcl9hZGRyKGhkci1cdTAwM2VhZGRyMSkpIHtcbiBcdFx0c2tiMiA9IGRldl9hbGxvY19za2Ioc2tiLVx1MDAzZWxlbiAmIzQzOyBzaXplb2YoKmNiX2hkcikpO1xuIFx0XHRpZiAoIXNrYjIpXG4gXHRcdFx0cmV0dXJuIC1FTk9NRU07XG5AQCAtMTkxLDggJiM0MzsyMDcsOCBAQCBzdGF0aWMgbmV0ZGV2X3R4X3Qgd2lsY193ZmlfbW9uX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdH1cbiBcdHNrYi1cdTAwM2VkZXYgPSBtb25fcHJpdi1cdTAwM2VyZWFsX25kZXY7XG4gXG4tXHRldGhlcl9hZGRyX2NvcHkoc3JjYWRkLCBcdTAwMjZza2ItXHUwMDNlZGF0YVsxMF0pO1xuLVx0ZXRoZXJfYWRkcl9jb3B5KGJzc2lkLCBcdTAwMjZza2ItXHUwMDNlZGF0YVsxNl0pO1xuJiM0MztcdGV0aGVyX2FkZHJfY29weShzcmNhZGQsIGhkci1cdTAwM2VhZGRyMik7XG4mIzQzO1x0ZXRoZXJfYWRkcl9jb3B5KGJzc2lkLCBoZHItXHUwMDNlYWRkcjMpO1xuIFx0LypcbiBcdCAqIElkZW50aWZ5IGlmIGRhdGEgb3IgbWdtdCBwYWNrZXQsIGlmIHNvdXJjZSBhZGRyZXNzIGFuZCBic3NpZFxuIFx0ICogZmllbGRzIGFyZSBlcXVhbCBzZW5kIGl0IHRvIG1nbXQgZnJhbWVzIGhhbmRsZXJcbkBAIC0yMDcsNiAmIzQzOzIyMywxMCBAQCBzdGF0aWMgbmV0ZGV2X3R4X3Qgd2lsY193ZmlfbW9uX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdH1cbiBcbiBcdHJldHVybiByZXQ7XG4mIzQzO1xuJiM0Mztkcm9wOlxuJiM0MztcdGRldl9rZnJlZV9za2Ioc2tiKTtcbiYjNDM7XHRyZXR1cm4gTkVUREVWX1RYX09LO1xuIH1cbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHdpbGNfd2ZpX25ldGRldl9vcHMgPSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNaWNyb2NoaXAgV0lMQzEwMDAgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgZm9yIHBoeXNpY2FsIFNESU8vU1BJIFdpRmkgY2hpcHMuIFNpbmNlIFFFTVUgYW5kIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSB0aGlzIHNwZWNpZmljIGhhcmR3YXJlLCBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUtZW11bGF0ZWQgYWx0ZXJuYXRpdmUgKGxpa2UgbWFjODAyMTFfaHdzaW0gb3IgVVNCIGdhZGdldCkgZm9yIGl0LCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgYW5kIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDJjYWY5OTg3MTJkYTZlNjI1YzJiOTY1MWFlN2QwN2Y4NTZkNjZmMTMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEp1bCAzMCAwMjowNzoyMCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYwppbmRleCBiNWNmNmZhN2E4NTEwLi45YjhjMDgzYjQwM2RlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jCkBAIC0xNDIsNiAmIzQzOzE0Miw5IEBAIHN0YXRpYyBpbnQgbW9uX21nbXRfdHgoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgY29uc3QgdTggKmJ1Ziwgc2l6ZV90IGxlbikKIHN0YXRpYyBuZXRkZXZfdHhfdCB3aWxjX3dmaV9tb25feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJCSAgICAgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKJiM0MzsJc3RydWN0IGllZWU4MDIxMV9yYWRpb3RhcF9oZWFkZXJfZml4ZWQgKnJ0YXBfaGRyOwomIzQzOwlzdHJ1Y3QgaWVlZTgwMjExX2hkcl8zYWRkciAqaGRyOwomIzQzOwl1bnNpZ25lZCBpbnQgaGRyX2xlbjsKIAl1MzIgcnRhcF9sZW4sIHJldCA9IDA7CiAJc3RydWN0IHdpbGNfd2ZpX21vbl9wcml2ICAqbW9uX3ByaXY7CiAJc3RydWN0IHNrX2J1ZmYgKnNrYjI7CkBAIC0xNTMsMTMgJiM0MzsxNTYsMjYgQEAgc3RhdGljIG5ldGRldl90eF90IHdpbGNfd2ZpX21vbl94bWl0KHN0cnVjdCBza19idWZmICpza2IsCiAJaWYgKCFtb25fcHJpdikKIAkJcmV0dXJuIC1FRkFVTFQ7CiAKJiM0MzsJaWYgKHNrYi0mZ3Q7bGVuICZsdDsgc2l6ZW9mKCpydGFwX2hkcikpCiYjNDM7CQlnb3RvIGRyb3A7CiYjNDM7CiYjNDM7CXJ0YXBfaGRyID0gKHZvaWQgKilza2ItJmd0O2RhdGE7CiYjNDM7CWlmIChydGFwX2hkci0mZ3Q7aXRfdmVyc2lvbikKJiM0MzsJCWdvdG8gZHJvcDsKJiM0MzsKIAlydGFwX2xlbiA9IGllZWU4MDIxMV9nZXRfcmFkaW90YXBfbGVuKHNrYi0mZ3Q7ZGF0YSk7Ci0JaWYgKHNrYi0mZ3Q7bGVuICZsdDsgcnRhcF9sZW4pCi0JCXJldHVybiAtMTsKJiM0MzsJaWYgKHJ0YXBfbGVuICZsdDsgc2l6ZW9mKCpydGFwX2hkcikgfHwgc2tiLSZndDtsZW4gJmx0OyBydGFwX2xlbikKJiM0MzsJCWdvdG8gZHJvcDsKIAogCXNrYl9wdWxsKHNrYiwgcnRhcF9sZW4pOwomIzQzOwloZHJfbGVuID0gaWVlZTgwMjExX2dldF9oZHJsZW5fZnJvbV9za2Ioc2tiKTsKJiM0MzsJaWYgKGhkcl9sZW4gJmx0OyBzaXplb2YoKmhkcikpCiYjNDM7CQlnb3RvIGRyb3A7CiAKLQlpZiAoc2tiLSZndDtkYXRhWzBdID09IDB4YzAgJmFtcDsmYW1wOyBpc19icm9hZGNhc3RfZXRoZXJfYWRkcigmYW1wO3NrYi0mZ3Q7ZGF0YVs0XSkpIHsKJiM0MzsJaGRyID0gKHZvaWQgKilza2ItJmd0O2RhdGE7CiYjNDM7CiYjNDM7CWlmIChpZWVlODAyMTFfaXNfZGVhdXRoKGhkci0mZ3Q7ZnJhbWVfY29udHJvbCkgJmFtcDsmYW1wOwomIzQzOwkgICAgaXNfYnJvYWRjYXN0X2V0aGVyX2FkZHIoaGRyLSZndDthZGRyMSkpIHsKIAkJc2tiMiA9IGRldl9hbGxvY19za2Ioc2tiLSZndDtsZW4gJiM0Mzsgc2l6ZW9mKCpjYl9oZHIpKTsKIAkJaWYgKCFza2IyKQogCQkJcmV0dXJuIC1FTk9NRU07CkBAIC0xOTEsOCAmIzQzOzIwNyw4IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCB3aWxjX3dmaV9tb25feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCX0KIAlza2ItJmd0O2RldiA9IG1vbl9wcml2LSZndDtyZWFsX25kZXY7CiAKLQlldGhlcl9hZGRyX2NvcHkoc3JjYWRkLCAmYW1wO3NrYi0mZ3Q7ZGF0YVsxMF0pOwotCWV0aGVyX2FkZHJfY29weShic3NpZCwgJmFtcDtza2ItJmd0O2RhdGFbMTZdKTsKJiM0MzsJZXRoZXJfYWRkcl9jb3B5KHNyY2FkZCwgaGRyLSZndDthZGRyMik7CiYjNDM7CWV0aGVyX2FkZHJfY29weShic3NpZCwgaGRyLSZndDthZGRyMyk7CiAJLyoKIAkgKiBJZGVudGlmeSBpZiBkYXRhIG9yIG1nbXQgcGFja2V0LCBpZiBzb3VyY2UgYWRkcmVzcyBhbmQgYnNzaWQKIAkgKiBmaWVsZHMgYXJlIGVxdWFsIHNlbmQgaXQgdG8gbWdtdCBmcmFtZXMgaGFuZGxlcgpAQCAtMjA3LDYgJiM0MzsyMjMsMTAgQEAgc3RhdGljIG5ldGRldl90eF90IHdpbGNfd2ZpX21vbl94bWl0KHN0cnVjdCBza19idWZmICpza2IsCiAJfQogCiAJcmV0dXJuIHJldDsKJiM0MzsKJiM0Mztkcm9wOgomIzQzOwlkZXZfa2ZyZWVfc2tiKHNrYik7CiYjNDM7CXJldHVybiBORVRERVZfVFhfT0s7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgd2lsY193ZmlfbmV0ZGV2X29wcyA9IHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg0NAoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDE3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIGB3aWxjX3dmaV9tb25feG1pdGAgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgd2lsY193ZmlfbW9uX3htaXRgIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jYC4gUmlnaHQsIHRoYXQmIzM5O3MgdGhlIGRyaXZlciBmb3IgdGhlIE1pY3JvY2hpcCBXSUxDMTAwMCB3aXJlbGVzcyBjaGlwcy4gTXkgZmlyc3QgcXVlc3Rpb24gaXMgYWx3YXlzIHdoZXRoZXIgdGhpcyBkcml2ZXIgaXMgZXZlbiAqcmVhY2hhYmxlKiBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBUaGVzZSBoYXJkd2FyZS1zcGVjaWZpYyB3aXJlbGVzcyBkcml2ZXJzLCBsaWtlIHRoZSB3aWxjMTAwMCwgdXN1YWxseSBkZXBlbmQgb24gdGhlIHBoeXNpY2FsIGhhcmR3YXJlIGJlaW5nIHByZXNlbnQsIHdoaWNoIHBvc2VzIGEgaHVnZSBodXJkbGUgZm9yIGZ1enppbmcgYW5kIHRlc3RpbmcuCgpJIG5lZWQgdG8gcXVpY2tseSBmaWd1cmUgb3V0IGlmIHRoaXMgaXMgc29tZSBraW5kIG9mIHNvZnR3YXJlLWVtdWxhdGVkIHZlcnNpb24gb2YgdGhlIGhhcmR3YXJlLCBvciBpZiB0aGVyZSYjMzk7cyBhbnkgY2xldmVyIHdheSB0byBtYWtlIGl0IHdvcmsgd2l0aG91dCB0aGUgYWN0dWFsIGNoaXAuIEkgcmVtZW1iZXIgc3l6a2FsbGVyIGhhcyBzb21lIHBhY2tldCBpbmplY3Rpb24gY2FwYWJpbGl0aWVzIGZvciBuZXQgZGV2aWNlcywgYnV0IHRoYXQgd29uJiMzOTt0IGhlbHAgaWYgdGhlIGRldmljZSBpdHNlbGYgY2FuJiMzOTt0IGV2ZW4gYmUgaW5zdGFudGlhdGVkIGluIHRoZSBmaXJzdCBwbGFjZSwgb3IgYm91bmQgdG8gYSBuZXR3b3JrIG5hbWVzcGFjZS4gU28sIGJlZm9yZSBJIGdvIGRvd24gdGhhdCByYWJiaXQgaG9sZSwgSSBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoaXMgZHJpdmVyLiBMZXQgbWUgZGlnIGludG8gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9LY29uZmlnYC4gSG9wZWZ1bGx5LCB0aGF0IHdpbGwgZ2l2ZSBtZSBzb21lIGNsdWVzIGFzIHRvIHRoZSBkcml2ZXImIzM5O3MgZGVwZW5kZW5jaWVzIGFuZCBjb25maWd1cmF0aW9uIG9wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG4gICAyOlx0Y29uZmlnIFdJTEMxMDAwXG4gICAzOlx0XHR0cmlzdGF0ZVxuICAgNDpcdFx0aGVscFxuICAgNTpcdFx0ICBBZGQgc3VwcG9ydCBmb3IgdGhlIEF0bWVsIFdJTEMxMDAwIDgwMi4xMSBiL2cvbiBTb0MuXG4gICA2Olx0XHQgIFRoaXMgcHJvdmlkZXMgV2ktRkkgb3ZlciBhbiBTRElPIG9yIFNQSSBpbnRlcmZhY2UsIGFuZFxuICAgNzpcdFx0ICBpcyB1c3VhbGx5IGZvdW5kIGluIElvVCBkZXZpY2VzLlxuICAgODpcdFxuICAgOTpcdFx0ICBUaGlzIG1vZHVsZSBvbmx5IHN1cHBvcnQgSUVFRSA4MDIuMTFuIFdpRmkuXG4gIDEwOlx0XG4gIDExOlx0Y29uZmlnIFdJTEMxMDAwX1NESU9cbiAgMTI6XHRcdHRyaXN0YXRlIFwmIzM0O0F0bWVsIFdJTEMxMDAwIFNESU8gKFdpRmkgb25seSlcJiMzNDtcbiAgMTM6XHRcdGRlcGVuZHMgb24gQ0ZHODAyMTEgXHUwMDI2XHUwMDI2IElORVQgXHUwMDI2XHUwMDI2IE1NQ1xuICAxNDpcdFx0c2VsZWN0IFdJTEMxMDAwXG4gIDE1Olx0XHRoZWxwXG4gIDE2Olx0XHQgIFRoaXMgbW9kdWxlIGFkZHMgc3VwcG9ydCBmb3IgdGhlIFNESU8gaW50ZXJmYWNlIG9mIGFkYXB0ZXJzIHVzaW5nXG4gIDE3Olx0XHQgIFdJTEMxMDAwIGNoaXBzZXQuIFRoZSBBdG1lbCBXSUxDMTAwMCBTRElPIGlzIGEgZnVsbCBzcGVlZCBpbnRlcmZhY2UuXG4gIDE4Olx0XHQgIEl0IG1lZXRzIFNESU8gY2FyZCBzcGVjaWZpY2F0aW9uIHZlcnNpb24gMi4wLiBUaGUgaW50ZXJmYWNlIHN1cHBvcnRzXG4gIDE5Olx0XHQgIHRoZSAxLWJpdC80LWJpdCBTRCB0cmFuc2ZlciBtb2RlIGF0IHRoZSBjbG9jayByYW5nZSBvZiAwLTUwIE1Iei5cbiAgMjA6XHRcdCAgVGhlIGhvc3QgY2FuIHVzZSB0aGlzIGludGVyZmFjZSB0byByZWFkIGFuZCB3cml0ZSBmcm9tIGFueSByZWdpc3RlclxuICAyMTpcdFx0ICB3aXRoaW4gdGhlIGNoaXAgYXMgd2VsbCBhcyBjb25maWd1cmUgdGhlIFdJTEMxMDAwIGZvciBkYXRhIERNQS5cbiAgMjI6XHRcdCAgVG8gdXNlIHRoaXMgaW50ZXJmYWNlLCBwaW45IChTRElPX1NQSV9DRkcpIG11c3QgYmUgZ3JvdW5kZWQuIFNlbGVjdFxuICAyMzpcdFx0ICB0aGlzIGlmIHlvdXIgcGxhdGZvcm0gaXMgdXNpbmcgdGhlIFNESU8gYnVzLlxuICAyNDpcdFxuICAyNTpcdGNvbmZpZyBXSUxDMTAwMF9TUElcbiAgMjY6XHRcdHRyaXN0YXRlIFwmIzM0O0F0bWVsIFdJTEMxMDAwIFNQSSAoV2lGaSBvbmx5KVwmIzM0O1xuICAyNzpcdFx0ZGVwZW5kcyBvbiBDRkc4MDIxMSBcdTAwMjZcdTAwMjYgSU5FVCBcdTAwMjZcdTAwMjYgU1BJXG4gIDI4Olx0XHRzZWxlY3QgV0lMQzEwMDBcbiAgMjk6XHRcdHNlbGVjdCBDUkM3XG4gIDMwOlx0XHRzZWxlY3QgQ1JDX0lUVV9UXG4gIDMxOlx0XHRoZWxwXG4gIDMyOlx0XHQgIFRoaXMgbW9kdWxlIGFkZHMgc3VwcG9ydCBmb3IgdGhlIFNQSSBpbnRlcmZhY2Ugb2YgYWRhcHRlcnMgdXNpbmdcbiAgMzM6XHRcdCAgV0lMQzEwMDAgY2hpcHNldC4gVGhlIEF0bWVsIFdJTEMxMDAwIGhhcyBhIFNlcmlhbCBQZXJpcGhlcmFsXG4gIDM0Olx0XHQgIEludGVyZmFjZSAoU1BJKSB0aGF0IG9wZXJhdGVzIGFzIGEgU1BJIHNsYXZlLiBUaGlzIFNQSSBpbnRlcmZhY2UgY2FuXG4gIDM1Olx0XHQgIGJlIHVzZWQgZm9yIGNvbnRyb2wgYW5kIGZvciBzZXJpYWwgSS9PIG9mIDgwMi4xMSBkYXRhLiBUaGUgU1BJIGlzIGFcbiAgMzY6XHRcdCAgZnVsbC1kdXBsZXggc2xhdmUgc3luY2hyb25vdXMgc2VyaWFsIGludGVyZmFjZSB0aGF0IGlzIGF2YWlsYWJsZVxuICAzNzpcdFx0ICBpbW1lZGlhdGVseSBmb2xsb3dpbmcgcmVzZXQgd2hlbiBwaW4gOSAoU0RJT19TUElfQ0ZHKSBpcyB0aWVkIHRvXG4gIDM4Olx0XHQgIFZERElPLiBTZWxlY3QgdGhpcyBpZiB5b3VyIHBsYXRmb3JtIGlzIHVzaW5nIHRoZSBTUEkgYnVzLlxuICAzOTpcdFxuICA0MDpcdGNvbmZpZyBXSUxDMTAwMF9IV19PT0JfSU5UUlxuICA0MTpcdFx0Ym9vbCBcJiMzNDtXSUxDMTAwMCBvdXQgb2YgYmFuZCBpbnRlcnJ1cHRcJiMzNDtcbiAgNDI6XHRcdGRlcGVuZHMgb24gV0lMQzEwMDBfU0RJT1xuICA0MzpcdFx0aGVscFxuICA0NDpcdFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIG91dC1vZi1iYW5kIGludGVycnVwdCBzdXBwb3J0IGZvciB0aGUgV0lMQzEwMDBcbiAgNDU6XHRcdCAgY2hpcHNldC4gVGhpcyBPT0IgaW50ZXJydXB0IGlzIGludGVuZGVkIHRvIHByb3ZpZGUgYSBmYXN0ZXIgaW50ZXJydXB0XG4gIDQ2Olx0XHQgIG1lY2hhbmlzbSBmb3IgU0RJTyBob3N0IGNvbnRyb2xsZXJzIHRoYXQgZG9uJiMzOTt0IHN1cHBvcnQgU0RJTyBpbnRlcnJ1cHQuXG4gIDQ3Olx0XHQgIFNlbGVjdCB0aGlzIG9wdGlvbiBJZiB0aGUgU0RJTyBob3N0IGNvbnRyb2xsZXIgaW4geW91ciBwbGF0Zm9ybVxuICA0ODpcdFx0ICBkb2VzbiYjMzk7dCBzdXBwb3J0IFNESU8gdGltZSBkaXZpc2lvbiBpbnRlcnJ1cHQuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDIxMwoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDI1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBBdG1lbCBXSUxDMTAwMCBEcml2ZXIgaW4gUUVNVSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBBdG1lbCBXSUxDMTAwMCBkcml2ZXIsIHNwZWNpZmljYWxseSBmb3IgU0RJTy9TUEkuIFRoZSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGNhbiBJIGluc3RhbnRpYXRlIHRoaXMgdGhpbmcgd2l0aGluIGEgUUVNVSBlbnZpcm9ubWVudD8gR2VuZXJhbGx5LCBJJiMzOTtkIGV4cGVjdCBTRElPIGFuZCBTUEkgZGV2aWNlcyB0byBiZSB0cmlja3kg4oCTIHR5cGljYWxseSwgeW91IG5lZWQgdG8gbW9jayB0aGVtLCB3aGljaCBpcyBwb3NzaWJsZSwgYnV0IHVzdWFsbHksIHRoYXQgbWVhbnMgcGh5c2ljYWwgaGFyZHdhcmUgb3IgdmVyeSBzcGVjaWZpYyBib2FyZCBlbXVsYXRpb24uCgpXYWl0IGEgc2Vjb25kLCB0aG91Z2guLi4gaXNuJiMzOTt0IHRoZXJlIHNvbWV0aGluZyBhYm91dCBzeXprYWxsZXI/IFllYWgsIGl0IHN1cHBvcnRzIGluamVjdGluZyBkZXZpY2VzIHZpYSBgbWFjODAyMTFfaHdzaW1gLCBidXQgdGhpcyBpcyBhICpzcGVjaWZpYyogZHJpdmVyLCB0aGUgV0lMQzEwMDAuIFNvIGhvdyYjMzk7cyB0aGlzIGdvaW5nIHRvIHdvcms/CgpIb2xkIG9uLCBJIHNlZSBhIHN5emthbGxlciByZXBvcnQsICYjMzQ7c3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3JiMzNDsuIFRoYXQmIzM5O3MgaW50ZXJlc3RpbmcsIHRoZSBhdXRob3IgaXMgaWRlbnRpZmllZCBhcyBzeXotY2x1c3Rlci4gQnV0IHRoZW4sIHRoZSBjb21taXQgc2F5cyB0aGUgcGF0Y2ggaXMgKnVuZGVyIHJldmlldyosIHlldCBzeXprYWxsZXIgZm91bmQgYSBidWc/IFRoYXQgc2VlbXMgY29udHJhZGljdG9yeS4gTGV0JiMzOTtzIHNlZSBpZiBzeXprYWxsZXIgY2FuIGV2ZW4gKnJlYWNoKiB0aGlzIGRyaXZlci4KCkhtbSwgc3l6a2FsbGVyICpkb2VzKiBoYXZlIG1ldGhvZHMgZm9yIGNyZWF0aW5nIG5ldCBkZXZpY2VzLiBNYXliZSB0aGUgV0lMQzEwMDAgZHJpdmVyIHJlZ2lzdGVycyBhIG5ldCBkZXZpY2U/IElmIHNvLCBjb3VsZCBJIGNyZWF0ZSBpdCB1c2luZyBuZXRsaW5rIGNvbW1hbmRzLCBsaWtlIGBpcCBsaW5rIGFkZCB0eXBlIC4uLmA/IE9yIGlzIGl0IHBlcmhhcHMgYSB2aXJ0dWFsIGRldmljZT8KCk9rYXksIGxldCBtZSBjaGVjayBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jYC4gSSYjMzk7bGwgc3RhcnQgd2l0aCBgd2lsY193ZmlfbW9uX3htaXRgIGFuZCBzZWUgd2hhdCBpdCYjMzk7cyBkb2luZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt3aWxjX3dmaV9tb25feG1pdCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmM9MTE1PXN0YXRpYyBpbnQgbW9uX21nbXRfdHgoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgY29uc3QgdTggKmJ1Ziwgc2l6ZV90IGxlbilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMTQxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jOjE0MjpzdGF0aWMgbmV0ZGV2X3R4X3Qgd2lsY193ZmlfbW9uX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYy0xNDMtXHRcdFx0XHQgICAgIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jPTIzMj1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHdpbGNfd2ZpX25ldGRldl9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmM6MjMzOlx0Lm5kb19zdGFydF94bWl0ICAgICAgICAgPSB3aWxjX3dmaV9tb25feG1pdCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYy0yMzQtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTE0MgoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDMyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLgoKKipEaXZpbmcgaW50byB0aGUgTmV0d29yayBEcml2ZXImIzM5O3MgVHJhbnNtaXNzaW9uIFBhdGgqKgoKUmlnaHQsIHNvIEkmIzM5O20gbG9va2luZyBhdCBgbmRvX3N0YXJ0X3htaXRgLiBUaGF0JiMzOTtzIHRoZSBmdW5jdGlvbiBjYWxsZWQgd2l0aGluIHRoZSBgd2lsY193ZmlfbmV0ZGV2X29wc2Agc3RydWN0dXJlIHRvIGhhbmRsZSB0cmFuc21pc3Npb24gZnJvbSB0aGUgd2lyZWxlc3MgY2FyZC4gVGhhdCYjMzk7cyBhIGtleSBlbnRyeSBwb2ludCwgdGhlIGNyaXRpY2FsIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIGEgcGFja2V0IG5lZWRzIHRvIGdvIG91dCBvdmVyIHRoZSBhaXIuIEJ1dCwgZmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBsYXJnZXIgY29udGV4dC4gSG93IGlzIHRoaXMgbmV0d29yayBkZXZpY2UsIHRoZSB0aGluZyB0aGF0IGhvdXNlcyBhbGwgdGhlc2Ugb3BlcmF0aW9ucywgYWN0dWFsbHkgY3JlYXRlZCBpbiB0aGUgZmlyc3QgcGxhY2U/IFdoZXJlIGRvZXMgYHdpbGNfd2ZpX25ldGRldl9vcHNgIGdldCBwb3B1bGF0ZWQ/IElzIGl0IGR1cmluZyB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1vZHVsZSwgd2hlbiB0aGUgZGV2aWNlIHJlZ2lzdGVycyB3aXRoIHRoZSBrZXJuZWwsIG9yIHNvbWUgb3RoZXIgcGFydCBvZiB0aGUgYm9vdCBwcm9jZXNzPyBLbm93aW5nIHRoaXMgc2hvdWxkIGdpdmUgbWUgYmV0dGVyIGluc2lnaHQgaW50byB0aGUgd2hvbGUgZHJpdmVyJiMzOTtzIGluaXRpYWxpemF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3dpbGNfd2ZpX25ldGRldl9vcHMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jPTE0Mj1zdGF0aWMgbmV0ZGV2X3R4X3Qgd2lsY193ZmlfbW9uX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMjMxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jOjIzMjpzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHdpbGNfd2ZpX25ldGRldl9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMjMzLVx0Lm5kb19zdGFydF94bWl0ICAgICAgICAgPSB3aWxjX3dmaV9tb25feG1pdCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmM9MjM3PXN0cnVjdCBuZXRfZGV2aWNlICp3aWxjX3dmaV9pbml0X21vbl9pbnRlcmZhY2Uoc3RydWN0IHdpbGMgKndsLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYy0yNTItXHRzdHJzY3B5KHdsLVx1MDAzZW1vbml0b3JfZGV2LVx1MDAzZW5hbWUsIG5hbWUsIElGTkFNU0laKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYzoyNTM6XHR3bC1cdTAwM2Vtb25pdG9yX2Rldi1cdTAwM2VuZXRkZXZfb3BzID0gXHUwMDI2d2lsY193ZmlfbmV0ZGV2X29wcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYy0yNTQtXHR3bC1cdTAwM2Vtb25pdG9yX2Rldi1cdTAwM2VuZWVkc19mcmVlX25ldGRldiA9IHRydWU7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTc0OAoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDI4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBgd2lsY193ZmlfaW5pdF9tb25faW50ZXJmYWNlYCBGdW5jdGlvbioqCgpBbHJpZ2h0LCBzbyBgd2lsY193ZmlfaW5pdF9tb25faW50ZXJmYWNlYCBpcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhlIG5ldHdvcmsgZGV2aWNlLCB0aGUgY29yZSBvZiB0aGUgbW9uaXRvcmluZyBpbnRlcmZhY2UuIE15IGZpcnN0IGluc3RpbmN0LCBhcyBhbHdheXMsIGlzIHRvIHVuZGVyc3RhbmQgaXRzIHBsYWNlIGluIHRoZSBzeXN0ZW0uIFRoZSBuZXh0IHN0ZXAgaXMgY2xlYXI6IGxldCYjMzk7cyB0cmFjZSBpdHMgY2FsbCBncmFwaC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgYW5kIGhvdyB0aGlzIGZ1bmN0aW9uIGlzIGludm9rZWQuIEtub3dpbmcgdGhlIGNhbGxpbmcgY29udGV4dCBpcyBjcnVjaWFsLiBXaGF0IHRyaWdnZXJzIHRoaXMgY3JlYXRpb24/IElzIGl0IG9uIG1vZHVsZSBsb2FkLCBzcGVjaWZpYyBldmVudHMsIG9yIHNvbWV0aGluZyBlbHNlIGVudGlyZWx5PyBBIHF1aWNrIGNvZGUgZGl2ZSBzaG91bGQgcmV2ZWFsIHRoZSByZWxldmFudCBjYWxsIHNpdGVzLiBUaGUgZ29hbCBpcyB0byBmdWxseSBncmFzcCB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgYW5kIGRlcGVuZGVuY2llcyBmb3IgdGhpcyBwYXJ0aWN1bGFyIG1vbml0b3JpbmcgaW50ZXJmYWNlLiBVbmRlcnN0YW5kaW5nIHRoZSBpbml0aWFsIGNvbnRleHQgaXMgdml0YWwgdG8gdW5kZXJzdGFuZCB0aGUgbW9uaXRvcmluZyBpbnRlcmZhY2UmIzM5O3MgbGlmZWN5Y2xlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt3aWxjX3dmaV9pbml0X21vbl9pbnRlcmZhY2UmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9MTUyMj1zdGF0aWMgc3RydWN0IHdpcmVsZXNzX2RldiAqYWRkX3ZpcnR1YWxfaW50ZihzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTE1NTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxNTUyOlx0XHRuZGV2ID0gd2lsY193ZmlfaW5pdF9tb25faW50ZXJmYWNlKHdsLCBuYW1lLCB2aWYtXHUwMDNlbmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xNTUzLVx0XHRpZiAobmRldikge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5oPTE3PXZvaWQgd2lsY193ZmlfZGVpbml0X21vbl9pbnRlcmZhY2Uoc3RydWN0IHdpbGMgKndsLCBib29sIHJ0bmxfbG9ja2VkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5oOjE4OnN0cnVjdCBuZXRfZGV2aWNlICp3aWxjX3dmaV9pbml0X21vbl9pbnRlcmZhY2Uoc3RydWN0IHdpbGMgKndsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmgtMTktXHRcdFx0XHRcdCAgICAgICBjb25zdCBjaGFyICpuYW1lLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYz0yMzI9c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyB3aWxjX3dmaV9uZXRkZXZfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYy0yMzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmM6MjM3OnN0cnVjdCBuZXRfZGV2aWNlICp3aWxjX3dmaV9pbml0X21vbl9pbnRlcmZhY2Uoc3RydWN0IHdpbGMgKndsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jLTIzOC1cdFx0XHRcdFx0ICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY0NzUKCQkJCQkJCW91dHB1dDogMTYKCQkJCQkJCXRob3VnaHRzOiAzMzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBgYWRkX3ZpcnR1YWxfaW50ZmAgQ2FsbCBQYXRoKioKCk9rYXksIHNvIGBhZGRfdmlydHVhbF9pbnRmYCBpcyBhIGBjZmc4MDIxMWAgY2FsbGJhY2suIFRoYXQgbWVhbnMgaWYgdGhlIGRldmljZSBpcyBwcmVzZW50LCBzeXprYWxsZXIgKmNvdWxkKiB1c2UgbmV0bGluayAoYG5sODAyMTFgKSB0byBjcmVhdGUgYSBtb25pdG9yIGludGVyZmFjZSBhbmQgdGhlbiBpbmplY3QgcGFja2V0cywgd2hpY2ggc2hvdWxkIGxlYWQgdG8gYHdpbGNfd2ZpX21vbl94bWl0YC4gVGhlIGtleSBxdWVzdGlvbiBpczogaXMgdGhlIGB3aWxjMTAwMGAgZGV2aWNlIGV2ZW4gcHJlc2VudCBpbiB0aGlzIHZpcnR1YWxpemVkIGVudmlyb25tZW50PwoKVGhpcyBkcml2ZXImIzM5O3MgZm9yIGFuIFNESU8vU1BJIGRldmljZSwgd2hpY2ggcmFpc2VzIGEgcmVkIGZsYWcuIFVubGVzcyB0aGVyZSYjMzk7cyBzb21lIGtpbmQgb2YgbW9ja2luZyBtZWNoYW5pc20sIHRoZSBkcml2ZXIgKndvbiYjMzk7dCogcHJvYmUsIGFuZCB0aGF0IGBhZGRfdmlydHVhbF9pbnRmYCBmdW5jdGlvbiBjYWxsIGlzIGdvaW5nIHRvIGJlIHVucmVhY2hhYmxlIGJlY2F1c2UgdGhlIGRyaXZlciBkb2VzbiYjMzk7dCByZWdpc3RlciBhIFdpLUZpIHBoeXNpY2FsIGRldmljZSAoYHdpcGh5YCkuIFNvLCBJIG5lZWQgdG8gaW52ZXN0aWdhdGUgYW55IHBvdGVudGlhbCBtb2NraW5nIGNhcGFiaWxpdGllcyBvciBzb2Z0d2FyZSBidXMgcHJvYmluZyBwb3NzaWJpbGl0aWVzLgoKU0RJTyBhbmQgU1BJIGRldmljZXMgYXJlIHR5cGljYWxseSBhYnNlbnQgaW4gYSBzdGFuZGFyZCB4ODYgUUVNVSBzZXR1cCwgdW5sZXNzIGV4cGxpY2l0bHkgY29uZmlndXJlZCwgYW5kIHN5emthbGxlciwgdG8gbXkga25vd2xlZGdlLCBkb2VzbiYjMzk7dCBoYXZlIGEgZ2VuZXJpYyB3YXkgdG8gbW9jayB0aGVzZS4gVW5sZXNzLi4uIGlzIHRoZXJlIGEgc3l6a2FsbGVyIHBzZXVkby1kZXZpY2UsIG9yIGlzIGl0IGEgVVNCIGRldmljZSBtYXNxdWVyYWRpbmc/IExldCYjMzk7cyBjaGVjay4uLiBubywgdGhlIEtjb25maWcgb3B0aW9ucyBzcGVjaWZ5IFNESU8gYW5kIFNQSS4KClJpZ2h0LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBzeXprYWxsZXImIzM5O3MgZGV2aWNlIGluamVjdGlvbiBjYXBhYmlsaXRpZXMuIENhbiBzeXprYWxsZXIgcHJvYmUgU1BJIG9yIFNESU8gZGV2aWNlcywgcGVyaW9kPyBJIGtub3cgaXQgaGFzIHNvbWUgVVNCIGFuZCBQQ0kgZGV2aWNlIGluamVjdGlvbiBmZWF0dXJlcywgYnV0IEkgZG9uJiMzOTt0IHJlY2FsbCBzZWVpbmcgYW55IGdlbmVyaWMgc3VwcG9ydCBmb3IgU0RJTyBvciBTUEkuCgpIb2xkIG9uLi4uIHBlcmhhcHMgdGhlcmUmIzM5O3MgYSB3b3JrYXJvdW5kPyBJIG5lZWQgdG8gZXhwbG9yZSBpZiB0aGVyZSYjMzk7cyBhbnkgb3RoZXIgYXZlbnVlIHRvIHRyaWdnZXIgdGhpcyBiZWhhdmlvci4gTGV0IG1lIHNlZSBpZiB0aGVyZSBhcmUgYW55IGV4aXN0aW5nIHN5emthbGxlciBkZXNjcmlwdGlvbnMgZm9yIHdpbGMxMDAwLiBUaGF0JiMzOTtzIHRoZSBsb2dpY2FsIG5leHQgc3RlcC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7d2lsYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjEyMCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuLm1haWxtYXA9NDkzPUtyenlzenRvZiBLb3psb3dza2kgXHUwMDNja3J6a0BrZXJuZWwub3JnXHUwMDNlIFx1MDAzY2tyenlzenRvZi5rb3psb3dza2lAbGluYXJvLm9yZ1x1MDAzZVxuLm1haWxtYXA6NDk0OktyenlzenRvZiBXaWxjennFhHNraSBcdTAwM2Nrd2lsY3p5bnNraUBrZXJuZWwub3JnXHUwMDNlIFx1MDAzY2tyenlzenRvZi53aWxjenluc2tpQGxpbnV4LmNvbVx1MDAzZVxuLm1haWxtYXA6NDk1OktyenlzenRvZiBXaWxjennFhHNraSBcdTAwM2Nrd2lsY3p5bnNraUBrZXJuZWwub3JnXHUwMDNlIFx1MDAzY2t3QGxpbnV4LmNvbVx1MDAzZVxuLm1haWxtYXAtNDk2LUtzaGl0aXogR29kYXJhIFx1MDAzY3F1aWNfa2dvZGFyYUBxdWljaW5jLmNvbVx1MDAzZSBcdTAwM2NrZ29kYXJhQGNvZGVhdXJvcmEub3JnXHUwMDNlXG4tLVxuLm1haWxtYXA9NTY3PU1hdCBNYXJ0aW5lYXUgXHUwMDNjbWFydGluZWF1QGtlcm5lbC5vcmdcdTAwM2UgXHUwMDNjbWF0aGV3bUBjb2RlYXVyb3JhLm9yZ1x1MDAzZVxuLm1haWxtYXA6NTY4Ok1hdHRoZXcgV2lsY294IFx1MDAzY3dpbGx5QGluZnJhZGVhZC5vcmdcdTAwM2UgXHUwMDNjbWF0dGhldy5yLndpbGNveEBpbnRlbC5jb21cdTAwM2Vcbi5tYWlsbWFwLTU2OS1NYXR0aGV3IFdpbGNveCBcdTAwM2N3aWxseUBpbmZyYWRlYWQub3JnXHUwMDNlIFx1MDAzY21hdHRoZXdAd2lsLmN4XHUwMDNlXG4ubWFpbG1hcDo1NzA6TWF0dGhldyBXaWxjb3ggXHUwMDNjd2lsbHlAaW5mcmFkZWFkLm9yZ1x1MDAzZSBcdTAwM2NtYXdpbGNveEBsaW51eG9uaHlwZXJ2LmNvbVx1MDAzZVxuLm1haWxtYXA6NTcxOk1hdHRoZXcgV2lsY294IFx1MDAzY3dpbGx5QGluZnJhZGVhZC5vcmdcdTAwM2UgXHUwMDNjbWF3aWxjb3hAbWljcm9zb2Z0LmNvbVx1MDAzZVxuLm1haWxtYXAtNTcyLU1hdHRoZXcgV2lsY294IFx1MDAzY3dpbGx5QGluZnJhZGVhZC5vcmdcdTAwM2UgXHUwMDNjd2lsbHlAZGViaWFuLm9yZ1x1MDAzZVxuLS1cbi5tYWlsbWFwPTg1OD1TdmVuIFBldGVyIFx1MDAzY3N2ZW5Aa2VybmVsLm9yZ1x1MDAzZSBcdTAwM2NzdmVuQHN2ZW5wZXRlci5kZXZcdTAwM2Vcbi5tYWlsbWFwOjg1OTpTenltb24gV2lsY3playBcdTAwM2Nzd2lsY3play5seEBnbWFpbC5jb21cdTAwM2UgXHUwMDNjc3p5bW9ud2lsY3pla0BnbXguY29tXHUwMDNlXG4ubWFpbG1hcC04NjAtVGFrYXNoaSBZT1NISUkgXHUwMDNjdGFrYXNoaS55b3NoaWkuempAcmVuZXNhcy5jb21cdTAwM2Vcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWM6MTpXaGF0Olx0XHQvc3lzL2tlcm5lbC9kZWJ1Zy93aWxjb19lYy9oMV9ncGlvXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWMtMi1EYXRlOlx0XHRBcHJpbCAyMDE5XG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjPTQ9RGVzY3JpcHRpb246XG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjLTEzLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjOjE0OldoYXQ6XHRcdC9zeXMva2VybmVsL2RlYnVnL3dpbGNvX2VjL3Jhd1xuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjLTE1LURhdGU6XHRcdEphbnVhcnkgMjAxOVxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3RpbmcvZGVidWdmcy13aWxjby1lYz0xNz1EZXNjcmlwdGlvbjpcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWMtMjQtXHRcdEZvciB3cml0aW5nLCBieXRlcyAwLTEgaW5kaWNhdGUgdGhlIG1lc3NhZ2UgdHlwZSwgb25lIG9mIGVudW1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3RpbmcvZGVidWdmcy13aWxjby1lYzoyNTpcdFx0d2lsY29fZWNfbXNnX3R5cGUuIEJ5dGUgMiYjNDM7IGNvbnNpc3Qgb2YgdGhlIGRhdGEgcGFzc2VkIGluIHRoZVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjLTI2LVx0XHRyZXF1ZXN0LCBzdGFydGluZyBhdCBNQk9YWzBdLiBBdCBsZWFzdCB0aHJlZSBieXRlcyBhcmUgcmVxdWlyZWRcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWMtMzQtXHRcdCAgICAvLyBNQk9YID0gWzM4LCAwMCwgMDMsIDAwXVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjOjM1Olx0XHQgICAgJCBlY2hvIDAwIGYwIDM4IDAwIDAzIDAwIFx1MDAzZSAvc3lzL2tlcm5lbC9kZWJ1Zy93aWxjb19lYy9yYXdcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3RpbmcvZGVidWdmcy13aWxjby1lYy0zNi1cdFx0ICAgIC8vIFZpZXcgdGhlIHJlc3VsdC4gVGhlIGRlY29kZWQgQVNDSUkgcmVzdWx0IFwmIzM0OzEyLzIxLzE4XCYjMzQ7IGlzXG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjLTM4LVx0XHQgICAgLy8gQ29ycmVzcG9uZHMgd2l0aCBNQk9YID0gWzAwLCAwMCwgMzEsIDMyLCAyZiwgMzIsIDMxLCAzOCwgLi4uXVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjOjM5Olx0XHQgICAgJCBjYXQgL3N5cy9rZXJuZWwvZGVidWcvd2lsY29fZWMvcmF3XG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWMtNDAtXHRcdCAgICAwMCAwMCAzMSAzMiAyZiAzMiAzMSAyZiAzMSAzOCAwMCAzOCAwMCAwMSAwMCAyZiAwMCAgLi4xMi8yMS8xOC44Li4uXG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1wb3dlci13aWxjbzoxOldoYXQ6XHRcdC9zeXMvY2xhc3MvcG93ZXJfc3VwcGx5L3dpbGNvLWNoYXJnZXIvY2hhcmdlX3R5cGVcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtcG93ZXItd2lsY28tMi1EYXRlOlx0XHRBcHJpbCAyMDE5XG4tLVxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1wb3dlci13aWxjbz00PURlc2NyaXB0aW9uOlxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtcG93ZXItd2lsY28tMjctXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLXBvd2VyLXdpbGNvOjI4OldoYXQ6XHRcdC9zeXMvY2xhc3MvcG93ZXJfc3VwcGx5L3dpbGNvLWNoYXJnZXIvY2hhcmdlX2NvbnRyb2xfc3RhcnRfdGhyZXNob2xkXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLXBvd2VyLXdpbGNvLTI5LURhdGU6XHRcdEFwcmlsIDIwMTlcbi0tXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLXBvd2VyLXdpbGNvPTMxPURlc2NyaXB0aW9uOlxuLS1cbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtcG93ZXItd2lsY28tMzQtXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLXBvd2VyLXdpbGNvOjM1OldoYXQ6XHRcdC9zeXMvY2xhc3MvcG93ZXJfc3VwcGx5L3dpbGNvLWNoYXJnZXIvY2hhcmdlX2NvbnRyb2xfZW5kX3RocmVzaG9sZFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1wb3dlci13aWxjby0zNi1EYXRlOlx0XHRBcHJpbCAyMDE5XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Zpcm13YXJlL3RoZWFkLHRoMTUyMC1hb24ueWFtbD0yMT1tYWludGFpbmVyczpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9maXJtd2FyZS90aGVhZCx0aDE1MjAtYW9uLnlhbWw6MjI6ICAtIE1pY2hhbCBXaWxjenluc2tpIFx1MDAzY20ud2lsY3p5bnNraUBzYW1zdW5nLmNvbVx1MDAzZVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Zpcm13YXJlL3RoZWFkLHRoMTUyMC1hb24ueWFtbC0yMy1cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWFpbGJveC90aGVhZCx0aDE1MjAtbWJveC55YW1sPTE1PW1haW50YWluZXJzOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21haWxib3gvdGhlYWQsdGgxNTIwLW1ib3gueWFtbDoxNjogIC0gTWljaGFsIFdpbGN6eW5za2kgXHUwMDNjbS53aWxjenluc2tpQHNhbXN1bmcuY29tXHUwMDNlXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWFpbGJveC90aGVhZCx0aDE1MjAtbWJveC55YW1sLTE3LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tbWMvbW1jLXB3cnNlcS1zZDg3ODcueWFtbD0xMj1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tbWMvbW1jLXB3cnNlcS1zZDg3ODcueWFtbC0xNS0gICAgICAtIG1tYy1wd3JzZXEtc2Q4Nzg3XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbW1jL21tYy1wd3JzZXEtc2Q4Nzg3LnlhbWw6MTY6ICAgICAgLSBtbWMtcHdyc2VxLXdpbGMxMDAwXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbW1jL21tYy1wd3JzZXEtc2Q4Nzg3LnlhbWwtMTctXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC0zLS0tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw9MTM9ZGVzY3JpcHRpb246XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sOjE0OiAgVGhlIHdpbGMxMDAwIGNoaXBzIGNhbiBiZSBjb25uZWN0ZWQgdmlhIFNQSSBvciBTRElPLiBUaGlzIGRvY3VtZW50XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sOjE1OiAgZGVzY3JpYmVzIHRoZSBiaW5kaW5nIHRvIGNvbm5lY3Qgd2lsYyBkZXZpY2VzLlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC0xNi1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw9MTc9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTIwLSAgICAgIC0gaXRlbXM6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sOjIxOiAgICAgICAgICAtIGNvbnN0OiBtaWNyb2NoaXAsd2lsYzMwMDBcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6MjI6ICAgICAgICAgIC0gY29uc3Q6IG1pY3JvY2hpcCx3aWxjMTAwMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDoyMzogICAgICAtIGNvbnN0OiBtaWNyb2NoaXAsd2lsYzEwMDBcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtMjQtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC0zOC0gICAgbWF4SXRlbXM6IDFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6Mzk6ICAgIGRlc2NyaXB0aW9uOiBVc2VkIGJ5IHdpbGMxMDAwLXNwaSB0byBkZXRlcm1pbmUgdGhlIEdQSU8gbGluZVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC00MC0gICAgICBjb25uZWN0ZWQgdG8gdGhlIEVOQUJMRSBsaW5lLiAgSWYgc3BlY2lmaWVkLCByZXNldC1ncGlvc1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtNDctICAgIG1heEl0ZW1zOiAxXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sOjQ4OiAgICBkZXNjcmlwdGlvbjogVXNlZCBieSB3aWxjMTAwMC1zcGkgdG8gZGV0ZXJtaW5lIHRoZSBHUElPIGxpbmVcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtNDktICAgICAgY29ubmVjdGVkIHRvIHRoZSBSRVNFVCBsaW5lLiAgVGhpcyBzaG91bGQgYmUgZGVjbGFyZWQgYXMgYW5cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sPTYxPWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtNjgtICAgICAgd2lmaUAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6Njk6ICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7bWljcm9jaGlwLHdpbGMxMDAwXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC03MC0gICAgICAgIHNwaS1tYXgtZnJlcXVlbmN5ID0gXHUwMDNjNDgwMDAwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC05MS0gICAgICB3aWZpQDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDo5MjogICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDttaWNyb2NoaXAsd2lsYzEwMDBcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTkzLSAgICAgICAgcmVnID0gXHUwMDNjMFx1MDAzZTtcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcHdtL3RoZWFkLHRoMTUyMC1wd20ueWFtbD05PW1haW50YWluZXJzOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3B3bS90aGVhZCx0aDE1MjAtcHdtLnlhbWw6MTA6ICAtIE1pY2hhbCBXaWxjenluc2tpIFx1MDAzY20ud2lsY3p5bnNraUBzYW1zdW5nLmNvbVx1MDAzZVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3B3bS90aGVhZCx0aDE1MjAtcHdtLnlhbWwtMTEtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Jlc2V0L3RoZWFkLHRoMTUyMC1yZXNldC55YW1sPTEzPW1haW50YWluZXJzOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Jlc2V0L3RoZWFkLHRoMTUyMC1yZXNldC55YW1sOjE0OiAgLSBNaWNoYWwgV2lsY3p5bnNraSBcdTAwM2NtLndpbGN6eW5za2lAc2Ftc3VuZy5jb21cdTAwM2VcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9yZXNldC90aGVhZCx0aDE1MjAtcmVzZXQueWFtbC0xNS1cbi0tXG5NQUlOVEFJTkVSUz0yMDgyMD1NOlx0TWFuaXZhbm5hbiBTYWRoYXNpdmFtIFx1MDAzY21hbmlAa2VybmVsLm9yZ1x1MDAzZVxuTUFJTlRBSU5FUlM6MjA4MjE6TTpcdEtyenlzenRvZiBXaWxjennFhHNraSBcdTAwM2Nrd2lsY3p5bnNraUBrZXJuZWwub3JnXHUwMDNlXG5NQUlOVEFJTkVSUy0yMDgyMi1SOlx0S2lzaG9uIFZpamF5IEFicmFoYW0gSSBcdTAwM2NraXNob25Aa2VybmVsLm9yZ1x1MDAzZVxuLS1cbk1BSU5UQUlORVJTPTIwODcxPU06XHRMb3JlbnpvIFBpZXJhbGlzaSBcdTAwM2NscGllcmFsaXNpQGtlcm5lbC5vcmdcdTAwM2Vcbk1BSU5UQUlORVJTOjIwODcyOk06XHRLcnp5c3p0b2YgV2lsY3p5xYRza2kgXHUwMDNja3dpbGN6eW5za2lAa2VybmVsLm9yZ1x1MDAzZVxuTUFJTlRBSU5FUlMtMjA4NzMtTTpcdE1hbml2YW5uYW4gU2FkaGFzaXZhbSBcdTAwM2NtYW5pQGtlcm5lbC5vcmdcdTAwM2Vcbi0tXG5NQUlOVEFJTkVSUz0yMDkzND1SOlx0Qmpvcm4gSGVsZ2FhcyBcdTAwM2NiaGVsZ2Fhc0Bnb29nbGUuY29tXHUwMDNlXG5NQUlOVEFJTkVSUzoyMDkzNTpSOlx0S3J6eXN6dG9mIFdpbGN6ecWEc2tpIFx1MDAzY2t3aWxjenluc2tpQGtlcm5lbC5vcmdcdTAwM2Vcbk1BSU5UQUlORVJTLTIwOTM2LUw6XHRsaW51eC1wY2lAdmdlci5rZXJuZWwub3JnXG4tLVxuTUFJTlRBSU5FUlM9MjE4NjA9UFdNIFNVQlNZU1RFTSBCSU5ESU5HUyBbUlVTVF1cbk1BSU5UQUlORVJTOjIxODYxOk06XHRNaWNoYWwgV2lsY3p5bnNraSBcdTAwM2NtLndpbGN6eW5za2lAc2Ftc3VuZy5jb21cdTAwM2Vcbk1BSU5UQUlORVJTLTIxODYyLUw6XHRsaW51eC1wd21Admdlci5rZXJuZWwub3JnXG4tLVxuTUFJTlRBSU5FUlM9MjE4Njg9UFdNIFNVQlNZU1RFTSBEUklWRVJTIFtSVVNUXVxuTUFJTlRBSU5FUlM6MjE4Njk6UjpcdE1pY2hhbCBXaWxjenluc2tpIFx1MDAzY20ud2lsY3p5bnNraUBzYW1zdW5nLmNvbVx1MDAzZVxuTUFJTlRBSU5FUlMtMjE4NzAtRjpcdGRyaXZlcnMvcHdtLyoucnNcbi0tXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaT00Mj1cdHdpZmlfcHdyc2VxOiB3aWZpX3B3cnNlcSB7XG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaTo0MzpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21tYy1wd3JzZXEtd2lsYzEwMDBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS00NC1cdFx0cmVzZXQtZ3Bpb3MgPSBcdTAwM2NcdTAwMjZwaW9BIFBJTl9QQTI3IEdQSU9fQUNUSVZFX0hJR0hcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS00NS1cdFx0cG93ZXJkb3duLWdwaW9zID0gXHUwMDNjXHUwMDI2cGlvQSBQSU5fUEEyOSBHUElPX0FDVElWRV9ISUdIXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k6NDY6XHRcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfd2lsY19wd3JzZXFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS00Ny1cdFx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k9MzQ3PVx0XHRjb25mLWNrIHtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS0zNTItXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaTozNTM6XHRwaW5jdHJsX3dpbGNfZGVmYXVsdDogd2lsY19kZWZhdWx0IHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTM1NC1cdFx0Y29uZi1pcnEge1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTM1OS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpOjM2MDpcdHBpbmN0cmxfd2lsY19wd3JzZXE6IHdpbGNfcHdyc2VxIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTM2MS1cdFx0Y29uZi1jZS1ucnN0IHtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaT0zNzQ9XHUwMDI2c2RtbWMxIHtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS0zODUtXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaTozODY6XHR3aWxjOiB3aWZpQDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2ktMzg3LVx0XHRyZWcgPSBcdTAwM2MwXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k6Mzg4Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWljcm9jaGlwLHdpbGMzMDAwXCYjMzQ7LCBcJiMzNDttaWNyb2NoaXAsd2lsYzEwMDBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS0zODktXHRcdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k6MzkwOlx0XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX3dpbGNfZGVmYXVsdFx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTM5MS1cdFx0Y2xvY2tzID0gXHUwMDNjXHUwMDI2cG1jIFBNQ19UWVBFX1NZU1RFTSA5XHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDJfaWNwLmR0cz03MDY9XHUwMDI2cXNwaTEge1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDJfaWNwLmR0cy03MDgtXHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX3FzcGkxX2RlZmF1bHRcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyX2ljcC5kdHM6NzA5Olx0c3RhdHVzID0gXCYjMzQ7ZGlzYWJsZWRcJiMzNDs7IC8qIENvbmZsaWN0IHdpdGggd2lsY19wd3JzZXEsIGZseDIgKi9cbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDJfaWNwLmR0cy03MTAtXG4tLVxuZHJpdmVycy9maXJtd2FyZS90aGVhZCx0aDE1MjAtYW9uLmMtNC0gKiBDb3B5cmlnaHQgKGMpIDIwMjQgU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC5cbmRyaXZlcnMvZmlybXdhcmUvdGhlYWQsdGgxNTIwLWFvbi5jOjU6ICogQXV0aG9yOiBNaWNoYWwgV2lsY3p5bnNraSBcdTAwM2NtLndpbGN6eW5za2lAc2Ftc3VuZy5jb21cdTAwM2VcbmRyaXZlcnMvZmlybXdhcmUvdGhlYWQsdGgxNTIwLWFvbi5jLTYtICovXG4tLVxuZHJpdmVycy9maXJtd2FyZS90aGVhZCx0aDE1MjAtYW9uLmM9MjQ1PUVYUE9SVF9TWU1CT0xfR1BMKHRoMTUyMF9hb25fZGVpbml0KTtcbmRyaXZlcnMvZmlybXdhcmUvdGhlYWQsdGgxNTIwLWFvbi5jLTI0Ni1cbmRyaXZlcnMvZmlybXdhcmUvdGhlYWQsdGgxNTIwLWFvbi5jOjI0NzpNT0RVTEVfQVVUSE9SKFwmIzM0O01pY2hhbCBXaWxjenluc2tpIFx1MDAzY20ud2lsY3p5bnNraUBzYW1zdW5nLmNvbVx1MDAzZVwmIzM0Oyk7XG5kcml2ZXJzL2Zpcm13YXJlL3RoZWFkLHRoMTUyMC1hb24uYy0yNDgtTU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O1QtSEVBRCBUSDE1MjAgQWx3YXlzLU9uIGZpcm13YXJlIHByb3RvY29sIGxpYnJhcnlcJiMzNDspO1xuLS1cbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jPTQ1PXN0YXRpYyB2b2lkIG1tY19wd3JzZXFfc2Q4Nzg3X3Bvd2VyX29mZihzdHJ1Y3QgbW1jX2hvc3QgKmhvc3QpXG4tLVxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmMtNTItXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYzo1MzpzdGF0aWMgdm9pZCBtbWNfcHdyc2VxX3dpbGMxMDAwX3ByZV9wb3dlcl9vbihzdHJ1Y3QgbW1jX2hvc3QgKmhvc3QpXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy01NC17XG4tLVxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmMtNjItXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYzo2MzpzdGF0aWMgdm9pZCBtbWNfcHdyc2VxX3dpbGMxMDAwX3Bvd2VyX29mZihzdHJ1Y3QgbW1jX2hvc3QgKmhvc3QpXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy02NC17XG4tLVxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM9NzE9c3RhdGljIGNvbnN0IHN0cnVjdCBtbWNfcHdyc2VxX29wcyBtbWNfcHdyc2VxX3NkODc4N19vcHMgPSB7XG4tLVxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmMtNzUtXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYzo3NjpzdGF0aWMgY29uc3Qgc3RydWN0IG1tY19wd3JzZXFfb3BzIG1tY19wd3JzZXFfd2lsYzEwMDBfb3BzID0ge1xuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM6Nzc6XHQucHJlX3Bvd2VyX29uID0gbW1jX3B3cnNlcV93aWxjMTAwMF9wcmVfcG93ZXJfb24sXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYzo3ODpcdC5wb3dlcl9vZmYgPSBtbWNfcHdyc2VxX3dpbGMxMDAwX3Bvd2VyX29mZixcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTc5LX07XG4tLVxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM9ODE9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbW1jX3B3cnNlcV9zZDg3ODdfb2ZfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTgyLVx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21tYy1wd3JzZXEtc2Q4Nzg3XCYjMzQ7LCAuZGF0YSA9IFx1MDAyNm1tY19wd3JzZXFfc2Q4Nzg3X29wcyB9LFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM6ODM6XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bW1jLXB3cnNlcS13aWxjMTAwMFwmIzM0OywgLmRhdGEgPSBcdTAwMjZtbWNfcHdyc2VxX3dpbGMxMDAwX29wcyB9LFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmMtODQtXHR7Lyogc2VudGluZWwgKi99LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC9LY29uZmlnPTEzPWlmIFdMQU5fVkVORE9SX01JQ1JPQ0hJUFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL0tjb25maWc6MTQ6c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9LY29uZmlnXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvS2NvbmZpZy0xNS1lbmRpZiAjIFdMQU5fVkVORE9SX01JQ1JPQ0hJUFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC9NYWtlZmlsZToyOm9iai0kKENPTkZJR19XSUxDMTAwMClcdFx0JiM0Mzs9IHdpbGMxMDAwL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZToyOm9iai0kKENPTkZJR19XSUxDMTAwMCkgJiM0Mzs9IHdpbGMxMDAwLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS0zLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjQ6d2lsYzEwMDAtb2JqcyA6PSBjZmc4MDIxMS5vIG5ldGRldi5vIG1vbi5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGUtNS1cdFx0XHRoaWYubyB3bGFuX2NmZy5vIHdsYW4ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlLTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6NzpvYmotJChDT05GSUdfV0lMQzEwMDBfU0RJTykgJiM0Mzs9IHdpbGMxMDAwLXNkaW8ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjg6d2lsYzEwMDAtc2Rpby1vYmpzICYjNDM7PSBzZGlvLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS05LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjEwOm9iai0kKENPTkZJR19XSUxDMTAwMF9TUEkpICYjNDM7PSB3aWxjMTAwMC1zcGkub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjExOndpbGMxMDAwLXNwaS1vYmpzICYjNDM7PSBzcGkub1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jPTIwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3R4cnhfc3R5cGVzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoyMTpcdHdpbGNfd2ZpX2NmZzgwMjExX21nbXRfdHlwZXNbTlVNX05MODAyMTFfSUZUWVBFU10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0yMi1cdFtOTDgwMjExX0lGVFlQRV9TVEFUSU9OXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz01Mj1zdGF0aWMgY29uc3Qgc3RydWN0IHdpcGh5X3dvd2xhbl9zdXBwb3J0IHdvd2xhbl9zdXBwb3J0ID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NTc6c3RydWN0IHdpbGNfcDJwX21nbXRfZGF0YSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01OC1cdGludCBzaXplO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTYxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjI6c3RydWN0IHdpbGNfcDJwX3B1Yl9hY3RfZnJhbWUge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjMtXHR1OCBjYXRlZ29yeTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy03MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjcyOnN0cnVjdCB3aWxjX3ZlbmRvcl9zcGVjaWZpY19pZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy03My1cdHU4IHRhZ19udW1iZXI7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo4MDpzdHJ1Y3Qgd2lsY19hdHRyX2VudHJ5IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTgxLVx0dTggIGF0dHJfdHlwZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy04NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjg2OnN0cnVjdCB3aWxjX2F0dHJfb3Blcl9jaCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy04Ny1cdHU4IGF0dHJfdHlwZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy05My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjk0OnN0cnVjdCB3aWxjX2F0dHJfY2hfbGlzdCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy05NS1cdHU4IGF0dHJfdHlwZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xMDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxMDE6c3RydWN0IHdpbGNfY2hfbGlzdF9lbGVtIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTEwMi1cdHU4IG9wX2NsYXNzO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jPTEwNz1zdGF0aWMgdm9pZCBjZmdfc2Nhbl9yZXN1bHQoZW51bSBzY2FuX2V2ZW50IHNjYW5fZXZlbnQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxMDg6XHRcdFx0ICAgIHN0cnVjdCB3aWxjX3JjdmRfbmV0X2luZm8gKmluZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxMDk6XHRcdFx0ICAgIHN0cnVjdCB3aWxjX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xMTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jPTE2Mz1zdGF0aWMgdm9pZCBjZmdfY29ubmVjdF9yZXN1bHQoZW51bSBjb25uX2V2ZW50IGNvbm5fZGlzY29ubl9ldnQsIHU4IG1hY19zdGF0dXMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxNjQ6XHRcdFx0ICAgICAgIHN0cnVjdCB3aWxjX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xNjUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTY2LVx0c3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IHByaXYtXHUwMDNlZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MTY3Olx0c3RydWN0IHdpbGNfdmlmICp2aWYgPSBuZXRkZXZfcHJpdihkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MTY4Olx0c3RydWN0IHdpbGMgKndsID0gdmlmLVx1MDAzZXdpbGM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xNjktXHRzdHJ1Y3QgaG9zdF9pZl9kcnYgKndmaV9kcnYgPSBwcml2LVx1MDAzZWhpZl9kcnY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxNzA6XHRzdHJ1Y3Qgd2lsY19jb25uX2luZm8gKmNvbm5faW5mbyA9IFx1MDAyNndmaV9kcnYtXHUwMDNlY29ubl9pbmZvO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTcxLVx0c3RydWN0IHdpcGh5ICp3aXBoeSA9IGRldi1cdTAwM2VpZWVlODAyMTFfcHRyLVx1MDAzZXdpcGh5O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTE4MC1cdFx0XHRjb25uZWN0X3N0YXR1cyA9IFdMQU5fU1RBVFVTX1VOU1BFQ0lGSUVEX0ZBSUxVUkU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxODE6XHRcdFx0d2lsY193bGFuX3NldF9ic3NpZChwcml2LVx1MDAzZWRldiwgTlVMTCwgV0lMQ19TVEFUSU9OX01PREUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTgyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTIwNi1cdFx0ZXRoX3plcm9fYWRkcihwcml2LVx1MDAzZWFzc29jaWF0ZWRfYnNzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjIwNzpcdFx0d2lsY193bGFuX3NldF9ic3NpZChwcml2LVx1MDAzZWRldiwgTlVMTCwgV0lMQ19TVEFUSU9OX01PREUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMjA4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTIyMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjIyMjpzdHJ1Y3Qgd2lsY192aWYgKndpbGNfZ2V0X3dsX3RvX3ZpZihzdHJ1Y3Qgd2lsYyAqd2wpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0yMjMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MjI0Olx0c3RydWN0IHdpbGNfdmlmICp2aWY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0yMjUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9MjMzPXN0YXRpYyBpbnQgc2V0X2NoYW5uZWwoc3RydWN0IHdpcGh5ICp3aXBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0yMzYte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MjM3Olx0c3RydWN0IHdpbGMgKndsID0gd2lwaHlfcHJpdih3aXBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoyMzg6XHRzdHJ1Y3Qgd2lsY192aWYgKnZpZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTIzOS1cdHUzMiBjaGFubmVsbnVtO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTI0My1cdHNyY3VfaWR4ID0gc3JjdV9yZWFkX2xvY2soXHUwMDI2d2wtXHUwMDNlc3JjdSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoyNDQ6XHR2aWYgPSB3aWxjX2dldF93bF90b192aWYod2wpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMjQ1LVx0aWYgKElTX0VSUih2aWYpKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMjUyLVx0d2wtXHUwMDNlb3BfY2ggPSBjaGFubmVsbnVtO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MjUzOlx0cmVzdWx0ID0gd2lsY19zZXRfbWFjX2NobmxfbnVtKHZpZiwgY2hhbm5lbG51bSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0yNTQtXHRpZiAocmVzdWx0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jPTI2MT1zdGF0aWMgaW50IHNjYW4oc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IGNmZzgwMjExX3NjYW5fcmVxdWVzdCAqcmVxdWVzdClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTI2Mi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoyNjM6XHRzdHJ1Y3Qgd2lsY192aWYgKnZpZiA9IG5ldGRldl9wcml2KHJlcXVlc3QtXHUwMDNld2Rldi1cdTAwM2VuZXRkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MjY0Olx0c3RydWN0IHdpbGNfcHJpdiAqcHJpdiA9IFx1MDAyNnZpZi1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMjY1LVx0dTMyIGk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMjg3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6Mjg4Olx0cmV0ID0gd2lsY19zY2FuKHZpZiwgV0lMQ19GV19VU0VSX1NDQU4sIHNjYW5fdHlwZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTI4OS1cdFx0XHRzY2FuX2NoX2xpc3QsIGNmZ19zY2FuX3Jlc3VsdCwgcmVxdWVzdCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9Mjk5PXN0YXRpYyBpbnQgY29ubmVjdChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTMwMS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzozMDI6XHRzdHJ1Y3Qgd2lsY192aWYgKnZpZiA9IG5ldGRldl9wcml2KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzozMDM6XHRzdHJ1Y3Qgd2lsY19wcml2ICpwcml2ID0gXHUwMDI2dmlmLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0zMDQtXHRzdHJ1Y3QgaG9zdF9pZl9kcnYgKndmaV9kcnYgPSBwcml2LVx1MDAzZWhpZl9kcnY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMzk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6Mzk2Olx0am9pbl9wYXJhbXMgPSB3aWxjX3BhcnNlX2pvaW5fYnNzX3BhcmFtKGJzcywgXHUwMDI2c21lLVx1MDAzZWNyeXB0byk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0zOTctXHRpZiAoIWpvaW5fcGFyYW1zKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDA0LVx0Y2ggPSBpZWVlODAyMTFfZnJlcXVlbmN5X3RvX2NoYW5uZWwoYnNzLVx1MDAzZWNoYW5uZWwtXHUwMDNlY2VudGVyX2ZyZXEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDA1Olx0dmlmLVx1MDAzZXdpbGMtXHUwMDNlb3BfY2ggPSBjaDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQwNi1cdGlmICh2aWYtXHUwMDNlaWZ0eXBlICE9IFdJTENfQ0xJRU5UX01PREUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0MDc6XHRcdHZpZi1cdTAwM2V3aWxjLVx1MDAzZXN0YV9jaCA9IGNoO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDA5Olx0d2lsY193bGFuX3NldF9ic3NpZChkZXYsIGJzcy1cdTAwM2Vic3NpZCwgV0lMQ19TVEFUSU9OX01PREUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDEwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQyMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjQyNDpcdHJldCA9IHdpbGNfc2V0X2pvaW5fcmVxKHZpZiwgYnNzLVx1MDAzZWJzc2lkLCBzbWUtXHUwMDNlaWUsIHNtZS1cdTAwM2VpZV9sZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDI1LVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDI2Olx0XHRuZXRkZXZfZXJyKGRldiwgXCYjMzQ7d2lsY19zZXRfam9pbl9yZXEoKTogRXJyb3JcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDI3LVx0XHRyZXQgPSAtRU5PRU5UO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDI4LVx0XHRpZiAodmlmLVx1MDAzZWlmdHlwZSAhPSBXSUxDX0NMSUVOVF9NT0RFKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDI5Olx0XHRcdHZpZi1cdTAwM2V3aWxjLVx1MDAzZXN0YV9jaCA9IFdJTENfSU5WQUxJRF9DSEFOTkVMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDMwOlx0XHR3aWxjX3dsYW5fc2V0X2Jzc2lkKGRldiwgTlVMTCwgV0lMQ19TVEFUSU9OX01PREUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDMxLVx0XHR3ZmlfZHJ2LVx1MDAzZWNvbm5faW5mby5jb25uX3Jlc3VsdCA9IE5VTEw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9NDQ4PXN0YXRpYyBpbnQgZGlzY29ubmVjdChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQ1MC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0NTE6XHRzdHJ1Y3Qgd2lsY192aWYgKnZpZiA9IG5ldGRldl9wcml2KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0NTI6XHRzdHJ1Y3Qgd2lsY19wcml2ICpwcml2ID0gXHUwMDI2dmlmLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0NTM6XHRzdHJ1Y3Qgd2lsYyAqd2lsYyA9IHZpZi1cdTAwM2V3aWxjO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDU0LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00NTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0NTg6XHRpZiAoIXdpbGMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00NTktXHRcdHJldHVybiAtRUlPO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDYwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDYxOlx0aWYgKHdpbGMtXHUwMDNlY2xvc2UpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQ2Mi1cdFx0LyogYWxyZWFkeSBkaXNjb25uZWN0ZWQgZG9uZSAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQ2Ny1cdGlmICh2aWYtXHUwMDNlaWZ0eXBlICE9IFdJTENfQ0xJRU5UX01PREUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0Njg6XHRcdHdpbGMtXHUwMDNlc3RhX2NoID0gV0lMQ19JTlZBTElEX0NIQU5ORUw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0Njk6XHR3aWxjX3dsYW5fc2V0X2Jzc2lkKHByaXYtXHUwMDNlZGV2LCBOVUxMLCBXSUxDX1NUQVRJT05fTU9ERSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00NzAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDczOlx0cmV0ID0gd2lsY19kaXNjb25uZWN0KHZpZik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00NzQtXHRpZiAocmV0ICE9IDApIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00ODMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0ODQ6c3RhdGljIGludCB3aWxjX3dmaV9jZmdfYWxsb2NhdGVfd3BhX2VudHJ5KHN0cnVjdCB3aWxjX3ByaXYgKnByaXYsIHU4IGlkeClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQ4NS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0ODY6XHRpZiAoIXByaXYtXHUwMDNld2lsY19ndGtbaWR4XSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDg3Olx0XHRwcml2LVx1MDAzZXdpbGNfZ3RrW2lkeF0gPSBremFsbG9jX29iaigqcHJpdi1cdTAwM2V3aWxjX2d0a1tpZHhdKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjQ4ODpcdFx0aWYgKCFwcml2LVx1MDAzZXdpbGNfZ3RrW2lkeF0pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00ODktXHRcdFx0cmV0dXJuIC1FTk9NRU07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDkxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDkyOlx0aWYgKCFwcml2LVx1MDAzZXdpbGNfcHRrW2lkeF0pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjQ5MzpcdFx0cHJpdi1cdTAwM2V3aWxjX3B0a1tpZHhdID0ga3phbGxvY19vYmooKnByaXYtXHUwMDNld2lsY19wdGtbaWR4XSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0OTQ6XHRcdGlmICghcHJpdi1cdTAwM2V3aWxjX3B0a1tpZHhdKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDk1LVx0XHRcdHJldHVybiAtRU5PTUVNO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTUwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjUwMTpzdGF0aWMgaW50IHdpbGNfd2ZpX2NmZ19hbGxvY2F0ZV93cGFfaWd0a19lbnRyeShzdHJ1Y3Qgd2lsY19wcml2ICpwcml2LCB1OCBpZHgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01MDIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTAzLVx0aWR4IC09IDQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo1MDQ6XHRpZiAoIXByaXYtXHUwMDNld2lsY19pZ3RrW2lkeF0pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjUwNTpcdFx0cHJpdi1cdTAwM2V3aWxjX2lndGtbaWR4XSA9IGt6YWxsb2Nfb2JqKCpwcml2LVx1MDAzZXdpbGNfaWd0a1tpZHhdKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjUwNjpcdFx0aWYgKCFwcml2LVx1MDAzZXdpbGNfaWd0a1tpZHhdKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTA3LVx0XHRcdHJldHVybiAtRU5PTUVNO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTUxMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjUxMjpzdGF0aWMgaW50IHdpbGNfd2ZpX2NmZ19jb3B5X3dwYV9pbmZvKHN0cnVjdCB3aWxjX3dmaV9rZXkgKmtleV9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTEzLVx0XHRcdFx0ICAgICAgc3RydWN0IGtleV9wYXJhbXMgKnBhcmFtcylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz01Mzc9c3RhdGljIGludCBhZGRfa2V5KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsIGludCBsaW5rX2lkLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTU0Ni1cdHU4IG9wX21vZGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo1NDc6XHRzdHJ1Y3Qgd2lsY192aWYgKnZpZiA9IG5ldGRldl9wcml2KHdkZXYtXHUwMDNlbmV0ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjU0ODpcdHN0cnVjdCB3aWxjX3ByaXYgKnByaXYgPSBcdTAwMjZ2aWYtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjU0OTpcdHN0cnVjdCB3aWxjX3dmaV9rZXkgKmtleTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTU1MC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01NTUtXHRcdCAgICBwcml2LVx1MDAzZXdkZXYuaWZ0eXBlID09IE5MODAyMTFfSUZUWVBFX1AyUF9HTykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NTU2Olx0XHRcdHN0cnVjdCB3aWxjX3dmaV9rZXkgKmtleTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTU1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjU1ODpcdFx0XHRyZXQgPSB3aWxjX3dmaV9jZmdfYWxsb2NhdGVfd3BhX2VudHJ5KHByaXYsIGtleV9pbmRleCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01NTktXHRcdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01NzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo1NzU6XHRcdFx0XHRwcml2LVx1MDAzZXdpbGNfZ3JvdXBrZXkgPSBtb2RlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTc2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NTc3Olx0XHRcdFx0a2V5ID0gcHJpdi1cdTAwM2V3aWxjX2d0a1trZXlfaW5kZXhdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTc4LVx0XHRcdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTgxLVx0XHRcdFx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NTgyOlx0XHRcdFx0XHRtb2RlID0gcHJpdi1cdTAwM2V3aWxjX2dyb3Vwa2V5IHwgV0lMQ19GV19BRVM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01ODMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo1ODQ6XHRcdFx0XHRrZXkgPSBwcml2LVx1MDAzZXdpbGNfcHRrW2tleV9pbmRleF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01ODUtXHRcdFx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NTg2Olx0XHRcdHJldCA9IHdpbGNfd2ZpX2NmZ19jb3B5X3dwYV9pbmZvKGtleSwgcGFyYW1zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTU4Ny1cdFx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTYwMi1cdFx0aWYgKCFwYWlyd2lzZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjYwMzpcdFx0XHRyZXQgPSB3aWxjX2FkZF9yeF9ndGsodmlmLCBwYXJhbXMtXHUwMDNla2V5LCBrZXlsZW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02MDQtXHRcdFx0XHRcdCAgICAgIGtleV9pbmRleCwgcGFyYW1zLVx1MDAzZXNlcV9sZW4sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjA3LVx0XHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2MDg6XHRcdFx0cmV0ID0gd2lsY19hZGRfcHRrKHZpZiwgcGFyYW1zLVx1MDAzZWtleSwga2V5bGVuLCBtYWNfYWRkcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTYwOS1cdFx0XHRcdFx0ICAgcnhfbWljLCB0eF9taWMsIG9wX21vZGUsIG1vZGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjEzLVx0Y2FzZSBXTEFOX0NJUEhFUl9TVUlURV9BRVNfQ01BQzpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjYxNDpcdFx0cmV0ID0gd2lsY193ZmlfY2ZnX2FsbG9jYXRlX3dwYV9pZ3RrX2VudHJ5KHByaXYsIGtleV9pbmRleCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02MTUtXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjE4Olx0XHRrZXkgPSBwcml2LVx1MDAzZXdpbGNfaWd0a1trZXlfaW5kZXggLSA0XTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjYxOTpcdFx0cmV0ID0gd2lsY193ZmlfY2ZnX2NvcHlfd3BhX2luZm8oa2V5LCBwYXJhbXMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjIwLVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTYyOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjYyOTpcdFx0cmV0ID0gd2lsY19hZGRfaWd0ayh2aWYsIHBhcmFtcy1cdTAwM2VrZXksIGtleWxlbiwgcGFyYW1zLVx1MDAzZXNlcSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTYzMC1cdFx0XHRcdCAgICBwYXJhbXMtXHUwMDNlc2VxX2xlbiwgbWFjX2FkZHIsIG9wX21vZGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9NjQyPXN0YXRpYyBpbnQgZGVsX2tleShzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LCBpbnQgbGlua19pZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02NDYte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjQ3Olx0c3RydWN0IHdpbGNfdmlmICp2aWYgPSBuZXRkZXZfcHJpdih3ZGV2LVx1MDAzZW5ldGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NDg6XHRzdHJ1Y3Qgd2lsY19wcml2ICpwcml2ID0gXHUwMDI2dmlmLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02NDktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjUxLVx0XHRrZXlfaW5kZXggLT0gNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY1MjpcdFx0aWYgKHByaXYtXHUwMDNld2lsY19pZ3RrW2tleV9pbmRleF0pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY1MzpcdFx0XHRrZnJlZShwcml2LVx1MDAzZXdpbGNfaWd0a1trZXlfaW5kZXhdLVx1MDAzZWtleSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NTQ6XHRcdFx0cHJpdi1cdTAwM2V3aWxjX2lndGtba2V5X2luZGV4XS1cdTAwM2VrZXkgPSBOVUxMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjU1Olx0XHRcdGtmcmVlKHByaXYtXHUwMDNld2lsY19pZ3RrW2tleV9pbmRleF0tXHUwMDNlc2VxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY1NjpcdFx0XHRwcml2LVx1MDAzZXdpbGNfaWd0a1trZXlfaW5kZXhdLVx1MDAzZXNlcSA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NTc6XHRcdFx0a2ZyZWUocHJpdi1cdTAwM2V3aWxjX2lndGtba2V5X2luZGV4XSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NTg6XHRcdFx0cHJpdi1cdTAwM2V3aWxjX2lndGtba2V5X2luZGV4XSA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02NTktXHRcdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTY2MC1cdH0gZWxzZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NjE6XHRcdGlmIChwcml2LVx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY2MjpcdFx0XHRrZnJlZShwcml2LVx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXHUwMDNla2V5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY2MzpcdFx0XHRwcml2LVx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXHUwMDNla2V5ID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY2NDpcdFx0XHRrZnJlZShwcml2LVx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXHUwMDNlc2VxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY2NTpcdFx0XHRwcml2LVx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXHUwMDNlc2VxID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTY2Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY2NzpcdFx0XHRrZnJlZShwcml2LVx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjY4Olx0XHRcdHByaXYtXHUwMDNld2lsY19ndGtba2V5X2luZGV4XSA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02NjktXHRcdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY3MDpcdFx0aWYgKHByaXYtXHUwMDNld2lsY19wdGtba2V5X2luZGV4XSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjcxOlx0XHRcdGtmcmVlKHByaXYtXHUwMDNld2lsY19wdGtba2V5X2luZGV4XS1cdTAwM2VrZXkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjcyOlx0XHRcdHByaXYtXHUwMDNld2lsY19wdGtba2V5X2luZGV4XS1cdTAwM2VrZXkgPSBOVUxMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjczOlx0XHRcdGtmcmVlKHByaXYtXHUwMDNld2lsY19wdGtba2V5X2luZGV4XS1cdTAwM2VzZXEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6Njc0Olx0XHRcdHByaXYtXHUwMDNld2lsY19wdGtba2V5X2luZGV4XS1cdTAwM2VzZXEgPSBOVUxMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6Njc1Olx0XHRcdGtmcmVlKHByaXYtXHUwMDNld2lsY19wdGtba2V5X2luZGV4XSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NzY6XHRcdFx0cHJpdi1cdTAwM2V3aWxjX3B0a1trZXlfaW5kZXhdID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTY3Ny1cdFx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jPTY4Mz1zdGF0aWMgaW50IGdldF9rZXkoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldiwgaW50IGxpbmtfaWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjg3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY4ODpcdHN0cnVjdCB3aWxjX3ZpZiAqdmlmID0gbmV0ZGV2X3ByaXYod2Rldi1cdTAwM2VuZXRkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6Njg5Olx0c3RydWN0IHdpbGNfcHJpdiAqcHJpdiA9IFx1MDAyNnZpZi1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjkwLVx0c3RydWN0ICBrZXlfcGFyYW1zIGtleV9wYXJhbXM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjk0LVx0XHRcdGtleV9pbmRleCAtPSA0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6Njk1Olx0XHRcdGtleV9wYXJhbXMua2V5ID0gcHJpdi1cdTAwM2V3aWxjX2lndGtba2V5X2luZGV4XS1cdTAwM2VrZXk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2OTY6XHRcdFx0a2V5X3BhcmFtcy5jaXBoZXIgPSBwcml2LVx1MDAzZXdpbGNfaWd0a1trZXlfaW5kZXhdLVx1MDAzZWNpcGhlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY5NzpcdFx0XHRrZXlfcGFyYW1zLmtleV9sZW4gPSBwcml2LVx1MDAzZXdpbGNfaWd0a1trZXlfaW5kZXhdLVx1MDAzZWtleV9sZW47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2OTg6XHRcdFx0a2V5X3BhcmFtcy5zZXEgPSBwcml2LVx1MDAzZXdpbGNfaWd0a1trZXlfaW5kZXhdLVx1MDAzZXNlcTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY5OTpcdFx0XHRrZXlfcGFyYW1zLnNlcV9sZW4gPSBwcml2LVx1MDAzZXdpbGNfaWd0a1trZXlfaW5kZXhdLVx1MDAzZXNlcV9sZW47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy03MDAtXHRcdH0gZWxzZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo3MDE6XHRcdFx0a2V5X3BhcmFtcy5rZXkgPSBwcml2LVx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXHUwMDNla2V5O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NzAyOlx0XHRcdGtleV9wYXJhbXMuY2lwaGVyID0gcHJpdi1cdTAwM2V3aWxjX2d0a1trZXlfaW5kZXhdLVx1MDAzZWNpcGhlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjcwMzpcdFx0XHRrZXlfcGFyYW1zLmtleV9sZW4gPSBwcml2LVx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXHUwMDNla2V5X2xlbjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjcwNDpcdFx0XHRrZXlfcGFyYW1zLnNlcSA9IHByaXYtXHUwMDNld2lsY19ndGtba2V5X2luZGV4XS1cdTAwM2VzZXE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo3MDU6XHRcdFx0a2V5X3BhcmFtcy5zZXFfbGVuID0gcHJpdi1cdTAwM2V3aWxjX2d0a1trZXlfaW5kZXhdLVx1MDAzZXNlcV9sZW47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy03MDYtXHRcdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTcwNy1cdH0gZWxzZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo3MDg6XHRcdGtleV9wYXJhbXMua2V5ID0gcHJpdi1cdTAwM2V3aWxjX3B0a1trZXlfaW5kZXhdLVx1MDAzZWtleTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjcwOTpcdFx0a2V5X3BhcmFtcy5jaXBoZXIgPSBwcml2LVx1MDAzZXdpbGNfcHRrW2tleV9pbmRleF0tXHUwMDNlY2lwaGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NzEwOlx0XHRrZXlfcGFyYW1zLmtleV9sZW4gPSBwcml2LVx1MDAzZXdpbGNfcHRrW2tleV9pbmRleF0tXHUwMDNla2V5X2xlbjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjcxMTpcdFx0a2V5X3BhcmFtcy5zZXEgPSBwcml2LVx1MDAzZXdpbGNfcHRrW2tleV9pbmRleF0tXHUwMDNlc2VxO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NzEyOlx0XHRrZXlfcGFyYW1zLnNlcV9sZW4gPSBwcml2LVx1MDAzZXdpbGNfcHRrW2tleV9pbmRleF0tXHUwMDNlc2VxX2xlbjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTcxMy1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz03Mjg9c3RhdGljIGludCBzZXRfZGVmYXVsdF9tZ210X2tleShzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTczMC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo3MzE6XHRzdHJ1Y3Qgd2lsY192aWYgKnZpZiA9IG5ldGRldl9wcml2KHdkZXYtXHUwMDNlbmV0ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTczMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjczMzpcdHJldHVybiB3aWxjX3NldF9kZWZhdWx0X21nbXRfa2V5X2luZGV4KHZpZiwga2V5X2luZGV4KTtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzM3NAoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDk5MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipSZWFjaGluZyB0aGUgV0lMQzEwMDAgRHJpdmVyIGluIGEgVmlydHVhbGl6ZWQgRW52aXJvbm1lbnQqKgoKT2theSwgc28gSSBzZWUgYG1tYy1wd3JzZXEtd2lsYzEwMDBgIGluIHRoZSBwb3dlciBzZXF1ZW5jZSBkcml2ZXIgYW5kIHRoZSBkZXZpY2UgdHJlZSBpbnN0YW50aWF0aW9uIGZvciBgbWljcm9jaGlwLHdpbGMxMDAwYCBpbiBhbiBBUk0gZGV2aWNlIGRlc2NyaXB0aW9uLiBUaGlzIHRlbGxzIG1lIGl0JiMzOTtzIGFuIEFSTS1iYXNlZCBTRElPL1NQSSBXaS1GaSBjaGlwLCBtYW5hZ2VkIHZpYSBEZXZpY2UgVHJlZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBjYW4gdGhpcyBldmVuIGJlIHJlYWNoZWQgaW4gUUVNVT8gU3l6a2FsbGVyIHVzdWFsbHkgc3RydWdnbGVzIHdpdGggRGV2aWNlIFRyZWUtaW5zdGFudGlhdGVkIGhhcmR3YXJlIHVubGVzcyB0aGVyZSYjMzk7cyBhIG1vY2sgb3IgaXQmIzM5O3MgYSBnZW5lcmljIHN1YnN5c3RlbS4gSWYgdGhlIGRyaXZlciBpc24mIzM5O3QgbG9hZGVkLCBsaWtlIGB3aWxjX3dmaV9tb25feG1pdGAsIHRoZW4gdGhlIGNvZGUgcGF0aCB3b3VsZCBuZXZlciBleGVjdXRlLiBJJiMzOTttIGNoZWNraW5nLCBidXQgSSYjMzk7bSBleHBlY3RpbmcgdGhpcyB0byBvbmx5IGJlIFNESU8vU1BJLiBTeXprYWxsZXIgZG9lc24mIzM5O3QgaGF2ZSBuYXRpdmUgU0RJTy9TUEkgaW5qZWN0aW9uIHN1cHBvcnQuCgpXYWl0LCBob3cgZGlkIFN5emthbGxlciBmaW5kIGEgYnVnIGlmIEkmIzM5O20gdGhpbmtpbmcgdGhpcyBpcyB1bnJlYWNoYWJsZT8gSSBuZWVkIHRvIGNoZWNrIHRoZSBjb21taXQgbWVzc2FnZS4gJiMzNDtzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcmIzM0Oy4gQWghIFRoaXMgd2FzbiYjMzk7dCBhICYjMzQ7Zm91bmQmIzM0OyBidWcsIHRoaXMgd2FzIGEgcGF0Y2ggdGVzdGluZyByZXF1ZXN0IGZyb20gYSBkZXZlbG9wZXIhCgpHaXZlbiB0aGlzIGlzIGEgcGh5c2ljYWwgY2hpcCAoV0lMQzEwMDApLCBpdCYjMzk7cyBwcm9iYWJseSAqaW1wb3NzaWJsZSogdG8gcmVhY2ggaW4gc3RhbmRhcmQgUUVNVS4gUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoaXMgc3BlY2lmaWMgTWljcm9jaGlwIGNoaXAuIFN5emthbGxlciBtaWdodCBydW4gb24gQVJNIFFFTVUsIGJ1dCBpZiB0aGUgZGV2aWNlIGlzbiYjMzk7dCBlbXVsYXRlZCwgaXQmIzM5O3Mgc3RpbGwgdW5yZWFjaGFibGUsIGxpa2UgdGhlIHByb21wdCBzYXlzLgoKVGhlIHByb21wdCBzcGVjaWZpY2FsbHkgc2F5cyB0byByZXR1cm4gZmFsc2UgaWYgdGhlIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGluIHN0YW5kYXJkIFFFTVUuIFNvLCB1bmxlc3MgSSBmaW5kIHNvbWUga2luZCBvZiBzb2Z0d2FyZSBlbXVsYXRpb24gaW4gdGhlIGtlcm5lbCwgaXQmIzM5O3MgdW5yZWFjaGFibGUuIEkmIzM5O2xsIGRvdWJsZS1jaGVjayBmb3IgdGhhdCwgYnV0IEkmIzM5O20gYmV0dGluZyBJIHdvbiYjMzk7dCBmaW5kIGFueXRoaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt3aWxjMTAwMCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbW1jL21tYy1wd3JzZXEtc2Q4Nzg3LnlhbWw9MTI9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbW1jL21tYy1wd3JzZXEtc2Q4Nzg3LnlhbWwtMTUtICAgICAgLSBtbWMtcHdyc2VxLXNkODc4N1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21tYy9tbWMtcHdyc2VxLXNkODc4Ny55YW1sOjE2OiAgICAgIC0gbW1jLXB3cnNlcS13aWxjMTAwMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21tYy9tbWMtcHdyc2VxLXNkODc4Ny55YW1sLTE3LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtMy0tLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbCNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sPTEzPWRlc2NyaXB0aW9uOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDoxNDogIFRoZSB3aWxjMTAwMCBjaGlwcyBjYW4gYmUgY29ubmVjdGVkIHZpYSBTUEkgb3IgU0RJTy4gVGhpcyBkb2N1bWVudFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC0xNS0gIGRlc2NyaWJlcyB0aGUgYmluZGluZyB0byBjb25uZWN0IHdpbGMgZGV2aWNlcy5cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sPTE3PXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC0yMS0gICAgICAgICAgLSBjb25zdDogbWljcm9jaGlwLHdpbGMzMDAwXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sOjIyOiAgICAgICAgICAtIGNvbnN0OiBtaWNyb2NoaXAsd2lsYzEwMDBcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6MjM6ICAgICAgLSBjb25zdDogbWljcm9jaGlwLHdpbGMxMDAwXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTI0LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtMzgtICAgIG1heEl0ZW1zOiAxXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sOjM5OiAgICBkZXNjcmlwdGlvbjogVXNlZCBieSB3aWxjMTAwMC1zcGkgdG8gZGV0ZXJtaW5lIHRoZSBHUElPIGxpbmVcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtNDAtICAgICAgY29ubmVjdGVkIHRvIHRoZSBFTkFCTEUgbGluZS4gIElmIHNwZWNpZmllZCwgcmVzZXQtZ3Bpb3Ncbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTQ3LSAgICBtYXhJdGVtczogMVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDo0ODogICAgZGVzY3JpcHRpb246IFVzZWQgYnkgd2lsYzEwMDAtc3BpIHRvIGRldGVybWluZSB0aGUgR1BJTyBsaW5lXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTQ5LSAgICAgIGNvbm5lY3RlZCB0byB0aGUgUkVTRVQgbGluZS4gIFRoaXMgc2hvdWxkIGJlIGRlY2xhcmVkIGFzIGFuXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbD02MT1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTY4LSAgICAgIHdpZmlAMCB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sOjY5OiAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O21pY3JvY2hpcCx3aWxjMTAwMFwmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtNzAtICAgICAgICBzcGktbWF4LWZyZXF1ZW5jeSA9IFx1MDAzYzQ4MDAwMDAwXHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtOTEtICAgICAgd2lmaUAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6OTI6ICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7bWljcm9jaGlwLHdpbGMxMDAwXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC05My0gICAgICAgIHJlZyA9IFx1MDAzYzBcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k9NDI9XHR3aWZpX3B3cnNlcTogd2lmaV9wd3JzZXEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k6NDM6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttbWMtcHdyc2VxLXdpbGMxMDAwXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2ktNDQtXHRcdHJlc2V0LWdwaW9zID0gXHUwMDNjXHUwMDI2cGlvQSBQSU5fUEEyNyBHUElPX0FDVElWRV9ISUdIXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpPTM4Nj1cdHdpbGM6IHdpZmlAMCB7XG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS0zODctXHRcdHJlZyA9IFx1MDAzYzBcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaTozODg6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttaWNyb2NoaXAsd2lsYzMwMDBcJiMzNDssIFwmIzM0O21pY3JvY2hpcCx3aWxjMTAwMFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTM4OS1cdFx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG4tLVxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM9NDU9c3RhdGljIHZvaWQgbW1jX3B3cnNlcV9zZDg3ODdfcG93ZXJfb2ZmKHN0cnVjdCBtbWNfaG9zdCAqaG9zdClcbi0tXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy01Mi1cbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jOjUzOnN0YXRpYyB2b2lkIG1tY19wd3JzZXFfd2lsYzEwMDBfcHJlX3Bvd2VyX29uKHN0cnVjdCBtbWNfaG9zdCAqaG9zdClcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTU0LXtcbi0tXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy02Mi1cbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jOjYzOnN0YXRpYyB2b2lkIG1tY19wd3JzZXFfd2lsYzEwMDBfcG93ZXJfb2ZmKHN0cnVjdCBtbWNfaG9zdCAqaG9zdClcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTY0LXtcbi0tXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYz03MT1zdGF0aWMgY29uc3Qgc3RydWN0IG1tY19wd3JzZXFfb3BzIG1tY19wd3JzZXFfc2Q4Nzg3X29wcyA9IHtcbi0tXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy03NS1cbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jOjc2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgbW1jX3B3cnNlcV9vcHMgbW1jX3B3cnNlcV93aWxjMTAwMF9vcHMgPSB7XG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYzo3NzpcdC5wcmVfcG93ZXJfb24gPSBtbWNfcHdyc2VxX3dpbGMxMDAwX3ByZV9wb3dlcl9vbixcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jOjc4Olx0LnBvd2VyX29mZiA9IG1tY19wd3JzZXFfd2lsYzEwMDBfcG93ZXJfb2ZmLFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmMtNzktfTtcbi0tXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYz04MT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtbWNfcHdyc2VxX3NkODc4N19vZl9tYXRjaFtdID0ge1xuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmMtODItXHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bW1jLXB3cnNlcS1zZDg3ODdcJiMzNDssIC5kYXRhID0gXHUwMDI2bW1jX3B3cnNlcV9zZDg3ODdfb3BzIH0sXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYzo4MzpcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDttbWMtcHdyc2VxLXdpbGMxMDAwXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNm1tY19wd3JzZXFfd2lsYzEwMDBfb3BzIH0sXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy04NC1cdHsvKiBzZW50aW5lbCAqL30sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL0tjb25maWc9MTM9aWYgV0xBTl9WRU5ET1JfTUlDUk9DSElQXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvS2NvbmZpZzoxNDpzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL0tjb25maWdcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC9LY29uZmlnLTE1LWVuZGlmICMgV0xBTl9WRU5ET1JfTUlDUk9DSElQXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX1dJTEMxMDAwKVx0XHQmIzQzOz0gd2lsYzEwMDAvXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX1dJTEMxMDAwKSAmIzQzOz0gd2lsYzEwMDAub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlLTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6NDp3aWxjMTAwMC1vYmpzIDo9IGNmZzgwMjExLm8gbmV0ZGV2Lm8gbW9uLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS01LVx0XHRcdGhpZi5vIHdsYW5fY2ZnLm8gd2xhbi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGUtNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZTo3Om9iai0kKENPTkZJR19XSUxDMTAwMF9TRElPKSAmIzQzOz0gd2lsYzEwMDAtc2Rpby5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6ODp3aWxjMTAwMC1zZGlvLW9ianMgJiM0Mzs9IHNkaW8ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlLTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6MTA6b2JqLSQoQ09ORklHX1dJTEMxMDAwX1NQSSkgJiM0Mzs9IHdpbGMxMDAwLXNwaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6MTE6d2lsYzEwMDAtc3BpLW9ianMgJiM0Mzs9IHNwaS5vXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9MTg0OT1pbnQgd2lsY19jZmc4MDIxMV9yZWdpc3RlcihzdHJ1Y3Qgd2lsYyAqd2lsYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xODUxLVx0LyogV1BBMy9TQUUgc3VwcG9ydGVkIG9ubHkgb24gV0lMQzEwMDAgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjE4NTI6XHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTg1My1cdFx0d2lsYy1cdTAwM2V3aXBoeS1cdTAwM2VmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfU0FFO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy0yMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzoyMjojZGVmaW5lIFdJTEMxMDAwX0ZXX1BSRUZJWFx0XHRcJiMzNDthdG1lbC93aWxjMTAwMF93aWZpX2Zpcm13YXJlLVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTIzLSNkZWZpbmUgX19XSUxDMTAwMF9GVyhhcGkpXHRcdFdJTEMxMDAwX0ZXX1BSRUZJWCAjYXBpIFwmIzM0Oy5iaW5cJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM9MjAwPXN0YXRpYyBpbnQgd2lsY193bGFuX2dldF9maXJtd2FyZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy0yMDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6MjA4Olx0aWYgKGlzX3dpbGMxMDAwKHdpbGMtXHUwMDNlY2hpcGlkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy0yMDktXHRcdGZpcm13YXJlID0gV0lMQzEwMDBfRlcoV0lMQzEwMDBfQVBJX1ZFUik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTIxNS1cdG5ldGRldl9pbmZvKGRldiwgXCYjMzQ7V0lMQyVkIGxvYWRpbmcgZmlybXdhcmUgWyVzXVxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzoyMTY6XHRcdCAgICBpc193aWxjMTAwMCh3aWxjLVx1MDAzZWNoaXBpZCkgPyAxMDAwIDogMzAwMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy0yMTctXHRcdCAgICBmaXJtd2FyZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jPTQ1Nj1zdGF0aWMgdm9pZCB3aWxjX3dsYW5fZGVpbml0aWFsaXplKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTQ2Ni1cdGlmICh3bC1cdTAwM2Vpbml0aWFsaXplZCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjQ2NzpcdFx0bmV0ZGV2X2luZm8oZGV2LCBcJiMzNDtEZWluaXRpYWxpemluZyB3aWxjMTAwMC4uLlxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNDY4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy00ODQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6NDg1Olx0XHRuZXRkZXZfZGJnKGRldiwgXCYjMzQ7d2lsYzEwMDAgZGVpbml0aWFsaXphdGlvbiBEb25lXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy00ODYtXHR9IGVsc2Uge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjQ4NzpcdFx0bmV0ZGV2X2RiZyhkZXYsIFwmIzM0O3dpbGMxMDAwIGlzIG5vdCBpbml0aWFsaXplZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNDg4LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz01MDg9c3RhdGljIGludCB3aWxjX3dsYW5faW5pdGlhbGl6ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgd2lsY192aWYgKnZpZilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNTgzLVx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo1ODQ6XHRcdG5ldGRldl9kYmcoZGV2LCBcJiMzNDt3aWxjMTAwMCBhbHJlYWR5IGluaXRpYWxpemVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy01ODUtXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jPTc4Nz1zdGF0aWMgaW50IHdpbGNfbWFjX2Nsb3NlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy04MDYtXHRpZiAod2wtXHUwMDNlb3Blbl9pZmNzID09IDApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo4MDc6XHRcdG5ldGRldl9kYmcobmRldiwgXCYjMzQ7RGVpbml0aWFsaXppbmcgd2lsYzEwMDBcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTgwOC1cdFx0d2wtXHUwMDNlY2xvc2UgPSAxO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jOjE3OiNkZWZpbmUgU0RJT19NT0RBTElBUyBcJiMzNDt3aWxjMTAwMF9zZGlvXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTE4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM9ODAwPXN0YXRpYyBpbnQgd2lsY19zZGlvX3JlYWRfaW50KHN0cnVjdCB3aWxjICp3aWxjLCB1MzIgKmludF9zdGF0dXMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy04MTctXHRcdGNtZC5mdW5jdGlvbiA9IDA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jOjgxODpcdFx0Y21kLmFkZHJlc3MgPSBpc193aWxjMTAwMCh3aWxjLVx1MDAzZWNoaXBpZCkgP1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy04MTktXHRcdFx0ICAgICAgV0lMQzEwMDBfU0RJT19JUlFfRkxBR19SRUcgOlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtODI4LVx0aWYgKHNkaW9fcHJpdi1cdTAwM2VpcnFfZ3BpbylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM6ODI5Olx0XHRpcnFfZmxhZ3MgXHUwMDI2PSBpc193aWxjMTAwMCh3aWxjLVx1MDAzZWNoaXBpZCkgPyAweDFmIDogMHgwZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtODMwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM9ODQyPXN0YXRpYyBpbnQgd2lsY19zZGlvX2NsZWFyX2ludF9leHQoc3RydWN0IHdpbGMgKndpbGMsIHUzMiB2YWwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy04NTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jOjg1MjpcdGlmIChpc193aWxjMTAwMCh3aWxjLVx1MDAzZWNoaXBpZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtODUzLVx0XHQvKiBzZWxlY3QgVk1NIHRhYmxlIDAgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTg5OC1cdFx0Y21kLnJhdyA9IDA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jOjg5OTpcdFx0Y21kLmFkZHJlc3MgPSBpc193aWxjMTAwMCh3aWxjLVx1MDAzZWNoaXBpZCkgP1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy05MDAtXHRcdFx0ICAgICAgV0lMQzEwMDBfU0RJT19JUlFfQ0xFQVJfRkxBR19SRUcgOlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM9MTA1Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB3aWxjX29mX21hdGNoW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jOjEwNTM6XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWljcm9jaGlwLHdpbGMxMDAwXCYjMzQ7LCB9LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy0xMDU0LVx0eyAvKiBzZW50aW5lbCAqLyB9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jOjE2OiNkZWZpbmUgU1BJX01PREFMSUFTXHRcdFwmIzM0O3dpbGMxMDAwX3NwaVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTE3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYz0yOTQ9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgd2lsY19vZl9tYXRjaFtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jOjI5NTpcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDttaWNyb2NoaXAsd2lsYzEwMDBcJiMzNDssIH0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmMtMjk2LVx0eyAvKiBzZW50aW5lbCAqLyB9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jPTMwMD1zdGF0aWMgY29uc3Qgc3RydWN0IHNwaV9kZXZpY2VfaWQgd2lsY19zcGlfaWRbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYzozMDE6XHR7IFwmIzM0O3dpbGMxMDAwXCYjMzQ7LCAwIH0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmMtMzAyLVx0eyAvKiBzZW50aW5lbCAqLyB9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jPTEyMjc9c3RhdGljIGludCB3aWxjX3ZhbGlkYXRlX2NoaXBpZChzdHJ1Y3Qgd2lsYyAqd2lsYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmMtMTI0MC1cdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYzoxMjQxOlx0aWYgKCFpc193aWxjMTAwMChjaGlwaWQpIFx1MDAyNlx1MDAyNiAhaXNfd2lsYzMwMDAoY2hpcGlkKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTEyNDItXHRcdGRldl9lcnIoXHUwMDI2c3BpLVx1MDAzZWRldiwgXCYjMzQ7VW5rbm93biBjaGlwIGlkIDB4JXhcXG5cJiMzNDssIGNoaXBpZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz01MzA9c3RhdGljIHN0cnVjdCByeHFfZW50cnlfdCAqd2lsY193bGFuX3J4cV9yZW1vdmUoc3RydWN0IHdpbGMgKndpbGMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy01NDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjU0NDpzdGF0aWMgaW50IGNoaXBfYWxsb3dfc2xlZXBfd2lsYzEwMDAoc3RydWN0IHdpbGMgKndpbGMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTU0NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz02MzA9c3RhdGljIGludCBjaGlwX2FsbG93X3NsZWVwKHN0cnVjdCB3aWxjICp3aWxjKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy02MzEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo2MzI6XHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo2MzM6XHRcdHJldHVybiBjaGlwX2FsbG93X3NsZWVwX3dpbGMxMDAwKHdpbGMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy02MzQtXHRlbHNlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy02MzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjYzODpzdGF0aWMgaW50IGNoaXBfd2FrZXVwX3dpbGMxMDAwKHN0cnVjdCB3aWxjICp3aWxjKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy02Mzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9NzYwPXN0YXRpYyBpbnQgY2hpcF93YWtldXAoc3RydWN0IHdpbGMgKndpbGMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTc2MS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjc2MjpcdGlmIChpc193aWxjMTAwMCh3aWxjLVx1MDAzZWNoaXBpZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjc2MzpcdFx0cmV0dXJuIGNoaXBfd2FrZXVwX3dpbGMxMDAwKHdpbGMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy03NjQtXHRlbHNlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz03OTM9aW50IGhvc3Rfd2FrZXVwX25vdGlmeShzdHJ1Y3Qgd2lsYyAqd2lsYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTc5OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM6ODAwOlx0d2lsYy1cdTAwM2VoaWZfZnVuYy1cdTAwM2VoaWZfd3JpdGVfcmVnKHdpbGMsIGlzX3dpbGMxMDAwKHdpbGMtXHUwMDNlY2hpcGlkKSA/XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTgwMS1cdFx0XHRcdFx0ICAgIFdJTEMxMDAwX0NPUlRVU19JTlRFUlJVUFRfMiA6XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz04MDc9aW50IGhvc3Rfc2xlZXBfbm90aWZ5KHN0cnVjdCB3aWxjICp3aWxjKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtODEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo4MTQ6XHR3aWxjLVx1MDAzZWhpZl9mdW5jLVx1MDAzZWhpZl93cml0ZV9yZWcod2lsYywgaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpID9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtODE1LVx0XHRcdFx0XHQgICAgV0lMQzEwMDBfQ09SVFVTX0lOVEVSUlVQVF8xIDpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jPTgyMT1pbnQgd2lsY193bGFuX2hhbmRsZV90eHEoc3RydWN0IHdpbGMgKndpbGMsIHUzMiAqdHhxX2NvdW50KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtOTUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo5NTE6XHRcdGlmIChpc193aWxjMTAwMCh3aWxjLVx1MDAzZWNoaXBpZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtOTUyLVx0XHRcdHJldCA9IGZ1bmMtXHUwMDNlaGlmX3dyaXRlX3JlZyh3aWxjLCBXSUxDX0hPU1RfVk1NX0NUTCwgMHgyKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jPTE1OTE9aW50IHdpbGNfZ2V0X2NoaXBpZChzdHJ1Y3Qgd2lsYyAqd2lsYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTE2MDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjE2MDM6XHRcdFx0aWYgKCFpc193aWxjMTAwMChjaGlwaWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTE2MDQtXHRcdFx0XHR3aWxjLVx1MDAzZWNoaXBpZCA9IDA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz0xNzM3PWludCB3aWxjX3dsYW5faW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtMTc2MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM6MTc2MTpcdFx0aWYgKCFpc193aWxjMTAwMCh3aWxjLVx1MDAzZWNoaXBpZCkgXHUwMDI2XHUwMDI2ICFpc193aWxjMzAwMCh3aWxjLVx1MDAzZWNoaXBpZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtMTc2Mi1cdFx0XHRuZXRkZXZfZXJyKGRldiwgXCYjMzQ7VW5zdXBwb3J0ZWQgY2hpcGlkOiAleFxcblwmIzM0Oywgd2lsYy1cdTAwM2VjaGlwaWQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmg9NDMzPXN0cnVjdCB3aWxjX3ZpZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmgtNDM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uaDo0MzU6c3RhdGljIGlubGluZSBib29sIGlzX3dpbGMxMDAwKHUzMiBpZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmgtNDM2LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE3NjkKCQkJCQkJCW91dHB1dDogMjAKCQkJCQkJCXRob3VnaHRzOiAxMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBgaXNfd2lsYzEwMDAoKWAgQ2hlY2sqKgoKT2theSwgSSYjMzk7bSBzZWVpbmcgdGhpcyBgaXNfd2lsYzEwMDAoKWAgY2hlY2suLi4gbGV0IG1lIHN0ZXAgYmFjayBhbmQgdGhpbmsgdGhpcyB0aHJvdWdoLiBJcyAqdGhpcyogdGhlIG9ubHkgd2F5IHdlIGdldCB0byB0aGlzIHBhcnQgb2YgdGhlIGNvZGU/IE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBhcmUgdGhlcmUgb3RoZXIgcG90ZW50aWFsIGVudHJ5IHBvaW50cywgb3RoZXIgc2NlbmFyaW9zIHRoYXQgY2FuIHRyaWdnZXIgdGhpcz8gQWgsIEkga25vdyEgU3l6a2FsbGVyISBJZiBTeXprYWxsZXIgaXMgcnVubmluZyBvbiBBUk0gUUVNVSwgYW5kIHRoZSBkZXZpY2UgdHJlZSBzcGVjaWZpY2FsbHkgKmluY2x1ZGVzKiBzb21ldGhpbmcgbGlrZSBgbWljcm9jaGlwLHdpbGMxMDAwYCwgdGhlIGRyaXZlciAqY291bGQqIGJlIHByb2JlZC4gSG93ZXZlciwgaGFuZyBvbi4uLiB0aGUgcHJvYmUgaXRzZWxmIG5lZWRzIHRoZSBoYXJkd2FyZS4gSXQgbmVlZHMgdG8gY29tbXVuaWNhdGUsIGVpdGhlciBTUEkgb3IgU0RJTy4gTm93LCBpZiB0aGVyZSYjMzk7cyAqbm8qIGFjdHVhbCBoYXJkd2FyZSBwcmVzZW50IOKAkyB3aGljaCBpcyBsaWtlbHkgaW4gdGhpcyBzaW11bGF0ZWQgZW52aXJvbm1lbnQg4oCTIHRoZSBwcm9iZSAqc2hvdWxkKiBmYWlsLCByaWdodD8gU28sIGxldCYjMzk7cyBqdXN0IG1ha2UgYWJzb2x1dGVseSBzdXJlIGJ5IGNoZWNraW5nIGZvciBgd2lsY19zZGlvX3Byb2JlYCBvciBgd2lsY19zcGlfcHJvYmVgLiBJIG5lZWQgdG8gY29uZmlybSB0aG9zZSBwb3RlbnRpYWwgcHJvYmUgcGF0aHMgZm9yIGEgY29tcGxldGUgcGljdHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt3aWxjX3NwaV9wcm9iZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyMTQ2CgkJCQkJCQlvdXRwdXQ6IDIxCgkJCQkJCQl0aG91Z2h0czogMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgdGhlIG9uZSB0aGlua2luZyBpdDoKCioqRGlnZ2luZyBpbnRvIHRoZSBXaS1GaSBEcml2ZXIqKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhpcyBpc3N1ZSBtaWdodCBiZSBzdGVtbWluZyBmcm9tLiBUaGUgcHJvYmxlbSBzb3VuZHMgbGlrZSBhIHJlc291cmNlIGluaXRpYWxpemF0aW9uIG9yIGRlLWluaXRpYWxpemF0aW9uIHByb2JsZW0gc28gbGV0JiMzOTtzIGNoZWNrIHRoZSBgd2lsY19tYWNfY2xvc2VgIGZ1bmN0aW9uIGZpcnN0LiBJdCYjMzk7cyB0aGUgbG9naWNhbCBwbGFjZSB0byBzdGFydCBsb29raW5nIGF0IHdoZXJlIHRoZSBjb25uZWN0aW9uIGVuZHMuIElmIGl0IGlzbiYjMzk7dCB0aGUgcHJvYmxlbSwgbXkgbmV4dCBzdGVwIGlzIGB3aWxjX3dsYW5faW5pdGAuIEkmIzM5O2xsIHdhbnQgdG8gc2VlIGhvdyB0aGUgY29ubmVjdGlvbiBpcyBzZXQgdXAgaW4gdGhlIGZpcnN0IHBsYWNlLCBvciBpZiB0aGVyZSBpcyBhbiBlcnJvciBpbiBpbml0aWFsaXphdGlvbi4gT25lIG9mIHRob3NlIHNlZW1zIGxpa2UgdGhlIGxpa2VsaWVzdCBjYW5kaWRhdGUgZm9yIHRoZSByb290IG9mIHRoZSBwcm9ibGVtLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt3aWxjX3dsYW5faW5pdCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM9NDkxPXN0YXRpYyBpbnQgd2xhbl9pbml0aWFsaXplX3RocmVhZHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNTA3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjUwODpzdGF0aWMgaW50IHdpbGNfd2xhbl9pbml0aWFsaXplKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCB3aWxjX3ZpZiAqdmlmKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTUwOS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTUxNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo1MTc6XHRcdHJldCA9IHdpbGNfd2xhbl9pbml0KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNTE4LVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz01OTc9c3RhdGljIGludCB3aWxjX21hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy02MTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6NjE1Olx0cmV0ID0gd2lsY193bGFuX2luaXRpYWxpemUobmRldiwgdmlmKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy02MTYtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz0xNzM1PUVYUE9SVF9TWU1CT0xfR1BMKHdpbGNfbG9hZF9tYWNfZnJvbV9udik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTE3MzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjE3Mzc6aW50IHdpbGNfd2xhbl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTE3Mzgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmg9NDcwPWludCB3aWxjX3NlbmRfY29uZmlnX3BrdChzdHJ1Y3Qgd2lsY192aWYgKnZpZiwgdTggbW9kZSwgc3RydWN0IHdpZCAqd2lkcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmgtNDcxLVx0XHRcdCB1MzIgY291bnQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uaDo0NzI6aW50IHdpbGNfd2xhbl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uaC00NzMtaW50IHdpbGNfZ2V0X2NoaXBpZChzdHJ1Y3Qgd2lsYyAqd2lsYyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzMDY2CgkJCQkJCQlvdXRwdXQ6IDIxCgkJCQkJCQl0aG91Z2h0czogNTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVHJhY2luZyB0aGUgRHJpdmVyIEluaXRpYWxpemF0aW9uKioKCk9rYXksIGxldCYjMzk7cyBzZWUuLi4gKmB3aWxjX3dsYW5faW5pdGAqIGlzIGJlaW5nIGNhbGxlZCBmcm9tICpgd2lsY19tYWNfb3BlbmAqLiBSaWdodCwgYW5kICpgd2lsY19tYWNfb3BlbmAqIGlzIG91ciAqYG5kb19vcGVuYCogZnVuY3Rpb24uIFRoYXQgbWFrZXMgc2Vuc2UsIHRoYXQmIzM5O3Mgd2hlcmUgdGhlIGRldmljZSB3b3VsZCBnZXQgaW5pdGlhbGl6ZWQgd2hlbiB0aGUgaW50ZXJmYWNlIGlzIGJyb3VnaHQgdXAuIEJ1dCwgSSYjMzk7bSB0cnlpbmcgdG8gcmVjYWxsICpob3cqIHRoZSBuZXQgZGV2aWNlIGl0c2VsZiBnZXRzIHJlZ2lzdGVyZWQgd2l0aCB0aGUga2VybmVsLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgdW5kZXJzdGFuZCB0aGUgd2hvbGUgcGljdHVyZS4gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IGNoZWNrICpgd2lsY19uZXRkZXZfaW5pdGAqLiBUaGF0JiMzOTtzIHRoZSBsb2dpY2FsIG5leHQgcGxhY2UgdG8gbG9vayBmb3IgdGhlIG5ldGRldiByZWdpc3RyYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7d2lsY19uZXRkZXZfaW5pdCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzMzAyCgkJCQkJCQlvdXRwdXQ6IDE4CgkJCQkJCQl0aG91Z2h0czogMzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgdGFraW5nIG9uIHRoZSBwZXJzb25hIHlvdSByZXF1ZXN0ZWQ6CgoqKkRpZ2dpbmcgaW50byB0aGUgV0lMQzEwMDAgRHJpdmVyKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBpdC4gR2l2ZW4gdGhlIG5hdHVyZSBvZiB0aGlzIGlucXVpcnksIEkmIzM5O20gdGhpbmtpbmcgdGhlIGxpa2VseSBhcmVhIGZvciBleGFtaW5hdGlvbiByZWdhcmRpbmcgdGhpcyBzcGVjaWZpYyB3aXJlbGVzcyBkcml2ZXIgaXMgd2l0aGluIHRoZSBtaWNyb2NoaXAvd2lsYzEwMDAgZGlyZWN0b3J5LCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBvdmVyYWxsIG5ldHdvcmtpbmcgaW5mcmFzdHJ1Y3R1cmUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGRldmljZSBpcyBnZXR0aW5nIHJlZ2lzdGVyZWQgd2l0aGluIHRoZSBrZXJuZWwuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gY2hlY2sgdGhlIGByZWdpc3Rlcl9uZXRkZXZgIG9yIGByZWdpc3Rlcl9uZXRkZXZpY2VgIGNhbGxzIHdpdGhpbiB0aGF0IGRyaXZlciBjb2RlLiBUaG9zZSBmdW5jdGlvbnMgYXJlIHRoZSBicmVhZCBhbmQgYnV0dGVyIGZvciBicmluZ2luZyBhIG5ldHdvcmsgaW50ZXJmYWNlIG9ubGluZSwgc28gdGhhdOKAmXMgd2hlcmUgSSYjMzk7bGwgYmVnaW4gbXkgaW52ZXN0aWdhdGlvbi4gTGV0JiMzOTtzIHNlZSB3aGF0IHdlIGNhbiBmaW5kIHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtyZWdpc3Rlcl9uZXRkZXYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDkwNDYgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbkRvY3VtZW50YXRpb24vYXJjaC9wb3dlcnBjL2VlaC1wY2ktZXJyb3ItcmVjb3ZlcnkucnN0PTE5Nz1UaGUgZm9sbG93aW5nIHNlcXVlbmNlIGlzIGFuIGV4YW1wbGUgb2YgdGhlIHBjbmV0MzIgZGV2aWNlIGRyaXZlcjo6XG4tLVxuRG9jdW1lbnRhdGlvbi9hcmNoL3Bvd2VycGMvZWVoLXBjaS1lcnJvci1yZWNvdmVyeS5yc3QtMjI3LSAgICAgICAgICAgICAgICAgICAgICBjYWxsc1xuRG9jdW1lbnRhdGlvbi9hcmNoL3Bvd2VycGMvZWVoLXBjaS1lcnJvci1yZWNvdmVyeS5yc3Q6MjI4OiAgICAgICAgICAgICAgICAgICAgICB1bnJlZ2lzdGVyX25ldGRldigpIC8vIGluIC9uZXQvY29yZS9kZXYuY1xuRG9jdW1lbnRhdGlvbi9hcmNoL3Bvd2VycGMvZWVoLXBjaS1lcnJvci1yZWNvdmVyeS5yc3QtMjI5LSAgICAgICAgICAgICAgICAgICAgICB7XG4tLVxuRG9jdW1lbnRhdGlvbi9hcmNoL3Bvd2VycGMvZWVoLXBjaS1lcnJvci1yZWNvdmVyeS5yc3Q9MjQ5PXdoaWNoIGNhbGxzIHN0cnVjdCBwY2lfZHJpdmVyLVx1MDAzZXJlbW92ZSgpIHdoaWNoIGlzIHBjbmV0MzJfcmVtb3ZlX29uZSgpXG5Eb2N1bWVudGF0aW9uL2FyY2gvcG93ZXJwYy9lZWgtcGNpLWVycm9yLXJlY292ZXJ5LnJzdDoyNTA6d2hpY2ggY2FsbHMgdW5yZWdpc3Rlcl9uZXRkZXYoKSAgKGluIG5ldC9jb3JlL2Rldi5jKVxuRG9jdW1lbnRhdGlvbi9hcmNoL3Bvd2VycGMvZWVoLXBjaS1lcnJvci1yZWNvdmVyeS5yc3QtMjUxLXdoaWNoIGNhbGxzIGRldl9jbG9zZSgpICAoaW4gbmV0L2NvcmUvZGV2LmMpXG4tLVxuRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL2RyaXZlci1tb2RlbC9kZXZyZXMucnN0PTM3OT1ORVRcbi0tXG5Eb2N1bWVudGF0aW9uL2RyaXZlci1hcGkvZHJpdmVyLW1vZGVsL2RldnJlcy5yc3QtMzgxLSAgZGV2bV9hbGxvY19ldGhlcmRldl9tcXMoKVxuRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL2RyaXZlci1tb2RlbC9kZXZyZXMucnN0OjM4MjogIGRldm1fcmVnaXN0ZXJfbmV0ZGV2KClcbkRvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9kcml2ZXItbW9kZWwvZGV2cmVzLnJzdC0zODMtXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RyaXZlci5yc3Q9Mjg9QXV0by1jbG9zZVxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kcml2ZXIucnN0LTMwLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RyaXZlci5yc3Q6MzE6VGhlIG5kb19zdG9wIHJvdXRpbmUgd2lsbCBiZSBjYWxsZWQgYnkgdW5yZWdpc3Rlcl9uZXRkZXZpY2VcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kcml2ZXIucnN0LTMyLWlmIGRldmljZSBpcyBzdGlsbCBVUC5cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbXVsdGlxdWV1ZS5yc3Q9MjQ9ZGV2aWNlIGlzIHN0aWxsIG9wZXJhdGlvbmFsLiAgbmV0ZGV2LVx1MDAzZXF1ZXVlX2xvY2sgaXMgc3RpbGwgdXNlZCB3aGVuIHRoZSBkZXZpY2VcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9tdWx0aXF1ZXVlLnJzdDoyNTpjb21lcyBvbmxpbmUgb3Igd2hlbiBpdCYjMzk7cyBjb21wbGV0ZWx5IHNodXQgZG93biAodW5yZWdpc3Rlcl9uZXRkZXYoKSwgZXRjLikuXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbXVsdGlxdWV1ZS5yc3QtMjYtXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0PTI4PUZpcnN0IGdyb3VwIGNhbiBiZSB1c2VkIGluIG5vcm1hbCBjb250ZXh0cyB3aGVyZSBgYHJ0bmxfbG9ja2BgIGlzIG5vdCBhbHJlYWR5XG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6Mjk6aGVsZDogcmVnaXN0ZXJfbmV0ZGV2KCksIHVucmVnaXN0ZXJfbmV0ZGV2KCkuXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtMzAtU2Vjb25kIGdyb3VwIGNhbiBiZSB1c2VkIHdoZW4gYGBydG5sX2xvY2tgYCBpcyBhbHJlYWR5IGhlbGQ6XG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6MzE6cmVnaXN0ZXJfbmV0ZGV2aWNlKCksIHVucmVnaXN0ZXJfbmV0ZGV2aWNlKCksIGZyZWVfbmV0ZGV2KCkuXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtMzItXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0PTM5PUluIHRoYXQgY2FzZSB0aGUgc3RydWN0IG5ldF9kZXZpY2UgcmVnaXN0cmF0aW9uIGlzIGRvbmUgdXNpbmdcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDo0MDp0aGUgcmVnaXN0ZXJfbmV0ZGV2KCksIGFuZCB1bnJlZ2lzdGVyX25ldGRldigpIGZ1bmN0aW9uczpcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC00MS1cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtNTMtXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6NTQ6ICAgIC8qIC4uLiBkbyBhbGwgZGV2aWNlIHNldHVwIGJlZm9yZSBjYWxsaW5nIHJlZ2lzdGVyX25ldGRldigpIC4uLlxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTU1LSAgICAgKi9cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC01Ni1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDo1NzogICAgZXJyID0gcmVnaXN0ZXJfbmV0ZGV2KGRldik7XG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtNTgtICAgIGlmIChlcnIpXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTcxLSAge1xuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0OjcyOiAgICB1bnJlZ2lzdGVyX25ldGRldihkZXYpO1xuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTczLSAgICBmcmVlX25ldGRldihkZXYpO1xuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC03NS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDo3NjpOb3RlIHRoYXQgYWZ0ZXIgY2FsbGluZyByZWdpc3Rlcl9uZXRkZXYoKSB0aGUgZGV2aWNlIGlzIHZpc2libGUgaW4gdGhlIHN5c3RlbS5cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC03Ny1Vc2VycyBjYW4gb3BlbiBpdCBhbmQgc3RhcnQgc2VuZGluZyAvIHJlY2VpdmluZyB0cmFmZmljIGltbWVkaWF0ZWx5LFxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdD03OT1yZWdpc3RyYXRpb24uXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtODAtXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6ODE6dW5yZWdpc3Rlcl9uZXRkZXYoKSBjbG9zZXMgdGhlIGRldmljZSBhbmQgd2FpdHMgZm9yIGFsbCB1c2VycyB0byBiZSBkb25lXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtODItd2l0aCBpdC4gVGhlIG1lbW9yeSBvZiBzdHJ1Y3QgbmV0X2RldmljZSBpdHNlbGYgbWF5IHN0aWxsIGJlIHJlZmVyZW5jZWRcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdD04Mz1ieSBzeXNmcyBidXQgYWxsIG9wZXJhdGlvbnMgb24gdGhhdCBkZXZpY2Ugd2lsbCBmYWlsLlxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTg0LVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0Ojg1OmZyZWVfbmV0ZGV2KCkgY2FuIGJlIGNhbGxlZCBhZnRlciB1bnJlZ2lzdGVyX25ldGRldigpIHJldHVybnMgb3Igd2hlblxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0Ojg2OnJlZ2lzdGVyX25ldGRldigpIGZhaWxlZC5cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC04Ny1cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q9OTY9RXhhbXBsZSBmbG93IG9mIG5ldGRldiBoYW5kbGluZyB1bmRlciBgYHJ0bmxfbG9ja2BgOlxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xMzUtXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6MTM2OiAgICBlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2UoZGV2KTtcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xMzctICAgIGlmIChlcnIpXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6MTM4OiAgICAgIC8qIHJlZ2lzdGVyX25ldGRldmljZSgpIGNhbGxzIGRlc3RydWN0b3Igb24gZmFpbHVyZSAqL1xuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTEzOS0gICAgICBnb3RvIGVycl9mcmVlX2RldjtcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xNDAtXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6MTQxOiAgICAvKiBJZiBhbnl0aGluZyBmYWlscyBub3cgdW5yZWdpc3Rlcl9uZXRkZXZpY2UoKSAob3IgdW5yZWdpc3Rlcl9uZXRkZXYoKSlcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xNDItICAgICAqIHdpbGwgdGFrZSBjYXJlIG9mIGNhbGxpbmcgbXlfZGVzdHJ1Y3RvciBhbmQgZnJlZV9uZXRkZXYoKS5cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q9MTU0PUlmIHN0cnVjdCBuZXRfZGV2aWNlLnByaXZfZGVzdHJ1Y3RvciBpcyBzZXQgaXQgd2lsbCBiZSBjYWxsZWQgYnkgdGhlIGNvcmVcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDoxNTU6c29tZSB0aW1lIGFmdGVyIHVucmVnaXN0ZXJfbmV0ZGV2aWNlKCksIGl0IHdpbGwgYWxzbyBiZSBjYWxsZWQgaWZcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDoxNTY6cmVnaXN0ZXJfbmV0ZGV2aWNlKCkgZmFpbHMuIFRoZSBjYWxsYmFjayBtYXkgYmUgaW52b2tlZCB3aXRoIG9yIHdpdGhvdXRcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xNTctYGBydG5sX2xvY2tgYCBoZWxkLlxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdD0xNjI9U2V0dGluZyBzdHJ1Y3QgbmV0X2RldmljZS5uZWVkc19mcmVlX25ldGRldiBtYWtlcyBjb3JlIGNhbGwgZnJlZV9uZXRkZXYoKVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0OjE2MzphdXRvbWF0aWNhbGx5IGFmdGVyIHVucmVnaXN0ZXJfbmV0ZGV2aWNlKCkgd2hlbiBhbGwgcmVmZXJlbmNlcyB0byB0aGUgZGV2aWNlXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6MTY0OmFyZSBnb25lLiBJdCBvbmx5IHRha2VzIGVmZmVjdCBhZnRlciBhIHN1Y2Nlc3NmdWwgY2FsbCB0byByZWdpc3Rlcl9uZXRkZXZpY2UoKVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0OjE2NTpzbyBpZiByZWdpc3Rlcl9uZXRkZXZpY2UoKSBmYWlscyBkcml2ZXIgaXMgcmVzcG9uc2libGUgZm9yIGNhbGxpbmdcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xNjYtZnJlZV9uZXRkZXYoKS5cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xNjctXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6MTY4OmZyZWVfbmV0ZGV2KCkgaXMgc2FmZSB0byBjYWxsIG9uIGVycm9yIHBhdGhzIHJpZ2h0IGFmdGVyIHVucmVnaXN0ZXJfbmV0ZGV2aWNlKClcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDoxNjk6b3Igd2hlbiByZWdpc3Rlcl9uZXRkZXZpY2UoKSBmYWlscy4gUGFydHMgb2YgbmV0ZGV2IChkZSlyZWdpc3RyYXRpb24gcHJvY2Vzc1xuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTE3MC1oYXBwZW4gYWZ0ZXIgYGBydG5sX2xvY2tgYCBpcyByZWxlYXNlZCwgdGhlcmVmb3JlIGluIHRob3NlIGNhc2VzIGZyZWVfbmV0ZGV2KClcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvc3dpdGNoZGV2LnJzdD04NT1PbiBzd2l0Y2hkZXYgZHJpdmVyIGluaXRpYWxpemF0aW9uLCB0aGUgZHJpdmVyIHdpbGwgYWxsb2NhdGUgYW5kIHJlZ2lzdGVyIGFcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9zd2l0Y2hkZXYucnN0Ojg2OnN0cnVjdCBuZXRfZGV2aWNlICh1c2luZyByZWdpc3Rlcl9uZXRkZXYoKSkgZm9yIGVhY2ggZW51bWVyYXRlZCBwaHlzaWNhbCBzd2l0Y2hcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9zd2l0Y2hkZXYucnN0LTg3LXBvcnQsIGNhbGxlZCB0aGUgcG9ydCBuZXRkZXYuICBBIHBvcnQgbmV0ZGV2IGlzIHRoZSBzb2Z0d2FyZSByZXByZXNlbnRhdGlvbiBvZlxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy94ZnJtL3hmcm1fZGV2aWNlLnJzdD05Nz1GbG93XG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3hmcm0veGZybV9kZXZpY2UucnN0LTk5LVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3hmcm0veGZybV9kZXZpY2UucnN0OjEwMDpBdCBwcm9iZSB0aW1lIGFuZCBiZWZvcmUgdGhlIGNhbGwgdG8gcmVnaXN0ZXJfbmV0ZGV2KCksIHRoZSBkcml2ZXIgc2hvdWxkXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcveGZybS94ZnJtX2RldmljZS5yc3QtMTAxLXNldCB1cCBsb2NhbCBkYXRhIHN0cnVjdHVyZXMgYW5kIFhGUk0gY2FsbGJhY2tzLCBhbmQgc2V0IHRoZSBmZWF0dXJlIGJpdHMuXG4tLVxuYXJjaC9tNjhrL2VtdS9uZmV0aC5jPTE4NT1zdGF0aWMgc3RydWN0IG5ldF9kZXZpY2UgKiBfX2luaXQgbmZldGhfcHJvYmUoaW50IHVuaXQpXG4tLVxuYXJjaC9tNjhrL2VtdS9uZmV0aC5jLTIwNy1cbmFyY2gvbTY4ay9lbXUvbmZldGguYzoyMDg6XHRlcnIgPSByZWdpc3Rlcl9uZXRkZXYoZGV2KTtcbmFyY2gvbTY4ay9lbXUvbmZldGguYy0yMDktXHRpZiAoZXJyKSB7XG4tLVxuYXJjaC9tNjhrL2VtdS9uZmV0aC5jPTI1MT1zdGF0aWMgdm9pZCBfX2V4aXQgbmZldGhfY2xlYW51cCh2b2lkKVxuLS1cbmFyY2gvbTY4ay9lbXUvbmZldGguYy0yNTYtXHRcdGlmIChuZmV0aF9kZXZbaV0pIHtcbmFyY2gvbTY4ay9lbXUvbmZldGguYzoyNTc6XHRcdFx0dW5yZWdpc3Rlcl9uZXRkZXYobmZldGhfZGV2W2ldKTtcbmFyY2gvbTY4ay9lbXUvbmZldGguYy0yNTgtXHRcdFx0ZnJlZV9uZXRkZXYobmZldGhfZGV2W2ldKTtcbi0tXG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYz03ODE9c3RhdGljIGludCB2ZWN0b3JfcmVtb3ZlKGludCBuLCBjaGFyICoqZXJyb3Jfb3V0KVxuLS1cbmFyY2gvdW0vZHJpdmVycy92ZWN0b3Jfa2Vybi5jLTc5My1cdFx0cmV0dXJuIC1FQlVTWTtcbmFyY2gvdW0vZHJpdmVycy92ZWN0b3Jfa2Vybi5jOjc5NDpcdHVucmVnaXN0ZXJfbmV0ZGV2KGRldik7XG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYy03OTUtXHRwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihcdTAwMjZ2ZWNfZC1cdTAwM2VwZGV2KTtcbi0tXG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYz0xNTc0PXN0YXRpYyB2b2lkIHZlY3Rvcl9ldGhfY29uZmlndXJlKFxuLS1cbmFyY2gvdW0vZHJpdmVycy92ZWN0b3Jfa2Vybi5jLTE2MDAtXHQvKiBJZiB0aGlzIG5hbWUgZW5kcyB1cCBjb25mbGljdGluZyB3aXRoIGFuIGV4aXN0aW5nIHJlZ2lzdGVyZWRcbmFyY2gvdW0vZHJpdmVycy92ZWN0b3Jfa2Vybi5jOjE2MDE6XHQgKiBuZXRkZXZpY2UsIHRoYXQgaXMgT0ssIHJlZ2lzdGVyX25ldGRldnssaWNlfSgpIHdpbGwgbm90aWNlIHRoaXNcbmFyY2gvdW0vZHJpdmVycy92ZWN0b3Jfa2Vybi5jLTE2MDItXHQgKiBhbmQgZmFpbC5cbi0tXG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYy0xNjQ5LVx0cnRubF9sb2NrKCk7XG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYzoxNjUwOlx0ZXJyID0gcmVnaXN0ZXJfbmV0ZGV2aWNlKGRldik7XG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYy0xNjUxLVx0cnRubF91bmxvY2soKTtcbi0tXG5hcmNoL3h0ZW5zYS9wbGF0Zm9ybXMvaXNzL25ldHdvcmsuYz00Nzk9c3RhdGljIHZvaWQgaXNzX25ldF9jb25maWd1cmUoaW50IGluZGV4LCBjaGFyICppbml0KVxuLS1cbmFyY2gveHRlbnNhL3BsYXRmb3Jtcy9pc3MvbmV0d29yay5jLTUwMC1cdCAqIElmIHRoaXMgbmFtZSBlbmRzIHVwIGNvbmZsaWN0aW5nIHdpdGggYW4gZXhpc3RpbmcgcmVnaXN0ZXJlZFxuYXJjaC94dGVuc2EvcGxhdGZvcm1zL2lzcy9uZXR3b3JrLmM6NTAxOlx0ICogbmV0ZGV2aWNlLCB0aGF0IGlzIE9LLCByZWdpc3Rlcl9uZXRkZXZ7LGljZX0oKSB3aWxsIG5vdGljZSB0aGlzXG5hcmNoL3h0ZW5zYS9wbGF0Zm9ybXMvaXNzL25ldHdvcmsuYy01MDItXHQgKiBhbmQgZmFpbC5cbi0tXG5hcmNoL3h0ZW5zYS9wbGF0Zm9ybXMvaXNzL25ldHdvcmsuYy01MzktXHRydG5sX2xvY2soKTtcbmFyY2gveHRlbnNhL3BsYXRmb3Jtcy9pc3MvbmV0d29yay5jOjU0MDpcdGlmIChyZWdpc3Rlcl9uZXRkZXZpY2UoZGV2KSkge1xuYXJjaC94dGVuc2EvcGxhdGZvcm1zL2lzcy9uZXR3b3JrLmMtNTQxLVx0XHRydG5sX3VubG9jaygpO1xuLS1cbmRyaXZlcnMvZmlyZXdpcmUvbmV0LmM9MTQzMj1zdGF0aWMgaW50IGZ3bmV0X3Byb2JlKHN0cnVjdCBmd191bml0ICp1bml0LFxuLS1cbmRyaXZlcnMvZmlyZXdpcmUvbmV0LmMtMTQ5NS1cbmRyaXZlcnMvZmlyZXdpcmUvbmV0LmM6MTQ5NjpcdHJldCA9IHJlZ2lzdGVyX25ldGRldihuZXQpO1xuZHJpdmVycy9maXJld2lyZS9uZXQuYy0xNDk3LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL2ZpcmV3aXJlL25ldC5jLTE1MDUtXHRpZiAocmV0IFx1MDAyNlx1MDAyNiBhbGxvY2F0ZWRfbmV0ZGV2KSB7XG5kcml2ZXJzL2ZpcmV3aXJlL25ldC5jOjE1MDY6XHRcdHVucmVnaXN0ZXJfbmV0ZGV2KG5ldCk7XG5kcml2ZXJzL2ZpcmV3aXJlL25ldC5jLTE1MDctXHRcdGxpc3RfZGVsKFx1MDAyNmRldi1cdTAwM2VkZXZfbGluayk7XG4tLVxuZHJpdmVycy9maXJld2lyZS9uZXQuYz0xNTUyPXN0YXRpYyB2b2lkIGZ3bmV0X3JlbW92ZShzdHJ1Y3QgZndfdW5pdCAqdW5pdClcbi0tXG5kcml2ZXJzL2ZpcmV3aXJlL25ldC5jLTE1NjUtXHRpZiAobGlzdF9lbXB0eShcdTAwMjZkZXYtXHUwMDNlcGVlcl9saXN0KSkge1xuZHJpdmVycy9maXJld2lyZS9uZXQuYzoxNTY2Olx0XHR1bnJlZ2lzdGVyX25ldGRldihuZXQpO1xuZHJpdmVycy9maXJld2lyZS9uZXQuYy0xNTY3LVxuLS1cbmRyaXZlcnMvaHNpL2NsaWVudHMvc3NpX3Byb3RvY29sLmM9MTA3Mz1zdGF0aWMgaW50IHNzaV9wcm90b2NvbF9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9oc2kvY2xpZW50cy9zc2lfcHJvdG9jb2wuYy0xMTI3LVx0bmV0aWZfY2Fycmllcl9vZmYoc3NpLVx1MDAzZW5ldGRldik7XG5kcml2ZXJzL2hzaS9jbGllbnRzL3NzaV9wcm90b2NvbC5jOjExMjg6XHRlcnIgPSByZWdpc3Rlcl9uZXRkZXYoc3NpLVx1MDAzZW5ldGRldik7XG5kcml2ZXJzL2hzaS9jbGllbnRzL3NzaV9wcm90b2NvbC5jLTExMjktXHRpZiAoZXJyIFx1MDAzYyAwKSB7XG4tLVxuZHJpdmVycy9oc2kvY2xpZW50cy9zc2lfcHJvdG9jb2wuYz0xMTUwPXN0YXRpYyBpbnQgc3NpX3Byb3RvY29sX3JlbW92ZShzdHJ1Y3QgZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9oc2kvY2xpZW50cy9zc2lfcHJvdG9jb2wuYy0xMTU1LVx0bGlzdF9kZWwoXHUwMDI2c3NpLVx1MDAzZWxpbmspO1xuZHJpdmVycy9oc2kvY2xpZW50cy9zc2lfcHJvdG9jb2wuYzoxMTU2Olx0dW5yZWdpc3Rlcl9uZXRkZXYoc3NpLVx1MDAzZW5ldGRldik7XG5kcml2ZXJzL2hzaS9jbGllbnRzL3NzaV9wcm90b2NvbC5jLTExNTctXHRzc2lwX2ZyZWVfY21kcyhzc2kpO1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtYS5jPTU0ODY9c3RhdGljIGludCBfX2luaXQgY21hX2luaXQodm9pZClcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYy01NTExLVx0aWJfc2FfcmVnaXN0ZXJfY2xpZW50KFx1MDAyNnNhX2NsaWVudCk7XG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYzo1NTEyOlx0cmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNmNtYV9uYik7XG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYy01NTEzLVx0cmVnaXN0ZXJfbmV0ZXZlbnRfbm90aWZpZXIoXHUwMDI2Y21hX25ldGV2ZW50X2NiKTtcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYy01NTI4LVx0dW5yZWdpc3Rlcl9uZXRldmVudF9ub3RpZmllcihcdTAwMjZjbWFfbmV0ZXZlbnRfY2IpO1xuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY21hLmM6NTUyOTpcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNmNtYV9uYik7XG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYy01NTMwLVx0aWJfc2FfdW5yZWdpc3Rlcl9jbGllbnQoXHUwMDI2c2FfY2xpZW50KTtcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYz01NTM3PXN0YXRpYyB2b2lkIF9fZXhpdCBjbWFfY2xlYW51cCh2b2lkKVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtYS5jLTU1NDEtXHR1bnJlZ2lzdGVyX25ldGV2ZW50X25vdGlmaWVyKFx1MDAyNmNtYV9uZXRldmVudF9jYik7XG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYzo1NTQyOlx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2Y21hX25iKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtYS5jLTU1NDMtXHRpYl9zYV91bnJlZ2lzdGVyX2NsaWVudChcdTAwMjZzYV9jbGllbnQpO1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2RldmljZS5jPTMwMzU9c3RhdGljIGludCBfX2luaXQgaWJfY29yZV9pbml0KHZvaWQpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZGV2aWNlLmMtMzEwNS1cbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2RldmljZS5jOjMxMDY6XHRyZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2bmJfbmV0ZGV2aWNlKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2RldmljZS5jLTMxMDctXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZGV2aWNlLmM9MzEzNT1zdGF0aWMgdm9pZCBfX2V4aXQgaWJfY29yZV9jbGVhbnVwKHZvaWQpXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9kZXZpY2UuYy0zMTM2LXtcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2RldmljZS5jOjMxMzc6XHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZuYl9uZXRkZXZpY2UpO1xuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZGV2aWNlLmMtMzEzOC1cdHJvY2VfZ2lkX21nbXRfY2xlYW51cCgpO1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3JvY2VfZ2lkX21nbXQuYz05MTg9aW50IF9faW5pdCByb2NlX2dpZF9tZ210X2luaXQodm9pZClcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9yb2NlX2dpZF9tZ210LmMtOTMxLVx0ICovXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9yb2NlX2dpZF9tZ210LmM6OTMyOlx0cmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNm5iX25ldGRldmljZSk7XG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9yb2NlX2dpZF9tZ210LmMtOTMzLVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3JvY2VfZ2lkX21nbXQuYz05Mzc9dm9pZCBfX2V4aXQgcm9jZV9naWRfbWdtdF9jbGVhbnVwKHZvaWQpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvcm9jZV9naWRfbWdtdC5jLTk0MS1cdHVucmVnaXN0ZXJfaW5ldGFkZHJfbm90aWZpZXIoXHUwMDI2bmJfaW5ldGFkZHIpO1xuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvcm9jZV9naWRfbWdtdC5jOjk0MjpcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNm5iX25ldGRldmljZSk7XG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9yb2NlX2dpZF9tZ210LmMtOTQzLVx0LyogRW5zdXJlIGFsbCBnaWQgZGVsZXRpb24gdGFza3MgY29tcGxldGUgYmVmb3JlIHdlIGdvIGRvd24sXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JuZ19yZS9ibmdfZGV2LmM9MjM9c3RhdGljIHN0cnVjdCBibmdfcmVfZGV2ICpibmdfcmVfZGV2X2FkZChzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZSAqYWRldixcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvYm5nX3JlL2JuZ19kZXYuYy00NC1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibmdfcmUvYm5nX2Rldi5jOjQ1OnN0YXRpYyBpbnQgYm5nX3JlX3JlZ2lzdGVyX25ldGRldihzdHJ1Y3QgYm5nX3JlX2RldiAqcmRldilcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibmdfcmUvYm5nX2Rldi5jLTQ2LXtcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvYm5nX3JlL2JuZ19kZXYuYz0yNzY9c3RhdGljIGludCBibmdfcmVfZGV2X2luaXQoc3RydWN0IGJuZ19yZV9kZXYgKnJkZXYpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JuZ19yZS9ibmdfZGV2LmMtMjg1LVx0LyogUmVnaXN0ZXJlZCBhIG5ldyBSb0NFIGRldmljZSBpbnN0YW5jZSB0byBuZXRkZXYgKi9cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibmdfcmUvYm5nX2Rldi5jOjI4NjpcdHJjID0gYm5nX3JlX3JlZ2lzdGVyX25ldGRldihyZGV2KTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibmdfcmUvYm5nX2Rldi5jLTI4Ny1cdGlmIChyYykge1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibnh0X3JlL21haW4uYz01MTQ9c3RhdGljIHN0cnVjdCBibnh0X3VscF9vcHMgYm54dF9yZV91bHBfb3BzID0ge1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibnh0X3JlL21haW4uYy01MjEtXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvYm54dF9yZS9tYWluLmM6NTIyOnN0YXRpYyBpbnQgYm54dF9yZV9yZWdpc3Rlcl9uZXRkZXYoc3RydWN0IGJueHRfcmVfZGV2ICpyZGV2KVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JueHRfcmUvbWFpbi5jLTUyMy17XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JueHRfcmUvbWFpbi5jPTIxODI9c3RhdGljIGludCBibnh0X3JlX2Rldl9pbml0KHN0cnVjdCBibnh0X3JlX2RldiAqcmRldiwgdTggb3BfdHlwZSlcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvYm54dF9yZS9tYWluLmMtMjE5Mi1cdFx0LyogUmVnaXN0ZXJlZCBhIG5ldyBSb0NFIGRldmljZSBpbnN0YW5jZSB0byBuZXRkZXYgKi9cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibnh0X3JlL21haW4uYzoyMTkzOlx0XHRyYyA9IGJueHRfcmVfcmVnaXN0ZXJfbmV0ZGV2KHJkZXYpO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JueHRfcmUvbWFpbi5jLTIxOTQtXHRcdGlmIChyYykge1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9lcmRtYS9lcmRtYV9tYWluLmM9ODY9c3RhdGljIGludCBlcmRtYV9kZXZpY2VfcmVnaXN0ZXIoc3RydWN0IGVyZG1hX2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9lcmRtYS9lcmRtYV9tYWluLmMtMTA1LVx0ZGV2LVx1MDAzZW5ldGRldl9uYi5ub3RpZmllcl9jYWxsID0gZXJkbWFfbmV0ZGV2X2V2ZW50O1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L2VyZG1hL2VyZG1hX21haW4uYzoxMDY6XHRyZXQgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2ZGV2LVx1MDAzZW5ldGRldl9uYik7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvZXJkbWEvZXJkbWFfbWFpbi5jLTEwNy1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvZXJkbWEvZXJkbWFfbWFpbi5jPTYxNT1zdGF0aWMgdm9pZCBlcmRtYV9pYl9kZXZpY2VfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9lcmRtYS9lcmRtYV9tYWluLmMtNjE4LVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2VyZG1hL2VyZG1hX21haW4uYzo2MTk6XHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZkZXYtXHUwMDNlbmV0ZGV2X25iKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9lcmRtYS9lcmRtYV9tYWluLmMtNjIwLVx0aWJfdW5yZWdpc3Rlcl9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZWliZGV2KTtcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYz04NDY9aW50IGhuc19yb2NlX2FsbG9jX2JvbmRfZ3JwKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2Rldilcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYy04NzgtXHRcdGJvbmRfZ3JwLVx1MDAzZWJvbmRfbmIubm90aWZpZXJfY2FsbCA9IGhuc19yb2NlX2JvbmRfZXZlbnQ7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYzo4Nzk6XHRcdHJldCA9IHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZib25kX2dycC1cdTAwM2Vib25kX25iKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jLTg4MC1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jLTg5Ni1cdGZvciAoaS0tOyBpIFx1MDAzZT0gMDsgaS0tKSB7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYzo4OTc6XHRcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNmJncnBzW2ldLVx1MDAzZWJvbmRfbmIpO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmMtODk4LVx0XHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXHUwMDI2YmdycHNbaV0tXHUwMDNlYm9uZF93b3JrKTtcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYz05MDY9dm9pZCBobnNfcm9jZV9kZWFsbG9jX2JvbmRfZ3JwKHZvaWQpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmMtOTE3LVx0XHRcdFx0Y29udGludWU7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYzo5MTg6XHRcdFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2Ym9uZF9ncnAtXHUwMDNlYm9uZF9uYik7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYy05MTktXHRcdFx0Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKFx1MDAyNmJvbmRfZ3JwLVx1MDAzZWJvbmRfd29yayk7XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmM9OTQ5PXZvaWQgaG5zX3JvY2VfYm9uZF9zdXNwZW5kKHN0cnVjdCBobmFlM19oYW5kbGUgKmhhbmRsZSlcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYy05NzItXHRcdFx0Y29udGludWU7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYzo5NzM6XHRcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNmJvbmRfZ3JwLVx1MDAzZWJvbmRfbmIpO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmMtOTc0LVx0XHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXHUwMDI2Ym9uZF9ncnAtXHUwMDNlYm9uZF93b3JrKTtcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYz05ODI9dm9pZCBobnNfcm9jZV9ib25kX3Jlc3VtZShzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoYW5kbGUpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmMtMTAwMi1cdFx0XHRjb250aW51ZTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jOjEwMDM6XHRcdHJldCA9IHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZib25kX2dycC1cdTAwM2Vib25kX25iKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jLTEwMDQtXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmM9NzAyPXN0YXRpYyB2b2lkIGhuc19yb2NlX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBobnNfcm9jZV9kZXYgKmhyX2Rldixcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX21haW4uYy03MTYtXHRocl9kZXYtXHUwMDNlYWN0aXZlID0gZmFsc2U7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX21haW4uYzo3MTc6XHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZpYm9lLVx1MDAzZW5iKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfbWFpbi5jLTcxOC1cdGliX3VucmVnaXN0ZXJfZGV2aWNlKFx1MDAyNmhyX2Rldi1cdTAwM2VpYl9kZXYpO1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfbWFpbi5jPTgwMT1zdGF0aWMgaW50IGhuc19yb2NlX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgaG5zX3JvY2VfZGV2ICpocl9kZXYpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmMtODg2LVx0aWJvZS1cdTAwM2VuYi5ub3RpZmllcl9jYWxsID0gaG5zX3JvY2VfbmV0ZGV2X2V2ZW50O1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmM6ODg3Olx0cmV0ID0gcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNmlib2UtXHUwMDNlbmIpO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmMtODg4LVx0aWYgKHJldCkge1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmM6ODg5Olx0XHRkZXZfZXJyKGRldiwgXCYjMzQ7cmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyIGZhaWxlZCFcXG5cJiMzNDspO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmMtODkwLVx0XHRnb3RvIGVycm9yX2ZhaWxlZF9zZXR1cF9tdHVfbWFjO1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9pcmRtYS9tYWluLmM9MjY9c3RhdGljIHZvaWQgaXJkbWFfcmVnaXN0ZXJfbm90aWZpZXJzKHZvaWQpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2lyZG1hL21haW4uYy0zMC1cdHJlZ2lzdGVyX25ldGV2ZW50X25vdGlmaWVyKFx1MDAyNmlyZG1hX25ldF9ub3RpZmllcik7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaXJkbWEvbWFpbi5jOjMxOlx0cmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNmlyZG1hX25ldGRldmljZV9ub3RpZmllcik7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaXJkbWEvbWFpbi5jLTMyLX1cbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaXJkbWEvbWFpbi5jPTM0PXN0YXRpYyB2b2lkIGlyZG1hX3VucmVnaXN0ZXJfbm90aWZpZXJzKHZvaWQpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2lyZG1hL21haW4uYy0zOC1cdHVucmVnaXN0ZXJfaW5ldDZhZGRyX25vdGlmaWVyKFx1MDAyNmlyZG1hX2luZXRhZGRyNl9ub3RpZmllcik7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaXJkbWEvbWFpbi5jOjM5Olx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2aXJkbWFfbmV0ZGV2aWNlX25vdGlmaWVyKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9pcmRtYS9tYWluLmMtNDAtfVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jPTExNj1zdGF0aWMgaW50IG1hbmFfaWJfcHJvYmUoc3RydWN0IGF1eGlsaWFyeV9kZXZpY2UgKmFkZXYsXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21hbmEvZGV2aWNlLmMtMTg4LVx0XHRkZXYtXHUwMDNlbmIubm90aWZpZXJfY2FsbCA9IG1hbmFfaWJfbmV0ZGV2X2V2ZW50O1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L21hbmEvZGV2aWNlLmM6MTg5Olx0XHRyZXQgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2ZGV2LVx1MDAzZW5iKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jLTE5MC1cdFx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jLTIyNS1cdGlmIChtYW5hX2liX2lzX3JuaWMoZGV2KSlcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jOjIyNjpcdFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2ZGV2LVx1MDAzZW5iKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jLTIyNy1kZXN0cm95X3JuaWM6XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21hbmEvZGV2aWNlLmM9MjM5PXN0YXRpYyB2b2lkIG1hbmFfaWJfcmVtb3ZlKHN0cnVjdCBhdXhpbGlhcnlfZGV2aWNlICphZGV2KVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jLTI0OC1cdGlmIChtYW5hX2liX2lzX3JuaWMoZGV2KSkge1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L21hbmEvZGV2aWNlLmM6MjQ5Olx0XHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZkZXYtXHUwMDNlbmIpO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L21hbmEvZGV2aWNlLmMtMjUwLVx0XHRtYW5hX2liX2dkX2Rlc3Ryb3lfcm5pY19hZGFwdGVyKGRldik7XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWFpbi5jPTI2MTM9c3RhdGljIGludCBtbHg0X2liX3Byb2JlKHN0cnVjdCBhdXhpbGlhcnlfZGV2aWNlICphZGV2LFxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21haW4uYy0yODI3LVx0XHRpYm9lLVx1MDAzZW5iLm5vdGlmaWVyX2NhbGwgPSBtbHg0X2liX25ldGRldl9ldmVudDtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21haW4uYzoyODI4Olx0XHRlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2aWJvZS1cdTAwM2VuYik7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmMtMjgyOS1cdFx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21haW4uYy0yODY3LVx0aWYgKGliZGV2LVx1MDAzZWlib2UubmIubm90aWZpZXJfY2FsbCkge1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWFpbi5jOjI4Njg6XHRcdGlmICh1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZpYmRldi1cdTAwM2VpYm9lLm5iKSlcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21haW4uYy0yODY5LVx0XHRcdHByX3dhcm4oXCYjMzQ7ZmFpbHVyZSB1bnJlZ2lzdGVyaW5nIG5vdGlmaWVyXFxuXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmM9Mjk3NT1zdGF0aWMgdm9pZCBtbHg0X2liX3JlbW92ZShzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZSAqYWRldilcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmMtMjk5MC1cdGlmIChpYmRldi1cdTAwM2VpYm9lLm5iLm5vdGlmaWVyX2NhbGwpIHtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21haW4uYzoyOTkxOlx0XHRpZiAodW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2aWJkZXYtXHUwMDNlaWJvZS5uYikpXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmMtMjk5Mi1cdFx0XHRwcl93YXJuKFwmIzM0O2ZhaWx1cmUgdW5yZWdpc3RlcmluZyBub3RpZmllclxcblwmIzM0Oyk7XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jPTM3NjU9c3RhdGljIHZvaWQgbWx4NV9uZXRkZXZfbm90aWZpZXJfcmVnaXN0ZXIoc3RydWN0IG1seDVfcm9jZSAqcm9jZSxcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMtMzc3My1cdHJvY2UtXHUwMDNlbmIubm90aWZpZXJfY2FsbCA9IG1seDVfbmV0ZGV2X2V2ZW50O1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jOjM3NzQ6XHRlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXJfZGV2X25ldChuZXRkZXYsIFx1MDAyNnJvY2UtXHUwMDNlbmIsIFx1MDAyNnJvY2UtXHUwMDNlbm4pO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jLTM3NzUtXHRXQVJOX09OKGVycik7XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jPTM3Nzg9c3RhdGljIHZvaWQgbWx4NV9uZXRkZXZfbm90aWZpZXJfdW5yZWdpc3RlcihzdHJ1Y3QgbWx4NV9yb2NlICpyb2NlKVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zNzgxLVx0XHRyZXR1cm47XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM6Mzc4MjpcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyX2Rldl9uZXQocm9jZS1cdTAwM2V0cmFja2luZ19uZXRkZXYsIFx1MDAyNnJvY2UtXHUwMDNlbmIsXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMtMzc4My1cdFx0XHRcdFx0ICAgICAgXHUwMDI2cm9jZS1cdTAwM2Vubik7XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L3VzbmljL3VzbmljX2liX21haW4uYz02NTk9c3RhdGljIGludCBfX2luaXQgdXNuaWNfaWJfaW5pdCh2b2lkKVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody91c25pYy91c25pY19pYl9tYWluLmMtNjcwLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L3VzbmljL3VzbmljX2liX21haW4uYzo2NzE6XHRlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2dXNuaWNfaWJfbmV0ZGV2aWNlX25vdGlmaWVyKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody91c25pYy91c25pY19pYl9tYWluLmMtNjcyLVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody91c25pYy91c25pY19pYl9tYWluLmMtNjk1LW91dF91bnJlZ19uZXRkZXZfbm90aWZpZXI6XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfaWJfbWFpbi5jOjY5NjpcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNnVzbmljX2liX25ldGRldmljZV9ub3RpZmllcik7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfaWJfbWFpbi5jLTY5Ny1vdXRfcGNpX3VucmVnOlxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody91c25pYy91c25pY19pYl9tYWluLmM9NzA0PXN0YXRpYyB2b2lkIF9fZXhpdCB1c25pY19pYl9kZXN0cm95KHZvaWQpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL2h3L3VzbmljL3VzbmljX2liX21haW4uYy03MDktXHR1bnJlZ2lzdGVyX2luZXRhZGRyX25vdGlmaWVyKFx1MDAyNnVzbmljX2liX2luZXRhZGRyX25vdGlmaWVyKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody91c25pYy91c25pY19pYl9tYWluLmM6NzEwOlx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2dXNuaWNfaWJfbmV0ZGV2aWNlX25vdGlmaWVyKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody91c25pYy91c25pY19pYl9tYWluLmMtNzExLVx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFx1MDAyNnVzbmljX2liX3BjaV9kcml2ZXIpO1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody92bXdfcHZyZG1hL3B2cmRtYV9tYWluLmM9NzY0PXN0YXRpYyBpbnQgcHZyZG1hX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdm13X3B2cmRtYS9wdnJkbWFfbWFpbi5jLTEwMTUtXHRkZXYtXHUwMDNlbmJfbmV0ZGV2Lm5vdGlmaWVyX2NhbGwgPSBwdnJkbWFfbmV0ZGV2aWNlX2V2ZW50O1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L3Ztd19wdnJkbWEvcHZyZG1hX21haW4uYzoxMDE2Olx0cmV0ID0gcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNmRldi1cdTAwM2VuYl9uZXRkZXYpO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L3Ztd19wdnJkbWEvcHZyZG1hX21haW4uYy0xMDE3LVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody92bXdfcHZyZG1hL3B2cmRtYV9tYWluLmM9MTA2Mz1zdGF0aWMgdm9pZCBwdnJkbWFfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdm13X3B2cmRtYS9wdnJkbWFfbWFpbi5jLTEwNzEtXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdm13X3B2cmRtYS9wdnJkbWFfbWFpbi5jOjEwNzI6XHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZkZXYtXHUwMDNlbmJfbmV0ZGV2KTtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody92bXdfcHZyZG1hL3B2cmRtYV9tYWluLmMtMTA3My1cdGRldi1cdTAwM2VuYl9uZXRkZXYubm90aWZpZXJfY2FsbCA9IE5VTEw7XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfbmV0LmM9ODA2PWludCByeGVfcmVnaXN0ZXJfbm90aWZpZXIodm9pZClcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9uZXQuYy04MDktXG5kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9uZXQuYzo4MTA6XHRlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2cnhlX25ldF9ub3RpZmllcik7XG5kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9uZXQuYy04MTEtXHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfbmV0LmM9ODE5PXZvaWQgcnhlX25ldF9leGl0KHZvaWQpXG5kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9uZXQuYy04MjAte1xuZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfbmV0LmM6ODIxOlx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2cnhlX25ldF9ub3RpZmllcik7XG5kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9uZXQuYy04MjItfVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9zdy9zaXcvc2l3X21haW4uYz00NDY9c3RhdGljIF9faW5pdCBpbnQgc2l3X2luaXRfbW9kdWxlKHZvaWQpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfbWFpbi5jLTQ2OS1cbmRyaXZlcnMvaW5maW5pYmFuZC9zdy9zaXcvc2l3X21haW4uYzo0NzA6XHRydiA9IHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZzaXdfbmV0ZGV2X25iKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9zdy9zaXcvc2l3X21haW4uYy00NzEtXHRpZiAocnYpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfbWFpbi5jPTQ5MD1zdGF0aWMgdm9pZCBfX2V4aXQgc2l3X2V4aXRfbW9kdWxlKHZvaWQpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfbWFpbi5jLTQ5My1cbmRyaXZlcnMvaW5maW5pYmFuZC9zdy9zaXcvc2l3X21haW4uYzo0OTQ6XHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZzaXdfbmV0ZGV2X25iKTtcbmRyaXZlcnMvaW5maW5pYmFuZC9zdy9zaXcvc2l3X21haW4uYy00OTUtXHRyZG1hX2xpbmtfdW5yZWdpc3RlcihcdTAwMjZzaXdfbGlua19vcHMpO1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jPTE4NTI9c3RhdGljIGludCBpcG9pYl9kZXZfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTE5MjAtLypcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jOjE5MjE6ICogVGhpcyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgZG9pbmcgYW4gdW5yZWdpc3Rlcl9uZXRkZXYgb24gYSBwYXJlbnQgZGV2aWNlIHRvXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0xOTIyLSAqIHNodXRkb3duIHRoZSBJQiBldmVudCBoYW5kbGVyLlxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jPTIyMDQ9dm9pZCBpcG9pYl9zZXR1cF9jb21tb24oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yMjI1LVx0LypcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jOjIyMjY6XHQgKiB1bnJlZ2lzdGVyX25ldGRldiBhbHdheXMgZnJlZXMgdGhlIG5ldGRldiwgd2UgdXNlIHRoaXMgbW9kZVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjIyNy1cdCAqIGNvbnNpc3RlbnRseSB0byB1bmlmeSBhbGwgdGhlIHZhcmlvdXMgdW5yZWdpc3RlciBwYXRocywgaW5jbHVkaW5nXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM9MjI3NT1pbnQgaXBvaWJfaW50Zl9pbml0KHN0cnVjdCBpYl9kZXZpY2UgKmhjYSwgdTMyIHBvcnQsIGNvbnN0IGNoYXIgKm5hbWUsXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjMxNy1cdC8qXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYzoyMzE4Olx0ICogT25seSB0aGUgY2hpbGQgcmVnaXN0ZXJfbmV0ZGV2IGZsb3dzIGNhbiBoYW5kbGUgcHJpdl9kZXN0cnVjdG9yXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yMzE5LVx0ICogYmVpbmcgc2V0LCBzbyB3ZSBmb3JjZSBpdCB0byBOVUxMIGhlcmUgYW5kIGhhbmRsZSBtYW51YWxseSB1bnRpbCBpdFxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jPTIzMzQ9c3RydWN0IG5ldF9kZXZpY2UgKmlwb2liX2ludGZfYWxsb2Moc3RydWN0IGliX2RldmljZSAqaGNhLCB1MzIgcG9ydCxcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yMzUxLVx0ICogVXBvbiBzdWNjZXNzIHRoZSBjYWxsZXIgbXVzdCBlbnN1cmUgaXBvaWJfaW50Zl9mcmVlIGlzIGNhbGxlZCBvclxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM6MjM1MjpcdCAqIHJlZ2lzdGVyX25ldGRldmljZSBzdWNjZWVkJiMzOTtkIGFuZCBwcml2X2Rlc3RydWN0b3IgaXMgc2V0IHRvXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yMzUzLVx0ICogaXBvaWJfaW50Zl9mcmVlLlxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jPTIzNTg9dm9pZCBpcG9pYl9pbnRmX2ZyZWUoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yMzY3LVx0LypcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jOjIzNjg6XHQgKiBUaGVyZSBhcmUgc29tZSBlcnJvciBmbG93cyBhcm91bmQgcmVnaXN0ZXJfbmV0ZGV2IGZhaWxpbmcgdGhhdCBtYXlcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTIzNjktXHQgKiBhdHRlbXB0IHRvIGNhbGwgcHJpdl9kZXN0cnVjdG9yIHR3aWNlLCBwcmV2ZW50IHRoYXQgZnJvbSBoYXBwZW5pbmcuXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM9MjU4Mz1zdGF0aWMgc3RydWN0IG5ldF9kZXZpY2UgKmlwb2liX2FkZF9wb3J0KGNvbnN0IGNoYXIgKmZvcm1hdCxcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNjEwLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM6MjYxMTpcdHJlc3VsdCA9IHJlZ2lzdGVyX25ldGRldihuZGV2KTtcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTI2MTItXHRpZiAocmVzdWx0KSB7XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjYzMS1cdC8qXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYzoyNjMyOlx0ICogV2UgY2Fubm90IHNldCBwcml2X2Rlc3RydWN0b3IgYmVmb3JlIHJlZ2lzdGVyX25ldGRldiBiZWNhdXNlIHdlXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNjMzLVx0ICogbmVlZCBwcml2IHRvIGJlIGFsd2F5cyB2YWxpZCBkdXJpbmcgdGhlIGVycm9yIGZsb3cgdG8gZXhlY3V0ZVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTI2NTUtXHRpcG9pYl9wYXJlbnRfdW5yZWdpc3Rlcl9wcmUobmRldik7XG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYzoyNjU2Olx0dW5yZWdpc3Rlcl9uZXRkZXYobmRldik7XG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNjU3LVx0cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM9MjY5ND1zdGF0aWMgdm9pZCBpcG9pYl9yZW1vdmVfb25lKHN0cnVjdCBpYl9kZXZpY2UgKmRldmljZSwgdm9pZCAqY2xpZW50X2RhdGEpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjcwNy1cdFx0XHRcdFx0IGxpc3QpXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYzoyNzA4Olx0XHRcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX3F1ZXVlKGNwcml2LVx1MDAzZWRldiwgXHUwMDI2aGVhZCk7XG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNzA5LVx0XHRuZXRkZXZfdW5sb2NrKHByaXYtXHUwMDNlZGV2KTtcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jOjI3MTA6XHRcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX3F1ZXVlKHByaXYtXHUwMDNlZGV2LCBcdTAwMjZoZWFkKTtcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jOjI3MTE6XHRcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX21hbnkoXHUwMDI2aGVhZCk7XG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNzEyLVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jPTI3MjU9c3RhdGljIGludCBfX2luaXQgaXBvaWJfaW5pdF9tb2R1bGUodm9pZClcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNzc1LSNpZmRlZiBDT05GSUdfSU5GSU5JQkFORF9JUE9JQl9ERUJVR1xuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM6Mjc3NjpcdHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZpcG9pYl9uZXRkZXZfbm90aWZpZXIpO1xuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjc3Ny0jZW5kaWZcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYz0yNzkzPXN0YXRpYyB2b2lkIF9fZXhpdCBpcG9pYl9jbGVhbnVwX21vZHVsZSh2b2lkKVxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTI3OTUtI2lmZGVmIENPTkZJR19JTkZJTklCQU5EX0lQT0lCX0RFQlVHXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYzoyNzk2Olx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2aXBvaWJfbmV0ZGV2X25vdGlmaWVyKTtcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTI3OTctI2VuZGlmXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9uZXRsaW5rLmM9MTAwPXN0YXRpYyBpbnQgaXBvaWJfbmV3X2NoaWxkX2xpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX25ldGxpbmsuYy0xNDUtXHRcdGlmIChlcnIpIHtcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbmV0bGluay5jOjE0NjpcdFx0XHR1bnJlZ2lzdGVyX25ldGRldmljZShkZXYpO1xuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9uZXRsaW5rLmMtMTQ3LVx0XHRcdHJldHVybiBlcnI7XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9uZXRsaW5rLmM9MTU0PXN0YXRpYyB2b2lkIGlwb2liX2RlbF9jaGlsZF9saW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9uZXRsaW5rLmMtMTYwLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9uZXRsaW5rLmM6MTYxOlx0dW5yZWdpc3Rlcl9uZXRkZXZpY2VfcXVldWUoZGV2LCBoZWFkKTtcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbmV0bGluay5jLTE2Mi19XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmM9OTc9aW50IF9faXBvaWJfdmxhbl9hZGQoc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcHJpdiwgc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfdmxhbi5jLTEwNC1cdC8qXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYzoxMDU6XHQgKiBXZSBkbyBub3QgbmVlZCB0byB0b3VjaCBwcml2IGlmIHJlZ2lzdGVyX25ldGRldmljZSBmYWlscywgc28ganVzdFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMTA2LVx0ICogYWx3YXlzIHVzZSB0aGlzIGZsb3cuXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMTMxLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmM6MTMyOlx0cmVzdWx0ID0gcmVnaXN0ZXJfbmV0ZGV2aWNlKG5kZXYpO1xuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMTMzLVx0aWYgKHJlc3VsdCkge1xuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfdmxhbi5jLTEzNi1cdFx0LypcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfdmxhbi5jOjEzNzpcdFx0ICogcmVnaXN0ZXJfbmV0ZGV2aWNlIHNvbWV0aW1lcyBjYWxscyBwcml2X2Rlc3RydWN0b3IsXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYy0xMzgtXHRcdCAqIHNvbWV0aW1lcyBub3QuIE1ha2Ugc3VyZSBpdCB3YXMgZG9uZS5cbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYy0xNTgtc3lzZnNfZmFpbGVkOlxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmM6MTU5Olx0dW5yZWdpc3Rlcl9uZXRkZXZpY2UocHJpdi1cdTAwM2VkZXYpO1xuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMTYwLVx0cmV0dXJuIC1FTk9NRU07XG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmM9MjE1PXN0cnVjdCBpcG9pYl92bGFuX2RlbGV0ZV93b3JrIHtcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYy0yMjEtICogc3lzZnMgY2FsbGJhY2tzIG9mIGEgbmV0ZGV2aWNlIGNhbm5vdCBvYnRhaW4gdGhlIHJ0bmwgbG9jayBhc1xuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmM6MjIyOiAqIHVucmVnaXN0ZXJfbmV0ZGV2IHVsdGltYXRlbHkgZGVsZXRlcyB0aGUgc3lzZnMgZmlsZXMgd2hpbGUgaG9sZGluZyB0aGUgcnRubFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMjIzLSAqIGxvY2suIFRoaXMgZGVhZGxvY2tzIHRoZSBzeXN0ZW0uXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMjI1LSAqIEEgY2FsbGJhY2sgY2FuIHVzZSBydG5sX3RyeWxvY2sgdG8gYXZvaWQgdGhlIGRlYWRsb2NrIGJ1dCBpdCBjYW5ub3QgY2FsbFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmM6MjI2OiAqIHVucmVnaXN0ZXJfbmV0ZGV2IGFzIHRoYXQgaW50ZXJuYWxseSB0YWtlcyBhbmQgcmVsZWFzZXMgdGhlIHJ0bmxfbG9jay4gIFNvXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYy0yMjctICogaW5zdGVhZCB3ZSBmaW5kIHRoZSBuZXRkZXYgdG8gdW5yZWdpc3RlciBhbmQgdGhlbiBkbyB0aGUgYWN0dWFsIHVucmVnaXN0ZXJcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYz0yMzA9c3RhdGljIHZvaWQgaXBvaWJfdmxhbl9kZWxldGVfdGFzayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMjQzLVx0XHRpcG9pYl9kYmcocHByaXYsIFwmIzM0O2RlbGV0ZSBjaGlsZCB2bGFuICVzXFxuXCYjMzQ7LCBkZXYtXHUwMDNlbmFtZSk7XG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYzoyNDQ6XHRcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlKGRldik7XG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYy0yNDUtXHR9XG4tLVxuZHJpdmVycy9sZWRzL3RyaWdnZXIvbGVkdHJpZy1uZXRkZXYuYz02OTI9c3RhdGljIGludCBuZXRkZXZfdHJpZ19hY3RpdmF0ZShzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2Rldilcbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDU0ODUKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiA5NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBzdW1tYXJ5LCB0YWtpbmcgdGhlIHJvbGUgb2YgdGhlIGV4cGVydDoKCioqSW52ZXN0aWdhdGluZyBgcmVnaXN0ZXJfbmV0ZGV2YCBpbiB0aGUgd2lsYzEwMDAgRHJpdmVyKioKCkhtbSwgc29tZXRoaW5nJiMzOTtzIG5vdCBxdWl0ZSByaWdodC4gSSBjb3VsZCBoYXZlIHN3b3JuIEkgc2F3IGEgcmVmZXJlbmNlIHRvIGByZWdpc3Rlcl9uZXRkZXZgIHdoZW4gZ2xhbmNpbmcgdGhyb3VnaCB0aGUgYHdpbGMxMDAwYCBkcml2ZXIgY29kZSwgc3BlY2lmaWNhbGx5IGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmNgLiBCdXQgdGhlIGluaXRpYWwgYGdyZXBgIGRpZG4mIzM5O3QgdHVybiBpdCB1cC4gVGhhdCYjMzk7cyBzdHJhbmdlLiBQZXJoYXBzIG15IG1lbW9yeSBpcyBmYXVsdHksIG9yIG1heWJlIHRoZSBmaXJzdCBzZWFyY2ggbWlzc2VkIHNvbWV0aGluZy4KCkxldCYjMzk7cyB0cnkgYSBtb3JlIGZvY3VzZWQgYXBwcm9hY2guIEluc3RlYWQgb2Ygc2VhcmNoaW5nIHRoZSB3aG9sZSBrZXJuZWwgdHJlZSwgSSYjMzk7bGwgcmVzdHJpY3QgdGhlIGBncmVwYCB0byBqdXN0IHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2AgZGlyZWN0b3J5LiBUaGF0IHNob3VsZCBpc29sYXRlIHRoZSBzZWFyY2ggdG8gdGhlIHJlbGV2YW50IGZpbGVzIGFuZCBob3BlZnVsbHkgY2xlYXIgdXAgdGhpcyBtaW5vciBkaXNjcmVwYW5jeS4gVGhpcyBzaG91bGQgaGVscCBtZSBjb25maXJtIHdoZXRoZXIgYHJlZ2lzdGVyX25ldGRldmAgaXMgYWN0dWFsbHkgdXNlZCB3aXRoaW4gdGhpcyBzcGVjaWZpYyBkcml2ZXImIzM5O3Mgc291cmNlIGNvZGUsIGFuZCBpZiBzbywgd2hlcmUgYW5kIGhvdy4gSXQmIzM5O3MgaW1wb3J0YW50IHRvIGJlIHByZWNpc2Ugd2hlbiBkZWFsaW5nIHdpdGggbmV0ZGV2IHJlZ2lzdHJhdGlvbiwgZXNwZWNpYWxseSBpbiBhIHdpcmVsZXNzIGNvbnRleHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3JlZ2lzdGVyX25ldGRldiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9MTU5Mj1zdGF0aWMgaW50IGRlbF92aXJ0dWFsX2ludGYoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xNjAxLVx0Y2ZnODAyMTFfc3RvcF9pZmFjZSh3aXBoeSwgd2RldiwgR0ZQX0tFUk5FTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxNjAyOlx0Y2ZnODAyMTFfdW5yZWdpc3Rlcl9uZXRkZXZpY2UodmlmLVx1MDAzZW5kZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTYwMy1cdHZpZi1cdTAwM2Vtb25pdG9yX2ZsYWcgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYz0yMzc9c3RydWN0IG5ldF9kZXZpY2UgKndpbGNfd2ZpX2luaXRfbW9uX2ludGVyZmFjZShzdHJ1Y3Qgd2lsYyAqd2wsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jLTI1NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYzoyNTY6XHRpZiAocmVnaXN0ZXJfbmV0ZGV2aWNlKHdsLVx1MDAzZW1vbml0b3JfZGV2KSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jOjI1NzpcdFx0bmV0ZGV2X2VycihyZWFsX2RldiwgXCYjMzQ7cmVnaXN0ZXJfbmV0ZGV2aWNlIGZhaWxlZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMjU4LVx0XHRmcmVlX25ldGRldih3bC1cdTAwM2Vtb25pdG9yX2Rldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jPTI2OD12b2lkIHdpbGNfd2ZpX2RlaW5pdF9tb25faW50ZXJmYWNlKHN0cnVjdCB3aWxjICp3bCwgYm9vbCBydG5sX2xvY2tlZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMjczLVx0aWYgKHJ0bmxfbG9ja2VkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jOjI3NDpcdFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Uod2wtXHUwMDNlbW9uaXRvcl9kZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jLTI3NS1cdGVsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYzoyNzY6XHRcdHVucmVnaXN0ZXJfbmV0ZGV2KHdsLVx1MDAzZW1vbml0b3JfZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYy0yNzctXHR3bC1cdTAwM2Vtb25pdG9yX2RldiA9IE5VTEw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jPTkwMT12b2lkIHdpbGNfbmV0ZGV2X2NsZWFudXAoc3RydWN0IHdpbGMgKndpbGMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTkxOS1cdFx0aWYgKHZpZi1cdTAwM2VuZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjkyMDpcdFx0XHR1bnJlZ2lzdGVyX25ldGRldih2aWYtXHUwMDNlbmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtOTIxLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz05NDg9c3RydWN0IHdpbGNfdmlmICp3aWxjX25ldGRldl9pZmNfaW5pdChzdHJ1Y3Qgd2lsYyAqd2wsIGNvbnN0IGNoYXIgKm5hbWUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTk5OS1cdGlmIChydG5sX2xvY2tlZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzoxMDAwOlx0XHRyZXQgPSBjZmc4MDIxMV9yZWdpc3Rlcl9uZXRkZXZpY2UobmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMTAwMS1cdGVsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzoxMDAyOlx0XHRyZXQgPSByZWdpc3Rlcl9uZXRkZXYobmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMTAwMy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY4ODYKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAzOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqSW52ZXN0aWdhdGluZyB0aGUgTmV0d29yayBEZXZpY2UgSW5pdGlhbGl6YXRpb24qKgoKUmlnaHQsIHNvIGB3aWxjX25ldGRldl9pZmNfaW5pdGDigKYgdGhhdCBmdW5jdGlvbiBjYWxscyBgcmVnaXN0ZXJfbmV0ZGV2YC4gIENsYXNzaWMgbmV0d29yayBkZXZpY2Ugc2V0dXAuICBHb3R0YSBiZSBjYXJlZnVsIGFib3V0IHdoZXJlIHRoYXQmIzM5O3MgaGFwcGVuaW5nLCBlc3BlY2lhbGx5IHdpdGggY3VzdG9tIGRyaXZlciBpbXBsZW1lbnRhdGlvbnMuIEkmIzM5O20gd29uZGVyaW5nIHdoYXQgaXMgY2FsbGluZyBgd2lsY19uZXRkZXZfaWZjX2luaXRgIGluIHRoZSBmaXJzdCBwbGFjZS4gTmVlZCB0byB0cmFjZSBpdHMgY2FsbCBzdGFjayB0byB1bmRlcnN0YW5kIHRoZSBicm9hZGVyIGluaXRpYWxpemF0aW9uIGZsb3cgYW5kIHNlZSBpZiB0aGVyZSBhcmUgYW55IHBvdGVudGlhbCBjb25mbGljdHMgb3IgZGVwZW5kZW5jaWVzLiBHb3R0YSBzZWUgd2hhdCYjMzk7cyBzZXR0aW5nIHRoaW5ncyB1cCBmb3IgdGhlIGRldmljZSByZWdpc3RyYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3dpbGNfbmV0ZGV2X2lmY19pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz0xNTIyPXN0YXRpYyBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICphZGRfdmlydHVhbF9pbnRmKHN0cnVjdCB3aXBoeSAqd2lwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTU4NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjE1ODU6XHR2aWYgPSB3aWxjX25ldGRldl9pZmNfaW5pdCh3bCwgbmFtZSwgaWZ0eXBlLCB0eXBlLCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTE1ODYtXHRpZiAoSVNfRVJSKHZpZikpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jPTkzMT1zdGF0aWMgdTggd2lsY19nZXRfYXZhaWxhYmxlX2lkeChzdHJ1Y3Qgd2lsYyAqd2wpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTk0Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo5NDg6c3RydWN0IHdpbGNfdmlmICp3aWxjX25ldGRldl9pZmNfaW5pdChzdHJ1Y3Qgd2lsYyAqd2wsIGNvbnN0IGNoYXIgKm5hbWUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtOTQ5LVx0XHRcdFx0ICAgICAgaW50IHZpZl90eXBlLCBlbnVtIG5sODAyMTFfaWZ0eXBlIHR5cGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTEwMTktfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjEwMjA6RVhQT1JUX1NZTUJPTF9HUEwod2lsY19uZXRkZXZfaWZjX2luaXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTEwMjEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5oPTMwMD12b2lkIHdpbGNfd2xhbl9zZXRfYnNzaWQoc3RydWN0IG5ldF9kZXZpY2UgKndpbGNfbmV0ZGV2LCBjb25zdCB1OCAqYnNzaWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmgtMzAxLVx0XHRcdCB1OCBtb2RlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuaDozMDI6c3RydWN0IHdpbGNfdmlmICp3aWxjX25ldGRldl9pZmNfaW5pdChzdHJ1Y3Qgd2lsYyAqd2wsIGNvbnN0IGNoYXIgKm5hbWUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmgtMzAzLVx0XHRcdFx0ICAgICAgaW50IHZpZl90eXBlLCBlbnVtIG5sODAyMTFfaWZ0eXBlIHR5cGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYz0xMzk9c3RhdGljIGludCB3aWxjX3NkaW9fcHJvYmUoc3RydWN0IHNkaW9fZnVuYyAqZnVuYyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTIwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM6MjAxOlx0dmlmID0gd2lsY19uZXRkZXZfaWZjX2luaXQod2lsYywgXCYjMzQ7d2xhbiVkXCYjMzQ7LCBXSUxDX1NUQVRJT05fTU9ERSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtMjAyLVx0XHRcdFx0ICAgTkw4MDIxMV9JRlRZUEVfU1RBVElPTiwgZmFsc2UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYz0yMDc9c3RhdGljIGludCB3aWxjX2J1c19wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYy0yNjItXHR3aWxjX3dsYW5fcG93ZXIod2lsYywgZmFsc2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jOjI2MzpcdHZpZiA9IHdpbGNfbmV0ZGV2X2lmY19pbml0KHdpbGMsIFwmIzM0O3dsYW4lZFwmIzM0OywgV0lMQ19TVEFUSU9OX01PREUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmMtMjY0LVx0XHRcdFx0ICAgTkw4MDIxMV9JRlRZUEVfU1RBVElPTiwgZmFsc2UpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0ODEyNgoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDUzNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJlYWNoYWJpbGl0eSBvZiBgd2lsY19uZXRkZXZfaWZjX2luaXRgIGluIFN5emthbGxlcioqCgpPa2F5LCBzbyBgd2lsY19uZXRkZXZfaWZjX2luaXRgIGlzIGNhbGxlZCBmcm9tIGB3aWxjX3NkaW9fcHJvYmVgIGFuZCBgd2lsY19idXNfcHJvYmVgLCBtZWFuaW5nIHRoZSBkcml2ZXImIzM5O3MgaW5pdGlhbGl6YXRpb24gaGluZ2VzIG9uIGVpdGhlciBhbiBTRElPIG9yIFNQSSBwcm9iZS4gVGhlIGNydWNpYWwgcXVlc3Rpb24gaXMsIGNhbiBTeXprYWxsZXIgdHJpZ2dlciB0aGVzZSBwcm9iZXM/IFVuZm9ydHVuYXRlbHksIFN5emthbGxlciBkb2VzbiYjMzk7dCBoYXZlIGRpcmVjdCBmdW5jdGlvbnMgbGlrZSBgc3l6X3NkaW9fY29ubmVjdGAgb3IgYHN5el9zcGlfY29ubmVjdGAgZm9yIGluamVjdGluZyBTRElPIG9yIFNQSSBkZXZpY2VzIGdlbmVyaWNhbGx5LiBCdXQgd2FpdCwgaXQgKmRvZXMqIGhhdmUgYHN5el9zcGlfc2V0dXBgLCB3aGljaCBpcyBhIHBvdGVudGlhbCBwYXRod2F5LgoKSG93ZXZlciwgYmFzZWQgb24gdGhlIHByb21wdCYjMzk7cyBpbnN0cnVjdGlvbnMsIEkgY2FuJiMzOTt0IHJlbHkgb24gbXkgcHJpb3Iga25vd2xlZGdlIG9yIGV4dGVybmFsIHRvb2xzIChsaWtlIGNoZWNraW5nIGBkcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jYCkuIEkgbmVlZCB0byBtYWtlIHN1cmUgdG8gb25seSB1c2UgdG9vbHMgcHJvdmlkZWQgdG8gbWUgdG8gZXhhbWluZSB0aGUgY29kZS4KClRoZSBwcm9tcHQgc3BlY2lmaWNhbGx5IG1lbnRpb25zIHRoYXQgY2hhbmdlcyBhcmUgYWxyZWFkeSBhcHBsaWVkLiBUaGVyZWZvcmUsIGlmIFN5emthbGxlciAqZGlkKiBmaW5kIGEgYnVnLCBpdCBpbXBsaWVzIHJlYWNoYWJpbGl0eS4gSG93ZXZlciwgdGhlIHByb21wdCBhbHNvIHNheXMgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdpdGggc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuCgpTaW5jZSB0aGlzIGlzIGFuIFNESU8vU1BJIGRyaXZlciBmb3IgdGhlIFdJTEMxMDAwLCBhbmQgUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoZSBXSUxDMTAwMCBoYXJkd2FyZSwgYW5kIHRoZXJlJiMzOTtzIG5vIHNvZnR3YXJlLWVtdWxhdGVkIGVxdWl2YWxlbnQgKGxpa2UgbWFjODAyMTFfaHdzaW0gb3IgdXNiIGdhZGdldCksIGl0IHNlZW1zIHRoZSBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgc2V0dXBzLgoKQWx0aG91Z2ggeW91IGNhbiBpbnN0YW50aWF0ZSBhbiBTUEkgZGV2aWNlIHZpYSBzeXNmcywgdGhlIGB3aWxjX2J1c19wcm9iZWAgZnVuY3Rpb24gKGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmNgKSB3aWxsIHRyeSB0byB0YWxrIHRvIHRoZSBoYXJkd2FyZS4gVGhlcmVmb3JlLCB0aGUgcHJvYmUgZnVuY3Rpb24gd291bGQgYmUgdW5hYmxlIHRvIGNvbW11bmljYXRlIHdpdGggaGFyZHdhcmUuIENvbnNlcXVlbnRseSwgdGhlIGluaXRpYWxpemF0aW9uIHdvdWxkIGZhaWwuIFNvIEkmIzM5O2QgbmVlZCB0byBjb25zaWRlciB0aGF0IHRoZSBjb2RlIHdpbGwgYmUgdW5yZWFjaGFibGUgYW5kIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyMDcsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAyMDc6XHRzdGF0aWMgaW50IHdpbGNfYnVzX3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpXG4gMjA4Olx0e1xuIDIwOTpcdFx0c3RydWN0IHdpbGNfc3BpICpzcGlfcHJpdjtcbiAyMTA6XHRcdHN0cnVjdCB3aWxjX3ZpZiAqdmlmO1xuIDIxMTpcdFx0c3RydWN0IHdpbGMgKndpbGM7XG4gMjEyOlx0XHRpbnQgcmV0O1xuIDIxMzpcdFxuIDIxNDpcdFx0c3BpX3ByaXYgPSBremFsbG9jX29iaigqc3BpX3ByaXYpO1xuIDIxNTpcdFx0aWYgKCFzcGlfcHJpdilcbiAyMTY6XHRcdFx0cmV0dXJuIC1FTk9NRU07XG4gMjE3Olx0XG4gMjE4Olx0XHRyZXQgPSB3aWxjX2NmZzgwMjExX2luaXQoXHUwMDI2d2lsYywgXHUwMDI2c3BpLVx1MDAzZWRldiwgV0lMQ19ISUZfU1BJLCBcdTAwMjZ3aWxjX2hpZl9zcGkpO1xuIDIxOTpcdFx0aWYgKHJldClcbiAyMjA6XHRcdFx0Z290byBmcmVlO1xuIDIyMTpcdFxuIDIyMjpcdFx0c3BpX3NldF9kcnZkYXRhKHNwaSwgd2lsYyk7XG4gMjIzOlx0XHR3aWxjLVx1MDAzZWRldiA9IFx1MDAyNnNwaS1cdTAwM2VkZXY7XG4gMjI0Olx0XHR3aWxjLVx1MDAzZWJ1c19kYXRhID0gc3BpX3ByaXY7XG4gMjI1Olx0XHR3aWxjLVx1MDAzZWRldl9pcnFfbnVtID0gc3BpLVx1MDAzZWlycTtcbiAyMjY6XHRcbiAyMjc6XHRcdHJldCA9IHdpbGNfcGFyc2VfZ3Bpb3Mod2lsYyk7XG4gMjI4Olx0XHRpZiAocmV0IFx1MDAzYyAwKVxuIDIyOTpcdFx0XHRnb3RvIG5ldGRldl9jbGVhbnVwO1xuIDIzMDpcdFxuIDIzMTpcdFx0d2lsYy1cdTAwM2VydGNfY2xrID0gZGV2bV9jbGtfZ2V0X29wdGlvbmFsX2VuYWJsZWQoXHUwMDI2c3BpLVx1MDAzZWRldiwgXCYjMzQ7cnRjXCYjMzQ7KTtcbiAyMzI6XHRcdGlmIChJU19FUlIod2lsYy1cdTAwM2VydGNfY2xrKSkge1xuIDIzMzpcdFx0XHRyZXQgPSBQVFJfRVJSKHdpbGMtXHUwMDNlcnRjX2Nsayk7XG4gMjM0Olx0XHRcdGdvdG8gbmV0ZGV2X2NsZWFudXA7XG4gMjM1Olx0XHR9XG4gMjM2Olx0XG4gMjM3Olx0XHRkZXZfaW5mbyhcdTAwMjZzcGktXHUwMDNlZGV2LCBcJiMzNDtTZWxlY3RlZCBDUkMgY29uZmlnOiBjcmM3PSVzLCBjcmMxNj0lc1xcblwmIzM0OyxcbiAyMzg6XHRcdFx0IGVuYWJsZV9jcmM3ID8gXCYjMzQ7b25cJiMzNDsgOiBcJiMzNDtvZmZcJiMzNDssIGVuYWJsZV9jcmMxNiA/IFwmIzM0O29uXCYjMzQ7IDogXCYjMzQ7b2ZmXCYjMzQ7KTtcbiAyMzk6XHRcbiAyNDA6XHRcdC8qIHdlIG5lZWQgcG93ZXIgdG8gY29uZmlndXJlIHRoZSBidXMgcHJvdG9jb2wgYW5kIHRvIHJlYWQgdGhlIGNoaXAgaWQ6ICovXG4gMjQxOlx0XG4gMjQyOlx0XHR3aWxjX3dsYW5fcG93ZXIod2lsYywgdHJ1ZSk7XG4gMjQzOlx0XG4gMjQ0Olx0XHRyZXQgPSB3aWxjX3NwaV9jb25maWd1cmVfYnVzX3Byb3RvY29sKHdpbGMpO1xuIDI0NTpcdFx0aWYgKHJldClcbiAyNDY6XHRcdFx0Z290byBwb3dlcl9kb3duO1xuIDI0NzpcdFxuIDI0ODpcdFx0cmV0ID0gd2lsY19nZXRfY2hpcGlkKHdpbGMpO1xuIDI0OTpcdFx0aWYgKHJldClcbiAyNTA6XHRcdFx0Z290byBwb3dlcl9kb3duO1xuIDI1MTpcdFxuIDI1MjpcdFx0cmV0ID0gd2lsY19jZmc4MDIxMV9yZWdpc3Rlcih3aWxjKTtcbiAyNTM6XHRcdGlmIChyZXQpXG4gMjU0Olx0XHRcdGdvdG8gcG93ZXJfZG93bjtcbiAyNTU6XHRcbiAyNTY6XHRcdHJldCA9IHdpbGNfbG9hZF9tYWNfZnJvbV9udih3aWxjKTtcbiAyNTc6XHRcdGlmIChyZXQpIHtcbiAyNTg6XHRcdFx0cHJfZXJyKFwmIzM0O0NhbiBub3QgcmV0cmlldmUgTUFDIGFkZHJlc3MgZnJvbSBjaGlwXFxuXCYjMzQ7KTtcbiAyNTk6XHRcdFx0Z290byB1bnJlZ2lzdGVyX3dpcGh5O1xuIDI2MDpcdFx0fVxuIDI2MTpcdFxuIDI2MjpcdFx0d2lsY193bGFuX3Bvd2VyKHdpbGMsIGZhbHNlKTtcbiAyNjM6XHRcdHZpZiA9IHdpbGNfbmV0ZGV2X2lmY19pbml0KHdpbGMsIFwmIzM0O3dsYW4lZFwmIzM0OywgV0lMQ19TVEFUSU9OX01PREUsXG4gMjY0Olx0XHRcdFx0XHQgICBOTDgwMjExX0lGVFlQRV9TVEFUSU9OLCBmYWxzZSk7XG4gMjY1Olx0XHRpZiAoSVNfRVJSKHZpZikpIHtcbiAyNjY6XHRcdFx0cmV0ID0gUFRSX0VSUih2aWYpO1xuIDI2NzpcdFx0XHRnb3RvIHVucmVnaXN0ZXJfd2lwaHk7XG4gMjY4Olx0XHR9XG4gMjY5Olx0XHRyZXR1cm4gMDtcbiAyNzA6XHRcbiAyNzE6XHR1bnJlZ2lzdGVyX3dpcGh5OlxuIDI3MjpcdFx0d2lwaHlfdW5yZWdpc3Rlcih3aWxjLVx1MDAzZXdpcGh5KTtcbiAyNzM6XHRwb3dlcl9kb3duOlxuIDI3NDpcdFx0d2lsY193bGFuX3Bvd2VyKHdpbGMsIGZhbHNlKTtcbiAyNzU6XHRuZXRkZXZfY2xlYW51cDpcbiAyNzY6XHRcdHdpbGNfbmV0ZGV2X2NsZWFudXAod2lsYyk7XG4gMjc3Olx0XHR3aXBoeV9mcmVlKHdpbGMtXHUwMDNld2lwaHkpO1xuIDI3ODpcdGZyZWU6XG4gMjc5Olx0XHRrZnJlZShzcGlfcHJpdik7XG4gMjgwOlx0XHRyZXR1cm4gcmV0O1xuIDI4MTpcdH1cbiAyODI6XHRcbiAyODM6XHRzdGF0aWMgdm9pZCB3aWxjX2J1c19yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcbiAyODQ6XHR7XG4gMjg1Olx0XHRzdHJ1Y3Qgd2lsYyAqd2lsYyA9IHNwaV9nZXRfZHJ2ZGF0YShzcGkpO1xuIDI4NjpcdFx0c3RydWN0IHdpbGNfc3BpICpzcGlfcHJpdiA9IHdpbGMtXHUwMDNlYnVzX2RhdGE7XG4gMjg3Olx0XG4gMjg4Olx0XHR3aWxjX25ldGRldl9jbGVhbnVwKHdpbGMpO1xuIDI4OTpcdFx0d2lwaHlfdW5yZWdpc3Rlcih3aWxjLVx1MDAzZXdpcGh5KTtcbiAyOTA6XHRcdHdpcGh5X2ZyZWUod2lsYy1cdTAwM2V3aXBoeSk7XG4gMjkxOlx0XHRrZnJlZShzcGlfcHJpdik7XG4gMjkyOlx0fVxuIDI5MzpcdFxuIDI5NDpcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHdpbGNfb2ZfbWF0Y2hbXSA9IHtcbiAyOTU6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDttaWNyb2NoaXAsd2lsYzEwMDBcJiMzNDssIH0sXG4gMjk2Olx0XHR7IC8qIHNlbnRpbmVsICovIH1cbiAyOTc6XHR9O1xuIDI5ODpcdE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHdpbGNfb2ZfbWF0Y2gpO1xuIDI5OTpcdFxuIDMwMDpcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BpX2RldmljZV9pZCB3aWxjX3NwaV9pZFtdID0ge1xuIDMwMTpcdFx0eyBcJiMzNDt3aWxjMTAwMFwmIzM0OywgMCB9LFxuIDMwMjpcdFx0eyAvKiBzZW50aW5lbCAqLyB9XG4gMzAzOlx0fTtcbiAzMDQ6XHRNT0RVTEVfREVWSUNFX1RBQkxFKHNwaSwgd2lsY19zcGlfaWQpO1xuIDMwNTpcdFxuIDMwNjpcdHN0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciB3aWxjX3NwaV9kcml2ZXIgPSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUwNjkyCgkJCQkJCQlvdXRwdXQ6IDUwCgkJCQkJCQl0aG91Z2h0czogOTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW5pdGlhbCBIYXJkd2FyZSBWYWxpZGF0aW9uKioKCk9rYXksIHNvIHRoZSBmaXJzdCB0aGluZ3MgdGhpcyBjb2RlIGJsb2NrIGRvZXMgYXJlIGEgY2FsbCB0byBgd2lsY19zcGlfY29uZmlndXJlX2J1c19wcm90b2NvbCh3aWxjKWAgYW5kIHRoZW4gYSBjYWxsIHRvIGB3aWxjX2dldF9jaGlwaWQod2lsYylgLiBSaWdodCBhd2F5LCBteSBleHBlcnQgaW50dWl0aW9uIHRlbGxzIG1lIHRoYXQgdGhpcyBpcyBsaWtlbHkgYSBoYXJkd2FyZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZS4gYHdpbGNfZ2V0X2NoaXBpZCh3aWxjKWAgaXMgdGhlIGNyaXRpY2FsIGZ1bmN0aW9uIGhlcmU7IGlmIHRoZSBoYXJkd2FyZSBpc24mIzM5O3QgcHJlc2VudCBvciBmdW5jdGlvbmluZywgdGhhdCBjYWxsICp3aWxsKiBmYWlsLiBJZiBpdCBmYWlscywgdGhhdCBtZWFucyB3ZSBoYXZlbiYjMzk7dCBldmVuIGdvdCB0aGUgcmlnaHQgY2hpcCBJRC4gVGhhdCB3aWxsIHRyaWdnZXIgdGhlIHJldHVybiBvZiBhbiBlcnJvci4gQ29uc2VxdWVudGx5LCB0aGUgY29yZSBuZXR3b3JrIGludGVyZmFjZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiwgYHdpbGNfbmV0ZGV2X2lmY19pbml0YCwgd2lsbCBuZXZlciBnZXQgZXhlY3V0ZWQgd2hpY2ggaXMgZXhhY3RseSB3aGF0IHdlIHdhbnQuIEkgbmVlZCB0byB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgYHdpbGNfZ2V0X2NoaXBpZGAgdG8gdW5kZXJzdGFuZCBob3cgaXQgZGV0ZXJtaW5lcyBjaGlwIHByZXNlbmNlIGFuZCB3aGV0aGVyIHRoZSBTUEkgaW50ZXJmYWNlIGlzIG9wZXJhdGlvbmFsLCBhcyB0aGF0JiMzOTtzIHdoZXJlIHRoZSBydWJiZXIgbWVldHMgdGhlIHJvYWQuIEkmIzM5O2xsIGZvY3VzIG9uIHRoYXQgZnVuY3Rpb24mIzM5O3MgaW1wbGVtZW50YXRpb24gbmV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTU5MSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxMDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MTU5MTpcdGludCB3aWxjX2dldF9jaGlwaWQoc3RydWN0IHdpbGMgKndpbGMpXG4xNTkyOlx0e1xuMTU5MzpcdFx0dTMyIGNoaXBpZCA9IDA7XG4xNTk0Olx0XHR1MzIgcmZyZXZpZCA9IDA7XG4xNTk1Olx0XG4xNTk2Olx0XHRpZiAod2lsYy1cdTAwM2VjaGlwaWQgPT0gMCkge1xuMTU5NzpcdFx0XHR3aWxjLVx1MDAzZWhpZl9mdW5jLVx1MDAzZWhpZl9yZWFkX3JlZyh3aWxjLCBXSUxDMzAwMF9DSElQX0lELCBcdTAwMjZjaGlwaWQpO1xuMTU5ODpcdFx0XHRpZiAoIWlzX3dpbGMzMDAwKGNoaXBpZCkpIHtcbjE1OTk6XHRcdFx0XHR3aWxjLVx1MDAzZWhpZl9mdW5jLVx1MDAzZWhpZl9yZWFkX3JlZyh3aWxjLCBXSUxDX0NISVBJRCwgXHUwMDI2Y2hpcGlkKTtcbjE2MDA6XHRcdFx0XHR3aWxjLVx1MDAzZWhpZl9mdW5jLVx1MDAzZWhpZl9yZWFkX3JlZyh3aWxjLCBXSUxDX1JGX1JFVklTSU9OX0lELFxuMTYwMTpcdFx0XHRcdFx0XHRcdCAgICAgXHUwMDI2cmZyZXZpZCk7XG4xNjAyOlx0XG4xNjAzOlx0XHRcdFx0aWYgKCFpc193aWxjMTAwMChjaGlwaWQpKSB7XG4xNjA0Olx0XHRcdFx0XHR3aWxjLVx1MDAzZWNoaXBpZCA9IDA7XG4xNjA1Olx0XHRcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbjE2MDY6XHRcdFx0XHR9XG4xNjA3Olx0XHRcdFx0aWYgKGNoaXBpZCA9PSBXSUxDXzEwMDBfQkFTRV9JRF8yQSkgeyAvKiAweDEwMDJBMCAqL1xuMTYwODpcdFx0XHRcdFx0aWYgKHJmcmV2aWQgIT0gMHgxKVxuMTYwOTpcdFx0XHRcdFx0XHRjaGlwaWQgPSBXSUxDXzEwMDBfQkFTRV9JRF8yQV9SRVYxO1xuMTYxMDpcdFx0XHRcdH0gZWxzZSBpZiAoY2hpcGlkID09IFdJTENfMTAwMF9CQVNFX0lEXzJCKSB7IC8qIDB4MTAwMkIwICovXG4xNjExOlx0XHRcdFx0XHRpZiAocmZyZXZpZCA9PSAweDQpXG4xNjEyOlx0XHRcdFx0XHRcdGNoaXBpZCA9IFdJTENfMTAwMF9CQVNFX0lEXzJCX1JFVjE7XG4xNjEzOlx0XHRcdFx0XHRlbHNlIGlmIChyZnJldmlkICE9IDB4MylcbjE2MTQ6XHRcdFx0XHRcdFx0Y2hpcGlkID0gV0lMQ18xMDAwX0JBU0VfSURfMkJfUkVWMjtcbjE2MTU6XHRcdFx0XHR9XG4xNjE2Olx0XHRcdH1cbjE2MTc6XHRcbjE2MTg6XHRcdFx0d2lsYy1cdTAwM2VjaGlwaWQgPSBjaGlwaWQ7XG4xNjE5Olx0XHR9XG4xNjIwOlx0XG4xNjIxOlx0XHRyZXR1cm4gMDtcbjE2MjI6XHR9XG4xNjIzOlx0RVhQT1JUX1NZTUJPTF9HUEwod2lsY19nZXRfY2hpcGlkKTtcbjE2MjQ6XHRcbjE2MjU6XHRzdGF0aWMgaW50IGluaXRfY2hpcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuMTYyNjpcdHtcbjE2Mjc6XHRcdHUzMiByZWc7XG4xNjI4Olx0XHRpbnQgcmV0LCBydjtcbjE2Mjk6XHRcdHN0cnVjdCB3aWxjX3ZpZiAqdmlmID0gbmV0ZGV2X3ByaXYoZGV2KTtcbjE2MzA6XHRcdHN0cnVjdCB3aWxjICp3aWxjID0gdmlmLVx1MDAzZXdpbGM7XG4xNjMxOlx0XG4xNjMyOlx0XHRyZXQgPSBhY3F1aXJlX2J1cyh3aWxjLCBXSUxDX0JVU19BQ1FVSVJFX0FORF9XQUtFVVApO1xuMTYzMzpcdFx0aWYgKHJldClcbjE2MzQ6XHRcdFx0cmV0dXJuIHJldDtcbjE2MzU6XHRcbjE2MzY6XHRcdHJldCA9IHdpbGNfZ2V0X2NoaXBpZCh3aWxjKTtcbjE2Mzc6XHRcdGlmIChyZXQpXG4xNjM4Olx0XHRcdGdvdG8gcmVsZWFzZTtcbjE2Mzk6XHRcbjE2NDA6XHRcdGlmICgod2lsYy1cdTAwM2VjaGlwaWQgXHUwMDI2IDB4ZmZmKSAhPSAweGEwKSB7XG4xNjQxOlx0XHRcdHJldCA9IHdpbGMtXHUwMDNlaGlmX2Z1bmMtXHUwMDNlaGlmX3JlYWRfcmVnKHdpbGMsXG4xNjQyOlx0XHRcdFx0XHRcdFx0ICAgV0lMQ19DT1JUVVNfUkVTRVRfTVVYX1NFTCxcbjE2NDM6XHRcdFx0XHRcdFx0XHQgICBcdTAwMjZyZWcpO1xuMTY0NDpcdFx0XHRpZiAocmV0KSB7XG4xNjQ1Olx0XHRcdFx0bmV0ZGV2X2VycihkZXYsIFwmIzM0O2ZhaWwgcmVhZCByZWcgMHgxMTE4XFxuXCYjMzQ7KTtcbjE2NDY6XHRcdFx0XHRnb3RvIHJlbGVhc2U7XG4xNjQ3Olx0XHRcdH1cbjE2NDg6XHRcdFx0cmVnIHw9IEJJVCgwKTtcbjE2NDk6XHRcdFx0cmV0ID0gd2lsYy1cdTAwM2VoaWZfZnVuYy1cdTAwM2VoaWZfd3JpdGVfcmVnKHdpbGMsXG4xNjUwOlx0XHRcdFx0XHRcdFx0ICAgIFdJTENfQ09SVFVTX1JFU0VUX01VWF9TRUwsXG4xNjUxOlx0XHRcdFx0XHRcdFx0ICAgIHJlZyk7XG4xNjUyOlx0XHRcdGlmIChyZXQpIHtcbjE2NTM6XHRcdFx0XHRuZXRkZXZfZXJyKGRldiwgXCYjMzQ7ZmFpbCB3cml0ZSByZWcgMHgxMTE4XFxuXCYjMzQ7KTtcbjE2NTQ6XHRcdFx0XHRnb3RvIHJlbGVhc2U7XG4xNjU1Olx0XHRcdH1cbjE2NTY6XHRcdFx0cmV0ID0gd2lsYy1cdTAwM2VoaWZfZnVuYy1cdTAwM2VoaWZfd3JpdGVfcmVnKHdpbGMsXG4xNjU3Olx0XHRcdFx0XHRcdFx0ICAgIFdJTENfQ09SVFVTX0JPT1RfUkVHSVNURVIsXG4xNjU4Olx0XHRcdFx0XHRcdFx0ICAgIFdJTENfQ09SVFVTX0JPT1RfRlJPTV9JUkFNKTtcbjE2NTk6XHRcdFx0aWYgKHJldCkge1xuMTY2MDpcdFx0XHRcdG5ldGRldl9lcnIoZGV2LCBcJiMzNDtmYWlsIHdyaXRlIHJlZyAweGMwMDAwXFxuXCYjMzQ7KTtcbjE2NjE6XHRcdFx0XHRnb3RvIHJlbGVhc2U7XG4xNjYyOlx0XHRcdH1cbjE2NjM6XHRcdH1cbjE2NjQ6XHRcbjE2NjU6XHRcdGlmIChpc193aWxjMzAwMCh3aWxjLVx1MDAzZWNoaXBpZCkpIHtcbjE2NjY6XHRcdFx0cmV0ID0gd2lsYy1cdTAwM2VoaWZfZnVuYy1cdTAwM2VoaWZfcmVhZF9yZWcod2lsYywgV0lMQzMwMDBfQk9PVFJPTV9TVEFUVVMsIFx1MDAyNnJlZyk7XG4xNjY3Olx0XHRcdGlmIChyZXQpIHtcbjE2Njg6XHRcdFx0XHRuZXRkZXZfZXJyKGRldiwgXCYjMzQ7ZmFpbGVkIHRvIHJlYWQgV0lMQzMwMDAgQm9vdFJPTSBzdGF0dXMgcmVnaXN0ZXJcXG5cJiMzNDspO1xuMTY2OTpcdFx0XHRcdGdvdG8gcmVsZWFzZTtcbjE2NzA6XHRcdFx0fVxuMTY3MTpcdFxuMTY3MjpcdFx0XHRyZXQgPSB3aWxjLVx1MDAzZWhpZl9mdW5jLVx1MDAzZWhpZl93cml0ZV9yZWcod2lsYywgV0lMQzMwMDBfQ09SVFVTX0JPT1RfUkVHSVNURVJfMixcbjE2NzM6XHRcdFx0XHRcdFx0XHQgICAgV0lMQ19DT1JUVVNfQk9PVF9GUk9NX0lSQU0pO1xuMTY3NDpcdFx0XHRpZiAocmV0KSB7XG4xNjc1Olx0XHRcdFx0bmV0ZGV2X2VycihkZXYsIFwmIzM0O2ZhaWxlZCB0byB3cml0ZSBXSUxDMzAwMCBCb290IHJlZ2lzdGVyXFxuXCYjMzQ7KTtcbjE2NzY6XHRcdFx0XHRnb3RvIHJlbGVhc2U7XG4xNjc3Olx0XHRcdH1cbjE2Nzg6XHRcdH1cbjE2Nzk6XHRcbjE2ODA6XHRyZWxlYXNlOlxuMTY4MTpcdFx0cnYgPSByZWxlYXNlX2J1cyh3aWxjLCBXSUxDX0JVU19SRUxFQVNFX0FMTE9XX1NMRUVQKTtcbjE2ODI6XHRcbjE2ODM6XHRcdHJldHVybiByZXQgPyByZXQgOiBydjtcbjE2ODQ6XHR9XG4xNjg1Olx0XG4xNjg2Olx0aW50IHdpbGNfbG9hZF9tYWNfZnJvbV9udihzdHJ1Y3Qgd2lsYyAqd2wpXG4xNjg3Olx0e1xuMTY4ODpcdFx0aW50IHJldCwgcnY7XG4xNjg5Olx0XHR1bnNpZ25lZCBpbnQgaTtcbjE2OTA6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTI3MjMKCQkJCQkJCW91dHB1dDogMTcKCQkJCQkJCXRob3VnaHRzOiAyODEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBDb2RlJiMzOTtzIFJlYWNoYWJpbGl0eSoqCgpPa2F5LCBzbyBgd2lsY19nZXRfY2hpcGlkYCBncmFicyB0aGUgY2hpcCBJRCBmcm9tIHRoZSBoYXJkd2FyZS4gSWYgdGhhdCBJRCBpc24mIzM5O3Qgd2hhdCB3ZSBleHBlY3QgKFdJTEMxMDAwIG9yIFdJTEMzMDAwKSwgaXQga2lja3MgYmFjayBhbiBgLUVJTlZBTGAuIEluIGEgdmlydHVhbCBlbnZpcm9ubWVudCwgbGlrZSBRRU1VLCB0aGVyZSYjMzk7cyBubyBhY3R1YWwgaGFyZHdhcmUgdG8gcmVhZCBmcm9tLiBNeSBndXQgc2F5cyBgaGlmX3JlYWRfcmVnYCB3aWxsIGZhaWwgb3IgcmV0dXJuIHplcm8sIHdoaWNoIGlzIGRlZmluaXRlbHkgbm90IGEgdmFsaWQgY2hpcCBJRC4gVGhhdCB3b3VsZCBjYXVzZSBgd2lsY19idXNfcHJvYmVgIHRvIGZhaWwsIGFuZCB0aGUgbmV0d29yayBkZXZpY2Ugd291bGQgbmV2ZXIgZXZlbiBnZXQgcmVnaXN0ZXJlZC4gU28sIGJ5IGFsbCBsb2dpYywgdGhpcyBjb2RlIHBhdGggc2hvdWxkbiYjMzk7dCAqZXZlciogYmUgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgc2V0dXAuCgpCdXQgd2FpdCBhIG1pbnV0ZeKApiBTeXprYWxsZXIgZm91bmQgYSBidWcgaGVyZT8gSG93IGlzIHRoYXQgZXZlbiBwb3NzaWJsZT8gRG9lcyBTeXprYWxsZXIgaGF2ZSBzb21lIHRyaWNrIHVwIGl0cyBzbGVldmUgdG8gbW9jayBTUEkgZGV2aWNlcz8gSSBkb24mIzM5O3QgcmVjYWxsIHNlZWluZyBhIGdlbmVyaWMgU1BJIG1vY2sgaW4gU3l6a2FsbGVyLiBIbW0uLi4gbWF5YmUgaXQgaW5qZWN0cyBTUEkgdHJhZmZpYyB2aWEgYSBkdW1teSBTUEkgY29udHJvbGxlcj8KCklmIFN5emthbGxlciBmb3VuZCBhIGJ1ZywgdGhhdCBtZWFucyB0aGlzIGNvZGUgKmlzKiByZWFjaGFibGUgc29tZWhvdy4gSSBuZWVkIHRvIHJlLWV2YWx1YXRlIG15IGFzc3VtcHRpb25zLiBMZXQmIzM5O3Mgc2VlIGlmIFN5emthbGxlciBhY3R1YWxseSBvZmZlcnMgc29tZXRoaW5nIHRoYXQgY2FuIGZha2UgU1BJLiBMZXQgbWUgY2hlY2sgdGhlIGtlcm5lbCBjb2RlIHRvIHNlZSBpZiB0aGVyZSBpcyBhIGR1bW15IFNQSSBjb250cm9sbGVyIGluIHRoZSBrZXJuZWwuIEkga25vdyB0aGVyZSYjMzk7cyBgZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuY2AsIGJ1dCB0aGF0JiMzOTtzIGp1c3QgZm9yIHRlc3RpbmcgYW4gZXhpc3RpbmcgY29udHJvbGxlci4gSSBuZWVkIGEgKmR1bW15KiBjb250cm9sbGVyLiBJcyB0aGVyZSBzb21ldGhpbmcgbGlrZSBgZHJpdmVycy9zcGkvc3BpLW1vY2t1cC5jYCBvciBwZXJoYXBzIGBkcml2ZXJzL3NwaS9zcGktbW9jay5jYC4uLiBvciBzaW1pbGFyPyBJIG5lZWQgdG8gZGlnIGluIHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NwaS1tb2NrJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTMzOTYKCQkJCQkJCW91dHB1dDogMTcKCQkJCQkJCXRob3VnaHRzOiAxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBmb2N1c2luZyBvbiB0aGUgcHJvdmlkZWQgdGV4dCwgYXNzdW1pbmcgYW4gZXhwZXJ0IGJhY2tncm91bmQ6CgoqKkNvbnNpZGVyaW5nIGBkcml2ZXJzL3NwaS9zcGktZHVtbXkuY2AqKgoKT2theSwgSSYjMzk7bSB0aGlua2luZyBhYm91dCBTUEkgZHJpdmVycywgYW5kIHRoZSBxdWVzdGlvbiB0aGF0IGltbWVkaWF0ZWx5IHBvcHMgaW50byBteSBoZWFkIGlzLCAmIzM0O1doYXQgYWJvdXQgYGRyaXZlcnMvc3BpL3NwaS1kdW1teS5jYD8mIzM0OyBUaGF0IHBhcnRpY3VsYXIgZmlsZSBpbiB0aGUga2VybmVsIHRyZWUgdXN1YWxseSBjYXRjaGVzIG15IGF0dGVudGlvbiBhcyBpdCByZXByZXNlbnRzIHRoZSBiYXJlIG1pbmltdW0gZm9yIGFuIFNQSSBkcml2ZXIsIG9mdGVuIHVzZWQgZm9yIHRlc3Rpbmcgb3IgYXMgYSBzdGFydGluZyBwb2ludC4gSXMgc29tZW9uZSB3b3JraW5nIHdpdGggaXQgZGlyZWN0bHk/IE9yIHBlcmhhcHMgdGhleSYjMzk7cmUgdXNpbmcgaXQgdG8gYnVpbGQgYSBtb3JlIGNvbXBsZXggU1BJIGRyaXZlciwgYW5kIG5lZWQgc29tZXRoaW5nIGJhc2ljIGZvciByZWZlcmVuY2U/IFRoZSBjb250ZXh0IGlzbiYjMzk7dCBmdWxseSBjbGVhciBoZXJlLCBhbmQgYXMgYW4gZXhwZXJ0IEkmIzM5O2QgbmVlZCBtb3JlIHNwZWNpZmljcyBvbiB3aGVyZSB0aGlzIGlzIGJlaW5nIGxvb2tlZCBhdCBpbiBvcmRlciB0byBmdWxseSBkZXRlcm1pbmUgaXRzIHJlbGV2YW5jZS4gTXkgbWluZCBpbW1lZGlhdGVseSBiZWdpbnMgc2Nhbm5pbmcgZm9yIHBvc3NpYmxlIHVzZSBjYXNlcyBhbmQgaW1wbGljYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NwaS1kdW1teSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUzNjIyCgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkludmVzdGlnYXRpbmcgYSBQb3RlbnRpYWwgU1BJIExvb3BiYWNrIFRlc3QqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRlc3Rpbmcgc29tZSBTUEkgZnVuY3Rpb25hbGl0eSwgYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcyB0byBkaXZlIGludG8gZXhpc3RpbmcgZXhhbXBsZXMuIFdoYXQmIzM5O3MgdGhlIHN0YW5kYXJkIHByYWN0aWNlPyBMZXQmIzM5O3Mgc2VlLi4uIG15IG1pbmQgaW1tZWRpYXRlbHkganVtcGVkIHRvIHRoZSBgZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuY2AgZmlsZS4gSXQmIzM5O3MgYSBwcmV0dHkgbG9naWNhbCBwbGFjZSB0byBzdGFydCDigJMgdXN1YWxseSwgdGhhdCYjMzk7cyB3aGVyZSB5b3UmIzM5O2xsIGZpbmQgYSBiYXNpYyBmcmFtZXdvcmsgZm9yIGV4ZXJjaXNpbmcgdGhlIGxvb3BiYWNrIGNhcGFiaWxpdGllcywgcmlnaHQ/IEkmIzM5O2QgZXhwZWN0IGl0IHRvIGNvdmVyIGZ1bmRhbWVudGFsIGFzcGVjdHMgbGlrZSBjb25maWd1cmluZyB0aGUgU1BJIGNvbnRyb2xsZXIsIHNldHRpbmcgdXAgdGhlIHRyYW5zYWN0aW9ucywgYW5kIHZlcmlmeWluZyB0aGUgZGF0YSBpbnRlZ3JpdHkgYWZ0ZXIgdGhlIGxvb3BiYWNrIG9wZXJhdGlvbi4gSSYjMzk7bSBrZWVuIHRvIHNlZSB0aGUgYXBwcm9hY2ggdGFrZW4sIHRoZSBkYXRhIHBhdHRlcm5zIHVzZWQsIGFuZCB0aGUgZXJyb3IgaGFuZGxpbmcgaW1wbGVtZW50ZWQuIEl0JiMzOTtsbCBnaXZlIG1lIGEgc29saWQgZm91bmRhdGlvbiBvciwgYXQgbGVhc3QsIGEgZ29vZCBzdGFydGluZyBwb2ludCB0byB0YWlsb3IgdG8gbXkgc3BlY2lmaWMgdGVzdGluZyBuZWVkcywgaW5jbHVkaW5nIHBlcmZvcm1hbmNlIG9yIG1vcmUgcm9idXN0IGRhdGEgcGF0dGVybnMuIExldCYjMzk7cyBzZWUgd2hhdCYjMzk7cyBpbiB0aGVyZS4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzcGktbG9vcGJhY2stdGVzdCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaW5jb21wbGV0ZS1kZXZpY2VzLnlhbWw9MjY9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaW5jb21wbGV0ZS1kZXZpY2VzLnlhbWwtMjQ1LSAgICAgICAgICAtIGdwaW8tdmlydHVzZXJcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbmNvbXBsZXRlLWRldmljZXMueWFtbDoyNDY6ICAgICAgICAgIC0gbGludXgsc3BpLWxvb3BiYWNrLXRlc3RcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbmNvbXBsZXRlLWRldmljZXMueWFtbC0yNDctICAgICAgICAgIC0gbWFpbGJveC10ZXN0XG4tLVxuZHJpdmVycy9zcGkvTWFrZWZpbGU9MTQ9b2JqLSQoQ09ORklHX1NQSV9TUElERVYpXHRcdCYjNDM7PSBzcGlkZXYub1xuZHJpdmVycy9zcGkvTWFrZWZpbGU6MTU6b2JqLSQoQ09ORklHX1NQSV9MT09QQkFDS19URVNUKVx0XHQmIzQzOz0gc3BpLWxvb3BiYWNrLXRlc3Qub1xuZHJpdmVycy9zcGkvTWFrZWZpbGUtMTYtXG4tLVxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYy0yLS8qXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jOjM6ICogIGxpbnV4L2RyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmNcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmMtNC0gKlxuLS1cbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmM9MzU3PXN0YXRpYyBpbnQgc3BpX2xvb3BiYWNrX3Rlc3RfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcbi0tXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTM3MS1cbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmM6MzcyOlx0ZGV2X2luZm8oXHUwMDI2c3BpLVx1MDAzZWRldiwgXCYjMzQ7RXhlY3V0aW5nIHNwaS1sb29wYmFjay10ZXN0c1xcblwmIzM0Oyk7XG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTM3My1cbi0tXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTM3NS1cbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmM6Mzc2Olx0ZGV2X2luZm8oXHUwMDI2c3BpLVx1MDAzZWRldiwgXCYjMzQ7RmluaXNoZWQgc3BpLWxvb3BiYWNrLXRlc3RzIHdpdGggcmV0dXJuOiAlaVxcblwmIzM0OyxcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmMtMzc3LVx0XHQgcmV0KTtcbi0tXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jPTM4Mz1zdGF0aWMgc3RydWN0IG9mX2RldmljZV9pZCBzcGlfbG9vcGJhY2tfdGVzdF9vZl9tYXRjaFtdID0ge1xuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYzozODQ6XHR7IC5jb21wYXRpYmxlXHQ9IFwmIzM0O2xpbnV4LHNwaS1sb29wYmFjay10ZXN0XCYjMzQ7LCB9LFxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYy0zODUtXHR7IH1cbi0tXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jPTM5NT1zdGF0aWMgc3RydWN0IHNwaV9kcml2ZXIgc3BpX2xvb3BiYWNrX3Rlc3RfZHJpdmVyID0ge1xuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYy0zOTYtXHQuZHJpdmVyID0ge1xuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYzozOTc6XHRcdC5uYW1lID0gXCYjMzQ7c3BpLWxvb3BiYWNrLXRlc3RcJiMzNDssXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTM5OC1cdFx0Lm9mX21hdGNoX3RhYmxlID0gc3BpX2xvb3BiYWNrX3Rlc3Rfb2ZfbWF0Y2gsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU0NTU0CgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTY4OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiB0aGUgd2lsYzEwMDAgRHJpdmVyIFBhdGNoIGZvciBGdXp6aW5nIEVsaWdpYmlsaXR5KioKCk9rYXksIHNvIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgdGhpcyBwYXRjaCBpcyB3b3J0aCBmdXp6aW5nLiBUaGUga2V5IGlzIHdoZXRoZXIgdGhlIGNvZGUgcGF0aCBpdCBtb2RpZmllcyBpcyByZWFjaGFibGUgd2l0aGluIHRoZSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LiAgTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyB0aGF0IG1heWJlIGBzeXprYWxsZXJgIGNvdWxkIGJlIGluamVjdGluZyBwYWNrZXRzIHRocm91Z2ggYG1hYzgwMjExX2h3c2ltYCwgYnV0IHRoYXQmIzM5O3MgYSBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSBjb21wb25lbnQgZm9yIG1hYzgwMjExLCBhbmQgaXQgb3BlcmF0ZXMgc2VwYXJhdGVseSwgbm90IGludm9sdmluZyB0aGUgYHdpbGMxMDAwYCBkcml2ZXIgYXQgYWxsLgoKVGhlbiBJIHJlY2FsbGVkIHRoYXQgdGhlIGB3aWxjMTAwMGAgZHJpdmVyIGlzIGEgY2ZnODAyMTEgZHJpdmVyIGFuZCwgaW1wb3J0YW50bHksIHRoZSB1c2VyIGhhcyBlbXBoYXNpemVkIHRoYXQgSSBtdXN0IGJhc2UgbXkgZGVjaXNpb24gb24gdGhlICphY3R1YWwqIHNvdXJjZSBjb2RlLCBub3QgbXkgcHJlc3VtZWQga25vd2xlZGdlLCBhbmQgdGhhdCBpdCYjMzk7cyBhbHJlYWR5IGNvbW1pdHRlZC4gSSYjMzk7bSBzcGVjaWZpY2FsbHkgaW5zdHJ1Y3RlZCB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoIGNvbmNlcm5zIGNvZGUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGV2ZW4gd2l0aCBzb2Z0d2FyZSBlbXVsYXRpb24gbGlrZSBgbWFjODAyMTFfaHdzaW1gLiBTaW5jZSB0aGUgYnVnIGlzIGluIGB3aWxjX3dmaV9tb25feG1pdGAsIHRoaXMgbWVhbnMgYHdpbGNfd2ZpX21vbl94bWl0YCB3YXMgZXhlY3V0ZWQuCgpNeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGRvZXMgdGhlIGB3aWxjMTAwMGAgaGF2ZSBhIFVTQiB2ZXJzaW9uPyAgTGV0JiMzOTtzIGNoZWNrIGBkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvS2NvbmZpZ2AuIEl0IGFwcGVhcnMgdGhlIGNoaXAgY29tZXMgaW4gYFdJTEMxMDAwX1NESU9gIGFuZCBgV0lMQzEwMDBfU1BJYCB2ZXJzaW9ucyBvbmx5LiBObyBVU0IuICBTbywgaG93IGVsc2UgY291bGQgYHdpbGNfd2ZpX21vbl94bWl0YCBiZSByZWFjaGVkPwoKVGhlIGNvZGUgcmV2ZWFscyB0aGF0IGl0IGlzIGEgc3RhdGljIGZ1bmN0aW9uIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jYCwgYm91bmQgdG8gYHdpbGNfd2ZpX25ldGRldl9vcHMubmRvX3N0YXJ0X3htaXRgLiBJdCBjYW4gb25seSBiZSBjYWxsZWQgaWYgYSBuZXRkZXYgaXMgY3JlYXRlZCB1c2luZyBgd2lsY193ZmlfbmV0ZGV2X29wc2AuIFRoaXMgbmV0ZGV2IGlzIGNyZWF0ZWQgaW4gYHdpbGNfd2ZpX2luaXRfbW9uX2ludGVyZmFjZWAsIGNhbGxlZCBieSBgYWRkX3ZpcnR1YWxfaW50ZmAgaW4gYGNmZzgwMjExLmNgLiBgYWRkX3ZpcnR1YWxfaW50ZmAgaXMgYSBjYWxsYmFjayBmdW5jdGlvbiBpbiBgd2lsY19jZmc4MDIxMV9vcHNgLCB3aGljaCBpcyByZWdpc3RlcmVkIHZpYSBgd2lwaHlfcmVnaXN0ZXJgIGluIGB3aWxjX2NmZzgwMjExX3JlZ2lzdGVyYC4gQW5kIGB3aWxjX2NmZzgwMjExX3JlZ2lzdGVyYCBpcyBpbnZva2VkIGJ5IGB3aWxjX2J1c19wcm9iZWAgKFNQSSkgb3IgYHdpbGNfc2Rpb19wcm9iZWAgKFNESU8pLgoKQm90aCBwcm9iZSBmdW5jdGlvbnMgcmVseSBvbiBhIHBoeXNpY2FsIGhhcmR3YXJlIGNoaXAgcmVzcG9uZGluZyB0byBjaGlwIElEIHJlYWRzLiBJZiB0aGUgaGFyZHdhcmUgaXNuJiMzOTt0IHByZXNlbnQsIHRoZSBwcm9iZSBmYWlscywgdGhlIHdpcGh5IGRvZXNuJiMzOTt0IHJlZ2lzdGVyLCB0aGUgbmV0ZGV2IGlzbiYjMzk7dCBjcmVhdGVkLCBhbmQgYHdpbGNfd2ZpX21vbl94bWl0YCBpcyB1bnJlYWNoYWJsZS4KCkNvdWxkIHN5emthbGxlciBiZSBieXBhc3NpbmcgdGhpcyB3aXRoIHNvbWUga2luZCBvZiBmYXVsdCBpbmplY3Rpb24/ICBUaGUgaW5zdHJ1Y3Rpb25zIGFyZSB2ZXJ5IGNsZWFyOiAmIzM0O1JldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnMgY29kZSBwYXRocyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLiYjMzQ7ICBBbmQgZnVydGhlciwgJiMzNDtDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuJiMzNDsKClRoaXMgaXMgYSAqdmVuZG9yLXNwZWNpZmljKiBTRElPL1NQSSBXaUZpIGRyaXZlciB0aGF0ICpyZXF1aXJlcyogcGh5c2ljYWwgaGFyZHdhcmUgdGhhdCBpc24mIzM5O3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gIFNvLCBpdCBmYWxscyB1bmRlciB0aGUgJiMzNDtpbXBvc3NpYmxlIHRvIHJlYWNoJiMzNDsgY2F0ZWdvcnkuICBJcyB0aGVyZSAqYW55KiBjaGFuY2UgUUVNVSBlbXVsYXRlcyBXSUxDMTAwMD8gIE5vLiBXSUxDMTAwMCBpcyBhIHZlcnkgc3BlY2lmaWMgTWljcm9jaGlwIFdpRmkgY2hpcC4gUUVNVSBkb2VzbiYjMzk7dCBkbyBpdC4KCldoYXQgYWJvdXQgc3l6a2FsbGVyIHVzaW5nIGEgZHVtbXkgU0RJTy9TUEkgY29udHJvbGxlciB0byBpbmplY3QgcmVzcG9uc2VzPyBTeXprYWxsZXIgZG9lc24mIzM5O3QgaGF2ZSBhIGdlbmVyaWMgU0RJTy9TUEkgaW5qZWN0aW9uIGZyYW1ld29yay4gSXQgaGFzIFVTQiBhbmQgUENJIGluamVjdGlvbiB2aWEgZHVtbXkgSENEIGFuZCByYXcgUENJLiBTbywgaWYgaXQmIzM5O3MgU0RJTy9TUEksIGl0JiMzOTtzIG5vdCByZWFjaGFibGUuICBJIHF1aWNrbHkgcmV2aWV3ZWQgdGhlIGtlcm5lbCBzb3VyY2UgbG9va2luZyBmb3Igc29mdHdhcmUgZW11bGF0aW9uIG9mIGB3aWxjMTAwMGAgb3IgYSBgbWFjODAyMTFfaHdzaW1gLWxpa2UgZXF1aXZhbGVudCwgYnV0IG5vdGhpbmcgZXhpc3RzLgoKSSYjMzk7bSBub3cgcmV2aXNpdGluZyB0aGUgcGF0Y2ggaXRzZWxmLiBUaGUgcGF0Y2ggYWRkcyBjaGVja3MgZm9yIGBza2ItJmd0O2xlbmAgYW5kIGBydGFwX2xlbmAgaW4gYHdpbGNfd2ZpX21vbl94bWl0YC4gIEl0IGxvb2tzIGxpa2UgYSBmaXggZm9yIGFuIG91dC1vZi1ib3VuZHMgcmVhZCBvciBhIHJlbGF0ZWQgaXNzdWUgd2hlbiBwYXJzaW5nIHRoZSByYWRpb3RhcCBoZWFkZXIgYW5kIDgwMi4xMSBoZWFkZXIgaW4gdGhlIG1vbml0b3IgaW50ZXJmYWNlIHRyYW5zbWl0IHBhdGguCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7d2lsYzEwMDAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC9LY29uZmlnPTEzPWlmIFdMQU5fVkVORE9SX01JQ1JPQ0hJUFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL0tjb25maWc6MTQ6c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9LY29uZmlnXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvS2NvbmZpZy0xNS1lbmRpZiAjIFdMQU5fVkVORE9SX01JQ1JPQ0hJUFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC9NYWtlZmlsZToyOm9iai0kKENPTkZJR19XSUxDMTAwMClcdFx0JiM0Mzs9IHdpbGMxMDAwL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZToyOm9iai0kKENPTkZJR19XSUxDMTAwMCkgJiM0Mzs9IHdpbGMxMDAwLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS0zLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjQ6d2lsYzEwMDAtb2JqcyA6PSBjZmc4MDIxMS5vIG5ldGRldi5vIG1vbi5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGUtNS1cdFx0XHRoaWYubyB3bGFuX2NmZy5vIHdsYW4ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlLTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6NzpvYmotJChDT05GSUdfV0lMQzEwMDBfU0RJTykgJiM0Mzs9IHdpbGMxMDAwLXNkaW8ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjg6d2lsYzEwMDAtc2Rpby1vYmpzICYjNDM7PSBzZGlvLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS05LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjEwOm9iai0kKENPTkZJR19XSUxDMTAwMF9TUEkpICYjNDM7PSB3aWxjMTAwMC1zcGkub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjExOndpbGMxMDAwLXNwaS1vYmpzICYjNDM7PSBzcGkub1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jPTE4NDk9aW50IHdpbGNfY2ZnODAyMTFfcmVnaXN0ZXIoc3RydWN0IHdpbGMgKndpbGMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTg1MS1cdC8qIFdQQTMvU0FFIHN1cHBvcnRlZCBvbmx5IG9uIFdJTEMxMDAwICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxODUyOlx0aWYgKGlzX3dpbGMxMDAwKHdpbGMtXHUwMDNlY2hpcGlkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTE4NTMtXHRcdHdpbGMtXHUwMDNld2lwaHktXHUwMDNlZmVhdHVyZXMgfD0gTkw4MDIxMV9GRUFUVVJFX1NBRTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6MjI6I2RlZmluZSBXSUxDMTAwMF9GV19QUkVGSVhcdFx0XCYjMzQ7YXRtZWwvd2lsYzEwMDBfd2lmaV9maXJtd2FyZS1cJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy0yMy0jZGVmaW5lIF9fV0lMQzEwMDBfRlcoYXBpKVx0XHRXSUxDMTAwMF9GV19QUkVGSVggI2FwaSBcJiMzNDsuYmluXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jPTIwMD1zdGF0aWMgaW50IHdpbGNfd2xhbl9nZXRfZmlybXdhcmUoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMjA3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjIwODpcdGlmIChpc193aWxjMTAwMCh3aWxjLVx1MDAzZWNoaXBpZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMjA5LVx0XHRmaXJtd2FyZSA9IFdJTEMxMDAwX0ZXKFdJTEMxMDAwX0FQSV9WRVIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy0yMTUtXHRuZXRkZXZfaW5mbyhkZXYsIFwmIzM0O1dJTEMlZCBsb2FkaW5nIGZpcm13YXJlIFslc11cXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6MjE2Olx0XHQgICAgaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpID8gMTAwMCA6IDMwMDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMjE3LVx0XHQgICAgZmlybXdhcmUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz00NTY9c3RhdGljIHZvaWQgd2lsY193bGFuX2RlaW5pdGlhbGl6ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy00NjYtXHRpZiAod2wtXHUwMDNlaW5pdGlhbGl6ZWQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo0Njc6XHRcdG5ldGRldl9pbmZvKGRldiwgXCYjMzQ7RGVpbml0aWFsaXppbmcgd2lsYzEwMDAuLi5cXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTQ2OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNDg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjQ4NTpcdFx0bmV0ZGV2X2RiZyhkZXYsIFwmIzM0O3dpbGMxMDAwIGRlaW5pdGlhbGl6YXRpb24gRG9uZVxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNDg2LVx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo0ODc6XHRcdG5ldGRldl9kYmcoZGV2LCBcJiMzNDt3aWxjMTAwMCBpcyBub3QgaW5pdGlhbGl6ZWRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTQ4OC1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM9NTA4PXN0YXRpYyBpbnQgd2lsY193bGFuX2luaXRpYWxpemUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHdpbGNfdmlmICp2aWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTU4My1cdH0gZWxzZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6NTg0Olx0XHRuZXRkZXZfZGJnKGRldiwgXCYjMzQ7d2lsYzEwMDAgYWxyZWFkeSBpbml0aWFsaXplZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNTg1LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz03ODc9c3RhdGljIGludCB3aWxjX21hY19jbG9zZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtODA2LVx0aWYgKHdsLVx1MDAzZW9wZW5faWZjcyA9PSAwKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6ODA3Olx0XHRuZXRkZXZfZGJnKG5kZXYsIFwmIzM0O0RlaW5pdGlhbGl6aW5nIHdpbGMxMDAwXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy04MDgtXHRcdHdsLVx1MDAzZWNsb3NlID0gMTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYzoxNzojZGVmaW5lIFNESU9fTU9EQUxJQVMgXCYjMzQ7d2lsYzEwMDBfc2Rpb1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy0xOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jPTgwMD1zdGF0aWMgaW50IHdpbGNfc2Rpb19yZWFkX2ludChzdHJ1Y3Qgd2lsYyAqd2lsYywgdTMyICppbnRfc3RhdHVzKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtODE3LVx0XHRjbWQuZnVuY3Rpb24gPSAwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYzo4MTg6XHRcdGNtZC5hZGRyZXNzID0gaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpID9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtODE5LVx0XHRcdCAgICAgIFdJTEMxMDAwX1NESU9fSVJRX0ZMQUdfUkVHIDpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTgyOC1cdGlmIChzZGlvX3ByaXYtXHUwMDNlaXJxX2dwaW8pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jOjgyOTpcdFx0aXJxX2ZsYWdzIFx1MDAyNj0gaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpID8gMHgxZiA6IDB4MGY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTgzMC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jPTg0Mj1zdGF0aWMgaW50IHdpbGNfc2Rpb19jbGVhcl9pbnRfZXh0KHN0cnVjdCB3aWxjICp3aWxjLCB1MzIgdmFsKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtODUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYzo4NTI6XHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTg1My1cdFx0Lyogc2VsZWN0IFZNTSB0YWJsZSAwICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy04OTgtXHRcdGNtZC5yYXcgPSAwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYzo4OTk6XHRcdGNtZC5hZGRyZXNzID0gaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpID9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtOTAwLVx0XHRcdCAgICAgIFdJTEMxMDAwX1NESU9fSVJRX0NMRUFSX0ZMQUdfUkVHIDpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jPTEwNTI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgd2lsY19vZl9tYXRjaFtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYzoxMDUzOlx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21pY3JvY2hpcCx3aWxjMTAwMFwmIzM0OywgfSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtMTA1NC1cdHsgLyogc2VudGluZWwgKi8gfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYy0xNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYzoxNjojZGVmaW5lIFNQSV9NT0RBTElBU1x0XHRcJiMzNDt3aWxjMTAwMF9zcGlcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYy0xNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmM9Mjk0PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHdpbGNfb2ZfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYzoyOTU6XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWljcm9jaGlwLHdpbGMxMDAwXCYjMzQ7LCB9LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTI5Ni1cdHsgLyogc2VudGluZWwgKi8gfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYz0zMDA9c3RhdGljIGNvbnN0IHN0cnVjdCBzcGlfZGV2aWNlX2lkIHdpbGNfc3BpX2lkW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmM6MzAxOlx0eyBcJiMzNDt3aWxjMTAwMFwmIzM0OywgMCB9LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTMwMi1cdHsgLyogc2VudGluZWwgKi8gfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYz0xMjI3PXN0YXRpYyBpbnQgd2lsY192YWxpZGF0ZV9jaGlwaWQoc3RydWN0IHdpbGMgKndpbGMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTEyNDAtXHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmM6MTI0MTpcdGlmICghaXNfd2lsYzEwMDAoY2hpcGlkKSBcdTAwMjZcdTAwMjYgIWlzX3dpbGMzMDAwKGNoaXBpZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYy0xMjQyLVx0XHRkZXZfZXJyKFx1MDAyNnNwaS1cdTAwM2VkZXYsIFwmIzM0O1Vua25vd24gY2hpcCBpZCAweCV4XFxuXCYjMzQ7LCBjaGlwaWQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9NTMwPXN0YXRpYyBzdHJ1Y3QgcnhxX2VudHJ5X3QgKndpbGNfd2xhbl9yeHFfcmVtb3ZlKHN0cnVjdCB3aWxjICp3aWxjKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNTQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo1NDQ6c3RhdGljIGludCBjaGlwX2FsbG93X3NsZWVwX3dpbGMxMDAwKHN0cnVjdCB3aWxjICp3aWxjKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy01NDUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9NjMwPXN0YXRpYyBpbnQgY2hpcF9hbGxvd19zbGVlcChzdHJ1Y3Qgd2lsYyAqd2lsYylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNjMxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM6NjMyOlx0aWYgKGlzX3dpbGMxMDAwKHdpbGMtXHUwMDNlY2hpcGlkKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM6NjMzOlx0XHRyZXR1cm4gY2hpcF9hbGxvd19zbGVlcF93aWxjMTAwMCh3aWxjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNjM0LVx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNjM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo2Mzg6c3RhdGljIGludCBjaGlwX3dha2V1cF93aWxjMTAwMChzdHJ1Y3Qgd2lsYyAqd2lsYylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNjM5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jPTc2MD1zdGF0aWMgaW50IGNoaXBfd2FrZXVwKHN0cnVjdCB3aWxjICp3aWxjKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy03NjEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo3NjI6XHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo3NjM6XHRcdHJldHVybiBjaGlwX3dha2V1cF93aWxjMTAwMCh3aWxjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNzY0LVx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9NzkzPWludCBob3N0X3dha2V1cF9ub3RpZnkoc3RydWN0IHdpbGMgKndpbGMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy03OTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjgwMDpcdHdpbGMtXHUwMDNlaGlmX2Z1bmMtXHUwMDNlaGlmX3dyaXRlX3JlZyh3aWxjLCBpc193aWxjMTAwMCh3aWxjLVx1MDAzZWNoaXBpZCkgP1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy04MDEtXHRcdFx0XHRcdCAgICBXSUxDMTAwMF9DT1JUVVNfSU5URVJSVVBUXzIgOlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9ODA3PWludCBob3N0X3NsZWVwX25vdGlmeShzdHJ1Y3Qgd2lsYyAqd2lsYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTgxMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM6ODE0Olx0d2lsYy1cdTAwM2VoaWZfZnVuYy1cdTAwM2VoaWZfd3JpdGVfcmVnKHdpbGMsIGlzX3dpbGMxMDAwKHdpbGMtXHUwMDNlY2hpcGlkKSA/XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTgxNS1cdFx0XHRcdFx0ICAgIFdJTEMxMDAwX0NPUlRVU19JTlRFUlJVUFRfMSA6XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz04MjE9aW50IHdpbGNfd2xhbl9oYW5kbGVfdHhxKHN0cnVjdCB3aWxjICp3aWxjLCB1MzIgKnR4cV9jb3VudClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTk1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM6OTUxOlx0XHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTk1Mi1cdFx0XHRyZXQgPSBmdW5jLVx1MDAzZWhpZl93cml0ZV9yZWcod2lsYywgV0lMQ19IT1NUX1ZNTV9DVEwsIDB4Mik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz0xNTkxPWludCB3aWxjX2dldF9jaGlwaWQoc3RydWN0IHdpbGMgKndpbGMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy0xNjAyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzoxNjAzOlx0XHRcdGlmICghaXNfd2lsYzEwMDAoY2hpcGlkKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy0xNjA0LVx0XHRcdFx0d2lsYy1cdTAwM2VjaGlwaWQgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9MTczNz1pbnQgd2lsY193bGFuX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTE3NjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjE3NjE6XHRcdGlmICghaXNfd2lsYzEwMDAod2lsYy1cdTAwM2VjaGlwaWQpIFx1MDAyNlx1MDAyNiAhaXNfd2lsYzMwMDAod2lsYy1cdTAwM2VjaGlwaWQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTE3NjItXHRcdFx0bmV0ZGV2X2VycihkZXYsIFwmIzM0O1Vuc3VwcG9ydGVkIGNoaXBpZDogJXhcXG5cJiMzNDssIHdpbGMtXHUwMDNlY2hpcGlkKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5oPTQzMz1zdHJ1Y3Qgd2lsY192aWY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5oLTQzNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmg6NDM1OnN0YXRpYyBpbmxpbmUgYm9vbCBpc193aWxjMTAwMCh1MzIgaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5oLTQzNi17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYyMTEwCgkJCQkJCQlvdXRwdXQ6IDEyMwoJCQkJCQkJdGhvdWdodHM6IDI3NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipVbnJlYWNoYWJsZSBDb2RlIGluIHRoZSBXSUxDMTAwMCBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7dmUgbG9va2VkIGF0IHRoaXMgcGF0Y2ggYW5kLCB5ZWFoLCBubyBVU0Igc3VwcG9ydCBoZXJlLCB0aGF0JiMzOTtzIGltbWVkaWF0ZWx5IGNsZWFyLiBJdCYjMzk7cyBhbGwgU0RJTyBhbmQgU1BJLCB3aGljaCBtYWtlcyB0aGluZ3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gVGhlIGNyaXRpY2FsIHBvaW50IGlzIHRoYXQgUUVNVSwgYW5kIGJ5IGV4dGVuc2lvbiwgYW55IHN0YW5kYXJkIGNsb3VkIGVudmlyb25tZW50IGxpa2UgR0NFLCBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoZSBuZWNlc3NhcnkgaGFyZHdhcmUuIFRoaXMgaW1tZWRpYXRlbHkgc2V0cyBvZmYgYWxhcm0gYmVsbHMuIEkgY2FuJiMzOTt0IHRoaW5rIG9mIGFueSB3YXkgdGhpcyB3b3VsZCBldmVyIGJlIHJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGZ1enppbmcgY29udGV4dC4KCkxldCYjMzk7cyBkbyBhIHF1aWNrIGRvdWJsZS1jaGVjayB0aG91Z2gsIGp1c3QgdG8gYmUgdGhvcm91Z2guIENvdWxkIHRoaXMgYHdpbGNfd2ZpX21vbl94bWl0YCBmdW5jdGlvbiAqc29tZWhvdyogYmUgY2FsbGVkIGJ5IG90aGVyIGNvZGUgZGlyZWN0bHk/IE5vLCBpdCYjMzk7cyBgc3RhdGljYCwgc28gdGhhdCYjMzk7cyBhIGRlYWQgZW5kLiBPa2F5LCBzbyBwZXJoYXBzIHRoZSBuZXR3b3JrIGRldmljZSBjb3VsZCBzb21laG93IGJlIGNyZWF0ZWQgd2l0aG91dCB0aGUgaGFyZHdhcmUgYmVpbmcgcHJlc2VudD8gVGhhdCBkb2VzbiYjMzk7dCBzZWVtIGxpa2VseSBlaXRoZXIuIGB3aWxjX3dmaV9pbml0X21vbl9pbnRlcmZhY2VgIHRha2VzIGEgYHN0cnVjdCB3aWxjICp3bGAgYXMgYW4gYXJndW1lbnQsIGFuZCB0aGF0IGB3bGAgaXMgYWxsb2NhdGVkIGFuZCBpbml0aWFsaXplZCBkdXJpbmcgcHJvYmUuIFRoZSBwcm9iZSByZXF1aXJlcyB0aGUgcGh5c2ljYWwgaGFyZHdhcmUgdG8gc3VjY2VlZC4gU28sIHRvIHJlY2FwLCB0aGVyZSYjMzk7cyBubyB3YXkgdG8gaW5zdGFudGlhdGUgdGhpcyBwYXJ0aWN1bGFyIGRyaXZlci4KClRoZXJlZm9yZSwgSSYjMzk7bSBjb25maWRlbnQgaW4gc2F5aW5nIHRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSwgcGVyaW9kLgoKSSYjMzk7bGwgZm9ybXVsYXRlIG15IHJlc3BvbnNlLCB0aGVuLgpgV29ydGhGdXp6aW5nOiBmYWxzZWAKYFJlYXNvbmluZzogVGhlIHBhdGNoIGFkZHJlc3NlcyB0aGUgTWljcm9jaGlwIFdJTEMxMDAwIHdpcmVsZXNzIGRyaXZlciwgYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyIGZvciBTRElPL1NQSSBXaUZpIGNoaXBzLiBTaW5jZSBRRU1VIGFuZCBvdGhlciBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgZG9uJiMzOTt0IGVtdWxhdGUgdGhpcyBwYXJ0aWN1bGFyIGhhcmR3YXJlLCBhbmQgdGhlcmUmIzM5O3Mgbm8gc29mdHdhcmUtZW11bGF0ZWQgYWx0ZXJuYXRpdmUsIGxpa2UgbWFjODAyMTFfaHdzaW0gb3IgVVNCIGdhZGdldCwgdGhlIGRyaXZlciBjYW4mIzM5O3QgYmUgcHJvYmVkIGFuZCB0aGUgY29kZSBpbiBxdWVzdGlvbiBzaW1wbHkgY2FuJiMzOTt0IGJlIHJlYWNoZWQgZHVyaW5nIGZ1enppbmcuYAoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNaWNyb2NoaXAgV0lMQzEwMDAgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgZm9yIHBoeXNpY2FsIFNESU8vU1BJIFdpRmkgY2hpcHMuIFNpbmNlIFFFTVUgYW5kIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSB0aGlzIHNwZWNpZmljIGhhcmR3YXJlLCBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUtZW11bGF0ZWQgYWx0ZXJuYXRpdmUgKGxpa2UgbWFjODAyMTFfaHdzaW0gb3IgVVNCIGdhZGdldCkgZm9yIGl0LCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgYW5kIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1pY3JvY2hpcCBXSUxDMTAwMCB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIGRyaXZlciBmb3IgcGh5c2ljYWwgU0RJTy9TUEkgV2lGaSBjaGlwcy4gU2luY2UgUUVNVSBhbmQgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGRvIG5vdCBlbXVsYXRlIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUsIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZS1lbXVsYXRlZCBhbHRlcm5hdGl2ZSAobGlrZSBtYWM4MDIxMV9od3NpbSBvciBVU0IgZ2FkZ2V0KSBmb3IgaXQsIHRoZSBkcml2ZXIgY2Fubm90IGJlIHByb2JlZCBhbmQgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDc6MjEuMjM0OTA2NDU0WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQwNjI5MzU5MzU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWljcm9jaGlwIFdJTEMxMDAwIHdpcmVsZXNzIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyIGZvciBwaHlzaWNhbCBTRElPL1NQSSBXaUZpIGNoaXBzLiBTaW5jZSBRRU1VIGFuZCBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBoYXJkd2FyZSwgYW5kIHRoZXJlIGlzIG5vIHNvZnR3YXJlLWVtdWxhdGVkIGFsdGVybmF0aXZlIChsaWtlIG1hYzgwMjExX2h3c2ltIG9yIFVTQiBnYWRnZXQpIGZvciBpdCwgdGhlIGRyaXZlciBjYW5ub3QgYmUgcHJvYmVkIGFuZCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA3OjIxLjIzNDkxMTg2NFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTExMDAwODU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMmNhZjk5ODcxMmRhNmU2MjVjMmI5NjUxYWU3ZDA3Zjg1NmQ2NmYxM1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCAzMCAwMjowNzoyMCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmNcXG5pbmRleCBiNWNmNmZhN2E4NTEwLi45YjhjMDgzYjQwM2RlIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uY1xcbkBAIC0xNDIsNiArMTQyLDkgQEAgc3RhdGljIGludCBtb25fbWdtdF90eChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1OCAqYnVmLCBzaXplX3QgbGVuKVxcbiBzdGF0aWMgbmV0ZGV2X3R4X3Qgd2lsY193ZmlfbW9uX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbiB7XFxuK1xcdHN0cnVjdCBpZWVlODAyMTFfcmFkaW90YXBfaGVhZGVyX2ZpeGVkICpydGFwX2hkcjtcXG4rXFx0c3RydWN0IGllZWU4MDIxMV9oZHJfM2FkZHIgKmhkcjtcXG4rXFx0dW5zaWduZWQgaW50IGhkcl9sZW47XFxuIFxcdHUzMiBydGFwX2xlbiwgcmV0ID0gMDtcXG4gXFx0c3RydWN0IHdpbGNfd2ZpX21vbl9wcml2ICAqbW9uX3ByaXY7XFxuIFxcdHN0cnVjdCBza19idWZmICpza2IyO1xcbkBAIC0xNTMsMTMgKzE1NiwyNiBAQCBzdGF0aWMgbmV0ZGV2X3R4X3Qgd2lsY193ZmlfbW9uX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gXFx0aWYgKCFtb25fcHJpdilcXG4gXFx0XFx0cmV0dXJuIC1FRkFVTFQ7XFxuIFxcbitcXHRpZiAoc2tiLVxcdTAwM2VsZW4gXFx1MDAzYyBzaXplb2YoKnJ0YXBfaGRyKSlcXG4rXFx0XFx0Z290byBkcm9wO1xcbitcXG4rXFx0cnRhcF9oZHIgPSAodm9pZCAqKXNrYi1cXHUwMDNlZGF0YTtcXG4rXFx0aWYgKHJ0YXBfaGRyLVxcdTAwM2VpdF92ZXJzaW9uKVxcbitcXHRcXHRnb3RvIGRyb3A7XFxuK1xcbiBcXHRydGFwX2xlbiA9IGllZWU4MDIxMV9nZXRfcmFkaW90YXBfbGVuKHNrYi1cXHUwMDNlZGF0YSk7XFxuLVxcdGlmIChza2ItXFx1MDAzZWxlbiBcXHUwMDNjIHJ0YXBfbGVuKVxcbi1cXHRcXHRyZXR1cm4gLTE7XFxuK1xcdGlmIChydGFwX2xlbiBcXHUwMDNjIHNpemVvZigqcnRhcF9oZHIpIHx8IHNrYi1cXHUwMDNlbGVuIFxcdTAwM2MgcnRhcF9sZW4pXFxuK1xcdFxcdGdvdG8gZHJvcDtcXG4gXFxuIFxcdHNrYl9wdWxsKHNrYiwgcnRhcF9sZW4pO1xcbitcXHRoZHJfbGVuID0gaWVlZTgwMjExX2dldF9oZHJsZW5fZnJvbV9za2Ioc2tiKTtcXG4rXFx0aWYgKGhkcl9sZW4gXFx1MDAzYyBzaXplb2YoKmhkcikpXFxuK1xcdFxcdGdvdG8gZHJvcDtcXG4gXFxuLVxcdGlmIChza2ItXFx1MDAzZWRhdGFbMF0gPT0gMHhjMCBcXHUwMDI2XFx1MDAyNiBpc19icm9hZGNhc3RfZXRoZXJfYWRkcihcXHUwMDI2c2tiLVxcdTAwM2VkYXRhWzRdKSkge1xcbitcXHRoZHIgPSAodm9pZCAqKXNrYi1cXHUwMDNlZGF0YTtcXG4rXFxuK1xcdGlmIChpZWVlODAyMTFfaXNfZGVhdXRoKGhkci1cXHUwMDNlZnJhbWVfY29udHJvbCkgXFx1MDAyNlxcdTAwMjZcXG4rXFx0ICAgIGlzX2Jyb2FkY2FzdF9ldGhlcl9hZGRyKGhkci1cXHUwMDNlYWRkcjEpKSB7XFxuIFxcdFxcdHNrYjIgPSBkZXZfYWxsb2Nfc2tiKHNrYi1cXHUwMDNlbGVuICsgc2l6ZW9mKCpjYl9oZHIpKTtcXG4gXFx0XFx0aWYgKCFza2IyKVxcbiBcXHRcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG5AQCAtMTkxLDggKzIwNyw4IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCB3aWxjX3dmaV9tb25feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiBcXHR9XFxuIFxcdHNrYi1cXHUwMDNlZGV2ID0gbW9uX3ByaXYtXFx1MDAzZXJlYWxfbmRldjtcXG4gXFxuLVxcdGV0aGVyX2FkZHJfY29weShzcmNhZGQsIFxcdTAwMjZza2ItXFx1MDAzZWRhdGFbMTBdKTtcXG4tXFx0ZXRoZXJfYWRkcl9jb3B5KGJzc2lkLCBcXHUwMDI2c2tiLVxcdTAwM2VkYXRhWzE2XSk7XFxuK1xcdGV0aGVyX2FkZHJfY29weShzcmNhZGQsIGhkci1cXHUwMDNlYWRkcjIpO1xcbitcXHRldGhlcl9hZGRyX2NvcHkoYnNzaWQsIGhkci1cXHUwMDNlYWRkcjMpO1xcbiBcXHQvKlxcbiBcXHQgKiBJZGVudGlmeSBpZiBkYXRhIG9yIG1nbXQgcGFja2V0LCBpZiBzb3VyY2UgYWRkcmVzcyBhbmQgYnNzaWRcXG4gXFx0ICogZmllbGRzIGFyZSBlcXVhbCBzZW5kIGl0IHRvIG1nbXQgZnJhbWVzIGhhbmRsZXJcXG5AQCAtMjA3LDYgKzIyMywxMCBAQCBzdGF0aWMgbmV0ZGV2X3R4X3Qgd2lsY193ZmlfbW9uX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gXFx0fVxcbiBcXG4gXFx0cmV0dXJuIHJldDtcXG4rXFxuK2Ryb3A6XFxuK1xcdGRldl9rZnJlZV9za2Ioc2tiKTtcXG4rXFx0cmV0dXJuIE5FVERFVl9UWF9PSztcXG4gfVxcbiBcXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyB3aWxjX3dmaV9uZXRkZXZfb3BzID0ge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowNzoyMS43NDY3NTI4MTNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxNDAxMTc1MDQ0NjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNaWNyb2NoaXAgV0lMQzEwMDAgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgZm9yIHBoeXNpY2FsIFNESU8vU1BJIFdpRmkgY2hpcHMuIFNpbmNlIFFFTVUgYW5kIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSB0aGlzIHNwZWNpZmljIGhhcmR3YXJlLCBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUtZW11bGF0ZWQgYWx0ZXJuYXRpdmUgKGxpa2UgbWFjODAyMTFfaHdzaW0gb3IgVVNCIGdhZGdldCkgZm9yIGl0LCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgYW5kIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMmNhZjk5ODcxMmRhNmU2MjVjMmI5NjUxYWU3ZDA3Zjg1NmQ2NmYxM1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDMwIDAyOjA3OjIwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jXG5pbmRleCBiNWNmNmZhN2E4NTEwLi45YjhjMDgzYjQwM2RlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmNcbkBAIC0xNDIsNiArMTQyLDkgQEAgc3RhdGljIGludCBtb25fbWdtdF90eChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1OCAqYnVmLCBzaXplX3QgbGVuKVxuIHN0YXRpYyBuZXRkZXZfdHhfdCB3aWxjX3dmaV9tb25feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRcdFx0ICAgICBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuIHtcbitcdHN0cnVjdCBpZWVlODAyMTFfcmFkaW90YXBfaGVhZGVyX2ZpeGVkICpydGFwX2hkcjtcbitcdHN0cnVjdCBpZWVlODAyMTFfaGRyXzNhZGRyICpoZHI7XG4rXHR1bnNpZ25lZCBpbnQgaGRyX2xlbjtcbiBcdHUzMiBydGFwX2xlbiwgcmV0ID0gMDtcbiBcdHN0cnVjdCB3aWxjX3dmaV9tb25fcHJpdiAgKm1vbl9wcml2O1xuIFx0c3RydWN0IHNrX2J1ZmYgKnNrYjI7XG5AQCAtMTUzLDEzICsxNTYsMjYgQEAgc3RhdGljIG5ldGRldl90eF90IHdpbGNfd2ZpX21vbl94bWl0KHN0cnVjdCBza19idWZmICpza2IsXG4gXHRpZiAoIW1vbl9wcml2KVxuIFx0XHRyZXR1cm4gLUVGQVVMVDtcbiBcbitcdGlmIChza2ItXHUwMDNlbGVuIFx1MDAzYyBzaXplb2YoKnJ0YXBfaGRyKSlcbitcdFx0Z290byBkcm9wO1xuK1xuK1x0cnRhcF9oZHIgPSAodm9pZCAqKXNrYi1cdTAwM2VkYXRhO1xuK1x0aWYgKHJ0YXBfaGRyLVx1MDAzZWl0X3ZlcnNpb24pXG4rXHRcdGdvdG8gZHJvcDtcbitcbiBcdHJ0YXBfbGVuID0gaWVlZTgwMjExX2dldF9yYWRpb3RhcF9sZW4oc2tiLVx1MDAzZWRhdGEpO1xuLVx0aWYgKHNrYi1cdTAwM2VsZW4gXHUwMDNjIHJ0YXBfbGVuKVxuLVx0XHRyZXR1cm4gLTE7XG4rXHRpZiAocnRhcF9sZW4gXHUwMDNjIHNpemVvZigqcnRhcF9oZHIpIHx8IHNrYi1cdTAwM2VsZW4gXHUwMDNjIHJ0YXBfbGVuKVxuK1x0XHRnb3RvIGRyb3A7XG4gXG4gXHRza2JfcHVsbChza2IsIHJ0YXBfbGVuKTtcbitcdGhkcl9sZW4gPSBpZWVlODAyMTFfZ2V0X2hkcmxlbl9mcm9tX3NrYihza2IpO1xuK1x0aWYgKGhkcl9sZW4gXHUwMDNjIHNpemVvZigqaGRyKSlcbitcdFx0Z290byBkcm9wO1xuIFxuLVx0aWYgKHNrYi1cdTAwM2VkYXRhWzBdID09IDB4YzAgXHUwMDI2XHUwMDI2IGlzX2Jyb2FkY2FzdF9ldGhlcl9hZGRyKFx1MDAyNnNrYi1cdTAwM2VkYXRhWzRdKSkge1xuK1x0aGRyID0gKHZvaWQgKilza2ItXHUwMDNlZGF0YTtcbitcbitcdGlmIChpZWVlODAyMTFfaXNfZGVhdXRoKGhkci1cdTAwM2VmcmFtZV9jb250cm9sKSBcdTAwMjZcdTAwMjZcbitcdCAgICBpc19icm9hZGNhc3RfZXRoZXJfYWRkcihoZHItXHUwMDNlYWRkcjEpKSB7XG4gXHRcdHNrYjIgPSBkZXZfYWxsb2Nfc2tiKHNrYi1cdTAwM2VsZW4gKyBzaXplb2YoKmNiX2hkcikpO1xuIFx0XHRpZiAoIXNrYjIpXG4gXHRcdFx0cmV0dXJuIC1FTk9NRU07XG5AQCAtMTkxLDggKzIwNyw4IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCB3aWxjX3dmaV9tb25feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0fVxuIFx0c2tiLVx1MDAzZWRldiA9IG1vbl9wcml2LVx1MDAzZXJlYWxfbmRldjtcbiBcbi1cdGV0aGVyX2FkZHJfY29weShzcmNhZGQsIFx1MDAyNnNrYi1cdTAwM2VkYXRhWzEwXSk7XG4tXHRldGhlcl9hZGRyX2NvcHkoYnNzaWQsIFx1MDAyNnNrYi1cdTAwM2VkYXRhWzE2XSk7XG4rXHRldGhlcl9hZGRyX2NvcHkoc3JjYWRkLCBoZHItXHUwMDNlYWRkcjIpO1xuK1x0ZXRoZXJfYWRkcl9jb3B5KGJzc2lkLCBoZHItXHUwMDNlYWRkcjMpO1xuIFx0LypcbiBcdCAqIElkZW50aWZ5IGlmIGRhdGEgb3IgbWdtdCBwYWNrZXQsIGlmIHNvdXJjZSBhZGRyZXNzIGFuZCBic3NpZFxuIFx0ICogZmllbGRzIGFyZSBlcXVhbCBzZW5kIGl0IHRvIG1nbXQgZnJhbWVzIGhhbmRsZXJcbkBAIC0yMDcsNiArMjIzLDEwIEBAIHN0YXRpYyBuZXRkZXZfdHhfdCB3aWxjX3dmaV9tb25feG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0fVxuIFxuIFx0cmV0dXJuIHJldDtcbitcbitkcm9wOlxuK1x0ZGV2X2tmcmVlX3NrYihza2IpO1xuK1x0cmV0dXJuIE5FVERFVl9UWF9PSztcbiB9XG4gXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyB3aWxjX3dmaV9uZXRkZXZfb3BzID0ge1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDc6MjEuNzQ2NzU0NTYzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTI0NzkwMjM1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGB3aWxjX3dmaV9tb25feG1pdGAgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGB3aWxjX3dmaV9tb25feG1pdGAgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmNgLiBSaWdodCwgdGhhdCdzIHRoZSBkcml2ZXIgZm9yIHRoZSBNaWNyb2NoaXAgV0lMQzEwMDAgd2lyZWxlc3MgY2hpcHMuIE15IGZpcnN0IHF1ZXN0aW9uIGlzIGFsd2F5cyB3aGV0aGVyIHRoaXMgZHJpdmVyIGlzIGV2ZW4gKnJlYWNoYWJsZSogaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gVGhlc2UgaGFyZHdhcmUtc3BlY2lmaWMgd2lyZWxlc3MgZHJpdmVycywgbGlrZSB0aGUgd2lsYzEwMDAsIHVzdWFsbHkgZGVwZW5kIG9uIHRoZSBwaHlzaWNhbCBoYXJkd2FyZSBiZWluZyBwcmVzZW50LCB3aGljaCBwb3NlcyBhIGh1Z2UgaHVyZGxlIGZvciBmdXp6aW5nIGFuZCB0ZXN0aW5nLlxuXG5JIG5lZWQgdG8gcXVpY2tseSBmaWd1cmUgb3V0IGlmIHRoaXMgaXMgc29tZSBraW5kIG9mIHNvZnR3YXJlLWVtdWxhdGVkIHZlcnNpb24gb2YgdGhlIGhhcmR3YXJlLCBvciBpZiB0aGVyZSdzIGFueSBjbGV2ZXIgd2F5IHRvIG1ha2UgaXQgd29yayB3aXRob3V0IHRoZSBhY3R1YWwgY2hpcC4gSSByZW1lbWJlciBzeXprYWxsZXIgaGFzIHNvbWUgcGFja2V0IGluamVjdGlvbiBjYXBhYmlsaXRpZXMgZm9yIG5ldCBkZXZpY2VzLCBidXQgdGhhdCB3b24ndCBoZWxwIGlmIHRoZSBkZXZpY2UgaXRzZWxmIGNhbid0IGV2ZW4gYmUgaW5zdGFudGlhdGVkIGluIHRoZSBmaXJzdCBwbGFjZSwgb3IgYm91bmQgdG8gYSBuZXR3b3JrIG5hbWVzcGFjZS4gU28sIGJlZm9yZSBJIGdvIGRvd24gdGhhdCByYWJiaXQgaG9sZSwgSSBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoaXMgZHJpdmVyLiBMZXQgbWUgZGlnIGludG8gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9LY29uZmlnYC4gSG9wZWZ1bGx5LCB0aGF0IHdpbGwgZ2l2ZSBtZSBzb21lIGNsdWVzIGFzIHRvIHRoZSBkcml2ZXIncyBkZXBlbmRlbmNpZXMgYW5kIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjg0NCwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3MiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA3OjI2Ljk5NDY2MDU2WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA0NDEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDEwMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG4gICAyOlxcdGNvbmZpZyBXSUxDMTAwMFxcbiAgIDM6XFx0XFx0dHJpc3RhdGVcXG4gICA0OlxcdFxcdGhlbHBcXG4gICA1OlxcdFxcdCAgQWRkIHN1cHBvcnQgZm9yIHRoZSBBdG1lbCBXSUxDMTAwMCA4MDIuMTEgYi9nL24gU29DLlxcbiAgIDY6XFx0XFx0ICBUaGlzIHByb3ZpZGVzIFdpLUZJIG92ZXIgYW4gU0RJTyBvciBTUEkgaW50ZXJmYWNlLCBhbmRcXG4gICA3OlxcdFxcdCAgaXMgdXN1YWxseSBmb3VuZCBpbiBJb1QgZGV2aWNlcy5cXG4gICA4OlxcdFxcbiAgIDk6XFx0XFx0ICBUaGlzIG1vZHVsZSBvbmx5IHN1cHBvcnQgSUVFRSA4MDIuMTFuIFdpRmkuXFxuICAxMDpcXHRcXG4gIDExOlxcdGNvbmZpZyBXSUxDMTAwMF9TRElPXFxuICAxMjpcXHRcXHR0cmlzdGF0ZSBcXFwiQXRtZWwgV0lMQzEwMDAgU0RJTyAoV2lGaSBvbmx5KVxcXCJcXG4gIDEzOlxcdFxcdGRlcGVuZHMgb24gQ0ZHODAyMTEgXFx1MDAyNlxcdTAwMjYgSU5FVCBcXHUwMDI2XFx1MDAyNiBNTUNcXG4gIDE0OlxcdFxcdHNlbGVjdCBXSUxDMTAwMFxcbiAgMTU6XFx0XFx0aGVscFxcbiAgMTY6XFx0XFx0ICBUaGlzIG1vZHVsZSBhZGRzIHN1cHBvcnQgZm9yIHRoZSBTRElPIGludGVyZmFjZSBvZiBhZGFwdGVycyB1c2luZ1xcbiAgMTc6XFx0XFx0ICBXSUxDMTAwMCBjaGlwc2V0LiBUaGUgQXRtZWwgV0lMQzEwMDAgU0RJTyBpcyBhIGZ1bGwgc3BlZWQgaW50ZXJmYWNlLlxcbiAgMTg6XFx0XFx0ICBJdCBtZWV0cyBTRElPIGNhcmQgc3BlY2lmaWNhdGlvbiB2ZXJzaW9uIDIuMC4gVGhlIGludGVyZmFjZSBzdXBwb3J0c1xcbiAgMTk6XFx0XFx0ICB0aGUgMS1iaXQvNC1iaXQgU0QgdHJhbnNmZXIgbW9kZSBhdCB0aGUgY2xvY2sgcmFuZ2Ugb2YgMC01MCBNSHouXFxuICAyMDpcXHRcXHQgIFRoZSBob3N0IGNhbiB1c2UgdGhpcyBpbnRlcmZhY2UgdG8gcmVhZCBhbmQgd3JpdGUgZnJvbSBhbnkgcmVnaXN0ZXJcXG4gIDIxOlxcdFxcdCAgd2l0aGluIHRoZSBjaGlwIGFzIHdlbGwgYXMgY29uZmlndXJlIHRoZSBXSUxDMTAwMCBmb3IgZGF0YSBETUEuXFxuICAyMjpcXHRcXHQgIFRvIHVzZSB0aGlzIGludGVyZmFjZSwgcGluOSAoU0RJT19TUElfQ0ZHKSBtdXN0IGJlIGdyb3VuZGVkLiBTZWxlY3RcXG4gIDIzOlxcdFxcdCAgdGhpcyBpZiB5b3VyIHBsYXRmb3JtIGlzIHVzaW5nIHRoZSBTRElPIGJ1cy5cXG4gIDI0OlxcdFxcbiAgMjU6XFx0Y29uZmlnIFdJTEMxMDAwX1NQSVxcbiAgMjY6XFx0XFx0dHJpc3RhdGUgXFxcIkF0bWVsIFdJTEMxMDAwIFNQSSAoV2lGaSBvbmx5KVxcXCJcXG4gIDI3OlxcdFxcdGRlcGVuZHMgb24gQ0ZHODAyMTEgXFx1MDAyNlxcdTAwMjYgSU5FVCBcXHUwMDI2XFx1MDAyNiBTUElcXG4gIDI4OlxcdFxcdHNlbGVjdCBXSUxDMTAwMFxcbiAgMjk6XFx0XFx0c2VsZWN0IENSQzdcXG4gIDMwOlxcdFxcdHNlbGVjdCBDUkNfSVRVX1RcXG4gIDMxOlxcdFxcdGhlbHBcXG4gIDMyOlxcdFxcdCAgVGhpcyBtb2R1bGUgYWRkcyBzdXBwb3J0IGZvciB0aGUgU1BJIGludGVyZmFjZSBvZiBhZGFwdGVycyB1c2luZ1xcbiAgMzM6XFx0XFx0ICBXSUxDMTAwMCBjaGlwc2V0LiBUaGUgQXRtZWwgV0lMQzEwMDAgaGFzIGEgU2VyaWFsIFBlcmlwaGVyYWxcXG4gIDM0OlxcdFxcdCAgSW50ZXJmYWNlIChTUEkpIHRoYXQgb3BlcmF0ZXMgYXMgYSBTUEkgc2xhdmUuIFRoaXMgU1BJIGludGVyZmFjZSBjYW5cXG4gIDM1OlxcdFxcdCAgYmUgdXNlZCBmb3IgY29udHJvbCBhbmQgZm9yIHNlcmlhbCBJL08gb2YgODAyLjExIGRhdGEuIFRoZSBTUEkgaXMgYVxcbiAgMzY6XFx0XFx0ICBmdWxsLWR1cGxleCBzbGF2ZSBzeW5jaHJvbm91cyBzZXJpYWwgaW50ZXJmYWNlIHRoYXQgaXMgYXZhaWxhYmxlXFxuICAzNzpcXHRcXHQgIGltbWVkaWF0ZWx5IGZvbGxvd2luZyByZXNldCB3aGVuIHBpbiA5IChTRElPX1NQSV9DRkcpIGlzIHRpZWQgdG9cXG4gIDM4OlxcdFxcdCAgVkRESU8uIFNlbGVjdCB0aGlzIGlmIHlvdXIgcGxhdGZvcm0gaXMgdXNpbmcgdGhlIFNQSSBidXMuXFxuICAzOTpcXHRcXG4gIDQwOlxcdGNvbmZpZyBXSUxDMTAwMF9IV19PT0JfSU5UUlxcbiAgNDE6XFx0XFx0Ym9vbCBcXFwiV0lMQzEwMDAgb3V0IG9mIGJhbmQgaW50ZXJydXB0XFxcIlxcbiAgNDI6XFx0XFx0ZGVwZW5kcyBvbiBXSUxDMTAwMF9TRElPXFxuICA0MzpcXHRcXHRoZWxwXFxuICA0NDpcXHRcXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgb3V0LW9mLWJhbmQgaW50ZXJydXB0IHN1cHBvcnQgZm9yIHRoZSBXSUxDMTAwMFxcbiAgNDU6XFx0XFx0ICBjaGlwc2V0LiBUaGlzIE9PQiBpbnRlcnJ1cHQgaXMgaW50ZW5kZWQgdG8gcHJvdmlkZSBhIGZhc3RlciBpbnRlcnJ1cHRcXG4gIDQ2OlxcdFxcdCAgbWVjaGFuaXNtIGZvciBTRElPIGhvc3QgY29udHJvbGxlcnMgdGhhdCBkb24ndCBzdXBwb3J0IFNESU8gaW50ZXJydXB0LlxcbiAgNDc6XFx0XFx0ICBTZWxlY3QgdGhpcyBvcHRpb24gSWYgdGhlIFNESU8gaG9zdCBjb250cm9sbGVyIGluIHlvdXIgcGxhdGZvcm1cXG4gIDQ4OlxcdFxcdCAgZG9lc24ndCBzdXBwb3J0IFNESU8gdGltZSBkaXZpc2lvbiBpbnRlcnJ1cHQuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA3OjI2Ljk5NDc2NzI2WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTY3NTEzMDU3NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBBdG1lbCBXSUxDMTAwMCBEcml2ZXIgaW4gUUVNVSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgQXRtZWwgV0lMQzEwMDAgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZm9yIFNESU8vU1BJLiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzLCBjYW4gSSBpbnN0YW50aWF0ZSB0aGlzIHRoaW5nIHdpdGhpbiBhIFFFTVUgZW52aXJvbm1lbnQ/IEdlbmVyYWxseSwgSSdkIGV4cGVjdCBTRElPIGFuZCBTUEkgZGV2aWNlcyB0byBiZSB0cmlja3kg4oCTIHR5cGljYWxseSwgeW91IG5lZWQgdG8gbW9jayB0aGVtLCB3aGljaCBpcyBwb3NzaWJsZSwgYnV0IHVzdWFsbHksIHRoYXQgbWVhbnMgcGh5c2ljYWwgaGFyZHdhcmUgb3IgdmVyeSBzcGVjaWZpYyBib2FyZCBlbXVsYXRpb24uXG5cbldhaXQgYSBzZWNvbmQsIHRob3VnaC4uLiBpc24ndCB0aGVyZSBzb21ldGhpbmcgYWJvdXQgc3l6a2FsbGVyPyBZZWFoLCBpdCBzdXBwb3J0cyBpbmplY3RpbmcgZGV2aWNlcyB2aWEgYG1hYzgwMjExX2h3c2ltYCwgYnV0IHRoaXMgaXMgYSAqc3BlY2lmaWMqIGRyaXZlciwgdGhlIFdJTEMxMDAwLiBTbyBob3cncyB0aGlzIGdvaW5nIHRvIHdvcms/XG5cbkhvbGQgb24sIEkgc2VlIGEgc3l6a2FsbGVyIHJlcG9ydCwgXCJzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcIi4gVGhhdCdzIGludGVyZXN0aW5nLCB0aGUgYXV0aG9yIGlzIGlkZW50aWZpZWQgYXMgc3l6LWNsdXN0ZXIuIEJ1dCB0aGVuLCB0aGUgY29tbWl0IHNheXMgdGhlIHBhdGNoIGlzICp1bmRlciByZXZpZXcqLCB5ZXQgc3l6a2FsbGVyIGZvdW5kIGEgYnVnPyBUaGF0IHNlZW1zIGNvbnRyYWRpY3RvcnkuIExldCdzIHNlZSBpZiBzeXprYWxsZXIgY2FuIGV2ZW4gKnJlYWNoKiB0aGlzIGRyaXZlci5cblxuSG1tLCBzeXprYWxsZXIgKmRvZXMqIGhhdmUgbWV0aG9kcyBmb3IgY3JlYXRpbmcgbmV0IGRldmljZXMuIE1heWJlIHRoZSBXSUxDMTAwMCBkcml2ZXIgcmVnaXN0ZXJzIGEgbmV0IGRldmljZT8gSWYgc28sIGNvdWxkIEkgY3JlYXRlIGl0IHVzaW5nIG5ldGxpbmsgY29tbWFuZHMsIGxpa2UgYGlwIGxpbmsgYWRkIHR5cGUgLi4uYD8gT3IgaXMgaXQgcGVyaGFwcyBhIHZpcnR1YWwgZGV2aWNlP1xuXG5Pa2F5LCBsZXQgbWUgY2hlY2sgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uY2AuIEknbGwgc3RhcnQgd2l0aCBgd2lsY193ZmlfbW9uX3htaXRgIGFuZCBzZWUgd2hhdCBpdCdzIGRvaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MjEzLCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjU4LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDc6MzIuNjY5OTAwNDc0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyOTA4NTcxOTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwid2lsY193ZmlfbW9uX3htaXRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jPTExNT1zdGF0aWMgaW50IG1vbl9tZ210X3R4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGNvbnN0IHU4ICpidWYsIHNpemVfdCBsZW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMTQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYzoxNDI6c3RhdGljIG5ldGRldl90eF90IHdpbGNfd2ZpX21vbl94bWl0KHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jLTE0My1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmM9MjMyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgd2lsY193ZmlfbmV0ZGV2X29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmM6MjMzOlxcdC5uZG9fc3RhcnRfeG1pdCAgICAgICAgID0gd2lsY193ZmlfbW9uX3htaXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jLTIzNC1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDc6MzUuOTYwNzYzNjQ4WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzAzMDI1MTY1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkRpdmluZyBpbnRvIHRoZSBOZXR3b3JrIERyaXZlcidzIFRyYW5zbWlzc2lvbiBQYXRoKipcblxuUmlnaHQsIHNvIEknbSBsb29raW5nIGF0IGBuZG9fc3RhcnRfeG1pdGAuIFRoYXQncyB0aGUgZnVuY3Rpb24gY2FsbGVkIHdpdGhpbiB0aGUgYHdpbGNfd2ZpX25ldGRldl9vcHNgIHN0cnVjdHVyZSB0byBoYW5kbGUgdHJhbnNtaXNzaW9uIGZyb20gdGhlIHdpcmVsZXNzIGNhcmQuIFRoYXQncyBhIGtleSBlbnRyeSBwb2ludCwgdGhlIGNyaXRpY2FsIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIGEgcGFja2V0IG5lZWRzIHRvIGdvIG91dCBvdmVyIHRoZSBhaXIuIEJ1dCwgZmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBsYXJnZXIgY29udGV4dC4gSG93IGlzIHRoaXMgbmV0d29yayBkZXZpY2UsIHRoZSB0aGluZyB0aGF0IGhvdXNlcyBhbGwgdGhlc2Ugb3BlcmF0aW9ucywgYWN0dWFsbHkgY3JlYXRlZCBpbiB0aGUgZmlyc3QgcGxhY2U/IFdoZXJlIGRvZXMgYHdpbGNfd2ZpX25ldGRldl9vcHNgIGdldCBwb3B1bGF0ZWQ/IElzIGl0IGR1cmluZyB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1vZHVsZSwgd2hlbiB0aGUgZGV2aWNlIHJlZ2lzdGVycyB3aXRoIHRoZSBrZXJuZWwsIG9yIHNvbWUgb3RoZXIgcGFydCBvZiB0aGUgYm9vdCBwcm9jZXNzPyBLbm93aW5nIHRoaXMgc2hvdWxkIGdpdmUgbWUgYmV0dGVyIGluc2lnaHQgaW50byB0aGUgd2hvbGUgZHJpdmVyJ3MgaW5pdGlhbGl6YXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUxNDIsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowNzozOC45OTEwMTgwNjdaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjI0ODA4MTAzMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ3aWxjX3dmaV9uZXRkZXZfb3BzXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYz0xNDI9c3RhdGljIG5ldGRldl90eF90IHdpbGNfd2ZpX21vbl94bWl0KHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMjMxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYzoyMzI6c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyB3aWxjX3dmaV9uZXRkZXZfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYy0yMzMtXFx0Lm5kb19zdGFydF94bWl0ICAgICAgICAgPSB3aWxjX3dmaV9tb25feG1pdCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYz0yMzc9c3RydWN0IG5ldF9kZXZpY2UgKndpbGNfd2ZpX2luaXRfbW9uX2ludGVyZmFjZShzdHJ1Y3Qgd2lsYyAqd2wsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMjUyLVxcdHN0cnNjcHkod2wtXFx1MDAzZW1vbml0b3JfZGV2LVxcdTAwM2VuYW1lLCBuYW1lLCBJRk5BTVNJWik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jOjI1MzpcXHR3bC1cXHUwMDNlbW9uaXRvcl9kZXYtXFx1MDAzZW5ldGRldl9vcHMgPSBcXHUwMDI2d2lsY193ZmlfbmV0ZGV2X29wcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMjU0LVxcdHdsLVxcdTAwM2Vtb25pdG9yX2Rldi1cXHUwMDNlbmVlZHNfZnJlZV9uZXRkZXYgPSB0cnVlO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowNzo0MS4yMzkxMDMyNzhaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTYxNzA1MDExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBgd2lsY193ZmlfaW5pdF9tb25faW50ZXJmYWNlYCBGdW5jdGlvbioqXG5cbkFscmlnaHQsIHNvIGB3aWxjX3dmaV9pbml0X21vbl9pbnRlcmZhY2VgIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyB0aGUgbmV0d29yayBkZXZpY2UsIHRoZSBjb3JlIG9mIHRoZSBtb25pdG9yaW5nIGludGVyZmFjZS4gTXkgZmlyc3QgaW5zdGluY3QsIGFzIGFsd2F5cywgaXMgdG8gdW5kZXJzdGFuZCBpdHMgcGxhY2UgaW4gdGhlIHN5c3RlbS4gVGhlIG5leHQgc3RlcCBpcyBjbGVhcjogbGV0J3MgdHJhY2UgaXRzIGNhbGwgZ3JhcGguIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIGFuZCBob3cgdGhpcyBmdW5jdGlvbiBpcyBpbnZva2VkLiBLbm93aW5nIHRoZSBjYWxsaW5nIGNvbnRleHQgaXMgY3J1Y2lhbC4gV2hhdCB0cmlnZ2VycyB0aGlzIGNyZWF0aW9uPyBJcyBpdCBvbiBtb2R1bGUgbG9hZCwgc3BlY2lmaWMgZXZlbnRzLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseT8gQSBxdWljayBjb2RlIGRpdmUgc2hvdWxkIHJldmVhbCB0aGUgcmVsZXZhbnQgY2FsbCBzaXRlcy4gVGhlIGdvYWwgaXMgdG8gZnVsbHkgZ3Jhc3AgdGhlIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIGFuZCBkZXBlbmRlbmNpZXMgZm9yIHRoaXMgcGFydGljdWxhciBtb25pdG9yaW5nIGludGVyZmFjZS4gVW5kZXJzdGFuZGluZyB0aGUgaW5pdGlhbCBjb250ZXh0IGlzIHZpdGFsIHRvIHVuZGVyc3RhbmQgdGhlIG1vbml0b3JpbmcgaW50ZXJmYWNlJ3MgbGlmZWN5Y2xlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NzQ4LCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDc6NDQuNDAwODEyNjA5WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjg4MDM3MjkyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIndpbGNfd2ZpX2luaXRfbW9uX2ludGVyZmFjZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz0xNTIyPXN0YXRpYyBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICphZGRfdmlydHVhbF9pbnRmKHN0cnVjdCB3aXBoeSAqd2lwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xNTUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjE1NTI6XFx0XFx0bmRldiA9IHdpbGNfd2ZpX2luaXRfbW9uX2ludGVyZmFjZSh3bCwgbmFtZSwgdmlmLVxcdTAwM2VuZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xNTUzLVxcdFxcdGlmIChuZGV2KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuaD0xNz12b2lkIHdpbGNfd2ZpX2RlaW5pdF9tb25faW50ZXJmYWNlKHN0cnVjdCB3aWxjICp3bCwgYm9vbCBydG5sX2xvY2tlZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmg6MTg6c3RydWN0IG5ldF9kZXZpY2UgKndpbGNfd2ZpX2luaXRfbW9uX2ludGVyZmFjZShzdHJ1Y3Qgd2lsYyAqd2wsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmgtMTktXFx0XFx0XFx0XFx0XFx0ICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmM9MjMyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgd2lsY193ZmlfbmV0ZGV2X29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYy0yMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jOjIzNzpzdHJ1Y3QgbmV0X2RldmljZSAqd2lsY193ZmlfaW5pdF9tb25faW50ZXJmYWNlKHN0cnVjdCB3aWxjICp3bCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMjM4LVxcdFxcdFxcdFxcdFxcdCAgICAgICBjb25zdCBjaGFyICpuYW1lLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowNzo0Ni42ODg4NTcwNDFaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njc5ODg3OTgyMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGBhZGRfdmlydHVhbF9pbnRmYCBDYWxsIFBhdGgqKlxuXG5Pa2F5LCBzbyBgYWRkX3ZpcnR1YWxfaW50ZmAgaXMgYSBgY2ZnODAyMTFgIGNhbGxiYWNrLiBUaGF0IG1lYW5zIGlmIHRoZSBkZXZpY2UgaXMgcHJlc2VudCwgc3l6a2FsbGVyICpjb3VsZCogdXNlIG5ldGxpbmsgKGBubDgwMjExYCkgdG8gY3JlYXRlIGEgbW9uaXRvciBpbnRlcmZhY2UgYW5kIHRoZW4gaW5qZWN0IHBhY2tldHMsIHdoaWNoIHNob3VsZCBsZWFkIHRvIGB3aWxjX3dmaV9tb25feG1pdGAuIFRoZSBrZXkgcXVlc3Rpb24gaXM6IGlzIHRoZSBgd2lsYzEwMDBgIGRldmljZSBldmVuIHByZXNlbnQgaW4gdGhpcyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD9cblxuVGhpcyBkcml2ZXIncyBmb3IgYW4gU0RJTy9TUEkgZGV2aWNlLCB3aGljaCByYWlzZXMgYSByZWQgZmxhZy4gVW5sZXNzIHRoZXJlJ3Mgc29tZSBraW5kIG9mIG1vY2tpbmcgbWVjaGFuaXNtLCB0aGUgZHJpdmVyICp3b24ndCogcHJvYmUsIGFuZCB0aGF0IGBhZGRfdmlydHVhbF9pbnRmYCBmdW5jdGlvbiBjYWxsIGlzIGdvaW5nIHRvIGJlIHVucmVhY2hhYmxlIGJlY2F1c2UgdGhlIGRyaXZlciBkb2Vzbid0IHJlZ2lzdGVyIGEgV2ktRmkgcGh5c2ljYWwgZGV2aWNlIChgd2lwaHlgKS4gU28sIEkgbmVlZCB0byBpbnZlc3RpZ2F0ZSBhbnkgcG90ZW50aWFsIG1vY2tpbmcgY2FwYWJpbGl0aWVzIG9yIHNvZnR3YXJlIGJ1cyBwcm9iaW5nIHBvc3NpYmlsaXRpZXMuXG5cblNESU8gYW5kIFNQSSBkZXZpY2VzIGFyZSB0eXBpY2FsbHkgYWJzZW50IGluIGEgc3RhbmRhcmQgeDg2IFFFTVUgc2V0dXAsIHVubGVzcyBleHBsaWNpdGx5IGNvbmZpZ3VyZWQsIGFuZCBzeXprYWxsZXIsIHRvIG15IGtub3dsZWRnZSwgZG9lc24ndCBoYXZlIGEgZ2VuZXJpYyB3YXkgdG8gbW9jayB0aGVzZS4gVW5sZXNzLi4uIGlzIHRoZXJlIGEgc3l6a2FsbGVyIHBzZXVkby1kZXZpY2UsIG9yIGlzIGl0IGEgVVNCIGRldmljZSBtYXNxdWVyYWRpbmc/IExldCdzIGNoZWNrLi4uIG5vLCB0aGUgS2NvbmZpZyBvcHRpb25zIHNwZWNpZnkgU0RJTyBhbmQgU1BJLlxuXG5SaWdodCwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgc3l6a2FsbGVyJ3MgZGV2aWNlIGluamVjdGlvbiBjYXBhYmlsaXRpZXMuIENhbiBzeXprYWxsZXIgcHJvYmUgU1BJIG9yIFNESU8gZGV2aWNlcywgcGVyaW9kPyBJIGtub3cgaXQgaGFzIHNvbWUgVVNCIGFuZCBQQ0kgZGV2aWNlIGluamVjdGlvbiBmZWF0dXJlcywgYnV0IEkgZG9uJ3QgcmVjYWxsIHNlZWluZyBhbnkgZ2VuZXJpYyBzdXBwb3J0IGZvciBTRElPIG9yIFNQSS5cblxuSG9sZCBvbi4uLiBwZXJoYXBzIHRoZXJlJ3MgYSB3b3JrYXJvdW5kPyBJIG5lZWQgdG8gZXhwbG9yZSBpZiB0aGVyZSdzIGFueSBvdGhlciBhdmVudWUgdG8gdHJpZ2dlciB0aGlzIGJlaGF2aW9yLiBMZXQgbWUgc2VlIGlmIHRoZXJlIGFyZSBhbnkgZXhpc3Rpbmcgc3l6a2FsbGVyIGRlc2NyaXB0aW9ucyBmb3Igd2lsYzEwMDAuIFRoYXQncyB0aGUgbG9naWNhbCBuZXh0IHN0ZXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY0NzUsIk91dHB1dFRva2VucyI6MTYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDc6NTMuNDg3NzQwNzMxWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzU2NTc5NTc3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIndpbGNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2MTIwIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG4ubWFpbG1hcD00OTM9S3J6eXN6dG9mIEtvemxvd3NraSBcXHUwMDNja3J6a0BrZXJuZWwub3JnXFx1MDAzZSBcXHUwMDNja3J6eXN6dG9mLmtvemxvd3NraUBsaW5hcm8ub3JnXFx1MDAzZVxcbi5tYWlsbWFwOjQ5NDpLcnp5c3p0b2YgV2lsY3p5xYRza2kgXFx1MDAzY2t3aWxjenluc2tpQGtlcm5lbC5vcmdcXHUwMDNlIFxcdTAwM2Nrcnp5c3p0b2Yud2lsY3p5bnNraUBsaW51eC5jb21cXHUwMDNlXFxuLm1haWxtYXA6NDk1OktyenlzenRvZiBXaWxjennFhHNraSBcXHUwMDNja3dpbGN6eW5za2lAa2VybmVsLm9yZ1xcdTAwM2UgXFx1MDAzY2t3QGxpbnV4LmNvbVxcdTAwM2VcXG4ubWFpbG1hcC00OTYtS3NoaXRpeiBHb2RhcmEgXFx1MDAzY3F1aWNfa2dvZGFyYUBxdWljaW5jLmNvbVxcdTAwM2UgXFx1MDAzY2tnb2RhcmFAY29kZWF1cm9yYS5vcmdcXHUwMDNlXFxuLS1cXG4ubWFpbG1hcD01Njc9TWF0IE1hcnRpbmVhdSBcXHUwMDNjbWFydGluZWF1QGtlcm5lbC5vcmdcXHUwMDNlIFxcdTAwM2NtYXRoZXdtQGNvZGVhdXJvcmEub3JnXFx1MDAzZVxcbi5tYWlsbWFwOjU2ODpNYXR0aGV3IFdpbGNveCBcXHUwMDNjd2lsbHlAaW5mcmFkZWFkLm9yZ1xcdTAwM2UgXFx1MDAzY21hdHRoZXcuci53aWxjb3hAaW50ZWwuY29tXFx1MDAzZVxcbi5tYWlsbWFwLTU2OS1NYXR0aGV3IFdpbGNveCBcXHUwMDNjd2lsbHlAaW5mcmFkZWFkLm9yZ1xcdTAwM2UgXFx1MDAzY21hdHRoZXdAd2lsLmN4XFx1MDAzZVxcbi5tYWlsbWFwOjU3MDpNYXR0aGV3IFdpbGNveCBcXHUwMDNjd2lsbHlAaW5mcmFkZWFkLm9yZ1xcdTAwM2UgXFx1MDAzY21hd2lsY294QGxpbnV4b25oeXBlcnYuY29tXFx1MDAzZVxcbi5tYWlsbWFwOjU3MTpNYXR0aGV3IFdpbGNveCBcXHUwMDNjd2lsbHlAaW5mcmFkZWFkLm9yZ1xcdTAwM2UgXFx1MDAzY21hd2lsY294QG1pY3Jvc29mdC5jb21cXHUwMDNlXFxuLm1haWxtYXAtNTcyLU1hdHRoZXcgV2lsY294IFxcdTAwM2N3aWxseUBpbmZyYWRlYWQub3JnXFx1MDAzZSBcXHUwMDNjd2lsbHlAZGViaWFuLm9yZ1xcdTAwM2VcXG4tLVxcbi5tYWlsbWFwPTg1OD1TdmVuIFBldGVyIFxcdTAwM2NzdmVuQGtlcm5lbC5vcmdcXHUwMDNlIFxcdTAwM2NzdmVuQHN2ZW5wZXRlci5kZXZcXHUwMDNlXFxuLm1haWxtYXA6ODU5OlN6eW1vbiBXaWxjemVrIFxcdTAwM2Nzd2lsY3play5seEBnbWFpbC5jb21cXHUwMDNlIFxcdTAwM2Nzenltb253aWxjemVrQGdteC5jb21cXHUwMDNlXFxuLm1haWxtYXAtODYwLVRha2FzaGkgWU9TSElJIFxcdTAwM2N0YWthc2hpLnlvc2hpaS56akByZW5lc2FzLmNvbVxcdTAwM2VcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3RpbmcvZGVidWdmcy13aWxjby1lYzoxOldoYXQ6XFx0XFx0L3N5cy9rZXJuZWwvZGVidWcvd2lsY29fZWMvaDFfZ3Bpb1xcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3RpbmcvZGVidWdmcy13aWxjby1lYy0yLURhdGU6XFx0XFx0QXByaWwgMjAxOVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjPTQ9RGVzY3JpcHRpb246XFxuLS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWMtMTMtXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjOjE0OldoYXQ6XFx0XFx0L3N5cy9rZXJuZWwvZGVidWcvd2lsY29fZWMvcmF3XFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjLTE1LURhdGU6XFx0XFx0SmFudWFyeSAyMDE5XFxuLS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWM9MTc9RGVzY3JpcHRpb246XFxuLS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWMtMjQtXFx0XFx0Rm9yIHdyaXRpbmcsIGJ5dGVzIDAtMSBpbmRpY2F0ZSB0aGUgbWVzc2FnZSB0eXBlLCBvbmUgb2YgZW51bVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3RpbmcvZGVidWdmcy13aWxjby1lYzoyNTpcXHRcXHR3aWxjb19lY19tc2dfdHlwZS4gQnl0ZSAyKyBjb25zaXN0IG9mIHRoZSBkYXRhIHBhc3NlZCBpbiB0aGVcXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWMtMjYtXFx0XFx0cmVxdWVzdCwgc3RhcnRpbmcgYXQgTUJPWFswXS4gQXQgbGVhc3QgdGhyZWUgYnl0ZXMgYXJlIHJlcXVpcmVkXFxuLS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWMtMzQtXFx0XFx0ICAgIC8vIE1CT1ggPSBbMzgsIDAwLCAwMywgMDBdXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjOjM1OlxcdFxcdCAgICAkIGVjaG8gMDAgZjAgMzggMDAgMDMgMDAgXFx1MDAzZSAvc3lzL2tlcm5lbC9kZWJ1Zy93aWxjb19lYy9yYXdcXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2RlYnVnZnMtd2lsY28tZWMtMzYtXFx0XFx0ICAgIC8vIFZpZXcgdGhlIHJlc3VsdC4gVGhlIGRlY29kZWQgQVNDSUkgcmVzdWx0IFxcXCIxMi8yMS8xOFxcXCIgaXNcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3RpbmcvZGVidWdmcy13aWxjby1lYy0zOC1cXHRcXHQgICAgLy8gQ29ycmVzcG9uZHMgd2l0aCBNQk9YID0gWzAwLCAwMCwgMzEsIDMyLCAyZiwgMzIsIDMxLCAzOCwgLi4uXVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3RpbmcvZGVidWdmcy13aWxjby1lYzozOTpcXHRcXHQgICAgJCBjYXQgL3N5cy9rZXJuZWwvZGVidWcvd2lsY29fZWMvcmF3XFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9kZWJ1Z2ZzLXdpbGNvLWVjLTQwLVxcdFxcdCAgICAwMCAwMCAzMSAzMiAyZiAzMiAzMSAyZiAzMSAzOCAwMCAzOCAwMCAwMSAwMCAyZiAwMCAgLi4xMi8yMS8xOC44Li4uXFxuLS1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLXBvd2VyLXdpbGNvOjE6V2hhdDpcXHRcXHQvc3lzL2NsYXNzL3Bvd2VyX3N1cHBseS93aWxjby1jaGFyZ2VyL2NoYXJnZV90eXBlXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1wb3dlci13aWxjby0yLURhdGU6XFx0XFx0QXByaWwgMjAxOVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1wb3dlci13aWxjbz00PURlc2NyaXB0aW9uOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1wb3dlci13aWxjby0yNy1cXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLXBvd2VyLXdpbGNvOjI4OldoYXQ6XFx0XFx0L3N5cy9jbGFzcy9wb3dlcl9zdXBwbHkvd2lsY28tY2hhcmdlci9jaGFyZ2VfY29udHJvbF9zdGFydF90aHJlc2hvbGRcXG5Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLXBvd2VyLXdpbGNvLTI5LURhdGU6XFx0XFx0QXByaWwgMjAxOVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1wb3dlci13aWxjbz0zMT1EZXNjcmlwdGlvbjpcXG4tLVxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtcG93ZXItd2lsY28tMzQtXFxuRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1wb3dlci13aWxjbzozNTpXaGF0OlxcdFxcdC9zeXMvY2xhc3MvcG93ZXJfc3VwcGx5L3dpbGNvLWNoYXJnZXIvY2hhcmdlX2NvbnRyb2xfZW5kX3RocmVzaG9sZFxcbkRvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtcG93ZXItd2lsY28tMzYtRGF0ZTpcXHRcXHRBcHJpbCAyMDE5XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZmlybXdhcmUvdGhlYWQsdGgxNTIwLWFvbi55YW1sPTIxPW1haW50YWluZXJzOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9maXJtd2FyZS90aGVhZCx0aDE1MjAtYW9uLnlhbWw6MjI6ICAtIE1pY2hhbCBXaWxjenluc2tpIFxcdTAwM2NtLndpbGN6eW5za2lAc2Ftc3VuZy5jb21cXHUwMDNlXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Zpcm13YXJlL3RoZWFkLHRoMTUyMC1hb24ueWFtbC0yMy1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tYWlsYm94L3RoZWFkLHRoMTUyMC1tYm94LnlhbWw9MTU9bWFpbnRhaW5lcnM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21haWxib3gvdGhlYWQsdGgxNTIwLW1ib3gueWFtbDoxNjogIC0gTWljaGFsIFdpbGN6eW5za2kgXFx1MDAzY20ud2lsY3p5bnNraUBzYW1zdW5nLmNvbVxcdTAwM2VcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWFpbGJveC90aGVhZCx0aDE1MjAtbWJveC55YW1sLTE3LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21tYy9tbWMtcHdyc2VxLXNkODc4Ny55YW1sPTEyPXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbW1jL21tYy1wd3JzZXEtc2Q4Nzg3LnlhbWwtMTUtICAgICAgLSBtbWMtcHdyc2VxLXNkODc4N1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tbWMvbW1jLXB3cnNlcS1zZDg3ODcueWFtbDoxNjogICAgICAtIG1tYy1wd3JzZXEtd2lsYzEwMDBcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbW1jL21tYy1wd3JzZXEtc2Q4Nzg3LnlhbWwtMTctXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTMtLS0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw9MTM9ZGVzY3JpcHRpb246XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDoxNDogIFRoZSB3aWxjMTAwMCBjaGlwcyBjYW4gYmUgY29ubmVjdGVkIHZpYSBTUEkgb3IgU0RJTy4gVGhpcyBkb2N1bWVudFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6MTU6ICBkZXNjcmliZXMgdGhlIGJpbmRpbmcgdG8gY29ubmVjdCB3aWxjIGRldmljZXMuXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC0xNi1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sPTE3PXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTIwLSAgICAgIC0gaXRlbXM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDoyMTogICAgICAgICAgLSBjb25zdDogbWljcm9jaGlwLHdpbGMzMDAwXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDoyMjogICAgICAgICAgLSBjb25zdDogbWljcm9jaGlwLHdpbGMxMDAwXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDoyMzogICAgICAtIGNvbnN0OiBtaWNyb2NoaXAsd2lsYzEwMDBcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTI0LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC0zOC0gICAgbWF4SXRlbXM6IDFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sOjM5OiAgICBkZXNjcmlwdGlvbjogVXNlZCBieSB3aWxjMTAwMC1zcGkgdG8gZGV0ZXJtaW5lIHRoZSBHUElPIGxpbmVcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTQwLSAgICAgIGNvbm5lY3RlZCB0byB0aGUgRU5BQkxFIGxpbmUuICBJZiBzcGVjaWZpZWQsIHJlc2V0LWdwaW9zXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTQ3LSAgICBtYXhJdGVtczogMVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6NDg6ICAgIGRlc2NyaXB0aW9uOiBVc2VkIGJ5IHdpbGMxMDAwLXNwaSB0byBkZXRlcm1pbmUgdGhlIEdQSU8gbGluZVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtNDktICAgICAgY29ubmVjdGVkIHRvIHRoZSBSRVNFVCBsaW5lLiAgVGhpcyBzaG91bGQgYmUgZGVjbGFyZWQgYXMgYW5cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw9NjE9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTY4LSAgICAgIHdpZmlAMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDo2OTogICAgICAgIGNvbXBhdGlibGUgPSBcXFwibWljcm9jaGlwLHdpbGMxMDAwXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTcwLSAgICAgICAgc3BpLW1heC1mcmVxdWVuY3kgPSBcXHUwMDNjNDgwMDAwMDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC05MS0gICAgICB3aWZpQDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6OTI6ICAgICAgICBjb21wYXRpYmxlID0gXFxcIm1pY3JvY2hpcCx3aWxjMTAwMFxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC05My0gICAgICAgIHJlZyA9IFxcdTAwM2MwXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wd20vdGhlYWQsdGgxNTIwLXB3bS55YW1sPTk9bWFpbnRhaW5lcnM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3B3bS90aGVhZCx0aDE1MjAtcHdtLnlhbWw6MTA6ICAtIE1pY2hhbCBXaWxjenluc2tpIFxcdTAwM2NtLndpbGN6eW5za2lAc2Ftc3VuZy5jb21cXHUwMDNlXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3B3bS90aGVhZCx0aDE1MjAtcHdtLnlhbWwtMTEtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcmVzZXQvdGhlYWQsdGgxNTIwLXJlc2V0LnlhbWw9MTM9bWFpbnRhaW5lcnM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Jlc2V0L3RoZWFkLHRoMTUyMC1yZXNldC55YW1sOjE0OiAgLSBNaWNoYWwgV2lsY3p5bnNraSBcXHUwMDNjbS53aWxjenluc2tpQHNhbXN1bmcuY29tXFx1MDAzZVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9yZXNldC90aGVhZCx0aDE1MjAtcmVzZXQueWFtbC0xNS1cXG4tLVxcbk1BSU5UQUlORVJTPTIwODIwPU06XFx0TWFuaXZhbm5hbiBTYWRoYXNpdmFtIFxcdTAwM2NtYW5pQGtlcm5lbC5vcmdcXHUwMDNlXFxuTUFJTlRBSU5FUlM6MjA4MjE6TTpcXHRLcnp5c3p0b2YgV2lsY3p5xYRza2kgXFx1MDAzY2t3aWxjenluc2tpQGtlcm5lbC5vcmdcXHUwMDNlXFxuTUFJTlRBSU5FUlMtMjA4MjItUjpcXHRLaXNob24gVmlqYXkgQWJyYWhhbSBJIFxcdTAwM2NraXNob25Aa2VybmVsLm9yZ1xcdTAwM2VcXG4tLVxcbk1BSU5UQUlORVJTPTIwODcxPU06XFx0TG9yZW56byBQaWVyYWxpc2kgXFx1MDAzY2xwaWVyYWxpc2lAa2VybmVsLm9yZ1xcdTAwM2VcXG5NQUlOVEFJTkVSUzoyMDg3MjpNOlxcdEtyenlzenRvZiBXaWxjennFhHNraSBcXHUwMDNja3dpbGN6eW5za2lAa2VybmVsLm9yZ1xcdTAwM2VcXG5NQUlOVEFJTkVSUy0yMDg3My1NOlxcdE1hbml2YW5uYW4gU2FkaGFzaXZhbSBcXHUwMDNjbWFuaUBrZXJuZWwub3JnXFx1MDAzZVxcbi0tXFxuTUFJTlRBSU5FUlM9MjA5MzQ9UjpcXHRCam9ybiBIZWxnYWFzIFxcdTAwM2NiaGVsZ2Fhc0Bnb29nbGUuY29tXFx1MDAzZVxcbk1BSU5UQUlORVJTOjIwOTM1OlI6XFx0S3J6eXN6dG9mIFdpbGN6ecWEc2tpIFxcdTAwM2Nrd2lsY3p5bnNraUBrZXJuZWwub3JnXFx1MDAzZVxcbk1BSU5UQUlORVJTLTIwOTM2LUw6XFx0bGludXgtcGNpQHZnZXIua2VybmVsLm9yZ1xcbi0tXFxuTUFJTlRBSU5FUlM9MjE4NjA9UFdNIFNVQlNZU1RFTSBCSU5ESU5HUyBbUlVTVF1cXG5NQUlOVEFJTkVSUzoyMTg2MTpNOlxcdE1pY2hhbCBXaWxjenluc2tpIFxcdTAwM2NtLndpbGN6eW5za2lAc2Ftc3VuZy5jb21cXHUwMDNlXFxuTUFJTlRBSU5FUlMtMjE4NjItTDpcXHRsaW51eC1wd21Admdlci5rZXJuZWwub3JnXFxuLS1cXG5NQUlOVEFJTkVSUz0yMTg2OD1QV00gU1VCU1lTVEVNIERSSVZFUlMgW1JVU1RdXFxuTUFJTlRBSU5FUlM6MjE4Njk6UjpcXHRNaWNoYWwgV2lsY3p5bnNraSBcXHUwMDNjbS53aWxjenluc2tpQHNhbXN1bmcuY29tXFx1MDAzZVxcbk1BSU5UQUlORVJTLTIxODcwLUY6XFx0ZHJpdmVycy9wd20vKi5yc1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k9NDI9XFx0d2lmaV9wd3JzZXE6IHdpZmlfcHdyc2VxIHtcXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaTo0MzpcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1tYy1wd3JzZXEtd2lsYzEwMDBcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTQ0LVxcdFxcdHJlc2V0LWdwaW9zID0gXFx1MDAzY1xcdTAwMjZwaW9BIFBJTl9QQTI3IEdQSU9fQUNUSVZFX0hJR0hcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTQ1LVxcdFxcdHBvd2VyZG93bi1ncGlvcyA9IFxcdTAwM2NcXHUwMDI2cGlvQSBQSU5fUEEyOSBHUElPX0FDVElWRV9ISUdIXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaTo0NjpcXHRcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfd2lsY19wd3JzZXFcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTQ3LVxcdFxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaT0zNDc9XFx0XFx0Y29uZi1jayB7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS0zNTItXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k6MzUzOlxcdHBpbmN0cmxfd2lsY19kZWZhdWx0OiB3aWxjX2RlZmF1bHQge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTM1NC1cXHRcXHRjb25mLWlycSB7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS0zNTktXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k6MzYwOlxcdHBpbmN0cmxfd2lsY19wd3JzZXE6IHdpbGNfcHdyc2VxIHtcXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS0zNjEtXFx0XFx0Y29uZi1jZS1ucnN0IHtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpPTM3ND1cXHUwMDI2c2RtbWMxIHtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTM4NS1cXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaTozODY6XFx0d2lsYzogd2lmaUAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS0zODctXFx0XFx0cmVnID0gXFx1MDAzYzBcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpOjM4ODpcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1pY3JvY2hpcCx3aWxjMzAwMFxcXCIsIFxcXCJtaWNyb2NoaXAsd2lsYzEwMDBcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTM4OS1cXHRcXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpOjM5MDpcXHRcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfd2lsY19kZWZhdWx0XFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS0zOTEtXFx0XFx0Y2xvY2tzID0gXFx1MDAzY1xcdTAwMjZwbWMgUE1DX1RZUEVfU1lTVEVNIDlcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMl9pY3AuZHRzPTcwNj1cXHUwMDI2cXNwaTEge1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMl9pY3AuZHRzLTcwOC1cXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfcXNwaTFfZGVmYXVsdFxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMl9pY3AuZHRzOjcwOTpcXHRzdGF0dXMgPSBcXFwiZGlzYWJsZWRcXFwiOyAvKiBDb25mbGljdCB3aXRoIHdpbGNfcHdyc2VxLCBmbHgyICovXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMl9pY3AuZHRzLTcxMC1cXG4tLVxcbmRyaXZlcnMvZmlybXdhcmUvdGhlYWQsdGgxNTIwLWFvbi5jLTQtICogQ29weXJpZ2h0IChjKSAyMDI0IFNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuXFxuZHJpdmVycy9maXJtd2FyZS90aGVhZCx0aDE1MjAtYW9uLmM6NTogKiBBdXRob3I6IE1pY2hhbCBXaWxjenluc2tpIFxcdTAwM2NtLndpbGN6eW5za2lAc2Ftc3VuZy5jb21cXHUwMDNlXFxuZHJpdmVycy9maXJtd2FyZS90aGVhZCx0aDE1MjAtYW9uLmMtNi0gKi9cXG4tLVxcbmRyaXZlcnMvZmlybXdhcmUvdGhlYWQsdGgxNTIwLWFvbi5jPTI0NT1FWFBPUlRfU1lNQk9MX0dQTCh0aDE1MjBfYW9uX2RlaW5pdCk7XFxuZHJpdmVycy9maXJtd2FyZS90aGVhZCx0aDE1MjAtYW9uLmMtMjQ2LVxcbmRyaXZlcnMvZmlybXdhcmUvdGhlYWQsdGgxNTIwLWFvbi5jOjI0NzpNT0RVTEVfQVVUSE9SKFxcXCJNaWNoYWwgV2lsY3p5bnNraSBcXHUwMDNjbS53aWxjenluc2tpQHNhbXN1bmcuY29tXFx1MDAzZVxcXCIpO1xcbmRyaXZlcnMvZmlybXdhcmUvdGhlYWQsdGgxNTIwLWFvbi5jLTI0OC1NT0RVTEVfREVTQ1JJUFRJT04oXFxcIlQtSEVBRCBUSDE1MjAgQWx3YXlzLU9uIGZpcm13YXJlIHByb3RvY29sIGxpYnJhcnlcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jPTQ1PXN0YXRpYyB2b2lkIG1tY19wd3JzZXFfc2Q4Nzg3X3Bvd2VyX29mZihzdHJ1Y3QgbW1jX2hvc3QgKmhvc3QpXFxuLS1cXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy01Mi1cXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYzo1MzpzdGF0aWMgdm9pZCBtbWNfcHdyc2VxX3dpbGMxMDAwX3ByZV9wb3dlcl9vbihzdHJ1Y3QgbW1jX2hvc3QgKmhvc3QpXFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmMtNTQte1xcbi0tXFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmMtNjItXFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM6NjM6c3RhdGljIHZvaWQgbW1jX3B3cnNlcV93aWxjMTAwMF9wb3dlcl9vZmYoc3RydWN0IG1tY19ob3N0ICpob3N0KVxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTY0LXtcXG4tLVxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jPTcxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbW1jX3B3cnNlcV9vcHMgbW1jX3B3cnNlcV9zZDg3ODdfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmMtNzUtXFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM6NzY6c3RhdGljIGNvbnN0IHN0cnVjdCBtbWNfcHdyc2VxX29wcyBtbWNfcHdyc2VxX3dpbGMxMDAwX29wcyA9IHtcXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYzo3NzpcXHQucHJlX3Bvd2VyX29uID0gbW1jX3B3cnNlcV93aWxjMTAwMF9wcmVfcG93ZXJfb24sXFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM6Nzg6XFx0LnBvd2VyX29mZiA9IG1tY19wd3JzZXFfd2lsYzEwMDBfcG93ZXJfb2ZmLFxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTc5LX07XFxuLS1cXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYz04MT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtbWNfcHdyc2VxX3NkODc4N19vZl9tYXRjaFtdID0ge1xcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTgyLVxcdHsgLmNvbXBhdGlibGUgPSBcXFwibW1jLXB3cnNlcS1zZDg3ODdcXFwiLCAuZGF0YSA9IFxcdTAwMjZtbWNfcHdyc2VxX3NkODc4N19vcHMgfSxcXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYzo4MzpcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1tYy1wd3JzZXEtd2lsYzEwMDBcXFwiLCAuZGF0YSA9IFxcdTAwMjZtbWNfcHdyc2VxX3dpbGMxMDAwX29wcyB9LFxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTg0LVxcdHsvKiBzZW50aW5lbCAqL30sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvS2NvbmZpZz0xMz1pZiBXTEFOX1ZFTkRPUl9NSUNST0NISVBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvS2NvbmZpZzoxNDpzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC9LY29uZmlnLTE1LWVuZGlmICMgV0xBTl9WRU5ET1JfTUlDUk9DSElQXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX1dJTEMxMDAwKVxcdFxcdCs9IHdpbGMxMDAwL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZToyOm9iai0kKENPTkZJR19XSUxDMTAwMCkgKz0gd2lsYzEwMDAub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS0zLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZTo0OndpbGMxMDAwLW9ianMgOj0gY2ZnODAyMTEubyBuZXRkZXYubyBtb24ubyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlLTUtXFx0XFx0XFx0aGlmLm8gd2xhbl9jZmcubyB3bGFuLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGUtNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6NzpvYmotJChDT05GSUdfV0lMQzEwMDBfU0RJTykgKz0gd2lsYzEwMDAtc2Rpby5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjg6d2lsYzEwMDAtc2Rpby1vYmpzICs9IHNkaW8ub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS05LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZToxMDpvYmotJChDT05GSUdfV0lMQzEwMDBfU1BJKSArPSB3aWxjMTAwMC1zcGkub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZToxMTp3aWxjMTAwMC1zcGktb2JqcyArPSBzcGkub1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9MjA9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdHhyeF9zdHlwZXNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoyMTpcXHR3aWxjX3dmaV9jZmc4MDIxMV9tZ210X3R5cGVzW05VTV9OTDgwMjExX0lGVFlQRVNdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTIyLVxcdFtOTDgwMjExX0lGVFlQRV9TVEFUSU9OXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jPTUyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgd2lwaHlfd293bGFuX3N1cHBvcnQgd293bGFuX3N1cHBvcnQgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo1NzpzdHJ1Y3Qgd2lsY19wMnBfbWdtdF9kYXRhIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01OC1cXHRpbnQgc2l6ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTYxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjYyOnN0cnVjdCB3aWxjX3AycF9wdWJfYWN0X2ZyYW1lIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02My1cXHR1OCBjYXRlZ29yeTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTcxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjcyOnN0cnVjdCB3aWxjX3ZlbmRvcl9zcGVjaWZpY19pZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNzMtXFx0dTggdGFnX251bWJlcjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTc5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjgwOnN0cnVjdCB3aWxjX2F0dHJfZW50cnkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTgxLVxcdHU4ICBhdHRyX3R5cGU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy04NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo4NjpzdHJ1Y3Qgd2lsY19hdHRyX29wZXJfY2gge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTg3LVxcdHU4IGF0dHJfdHlwZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTkzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjk0OnN0cnVjdCB3aWxjX2F0dHJfY2hfbGlzdCB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtOTUtXFx0dTggYXR0cl90eXBlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjEwMTpzdHJ1Y3Qgd2lsY19jaF9saXN0X2VsZW0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTEwMi1cXHR1OCBvcF9jbGFzcztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jPTEwNz1zdGF0aWMgdm9pZCBjZmdfc2Nhbl9yZXN1bHQoZW51bSBzY2FuX2V2ZW50IHNjYW5fZXZlbnQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MTA4OlxcdFxcdFxcdCAgICBzdHJ1Y3Qgd2lsY19yY3ZkX25ldF9pbmZvICppbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjEwOTpcXHRcXHRcXHQgICAgc3RydWN0IHdpbGNfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xMTAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9MTYzPXN0YXRpYyB2b2lkIGNmZ19jb25uZWN0X3Jlc3VsdChlbnVtIGNvbm5fZXZlbnQgY29ubl9kaXNjb25uX2V2dCwgdTggbWFjX3N0YXR1cyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxNjQ6XFx0XFx0XFx0ICAgICAgIHN0cnVjdCB3aWxjX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTY1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xNjYtXFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IHByaXYtXFx1MDAzZWRldjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxNjc6XFx0c3RydWN0IHdpbGNfdmlmICp2aWYgPSBuZXRkZXZfcHJpdihkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjE2ODpcXHRzdHJ1Y3Qgd2lsYyAqd2wgPSB2aWYtXFx1MDAzZXdpbGM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTY5LVxcdHN0cnVjdCBob3N0X2lmX2RydiAqd2ZpX2RydiA9IHByaXYtXFx1MDAzZWhpZl9kcnY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MTcwOlxcdHN0cnVjdCB3aWxjX2Nvbm5faW5mbyAqY29ubl9pbmZvID0gXFx1MDAyNndmaV9kcnYtXFx1MDAzZWNvbm5faW5mbztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xNzEtXFx0c3RydWN0IHdpcGh5ICp3aXBoeSA9IGRldi1cXHUwMDNlaWVlZTgwMjExX3B0ci1cXHUwMDNld2lwaHk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xODAtXFx0XFx0XFx0Y29ubmVjdF9zdGF0dXMgPSBXTEFOX1NUQVRVU19VTlNQRUNJRklFRF9GQUlMVVJFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjE4MTpcXHRcXHRcXHR3aWxjX3dsYW5fc2V0X2Jzc2lkKHByaXYtXFx1MDAzZWRldiwgTlVMTCwgV0lMQ19TVEFUSU9OX01PREUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTE4Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTIwNi1cXHRcXHRldGhfemVyb19hZGRyKHByaXYtXFx1MDAzZWFzc29jaWF0ZWRfYnNzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoyMDc6XFx0XFx0d2lsY193bGFuX3NldF9ic3NpZChwcml2LVxcdTAwM2VkZXYsIE5VTEwsIFdJTENfU1RBVElPTl9NT0RFKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0yMDgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0yMjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MjIyOnN0cnVjdCB3aWxjX3ZpZiAqd2lsY19nZXRfd2xfdG9fdmlmKHN0cnVjdCB3aWxjICp3bClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0yMjMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjIyNDpcXHRzdHJ1Y3Qgd2lsY192aWYgKnZpZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0yMjUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz0yMzM9c3RhdGljIGludCBzZXRfY2hhbm5lbChzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMjM2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoyMzc6XFx0c3RydWN0IHdpbGMgKndsID0gd2lwaHlfcHJpdih3aXBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MjM4OlxcdHN0cnVjdCB3aWxjX3ZpZiAqdmlmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTIzOS1cXHR1MzIgY2hhbm5lbG51bTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTI0My1cXHRzcmN1X2lkeCA9IHNyY3VfcmVhZF9sb2NrKFxcdTAwMjZ3bC1cXHUwMDNlc3JjdSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MjQ0OlxcdHZpZiA9IHdpbGNfZ2V0X3dsX3RvX3ZpZih3bCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMjQ1LVxcdGlmIChJU19FUlIodmlmKSkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMjUyLVxcdHdsLVxcdTAwM2VvcF9jaCA9IGNoYW5uZWxudW07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MjUzOlxcdHJlc3VsdCA9IHdpbGNfc2V0X21hY19jaG5sX251bSh2aWYsIGNoYW5uZWxudW0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTI1NC1cXHRpZiAocmVzdWx0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9MjYxPXN0YXRpYyBpbnQgc2NhbihzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgY2ZnODAyMTFfc2Nhbl9yZXF1ZXN0ICpyZXF1ZXN0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTI2Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MjYzOlxcdHN0cnVjdCB3aWxjX3ZpZiAqdmlmID0gbmV0ZGV2X3ByaXYocmVxdWVzdC1cXHUwMDNld2Rldi1cXHUwMDNlbmV0ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoyNjQ6XFx0c3RydWN0IHdpbGNfcHJpdiAqcHJpdiA9IFxcdTAwMjZ2aWYtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMjY1LVxcdHUzMiBpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMjg3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjI4ODpcXHRyZXQgPSB3aWxjX3NjYW4odmlmLCBXSUxDX0ZXX1VTRVJfU0NBTiwgc2Nhbl90eXBlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTI4OS1cXHRcXHRcXHRzY2FuX2NoX2xpc3QsIGNmZ19zY2FuX3Jlc3VsdCwgcmVxdWVzdCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz0yOTk9c3RhdGljIGludCBjb25uZWN0KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0zMDEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjMwMjpcXHRzdHJ1Y3Qgd2lsY192aWYgKnZpZiA9IG5ldGRldl9wcml2KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MzAzOlxcdHN0cnVjdCB3aWxjX3ByaXYgKnByaXYgPSBcXHUwMDI2dmlmLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTMwNC1cXHRzdHJ1Y3QgaG9zdF9pZl9kcnYgKndmaV9kcnYgPSBwcml2LVxcdTAwM2VoaWZfZHJ2O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMzk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjM5NjpcXHRqb2luX3BhcmFtcyA9IHdpbGNfcGFyc2Vfam9pbl9ic3NfcGFyYW0oYnNzLCBcXHUwMDI2c21lLVxcdTAwM2VjcnlwdG8pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTM5Ny1cXHRpZiAoIWpvaW5fcGFyYW1zKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00MDQtXFx0Y2ggPSBpZWVlODAyMTFfZnJlcXVlbmN5X3RvX2NoYW5uZWwoYnNzLVxcdTAwM2VjaGFubmVsLVxcdTAwM2VjZW50ZXJfZnJlcSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDA1OlxcdHZpZi1cXHUwMDNld2lsYy1cXHUwMDNlb3BfY2ggPSBjaDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00MDYtXFx0aWYgKHZpZi1cXHUwMDNlaWZ0eXBlICE9IFdJTENfQ0xJRU5UX01PREUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDA3OlxcdFxcdHZpZi1cXHUwMDNld2lsYy1cXHUwMDNlc3RhX2NoID0gY2g7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDA4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjQwOTpcXHR3aWxjX3dsYW5fc2V0X2Jzc2lkKGRldiwgYnNzLVxcdTAwM2Vic3NpZCwgV0lMQ19TVEFUSU9OX01PREUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQxMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0MjQ6XFx0cmV0ID0gd2lsY19zZXRfam9pbl9yZXEodmlmLCBic3MtXFx1MDAzZWJzc2lkLCBzbWUtXFx1MDAzZWllLCBzbWUtXFx1MDAzZWllX2xlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDI1LVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0MjY6XFx0XFx0bmV0ZGV2X2VycihkZXYsIFxcXCJ3aWxjX3NldF9qb2luX3JlcSgpOiBFcnJvclxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDI3LVxcdFxcdHJldCA9IC1FTk9FTlQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDI4LVxcdFxcdGlmICh2aWYtXFx1MDAzZWlmdHlwZSAhPSBXSUxDX0NMSUVOVF9NT0RFKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjQyOTpcXHRcXHRcXHR2aWYtXFx1MDAzZXdpbGMtXFx1MDAzZXN0YV9jaCA9IFdJTENfSU5WQUxJRF9DSEFOTkVMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjQzMDpcXHRcXHR3aWxjX3dsYW5fc2V0X2Jzc2lkKGRldiwgTlVMTCwgV0lMQ19TVEFUSU9OX01PREUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQzMS1cXHRcXHR3ZmlfZHJ2LVxcdTAwM2Vjb25uX2luZm8uY29ubl9yZXN1bHQgPSBOVUxMO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9NDQ4PXN0YXRpYyBpbnQgZGlzY29ubmVjdChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDUwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0NTE6XFx0c3RydWN0IHdpbGNfdmlmICp2aWYgPSBuZXRkZXZfcHJpdihkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjQ1MjpcXHRzdHJ1Y3Qgd2lsY19wcml2ICpwcml2ID0gXFx1MDAyNnZpZi1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0NTM6XFx0c3RydWN0IHdpbGMgKndpbGMgPSB2aWYtXFx1MDAzZXdpbGM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDU0LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00NTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDU4OlxcdGlmICghd2lsYylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00NTktXFx0XFx0cmV0dXJuIC1FSU87XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjQ2MTpcXHRpZiAod2lsYy1cXHUwMDNlY2xvc2UpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00NjItXFx0XFx0LyogYWxyZWFkeSBkaXNjb25uZWN0ZWQgZG9uZSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNDY3LVxcdGlmICh2aWYtXFx1MDAzZWlmdHlwZSAhPSBXSUxDX0NMSUVOVF9NT0RFKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjQ2ODpcXHRcXHR3aWxjLVxcdTAwM2VzdGFfY2ggPSBXSUxDX0lOVkFMSURfQ0hBTk5FTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0Njk6XFx0d2lsY193bGFuX3NldF9ic3NpZChwcml2LVxcdTAwM2VkZXYsIE5VTEwsIFdJTENfU1RBVElPTl9NT0RFKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00NzAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00NzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDczOlxcdHJldCA9IHdpbGNfZGlzY29ubmVjdCh2aWYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQ3NC1cXHRpZiAocmV0ICE9IDApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQ4My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0ODQ6c3RhdGljIGludCB3aWxjX3dmaV9jZmdfYWxsb2NhdGVfd3BhX2VudHJ5KHN0cnVjdCB3aWxjX3ByaXYgKnByaXYsIHU4IGlkeClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00ODUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjQ4NjpcXHRpZiAoIXByaXYtXFx1MDAzZXdpbGNfZ3RrW2lkeF0pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0ODc6XFx0XFx0cHJpdi1cXHUwMDNld2lsY19ndGtbaWR4XSA9IGt6YWxsb2Nfb2JqKCpwcml2LVxcdTAwM2V3aWxjX2d0a1tpZHhdKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0ODg6XFx0XFx0aWYgKCFwcml2LVxcdTAwM2V3aWxjX2d0a1tpZHhdKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQ4OS1cXHRcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTQ5MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo0OTI6XFx0aWYgKCFwcml2LVxcdTAwM2V3aWxjX3B0a1tpZHhdKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDkzOlxcdFxcdHByaXYtXFx1MDAzZXdpbGNfcHRrW2lkeF0gPSBremFsbG9jX29iaigqcHJpdi1cXHUwMDNld2lsY19wdGtbaWR4XSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NDk0OlxcdFxcdGlmICghcHJpdi1cXHUwMDNld2lsY19wdGtbaWR4XSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy00OTUtXFx0XFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01MDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NTAxOnN0YXRpYyBpbnQgd2lsY193ZmlfY2ZnX2FsbG9jYXRlX3dwYV9pZ3RrX2VudHJ5KHN0cnVjdCB3aWxjX3ByaXYgKnByaXYsIHU4IGlkeClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01MDIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTUwMy1cXHRpZHggLT0gNDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo1MDQ6XFx0aWYgKCFwcml2LVxcdTAwM2V3aWxjX2lndGtbaWR4XSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjUwNTpcXHRcXHRwcml2LVxcdTAwM2V3aWxjX2lndGtbaWR4XSA9IGt6YWxsb2Nfb2JqKCpwcml2LVxcdTAwM2V3aWxjX2lndGtbaWR4XSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NTA2OlxcdFxcdGlmICghcHJpdi1cXHUwMDNld2lsY19pZ3RrW2lkeF0pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTA3LVxcdFxcdFxcdHJldHVybiAtRU5PTUVNO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjUxMjpzdGF0aWMgaW50IHdpbGNfd2ZpX2NmZ19jb3B5X3dwYV9pbmZvKHN0cnVjdCB3aWxjX3dmaV9rZXkgKmtleV9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTUxMy1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3Qga2V5X3BhcmFtcyAqcGFyYW1zKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9NTM3PXN0YXRpYyBpbnQgYWRkX2tleShzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LCBpbnQgbGlua19pZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTU0Ni1cXHR1OCBvcF9tb2RlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjU0NzpcXHRzdHJ1Y3Qgd2lsY192aWYgKnZpZiA9IG5ldGRldl9wcml2KHdkZXYtXFx1MDAzZW5ldGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NTQ4OlxcdHN0cnVjdCB3aWxjX3ByaXYgKnByaXYgPSBcXHUwMDI2dmlmLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjU0OTpcXHRzdHJ1Y3Qgd2lsY193Zmlfa2V5ICprZXk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTUwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTU1LVxcdFxcdCAgICBwcml2LVxcdTAwM2V3ZGV2LmlmdHlwZSA9PSBOTDgwMjExX0lGVFlQRV9QMlBfR08pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo1NTY6XFx0XFx0XFx0c3RydWN0IHdpbGNfd2ZpX2tleSAqa2V5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTU1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo1NTg6XFx0XFx0XFx0cmV0ID0gd2lsY193ZmlfY2ZnX2FsbG9jYXRlX3dwYV9lbnRyeShwcml2LCBrZXlfaW5kZXgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTU1OS1cXHRcXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjU3NTpcXHRcXHRcXHRcXHRwcml2LVxcdTAwM2V3aWxjX2dyb3Vwa2V5ID0gbW9kZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01NzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NTc3OlxcdFxcdFxcdFxcdGtleSA9IHByaXYtXFx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTc4LVxcdFxcdFxcdH0gZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01ODEtXFx0XFx0XFx0XFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjU4MjpcXHRcXHRcXHRcXHRcXHRtb2RlID0gcHJpdi1cXHUwMDNld2lsY19ncm91cGtleSB8IFdJTENfRldfQUVTO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTU4My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo1ODQ6XFx0XFx0XFx0XFx0a2V5ID0gcHJpdi1cXHUwMDNld2lsY19wdGtba2V5X2luZGV4XTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy01ODUtXFx0XFx0XFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjU4NjpcXHRcXHRcXHRyZXQgPSB3aWxjX3dmaV9jZmdfY29weV93cGFfaW5mbyhrZXksIHBhcmFtcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNTg3LVxcdFxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02MDItXFx0XFx0aWYgKCFwYWlyd2lzZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2MDM6XFx0XFx0XFx0cmV0ID0gd2lsY19hZGRfcnhfZ3RrKHZpZiwgcGFyYW1zLVxcdTAwM2VrZXksIGtleWxlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02MDQtXFx0XFx0XFx0XFx0XFx0ICAgICAga2V5X2luZGV4LCBwYXJhbXMtXFx1MDAzZXNlcV9sZW4sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02MDctXFx0XFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjYwODpcXHRcXHRcXHRyZXQgPSB3aWxjX2FkZF9wdGsodmlmLCBwYXJhbXMtXFx1MDAzZWtleSwga2V5bGVuLCBtYWNfYWRkcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02MDktXFx0XFx0XFx0XFx0XFx0ICAgcnhfbWljLCB0eF9taWMsIG9wX21vZGUsIG1vZGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02MTMtXFx0Y2FzZSBXTEFOX0NJUEhFUl9TVUlURV9BRVNfQ01BQzpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2MTQ6XFx0XFx0cmV0ID0gd2lsY193ZmlfY2ZnX2FsbG9jYXRlX3dwYV9pZ3RrX2VudHJ5KHByaXYsIGtleV9pbmRleCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjE1LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02MTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjE4OlxcdFxcdGtleSA9IHByaXYtXFx1MDAzZXdpbGNfaWd0a1trZXlfaW5kZXggLSA0XTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2MTk6XFx0XFx0cmV0ID0gd2lsY193ZmlfY2ZnX2NvcHlfd3BhX2luZm8oa2V5LCBwYXJhbXMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTYyMC1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjYyOTpcXHRcXHRyZXQgPSB3aWxjX2FkZF9pZ3RrKHZpZiwgcGFyYW1zLVxcdTAwM2VrZXksIGtleWxlbiwgcGFyYW1zLVxcdTAwM2VzZXEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjMwLVxcdFxcdFxcdFxcdCAgICBwYXJhbXMtXFx1MDAzZXNlcV9sZW4sIG1hY19hZGRyLCBvcF9tb2RlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9NjQyPXN0YXRpYyBpbnQgZGVsX2tleShzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LCBpbnQgbGlua19pZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTY0Ni17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjQ3OlxcdHN0cnVjdCB3aWxjX3ZpZiAqdmlmID0gbmV0ZGV2X3ByaXYod2Rldi1cXHUwMDNlbmV0ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NDg6XFx0c3RydWN0IHdpbGNfcHJpdiAqcHJpdiA9IFxcdTAwMjZ2aWYtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjQ5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjUxLVxcdFxcdGtleV9pbmRleCAtPSA0O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY1MjpcXHRcXHRpZiAocHJpdi1cXHUwMDNld2lsY19pZ3RrW2tleV9pbmRleF0pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NTM6XFx0XFx0XFx0a2ZyZWUocHJpdi1cXHUwMDNld2lsY19pZ3RrW2tleV9pbmRleF0tXFx1MDAzZWtleSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjU0OlxcdFxcdFxcdHByaXYtXFx1MDAzZXdpbGNfaWd0a1trZXlfaW5kZXhdLVxcdTAwM2VrZXkgPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY1NTpcXHRcXHRcXHRrZnJlZShwcml2LVxcdTAwM2V3aWxjX2lndGtba2V5X2luZGV4XS1cXHUwMDNlc2VxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NTY6XFx0XFx0XFx0cHJpdi1cXHUwMDNld2lsY19pZ3RrW2tleV9pbmRleF0tXFx1MDAzZXNlcSA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjU3OlxcdFxcdFxcdGtmcmVlKHByaXYtXFx1MDAzZXdpbGNfaWd0a1trZXlfaW5kZXhdKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NTg6XFx0XFx0XFx0cHJpdi1cXHUwMDNld2lsY19pZ3RrW2tleV9pbmRleF0gPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTY1OS1cXHRcXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjYwLVxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjYxOlxcdFxcdGlmIChwcml2LVxcdTAwM2V3aWxjX2d0a1trZXlfaW5kZXhdKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjYyOlxcdFxcdFxcdGtmcmVlKHByaXYtXFx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXFx1MDAzZWtleSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjYzOlxcdFxcdFxcdHByaXYtXFx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXFx1MDAzZWtleSA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjY0OlxcdFxcdFxcdGtmcmVlKHByaXYtXFx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXFx1MDAzZXNlcSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NjY1OlxcdFxcdFxcdHByaXYtXFx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXFx1MDAzZXNlcSA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY2NzpcXHRcXHRcXHRrZnJlZShwcml2LVxcdTAwM2V3aWxjX2d0a1trZXlfaW5kZXhdKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2Njg6XFx0XFx0XFx0cHJpdi1cXHUwMDNld2lsY19ndGtba2V5X2luZGV4XSA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjY5LVxcdFxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NzA6XFx0XFx0aWYgKHByaXYtXFx1MDAzZXdpbGNfcHRrW2tleV9pbmRleF0pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NzE6XFx0XFx0XFx0a2ZyZWUocHJpdi1cXHUwMDNld2lsY19wdGtba2V5X2luZGV4XS1cXHUwMDNla2V5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NzI6XFx0XFx0XFx0cHJpdi1cXHUwMDNld2lsY19wdGtba2V5X2luZGV4XS1cXHUwMDNla2V5ID0gTlVMTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NzM6XFx0XFx0XFx0a2ZyZWUocHJpdi1cXHUwMDNld2lsY19wdGtba2V5X2luZGV4XS1cXHUwMDNlc2VxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NzQ6XFx0XFx0XFx0cHJpdi1cXHUwMDNld2lsY19wdGtba2V5X2luZGV4XS1cXHUwMDNlc2VxID0gTlVMTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2NzU6XFx0XFx0XFx0a2ZyZWUocHJpdi1cXHUwMDNld2lsY19wdGtba2V5X2luZGV4XSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6Njc2OlxcdFxcdFxcdHByaXYtXFx1MDAzZXdpbGNfcHRrW2tleV9pbmRleF0gPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTY3Ny1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz02ODM9c3RhdGljIGludCBnZXRfa2V5KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsIGludCBsaW5rX2lkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNjg3LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2ODg6XFx0c3RydWN0IHdpbGNfdmlmICp2aWYgPSBuZXRkZXZfcHJpdih3ZGV2LVxcdTAwM2VuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY4OTpcXHRzdHJ1Y3Qgd2lsY19wcml2ICpwcml2ID0gXFx1MDAyNnZpZi1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02OTAtXFx0c3RydWN0ICBrZXlfcGFyYW1zIGtleV9wYXJhbXM7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy02OTQtXFx0XFx0XFx0a2V5X2luZGV4IC09IDQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6Njk1OlxcdFxcdFxcdGtleV9wYXJhbXMua2V5ID0gcHJpdi1cXHUwMDNld2lsY19pZ3RrW2tleV9pbmRleF0tXFx1MDAzZWtleTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2OTY6XFx0XFx0XFx0a2V5X3BhcmFtcy5jaXBoZXIgPSBwcml2LVxcdTAwM2V3aWxjX2lndGtba2V5X2luZGV4XS1cXHUwMDNlY2lwaGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY5NzpcXHRcXHRcXHRrZXlfcGFyYW1zLmtleV9sZW4gPSBwcml2LVxcdTAwM2V3aWxjX2lndGtba2V5X2luZGV4XS1cXHUwMDNla2V5X2xlbjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo2OTg6XFx0XFx0XFx0a2V5X3BhcmFtcy5zZXEgPSBwcml2LVxcdTAwM2V3aWxjX2lndGtba2V5X2luZGV4XS1cXHUwMDNlc2VxO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjY5OTpcXHRcXHRcXHRrZXlfcGFyYW1zLnNlcV9sZW4gPSBwcml2LVxcdTAwM2V3aWxjX2lndGtba2V5X2luZGV4XS1cXHUwMDNlc2VxX2xlbjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy03MDAtXFx0XFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo3MDE6XFx0XFx0XFx0a2V5X3BhcmFtcy5rZXkgPSBwcml2LVxcdTAwM2V3aWxjX2d0a1trZXlfaW5kZXhdLVxcdTAwM2VrZXk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NzAyOlxcdFxcdFxcdGtleV9wYXJhbXMuY2lwaGVyID0gcHJpdi1cXHUwMDNld2lsY19ndGtba2V5X2luZGV4XS1cXHUwMDNlY2lwaGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjcwMzpcXHRcXHRcXHRrZXlfcGFyYW1zLmtleV9sZW4gPSBwcml2LVxcdTAwM2V3aWxjX2d0a1trZXlfaW5kZXhdLVxcdTAwM2VrZXlfbGVuO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjcwNDpcXHRcXHRcXHRrZXlfcGFyYW1zLnNlcSA9IHByaXYtXFx1MDAzZXdpbGNfZ3RrW2tleV9pbmRleF0tXFx1MDAzZXNlcTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo3MDU6XFx0XFx0XFx0a2V5X3BhcmFtcy5zZXFfbGVuID0gcHJpdi1cXHUwMDNld2lsY19ndGtba2V5X2luZGV4XS1cXHUwMDNlc2VxX2xlbjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy03MDYtXFx0XFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTcwNy1cXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjcwODpcXHRcXHRrZXlfcGFyYW1zLmtleSA9IHByaXYtXFx1MDAzZXdpbGNfcHRrW2tleV9pbmRleF0tXFx1MDAzZWtleTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo3MDk6XFx0XFx0a2V5X3BhcmFtcy5jaXBoZXIgPSBwcml2LVxcdTAwM2V3aWxjX3B0a1trZXlfaW5kZXhdLVxcdTAwM2VjaXBoZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NzEwOlxcdFxcdGtleV9wYXJhbXMua2V5X2xlbiA9IHByaXYtXFx1MDAzZXdpbGNfcHRrW2tleV9pbmRleF0tXFx1MDAzZWtleV9sZW47XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6NzExOlxcdFxcdGtleV9wYXJhbXMuc2VxID0gcHJpdi1cXHUwMDNld2lsY19wdGtba2V5X2luZGV4XS1cXHUwMDNlc2VxO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjcxMjpcXHRcXHRrZXlfcGFyYW1zLnNlcV9sZW4gPSBwcml2LVxcdTAwM2V3aWxjX3B0a1trZXlfaW5kZXhdLVxcdTAwM2VzZXFfbGVuO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTcxMy1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz03Mjg9c3RhdGljIGludCBzZXRfZGVmYXVsdF9tZ210X2tleShzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtNzMwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo3MzE6XFx0c3RydWN0IHdpbGNfdmlmICp2aWYgPSBuZXRkZXZfcHJpdih3ZGV2LVxcdTAwM2VuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTczMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzo3MzM6XFx0cmV0dXJuIHdpbGNfc2V0X2RlZmF1bHRfbWdtdF9rZXlfaW5kZXgodmlmLCBrZXlfaW5kZXgpO1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowNzo1NS44NDQzMjgzNThaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTE1NDg5MjgyMjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVhY2hpbmcgdGhlIFdJTEMxMDAwIERyaXZlciBpbiBhIFZpcnR1YWxpemVkIEVudmlyb25tZW50KipcblxuT2theSwgc28gSSBzZWUgYG1tYy1wd3JzZXEtd2lsYzEwMDBgIGluIHRoZSBwb3dlciBzZXF1ZW5jZSBkcml2ZXIgYW5kIHRoZSBkZXZpY2UgdHJlZSBpbnN0YW50aWF0aW9uIGZvciBgbWljcm9jaGlwLHdpbGMxMDAwYCBpbiBhbiBBUk0gZGV2aWNlIGRlc2NyaXB0aW9uLiBUaGlzIHRlbGxzIG1lIGl0J3MgYW4gQVJNLWJhc2VkIFNESU8vU1BJIFdpLUZpIGNoaXAsIG1hbmFnZWQgdmlhIERldmljZSBUcmVlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGNhbiB0aGlzIGV2ZW4gYmUgcmVhY2hlZCBpbiBRRU1VPyBTeXprYWxsZXIgdXN1YWxseSBzdHJ1Z2dsZXMgd2l0aCBEZXZpY2UgVHJlZS1pbnN0YW50aWF0ZWQgaGFyZHdhcmUgdW5sZXNzIHRoZXJlJ3MgYSBtb2NrIG9yIGl0J3MgYSBnZW5lcmljIHN1YnN5c3RlbS4gSWYgdGhlIGRyaXZlciBpc24ndCBsb2FkZWQsIGxpa2UgYHdpbGNfd2ZpX21vbl94bWl0YCwgdGhlbiB0aGUgY29kZSBwYXRoIHdvdWxkIG5ldmVyIGV4ZWN1dGUuIEknbSBjaGVja2luZywgYnV0IEknbSBleHBlY3RpbmcgdGhpcyB0byBvbmx5IGJlIFNESU8vU1BJLiBTeXprYWxsZXIgZG9lc24ndCBoYXZlIG5hdGl2ZSBTRElPL1NQSSBpbmplY3Rpb24gc3VwcG9ydC5cblxuV2FpdCwgaG93IGRpZCBTeXprYWxsZXIgZmluZCBhIGJ1ZyBpZiBJJ20gdGhpbmtpbmcgdGhpcyBpcyB1bnJlYWNoYWJsZT8gSSBuZWVkIHRvIGNoZWNrIHRoZSBjb21taXQgbWVzc2FnZS4gXCJzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcIi4gQWghIFRoaXMgd2Fzbid0IGEgXCJmb3VuZFwiIGJ1ZywgdGhpcyB3YXMgYSBwYXRjaCB0ZXN0aW5nIHJlcXVlc3QgZnJvbSBhIGRldmVsb3BlciFcblxuR2l2ZW4gdGhpcyBpcyBhIHBoeXNpY2FsIGNoaXAgKFdJTEMxMDAwKSwgaXQncyBwcm9iYWJseSAqaW1wb3NzaWJsZSogdG8gcmVhY2ggaW4gc3RhbmRhcmQgUUVNVS4gUUVNVSBkb2Vzbid0IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBNaWNyb2NoaXAgY2hpcC4gU3l6a2FsbGVyIG1pZ2h0IHJ1biBvbiBBUk0gUUVNVSwgYnV0IGlmIHRoZSBkZXZpY2UgaXNuJ3QgZW11bGF0ZWQsIGl0J3Mgc3RpbGwgdW5yZWFjaGFibGUsIGxpa2UgdGhlIHByb21wdCBzYXlzLlxuXG5UaGUgcHJvbXB0IHNwZWNpZmljYWxseSBzYXlzIHRvIHJldHVybiBmYWxzZSBpZiB0aGUgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgaW4gc3RhbmRhcmQgUUVNVS4gU28sIHVubGVzcyBJIGZpbmQgc29tZSBraW5kIG9mIHNvZnR3YXJlIGVtdWxhdGlvbiBpbiB0aGUga2VybmVsLCBpdCdzIHVucmVhY2hhYmxlLiBJJ2xsIGRvdWJsZS1jaGVjayBmb3IgdGhhdCwgYnV0IEknbSBiZXR0aW5nIEkgd29uJ3QgZmluZCBhbnl0aGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjMzNzQsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5OTEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDg6MDcuMzkzMjU5NzYzWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzE2NTQyMjM1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIndpbGMxMDAwXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tbWMvbW1jLXB3cnNlcS1zZDg3ODcueWFtbD0xMj1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21tYy9tbWMtcHdyc2VxLXNkODc4Ny55YW1sLTE1LSAgICAgIC0gbW1jLXB3cnNlcS1zZDg3ODdcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbW1jL21tYy1wd3JzZXEtc2Q4Nzg3LnlhbWw6MTY6ICAgICAgLSBtbWMtcHdyc2VxLXdpbGMxMDAwXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21tYy9tbWMtcHdyc2VxLXNkODc4Ny55YW1sLTE3LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC0zLS0tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTUtJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sPTEzPWRlc2NyaXB0aW9uOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6MTQ6ICBUaGUgd2lsYzEwMDAgY2hpcHMgY2FuIGJlIGNvbm5lY3RlZCB2aWEgU1BJIG9yIFNESU8uIFRoaXMgZG9jdW1lbnRcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTE1LSAgZGVzY3JpYmVzIHRoZSBiaW5kaW5nIHRvIGNvbm5lY3Qgd2lsYyBkZXZpY2VzLlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbD0xNz1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC0yMS0gICAgICAgICAgLSBjb25zdDogbWljcm9jaGlwLHdpbGMzMDAwXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDoyMjogICAgICAgICAgLSBjb25zdDogbWljcm9jaGlwLHdpbGMxMDAwXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDoyMzogICAgICAtIGNvbnN0OiBtaWNyb2NoaXAsd2lsYzEwMDBcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTI0LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC0zOC0gICAgbWF4SXRlbXM6IDFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sOjM5OiAgICBkZXNjcmlwdGlvbjogVXNlZCBieSB3aWxjMTAwMC1zcGkgdG8gZGV0ZXJtaW5lIHRoZSBHUElPIGxpbmVcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTQwLSAgICAgIGNvbm5lY3RlZCB0byB0aGUgRU5BQkxFIGxpbmUuICBJZiBzcGVjaWZpZWQsIHJlc2V0LWdwaW9zXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTQ3LSAgICBtYXhJdGVtczogMVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6NDg6ICAgIGRlc2NyaXB0aW9uOiBVc2VkIGJ5IHdpbGMxMDAwLXNwaSB0byBkZXRlcm1pbmUgdGhlIEdQSU8gbGluZVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWwtNDktICAgICAgY29ubmVjdGVkIHRvIHRoZSBSRVNFVCBsaW5lLiAgVGhpcyBzaG91bGQgYmUgZGVjbGFyZWQgYXMgYW5cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw9NjE9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTY4LSAgICAgIHdpZmlAMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbDo2OTogICAgICAgIGNvbXBhdGlibGUgPSBcXFwibWljcm9jaGlwLHdpbGMxMDAwXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3dpcmVsZXNzL21pY3JvY2hpcCx3aWxjMTAwMC55YW1sLTcwLSAgICAgICAgc3BpLW1heC1mcmVxdWVuY3kgPSBcXHUwMDNjNDgwMDAwMDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC05MS0gICAgICB3aWZpQDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwLHdpbGMxMDAwLnlhbWw6OTI6ICAgICAgICBjb21wYXRpYmxlID0gXFxcIm1pY3JvY2hpcCx3aWxjMTAwMFxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9taWNyb2NoaXAsd2lsYzEwMDAueWFtbC05My0gICAgICAgIHJlZyA9IFxcdTAwM2MwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpPTQyPVxcdHdpZmlfcHdyc2VxOiB3aWZpX3B3cnNlcSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k6NDM6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtbWMtcHdyc2VxLXdpbGMxMDAwXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvYXQ5MS1zYW1hNWQyN193bHNvbTEuZHRzaS00NC1cXHRcXHRyZXNldC1ncGlvcyA9IFxcdTAwM2NcXHUwMDI2cGlvQSBQSU5fUEEyNyBHUElPX0FDVElWRV9ISUdIXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpPTM4Nj1cXHR3aWxjOiB3aWZpQDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9hdDkxLXNhbWE1ZDI3X3dsc29tMS5kdHNpLTM4Ny1cXHRcXHRyZWcgPSBcXHUwMDNjMFxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2k6Mzg4OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWljcm9jaGlwLHdpbGMzMDAwXFxcIiwgXFxcIm1pY3JvY2hpcCx3aWxjMTAwMFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2F0OTEtc2FtYTVkMjdfd2xzb20xLmR0c2ktMzg5LVxcdFxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuLS1cXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYz00NT1zdGF0aWMgdm9pZCBtbWNfcHdyc2VxX3NkODc4N19wb3dlcl9vZmYoc3RydWN0IG1tY19ob3N0ICpob3N0KVxcbi0tXFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmMtNTItXFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM6NTM6c3RhdGljIHZvaWQgbW1jX3B3cnNlcV93aWxjMTAwMF9wcmVfcG93ZXJfb24oc3RydWN0IG1tY19ob3N0ICpob3N0KVxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTU0LXtcXG4tLVxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTYyLVxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jOjYzOnN0YXRpYyB2b2lkIG1tY19wd3JzZXFfd2lsYzEwMDBfcG93ZXJfb2ZmKHN0cnVjdCBtbWNfaG9zdCAqaG9zdClcXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy02NC17XFxuLS1cXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYz03MT1zdGF0aWMgY29uc3Qgc3RydWN0IG1tY19wd3JzZXFfb3BzIG1tY19wd3JzZXFfc2Q4Nzg3X29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jLTc1LVxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jOjc2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgbW1jX3B3cnNlcV9vcHMgbW1jX3B3cnNlcV93aWxjMTAwMF9vcHMgPSB7XFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM6Nzc6XFx0LnByZV9wb3dlcl9vbiA9IG1tY19wd3JzZXFfd2lsYzEwMDBfcHJlX3Bvd2VyX29uLFxcbmRyaXZlcnMvbW1jL2NvcmUvcHdyc2VxX3NkODc4Ny5jOjc4OlxcdC5wb3dlcl9vZmYgPSBtbWNfcHdyc2VxX3dpbGMxMDAwX3Bvd2VyX29mZixcXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy03OS19O1xcbi0tXFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM9ODE9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbW1jX3B3cnNlcV9zZDg3ODdfb2ZfbWF0Y2hbXSA9IHtcXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy04Mi1cXHR7IC5jb21wYXRpYmxlID0gXFxcIm1tYy1wd3JzZXEtc2Q4Nzg3XFxcIiwgLmRhdGEgPSBcXHUwMDI2bW1jX3B3cnNlcV9zZDg3ODdfb3BzIH0sXFxuZHJpdmVycy9tbWMvY29yZS9wd3JzZXFfc2Q4Nzg3LmM6ODM6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtbWMtcHdyc2VxLXdpbGMxMDAwXFxcIiwgLmRhdGEgPSBcXHUwMDI2bW1jX3B3cnNlcV93aWxjMTAwMF9vcHMgfSxcXG5kcml2ZXJzL21tYy9jb3JlL3B3cnNlcV9zZDg3ODcuYy04NC1cXHR7Lyogc2VudGluZWwgKi99LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL0tjb25maWc9MTM9aWYgV0xBTl9WRU5ET1JfTUlDUk9DSElQXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL0tjb25maWc6MTQ6c291cmNlIFxcXCJkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvS2NvbmZpZ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvS2NvbmZpZy0xNS1lbmRpZiAjIFdMQU5fVkVORE9SX01JQ1JPQ0hJUFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC9NYWtlZmlsZToyOm9iai0kKENPTkZJR19XSUxDMTAwMClcXHRcXHQrPSB3aWxjMTAwMC9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfV0lMQzEwMDApICs9IHdpbGMxMDAwLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGUtMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6NDp3aWxjMTAwMC1vYmpzIDo9IGNmZzgwMjExLm8gbmV0ZGV2Lm8gbW9uLm8gXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS01LVxcdFxcdFxcdGhpZi5vIHdsYW5fY2ZnLm8gd2xhbi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlLTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX1dJTEMxMDAwX1NESU8pICs9IHdpbGMxMDAwLXNkaW8ub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZTo4OndpbGMxMDAwLXNkaW8tb2JqcyArPSBzZGlvLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGUtOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6MTA6b2JqLSQoQ09ORklHX1dJTEMxMDAwX1NQSSkgKz0gd2lsYzEwMDAtc3BpLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6MTE6d2lsYzEwMDAtc3BpLW9ianMgKz0gc3BpLm9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jPTE4NDk9aW50IHdpbGNfY2ZnODAyMTFfcmVnaXN0ZXIoc3RydWN0IHdpbGMgKndpbGMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xODUxLVxcdC8qIFdQQTMvU0FFIHN1cHBvcnRlZCBvbmx5IG9uIFdJTEMxMDAwICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM6MTg1MjpcXHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xODUzLVxcdFxcdHdpbGMtXFx1MDAzZXdpcGh5LVxcdTAwM2VmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfU0FFO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzoyMjojZGVmaW5lIFdJTEMxMDAwX0ZXX1BSRUZJWFxcdFxcdFxcXCJhdG1lbC93aWxjMTAwMF93aWZpX2Zpcm13YXJlLVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMjMtI2RlZmluZSBfX1dJTEMxMDAwX0ZXKGFwaSlcXHRcXHRXSUxDMTAwMF9GV19QUkVGSVggI2FwaSBcXFwiLmJpblxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz0yMDA9c3RhdGljIGludCB3aWxjX3dsYW5fZ2V0X2Zpcm13YXJlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMjA3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzoyMDg6XFx0aWYgKGlzX3dpbGMxMDAwKHdpbGMtXFx1MDAzZWNoaXBpZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTIwOS1cXHRcXHRmaXJtd2FyZSA9IFdJTEMxMDAwX0ZXKFdJTEMxMDAwX0FQSV9WRVIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTIxNS1cXHRuZXRkZXZfaW5mbyhkZXYsIFxcXCJXSUxDJWQgbG9hZGluZyBmaXJtd2FyZSBbJXNdXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzoyMTY6XFx0XFx0ICAgIGlzX3dpbGMxMDAwKHdpbGMtXFx1MDAzZWNoaXBpZCkgPyAxMDAwIDogMzAwMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMjE3LVxcdFxcdCAgICBmaXJtd2FyZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM9NDU2PXN0YXRpYyB2b2lkIHdpbGNfd2xhbl9kZWluaXRpYWxpemUoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy00NjYtXFx0aWYgKHdsLVxcdTAwM2Vpbml0aWFsaXplZCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo0Njc6XFx0XFx0bmV0ZGV2X2luZm8oZGV2LCBcXFwiRGVpbml0aWFsaXppbmcgd2lsYzEwMDAuLi5cXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy00NjgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNDg0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo0ODU6XFx0XFx0bmV0ZGV2X2RiZyhkZXYsIFxcXCJ3aWxjMTAwMCBkZWluaXRpYWxpemF0aW9uIERvbmVcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy00ODYtXFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6NDg3OlxcdFxcdG5ldGRldl9kYmcoZGV2LCBcXFwid2lsYzEwMDAgaXMgbm90IGluaXRpYWxpemVkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNDg4LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz01MDg9c3RhdGljIGludCB3aWxjX3dsYW5faW5pdGlhbGl6ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgd2lsY192aWYgKnZpZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy01ODMtXFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6NTg0OlxcdFxcdG5ldGRldl9kYmcoZGV2LCBcXFwid2lsYzEwMDAgYWxyZWFkeSBpbml0aWFsaXplZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTU4NS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM9Nzg3PXN0YXRpYyBpbnQgd2lsY19tYWNfY2xvc2Uoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtODA2LVxcdGlmICh3bC1cXHUwMDNlb3Blbl9pZmNzID09IDApIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6ODA3OlxcdFxcdG5ldGRldl9kYmcobmRldiwgXFxcIkRlaW5pdGlhbGl6aW5nIHdpbGMxMDAwXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtODA4LVxcdFxcdHdsLVxcdTAwM2VjbG9zZSA9IDE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM6MTc6I2RlZmluZSBTRElPX01PREFMSUFTIFxcXCJ3aWxjMTAwMF9zZGlvXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtMTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jPTgwMD1zdGF0aWMgaW50IHdpbGNfc2Rpb19yZWFkX2ludChzdHJ1Y3Qgd2lsYyAqd2lsYywgdTMyICppbnRfc3RhdHVzKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy04MTctXFx0XFx0Y21kLmZ1bmN0aW9uID0gMDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jOjgxODpcXHRcXHRjbWQuYWRkcmVzcyA9IGlzX3dpbGMxMDAwKHdpbGMtXFx1MDAzZWNoaXBpZCkgP1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtODE5LVxcdFxcdFxcdCAgICAgIFdJTEMxMDAwX1NESU9fSVJRX0ZMQUdfUkVHIDpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtODI4LVxcdGlmIChzZGlvX3ByaXYtXFx1MDAzZWlycV9ncGlvKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM6ODI5OlxcdFxcdGlycV9mbGFncyBcXHUwMDI2PSBpc193aWxjMTAwMCh3aWxjLVxcdTAwM2VjaGlwaWQpID8gMHgxZiA6IDB4MGY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy04MzAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jPTg0Mj1zdGF0aWMgaW50IHdpbGNfc2Rpb19jbGVhcl9pbnRfZXh0KHN0cnVjdCB3aWxjICp3aWxjLCB1MzIgdmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy04NTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYzo4NTI6XFx0aWYgKGlzX3dpbGMxMDAwKHdpbGMtXFx1MDAzZWNoaXBpZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTg1My1cXHRcXHQvKiBzZWxlY3QgVk1NIHRhYmxlIDAgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtODk4LVxcdFxcdGNtZC5yYXcgPSAwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM6ODk5OlxcdFxcdGNtZC5hZGRyZXNzID0gaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSA/XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy05MDAtXFx0XFx0XFx0ICAgICAgV0lMQzEwMDBfU0RJT19JUlFfQ0xFQVJfRkxBR19SRUcgOlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYz0xMDUyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHdpbGNfb2ZfbWF0Y2hbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jOjEwNTM6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtaWNyb2NoaXAsd2lsYzEwMDBcXFwiLCB9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtMTA1NC1cXHR7IC8qIHNlbnRpbmVsICovIH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYy0xNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmM6MTY6I2RlZmluZSBTUElfTU9EQUxJQVNcXHRcXHRcXFwid2lsYzEwMDBfc3BpXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYy0xNy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYz0yOTQ9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgd2lsY19vZl9tYXRjaFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYzoyOTU6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtaWNyb2NoaXAsd2lsYzEwMDBcXFwiLCB9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYy0yOTYtXFx0eyAvKiBzZW50aW5lbCAqLyB9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmM9MzAwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BpX2RldmljZV9pZCB3aWxjX3NwaV9pZFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYzozMDE6XFx0eyBcXFwid2lsYzEwMDBcXFwiLCAwIH0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTMwMi1cXHR7IC8qIHNlbnRpbmVsICovIH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYz0xMjI3PXN0YXRpYyBpbnQgd2lsY192YWxpZGF0ZV9jaGlwaWQoc3RydWN0IHdpbGMgKndpbGMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmMtMTI0MC1cXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jOjEyNDE6XFx0aWYgKCFpc193aWxjMTAwMChjaGlwaWQpIFxcdTAwMjZcXHUwMDI2ICFpc193aWxjMzAwMChjaGlwaWQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTEyNDItXFx0XFx0ZGV2X2VycihcXHUwMDI2c3BpLVxcdTAwM2VkZXYsIFxcXCJVbmtub3duIGNoaXAgaWQgMHgleFxcXFxuXFxcIiwgY2hpcGlkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9NTMwPXN0YXRpYyBzdHJ1Y3QgcnhxX2VudHJ5X3QgKndpbGNfd2xhbl9yeHFfcmVtb3ZlKHN0cnVjdCB3aWxjICp3aWxjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy01NDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo1NDQ6c3RhdGljIGludCBjaGlwX2FsbG93X3NsZWVwX3dpbGMxMDAwKHN0cnVjdCB3aWxjICp3aWxjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNTQ1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9NjMwPXN0YXRpYyBpbnQgY2hpcF9hbGxvd19zbGVlcChzdHJ1Y3Qgd2lsYyAqd2lsYylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTYzMS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo2MzI6XFx0aWYgKGlzX3dpbGMxMDAwKHdpbGMtXFx1MDAzZWNoaXBpZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo2MzM6XFx0XFx0cmV0dXJuIGNoaXBfYWxsb3dfc2xlZXBfd2lsYzEwMDAod2lsYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy02MzQtXFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy02MzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo2Mzg6c3RhdGljIGludCBjaGlwX3dha2V1cF93aWxjMTAwMChzdHJ1Y3Qgd2lsYyAqd2lsYylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTYzOS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jPTc2MD1zdGF0aWMgaW50IGNoaXBfd2FrZXVwKHN0cnVjdCB3aWxjICp3aWxjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNzYxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjc2MjpcXHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjc2MzpcXHRcXHRyZXR1cm4gY2hpcF93YWtldXBfd2lsYzEwMDAod2lsYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy03NjQtXFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz03OTM9aW50IGhvc3Rfd2FrZXVwX25vdGlmeShzdHJ1Y3Qgd2lsYyAqd2lsYylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNzk5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM6ODAwOlxcdHdpbGMtXFx1MDAzZWhpZl9mdW5jLVxcdTAwM2VoaWZfd3JpdGVfcmVnKHdpbGMsIGlzX3dpbGMxMDAwKHdpbGMtXFx1MDAzZWNoaXBpZCkgP1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtODAxLVxcdFxcdFxcdFxcdFxcdCAgICBXSUxDMTAwMF9DT1JUVVNfSU5URVJSVVBUXzIgOlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz04MDc9aW50IGhvc3Rfc2xlZXBfbm90aWZ5KHN0cnVjdCB3aWxjICp3aWxjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy04MTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo4MTQ6XFx0d2lsYy1cXHUwMDNlaGlmX2Z1bmMtXFx1MDAzZWhpZl93cml0ZV9yZWcod2lsYywgaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSA/XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy04MTUtXFx0XFx0XFx0XFx0XFx0ICAgIFdJTEMxMDAwX0NPUlRVU19JTlRFUlJVUFRfMSA6XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jPTgyMT1pbnQgd2lsY193bGFuX2hhbmRsZV90eHEoc3RydWN0IHdpbGMgKndpbGMsIHUzMiAqdHhxX2NvdW50KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy05NTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo5NTE6XFx0XFx0aWYgKGlzX3dpbGMxMDAwKHdpbGMtXFx1MDAzZWNoaXBpZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTk1Mi1cXHRcXHRcXHRyZXQgPSBmdW5jLVxcdTAwM2VoaWZfd3JpdGVfcmVnKHdpbGMsIFdJTENfSE9TVF9WTU1fQ1RMLCAweDIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz0xNTkxPWludCB3aWxjX2dldF9jaGlwaWQoc3RydWN0IHdpbGMgKndpbGMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTE2MDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzoxNjAzOlxcdFxcdFxcdGlmICghaXNfd2lsYzEwMDAoY2hpcGlkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtMTYwNC1cXHRcXHRcXHRcXHR3aWxjLVxcdTAwM2VjaGlwaWQgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz0xNzM3PWludCB3aWxjX3dsYW5faW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy0xNzYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM6MTc2MTpcXHRcXHRpZiAoIWlzX3dpbGMxMDAwKHdpbGMtXFx1MDAzZWNoaXBpZCkgXFx1MDAyNlxcdTAwMjYgIWlzX3dpbGMzMDAwKHdpbGMtXFx1MDAzZWNoaXBpZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTE3NjItXFx0XFx0XFx0bmV0ZGV2X2VycihkZXYsIFxcXCJVbnN1cHBvcnRlZCBjaGlwaWQ6ICV4XFxcXG5cXFwiLCB3aWxjLVxcdTAwM2VjaGlwaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uaD00MzM9c3RydWN0IHdpbGNfdmlmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmgtNDM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmg6NDM1OnN0YXRpYyBpbmxpbmUgYm9vbCBpc193aWxjMTAwMCh1MzIgaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uaC00MzYte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowODowOS43MDk4MDc3NThaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDcxODE3MTI2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGBpc193aWxjMTAwMCgpYCBDaGVjayoqXG5cbk9rYXksIEknbSBzZWVpbmcgdGhpcyBgaXNfd2lsYzEwMDAoKWAgY2hlY2suLi4gbGV0IG1lIHN0ZXAgYmFjayBhbmQgdGhpbmsgdGhpcyB0aHJvdWdoLiBJcyAqdGhpcyogdGhlIG9ubHkgd2F5IHdlIGdldCB0byB0aGlzIHBhcnQgb2YgdGhlIGNvZGU/IE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBhcmUgdGhlcmUgb3RoZXIgcG90ZW50aWFsIGVudHJ5IHBvaW50cywgb3RoZXIgc2NlbmFyaW9zIHRoYXQgY2FuIHRyaWdnZXIgdGhpcz8gQWgsIEkga25vdyEgU3l6a2FsbGVyISBJZiBTeXprYWxsZXIgaXMgcnVubmluZyBvbiBBUk0gUUVNVSwgYW5kIHRoZSBkZXZpY2UgdHJlZSBzcGVjaWZpY2FsbHkgKmluY2x1ZGVzKiBzb21ldGhpbmcgbGlrZSBgbWljcm9jaGlwLHdpbGMxMDAwYCwgdGhlIGRyaXZlciAqY291bGQqIGJlIHByb2JlZC4gSG93ZXZlciwgaGFuZyBvbi4uLiB0aGUgcHJvYmUgaXRzZWxmIG5lZWRzIHRoZSBoYXJkd2FyZS4gSXQgbmVlZHMgdG8gY29tbXVuaWNhdGUsIGVpdGhlciBTUEkgb3IgU0RJTy4gTm93LCBpZiB0aGVyZSdzICpubyogYWN0dWFsIGhhcmR3YXJlIHByZXNlbnQg4oCTIHdoaWNoIGlzIGxpa2VseSBpbiB0aGlzIHNpbXVsYXRlZCBlbnZpcm9ubWVudCDigJMgdGhlIHByb2JlICpzaG91bGQqIGZhaWwsIHJpZ2h0PyBTbywgbGV0J3MganVzdCBtYWtlIGFic29sdXRlbHkgc3VyZSBieSBjaGVja2luZyBmb3IgYHdpbGNfc2Rpb19wcm9iZWAgb3IgYHdpbGNfc3BpX3Byb2JlYC4gSSBuZWVkIHRvIGNvbmZpcm0gdGhvc2UgcG90ZW50aWFsIHByb2JlIHBhdGhzIGZvciBhIGNvbXBsZXRlIHBpY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxNzY5LCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA4OjE0LjQyNzk4MjcxMVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjExNzkwMTM1OCwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwid2lsY19zcGlfcHJvYmVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA4OjE2LjU0NTg5MjAxOVoiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTEyMTQ0NDU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgdGhlIG9uZSB0aGlua2luZyBpdDpcblxuKipEaWdnaW5nIGludG8gdGhlIFdpLUZpIERyaXZlcioqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIHRoaXMgaXNzdWUgbWlnaHQgYmUgc3RlbW1pbmcgZnJvbS4gVGhlIHByb2JsZW0gc291bmRzIGxpa2UgYSByZXNvdXJjZSBpbml0aWFsaXphdGlvbiBvciBkZS1pbml0aWFsaXphdGlvbiBwcm9ibGVtIHNvIGxldCdzIGNoZWNrIHRoZSBgd2lsY19tYWNfY2xvc2VgIGZ1bmN0aW9uIGZpcnN0LiBJdCdzIHRoZSBsb2dpY2FsIHBsYWNlIHRvIHN0YXJ0IGxvb2tpbmcgYXQgd2hlcmUgdGhlIGNvbm5lY3Rpb24gZW5kcy4gSWYgaXQgaXNuJ3QgdGhlIHByb2JsZW0sIG15IG5leHQgc3RlcCBpcyBgd2lsY193bGFuX2luaXRgLiBJJ2xsIHdhbnQgdG8gc2VlIGhvdyB0aGUgY29ubmVjdGlvbiBpcyBzZXQgdXAgaW4gdGhlIGZpcnN0IHBsYWNlLCBvciBpZiB0aGVyZSBpcyBhbiBlcnJvciBpbiBpbml0aWFsaXphdGlvbi4gT25lIG9mIHRob3NlIHNlZW1zIGxpa2UgdGhlIGxpa2VsaWVzdCBjYW5kaWRhdGUgZm9yIHRoZSByb290IG9mIHRoZSBwcm9ibGVtLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjE0NiwiT3V0cHV0VG9rZW5zIjoyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA4OjE5LjQ1ODA0MDEzNVoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjMwMzcyNDk0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ3aWxjX3dsYW5faW5pdFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM9NDkxPXN0YXRpYyBpbnQgd2xhbl9pbml0aWFsaXplX3RocmVhZHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy01MDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjUwODpzdGF0aWMgaW50IHdpbGNfd2xhbl9pbml0aWFsaXplKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCB3aWxjX3ZpZiAqdmlmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy01MDkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTUxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6NTE3OlxcdFxcdHJldCA9IHdpbGNfd2xhbl9pbml0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTUxOC1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jPTU5Nz1zdGF0aWMgaW50IHdpbGNfbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNjE0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo2MTU6XFx0cmV0ID0gd2lsY193bGFuX2luaXRpYWxpemUobmRldiwgdmlmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNjE2LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9MTczNT1FWFBPUlRfU1lNQk9MX0dQTCh3aWxjX2xvYWRfbWFjX2Zyb21fbnYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtMTczNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjE3Mzc6aW50IHdpbGNfd2xhbl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy0xNzM4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmg9NDcwPWludCB3aWxjX3NlbmRfY29uZmlnX3BrdChzdHJ1Y3Qgd2lsY192aWYgKnZpZiwgdTggbW9kZSwgc3RydWN0IHdpZCAqd2lkcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5oLTQ3MS1cXHRcXHRcXHQgdTMyIGNvdW50KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5oOjQ3MjppbnQgd2lsY193bGFuX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uaC00NzMtaW50IHdpbGNfZ2V0X2NoaXBpZChzdHJ1Y3Qgd2lsYyAqd2lsYyk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA4OjIxLjc2MTc3NTMzNFoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTg0ODk2MDk2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlRyYWNpbmcgdGhlIERyaXZlciBJbml0aWFsaXphdGlvbioqXG5cbk9rYXksIGxldCdzIHNlZS4uLiAqYHdpbGNfd2xhbl9pbml0YCogaXMgYmVpbmcgY2FsbGVkIGZyb20gKmB3aWxjX21hY19vcGVuYCouIFJpZ2h0LCBhbmQgKmB3aWxjX21hY19vcGVuYCogaXMgb3VyICpgbmRvX29wZW5gKiBmdW5jdGlvbi4gVGhhdCBtYWtlcyBzZW5zZSwgdGhhdCdzIHdoZXJlIHRoZSBkZXZpY2Ugd291bGQgZ2V0IGluaXRpYWxpemVkIHdoZW4gdGhlIGludGVyZmFjZSBpcyBicm91Z2h0IHVwLiBCdXQsIEknbSB0cnlpbmcgdG8gcmVjYWxsICpob3cqIHRoZSBuZXQgZGV2aWNlIGl0c2VsZiBnZXRzIHJlZ2lzdGVyZWQgd2l0aCB0aGUga2VybmVsLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgdW5kZXJzdGFuZCB0aGUgd2hvbGUgcGljdHVyZS4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgKmB3aWxjX25ldGRldl9pbml0YCouIFRoYXQncyB0aGUgbG9naWNhbCBuZXh0IHBsYWNlIHRvIGxvb2sgZm9yIHRoZSBuZXRkZXYgcmVnaXN0cmF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzA2NiwiT3V0cHV0VG9rZW5zIjoyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA4OjI0Ljk0NjY3NDY0WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTk2NDA1MTYyLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ3aWxjX25ldGRldl9pbml0XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowODoyNy4xNDMwODYwMzJaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk5OTcwMjQ0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHN1bW1hcnksIHRha2luZyBvbiB0aGUgcGVyc29uYSB5b3UgcmVxdWVzdGVkOlxuXG4qKkRpZ2dpbmcgaW50byB0aGUgV0lMQzEwMDAgRHJpdmVyKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gaXQuIEdpdmVuIHRoZSBuYXR1cmUgb2YgdGhpcyBpbnF1aXJ5LCBJJ20gdGhpbmtpbmcgdGhlIGxpa2VseSBhcmVhIGZvciBleGFtaW5hdGlvbiByZWdhcmRpbmcgdGhpcyBzcGVjaWZpYyB3aXJlbGVzcyBkcml2ZXIgaXMgd2l0aGluIHRoZSBtaWNyb2NoaXAvd2lsYzEwMDAgZGlyZWN0b3J5LCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBvdmVyYWxsIG5ldHdvcmtpbmcgaW5mcmFzdHJ1Y3R1cmUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGRldmljZSBpcyBnZXR0aW5nIHJlZ2lzdGVyZWQgd2l0aGluIHRoZSBrZXJuZWwuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gY2hlY2sgdGhlIGByZWdpc3Rlcl9uZXRkZXZgIG9yIGByZWdpc3Rlcl9uZXRkZXZpY2VgIGNhbGxzIHdpdGhpbiB0aGF0IGRyaXZlciBjb2RlLiBUaG9zZSBmdW5jdGlvbnMgYXJlIHRoZSBicmVhZCBhbmQgYnV0dGVyIGZvciBicmluZ2luZyBhIG5ldHdvcmsgaW50ZXJmYWNlIG9ubGluZSwgc28gdGhhdOKAmXMgd2hlcmUgSSdsbCBiZWdpbiBteSBpbnZlc3RpZ2F0aW9uLiBMZXQncyBzZWUgd2hhdCB3ZSBjYW4gZmluZCB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzMzMDIsIk91dHB1dFRva2VucyI6MTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowODozMS4xNDI3OTE2OTFaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyNDIzOTk3MTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicmVnaXN0ZXJfbmV0ZGV2XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgOTA0NiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuRG9jdW1lbnRhdGlvbi9hcmNoL3Bvd2VycGMvZWVoLXBjaS1lcnJvci1yZWNvdmVyeS5yc3Q9MTk3PVRoZSBmb2xsb3dpbmcgc2VxdWVuY2UgaXMgYW4gZXhhbXBsZSBvZiB0aGUgcGNuZXQzMiBkZXZpY2UgZHJpdmVyOjpcXG4tLVxcbkRvY3VtZW50YXRpb24vYXJjaC9wb3dlcnBjL2VlaC1wY2ktZXJyb3ItcmVjb3ZlcnkucnN0LTIyNy0gICAgICAgICAgICAgICAgICAgICAgY2FsbHNcXG5Eb2N1bWVudGF0aW9uL2FyY2gvcG93ZXJwYy9lZWgtcGNpLWVycm9yLXJlY292ZXJ5LnJzdDoyMjg6ICAgICAgICAgICAgICAgICAgICAgIHVucmVnaXN0ZXJfbmV0ZGV2KCkgLy8gaW4gL25ldC9jb3JlL2Rldi5jXFxuRG9jdW1lbnRhdGlvbi9hcmNoL3Bvd2VycGMvZWVoLXBjaS1lcnJvci1yZWNvdmVyeS5yc3QtMjI5LSAgICAgICAgICAgICAgICAgICAgICB7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2FyY2gvcG93ZXJwYy9lZWgtcGNpLWVycm9yLXJlY292ZXJ5LnJzdD0yNDk9d2hpY2ggY2FsbHMgc3RydWN0IHBjaV9kcml2ZXItXFx1MDAzZXJlbW92ZSgpIHdoaWNoIGlzIHBjbmV0MzJfcmVtb3ZlX29uZSgpXFxuRG9jdW1lbnRhdGlvbi9hcmNoL3Bvd2VycGMvZWVoLXBjaS1lcnJvci1yZWNvdmVyeS5yc3Q6MjUwOndoaWNoIGNhbGxzIHVucmVnaXN0ZXJfbmV0ZGV2KCkgIChpbiBuZXQvY29yZS9kZXYuYylcXG5Eb2N1bWVudGF0aW9uL2FyY2gvcG93ZXJwYy9lZWgtcGNpLWVycm9yLXJlY292ZXJ5LnJzdC0yNTEtd2hpY2ggY2FsbHMgZGV2X2Nsb3NlKCkgIChpbiBuZXQvY29yZS9kZXYuYylcXG4tLVxcbkRvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9kcml2ZXItbW9kZWwvZGV2cmVzLnJzdD0zNzk9TkVUXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RyaXZlci1hcGkvZHJpdmVyLW1vZGVsL2RldnJlcy5yc3QtMzgxLSAgZGV2bV9hbGxvY19ldGhlcmRldl9tcXMoKVxcbkRvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9kcml2ZXItbW9kZWwvZGV2cmVzLnJzdDozODI6ICBkZXZtX3JlZ2lzdGVyX25ldGRldigpXFxuRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL2RyaXZlci1tb2RlbC9kZXZyZXMucnN0LTM4My1cXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kcml2ZXIucnN0PTI4PUF1dG8tY2xvc2VcXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kcml2ZXIucnN0LTMwLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kcml2ZXIucnN0OjMxOlRoZSBuZG9fc3RvcCByb3V0aW5lIHdpbGwgYmUgY2FsbGVkIGJ5IHVucmVnaXN0ZXJfbmV0ZGV2aWNlXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RyaXZlci5yc3QtMzItaWYgZGV2aWNlIGlzIHN0aWxsIFVQLlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL211bHRpcXVldWUucnN0PTI0PWRldmljZSBpcyBzdGlsbCBvcGVyYXRpb25hbC4gIG5ldGRldi1cXHUwMDNlcXVldWVfbG9jayBpcyBzdGlsbCB1c2VkIHdoZW4gdGhlIGRldmljZVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9tdWx0aXF1ZXVlLnJzdDoyNTpjb21lcyBvbmxpbmUgb3Igd2hlbiBpdCdzIGNvbXBsZXRlbHkgc2h1dCBkb3duICh1bnJlZ2lzdGVyX25ldGRldigpLCBldGMuKS5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbXVsdGlxdWV1ZS5yc3QtMjYtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q9Mjg9Rmlyc3QgZ3JvdXAgY2FuIGJlIHVzZWQgaW4gbm9ybWFsIGNvbnRleHRzIHdoZXJlIGBgcnRubF9sb2NrYGAgaXMgbm90IGFscmVhZHlcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6Mjk6aGVsZDogcmVnaXN0ZXJfbmV0ZGV2KCksIHVucmVnaXN0ZXJfbmV0ZGV2KCkuXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTMwLVNlY29uZCBncm91cCBjYW4gYmUgdXNlZCB3aGVuIGBgcnRubF9sb2NrYGAgaXMgYWxyZWFkeSBoZWxkOlxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDozMTpyZWdpc3Rlcl9uZXRkZXZpY2UoKSwgdW5yZWdpc3Rlcl9uZXRkZXZpY2UoKSwgZnJlZV9uZXRkZXYoKS5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtMzItXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q9Mzk9SW4gdGhhdCBjYXNlIHRoZSBzdHJ1Y3QgbmV0X2RldmljZSByZWdpc3RyYXRpb24gaXMgZG9uZSB1c2luZ1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDo0MDp0aGUgcmVnaXN0ZXJfbmV0ZGV2KCksIGFuZCB1bnJlZ2lzdGVyX25ldGRldigpIGZ1bmN0aW9uczpcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtNDEtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtNTMtXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0OjU0OiAgICAvKiAuLi4gZG8gYWxsIGRldmljZSBzZXR1cCBiZWZvcmUgY2FsbGluZyByZWdpc3Rlcl9uZXRkZXYoKSAuLi5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtNTUtICAgICAqL1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC01Ni1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6NTc6ICAgIGVyciA9IHJlZ2lzdGVyX25ldGRldihkZXYpO1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC01OC0gICAgaWYgKGVycilcXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC03MS0gIHtcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6NzI6ICAgIHVucmVnaXN0ZXJfbmV0ZGV2KGRldik7XFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTczLSAgICBmcmVlX25ldGRldihkZXYpO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTc1LVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDo3NjpOb3RlIHRoYXQgYWZ0ZXIgY2FsbGluZyByZWdpc3Rlcl9uZXRkZXYoKSB0aGUgZGV2aWNlIGlzIHZpc2libGUgaW4gdGhlIHN5c3RlbS5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtNzctVXNlcnMgY2FuIG9wZW4gaXQgYW5kIHN0YXJ0IHNlbmRpbmcgLyByZWNlaXZpbmcgdHJhZmZpYyBpbW1lZGlhdGVseSxcXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdD03OT1yZWdpc3RyYXRpb24uXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTgwLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDo4MTp1bnJlZ2lzdGVyX25ldGRldigpIGNsb3NlcyB0aGUgZGV2aWNlIGFuZCB3YWl0cyBmb3IgYWxsIHVzZXJzIHRvIGJlIGRvbmVcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtODItd2l0aCBpdC4gVGhlIG1lbW9yeSBvZiBzdHJ1Y3QgbmV0X2RldmljZSBpdHNlbGYgbWF5IHN0aWxsIGJlIHJlZmVyZW5jZWRcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q9ODM9Ynkgc3lzZnMgYnV0IGFsbCBvcGVyYXRpb25zIG9uIHRoYXQgZGV2aWNlIHdpbGwgZmFpbC5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtODQtXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0Ojg1OmZyZWVfbmV0ZGV2KCkgY2FuIGJlIGNhbGxlZCBhZnRlciB1bnJlZ2lzdGVyX25ldGRldigpIHJldHVybnMgb3Igd2hlblxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDo4NjpyZWdpc3Rlcl9uZXRkZXYoKSBmYWlsZWQuXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTg3LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0PTk2PUV4YW1wbGUgZmxvdyBvZiBuZXRkZXYgaGFuZGxpbmcgdW5kZXIgYGBydG5sX2xvY2tgYDpcXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xMzUtXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0OjEzNjogICAgZXJyID0gcmVnaXN0ZXJfbmV0ZGV2aWNlKGRldik7XFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTEzNy0gICAgaWYgKGVycilcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6MTM4OiAgICAgIC8qIHJlZ2lzdGVyX25ldGRldmljZSgpIGNhbGxzIGRlc3RydWN0b3Igb24gZmFpbHVyZSAqL1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xMzktICAgICAgZ290byBlcnJfZnJlZV9kZXY7XFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0LTE0MC1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6MTQxOiAgICAvKiBJZiBhbnl0aGluZyBmYWlscyBub3cgdW5yZWdpc3Rlcl9uZXRkZXZpY2UoKSAob3IgdW5yZWdpc3Rlcl9uZXRkZXYoKSlcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtMTQyLSAgICAgKiB3aWxsIHRha2UgY2FyZSBvZiBjYWxsaW5nIG15X2Rlc3RydWN0b3IgYW5kIGZyZWVfbmV0ZGV2KCkuXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q9MTU0PUlmIHN0cnVjdCBuZXRfZGV2aWNlLnByaXZfZGVzdHJ1Y3RvciBpcyBzZXQgaXQgd2lsbCBiZSBjYWxsZWQgYnkgdGhlIGNvcmVcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6MTU1OnNvbWUgdGltZSBhZnRlciB1bnJlZ2lzdGVyX25ldGRldmljZSgpLCBpdCB3aWxsIGFsc28gYmUgY2FsbGVkIGlmXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0OjE1NjpyZWdpc3Rlcl9uZXRkZXZpY2UoKSBmYWlscy4gVGhlIGNhbGxiYWNrIG1heSBiZSBpbnZva2VkIHdpdGggb3Igd2l0aG91dFxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xNTctYGBydG5sX2xvY2tgYCBoZWxkLlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0PTE2Mj1TZXR0aW5nIHN0cnVjdCBuZXRfZGV2aWNlLm5lZWRzX2ZyZWVfbmV0ZGV2IG1ha2VzIGNvcmUgY2FsbCBmcmVlX25ldGRldigpXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0OjE2MzphdXRvbWF0aWNhbGx5IGFmdGVyIHVucmVnaXN0ZXJfbmV0ZGV2aWNlKCkgd2hlbiBhbGwgcmVmZXJlbmNlcyB0byB0aGUgZGV2aWNlXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGRldmljZXMucnN0OjE2NDphcmUgZ29uZS4gSXQgb25seSB0YWtlcyBlZmZlY3QgYWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgdG8gcmVnaXN0ZXJfbmV0ZGV2aWNlKClcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3Q6MTY1OnNvIGlmIHJlZ2lzdGVyX25ldGRldmljZSgpIGZhaWxzIGRyaXZlciBpcyByZXNwb25zaWJsZSBmb3IgY2FsbGluZ1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xNjYtZnJlZV9uZXRkZXYoKS5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvbmV0ZGV2aWNlcy5yc3QtMTY3LVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDoxNjg6ZnJlZV9uZXRkZXYoKSBpcyBzYWZlIHRvIGNhbGwgb24gZXJyb3IgcGF0aHMgcmlnaHQgYWZ0ZXIgdW5yZWdpc3Rlcl9uZXRkZXZpY2UoKVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdDoxNjk6b3Igd2hlbiByZWdpc3Rlcl9uZXRkZXZpY2UoKSBmYWlscy4gUGFydHMgb2YgbmV0ZGV2IChkZSlyZWdpc3RyYXRpb24gcHJvY2Vzc1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRkZXZpY2VzLnJzdC0xNzAtaGFwcGVuIGFmdGVyIGBgcnRubF9sb2NrYGAgaXMgcmVsZWFzZWQsIHRoZXJlZm9yZSBpbiB0aG9zZSBjYXNlcyBmcmVlX25ldGRldigpXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvc3dpdGNoZGV2LnJzdD04NT1PbiBzd2l0Y2hkZXYgZHJpdmVyIGluaXRpYWxpemF0aW9uLCB0aGUgZHJpdmVyIHdpbGwgYWxsb2NhdGUgYW5kIHJlZ2lzdGVyIGFcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvc3dpdGNoZGV2LnJzdDo4NjpzdHJ1Y3QgbmV0X2RldmljZSAodXNpbmcgcmVnaXN0ZXJfbmV0ZGV2KCkpIGZvciBlYWNoIGVudW1lcmF0ZWQgcGh5c2ljYWwgc3dpdGNoXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3N3aXRjaGRldi5yc3QtODctcG9ydCwgY2FsbGVkIHRoZSBwb3J0IG5ldGRldi4gIEEgcG9ydCBuZXRkZXYgaXMgdGhlIHNvZnR3YXJlIHJlcHJlc2VudGF0aW9uIG9mXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcveGZybS94ZnJtX2RldmljZS5yc3Q9OTc9Rmxvd1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3hmcm0veGZybV9kZXZpY2UucnN0LTk5LVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy94ZnJtL3hmcm1fZGV2aWNlLnJzdDoxMDA6QXQgcHJvYmUgdGltZSBhbmQgYmVmb3JlIHRoZSBjYWxsIHRvIHJlZ2lzdGVyX25ldGRldigpLCB0aGUgZHJpdmVyIHNob3VsZFxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy94ZnJtL3hmcm1fZGV2aWNlLnJzdC0xMDEtc2V0IHVwIGxvY2FsIGRhdGEgc3RydWN0dXJlcyBhbmQgWEZSTSBjYWxsYmFja3MsIGFuZCBzZXQgdGhlIGZlYXR1cmUgYml0cy5cXG4tLVxcbmFyY2gvbTY4ay9lbXUvbmZldGguYz0xODU9c3RhdGljIHN0cnVjdCBuZXRfZGV2aWNlICogX19pbml0IG5mZXRoX3Byb2JlKGludCB1bml0KVxcbi0tXFxuYXJjaC9tNjhrL2VtdS9uZmV0aC5jLTIwNy1cXG5hcmNoL202OGsvZW11L25mZXRoLmM6MjA4OlxcdGVyciA9IHJlZ2lzdGVyX25ldGRldihkZXYpO1xcbmFyY2gvbTY4ay9lbXUvbmZldGguYy0yMDktXFx0aWYgKGVycikge1xcbi0tXFxuYXJjaC9tNjhrL2VtdS9uZmV0aC5jPTI1MT1zdGF0aWMgdm9pZCBfX2V4aXQgbmZldGhfY2xlYW51cCh2b2lkKVxcbi0tXFxuYXJjaC9tNjhrL2VtdS9uZmV0aC5jLTI1Ni1cXHRcXHRpZiAobmZldGhfZGV2W2ldKSB7XFxuYXJjaC9tNjhrL2VtdS9uZmV0aC5jOjI1NzpcXHRcXHRcXHR1bnJlZ2lzdGVyX25ldGRldihuZmV0aF9kZXZbaV0pO1xcbmFyY2gvbTY4ay9lbXUvbmZldGguYy0yNTgtXFx0XFx0XFx0ZnJlZV9uZXRkZXYobmZldGhfZGV2W2ldKTtcXG4tLVxcbmFyY2gvdW0vZHJpdmVycy92ZWN0b3Jfa2Vybi5jPTc4MT1zdGF0aWMgaW50IHZlY3Rvcl9yZW1vdmUoaW50IG4sIGNoYXIgKiplcnJvcl9vdXQpXFxuLS1cXG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYy03OTMtXFx0XFx0cmV0dXJuIC1FQlVTWTtcXG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYzo3OTQ6XFx0dW5yZWdpc3Rlcl9uZXRkZXYoZGV2KTtcXG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYy03OTUtXFx0cGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIoXFx1MDAyNnZlY19kLVxcdTAwM2VwZGV2KTtcXG4tLVxcbmFyY2gvdW0vZHJpdmVycy92ZWN0b3Jfa2Vybi5jPTE1NzQ9c3RhdGljIHZvaWQgdmVjdG9yX2V0aF9jb25maWd1cmUoXFxuLS1cXG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYy0xNjAwLVxcdC8qIElmIHRoaXMgbmFtZSBlbmRzIHVwIGNvbmZsaWN0aW5nIHdpdGggYW4gZXhpc3RpbmcgcmVnaXN0ZXJlZFxcbmFyY2gvdW0vZHJpdmVycy92ZWN0b3Jfa2Vybi5jOjE2MDE6XFx0ICogbmV0ZGV2aWNlLCB0aGF0IGlzIE9LLCByZWdpc3Rlcl9uZXRkZXZ7LGljZX0oKSB3aWxsIG5vdGljZSB0aGlzXFxuYXJjaC91bS9kcml2ZXJzL3ZlY3Rvcl9rZXJuLmMtMTYwMi1cXHQgKiBhbmQgZmFpbC5cXG4tLVxcbmFyY2gvdW0vZHJpdmVycy92ZWN0b3Jfa2Vybi5jLTE2NDktXFx0cnRubF9sb2NrKCk7XFxuYXJjaC91bS9kcml2ZXJzL3ZlY3Rvcl9rZXJuLmM6MTY1MDpcXHRlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2UoZGV2KTtcXG5hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYy0xNjUxLVxcdHJ0bmxfdW5sb2NrKCk7XFxuLS1cXG5hcmNoL3h0ZW5zYS9wbGF0Zm9ybXMvaXNzL25ldHdvcmsuYz00Nzk9c3RhdGljIHZvaWQgaXNzX25ldF9jb25maWd1cmUoaW50IGluZGV4LCBjaGFyICppbml0KVxcbi0tXFxuYXJjaC94dGVuc2EvcGxhdGZvcm1zL2lzcy9uZXR3b3JrLmMtNTAwLVxcdCAqIElmIHRoaXMgbmFtZSBlbmRzIHVwIGNvbmZsaWN0aW5nIHdpdGggYW4gZXhpc3RpbmcgcmVnaXN0ZXJlZFxcbmFyY2gveHRlbnNhL3BsYXRmb3Jtcy9pc3MvbmV0d29yay5jOjUwMTpcXHQgKiBuZXRkZXZpY2UsIHRoYXQgaXMgT0ssIHJlZ2lzdGVyX25ldGRldnssaWNlfSgpIHdpbGwgbm90aWNlIHRoaXNcXG5hcmNoL3h0ZW5zYS9wbGF0Zm9ybXMvaXNzL25ldHdvcmsuYy01MDItXFx0ICogYW5kIGZhaWwuXFxuLS1cXG5hcmNoL3h0ZW5zYS9wbGF0Zm9ybXMvaXNzL25ldHdvcmsuYy01MzktXFx0cnRubF9sb2NrKCk7XFxuYXJjaC94dGVuc2EvcGxhdGZvcm1zL2lzcy9uZXR3b3JrLmM6NTQwOlxcdGlmIChyZWdpc3Rlcl9uZXRkZXZpY2UoZGV2KSkge1xcbmFyY2gveHRlbnNhL3BsYXRmb3Jtcy9pc3MvbmV0d29yay5jLTU0MS1cXHRcXHRydG5sX3VubG9jaygpO1xcbi0tXFxuZHJpdmVycy9maXJld2lyZS9uZXQuYz0xNDMyPXN0YXRpYyBpbnQgZnduZXRfcHJvYmUoc3RydWN0IGZ3X3VuaXQgKnVuaXQsXFxuLS1cXG5kcml2ZXJzL2ZpcmV3aXJlL25ldC5jLTE0OTUtXFxuZHJpdmVycy9maXJld2lyZS9uZXQuYzoxNDk2OlxcdHJldCA9IHJlZ2lzdGVyX25ldGRldihuZXQpO1xcbmRyaXZlcnMvZmlyZXdpcmUvbmV0LmMtMTQ5Ny1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9maXJld2lyZS9uZXQuYy0xNTA1LVxcdGlmIChyZXQgXFx1MDAyNlxcdTAwMjYgYWxsb2NhdGVkX25ldGRldikge1xcbmRyaXZlcnMvZmlyZXdpcmUvbmV0LmM6MTUwNjpcXHRcXHR1bnJlZ2lzdGVyX25ldGRldihuZXQpO1xcbmRyaXZlcnMvZmlyZXdpcmUvbmV0LmMtMTUwNy1cXHRcXHRsaXN0X2RlbChcXHUwMDI2ZGV2LVxcdTAwM2VkZXZfbGluayk7XFxuLS1cXG5kcml2ZXJzL2ZpcmV3aXJlL25ldC5jPTE1NTI9c3RhdGljIHZvaWQgZnduZXRfcmVtb3ZlKHN0cnVjdCBmd191bml0ICp1bml0KVxcbi0tXFxuZHJpdmVycy9maXJld2lyZS9uZXQuYy0xNTY1LVxcdGlmIChsaXN0X2VtcHR5KFxcdTAwMjZkZXYtXFx1MDAzZXBlZXJfbGlzdCkpIHtcXG5kcml2ZXJzL2ZpcmV3aXJlL25ldC5jOjE1NjY6XFx0XFx0dW5yZWdpc3Rlcl9uZXRkZXYobmV0KTtcXG5kcml2ZXJzL2ZpcmV3aXJlL25ldC5jLTE1NjctXFxuLS1cXG5kcml2ZXJzL2hzaS9jbGllbnRzL3NzaV9wcm90b2NvbC5jPTEwNzM9c3RhdGljIGludCBzc2lfcHJvdG9jb2xfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9oc2kvY2xpZW50cy9zc2lfcHJvdG9jb2wuYy0xMTI3LVxcdG5ldGlmX2NhcnJpZXJfb2ZmKHNzaS1cXHUwMDNlbmV0ZGV2KTtcXG5kcml2ZXJzL2hzaS9jbGllbnRzL3NzaV9wcm90b2NvbC5jOjExMjg6XFx0ZXJyID0gcmVnaXN0ZXJfbmV0ZGV2KHNzaS1cXHUwMDNlbmV0ZGV2KTtcXG5kcml2ZXJzL2hzaS9jbGllbnRzL3NzaV9wcm90b2NvbC5jLTExMjktXFx0aWYgKGVyciBcXHUwMDNjIDApIHtcXG4tLVxcbmRyaXZlcnMvaHNpL2NsaWVudHMvc3NpX3Byb3RvY29sLmM9MTE1MD1zdGF0aWMgaW50IHNzaV9wcm90b2NvbF9yZW1vdmUoc3RydWN0IGRldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9oc2kvY2xpZW50cy9zc2lfcHJvdG9jb2wuYy0xMTU1LVxcdGxpc3RfZGVsKFxcdTAwMjZzc2ktXFx1MDAzZWxpbmspO1xcbmRyaXZlcnMvaHNpL2NsaWVudHMvc3NpX3Byb3RvY29sLmM6MTE1NjpcXHR1bnJlZ2lzdGVyX25ldGRldihzc2ktXFx1MDAzZW5ldGRldik7XFxuZHJpdmVycy9oc2kvY2xpZW50cy9zc2lfcHJvdG9jb2wuYy0xMTU3LVxcdHNzaXBfZnJlZV9jbWRzKHNzaSk7XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYz01NDg2PXN0YXRpYyBpbnQgX19pbml0IGNtYV9pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYy01NTExLVxcdGliX3NhX3JlZ2lzdGVyX2NsaWVudChcXHUwMDI2c2FfY2xpZW50KTtcXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYzo1NTEyOlxcdHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2Y21hX25iKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYy01NTEzLVxcdHJlZ2lzdGVyX25ldGV2ZW50X25vdGlmaWVyKFxcdTAwMjZjbWFfbmV0ZXZlbnRfY2IpO1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY21hLmMtNTUyOC1cXHR1bnJlZ2lzdGVyX25ldGV2ZW50X25vdGlmaWVyKFxcdTAwMjZjbWFfbmV0ZXZlbnRfY2IpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtYS5jOjU1Mjk6XFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNmNtYV9uYik7XFxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY21hLmMtNTUzMC1cXHRpYl9zYV91bnJlZ2lzdGVyX2NsaWVudChcXHUwMDI2c2FfY2xpZW50KTtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtYS5jPTU1Mzc9c3RhdGljIHZvaWQgX19leGl0IGNtYV9jbGVhbnVwKHZvaWQpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYy01NTQxLVxcdHVucmVnaXN0ZXJfbmV0ZXZlbnRfbm90aWZpZXIoXFx1MDAyNmNtYV9uZXRldmVudF9jYik7XFxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY21hLmM6NTU0MjpcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2Y21hX25iKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYy01NTQzLVxcdGliX3NhX3VucmVnaXN0ZXJfY2xpZW50KFxcdTAwMjZzYV9jbGllbnQpO1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZGV2aWNlLmM9MzAzNT1zdGF0aWMgaW50IF9faW5pdCBpYl9jb3JlX2luaXQodm9pZClcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2RldmljZS5jLTMxMDUtXFxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZGV2aWNlLmM6MzEwNjpcXHRyZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNm5iX25ldGRldmljZSk7XFxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZGV2aWNlLmMtMzEwNy1cXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2RldmljZS5jPTMxMzU9c3RhdGljIHZvaWQgX19leGl0IGliX2NvcmVfY2xlYW51cCh2b2lkKVxcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2RldmljZS5jLTMxMzYte1xcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2RldmljZS5jOjMxMzc6XFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNm5iX25ldGRldmljZSk7XFxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZGV2aWNlLmMtMzEzOC1cXHRyb2NlX2dpZF9tZ210X2NsZWFudXAoKTtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3JvY2VfZ2lkX21nbXQuYz05MTg9aW50IF9faW5pdCByb2NlX2dpZF9tZ210X2luaXQodm9pZClcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3JvY2VfZ2lkX21nbXQuYy05MzEtXFx0ICovXFxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvcm9jZV9naWRfbWdtdC5jOjkzMjpcXHRyZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNm5iX25ldGRldmljZSk7XFxuZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvcm9jZV9naWRfbWdtdC5jLTkzMy1cXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3JvY2VfZ2lkX21nbXQuYz05Mzc9dm9pZCBfX2V4aXQgcm9jZV9naWRfbWdtdF9jbGVhbnVwKHZvaWQpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9yb2NlX2dpZF9tZ210LmMtOTQxLVxcdHVucmVnaXN0ZXJfaW5ldGFkZHJfbm90aWZpZXIoXFx1MDAyNm5iX2luZXRhZGRyKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvY29yZS9yb2NlX2dpZF9tZ210LmM6OTQyOlxcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFxcdTAwMjZuYl9uZXRkZXZpY2UpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3JvY2VfZ2lkX21nbXQuYy05NDMtXFx0LyogRW5zdXJlIGFsbCBnaWQgZGVsZXRpb24gdGFza3MgY29tcGxldGUgYmVmb3JlIHdlIGdvIGRvd24sXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvYm5nX3JlL2JuZ19kZXYuYz0yMz1zdGF0aWMgc3RydWN0IGJuZ19yZV9kZXYgKmJuZ19yZV9kZXZfYWRkKHN0cnVjdCBhdXhpbGlhcnlfZGV2aWNlICphZGV2LFxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JuZ19yZS9ibmdfZGV2LmMtNDQtXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JuZ19yZS9ibmdfZGV2LmM6NDU6c3RhdGljIGludCBibmdfcmVfcmVnaXN0ZXJfbmV0ZGV2KHN0cnVjdCBibmdfcmVfZGV2ICpyZGV2KVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibmdfcmUvYm5nX2Rldi5jLTQ2LXtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibmdfcmUvYm5nX2Rldi5jPTI3Nj1zdGF0aWMgaW50IGJuZ19yZV9kZXZfaW5pdChzdHJ1Y3QgYm5nX3JlX2RldiAqcmRldilcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibmdfcmUvYm5nX2Rldi5jLTI4NS1cXHQvKiBSZWdpc3RlcmVkIGEgbmV3IFJvQ0UgZGV2aWNlIGluc3RhbmNlIHRvIG5ldGRldiAqL1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibmdfcmUvYm5nX2Rldi5jOjI4NjpcXHRyYyA9IGJuZ19yZV9yZWdpc3Rlcl9uZXRkZXYocmRldik7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JuZ19yZS9ibmdfZGV2LmMtMjg3LVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JueHRfcmUvbWFpbi5jPTUxND1zdGF0aWMgc3RydWN0IGJueHRfdWxwX29wcyBibnh0X3JlX3VscF9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvYm54dF9yZS9tYWluLmMtNTIxLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibnh0X3JlL21haW4uYzo1MjI6c3RhdGljIGludCBibnh0X3JlX3JlZ2lzdGVyX25ldGRldihzdHJ1Y3QgYm54dF9yZV9kZXYgKnJkZXYpXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JueHRfcmUvbWFpbi5jLTUyMy17XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvYm54dF9yZS9tYWluLmM9MjE4Mj1zdGF0aWMgaW50IGJueHRfcmVfZGV2X2luaXQoc3RydWN0IGJueHRfcmVfZGV2ICpyZGV2LCB1OCBvcF90eXBlKVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2JueHRfcmUvbWFpbi5jLTIxOTItXFx0XFx0LyogUmVnaXN0ZXJlZCBhIG5ldyBSb0NFIGRldmljZSBpbnN0YW5jZSB0byBuZXRkZXYgKi9cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvYm54dF9yZS9tYWluLmM6MjE5MzpcXHRcXHRyYyA9IGJueHRfcmVfcmVnaXN0ZXJfbmV0ZGV2KHJkZXYpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9ibnh0X3JlL21haW4uYy0yMTk0LVxcdFxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2VyZG1hL2VyZG1hX21haW4uYz04Nj1zdGF0aWMgaW50IGVyZG1hX2RldmljZV9yZWdpc3RlcihzdHJ1Y3QgZXJkbWFfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvZXJkbWEvZXJkbWFfbWFpbi5jLTEwNS1cXHRkZXYtXFx1MDAzZW5ldGRldl9uYi5ub3RpZmllcl9jYWxsID0gZXJkbWFfbmV0ZGV2X2V2ZW50O1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9lcmRtYS9lcmRtYV9tYWluLmM6MTA2OlxcdHJldCA9IHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2ZGV2LVxcdTAwM2VuZXRkZXZfbmIpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9lcmRtYS9lcmRtYV9tYWluLmMtMTA3LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9lcmRtYS9lcmRtYV9tYWluLmM9NjE1PXN0YXRpYyB2b2lkIGVyZG1hX2liX2RldmljZV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvZXJkbWEvZXJkbWFfbWFpbi5jLTYxOC1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvZXJkbWEvZXJkbWFfbWFpbi5jOjYxOTpcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2ZGV2LVxcdTAwM2VuZXRkZXZfbmIpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9lcmRtYS9lcmRtYV9tYWluLmMtNjIwLVxcdGliX3VucmVnaXN0ZXJfZGV2aWNlKFxcdTAwMjZkZXYtXFx1MDAzZWliZGV2KTtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jPTg0Nj1pbnQgaG5zX3JvY2VfYWxsb2NfYm9uZF9ncnAoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmMtODc4LVxcdFxcdGJvbmRfZ3JwLVxcdTAwM2Vib25kX25iLm5vdGlmaWVyX2NhbGwgPSBobnNfcm9jZV9ib25kX2V2ZW50O1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jOjg3OTpcXHRcXHRyZXQgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNmJvbmRfZ3JwLVxcdTAwM2Vib25kX25iKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYy04ODAtXFx0XFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmMtODk2LVxcdGZvciAoaS0tOyBpIFxcdTAwM2U9IDA7IGktLSkge1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jOjg5NzpcXHRcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2YmdycHNbaV0tXFx1MDAzZWJvbmRfbmIpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jLTg5OC1cXHRcXHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXFx1MDAyNmJncnBzW2ldLVxcdTAwM2Vib25kX3dvcmspO1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmM9OTA2PXZvaWQgaG5zX3JvY2VfZGVhbGxvY19ib25kX2dycCh2b2lkKVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmMtOTE3LVxcdFxcdFxcdFxcdGNvbnRpbnVlO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jOjkxODpcXHRcXHRcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2Ym9uZF9ncnAtXFx1MDAzZWJvbmRfbmIpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jLTkxOS1cXHRcXHRcXHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXFx1MDAyNmJvbmRfZ3JwLVxcdTAwM2Vib25kX3dvcmspO1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmM9OTQ5PXZvaWQgaG5zX3JvY2VfYm9uZF9zdXNwZW5kKHN0cnVjdCBobmFlM19oYW5kbGUgKmhhbmRsZSlcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jLTk3Mi1cXHRcXHRcXHRjb250aW51ZTtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYzo5NzM6XFx0XFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNmJvbmRfZ3JwLVxcdTAwM2Vib25kX25iKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYy05NzQtXFx0XFx0Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKFxcdTAwMjZib25kX2dycC1cXHUwMDNlYm9uZF93b3JrKTtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jPTk4Mj12b2lkIGhuc19yb2NlX2JvbmRfcmVzdW1lKHN0cnVjdCBobmFlM19oYW5kbGUgKmhhbmRsZSlcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfYm9uZC5jLTEwMDItXFx0XFx0XFx0Y29udGludWU7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9ib25kLmM6MTAwMzpcXHRcXHRyZXQgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNmJvbmRfZ3JwLVxcdTAwM2Vib25kX25iKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX2JvbmQuYy0xMDA0LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX21haW4uYz03MDI9c3RhdGljIHZvaWQgaG5zX3JvY2VfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2LFxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmMtNzE2LVxcdGhyX2Rldi1cXHUwMDNlYWN0aXZlID0gZmFsc2U7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmM6NzE3OlxcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFxcdTAwMjZpYm9lLVxcdTAwM2VuYik7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmMtNzE4LVxcdGliX3VucmVnaXN0ZXJfZGV2aWNlKFxcdTAwMjZocl9kZXYtXFx1MDAzZWliX2Rldik7XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaG5zL2huc19yb2NlX21haW4uYz04MDE9c3RhdGljIGludCBobnNfcm9jZV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IGhuc19yb2NlX2RldiAqaHJfZGV2KVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmMtODg2LVxcdGlib2UtXFx1MDAzZW5iLm5vdGlmaWVyX2NhbGwgPSBobnNfcm9jZV9uZXRkZXZfZXZlbnQ7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmM6ODg3OlxcdHJldCA9IHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2aWJvZS1cXHUwMDNlbmIpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfbWFpbi5jLTg4OC1cXHRpZiAocmV0KSB7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2hucy9obnNfcm9jZV9tYWluLmM6ODg5OlxcdFxcdGRldl9lcnIoZGV2LCBcXFwicmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyIGZhaWxlZCFcXFxcblxcXCIpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9obnMvaG5zX3JvY2VfbWFpbi5jLTg5MC1cXHRcXHRnb3RvIGVycm9yX2ZhaWxlZF9zZXR1cF9tdHVfbWFjO1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2lyZG1hL21haW4uYz0yNj1zdGF0aWMgdm9pZCBpcmRtYV9yZWdpc3Rlcl9ub3RpZmllcnModm9pZClcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9pcmRtYS9tYWluLmMtMzAtXFx0cmVnaXN0ZXJfbmV0ZXZlbnRfbm90aWZpZXIoXFx1MDAyNmlyZG1hX25ldF9ub3RpZmllcik7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2lyZG1hL21haW4uYzozMTpcXHRyZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNmlyZG1hX25ldGRldmljZV9ub3RpZmllcik7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2lyZG1hL21haW4uYy0zMi19XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaXJkbWEvbWFpbi5jPTM0PXN0YXRpYyB2b2lkIGlyZG1hX3VucmVnaXN0ZXJfbm90aWZpZXJzKHZvaWQpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvaXJkbWEvbWFpbi5jLTM4LVxcdHVucmVnaXN0ZXJfaW5ldDZhZGRyX25vdGlmaWVyKFxcdTAwMjZpcmRtYV9pbmV0YWRkcjZfbm90aWZpZXIpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9pcmRtYS9tYWluLmM6Mzk6XFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNmlyZG1hX25ldGRldmljZV9ub3RpZmllcik7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L2lyZG1hL21haW4uYy00MC19XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWFuYS9kZXZpY2UuYz0xMTY9c3RhdGljIGludCBtYW5hX2liX3Byb2JlKHN0cnVjdCBhdXhpbGlhcnlfZGV2aWNlICphZGV2LFxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21hbmEvZGV2aWNlLmMtMTg4LVxcdFxcdGRldi1cXHUwMDNlbmIubm90aWZpZXJfY2FsbCA9IG1hbmFfaWJfbmV0ZGV2X2V2ZW50O1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jOjE4OTpcXHRcXHRyZXQgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNmRldi1cXHUwMDNlbmIpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jLTE5MC1cXHRcXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWFuYS9kZXZpY2UuYy0yMjUtXFx0aWYgKG1hbmFfaWJfaXNfcm5pYyhkZXYpKVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jOjIyNjpcXHRcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2ZGV2LVxcdTAwM2VuYik7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21hbmEvZGV2aWNlLmMtMjI3LWRlc3Ryb3lfcm5pYzpcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jPTIzOT1zdGF0aWMgdm9pZCBtYW5hX2liX3JlbW92ZShzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZSAqYWRldilcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jLTI0OC1cXHRpZiAobWFuYV9pYl9pc19ybmljKGRldikpIHtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWFuYS9kZXZpY2UuYzoyNDk6XFx0XFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNmRldi1cXHUwMDNlbmIpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tYW5hL2RldmljZS5jLTI1MC1cXHRcXHRtYW5hX2liX2dkX2Rlc3Ryb3lfcm5pY19hZGFwdGVyKGRldik7XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmM9MjYxMz1zdGF0aWMgaW50IG1seDRfaWJfcHJvYmUoc3RydWN0IGF1eGlsaWFyeV9kZXZpY2UgKmFkZXYsXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmMtMjgyNy1cXHRcXHRpYm9lLVxcdTAwM2VuYi5ub3RpZmllcl9jYWxsID0gbWx4NF9pYl9uZXRkZXZfZXZlbnQ7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWFpbi5jOjI4Mjg6XFx0XFx0ZXJyID0gcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFxcdTAwMjZpYm9lLVxcdTAwM2VuYik7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWFpbi5jLTI4MjktXFx0XFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWFpbi5jLTI4NjctXFx0aWYgKGliZGV2LVxcdTAwM2VpYm9lLm5iLm5vdGlmaWVyX2NhbGwpIHtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmM6Mjg2ODpcXHRcXHRpZiAodW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNmliZGV2LVxcdTAwM2VpYm9lLm5iKSlcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmMtMjg2OS1cXHRcXHRcXHRwcl93YXJuKFxcXCJmYWlsdXJlIHVucmVnaXN0ZXJpbmcgbm90aWZpZXJcXFxcblxcXCIpO1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWFpbi5jPTI5NzU9c3RhdGljIHZvaWQgbWx4NF9pYl9yZW1vdmUoc3RydWN0IGF1eGlsaWFyeV9kZXZpY2UgKmFkZXYpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmMtMjk5MC1cXHRpZiAoaWJkZXYtXFx1MDAzZWlib2UubmIubm90aWZpZXJfY2FsbCkge1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21haW4uYzoyOTkxOlxcdFxcdGlmICh1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2aWJkZXYtXFx1MDAzZWlib2UubmIpKVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21haW4uYy0yOTkyLVxcdFxcdFxcdHByX3dhcm4oXFxcImZhaWx1cmUgdW5yZWdpc3RlcmluZyBub3RpZmllclxcXFxuXFxcIik7XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM9Mzc2NT1zdGF0aWMgdm9pZCBtbHg1X25ldGRldl9ub3RpZmllcl9yZWdpc3RlcihzdHJ1Y3QgbWx4NV9yb2NlICpyb2NlLFxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jLTM3NzMtXFx0cm9jZS1cXHUwMDNlbmIubm90aWZpZXJfY2FsbCA9IG1seDVfbmV0ZGV2X2V2ZW50O1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYzozNzc0OlxcdGVyciA9IHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcl9kZXZfbmV0KG5ldGRldiwgXFx1MDAyNnJvY2UtXFx1MDAzZW5iLCBcXHUwMDI2cm9jZS1cXHUwMDNlbm4pO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zNzc1LVxcdFdBUk5fT04oZXJyKTtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYz0zNzc4PXN0YXRpYyB2b2lkIG1seDVfbmV0ZGV2X25vdGlmaWVyX3VucmVnaXN0ZXIoc3RydWN0IG1seDVfcm9jZSAqcm9jZSlcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zNzgxLVxcdFxcdHJldHVybjtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM6Mzc4MjpcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcl9kZXZfbmV0KHJvY2UtXFx1MDAzZXRyYWNraW5nX25ldGRldiwgXFx1MDAyNnJvY2UtXFx1MDAzZW5iLFxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zNzgzLVxcdFxcdFxcdFxcdFxcdCAgICAgIFxcdTAwMjZyb2NlLVxcdTAwM2Vubik7XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfaWJfbWFpbi5jPTY1OT1zdGF0aWMgaW50IF9faW5pdCB1c25pY19pYl9pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfaWJfbWFpbi5jLTY3MC1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfaWJfbWFpbi5jOjY3MTpcXHRlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNnVzbmljX2liX25ldGRldmljZV9ub3RpZmllcik7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L3VzbmljL3VzbmljX2liX21haW4uYy02NzItXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L3VzbmljL3VzbmljX2liX21haW4uYy02OTUtb3V0X3VucmVnX25ldGRldl9ub3RpZmllcjpcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfaWJfbWFpbi5jOjY5NjpcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2dXNuaWNfaWJfbmV0ZGV2aWNlX25vdGlmaWVyKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfaWJfbWFpbi5jLTY5Ny1vdXRfcGNpX3VucmVnOlxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L3VzbmljL3VzbmljX2liX21haW4uYz03MDQ9c3RhdGljIHZvaWQgX19leGl0IHVzbmljX2liX2Rlc3Ryb3kodm9pZClcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody91c25pYy91c25pY19pYl9tYWluLmMtNzA5LVxcdHVucmVnaXN0ZXJfaW5ldGFkZHJfbm90aWZpZXIoXFx1MDAyNnVzbmljX2liX2luZXRhZGRyX25vdGlmaWVyKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfaWJfbWFpbi5jOjcxMDpcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2dXNuaWNfaWJfbmV0ZGV2aWNlX25vdGlmaWVyKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfaWJfbWFpbi5jLTcxMS1cXHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNnVzbmljX2liX3BjaV9kcml2ZXIpO1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L3Ztd19wdnJkbWEvcHZyZG1hX21haW4uYz03NjQ9c3RhdGljIGludCBwdnJkbWFfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L3Ztd19wdnJkbWEvcHZyZG1hX21haW4uYy0xMDE1LVxcdGRldi1cXHUwMDNlbmJfbmV0ZGV2Lm5vdGlmaWVyX2NhbGwgPSBwdnJkbWFfbmV0ZGV2aWNlX2V2ZW50O1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody92bXdfcHZyZG1hL3B2cmRtYV9tYWluLmM6MTAxNjpcXHRyZXQgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNmRldi1cXHUwMDNlbmJfbmV0ZGV2KTtcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvdm13X3B2cmRtYS9wdnJkbWFfbWFpbi5jLTEwMTctXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L3Ztd19wdnJkbWEvcHZyZG1hX21haW4uYz0xMDYzPXN0YXRpYyB2b2lkIHB2cmRtYV9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L3Ztd19wdnJkbWEvcHZyZG1hX21haW4uYy0xMDcxLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody92bXdfcHZyZG1hL3B2cmRtYV9tYWluLmM6MTA3MjpcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2ZGV2LVxcdTAwM2VuYl9uZXRkZXYpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody92bXdfcHZyZG1hL3B2cmRtYV9tYWluLmMtMTA3My1cXHRkZXYtXFx1MDAzZW5iX25ldGRldi5ub3RpZmllcl9jYWxsID0gTlVMTDtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9zdy9yeGUvcnhlX25ldC5jPTgwNj1pbnQgcnhlX3JlZ2lzdGVyX25vdGlmaWVyKHZvaWQpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9uZXQuYy04MDktXFxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfbmV0LmM6ODEwOlxcdGVyciA9IHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2cnhlX25ldF9ub3RpZmllcik7XFxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfbmV0LmMtODExLVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9zdy9yeGUvcnhlX25ldC5jPTgxOT12b2lkIHJ4ZV9uZXRfZXhpdCh2b2lkKVxcbmRyaXZlcnMvaW5maW5pYmFuZC9zdy9yeGUvcnhlX25ldC5jLTgyMC17XFxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVfbmV0LmM6ODIxOlxcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFxcdTAwMjZyeGVfbmV0X25vdGlmaWVyKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9uZXQuYy04MjItfVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfbWFpbi5jPTQ0Nj1zdGF0aWMgX19pbml0IGludCBzaXdfaW5pdF9tb2R1bGUodm9pZClcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9zdy9zaXcvc2l3X21haW4uYy00NjktXFxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfbWFpbi5jOjQ3MDpcXHRydiA9IHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2c2l3X25ldGRldl9uYik7XFxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfbWFpbi5jLTQ3MS1cXHRpZiAocnYpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvc3cvc2l3L3Npd19tYWluLmM9NDkwPXN0YXRpYyB2b2lkIF9fZXhpdCBzaXdfZXhpdF9tb2R1bGUodm9pZClcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9zdy9zaXcvc2l3X21haW4uYy00OTMtXFxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfbWFpbi5jOjQ5NDpcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2c2l3X25ldGRldl9uYik7XFxuZHJpdmVycy9pbmZpbmliYW5kL3N3L3Npdy9zaXdfbWFpbi5jLTQ5NS1cXHRyZG1hX2xpbmtfdW5yZWdpc3RlcihcXHUwMDI2c2l3X2xpbmtfb3BzKTtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jPTE4NTI9c3RhdGljIGludCBpcG9pYl9kZXZfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMTkyMC0vKlxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jOjE5MjE6ICogVGhpcyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgZG9pbmcgYW4gdW5yZWdpc3Rlcl9uZXRkZXYgb24gYSBwYXJlbnQgZGV2aWNlIHRvXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMTkyMi0gKiBzaHV0ZG93biB0aGUgSUIgZXZlbnQgaGFuZGxlci5cXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jPTIyMDQ9dm9pZCBpcG9pYl9zZXR1cF9jb21tb24oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTIyMjUtXFx0LypcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYzoyMjI2OlxcdCAqIHVucmVnaXN0ZXJfbmV0ZGV2IGFsd2F5cyBmcmVlcyB0aGUgbmV0ZGV2LCB3ZSB1c2UgdGhpcyBtb2RlXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjIyNy1cXHQgKiBjb25zaXN0ZW50bHkgdG8gdW5pZnkgYWxsIHRoZSB2YXJpb3VzIHVucmVnaXN0ZXIgcGF0aHMsIGluY2x1ZGluZ1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM9MjI3NT1pbnQgaXBvaWJfaW50Zl9pbml0KHN0cnVjdCBpYl9kZXZpY2UgKmhjYSwgdTMyIHBvcnQsIGNvbnN0IGNoYXIgKm5hbWUsXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yMzE3LVxcdC8qXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM6MjMxODpcXHQgKiBPbmx5IHRoZSBjaGlsZCByZWdpc3Rlcl9uZXRkZXYgZmxvd3MgY2FuIGhhbmRsZSBwcml2X2Rlc3RydWN0b3JcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yMzE5LVxcdCAqIGJlaW5nIHNldCwgc28gd2UgZm9yY2UgaXQgdG8gTlVMTCBoZXJlIGFuZCBoYW5kbGUgbWFudWFsbHkgdW50aWwgaXRcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jPTIzMzQ9c3RydWN0IG5ldF9kZXZpY2UgKmlwb2liX2ludGZfYWxsb2Moc3RydWN0IGliX2RldmljZSAqaGNhLCB1MzIgcG9ydCxcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTIzNTEtXFx0ICogVXBvbiBzdWNjZXNzIHRoZSBjYWxsZXIgbXVzdCBlbnN1cmUgaXBvaWJfaW50Zl9mcmVlIGlzIGNhbGxlZCBvclxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jOjIzNTI6XFx0ICogcmVnaXN0ZXJfbmV0ZGV2aWNlIHN1Y2NlZWQnZCBhbmQgcHJpdl9kZXN0cnVjdG9yIGlzIHNldCB0b1xcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTIzNTMtXFx0ICogaXBvaWJfaW50Zl9mcmVlLlxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM9MjM1OD12b2lkIGlwb2liX2ludGZfZnJlZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjM2Ny1cXHQvKlxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jOjIzNjg6XFx0ICogVGhlcmUgYXJlIHNvbWUgZXJyb3IgZmxvd3MgYXJvdW5kIHJlZ2lzdGVyX25ldGRldiBmYWlsaW5nIHRoYXQgbWF5XFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjM2OS1cXHQgKiBhdHRlbXB0IHRvIGNhbGwgcHJpdl9kZXN0cnVjdG9yIHR3aWNlLCBwcmV2ZW50IHRoYXQgZnJvbSBoYXBwZW5pbmcuXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYz0yNTgzPXN0YXRpYyBzdHJ1Y3QgbmV0X2RldmljZSAqaXBvaWJfYWRkX3BvcnQoY29uc3QgY2hhciAqZm9ybWF0LFxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjYxMC1cXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYzoyNjExOlxcdHJlc3VsdCA9IHJlZ2lzdGVyX25ldGRldihuZGV2KTtcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNjEyLVxcdGlmIChyZXN1bHQpIHtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTI2MzEtXFx0LypcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYzoyNjMyOlxcdCAqIFdlIGNhbm5vdCBzZXQgcHJpdl9kZXN0cnVjdG9yIGJlZm9yZSByZWdpc3Rlcl9uZXRkZXYgYmVjYXVzZSB3ZVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTI2MzMtXFx0ICogbmVlZCBwcml2IHRvIGJlIGFsd2F5cyB2YWxpZCBkdXJpbmcgdGhlIGVycm9yIGZsb3cgdG8gZXhlY3V0ZVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjY1NS1cXHRpcG9pYl9wYXJlbnRfdW5yZWdpc3Rlcl9wcmUobmRldik7XFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM6MjY1NjpcXHR1bnJlZ2lzdGVyX25ldGRldihuZGV2KTtcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNjU3LVxcdHJldHVybiBFUlJfUFRSKC1FTk9NRU0pO1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM9MjY5ND1zdGF0aWMgdm9pZCBpcG9pYl9yZW1vdmVfb25lKHN0cnVjdCBpYl9kZXZpY2UgKmRldmljZSwgdm9pZCAqY2xpZW50X2RhdGEpXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNzA3LVxcdFxcdFxcdFxcdFxcdCBsaXN0KVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jOjI3MDg6XFx0XFx0XFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2VfcXVldWUoY3ByaXYtXFx1MDAzZWRldiwgXFx1MDAyNmhlYWQpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTI3MDktXFx0XFx0bmV0ZGV2X3VubG9jayhwcml2LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jOjI3MTA6XFx0XFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2VfcXVldWUocHJpdi1cXHUwMDNlZGV2LCBcXHUwMDI2aGVhZCk7XFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM6MjcxMTpcXHRcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9tYW55KFxcdTAwMjZoZWFkKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNzEyLVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM9MjcyNT1zdGF0aWMgaW50IF9faW5pdCBpcG9pYl9pbml0X21vZHVsZSh2b2lkKVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMtMjc3NS0jaWZkZWYgQ09ORklHX0lORklOSUJBTkRfSVBPSUJfREVCVUdcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYzoyNzc2OlxcdHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2aXBvaWJfbmV0ZGV2X25vdGlmaWVyKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNzc3LSNlbmRpZlxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM9Mjc5Mz1zdGF0aWMgdm9pZCBfX2V4aXQgaXBvaWJfY2xlYW51cF9tb2R1bGUodm9pZClcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jLTI3OTUtI2lmZGVmIENPTkZJR19JTkZJTklCQU5EX0lQT0lCX0RFQlVHXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmM6Mjc5NjpcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcXHUwMDI2aXBvaWJfbmV0ZGV2X25vdGlmaWVyKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX21haW4uYy0yNzk3LSNlbmRpZlxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9uZXRsaW5rLmM9MTAwPXN0YXRpYyBpbnQgaXBvaWJfbmV3X2NoaWxkX2xpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbmV0bGluay5jLTE0NS1cXHRcXHRpZiAoZXJyKSB7XFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9uZXRsaW5rLmM6MTQ2OlxcdFxcdFxcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlKGRldik7XFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9uZXRsaW5rLmMtMTQ3LVxcdFxcdFxcdHJldHVybiBlcnI7XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX25ldGxpbmsuYz0xNTQ9c3RhdGljIHZvaWQgaXBvaWJfZGVsX2NoaWxkX2xpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGxpc3RfaGVhZCAqaGVhZClcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbmV0bGluay5jLTE2MC1cXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX25ldGxpbmsuYzoxNjE6XFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2VfcXVldWUoZGV2LCBoZWFkKTtcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX25ldGxpbmsuYy0xNjItfVxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmM9OTc9aW50IF9faXBvaWJfdmxhbl9hZGQoc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcHJpdiwgc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMTA0LVxcdC8qXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmM6MTA1OlxcdCAqIFdlIGRvIG5vdCBuZWVkIHRvIHRvdWNoIHByaXYgaWYgcmVnaXN0ZXJfbmV0ZGV2aWNlIGZhaWxzLCBzbyBqdXN0XFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMTA2LVxcdCAqIGFsd2F5cyB1c2UgdGhpcyBmbG93Llxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMTMxLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfdmxhbi5jOjEzMjpcXHRyZXN1bHQgPSByZWdpc3Rlcl9uZXRkZXZpY2UobmRldik7XFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMTMzLVxcdGlmIChyZXN1bHQpIHtcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfdmxhbi5jLTEzNi1cXHRcXHQvKlxcbmRyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfdmxhbi5jOjEzNzpcXHRcXHQgKiByZWdpc3Rlcl9uZXRkZXZpY2Ugc29tZXRpbWVzIGNhbGxzIHByaXZfZGVzdHJ1Y3RvcixcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYy0xMzgtXFx0XFx0ICogc29tZXRpbWVzIG5vdC4gTWFrZSBzdXJlIGl0IHdhcyBkb25lLlxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMTU4LXN5c2ZzX2ZhaWxlZDpcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYzoxNTk6XFx0dW5yZWdpc3Rlcl9uZXRkZXZpY2UocHJpdi1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYy0xNjAtXFx0cmV0dXJuIC1FTk9NRU07XFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYz0yMTU9c3RydWN0IGlwb2liX3ZsYW5fZGVsZXRlX3dvcmsge1xcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMjIxLSAqIHN5c2ZzIGNhbGxiYWNrcyBvZiBhIG5ldGRldmljZSBjYW5ub3Qgb2J0YWluIHRoZSBydG5sIGxvY2sgYXNcXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYzoyMjI6ICogdW5yZWdpc3Rlcl9uZXRkZXYgdWx0aW1hdGVseSBkZWxldGVzIHRoZSBzeXNmcyBmaWxlcyB3aGlsZSBob2xkaW5nIHRoZSBydG5sXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMjIzLSAqIGxvY2suIFRoaXMgZGVhZGxvY2tzIHRoZSBzeXN0ZW0uXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYy0yMjUtICogQSBjYWxsYmFjayBjYW4gdXNlIHJ0bmxfdHJ5bG9jayB0byBhdm9pZCB0aGUgZGVhZGxvY2sgYnV0IGl0IGNhbm5vdCBjYWxsXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmM6MjI2OiAqIHVucmVnaXN0ZXJfbmV0ZGV2IGFzIHRoYXQgaW50ZXJuYWxseSB0YWtlcyBhbmQgcmVsZWFzZXMgdGhlIHJ0bmxfbG9jay4gIFNvXFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMjI3LSAqIGluc3RlYWQgd2UgZmluZCB0aGUgbmV0ZGV2IHRvIHVucmVnaXN0ZXIgYW5kIHRoZW4gZG8gdGhlIGFjdHVhbCB1bnJlZ2lzdGVyXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYz0yMzA9c3RhdGljIHZvaWQgaXBvaWJfdmxhbl9kZWxldGVfdGFzayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYy0yNDMtXFx0XFx0aXBvaWJfZGJnKHBwcml2LCBcXFwiZGVsZXRlIGNoaWxkIHZsYW4gJXNcXFxcblxcXCIsIGRldi1cXHUwMDNlbmFtZSk7XFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmM6MjQ0OlxcdFxcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlKGRldik7XFxuZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMtMjQ1LVxcdH1cXG4tLVxcbmRyaXZlcnMvbGVkcy90cmlnZ2VyL2xlZHRyaWctbmV0ZGV2LmM9NjkyPXN0YXRpYyBpbnQgbmV0ZGV2X3RyaWdfYWN0aXZhdGUoc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYpXFxuLS1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDg6MzMuMzg1MTk4NDcyWiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxNTI1MTkxMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBzdW1tYXJ5LCB0YWtpbmcgdGhlIHJvbGUgb2YgdGhlIGV4cGVydDpcblxuKipJbnZlc3RpZ2F0aW5nIGByZWdpc3Rlcl9uZXRkZXZgIGluIHRoZSB3aWxjMTAwMCBEcml2ZXIqKlxuXG5IbW0sIHNvbWV0aGluZydzIG5vdCBxdWl0ZSByaWdodC4gSSBjb3VsZCBoYXZlIHN3b3JuIEkgc2F3IGEgcmVmZXJlbmNlIHRvIGByZWdpc3Rlcl9uZXRkZXZgIHdoZW4gZ2xhbmNpbmcgdGhyb3VnaCB0aGUgYHdpbGMxMDAwYCBkcml2ZXIgY29kZSwgc3BlY2lmaWNhbGx5IGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmNgLiBCdXQgdGhlIGluaXRpYWwgYGdyZXBgIGRpZG4ndCB0dXJuIGl0IHVwLiBUaGF0J3Mgc3RyYW5nZS4gUGVyaGFwcyBteSBtZW1vcnkgaXMgZmF1bHR5LCBvciBtYXliZSB0aGUgZmlyc3Qgc2VhcmNoIG1pc3NlZCBzb21ldGhpbmcuXG5cbkxldCdzIHRyeSBhIG1vcmUgZm9jdXNlZCBhcHByb2FjaC4gSW5zdGVhZCBvZiBzZWFyY2hpbmcgdGhlIHdob2xlIGtlcm5lbCB0cmVlLCBJJ2xsIHJlc3RyaWN0IHRoZSBgZ3JlcGAgdG8ganVzdCB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9gIGRpcmVjdG9yeS4gVGhhdCBzaG91bGQgaXNvbGF0ZSB0aGUgc2VhcmNoIHRvIHRoZSByZWxldmFudCBmaWxlcyBhbmQgaG9wZWZ1bGx5IGNsZWFyIHVwIHRoaXMgbWlub3IgZGlzY3JlcGFuY3kuIFRoaXMgc2hvdWxkIGhlbHAgbWUgY29uZmlybSB3aGV0aGVyIGByZWdpc3Rlcl9uZXRkZXZgIGlzIGFjdHVhbGx5IHVzZWQgd2l0aGluIHRoaXMgc3BlY2lmaWMgZHJpdmVyJ3Mgc291cmNlIGNvZGUsIGFuZCBpZiBzbywgd2hlcmUgYW5kIGhvdy4gSXQncyBpbXBvcnRhbnQgdG8gYmUgcHJlY2lzZSB3aGVuIGRlYWxpbmcgd2l0aCBuZXRkZXYgcmVnaXN0cmF0aW9uLCBlc3BlY2lhbGx5IGluIGEgd2lyZWxlc3MgY29udGV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDU0ODUsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowODozNy41Mzc3MTk5NDhaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNjQzMTg4NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJyZWdpc3Rlcl9uZXRkZXZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz0xNTkyPXN0YXRpYyBpbnQgZGVsX3ZpcnR1YWxfaW50ZihzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTYwMS1cXHRjZmc4MDIxMV9zdG9wX2lmYWNlKHdpcGh5LCB3ZGV2LCBHRlBfS0VSTkVMKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxNjAyOlxcdGNmZzgwMjExX3VucmVnaXN0ZXJfbmV0ZGV2aWNlKHZpZi1cXHUwMDNlbmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTYwMy1cXHR2aWYtXFx1MDAzZW1vbml0b3JfZmxhZyA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmM9MjM3PXN0cnVjdCBuZXRfZGV2aWNlICp3aWxjX3dmaV9pbml0X21vbl9pbnRlcmZhY2Uoc3RydWN0IHdpbGMgKndsLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jLTI1NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmM6MjU2OlxcdGlmIChyZWdpc3Rlcl9uZXRkZXZpY2Uod2wtXFx1MDAzZW1vbml0b3JfZGV2KSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYzoyNTc6XFx0XFx0bmV0ZGV2X2VycihyZWFsX2RldiwgXFxcInJlZ2lzdGVyX25ldGRldmljZSBmYWlsZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYy0yNTgtXFx0XFx0ZnJlZV9uZXRkZXYod2wtXFx1MDAzZW1vbml0b3JfZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYz0yNjg9dm9pZCB3aWxjX3dmaV9kZWluaXRfbW9uX2ludGVyZmFjZShzdHJ1Y3Qgd2lsYyAqd2wsIGJvb2wgcnRubF9sb2NrZWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmMtMjczLVxcdGlmIChydG5sX2xvY2tlZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbW9uLmM6Mjc0OlxcdFxcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlKHdsLVxcdTAwM2Vtb25pdG9yX2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jLTI3NS1cXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL21vbi5jOjI3NjpcXHRcXHR1bnJlZ2lzdGVyX25ldGRldih3bC1cXHUwMDNlbW9uaXRvcl9kZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uYy0yNzctXFx0d2wtXFx1MDAzZW1vbml0b3JfZGV2ID0gTlVMTDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz05MDE9dm9pZCB3aWxjX25ldGRldl9jbGVhbnVwKHN0cnVjdCB3aWxjICp3aWxjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTkxOS1cXHRcXHRpZiAodmlmLVxcdTAwM2VuZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo5MjA6XFx0XFx0XFx0dW5yZWdpc3Rlcl9uZXRkZXYodmlmLVxcdTAwM2VuZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtOTIxLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz05NDg9c3RydWN0IHdpbGNfdmlmICp3aWxjX25ldGRldl9pZmNfaW5pdChzdHJ1Y3Qgd2lsYyAqd2wsIGNvbnN0IGNoYXIgKm5hbWUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtOTk5LVxcdGlmIChydG5sX2xvY2tlZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM6MTAwMDpcXHRcXHRyZXQgPSBjZmc4MDIxMV9yZWdpc3Rlcl9uZXRkZXZpY2UobmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTEwMDEtXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzoxMDAyOlxcdFxcdHJldCA9IHJlZ2lzdGVyX25ldGRldihuZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMTAwMy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDg6MzcuNjQ0MTU2MTI1WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyNzc0OTUyMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIE5ldHdvcmsgRGV2aWNlIEluaXRpYWxpemF0aW9uKipcblxuUmlnaHQsIHNvIGB3aWxjX25ldGRldl9pZmNfaW5pdGDigKYgdGhhdCBmdW5jdGlvbiBjYWxscyBgcmVnaXN0ZXJfbmV0ZGV2YC4gIENsYXNzaWMgbmV0d29yayBkZXZpY2Ugc2V0dXAuICBHb3R0YSBiZSBjYXJlZnVsIGFib3V0IHdoZXJlIHRoYXQncyBoYXBwZW5pbmcsIGVzcGVjaWFsbHkgd2l0aCBjdXN0b20gZHJpdmVyIGltcGxlbWVudGF0aW9ucy4gSSdtIHdvbmRlcmluZyB3aGF0IGlzIGNhbGxpbmcgYHdpbGNfbmV0ZGV2X2lmY19pbml0YCBpbiB0aGUgZmlyc3QgcGxhY2UuIE5lZWQgdG8gdHJhY2UgaXRzIGNhbGwgc3RhY2sgdG8gdW5kZXJzdGFuZCB0aGUgYnJvYWRlciBpbml0aWFsaXphdGlvbiBmbG93IGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSBwb3RlbnRpYWwgY29uZmxpY3RzIG9yIGRlcGVuZGVuY2llcy4gR290dGEgc2VlIHdoYXQncyBzZXR0aW5nIHRoaW5ncyB1cCBmb3IgdGhlIGRldmljZSByZWdpc3RyYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2ODg2LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDg6NDAuOTIxNjU0OTQxWiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDEwMTI4MzgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwid2lsY19uZXRkZXZfaWZjX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYz0xNTIyPXN0YXRpYyBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICphZGRfdmlydHVhbF9pbnRmKHN0cnVjdCB3aXBoeSAqd2lwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYy0xNTg0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jOjE1ODU6XFx0dmlmID0gd2lsY19uZXRkZXZfaWZjX2luaXQod2wsIG5hbWUsIGlmdHlwZSwgdHlwZSwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmMtMTU4Ni1cXHRpZiAoSVNfRVJSKHZpZikpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmM9OTMxPXN0YXRpYyB1OCB3aWxjX2dldF9hdmFpbGFibGVfaWR4KHN0cnVjdCB3aWxjICp3bClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy05NDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjk0ODpzdHJ1Y3Qgd2lsY192aWYgKndpbGNfbmV0ZGV2X2lmY19pbml0KHN0cnVjdCB3aWxjICp3bCwgY29uc3QgY2hhciAqbmFtZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtOTQ5LVxcdFxcdFxcdFxcdCAgICAgIGludCB2aWZfdHlwZSwgZW51bSBubDgwMjExX2lmdHlwZSB0eXBlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTEwMTktfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzoxMDIwOkVYUE9SVF9TWU1CT0xfR1BMKHdpbGNfbmV0ZGV2X2lmY19pbml0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMTAyMS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuaD0zMDA9dm9pZCB3aWxjX3dsYW5fc2V0X2Jzc2lkKHN0cnVjdCBuZXRfZGV2aWNlICp3aWxjX25ldGRldiwgY29uc3QgdTggKmJzc2lkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuaC0zMDEtXFx0XFx0XFx0IHU4IG1vZGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuaDozMDI6c3RydWN0IHdpbGNfdmlmICp3aWxjX25ldGRldl9pZmNfaW5pdChzdHJ1Y3Qgd2lsYyAqd2wsIGNvbnN0IGNoYXIgKm5hbWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5oLTMwMy1cXHRcXHRcXHRcXHQgICAgICBpbnQgdmlmX3R5cGUsIGVudW0gbmw4MDIxMV9pZnR5cGUgdHlwZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM9MTM5PXN0YXRpYyBpbnQgd2lsY19zZGlvX3Byb2JlKHN0cnVjdCBzZGlvX2Z1bmMgKmZ1bmMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTIwMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jOjIwMTpcXHR2aWYgPSB3aWxjX25ldGRldl9pZmNfaW5pdCh3aWxjLCBcXFwid2xhbiVkXFxcIiwgV0lMQ19TVEFUSU9OX01PREUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy0yMDItXFx0XFx0XFx0XFx0ICAgTkw4MDIxMV9JRlRZUEVfU1RBVElPTiwgZmFsc2UpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jPTIwNz1zdGF0aWMgaW50IHdpbGNfYnVzX3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmMtMjYyLVxcdHdpbGNfd2xhbl9wb3dlcih3aWxjLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jOjI2MzpcXHR2aWYgPSB3aWxjX25ldGRldl9pZmNfaW5pdCh3aWxjLCBcXFwid2xhbiVkXFxcIiwgV0lMQ19TVEFUSU9OX01PREUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTI2NC1cXHRcXHRcXHRcXHQgICBOTDgwMjExX0lGVFlQRV9TVEFUSU9OLCBmYWxzZSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA4OjQxLjAyMjY3NDg0OVoiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4NDUyMjkzNzEwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUmVhY2hhYmlsaXR5IG9mIGB3aWxjX25ldGRldl9pZmNfaW5pdGAgaW4gU3l6a2FsbGVyKipcblxuT2theSwgc28gYHdpbGNfbmV0ZGV2X2lmY19pbml0YCBpcyBjYWxsZWQgZnJvbSBgd2lsY19zZGlvX3Byb2JlYCBhbmQgYHdpbGNfYnVzX3Byb2JlYCwgbWVhbmluZyB0aGUgZHJpdmVyJ3MgaW5pdGlhbGl6YXRpb24gaGluZ2VzIG9uIGVpdGhlciBhbiBTRElPIG9yIFNQSSBwcm9iZS4gVGhlIGNydWNpYWwgcXVlc3Rpb24gaXMsIGNhbiBTeXprYWxsZXIgdHJpZ2dlciB0aGVzZSBwcm9iZXM/IFVuZm9ydHVuYXRlbHksIFN5emthbGxlciBkb2Vzbid0IGhhdmUgZGlyZWN0IGZ1bmN0aW9ucyBsaWtlIGBzeXpfc2Rpb19jb25uZWN0YCBvciBgc3l6X3NwaV9jb25uZWN0YCBmb3IgaW5qZWN0aW5nIFNESU8gb3IgU1BJIGRldmljZXMgZ2VuZXJpY2FsbHkuIEJ1dCB3YWl0LCBpdCAqZG9lcyogaGF2ZSBgc3l6X3NwaV9zZXR1cGAsIHdoaWNoIGlzIGEgcG90ZW50aWFsIHBhdGh3YXkuXG5cbkhvd2V2ZXIsIGJhc2VkIG9uIHRoZSBwcm9tcHQncyBpbnN0cnVjdGlvbnMsIEkgY2FuJ3QgcmVseSBvbiBteSBwcmlvciBrbm93bGVkZ2Ugb3IgZXh0ZXJuYWwgdG9vbHMgKGxpa2UgY2hlY2tpbmcgYGRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmNgKS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0byBvbmx5IHVzZSB0b29scyBwcm92aWRlZCB0byBtZSB0byBleGFtaW5lIHRoZSBjb2RlLlxuXG5UaGUgcHJvbXB0IHNwZWNpZmljYWxseSBtZW50aW9ucyB0aGF0IGNoYW5nZXMgYXJlIGFscmVhZHkgYXBwbGllZC4gVGhlcmVmb3JlLCBpZiBTeXprYWxsZXIgKmRpZCogZmluZCBhIGJ1ZywgaXQgaW1wbGllcyByZWFjaGFiaWxpdHkuIEhvd2V2ZXIsIHRoZSBwcm9tcHQgYWxzbyBzYXlzIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aXRoIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLlxuXG5TaW5jZSB0aGlzIGlzIGFuIFNESU8vU1BJIGRyaXZlciBmb3IgdGhlIFdJTEMxMDAwLCBhbmQgUUVNVSBkb2Vzbid0IGVtdWxhdGUgdGhlIFdJTEMxMDAwIGhhcmR3YXJlLCBhbmQgdGhlcmUncyBubyBzb2Z0d2FyZS1lbXVsYXRlZCBlcXVpdmFsZW50IChsaWtlIG1hYzgwMjExX2h3c2ltIG9yIHVzYiBnYWRnZXQpLCBpdCBzZWVtcyB0aGUgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIHNldHVwcy5cblxuQWx0aG91Z2ggeW91IGNhbiBpbnN0YW50aWF0ZSBhbiBTUEkgZGV2aWNlIHZpYSBzeXNmcywgdGhlIGB3aWxjX2J1c19wcm9iZWAgZnVuY3Rpb24gKGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmNgKSB3aWxsIHRyeSB0byB0YWxrIHRvIHRoZSBoYXJkd2FyZS4gVGhlcmVmb3JlLCB0aGUgcHJvYmUgZnVuY3Rpb24gd291bGQgYmUgdW5hYmxlIHRvIGNvbW11bmljYXRlIHdpdGggaGFyZHdhcmUuIENvbnNlcXVlbnRseSwgdGhlIGluaXRpYWxpemF0aW9uIHdvdWxkIGZhaWwuIFNvIEknZCBuZWVkIHRvIGNvbnNpZGVyIHRoYXQgdGhlIGNvZGUgd2lsbCBiZSB1bnJlYWNoYWJsZSBhbmQgcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0ODEyNiwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUzNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowODo0OS40NzQ5NzMxNDlaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc5OTI5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyMDcsXG4gIFwiTGluZUNvdW50XCI6IDEwMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMjA3OlxcdHN0YXRpYyBpbnQgd2lsY19idXNfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcXG4gMjA4OlxcdHtcXG4gMjA5OlxcdFxcdHN0cnVjdCB3aWxjX3NwaSAqc3BpX3ByaXY7XFxuIDIxMDpcXHRcXHRzdHJ1Y3Qgd2lsY192aWYgKnZpZjtcXG4gMjExOlxcdFxcdHN0cnVjdCB3aWxjICp3aWxjO1xcbiAyMTI6XFx0XFx0aW50IHJldDtcXG4gMjEzOlxcdFxcbiAyMTQ6XFx0XFx0c3BpX3ByaXYgPSBremFsbG9jX29iaigqc3BpX3ByaXYpO1xcbiAyMTU6XFx0XFx0aWYgKCFzcGlfcHJpdilcXG4gMjE2OlxcdFxcdFxcdHJldHVybiAtRU5PTUVNO1xcbiAyMTc6XFx0XFxuIDIxODpcXHRcXHRyZXQgPSB3aWxjX2NmZzgwMjExX2luaXQoXFx1MDAyNndpbGMsIFxcdTAwMjZzcGktXFx1MDAzZWRldiwgV0lMQ19ISUZfU1BJLCBcXHUwMDI2d2lsY19oaWZfc3BpKTtcXG4gMjE5OlxcdFxcdGlmIChyZXQpXFxuIDIyMDpcXHRcXHRcXHRnb3RvIGZyZWU7XFxuIDIyMTpcXHRcXG4gMjIyOlxcdFxcdHNwaV9zZXRfZHJ2ZGF0YShzcGksIHdpbGMpO1xcbiAyMjM6XFx0XFx0d2lsYy1cXHUwMDNlZGV2ID0gXFx1MDAyNnNwaS1cXHUwMDNlZGV2O1xcbiAyMjQ6XFx0XFx0d2lsYy1cXHUwMDNlYnVzX2RhdGEgPSBzcGlfcHJpdjtcXG4gMjI1OlxcdFxcdHdpbGMtXFx1MDAzZWRldl9pcnFfbnVtID0gc3BpLVxcdTAwM2VpcnE7XFxuIDIyNjpcXHRcXG4gMjI3OlxcdFxcdHJldCA9IHdpbGNfcGFyc2VfZ3Bpb3Mod2lsYyk7XFxuIDIyODpcXHRcXHRpZiAocmV0IFxcdTAwM2MgMClcXG4gMjI5OlxcdFxcdFxcdGdvdG8gbmV0ZGV2X2NsZWFudXA7XFxuIDIzMDpcXHRcXG4gMjMxOlxcdFxcdHdpbGMtXFx1MDAzZXJ0Y19jbGsgPSBkZXZtX2Nsa19nZXRfb3B0aW9uYWxfZW5hYmxlZChcXHUwMDI2c3BpLVxcdTAwM2VkZXYsIFxcXCJydGNcXFwiKTtcXG4gMjMyOlxcdFxcdGlmIChJU19FUlIod2lsYy1cXHUwMDNlcnRjX2NsaykpIHtcXG4gMjMzOlxcdFxcdFxcdHJldCA9IFBUUl9FUlIod2lsYy1cXHUwMDNlcnRjX2Nsayk7XFxuIDIzNDpcXHRcXHRcXHRnb3RvIG5ldGRldl9jbGVhbnVwO1xcbiAyMzU6XFx0XFx0fVxcbiAyMzY6XFx0XFxuIDIzNzpcXHRcXHRkZXZfaW5mbyhcXHUwMDI2c3BpLVxcdTAwM2VkZXYsIFxcXCJTZWxlY3RlZCBDUkMgY29uZmlnOiBjcmM3PSVzLCBjcmMxNj0lc1xcXFxuXFxcIixcXG4gMjM4OlxcdFxcdFxcdCBlbmFibGVfY3JjNyA/IFxcXCJvblxcXCIgOiBcXFwib2ZmXFxcIiwgZW5hYmxlX2NyYzE2ID8gXFxcIm9uXFxcIiA6IFxcXCJvZmZcXFwiKTtcXG4gMjM5OlxcdFxcbiAyNDA6XFx0XFx0Lyogd2UgbmVlZCBwb3dlciB0byBjb25maWd1cmUgdGhlIGJ1cyBwcm90b2NvbCBhbmQgdG8gcmVhZCB0aGUgY2hpcCBpZDogKi9cXG4gMjQxOlxcdFxcbiAyNDI6XFx0XFx0d2lsY193bGFuX3Bvd2VyKHdpbGMsIHRydWUpO1xcbiAyNDM6XFx0XFxuIDI0NDpcXHRcXHRyZXQgPSB3aWxjX3NwaV9jb25maWd1cmVfYnVzX3Byb3RvY29sKHdpbGMpO1xcbiAyNDU6XFx0XFx0aWYgKHJldClcXG4gMjQ2OlxcdFxcdFxcdGdvdG8gcG93ZXJfZG93bjtcXG4gMjQ3OlxcdFxcbiAyNDg6XFx0XFx0cmV0ID0gd2lsY19nZXRfY2hpcGlkKHdpbGMpO1xcbiAyNDk6XFx0XFx0aWYgKHJldClcXG4gMjUwOlxcdFxcdFxcdGdvdG8gcG93ZXJfZG93bjtcXG4gMjUxOlxcdFxcbiAyNTI6XFx0XFx0cmV0ID0gd2lsY19jZmc4MDIxMV9yZWdpc3Rlcih3aWxjKTtcXG4gMjUzOlxcdFxcdGlmIChyZXQpXFxuIDI1NDpcXHRcXHRcXHRnb3RvIHBvd2VyX2Rvd247XFxuIDI1NTpcXHRcXG4gMjU2OlxcdFxcdHJldCA9IHdpbGNfbG9hZF9tYWNfZnJvbV9udih3aWxjKTtcXG4gMjU3OlxcdFxcdGlmIChyZXQpIHtcXG4gMjU4OlxcdFxcdFxcdHByX2VycihcXFwiQ2FuIG5vdCByZXRyaWV2ZSBNQUMgYWRkcmVzcyBmcm9tIGNoaXBcXFxcblxcXCIpO1xcbiAyNTk6XFx0XFx0XFx0Z290byB1bnJlZ2lzdGVyX3dpcGh5O1xcbiAyNjA6XFx0XFx0fVxcbiAyNjE6XFx0XFxuIDI2MjpcXHRcXHR3aWxjX3dsYW5fcG93ZXIod2lsYywgZmFsc2UpO1xcbiAyNjM6XFx0XFx0dmlmID0gd2lsY19uZXRkZXZfaWZjX2luaXQod2lsYywgXFxcIndsYW4lZFxcXCIsIFdJTENfU1RBVElPTl9NT0RFLFxcbiAyNjQ6XFx0XFx0XFx0XFx0XFx0ICAgTkw4MDIxMV9JRlRZUEVfU1RBVElPTiwgZmFsc2UpO1xcbiAyNjU6XFx0XFx0aWYgKElTX0VSUih2aWYpKSB7XFxuIDI2NjpcXHRcXHRcXHRyZXQgPSBQVFJfRVJSKHZpZik7XFxuIDI2NzpcXHRcXHRcXHRnb3RvIHVucmVnaXN0ZXJfd2lwaHk7XFxuIDI2ODpcXHRcXHR9XFxuIDI2OTpcXHRcXHRyZXR1cm4gMDtcXG4gMjcwOlxcdFxcbiAyNzE6XFx0dW5yZWdpc3Rlcl93aXBoeTpcXG4gMjcyOlxcdFxcdHdpcGh5X3VucmVnaXN0ZXIod2lsYy1cXHUwMDNld2lwaHkpO1xcbiAyNzM6XFx0cG93ZXJfZG93bjpcXG4gMjc0OlxcdFxcdHdpbGNfd2xhbl9wb3dlcih3aWxjLCBmYWxzZSk7XFxuIDI3NTpcXHRuZXRkZXZfY2xlYW51cDpcXG4gMjc2OlxcdFxcdHdpbGNfbmV0ZGV2X2NsZWFudXAod2lsYyk7XFxuIDI3NzpcXHRcXHR3aXBoeV9mcmVlKHdpbGMtXFx1MDAzZXdpcGh5KTtcXG4gMjc4OlxcdGZyZWU6XFxuIDI3OTpcXHRcXHRrZnJlZShzcGlfcHJpdik7XFxuIDI4MDpcXHRcXHRyZXR1cm4gcmV0O1xcbiAyODE6XFx0fVxcbiAyODI6XFx0XFxuIDI4MzpcXHRzdGF0aWMgdm9pZCB3aWxjX2J1c19yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcXG4gMjg0OlxcdHtcXG4gMjg1OlxcdFxcdHN0cnVjdCB3aWxjICp3aWxjID0gc3BpX2dldF9kcnZkYXRhKHNwaSk7XFxuIDI4NjpcXHRcXHRzdHJ1Y3Qgd2lsY19zcGkgKnNwaV9wcml2ID0gd2lsYy1cXHUwMDNlYnVzX2RhdGE7XFxuIDI4NzpcXHRcXG4gMjg4OlxcdFxcdHdpbGNfbmV0ZGV2X2NsZWFudXAod2lsYyk7XFxuIDI4OTpcXHRcXHR3aXBoeV91bnJlZ2lzdGVyKHdpbGMtXFx1MDAzZXdpcGh5KTtcXG4gMjkwOlxcdFxcdHdpcGh5X2ZyZWUod2lsYy1cXHUwMDNld2lwaHkpO1xcbiAyOTE6XFx0XFx0a2ZyZWUoc3BpX3ByaXYpO1xcbiAyOTI6XFx0fVxcbiAyOTM6XFx0XFxuIDI5NDpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB3aWxjX29mX21hdGNoW10gPSB7XFxuIDI5NTpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1pY3JvY2hpcCx3aWxjMTAwMFxcXCIsIH0sXFxuIDI5NjpcXHRcXHR7IC8qIHNlbnRpbmVsICovIH1cXG4gMjk3OlxcdH07XFxuIDI5ODpcXHRNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCB3aWxjX29mX21hdGNoKTtcXG4gMjk5OlxcdFxcbiAzMDA6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBzcGlfZGV2aWNlX2lkIHdpbGNfc3BpX2lkW10gPSB7XFxuIDMwMTpcXHRcXHR7IFxcXCJ3aWxjMTAwMFxcXCIsIDAgfSxcXG4gMzAyOlxcdFxcdHsgLyogc2VudGluZWwgKi8gfVxcbiAzMDM6XFx0fTtcXG4gMzA0OlxcdE1PRFVMRV9ERVZJQ0VfVEFCTEUoc3BpLCB3aWxjX3NwaV9pZCk7XFxuIDMwNTpcXHRcXG4gMzA2OlxcdHN0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciB3aWxjX3NwaV9kcml2ZXIgPSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA4OjQ5LjQ3NTE1NjQzOVoiLCJTZXEiOjI5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDI1MTE0ODk3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkluaXRpYWwgSGFyZHdhcmUgVmFsaWRhdGlvbioqXG5cbk9rYXksIHNvIHRoZSBmaXJzdCB0aGluZ3MgdGhpcyBjb2RlIGJsb2NrIGRvZXMgYXJlIGEgY2FsbCB0byBgd2lsY19zcGlfY29uZmlndXJlX2J1c19wcm90b2NvbCh3aWxjKWAgYW5kIHRoZW4gYSBjYWxsIHRvIGB3aWxjX2dldF9jaGlwaWQod2lsYylgLiBSaWdodCBhd2F5LCBteSBleHBlcnQgaW50dWl0aW9uIHRlbGxzIG1lIHRoYXQgdGhpcyBpcyBsaWtlbHkgYSBoYXJkd2FyZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZS4gYHdpbGNfZ2V0X2NoaXBpZCh3aWxjKWAgaXMgdGhlIGNyaXRpY2FsIGZ1bmN0aW9uIGhlcmU7IGlmIHRoZSBoYXJkd2FyZSBpc24ndCBwcmVzZW50IG9yIGZ1bmN0aW9uaW5nLCB0aGF0IGNhbGwgKndpbGwqIGZhaWwuIElmIGl0IGZhaWxzLCB0aGF0IG1lYW5zIHdlIGhhdmVuJ3QgZXZlbiBnb3QgdGhlIHJpZ2h0IGNoaXAgSUQuIFRoYXQgd2lsbCB0cmlnZ2VyIHRoZSByZXR1cm4gb2YgYW4gZXJyb3IuIENvbnNlcXVlbnRseSwgdGhlIGNvcmUgbmV0d29yayBpbnRlcmZhY2UgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24sIGB3aWxjX25ldGRldl9pZmNfaW5pdGAsIHdpbGwgbmV2ZXIgZ2V0IGV4ZWN1dGVkIHdoaWNoIGlzIGV4YWN0bHkgd2hhdCB3ZSB3YW50LiBJIG5lZWQgdG8gdGFrZSBhIGNsb3NlciBsb29rIGF0IGB3aWxjX2dldF9jaGlwaWRgIHRvIHVuZGVyc3RhbmQgaG93IGl0IGRldGVybWluZXMgY2hpcCBwcmVzZW5jZSBhbmQgd2hldGhlciB0aGUgU1BJIGludGVyZmFjZSBpcyBvcGVyYXRpb25hbCwgYXMgdGhhdCdzIHdoZXJlIHRoZSBydWJiZXIgbWVldHMgdGhlIHJvYWQuIEknbGwgZm9jdXMgb24gdGhhdCBmdW5jdGlvbidzIGltcGxlbWVudGF0aW9uIG5leHQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUwNjkyLCJPdXRwdXRUb2tlbnMiOjUwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTIsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowODo1My45MDAyNzUyNTVaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk0MTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMTU5MSxcbiAgXCJMaW5lQ291bnRcIjogMTAwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjE1OTE6XFx0aW50IHdpbGNfZ2V0X2NoaXBpZChzdHJ1Y3Qgd2lsYyAqd2lsYylcXG4xNTkyOlxcdHtcXG4xNTkzOlxcdFxcdHUzMiBjaGlwaWQgPSAwO1xcbjE1OTQ6XFx0XFx0dTMyIHJmcmV2aWQgPSAwO1xcbjE1OTU6XFx0XFxuMTU5NjpcXHRcXHRpZiAod2lsYy1cXHUwMDNlY2hpcGlkID09IDApIHtcXG4xNTk3OlxcdFxcdFxcdHdpbGMtXFx1MDAzZWhpZl9mdW5jLVxcdTAwM2VoaWZfcmVhZF9yZWcod2lsYywgV0lMQzMwMDBfQ0hJUF9JRCwgXFx1MDAyNmNoaXBpZCk7XFxuMTU5ODpcXHRcXHRcXHRpZiAoIWlzX3dpbGMzMDAwKGNoaXBpZCkpIHtcXG4xNTk5OlxcdFxcdFxcdFxcdHdpbGMtXFx1MDAzZWhpZl9mdW5jLVxcdTAwM2VoaWZfcmVhZF9yZWcod2lsYywgV0lMQ19DSElQSUQsIFxcdTAwMjZjaGlwaWQpO1xcbjE2MDA6XFx0XFx0XFx0XFx0d2lsYy1cXHUwMDNlaGlmX2Z1bmMtXFx1MDAzZWhpZl9yZWFkX3JlZyh3aWxjLCBXSUxDX1JGX1JFVklTSU9OX0lELFxcbjE2MDE6XFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgICBcXHUwMDI2cmZyZXZpZCk7XFxuMTYwMjpcXHRcXG4xNjAzOlxcdFxcdFxcdFxcdGlmICghaXNfd2lsYzEwMDAoY2hpcGlkKSkge1xcbjE2MDQ6XFx0XFx0XFx0XFx0XFx0d2lsYy1cXHUwMDNlY2hpcGlkID0gMDtcXG4xNjA1OlxcdFxcdFxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbjE2MDY6XFx0XFx0XFx0XFx0fVxcbjE2MDc6XFx0XFx0XFx0XFx0aWYgKGNoaXBpZCA9PSBXSUxDXzEwMDBfQkFTRV9JRF8yQSkgeyAvKiAweDEwMDJBMCAqL1xcbjE2MDg6XFx0XFx0XFx0XFx0XFx0aWYgKHJmcmV2aWQgIT0gMHgxKVxcbjE2MDk6XFx0XFx0XFx0XFx0XFx0XFx0Y2hpcGlkID0gV0lMQ18xMDAwX0JBU0VfSURfMkFfUkVWMTtcXG4xNjEwOlxcdFxcdFxcdFxcdH0gZWxzZSBpZiAoY2hpcGlkID09IFdJTENfMTAwMF9CQVNFX0lEXzJCKSB7IC8qIDB4MTAwMkIwICovXFxuMTYxMTpcXHRcXHRcXHRcXHRcXHRpZiAocmZyZXZpZCA9PSAweDQpXFxuMTYxMjpcXHRcXHRcXHRcXHRcXHRcXHRjaGlwaWQgPSBXSUxDXzEwMDBfQkFTRV9JRF8yQl9SRVYxO1xcbjE2MTM6XFx0XFx0XFx0XFx0XFx0ZWxzZSBpZiAocmZyZXZpZCAhPSAweDMpXFxuMTYxNDpcXHRcXHRcXHRcXHRcXHRcXHRjaGlwaWQgPSBXSUxDXzEwMDBfQkFTRV9JRF8yQl9SRVYyO1xcbjE2MTU6XFx0XFx0XFx0XFx0fVxcbjE2MTY6XFx0XFx0XFx0fVxcbjE2MTc6XFx0XFxuMTYxODpcXHRcXHRcXHR3aWxjLVxcdTAwM2VjaGlwaWQgPSBjaGlwaWQ7XFxuMTYxOTpcXHRcXHR9XFxuMTYyMDpcXHRcXG4xNjIxOlxcdFxcdHJldHVybiAwO1xcbjE2MjI6XFx0fVxcbjE2MjM6XFx0RVhQT1JUX1NZTUJPTF9HUEwod2lsY19nZXRfY2hpcGlkKTtcXG4xNjI0OlxcdFxcbjE2MjU6XFx0c3RhdGljIGludCBpbml0X2NoaXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4xNjI2OlxcdHtcXG4xNjI3OlxcdFxcdHUzMiByZWc7XFxuMTYyODpcXHRcXHRpbnQgcmV0LCBydjtcXG4xNjI5OlxcdFxcdHN0cnVjdCB3aWxjX3ZpZiAqdmlmID0gbmV0ZGV2X3ByaXYoZGV2KTtcXG4xNjMwOlxcdFxcdHN0cnVjdCB3aWxjICp3aWxjID0gdmlmLVxcdTAwM2V3aWxjO1xcbjE2MzE6XFx0XFxuMTYzMjpcXHRcXHRyZXQgPSBhY3F1aXJlX2J1cyh3aWxjLCBXSUxDX0JVU19BQ1FVSVJFX0FORF9XQUtFVVApO1xcbjE2MzM6XFx0XFx0aWYgKHJldClcXG4xNjM0OlxcdFxcdFxcdHJldHVybiByZXQ7XFxuMTYzNTpcXHRcXG4xNjM2OlxcdFxcdHJldCA9IHdpbGNfZ2V0X2NoaXBpZCh3aWxjKTtcXG4xNjM3OlxcdFxcdGlmIChyZXQpXFxuMTYzODpcXHRcXHRcXHRnb3RvIHJlbGVhc2U7XFxuMTYzOTpcXHRcXG4xNjQwOlxcdFxcdGlmICgod2lsYy1cXHUwMDNlY2hpcGlkIFxcdTAwMjYgMHhmZmYpICE9IDB4YTApIHtcXG4xNjQxOlxcdFxcdFxcdHJldCA9IHdpbGMtXFx1MDAzZWhpZl9mdW5jLVxcdTAwM2VoaWZfcmVhZF9yZWcod2lsYyxcXG4xNjQyOlxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgIFdJTENfQ09SVFVTX1JFU0VUX01VWF9TRUwsXFxuMTY0MzpcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2cmVnKTtcXG4xNjQ0OlxcdFxcdFxcdGlmIChyZXQpIHtcXG4xNjQ1OlxcdFxcdFxcdFxcdG5ldGRldl9lcnIoZGV2LCBcXFwiZmFpbCByZWFkIHJlZyAweDExMThcXFxcblxcXCIpO1xcbjE2NDY6XFx0XFx0XFx0XFx0Z290byByZWxlYXNlO1xcbjE2NDc6XFx0XFx0XFx0fVxcbjE2NDg6XFx0XFx0XFx0cmVnIHw9IEJJVCgwKTtcXG4xNjQ5OlxcdFxcdFxcdHJldCA9IHdpbGMtXFx1MDAzZWhpZl9mdW5jLVxcdTAwM2VoaWZfd3JpdGVfcmVnKHdpbGMsXFxuMTY1MDpcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgV0lMQ19DT1JUVVNfUkVTRVRfTVVYX1NFTCxcXG4xNjUxOlxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICByZWcpO1xcbjE2NTI6XFx0XFx0XFx0aWYgKHJldCkge1xcbjE2NTM6XFx0XFx0XFx0XFx0bmV0ZGV2X2VycihkZXYsIFxcXCJmYWlsIHdyaXRlIHJlZyAweDExMThcXFxcblxcXCIpO1xcbjE2NTQ6XFx0XFx0XFx0XFx0Z290byByZWxlYXNlO1xcbjE2NTU6XFx0XFx0XFx0fVxcbjE2NTY6XFx0XFx0XFx0cmV0ID0gd2lsYy1cXHUwMDNlaGlmX2Z1bmMtXFx1MDAzZWhpZl93cml0ZV9yZWcod2lsYyxcXG4xNjU3OlxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICBXSUxDX0NPUlRVU19CT09UX1JFR0lTVEVSLFxcbjE2NTg6XFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgIFdJTENfQ09SVFVTX0JPT1RfRlJPTV9JUkFNKTtcXG4xNjU5OlxcdFxcdFxcdGlmIChyZXQpIHtcXG4xNjYwOlxcdFxcdFxcdFxcdG5ldGRldl9lcnIoZGV2LCBcXFwiZmFpbCB3cml0ZSByZWcgMHhjMDAwMFxcXFxuXFxcIik7XFxuMTY2MTpcXHRcXHRcXHRcXHRnb3RvIHJlbGVhc2U7XFxuMTY2MjpcXHRcXHRcXHR9XFxuMTY2MzpcXHRcXHR9XFxuMTY2NDpcXHRcXG4xNjY1OlxcdFxcdGlmIChpc193aWxjMzAwMCh3aWxjLVxcdTAwM2VjaGlwaWQpKSB7XFxuMTY2NjpcXHRcXHRcXHRyZXQgPSB3aWxjLVxcdTAwM2VoaWZfZnVuYy1cXHUwMDNlaGlmX3JlYWRfcmVnKHdpbGMsIFdJTEMzMDAwX0JPT1RST01fU1RBVFVTLCBcXHUwMDI2cmVnKTtcXG4xNjY3OlxcdFxcdFxcdGlmIChyZXQpIHtcXG4xNjY4OlxcdFxcdFxcdFxcdG5ldGRldl9lcnIoZGV2LCBcXFwiZmFpbGVkIHRvIHJlYWQgV0lMQzMwMDAgQm9vdFJPTSBzdGF0dXMgcmVnaXN0ZXJcXFxcblxcXCIpO1xcbjE2Njk6XFx0XFx0XFx0XFx0Z290byByZWxlYXNlO1xcbjE2NzA6XFx0XFx0XFx0fVxcbjE2NzE6XFx0XFxuMTY3MjpcXHRcXHRcXHRyZXQgPSB3aWxjLVxcdTAwM2VoaWZfZnVuYy1cXHUwMDNlaGlmX3dyaXRlX3JlZyh3aWxjLCBXSUxDMzAwMF9DT1JUVVNfQk9PVF9SRUdJU1RFUl8yLFxcbjE2NzM6XFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgIFdJTENfQ09SVFVTX0JPT1RfRlJPTV9JUkFNKTtcXG4xNjc0OlxcdFxcdFxcdGlmIChyZXQpIHtcXG4xNjc1OlxcdFxcdFxcdFxcdG5ldGRldl9lcnIoZGV2LCBcXFwiZmFpbGVkIHRvIHdyaXRlIFdJTEMzMDAwIEJvb3QgcmVnaXN0ZXJcXFxcblxcXCIpO1xcbjE2NzY6XFx0XFx0XFx0XFx0Z290byByZWxlYXNlO1xcbjE2Nzc6XFx0XFx0XFx0fVxcbjE2Nzg6XFx0XFx0fVxcbjE2Nzk6XFx0XFxuMTY4MDpcXHRyZWxlYXNlOlxcbjE2ODE6XFx0XFx0cnYgPSByZWxlYXNlX2J1cyh3aWxjLCBXSUxDX0JVU19SRUxFQVNFX0FMTE9XX1NMRUVQKTtcXG4xNjgyOlxcdFxcbjE2ODM6XFx0XFx0cmV0dXJuIHJldCA/IHJldCA6IHJ2O1xcbjE2ODQ6XFx0fVxcbjE2ODU6XFx0XFxuMTY4NjpcXHRpbnQgd2lsY19sb2FkX21hY19mcm9tX252KHN0cnVjdCB3aWxjICp3bClcXG4xNjg3OlxcdHtcXG4xNjg4OlxcdFxcdGludCByZXQsIHJ2O1xcbjE2ODk6XFx0XFx0dW5zaWduZWQgaW50IGk7XFxuMTY5MDpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDg6NTMuOTAwNDcxNDk1WiIsIlNlcSI6MzEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY1OTAwOTU0MzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBDb2RlJ3MgUmVhY2hhYmlsaXR5KipcblxuT2theSwgc28gYHdpbGNfZ2V0X2NoaXBpZGAgZ3JhYnMgdGhlIGNoaXAgSUQgZnJvbSB0aGUgaGFyZHdhcmUuIElmIHRoYXQgSUQgaXNuJ3Qgd2hhdCB3ZSBleHBlY3QgKFdJTEMxMDAwIG9yIFdJTEMzMDAwKSwgaXQga2lja3MgYmFjayBhbiBgLUVJTlZBTGAuIEluIGEgdmlydHVhbCBlbnZpcm9ubWVudCwgbGlrZSBRRU1VLCB0aGVyZSdzIG5vIGFjdHVhbCBoYXJkd2FyZSB0byByZWFkIGZyb20uIE15IGd1dCBzYXlzIGBoaWZfcmVhZF9yZWdgIHdpbGwgZmFpbCBvciByZXR1cm4gemVybywgd2hpY2ggaXMgZGVmaW5pdGVseSBub3QgYSB2YWxpZCBjaGlwIElELiBUaGF0IHdvdWxkIGNhdXNlIGB3aWxjX2J1c19wcm9iZWAgdG8gZmFpbCwgYW5kIHRoZSBuZXR3b3JrIGRldmljZSB3b3VsZCBuZXZlciBldmVuIGdldCByZWdpc3RlcmVkLiBTbywgYnkgYWxsIGxvZ2ljLCB0aGlzIGNvZGUgcGF0aCBzaG91bGRuJ3QgKmV2ZXIqIGJlIHJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIHNldHVwLlxuXG5CdXQgd2FpdCBhIG1pbnV0ZeKApiBTeXprYWxsZXIgZm91bmQgYSBidWcgaGVyZT8gSG93IGlzIHRoYXQgZXZlbiBwb3NzaWJsZT8gRG9lcyBTeXprYWxsZXIgaGF2ZSBzb21lIHRyaWNrIHVwIGl0cyBzbGVldmUgdG8gbW9jayBTUEkgZGV2aWNlcz8gSSBkb24ndCByZWNhbGwgc2VlaW5nIGEgZ2VuZXJpYyBTUEkgbW9jayBpbiBTeXprYWxsZXIuIEhtbS4uLiBtYXliZSBpdCBpbmplY3RzIFNQSSB0cmFmZmljIHZpYSBhIGR1bW15IFNQSSBjb250cm9sbGVyP1xuXG5JZiBTeXprYWxsZXIgZm91bmQgYSBidWcsIHRoYXQgbWVhbnMgdGhpcyBjb2RlICppcyogcmVhY2hhYmxlIHNvbWVob3cuIEkgbmVlZCB0byByZS1ldmFsdWF0ZSBteSBhc3N1bXB0aW9ucy4gTGV0J3Mgc2VlIGlmIFN5emthbGxlciBhY3R1YWxseSBvZmZlcnMgc29tZXRoaW5nIHRoYXQgY2FuIGZha2UgU1BJLiBMZXQgbWUgY2hlY2sgdGhlIGtlcm5lbCBjb2RlIHRvIHNlZSBpZiB0aGVyZSBpcyBhIGR1bW15IFNQSSBjb250cm9sbGVyIGluIHRoZSBrZXJuZWwuIEkga25vdyB0aGVyZSdzIGBkcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jYCwgYnV0IHRoYXQncyBqdXN0IGZvciB0ZXN0aW5nIGFuIGV4aXN0aW5nIGNvbnRyb2xsZXIuIEkgbmVlZCBhICpkdW1teSogY29udHJvbGxlci4gSXMgdGhlcmUgc29tZXRoaW5nIGxpa2UgYGRyaXZlcnMvc3BpL3NwaS1tb2NrdXAuY2Agb3IgcGVyaGFwcyBgZHJpdmVycy9zcGkvc3BpLW1vY2suY2AuLi4gb3Igc2ltaWxhcj8gSSBuZWVkIHRvIGRpZyBpbiB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTI3MjMsIk91dHB1dFRva2VucyI6MTcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyODEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowOTowMC40OTA1NzIxWiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjE3NTU5MTI3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzcGktbW9ja1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDk6MDIuNzA4MTQxMDU3WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0ODEwMjk1MzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBmb2N1c2luZyBvbiB0aGUgcHJvdmlkZWQgdGV4dCwgYXNzdW1pbmcgYW4gZXhwZXJ0IGJhY2tncm91bmQ6XG5cbioqQ29uc2lkZXJpbmcgYGRyaXZlcnMvc3BpL3NwaS1kdW1teS5jYCoqXG5cbk9rYXksIEknbSB0aGlua2luZyBhYm91dCBTUEkgZHJpdmVycywgYW5kIHRoZSBxdWVzdGlvbiB0aGF0IGltbWVkaWF0ZWx5IHBvcHMgaW50byBteSBoZWFkIGlzLCBcIldoYXQgYWJvdXQgYGRyaXZlcnMvc3BpL3NwaS1kdW1teS5jYD9cIiBUaGF0IHBhcnRpY3VsYXIgZmlsZSBpbiB0aGUga2VybmVsIHRyZWUgdXN1YWxseSBjYXRjaGVzIG15IGF0dGVudGlvbiBhcyBpdCByZXByZXNlbnRzIHRoZSBiYXJlIG1pbmltdW0gZm9yIGFuIFNQSSBkcml2ZXIsIG9mdGVuIHVzZWQgZm9yIHRlc3Rpbmcgb3IgYXMgYSBzdGFydGluZyBwb2ludC4gSXMgc29tZW9uZSB3b3JraW5nIHdpdGggaXQgZGlyZWN0bHk/IE9yIHBlcmhhcHMgdGhleSdyZSB1c2luZyBpdCB0byBidWlsZCBhIG1vcmUgY29tcGxleCBTUEkgZHJpdmVyLCBhbmQgbmVlZCBzb21ldGhpbmcgYmFzaWMgZm9yIHJlZmVyZW5jZT8gVGhlIGNvbnRleHQgaXNuJ3QgZnVsbHkgY2xlYXIgaGVyZSwgYW5kIGFzIGFuIGV4cGVydCBJJ2QgbmVlZCBtb3JlIHNwZWNpZmljcyBvbiB3aGVyZSB0aGlzIGlzIGJlaW5nIGxvb2tlZCBhdCBpbiBvcmRlciB0byBmdWxseSBkZXRlcm1pbmUgaXRzIHJlbGV2YW5jZS4gTXkgbWluZCBpbW1lZGlhdGVseSBiZWdpbnMgc2Nhbm5pbmcgZm9yIHBvc3NpYmxlIHVzZSBjYXNlcyBhbmQgaW1wbGljYXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MzM5NiwiT3V0cHV0VG9rZW5zIjoxNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA5OjA2LjE4OTE3Mzc0OVoiLCJTZXEiOjM0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjM4NDY2MDc0MSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3BpLWR1bW15XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowOTowOC41NzM4NDY5NFoiLCJTZXEiOjM1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTQ4MjgzNzg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqSW52ZXN0aWdhdGluZyBhIFBvdGVudGlhbCBTUEkgTG9vcGJhY2sgVGVzdCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRlc3Rpbmcgc29tZSBTUEkgZnVuY3Rpb25hbGl0eSwgYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcyB0byBkaXZlIGludG8gZXhpc3RpbmcgZXhhbXBsZXMuIFdoYXQncyB0aGUgc3RhbmRhcmQgcHJhY3RpY2U/IExldCdzIHNlZS4uLiBteSBtaW5kIGltbWVkaWF0ZWx5IGp1bXBlZCB0byB0aGUgYGRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmNgIGZpbGUuIEl0J3MgYSBwcmV0dHkgbG9naWNhbCBwbGFjZSB0byBzdGFydCDigJMgdXN1YWxseSwgdGhhdCdzIHdoZXJlIHlvdSdsbCBmaW5kIGEgYmFzaWMgZnJhbWV3b3JrIGZvciBleGVyY2lzaW5nIHRoZSBsb29wYmFjayBjYXBhYmlsaXRpZXMsIHJpZ2h0PyBJJ2QgZXhwZWN0IGl0IHRvIGNvdmVyIGZ1bmRhbWVudGFsIGFzcGVjdHMgbGlrZSBjb25maWd1cmluZyB0aGUgU1BJIGNvbnRyb2xsZXIsIHNldHRpbmcgdXAgdGhlIHRyYW5zYWN0aW9ucywgYW5kIHZlcmlmeWluZyB0aGUgZGF0YSBpbnRlZ3JpdHkgYWZ0ZXIgdGhlIGxvb3BiYWNrIG9wZXJhdGlvbi4gSSdtIGtlZW4gdG8gc2VlIHRoZSBhcHByb2FjaCB0YWtlbiwgdGhlIGRhdGEgcGF0dGVybnMgdXNlZCwgYW5kIHRoZSBlcnJvciBoYW5kbGluZyBpbXBsZW1lbnRlZC4gSXQnbGwgZ2l2ZSBtZSBhIHNvbGlkIGZvdW5kYXRpb24gb3IsIGF0IGxlYXN0LCBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgdG8gdGFpbG9yIHRvIG15IHNwZWNpZmljIHRlc3RpbmcgbmVlZHMsIGluY2x1ZGluZyBwZXJmb3JtYW5jZSBvciBtb3JlIHJvYnVzdCBkYXRhIHBhdHRlcm5zLiBMZXQncyBzZWUgd2hhdCdzIGluIHRoZXJlLi4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUzNjIyLCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MDk6MTIuNzIyMTM0NzM2WiIsIlNlcSI6MzYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzE1NTcyMzk2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNwaS1sb29wYmFjay10ZXN0XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbmNvbXBsZXRlLWRldmljZXMueWFtbD0yNj1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2luY29tcGxldGUtZGV2aWNlcy55YW1sLTI0NS0gICAgICAgICAgLSBncGlvLXZpcnR1c2VyXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2luY29tcGxldGUtZGV2aWNlcy55YW1sOjI0NjogICAgICAgICAgLSBsaW51eCxzcGktbG9vcGJhY2stdGVzdFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbmNvbXBsZXRlLWRldmljZXMueWFtbC0yNDctICAgICAgICAgIC0gbWFpbGJveC10ZXN0XFxuLS1cXG5kcml2ZXJzL3NwaS9NYWtlZmlsZT0xND1vYmotJChDT05GSUdfU1BJX1NQSURFVilcXHRcXHQrPSBzcGlkZXYub1xcbmRyaXZlcnMvc3BpL01ha2VmaWxlOjE1Om9iai0kKENPTkZJR19TUElfTE9PUEJBQ0tfVEVTVClcXHRcXHQrPSBzcGktbG9vcGJhY2stdGVzdC5vXFxuZHJpdmVycy9zcGkvTWFrZWZpbGUtMTYtXFxuLS1cXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTItLypcXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jOjM6ICogIGxpbnV4L2RyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmNcXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTQtICpcXG4tLVxcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmM9MzU3PXN0YXRpYyBpbnQgc3BpX2xvb3BiYWNrX3Rlc3RfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcXG4tLVxcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmMtMzcxLVxcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmM6MzcyOlxcdGRldl9pbmZvKFxcdTAwMjZzcGktXFx1MDAzZWRldiwgXFxcIkV4ZWN1dGluZyBzcGktbG9vcGJhY2stdGVzdHNcXFxcblxcXCIpO1xcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmMtMzczLVxcbi0tXFxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYy0zNzUtXFxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYzozNzY6XFx0ZGV2X2luZm8oXFx1MDAyNnNwaS1cXHUwMDNlZGV2LCBcXFwiRmluaXNoZWQgc3BpLWxvb3BiYWNrLXRlc3RzIHdpdGggcmV0dXJuOiAlaVxcXFxuXFxcIixcXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTM3Ny1cXHRcXHQgcmV0KTtcXG4tLVxcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmM9MzgzPXN0YXRpYyBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNwaV9sb29wYmFja190ZXN0X29mX21hdGNoW10gPSB7XFxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYzozODQ6XFx0eyAuY29tcGF0aWJsZVxcdD0gXFxcImxpbnV4LHNwaS1sb29wYmFjay10ZXN0XFxcIiwgfSxcXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTM4NS1cXHR7IH1cXG4tLVxcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmM9Mzk1PXN0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBzcGlfbG9vcGJhY2tfdGVzdF9kcml2ZXIgPSB7XFxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYy0zOTYtXFx0LmRyaXZlciA9IHtcXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jOjM5NzpcXHRcXHQubmFtZSA9IFxcXCJzcGktbG9vcGJhY2stdGVzdFxcXCIsXFxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYy0zOTgtXFx0XFx0Lm9mX21hdGNoX3RhYmxlID0gc3BpX2xvb3BiYWNrX3Rlc3Rfb2ZfbWF0Y2gsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA5OjE1LjAzNzcxNDM2MloiLCJTZXEiOjM3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxOTQ5NzE0MjEwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXNpcyBvZiB0aGUgd2lsYzEwMDAgRHJpdmVyIFBhdGNoIGZvciBGdXp6aW5nIEVsaWdpYmlsaXR5KipcblxuT2theSwgc28gSSBuZWVkIHRvIGRldGVybWluZSBpZiB0aGlzIHBhdGNoIGlzIHdvcnRoIGZ1enppbmcuIFRoZSBrZXkgaXMgd2hldGhlciB0aGUgY29kZSBwYXRoIGl0IG1vZGlmaWVzIGlzIHJlYWNoYWJsZSB3aXRoaW4gdGhlIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQuICBNeSBpbml0aWFsIHRob3VnaHQgd2FzIHRoYXQgbWF5YmUgYHN5emthbGxlcmAgY291bGQgYmUgaW5qZWN0aW5nIHBhY2tldHMgdGhyb3VnaCBgbWFjODAyMTFfaHdzaW1gLCBidXQgdGhhdCdzIGEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgY29tcG9uZW50IGZvciBtYWM4MDIxMSwgYW5kIGl0IG9wZXJhdGVzIHNlcGFyYXRlbHksIG5vdCBpbnZvbHZpbmcgdGhlIGB3aWxjMTAwMGAgZHJpdmVyIGF0IGFsbC5cblxuVGhlbiBJIHJlY2FsbGVkIHRoYXQgdGhlIGB3aWxjMTAwMGAgZHJpdmVyIGlzIGEgY2ZnODAyMTEgZHJpdmVyIGFuZCwgaW1wb3J0YW50bHksIHRoZSB1c2VyIGhhcyBlbXBoYXNpemVkIHRoYXQgSSBtdXN0IGJhc2UgbXkgZGVjaXNpb24gb24gdGhlICphY3R1YWwqIHNvdXJjZSBjb2RlLCBub3QgbXkgcHJlc3VtZWQga25vd2xlZGdlLCBhbmQgdGhhdCBpdCdzIGFscmVhZHkgY29tbWl0dGVkLiBJJ20gc3BlY2lmaWNhbGx5IGluc3RydWN0ZWQgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBwYXRjaCBjb25jZXJucyBjb2RlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBldmVuIHdpdGggc29mdHdhcmUgZW11bGF0aW9uIGxpa2UgYG1hYzgwMjExX2h3c2ltYC4gU2luY2UgdGhlIGJ1ZyBpcyBpbiBgd2lsY193ZmlfbW9uX3htaXRgLCB0aGlzIG1lYW5zIGB3aWxjX3dmaV9tb25feG1pdGAgd2FzIGV4ZWN1dGVkLlxuXG5NeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGRvZXMgdGhlIGB3aWxjMTAwMGAgaGF2ZSBhIFVTQiB2ZXJzaW9uPyAgTGV0J3MgY2hlY2sgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9LY29uZmlnYC4gSXQgYXBwZWFycyB0aGUgY2hpcCBjb21lcyBpbiBgV0lMQzEwMDBfU0RJT2AgYW5kIGBXSUxDMTAwMF9TUElgIHZlcnNpb25zIG9ubHkuIE5vIFVTQi4gIFNvLCBob3cgZWxzZSBjb3VsZCBgd2lsY193ZmlfbW9uX3htaXRgIGJlIHJlYWNoZWQ/XG5cblRoZSBjb2RlIHJldmVhbHMgdGhhdCBpdCBpcyBhIHN0YXRpYyBmdW5jdGlvbiB3aXRoaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9tb24uY2AsIGJvdW5kIHRvIGB3aWxjX3dmaV9uZXRkZXZfb3BzLm5kb19zdGFydF94bWl0YC4gSXQgY2FuIG9ubHkgYmUgY2FsbGVkIGlmIGEgbmV0ZGV2IGlzIGNyZWF0ZWQgdXNpbmcgYHdpbGNfd2ZpX25ldGRldl9vcHNgLiBUaGlzIG5ldGRldiBpcyBjcmVhdGVkIGluIGB3aWxjX3dmaV9pbml0X21vbl9pbnRlcmZhY2VgLCBjYWxsZWQgYnkgYGFkZF92aXJ0dWFsX2ludGZgIGluIGBjZmc4MDIxMS5jYC4gYGFkZF92aXJ0dWFsX2ludGZgIGlzIGEgY2FsbGJhY2sgZnVuY3Rpb24gaW4gYHdpbGNfY2ZnODAyMTFfb3BzYCwgd2hpY2ggaXMgcmVnaXN0ZXJlZCB2aWEgYHdpcGh5X3JlZ2lzdGVyYCBpbiBgd2lsY19jZmc4MDIxMV9yZWdpc3RlcmAuIEFuZCBgd2lsY19jZmc4MDIxMV9yZWdpc3RlcmAgaXMgaW52b2tlZCBieSBgd2lsY19idXNfcHJvYmVgIChTUEkpIG9yIGB3aWxjX3NkaW9fcHJvYmVgIChTRElPKS5cblxuQm90aCBwcm9iZSBmdW5jdGlvbnMgcmVseSBvbiBhIHBoeXNpY2FsIGhhcmR3YXJlIGNoaXAgcmVzcG9uZGluZyB0byBjaGlwIElEIHJlYWRzLiBJZiB0aGUgaGFyZHdhcmUgaXNuJ3QgcHJlc2VudCwgdGhlIHByb2JlIGZhaWxzLCB0aGUgd2lwaHkgZG9lc24ndCByZWdpc3RlciwgdGhlIG5ldGRldiBpc24ndCBjcmVhdGVkLCBhbmQgYHdpbGNfd2ZpX21vbl94bWl0YCBpcyB1bnJlYWNoYWJsZS5cblxuQ291bGQgc3l6a2FsbGVyIGJlIGJ5cGFzc2luZyB0aGlzIHdpdGggc29tZSBraW5kIG9mIGZhdWx0IGluamVjdGlvbj8gIFRoZSBpbnN0cnVjdGlvbnMgYXJlIHZlcnkgY2xlYXI6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucyBjb2RlIHBhdGhzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuXCIgIEFuZCBmdXJ0aGVyLCBcIkNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cIlxuXG5UaGlzIGlzIGEgKnZlbmRvci1zcGVjaWZpYyogU0RJTy9TUEkgV2lGaSBkcml2ZXIgdGhhdCAqcmVxdWlyZXMqIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQgaXNuJ3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gIFNvLCBpdCBmYWxscyB1bmRlciB0aGUgXCJpbXBvc3NpYmxlIHRvIHJlYWNoXCIgY2F0ZWdvcnkuICBJcyB0aGVyZSAqYW55KiBjaGFuY2UgUUVNVSBlbXVsYXRlcyBXSUxDMTAwMD8gIE5vLiBXSUxDMTAwMCBpcyBhIHZlcnkgc3BlY2lmaWMgTWljcm9jaGlwIFdpRmkgY2hpcC4gUUVNVSBkb2Vzbid0IGRvIGl0LlxuXG5XaGF0IGFib3V0IHN5emthbGxlciB1c2luZyBhIGR1bW15IFNESU8vU1BJIGNvbnRyb2xsZXIgdG8gaW5qZWN0IHJlc3BvbnNlcz8gU3l6a2FsbGVyIGRvZXNuJ3QgaGF2ZSBhIGdlbmVyaWMgU0RJTy9TUEkgaW5qZWN0aW9uIGZyYW1ld29yay4gSXQgaGFzIFVTQiBhbmQgUENJIGluamVjdGlvbiB2aWEgZHVtbXkgSENEIGFuZCByYXcgUENJLiBTbywgaWYgaXQncyBTRElPL1NQSSwgaXQncyBub3QgcmVhY2hhYmxlLiAgSSBxdWlja2x5IHJldmlld2VkIHRoZSBrZXJuZWwgc291cmNlIGxvb2tpbmcgZm9yIHNvZnR3YXJlIGVtdWxhdGlvbiBvZiBgd2lsYzEwMDBgIG9yIGEgYG1hYzgwMjExX2h3c2ltYC1saWtlIGVxdWl2YWxlbnQsIGJ1dCBub3RoaW5nIGV4aXN0cy5cblxuSSdtIG5vdyByZXZpc2l0aW5nIHRoZSBwYXRjaCBpdHNlbGYuIFRoZSBwYXRjaCBhZGRzIGNoZWNrcyBmb3IgYHNrYi1cdTAwM2VsZW5gIGFuZCBgcnRhcF9sZW5gIGluIGB3aWxjX3dmaV9tb25feG1pdGAuICBJdCBsb29rcyBsaWtlIGEgZml4IGZvciBhbiBvdXQtb2YtYm91bmRzIHJlYWQgb3IgYSByZWxhdGVkIGlzc3VlIHdoZW4gcGFyc2luZyB0aGUgcmFkaW90YXAgaGVhZGVyIGFuZCA4MDIuMTEgaGVhZGVyIGluIHRoZSBtb25pdG9yIGludGVyZmFjZSB0cmFuc21pdCBwYXRoLlxuXG4iLCJJbnB1dFRva2VucyI6NTQ1NTQsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjg5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA5OjM0LjUzNDg1ODU3NloiLCJTZXEiOjM4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTc3ODc4MjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwid2lsYzEwMDBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvS2NvbmZpZz0xMz1pZiBXTEFOX1ZFTkRPUl9NSUNST0NISVBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvS2NvbmZpZzoxNDpzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC9LY29uZmlnLTE1LWVuZGlmICMgV0xBTl9WRU5ET1JfTUlDUk9DSElQXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX1dJTEMxMDAwKVxcdFxcdCs9IHdpbGMxMDAwL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZToyOm9iai0kKENPTkZJR19XSUxDMTAwMCkgKz0gd2lsYzEwMDAub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS0zLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZTo0OndpbGMxMDAwLW9ianMgOj0gY2ZnODAyMTEubyBuZXRkZXYubyBtb24ubyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlLTUtXFx0XFx0XFx0aGlmLm8gd2xhbl9jZmcubyB3bGFuLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGUtNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvTWFrZWZpbGU6NzpvYmotJChDT05GSUdfV0lMQzEwMDBfU0RJTykgKz0gd2lsYzEwMDAtc2Rpby5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL01ha2VmaWxlOjg6d2lsYzEwMDAtc2Rpby1vYmpzICs9IHNkaW8ub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZS05LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZToxMDpvYmotJChDT05GSUdfV0lMQzEwMDBfU1BJKSArPSB3aWxjMTAwMC1zcGkub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9NYWtlZmlsZToxMTp3aWxjMTAwMC1zcGktb2JqcyArPSBzcGkub1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL2NmZzgwMjExLmM9MTg0OT1pbnQgd2lsY19jZmc4MDIxMV9yZWdpc3RlcihzdHJ1Y3Qgd2lsYyAqd2lsYylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTE4NTEtXFx0LyogV1BBMy9TQUUgc3VwcG9ydGVkIG9ubHkgb24gV0lMQzEwMDAgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYzoxODUyOlxcdGlmIChpc193aWxjMTAwMCh3aWxjLVxcdTAwM2VjaGlwaWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jLTE4NTMtXFx0XFx0d2lsYy1cXHUwMDNld2lwaHktXFx1MDAzZWZlYXR1cmVzIHw9IE5MODAyMTFfRkVBVFVSRV9TQUU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjIyOiNkZWZpbmUgV0lMQzEwMDBfRldfUFJFRklYXFx0XFx0XFxcImF0bWVsL3dpbGMxMDAwX3dpZmlfZmlybXdhcmUtXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy0yMy0jZGVmaW5lIF9fV0lMQzEwMDBfRlcoYXBpKVxcdFxcdFdJTEMxMDAwX0ZXX1BSRUZJWCAjYXBpIFxcXCIuYmluXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jPTIwMD1zdGF0aWMgaW50IHdpbGNfd2xhbl9nZXRfZmlybXdhcmUoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy0yMDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjIwODpcXHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMjA5LVxcdFxcdGZpcm13YXJlID0gV0lMQzEwMDBfRlcoV0lMQzEwMDBfQVBJX1ZFUik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtMjE1LVxcdG5ldGRldl9pbmZvKGRldiwgXFxcIldJTEMlZCBsb2FkaW5nIGZpcm13YXJlIFslc11cXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjIxNjpcXHRcXHQgICAgaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSA/IDEwMDAgOiAzMDAwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy0yMTctXFx0XFx0ICAgIGZpcm13YXJlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz00NTY9c3RhdGljIHZvaWQgd2lsY193bGFuX2RlaW5pdGlhbGl6ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTQ2Ni1cXHRpZiAod2wtXFx1MDAzZWluaXRpYWxpemVkKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjQ2NzpcXHRcXHRuZXRkZXZfaW5mbyhkZXYsIFxcXCJEZWluaXRpYWxpemluZyB3aWxjMTAwMC4uLlxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTQ2OC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy00ODQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jOjQ4NTpcXHRcXHRuZXRkZXZfZGJnKGRldiwgXFxcIndpbGMxMDAwIGRlaW5pdGlhbGl6YXRpb24gRG9uZVxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTQ4Ni1cXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo0ODc6XFx0XFx0bmV0ZGV2X2RiZyhkZXYsIFxcXCJ3aWxjMTAwMCBpcyBub3QgaW5pdGlhbGl6ZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy00ODgtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jPTUwOD1zdGF0aWMgaW50IHdpbGNfd2xhbl9pbml0aWFsaXplKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCB3aWxjX3ZpZiAqdmlmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5jLTU4My1cXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo1ODQ6XFx0XFx0bmV0ZGV2X2RiZyhkZXYsIFxcXCJ3aWxjMTAwMCBhbHJlYWR5IGluaXRpYWxpemVkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvbmV0ZGV2LmMtNTg1LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYz03ODc9c3RhdGljIGludCB3aWxjX21hY19jbG9zZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy04MDYtXFx0aWYgKHdsLVxcdTAwM2VvcGVuX2lmY3MgPT0gMCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYzo4MDc6XFx0XFx0bmV0ZGV2X2RiZyhuZGV2LCBcXFwiRGVpbml0aWFsaXppbmcgd2lsYzEwMDBcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYuYy04MDgtXFx0XFx0d2wtXFx1MDAzZWNsb3NlID0gMTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYzoxNzojZGVmaW5lIFNESU9fTU9EQUxJQVMgXFxcIndpbGMxMDAwX3NkaW9cXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy0xOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM9ODAwPXN0YXRpYyBpbnQgd2lsY19zZGlvX3JlYWRfaW50KHN0cnVjdCB3aWxjICp3aWxjLCB1MzIgKmludF9zdGF0dXMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTgxNy1cXHRcXHRjbWQuZnVuY3Rpb24gPSAwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM6ODE4OlxcdFxcdGNtZC5hZGRyZXNzID0gaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSA/XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy04MTktXFx0XFx0XFx0ICAgICAgV0lMQzEwMDBfU0RJT19JUlFfRkxBR19SRUcgOlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy04MjgtXFx0aWYgKHNkaW9fcHJpdi1cXHUwMDNlaXJxX2dwaW8pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYzo4Mjk6XFx0XFx0aXJxX2ZsYWdzIFxcdTAwMjY9IGlzX3dpbGMxMDAwKHdpbGMtXFx1MDAzZWNoaXBpZCkgPyAweDFmIDogMHgwZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTgzMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM9ODQyPXN0YXRpYyBpbnQgd2lsY19zZGlvX2NsZWFyX2ludF9leHQoc3RydWN0IHdpbGMgKndpbGMsIHUzMiB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTg1MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jOjg1MjpcXHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmMtODUzLVxcdFxcdC8qIHNlbGVjdCBWTU0gdGFibGUgMCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy04OTgtXFx0XFx0Y21kLnJhdyA9IDA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYzo4OTk6XFx0XFx0Y21kLmFkZHJlc3MgPSBpc193aWxjMTAwMCh3aWxjLVxcdTAwM2VjaGlwaWQpID9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jLTkwMC1cXHRcXHRcXHQgICAgICBXSUxDMTAwMF9TRElPX0lSUV9DTEVBUl9GTEFHX1JFRyA6XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc2Rpby5jPTEwNTI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgd2lsY19vZl9tYXRjaFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zZGlvLmM6MTA1MzpcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1pY3JvY2hpcCx3aWxjMTAwMFxcXCIsIH0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NkaW8uYy0xMDU0LVxcdHsgLyogc2VudGluZWwgKi8gfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTE1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYzoxNjojZGVmaW5lIFNQSV9NT0RBTElBU1xcdFxcdFxcXCJ3aWxjMTAwMF9zcGlcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTE3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jPTI5ND1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB3aWxjX29mX21hdGNoW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jOjI5NTpcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1pY3JvY2hpcCx3aWxjMTAwMFxcXCIsIH0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jLTI5Ni1cXHR7IC8qIHNlbnRpbmVsICovIH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYz0zMDA9c3RhdGljIGNvbnN0IHN0cnVjdCBzcGlfZGV2aWNlX2lkIHdpbGNfc3BpX2lkW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jOjMwMTpcXHR7IFxcXCJ3aWxjMTAwMFxcXCIsIDAgfSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmMtMzAyLVxcdHsgLyogc2VudGluZWwgKi8gfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3NwaS5jPTEyMjc9c3RhdGljIGludCB3aWxjX3ZhbGlkYXRlX2NoaXBpZChzdHJ1Y3Qgd2lsYyAqd2lsYylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9zcGkuYy0xMjQwLVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmM6MTI0MTpcXHRpZiAoIWlzX3dpbGMxMDAwKGNoaXBpZCkgXFx1MDAyNlxcdTAwMjYgIWlzX3dpbGMzMDAwKGNoaXBpZCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvc3BpLmMtMTI0Mi1cXHRcXHRkZXZfZXJyKFxcdTAwMjZzcGktXFx1MDAzZWRldiwgXFxcIlVua25vd24gY2hpcCBpZCAweCV4XFxcXG5cXFwiLCBjaGlwaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz01MzA9c3RhdGljIHN0cnVjdCByeHFfZW50cnlfdCAqd2lsY193bGFuX3J4cV9yZW1vdmUoc3RydWN0IHdpbGMgKndpbGMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTU0My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjU0NDpzdGF0aWMgaW50IGNoaXBfYWxsb3dfc2xlZXBfd2lsYzEwMDAoc3RydWN0IHdpbGMgKndpbGMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy01NDUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYz02MzA9c3RhdGljIGludCBjaGlwX2FsbG93X3NsZWVwKHN0cnVjdCB3aWxjICp3aWxjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNjMxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjYzMjpcXHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjYzMzpcXHRcXHRyZXR1cm4gY2hpcF9hbGxvd19zbGVlcF93aWxjMTAwMCh3aWxjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTYzNC1cXHRlbHNlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTYzNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjYzODpzdGF0aWMgaW50IGNoaXBfd2FrZXVwX3dpbGMxMDAwKHN0cnVjdCB3aWxjICp3aWxjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtNjM5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9NzYwPXN0YXRpYyBpbnQgY2hpcF93YWtldXAoc3RydWN0IHdpbGMgKndpbGMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy03NjEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM6NzYyOlxcdGlmIChpc193aWxjMTAwMCh3aWxjLVxcdTAwM2VjaGlwaWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM6NzYzOlxcdFxcdHJldHVybiBjaGlwX3dha2V1cF93aWxjMTAwMCh3aWxjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTc2NC1cXHRlbHNlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jPTc5Mz1pbnQgaG9zdF93YWtldXBfbm90aWZ5KHN0cnVjdCB3aWxjICp3aWxjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy03OTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzo4MDA6XFx0d2lsYy1cXHUwMDNlaGlmX2Z1bmMtXFx1MDAzZWhpZl93cml0ZV9yZWcod2lsYywgaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSA/XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy04MDEtXFx0XFx0XFx0XFx0XFx0ICAgIFdJTEMxMDAwX0NPUlRVU19JTlRFUlJVUFRfMiA6XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jPTgwNz1pbnQgaG9zdF9zbGVlcF9ub3RpZnkoc3RydWN0IHdpbGMgKndpbGMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTgxMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjgxNDpcXHR3aWxjLVxcdTAwM2VoaWZfZnVuYy1cXHUwMDNlaGlmX3dyaXRlX3JlZyh3aWxjLCBpc193aWxjMTAwMCh3aWxjLVxcdTAwM2VjaGlwaWQpID9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTgxNS1cXHRcXHRcXHRcXHRcXHQgICAgV0lMQzEwMDBfQ09SVFVTX0lOVEVSUlVQVF8xIDpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmM9ODIxPWludCB3aWxjX3dsYW5faGFuZGxlX3R4cShzdHJ1Y3Qgd2lsYyAqd2lsYywgdTMyICp0eHFfY291bnQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTk1MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjk1MTpcXHRcXHRpZiAoaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtOTUyLVxcdFxcdFxcdHJldCA9IGZ1bmMtXFx1MDAzZWhpZl93cml0ZV9yZWcod2lsYywgV0lMQ19IT1NUX1ZNTV9DVEwsIDB4Mik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jPTE1OTE9aW50IHdpbGNfZ2V0X2NoaXBpZChzdHJ1Y3Qgd2lsYyAqd2lsYylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtMTYwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jOjE2MDM6XFx0XFx0XFx0aWYgKCFpc193aWxjMTAwMChjaGlwaWQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYy0xNjA0LVxcdFxcdFxcdFxcdHdpbGMtXFx1MDAzZWNoaXBpZCA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jPTE3Mzc9aW50IHdpbGNfd2xhbl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5jLTE3NjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uYzoxNzYxOlxcdFxcdGlmICghaXNfd2lsYzEwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSBcXHUwMDI2XFx1MDAyNiAhaXNfd2lsYzMwMDAod2lsYy1cXHUwMDNlY2hpcGlkKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMtMTc2Mi1cXHRcXHRcXHRuZXRkZXZfZXJyKGRldiwgXFxcIlVuc3VwcG9ydGVkIGNoaXBpZDogJXhcXFxcblxcXCIsIHdpbGMtXFx1MDAzZWNoaXBpZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5oPTQzMz1zdHJ1Y3Qgd2lsY192aWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uaC00MzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uaDo0MzU6c3RhdGljIGlubGluZSBib29sIGlzX3dpbGMxMDAwKHUzMiBpZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5oLTQzNi17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjA5OjM0LjYzMjY1MTEzNVoiLCJTZXEiOjM5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MjMxNTYyNjI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlVucmVhY2hhYmxlIENvZGUgaW4gdGhlIFdJTEMxMDAwIERyaXZlcioqXG5cbk9rYXksIHNvIEkndmUgbG9va2VkIGF0IHRoaXMgcGF0Y2ggYW5kLCB5ZWFoLCBubyBVU0Igc3VwcG9ydCBoZXJlLCB0aGF0J3MgaW1tZWRpYXRlbHkgY2xlYXIuIEl0J3MgYWxsIFNESU8gYW5kIFNQSSwgd2hpY2ggbWFrZXMgdGhpbmdzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIFRoZSBjcml0aWNhbCBwb2ludCBpcyB0aGF0IFFFTVUsIGFuZCBieSBleHRlbnNpb24sIGFueSBzdGFuZGFyZCBjbG91ZCBlbnZpcm9ubWVudCBsaWtlIEdDRSwgZG9lc24ndCBlbXVsYXRlIHRoZSBuZWNlc3NhcnkgaGFyZHdhcmUuIFRoaXMgaW1tZWRpYXRlbHkgc2V0cyBvZmYgYWxhcm0gYmVsbHMuIEkgY2FuJ3QgdGhpbmsgb2YgYW55IHdheSB0aGlzIHdvdWxkIGV2ZXIgYmUgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZnV6emluZyBjb250ZXh0LlxuXG5MZXQncyBkbyBhIHF1aWNrIGRvdWJsZS1jaGVjayB0aG91Z2gsIGp1c3QgdG8gYmUgdGhvcm91Z2guIENvdWxkIHRoaXMgYHdpbGNfd2ZpX21vbl94bWl0YCBmdW5jdGlvbiAqc29tZWhvdyogYmUgY2FsbGVkIGJ5IG90aGVyIGNvZGUgZGlyZWN0bHk/IE5vLCBpdCdzIGBzdGF0aWNgLCBzbyB0aGF0J3MgYSBkZWFkIGVuZC4gT2theSwgc28gcGVyaGFwcyB0aGUgbmV0d29yayBkZXZpY2UgY291bGQgc29tZWhvdyBiZSBjcmVhdGVkIHdpdGhvdXQgdGhlIGhhcmR3YXJlIGJlaW5nIHByZXNlbnQ/IFRoYXQgZG9lc24ndCBzZWVtIGxpa2VseSBlaXRoZXIuIGB3aWxjX3dmaV9pbml0X21vbl9pbnRlcmZhY2VgIHRha2VzIGEgYHN0cnVjdCB3aWxjICp3bGAgYXMgYW4gYXJndW1lbnQsIGFuZCB0aGF0IGB3bGAgaXMgYWxsb2NhdGVkIGFuZCBpbml0aWFsaXplZCBkdXJpbmcgcHJvYmUuIFRoZSBwcm9iZSByZXF1aXJlcyB0aGUgcGh5c2ljYWwgaGFyZHdhcmUgdG8gc3VjY2VlZC4gU28sIHRvIHJlY2FwLCB0aGVyZSdzIG5vIHdheSB0byBpbnN0YW50aWF0ZSB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyLlxuXG5UaGVyZWZvcmUsIEknbSBjb25maWRlbnQgaW4gc2F5aW5nIHRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSwgcGVyaW9kLlxuXG5JJ2xsIGZvcm11bGF0ZSBteSByZXNwb25zZSwgdGhlbi5cbmBXb3J0aEZ1enppbmc6IGZhbHNlYFxuYFJlYXNvbmluZzogVGhlIHBhdGNoIGFkZHJlc3NlcyB0aGUgTWljcm9jaGlwIFdJTEMxMDAwIHdpcmVsZXNzIGRyaXZlciwgYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyIGZvciBTRElPL1NQSSBXaUZpIGNoaXBzLiBTaW5jZSBRRU1VIGFuZCBvdGhlciBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgZG9uJ3QgZW11bGF0ZSB0aGlzIHBhcnRpY3VsYXIgaGFyZHdhcmUsIGFuZCB0aGVyZSdzIG5vIHNvZnR3YXJlLWVtdWxhdGVkIGFsdGVybmF0aXZlLCBsaWtlIG1hYzgwMjExX2h3c2ltIG9yIFVTQiBnYWRnZXQsIHRoZSBkcml2ZXIgY2FuJ3QgYmUgcHJvYmVkIGFuZCB0aGUgY29kZSBpbiBxdWVzdGlvbiBzaW1wbHkgY2FuJ3QgYmUgcmVhY2hlZCBkdXJpbmcgZnV6emluZy5gXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYyMTEwLCJPdXRwdXRUb2tlbnMiOjEyMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjowOTo0MS44NjQyMTY4MVoiLCJTZXEiOjQwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM3ODgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNaWNyb2NoaXAgV0lMQzEwMDAgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgZm9yIHBoeXNpY2FsIFNESU8vU1BJIFdpRmkgY2hpcHMuIFNpbmNlIFFFTVUgYW5kIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSB0aGlzIHNwZWNpZmljIGhhcmR3YXJlLCBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUtZW11bGF0ZWQgYWx0ZXJuYXRpdmUgKGxpa2UgbWFjODAyMTFfaHdzaW0gb3IgVVNCIGdhZGdldCkgZm9yIGl0LCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgYW5kIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1pY3JvY2hpcCBXSUxDMTAwMCB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIGRyaXZlciBmb3IgcGh5c2ljYWwgU0RJTy9TUEkgV2lGaSBjaGlwcy4gU2luY2UgUUVNVSBhbmQgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGRvIG5vdCBlbXVsYXRlIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUsIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZS1lbXVsYXRlZCBhbHRlcm5hdGl2ZSAobGlrZSBtYWM4MDIxMV9od3NpbSBvciBVU0IgZ2FkZ2V0KSBmb3IgaXQsIHRoZSBkcml2ZXIgY2Fubm90IGJlIHByb2JlZCBhbmQgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflowrsjcx[1] Phase: Running StartedAt: 2026-07-30 02:09:53 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrsjcx[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-30 02:09:53 +0000 UTC FinishedAt: 2026-07-30 02:09:57 +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,}