Name: series-workflow7dfjw Phase: Failed StartedAt: 2026-08-31 07:14:18 +0000 UTC FinishedAt: 2026-08-31 07:31:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dfjw[0] Phase: Succeeded StartedAt: 2026-08-31 07:14:18 +0000 UTC FinishedAt: 2026-08-31 07:31:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dfjw[0].run-triage Phase: Succeeded StartedAt: 2026-08-31 07:14:18 +0000 UTC FinishedAt: 2026-08-31 07:31:40 +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+CgkJCTx0ZD4yMDI2LzA4LzMxIDA3OjMwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFN5bm9wc3lzIERlc2lnbldhcmUgTUFDIDQgKERXTUFDNCkgdW5pY2FzdCBmaWx0ZXIgY29uZmlndXJhdGlvbiBhbmQgaGFyZHdhcmUgZmVhdHVyZSBkZXRlY3Rpb24gaW4gdGhlIFNUTU1BQyBldGhlcm5ldCBkcml2ZXIuIERXTUFDNCBjb250cm9sbGVycyBhcmUgZW1iZWRkZWQgaW4gcGh5c2ljYWwgU29DcyAoZS5nLiwgSW50ZWwgRWxraGFydCBMYWtlLCBRdWFsY29tbSBFVEhRT1MsIE5YUCBTMzIpIGFuZCBQQ0kgZGV2aWNlcyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBjbG91ZCBlbnZpcm9ubWVudHMgKEdDRSkuIENvbnNlcXVlbnRseSwgdGhlc2UgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDA3OjMwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYmY0NmZmZjU2NWUwN2FmNDUxYTg5MzkzOGE4YjYyNTg1MDQ2MDZlY1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDMxIDA3OjMwOjI5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmhcbmluZGV4IDkyN2VhNjIzMDA3M2YuLjE3MjlmYjI5ZWNlMzggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmhcbkBAIC00MTksNiAmIzQzOzQxOSw4IEBAIHN0cnVjdCBkbWFfZmVhdHVyZXMge1xuIFx0dW5zaWduZWQgaW50IGhhbGZfZHVwbGV4O1xuIFx0dW5zaWduZWQgaW50IGhhc2hfZmlsdGVyO1xuIFx0dW5zaWduZWQgaW50IG11bHRpX2FkZHI7XG4mIzQzO1x0dW5zaWduZWQgaW50IGFkZGl0aW9uYWxfMzJfYWRkcjtcbiYjNDM7XHR1bnNpZ25lZCBpbnQgYWRkaXRpb25hbF82NF9hZGRyO1xuIFx0dW5zaWduZWQgaW50IHBjcztcbiBcdHVuc2lnbmVkIGludCBzbWFfbWRpbztcbiBcdHVuc2lnbmVkIGludCBwbXRfcmVtb3RlX3dha2VfdXA7XG5AQCAtNjI3LDYgJiM0Mzs2MjksNyBAQCBzdHJ1Y3QgbWFjX2RldmljZV9pbmZvIHtcbiBcdHZvaWQgX19pb21lbSAqcGNzcjsgICAgIC8qIHZwb2ludGVyIHRvIGRldmljZSBDU1JzICovXG4gXHR1bnNpZ25lZCBpbnQgbXVsdGljYXN0X2ZpbHRlcl9iaW5zO1xuIFx0dW5zaWduZWQgaW50IHVuaWNhc3RfZmlsdGVyX2VudHJpZXM7XG4mIzQzO1x0dW5zaWduZWQgaW50IG11bHRpX2FkZHI7XG4gXHR1bnNpZ25lZCBpbnQgbWNhc3RfYml0c19sb2cyO1xuIFx0dW5zaWduZWQgaW50IHJ4X2NzdW07XG4gXHR1bnNpZ25lZCBpbnQgbnVtX3ZsYW47XG5AQCAtNjM1LDYgJiM0Mzs2MzgsOCBAQCBzdHJ1Y3QgbWFjX2RldmljZV9pbmZvIHtcbiBcdHU4IHZsYW5fZmFpbF9xO1xuIFx0Ym9vbCBod192bGFuX2VuO1xuIFx0Ym9vbCByZXZlcnNlX3NnbWlpX2VuYWJsZTtcbiYjNDM7XHRib29sIGFkZGl0aW9uYWxfMzJfYWRkcjtcbiYjNDM7XHRib29sIGFkZGl0aW9uYWxfNjRfYWRkcjtcbiBcbiBcdC8qIFRoaXMgc3BpbmxvY2sgcHJvdGVjdHMgcmVhZC1tb2RpZnktd3JpdGUgb2YgdGhlIGludGVycnVwdFxuIFx0ICogbWFzay9lbmFibGUgcmVnaXN0ZXJzLlxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0LmhcbmluZGV4IDYzODI4MzY4MjhiYWMuLjY5Njg0NjUzMTIyOTUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzQuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0LmhcbkBAIC03NSw4ICYjNDM7NzUsNiBAQFxuICNkZWZpbmUgR01BQ19QQUNLRVRfRklMVEVSX0lQRkVcdFx0QklUKDIwKVxuICNkZWZpbmUgR01BQ19QQUNLRVRfRklMVEVSX1JBXHRcdEJJVCgzMSlcbiBcbi0jZGVmaW5lIEdNQUNfTUFYX1BFUkZFQ1RfQUREUkVTU0VTXHQxMjhcbi1cbiAvKiBNQUMgUlggUXVldWUgRW5hYmxlICovXG4gI2RlZmluZSBHTUFDX1JYX1FVRVVFX0NMRUFSKHF1ZXVlKVx0fihHRU5NQVNLKDEsIDApIFx1MDAzY1x1MDAzYyAoKHF1ZXVlKSAqIDIpKVxuICNkZWZpbmUgR01BQ19SWF9BVl9RVUVVRV9FTkFCTEUocXVldWUpXHRCSVQoKHF1ZXVlKSAqIDIpXG5AQCAtMTc2LDcgJiM0MzsxNzQsOSBAQCBlbnVtIHBvd2VyX2V2ZW50IHtcbiBcbiAvKiBNQUMgSFcgZmVhdHVyZXMwIGJpdG1hcCAqL1xuICNkZWZpbmUgR01BQ19IV19GRUFUX1NBVkxBTklOU1x0XHRCSVQoMjcpXG4tI2RlZmluZSBHTUFDX0hXX0ZFQVRfQURETUFDXHRcdEJJVCgxOClcbiYjNDM7I2RlZmluZSBHTUFDX0hXX0ZFQVRfTUFDQURSNjRTRUxcdEJJVCgyNClcbiYjNDM7I2RlZmluZSBHTUFDX0hXX0ZFQVRfTUFDQURSMzJTRUxcdEJJVCgyMylcbiYjNDM7I2RlZmluZSBHTUFDX0hXX0ZFQVRfQURETUFDXHRcdEdFTk1BU0soMjIsIDE4KVxuICNkZWZpbmUgR01BQ19IV19GRUFUX1JYQ09FU0VMXHRcdEJJVCgxNilcbiAjZGVmaW5lIEdNQUNfSFdfRkVBVF9UWENPU0VMXHRcdEJJVCgxNClcbiAjZGVmaW5lIEdNQUNfSFdfRkVBVF9FRUVTRUxcdFx0QklUKDEzKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9jb3JlLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzRfY29yZS5jXG5pbmRleCAxOGIzNTdiMjU3Y2MwLi5mYjViOTZhNDM1MDU0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2NvcmUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2NvcmUuY1xuQEAgLTM2NSwyMiAmIzQzOzM2NSw2MyBAQCBzdGF0aWMgdm9pZCBkd21hYzRfcG10KHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1bnNpZ25lZCBsb25nIG1vZGUpXG4gXHR3cml0ZWwocG10LCBpb2FkZHIgJiM0MzsgR01BQ19QTVQpO1xuIH1cbiBcbiYjNDM7LyoqXG4mIzQzOyAqIGR3bWFjNF91bWFjX2FkZHJfc2xvdCAtIEdldCB0aGUgVUMgZmlsdGVyIHNsb3QgZm9yIHRoZSBOdGggTUFDIGFkZHJlc3NcbiYjNDM7ICogQGh3OiBUaGUgTUFDIGRldmljZSBpbmZvXG4mIzQzOyAqIEByZWdfbjogVGhlIE1BQyBhZGRyZXNzJiMzOTtzIGluZGV4IGluIHRoZSBVQyBsaXN0XG4mIzQzOyAqXG4mIzQzOyAqIE9uIGR3bWFjNCB0aGUgc2xvdHMgYXZhaWxhYmxlIGZvciBVbmljYXN0IE1BQyBmaWx0ZXJpbmcgYXJlIGNvbmZpZ3VyZWQgd2hlblxuJiM0MzsgKiBpbnRlZ3JhdGluZyB0aGUgSVAuXG4mIzQzOyAqXG4mIzQzOyAqICAtIFNsb3QgMCBpcyBhbHdheXMgYXZhaWxhYmxlLCB1c2VkIHRvIHN0b3JlIHRoZSBwcmltYXJ5IE1BQyBhZGRyZXNzXG4mIzQzOyAqICAtIEZyb20gMSB0byAzMSwgdGhlIG51bWJlciBvZiBpbXBsZW1lbnRlZCBzbG90cyBpcyBzZXQgaW4gaHctXHUwMDNlbXVsdGlfYWRkclxuJiM0MzsgKiAgLSBGcm9tIDMyIHRvIDYzLCB0aGUgcmFuZ2UgaXMgYXZhaWxhYmxlIGlmIGh3LVx1MDAzZWFkZGl0aW9uYWxfMzJfYWRkclxuJiM0MzsgKiAgICBpcyBzZXRcbiYjNDM7ICogIC0gRnJvbSA2NCB0byAxMjcsIHRoZSByYW5nZSBpcyBhdmFpbGFibGUgaWYgaHctXHUwMDNlYWRkaXRpb25hbF82NF9hZGRyIGlzIHNldFxuJiM0MzsgKlxuJiM0MzsgKiBBbGwgdGhlIHJhbmdlcyBjYW4gYmUgY29uZmlndXJlZCBpbmRlcGVuZGVudGx5IChlLmcuIDY0IC1cdTAwM2UgMTI3IGNhbiBiZVxuJiM0MzsgKiBhdmFpbGFibGUsIGJ1dCBub3QgMzIgLVx1MDAzZSA2MylcbiYjNDM7ICpcbiYjNDM7ICogUmV0dXJuczogVGhlIHBoeXNpY2FsIHNsb3QgaW5kZXggaW4gdGhlIFVDIGZpbHRlclxuJiM0MzsgKi9cbiYjNDM7c3RhdGljIHVuc2lnbmVkIGludCBkd21hYzRfdW1hY19hZGRyX3Nsb3Qoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXG4mIzQzO1x0XHRcdFx0XHQgIHVuc2lnbmVkIGludCByZWdfbilcbiYjNDM7e1xuJiM0MztcdHVuc2lnbmVkIGludCBlbXB0eV9zbG90cyA9IDA7XG4mIzQzO1xuJiM0MztcdC8qIHJlZ19uIGlzIGluIHRoZSAxLTMxIGJhbmsgOiAxIHRvIDEgbWFwcGluZyAqL1xuJiM0MztcdGlmIChyZWdfbiBcdTAwM2MgKGh3LVx1MDAzZW11bHRpX2FkZHIgJiM0MzsgMSkpXG4mIzQzO1x0XHRyZXR1cm4gcmVnX247XG4mIzQzO1xuJiM0MztcdC8qIEdhcCBiZXR3ZWVuIHRoZSBsYXN0IGFkZHJlc3MgaW4gdGhlIDEtXHUwMDNlMzEgcmFuZ2UgYW5kIHRoZSBuZXh0IHNsb3QgKi9cbiYjNDM7XHRpZiAoaHctXHUwMDNlYWRkaXRpb25hbF8zMl9hZGRyKVxuJiM0MztcdFx0ZW1wdHlfc2xvdHMgPSAzMiAtIChody1cdTAwM2VtdWx0aV9hZGRyICYjNDM7IDEpO1xuJiM0MztcdGVsc2UgaWYgKGh3LVx1MDAzZWFkZGl0aW9uYWxfNjRfYWRkcilcbiYjNDM7XHRcdGVtcHR5X3Nsb3RzID0gNjQgLSAoaHctXHUwMDNlbXVsdGlfYWRkciAmIzQzOyAxKTtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIHJlZ19uICYjNDM7IGVtcHR5X3Nsb3RzO1xuJiM0Mzt9XG4mIzQzO1xuIHN0YXRpYyB2b2lkIGR3bWFjNF9zZXRfdW1hY19hZGRyKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxuIFx0XHRcdFx0IGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZHIsIHVuc2lnbmVkIGludCByZWdfbilcbiB7XG4gXHR2b2lkIF9faW9tZW0gKmlvYWRkciA9IGh3LVx1MDAzZXBjc3I7XG4mIzQzO1x0dW5zaWduZWQgaW50IHNsb3Q7XG4gXG4tXHRzdG1tYWNfZHdtYWM0X3NldF9tYWNfYWRkcihpb2FkZHIsIGFkZHIsIEdNQUNfQUREUl9ISUdIKHJlZ19uKSxcbi1cdFx0XHRcdCAgIEdNQUNfQUREUl9MT1cocmVnX24pKTtcbiYjNDM7XHRzbG90ID0gZHdtYWM0X3VtYWNfYWRkcl9zbG90KGh3LCByZWdfbik7XG4mIzQzO1x0c3RtbWFjX2R3bWFjNF9zZXRfbWFjX2FkZHIoaW9hZGRyLCBhZGRyLCBHTUFDX0FERFJfSElHSChzbG90KSxcbiYjNDM7XHRcdFx0XHQgICBHTUFDX0FERFJfTE9XKHNsb3QpKTtcbiB9XG4gXG4gc3RhdGljIHZvaWQgZHdtYWM0X2dldF91bWFjX2FkZHIoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXG4gXHRcdFx0XHQgdW5zaWduZWQgY2hhciAqYWRkciwgdW5zaWduZWQgaW50IHJlZ19uKVxuIHtcbiBcdHZvaWQgX19pb21lbSAqaW9hZGRyID0gaHctXHUwMDNlcGNzcjtcbiYjNDM7XHR1bnNpZ25lZCBpbnQgc2xvdDtcbiBcbi1cdHN0bW1hY19nZXRfbWFjX2FkZHIoaW9hZGRyLCBhZGRyLCBHTUFDX0FERFJfSElHSChyZWdfbiksXG4tXHRcdFx0ICAgIEdNQUNfQUREUl9MT1cocmVnX24pKTtcbiYjNDM7XHRzbG90ID0gZHdtYWM0X3VtYWNfYWRkcl9zbG90KGh3LCByZWdfbik7XG4mIzQzO1x0c3RtbWFjX2dldF9tYWNfYWRkcihpb2FkZHIsIGFkZHIsIEdNQUNfQUREUl9ISUdIKHNsb3QpLFxuJiM0MztcdFx0XHQgICAgR01BQ19BRERSX0xPVyhzbG90KSk7XG4gfVxuIFxuIHN0YXRpYyBpbnQgZHdtYWM0X3NldF9scGlfbW9kZShzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcbkBAIC01MjIsOSAmIzQzOzU2Myw2IEBAIHN0YXRpYyB2b2lkIGR3bWFjNF9zZXRfZmlsdGVyKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxuIFxuIFx0LyogSGFuZGxlIG11bHRpcGxlIHVuaWNhc3QgYWRkcmVzc2VzICovXG4gXHRpZiAobmV0ZGV2X3VjX2NvdW50KGRldikgJiM0MzsgMSBcdTAwM2UgaHctXHUwMDNldW5pY2FzdF9maWx0ZXJfZW50cmllcykge1xuLVx0XHQvKiBTd2l0Y2ggdG8gcHJvbWlzY3VvdXMgbW9kZSBpZiBtb3JlIHRoYW4gMTI4IGFkZHJzXG4tXHRcdCAqIGFyZSByZXF1aXJlZFxuLVx0XHQgKi9cbiBcdFx0dmFsdWUgfD0gR01BQ19QQUNLRVRfRklMVEVSX1BSO1xuIFx0fSBlbHNlIHtcbiBcdFx0c3RydWN0IG5ldGRldl9od19hZGRyICpoYTtcbkBAIC01MzUsOSAmIzQzOzU3MywxMSBAQCBzdGF0aWMgdm9pZCBkd21hYzRfc2V0X2ZpbHRlcihzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcbiBcdFx0XHRyZWcmIzQzOyYjNDM7O1xuIFx0XHR9XG4gXG4tXHRcdHdoaWxlIChyZWcgXHUwMDNjIEdNQUNfTUFYX1BFUkZFQ1RfQUREUkVTU0VTKSB7XG4tXHRcdFx0d3JpdGVsKDAsIGlvYWRkciAmIzQzOyBHTUFDX0FERFJfSElHSChyZWcpKTtcbi1cdFx0XHR3cml0ZWwoMCwgaW9hZGRyICYjNDM7IEdNQUNfQUREUl9MT1cocmVnKSk7XG4mIzQzO1x0XHR3aGlsZSAocmVnIFx1MDAzYyBody1cdTAwM2V1bmljYXN0X2ZpbHRlcl9lbnRyaWVzKSB7XG4mIzQzO1x0XHRcdHVuc2lnbmVkIGludCBzbG90ID0gZHdtYWM0X3VtYWNfYWRkcl9zbG90KGh3LCByZWcpO1xuJiM0MztcbiYjNDM7XHRcdFx0d3JpdGVsKDAsIGlvYWRkciAmIzQzOyBHTUFDX0FERFJfSElHSChzbG90KSk7XG4mIzQzO1x0XHRcdHdyaXRlbCgwLCBpb2FkZHIgJiM0MzsgR01BQ19BRERSX0xPVyhzbG90KSk7XG4gXHRcdFx0cmVnJiM0MzsmIzQzOztcbiBcdFx0fVxuIFx0fVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9kbWEuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9kbWEuY1xuaW5kZXggMjNmZmUxYWRjZDBkMy4uMTRhYzNmMGU1MWY3NyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9kbWEuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2RtYS5jXG5AQCAtMzg4LDYgJiM0MzszODgsOCBAQCBzdGF0aWMgaW50IGR3bWFjNF9nZXRfaHdfZmVhdHVyZSh2b2lkIF9faW9tZW0gKmlvYWRkcixcbiBcdGRtYV9jYXAtXHUwMDNlaGFsZl9kdXBsZXggPSAoaHdfY2FwIFx1MDAyNiBHTUFDX0hXX0ZFQVRfSERTRUwpIFx1MDAzZVx1MDAzZSAyO1xuIFx0ZG1hX2NhcC1cdTAwM2V2bGhhc2ggPSAoaHdfY2FwIFx1MDAyNiBHTUFDX0hXX0ZFQVRfVkxIQVNIKSBcdTAwM2VcdTAwM2UgNDtcbiBcdGRtYV9jYXAtXHUwMDNlbXVsdGlfYWRkciA9IChod19jYXAgXHUwMDI2IEdNQUNfSFdfRkVBVF9BRERNQUMpIFx1MDAzZVx1MDAzZSAxODtcbiYjNDM7XHRkbWFfY2FwLVx1MDAzZWFkZGl0aW9uYWxfMzJfYWRkciA9IChod19jYXAgXHUwMDI2IEdNQUNfSFdfRkVBVF9NQUNBRFIzMlNFTCkgXHUwMDNlXHUwMDNlIDIzO1xuJiM0MztcdGRtYV9jYXAtXHUwMDNlYWRkaXRpb25hbF82NF9hZGRyID0gKGh3X2NhcCBcdTAwMjYgR01BQ19IV19GRUFUX01BQ0FEUjY0U0VMKSBcdTAwM2VcdTAwM2UgMjQ7XG4gXHRkbWFfY2FwLVx1MDAzZXBjcyA9IChod19jYXAgXHUwMDI2IEdNQUNfSFdfRkVBVF9QQ1NTRUwpIFx1MDAzZVx1MDAzZSAzO1xuIFx0ZG1hX2NhcC1cdTAwM2VzbWFfbWRpbyA9IChod19jYXAgXHUwMDI2IEdNQUNfSFdfRkVBVF9TTUFTRUwpIFx1MDAzZVx1MDAzZSA1O1xuIFx0ZG1hX2NhcC1cdTAwM2VwbXRfcmVtb3RlX3dha2VfdXAgPSAoaHdfY2FwIFx1MDAyNiBHTUFDX0hXX0ZFQVRfUldLU0VMKSBcdTAwM2VcdTAwM2UgNjtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuaW5kZXggZjJmYzg5MTc2NjU0ZS4uODA0MTNiYThkZjU1ZSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbkBAIC02NTgwLDYgJiM0Mzs2NTgwLDE4IEBAIHN0YXRpYyBpbnQgc3RtbWFjX2RtYV9jYXBfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdilcbiBcdFx0c2VxX3ByaW50ZihzZXEsXG4gXHRcdFx0ICAgXCYjMzQ7XFx0TnVtYmVyIG9mIEFkZGl0aW9uYWwgTUFDIGFkZHJlc3MgcmVnaXN0ZXJzOiAlZFxcblwmIzM0OyxcbiBcdFx0XHQgICBwcml2LVx1MDAzZWRtYV9jYXAubXVsdGlfYWRkcik7XG4mIzQzO1x0fSBlbHNlIGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQzQpIHtcbiYjNDM7XHRcdHNlcV9wcmludGYoc2VxLFxuJiM0MztcdFx0XHQgICBcJiMzNDtcXHROdW1iZXIgb2YgTUFDIGFkZHJlc3MgcmVnaXN0ZXJzICgxLTMxKTogJWRcXG5cJiMzNDssXG4mIzQzO1x0XHRcdCAgIHByaXYtXHUwMDNlZG1hX2NhcC5tdWx0aV9hZGRyKTtcbiYjNDM7XHRcdHNlcV9wcmludGYoc2VxLFxuJiM0MztcdFx0XHQgICBcJiMzNDtcXHRBZGRpdGlvbmFsIDMyIE1BQyBhZGRyZXNzIHJlZ2lzdGVycyAoMzItNjMpOiAlc1xcblwmIzM0OyxcbiYjNDM7XHRcdFx0ICAgcHJpdi1cdTAwM2VkbWFfY2FwLmFkZGl0aW9uYWxfMzJfYWRkciA/IFwmIzM0O1lcJiMzNDsgOiBcJiMzNDtOXCYjMzQ7KTtcbiYjNDM7XHRcdHNlcV9wcmludGYoc2VxLFxuJiM0MztcdFx0XHQgICBcJiMzNDtcXHRBZGRpdGlvbmFsIDY0IE1BQyBhZGRyZXNzIHJlZ2lzdGVycyAoNjQtMTI3KTogJXNcXG5cJiMzNDssXG4mIzQzO1x0XHRcdCAgIHByaXYtXHUwMDNlZG1hX2NhcC5hZGRpdGlvbmFsXzY0X2FkZHIgPyBcJiMzNDtZXCYjMzQ7IDogXCYjMzQ7TlwmIzM0Oyk7XG4mIzQzO1x0XHRzZXFfcHJpbnRmKHNlcSwgXCYjMzQ7XFx0SGFzaCBGaWx0ZXI6ICVzXFxuXCYjMzQ7LFxuJiM0MztcdFx0XHQgICAocHJpdi1cdTAwM2VkbWFfY2FwLmhhc2hfZmlsdGVyKSA/IFwmIzM0O1lcJiMzNDsgOiBcJiMzNDtOXCYjMzQ7KTtcbiBcdH0gZWxzZSB7XG4gXHRcdHNlcV9wcmludGYoc2VxLCBcJiMzNDtcXHRIYXNoIEZpbHRlcjogJXNcXG5cJiMzNDssXG4gXHRcdFx0ICAgKHByaXYtXHUwMDNlZG1hX2NhcC5oYXNoX2ZpbHRlcikgPyBcJiMzNDtZXCYjMzQ7IDogXCYjMzQ7TlwmIzM0Oyk7XG5AQCAtNzQ4MCw2ICYjNDM7NzQ5MiwzMyBAQCBzdGF0aWMgaW50IHN0bW1hY19od19pbml0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbiBcdFx0cHJpdi1cdTAwM2VwbGF0LVx1MDAzZXR4X2ZpZm9fc2l6ZSA9IHByaXYtXHUwMDNlZG1hX2NhcC50eF9maWZvX3NpemU7XG4gXHR9XG4gXG4mIzQzO1x0LyogT24gRFdNQUM0IHdlIGNhbiBnZXQgdGhlIGV4YWN0IG51bWJlciBvZiBwZXJmZWN0IGZpbHRlciBlbnRyaWVzIGZyb21cbiYjNDM7XHQgKiB0aGUgSFdfRmVhdHVyZXMuXG4mIzQzO1x0ICovXG4mIzQzO1x0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNCkge1xuJiM0MztcdFx0cHJpdi1cdTAwM2Vody1cdTAwM2VtdWx0aV9hZGRyID0gcHJpdi1cdTAwM2VkbWFfY2FwLm11bHRpX2FkZHI7XG4mIzQzO1x0XHRwcml2LVx1MDAzZWh3LVx1MDAzZWFkZGl0aW9uYWxfMzJfYWRkciA9XG4mIzQzO1x0XHRcdCEhcHJpdi1cdTAwM2VkbWFfY2FwLmFkZGl0aW9uYWxfMzJfYWRkcjtcbiYjNDM7XHRcdHByaXYtXHUwMDNlaHctXHUwMDNlYWRkaXRpb25hbF82NF9hZGRyID1cbiYjNDM7XHRcdFx0ISFwcml2LVx1MDAzZWRtYV9jYXAuYWRkaXRpb25hbF82NF9hZGRyO1xuJiM0MztcbiYjNDM7XHRcdC8qIFdlIGFsd2F5cyBoYXZlIG9uZSBzbG90IGZvciB0aGUgcHJpbWFyeSBNQUMgKi9cbiYjNDM7XHRcdHByaXYtXHUwMDNlaHctXHUwMDNldW5pY2FzdF9maWx0ZXJfZW50cmllcyA9IDE7XG4mIzQzO1xuJiM0MztcdFx0LyogSG93IG1hbnkgc2xvdHMgaW4gdGhlIDEgLVx1MDAzZSAzMSByYW5nZSAqL1xuJiM0MztcdFx0cHJpdi1cdTAwM2Vody1cdTAwM2V1bmljYXN0X2ZpbHRlcl9lbnRyaWVzICYjNDM7PSBwcml2LVx1MDAzZWh3LVx1MDAzZW11bHRpX2FkZHI7XG4mIzQzO1xuJiM0MztcdFx0LyogQWRkaXRpb25hbCAzMiBlbnRyaWVzIGluIHRoZSAzMiAtXHUwMDNlIDYzIHJhbmdlICovXG4mIzQzO1x0XHRpZiAocHJpdi1cdTAwM2Vody1cdTAwM2VhZGRpdGlvbmFsXzMyX2FkZHIpXG4mIzQzO1x0XHRcdHByaXYtXHUwMDNlaHctXHUwMDNldW5pY2FzdF9maWx0ZXJfZW50cmllcyAmIzQzOz0gMzI7XG4mIzQzO1xuJiM0MztcdFx0LyogQWRkaXRpb25hbCA2NCBlbnRyaWVzIGluIHRoZSA2NCAtXHUwMDNlIDEyNyByYW5nZSwgY2FuIGJlIGVuYWJsZWRcbiYjNDM7XHRcdCAqIGluZGVwZW5kZW50bHkgb2YgdGhlIDMyIC1cdTAwM2UgNjMgcmFuZ2VcbiYjNDM7XHRcdCAqL1xuJiM0MztcdFx0aWYgKHByaXYtXHUwMDNlaHctXHUwMDNlYWRkaXRpb25hbF82NF9hZGRyKVxuJiM0MztcdFx0XHRwcml2LVx1MDAzZWh3LVx1MDAzZXVuaWNhc3RfZmlsdGVyX2VudHJpZXMgJiM0Mzs9IDY0O1xuJiM0MztcdH1cbiYjNDM7XG4gXHRwcml2LVx1MDAzZWh3LVx1MDAzZXZsYW5fZmFpbF9xX2VuID1cbiBcdFx0KHByaXYtXHUwMDNlcGxhdC1cdTAwM2VmbGFncyBcdTAwMjYgU1RNTUFDX0ZMQUdfVkxBTl9GQUlMX1FfRU4pO1xuIFx0cHJpdi1cdTAwM2Vody1cdTAwM2V2bGFuX2ZhaWxfcSA9IHByaXYtXHUwMDNlcGxhdC1cdTAwM2V2bGFuX2ZhaWxfcTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAwNzozMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMgNCAoRFdNQUM0KSB1bmljYXN0IGZpbHRlciBjb25maWd1cmF0aW9uIGFuZCBoYXJkd2FyZSBmZWF0dXJlIGRldGVjdGlvbiBpbiB0aGUgU1RNTUFDIGV0aGVybmV0IGRyaXZlci4gRFdNQUM0IGNvbnRyb2xsZXJzIGFyZSBlbWJlZGRlZCBpbiBwaHlzaWNhbCBTb0NzIChlLmcuLCBJbnRlbCBFbGtoYXJ0IExha2UsIFF1YWxjb21tIEVUSFFPUywgTlhQIFMzMikgYW5kIFBDSSBkZXZpY2VzIHRoYXQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGNsb3VkIGVudmlyb25tZW50cyAoR0NFKS4gQ29uc2VxdWVudGx5LCB0aGVzZSBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBiZjQ2ZmZmNTY1ZTA3YWY0NTFhODkzOTM4YThiNjI1ODUwNDYwNmVjCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBBdWcgMzEgMDc6MzA6MjkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oCmluZGV4IDkyN2VhNjIzMDA3M2YuLjE3MjlmYjI5ZWNlMzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oCkBAIC00MTksNiAmIzQzOzQxOSw4IEBAIHN0cnVjdCBkbWFfZmVhdHVyZXMgewogCXVuc2lnbmVkIGludCBoYWxmX2R1cGxleDsKIAl1bnNpZ25lZCBpbnQgaGFzaF9maWx0ZXI7CiAJdW5zaWduZWQgaW50IG11bHRpX2FkZHI7CiYjNDM7CXVuc2lnbmVkIGludCBhZGRpdGlvbmFsXzMyX2FkZHI7CiYjNDM7CXVuc2lnbmVkIGludCBhZGRpdGlvbmFsXzY0X2FkZHI7CiAJdW5zaWduZWQgaW50IHBjczsKIAl1bnNpZ25lZCBpbnQgc21hX21kaW87CiAJdW5zaWduZWQgaW50IHBtdF9yZW1vdGVfd2FrZV91cDsKQEAgLTYyNyw2ICYjNDM7NjI5LDcgQEAgc3RydWN0IG1hY19kZXZpY2VfaW5mbyB7CiAJdm9pZCBfX2lvbWVtICpwY3NyOyAgICAgLyogdnBvaW50ZXIgdG8gZGV2aWNlIENTUnMgKi8KIAl1bnNpZ25lZCBpbnQgbXVsdGljYXN0X2ZpbHRlcl9iaW5zOwogCXVuc2lnbmVkIGludCB1bmljYXN0X2ZpbHRlcl9lbnRyaWVzOwomIzQzOwl1bnNpZ25lZCBpbnQgbXVsdGlfYWRkcjsKIAl1bnNpZ25lZCBpbnQgbWNhc3RfYml0c19sb2cyOwogCXVuc2lnbmVkIGludCByeF9jc3VtOwogCXVuc2lnbmVkIGludCBudW1fdmxhbjsKQEAgLTYzNSw2ICYjNDM7NjM4LDggQEAgc3RydWN0IG1hY19kZXZpY2VfaW5mbyB7CiAJdTggdmxhbl9mYWlsX3E7CiAJYm9vbCBod192bGFuX2VuOwogCWJvb2wgcmV2ZXJzZV9zZ21paV9lbmFibGU7CiYjNDM7CWJvb2wgYWRkaXRpb25hbF8zMl9hZGRyOwomIzQzOwlib29sIGFkZGl0aW9uYWxfNjRfYWRkcjsKIAogCS8qIFRoaXMgc3BpbmxvY2sgcHJvdGVjdHMgcmVhZC1tb2RpZnktd3JpdGUgb2YgdGhlIGludGVycnVwdAogCSAqIG1hc2svZW5hYmxlIHJlZ2lzdGVycy4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0LmgKaW5kZXggNjM4MjgzNjgyOGJhYy4uNjk2ODQ2NTMxMjI5NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0LmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0LmgKQEAgLTc1LDggJiM0Mzs3NSw2IEBACiAjZGVmaW5lIEdNQUNfUEFDS0VUX0ZJTFRFUl9JUEZFCQlCSVQoMjApCiAjZGVmaW5lIEdNQUNfUEFDS0VUX0ZJTFRFUl9SQQkJQklUKDMxKQogCi0jZGVmaW5lIEdNQUNfTUFYX1BFUkZFQ1RfQUREUkVTU0VTCTEyOAotCiAvKiBNQUMgUlggUXVldWUgRW5hYmxlICovCiAjZGVmaW5lIEdNQUNfUlhfUVVFVUVfQ0xFQVIocXVldWUpCX4oR0VOTUFTSygxLCAwKSAmbHQ7Jmx0OyAoKHF1ZXVlKSAqIDIpKQogI2RlZmluZSBHTUFDX1JYX0FWX1FVRVVFX0VOQUJMRShxdWV1ZSkJQklUKChxdWV1ZSkgKiAyKQpAQCAtMTc2LDcgJiM0MzsxNzQsOSBAQCBlbnVtIHBvd2VyX2V2ZW50IHsKIAogLyogTUFDIEhXIGZlYXR1cmVzMCBiaXRtYXAgKi8KICNkZWZpbmUgR01BQ19IV19GRUFUX1NBVkxBTklOUwkJQklUKDI3KQotI2RlZmluZSBHTUFDX0hXX0ZFQVRfQURETUFDCQlCSVQoMTgpCiYjNDM7I2RlZmluZSBHTUFDX0hXX0ZFQVRfTUFDQURSNjRTRUwJQklUKDI0KQomIzQzOyNkZWZpbmUgR01BQ19IV19GRUFUX01BQ0FEUjMyU0VMCUJJVCgyMykKJiM0MzsjZGVmaW5lIEdNQUNfSFdfRkVBVF9BRERNQUMJCUdFTk1BU0soMjIsIDE4KQogI2RlZmluZSBHTUFDX0hXX0ZFQVRfUlhDT0VTRUwJCUJJVCgxNikKICNkZWZpbmUgR01BQ19IV19GRUFUX1RYQ09TRUwJCUJJVCgxNCkKICNkZWZpbmUgR01BQ19IV19GRUFUX0VFRVNFTAkJQklUKDEzKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2NvcmUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9jb3JlLmMKaW5kZXggMThiMzU3YjI1N2NjMC4uZmI1Yjk2YTQzNTA1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2NvcmUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzRfY29yZS5jCkBAIC0zNjUsMjIgJiM0MzszNjUsNjMgQEAgc3RhdGljIHZvaWQgZHdtYWM0X3BtdChzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdW5zaWduZWQgbG9uZyBtb2RlKQogCXdyaXRlbChwbXQsIGlvYWRkciAmIzQzOyBHTUFDX1BNVCk7CiB9CiAKJiM0MzsvKioKJiM0MzsgKiBkd21hYzRfdW1hY19hZGRyX3Nsb3QgLSBHZXQgdGhlIFVDIGZpbHRlciBzbG90IGZvciB0aGUgTnRoIE1BQyBhZGRyZXNzCiYjNDM7ICogQGh3OiBUaGUgTUFDIGRldmljZSBpbmZvCiYjNDM7ICogQHJlZ19uOiBUaGUgTUFDIGFkZHJlc3MmIzM5O3MgaW5kZXggaW4gdGhlIFVDIGxpc3QKJiM0MzsgKgomIzQzOyAqIE9uIGR3bWFjNCB0aGUgc2xvdHMgYXZhaWxhYmxlIGZvciBVbmljYXN0IE1BQyBmaWx0ZXJpbmcgYXJlIGNvbmZpZ3VyZWQgd2hlbgomIzQzOyAqIGludGVncmF0aW5nIHRoZSBJUC4KJiM0MzsgKgomIzQzOyAqICAtIFNsb3QgMCBpcyBhbHdheXMgYXZhaWxhYmxlLCB1c2VkIHRvIHN0b3JlIHRoZSBwcmltYXJ5IE1BQyBhZGRyZXNzCiYjNDM7ICogIC0gRnJvbSAxIHRvIDMxLCB0aGUgbnVtYmVyIG9mIGltcGxlbWVudGVkIHNsb3RzIGlzIHNldCBpbiBody0mZ3Q7bXVsdGlfYWRkcgomIzQzOyAqICAtIEZyb20gMzIgdG8gNjMsIHRoZSByYW5nZSBpcyBhdmFpbGFibGUgaWYgaHctJmd0O2FkZGl0aW9uYWxfMzJfYWRkcgomIzQzOyAqICAgIGlzIHNldAomIzQzOyAqICAtIEZyb20gNjQgdG8gMTI3LCB0aGUgcmFuZ2UgaXMgYXZhaWxhYmxlIGlmIGh3LSZndDthZGRpdGlvbmFsXzY0X2FkZHIgaXMgc2V0CiYjNDM7ICoKJiM0MzsgKiBBbGwgdGhlIHJhbmdlcyBjYW4gYmUgY29uZmlndXJlZCBpbmRlcGVuZGVudGx5IChlLmcuIDY0IC0mZ3Q7IDEyNyBjYW4gYmUKJiM0MzsgKiBhdmFpbGFibGUsIGJ1dCBub3QgMzIgLSZndDsgNjMpCiYjNDM7ICoKJiM0MzsgKiBSZXR1cm5zOiBUaGUgcGh5c2ljYWwgc2xvdCBpbmRleCBpbiB0aGUgVUMgZmlsdGVyCiYjNDM7ICovCiYjNDM7c3RhdGljIHVuc2lnbmVkIGludCBkd21hYzRfdW1hY19hZGRyX3Nsb3Qoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsCiYjNDM7CQkJCQkgIHVuc2lnbmVkIGludCByZWdfbikKJiM0Mzt7CiYjNDM7CXVuc2lnbmVkIGludCBlbXB0eV9zbG90cyA9IDA7CiYjNDM7CiYjNDM7CS8qIHJlZ19uIGlzIGluIHRoZSAxLTMxIGJhbmsgOiAxIHRvIDEgbWFwcGluZyAqLwomIzQzOwlpZiAocmVnX24gJmx0OyAoaHctJmd0O211bHRpX2FkZHIgJiM0MzsgMSkpCiYjNDM7CQlyZXR1cm4gcmVnX247CiYjNDM7CiYjNDM7CS8qIEdhcCBiZXR3ZWVuIHRoZSBsYXN0IGFkZHJlc3MgaW4gdGhlIDEtJmd0OzMxIHJhbmdlIGFuZCB0aGUgbmV4dCBzbG90ICovCiYjNDM7CWlmIChody0mZ3Q7YWRkaXRpb25hbF8zMl9hZGRyKQomIzQzOwkJZW1wdHlfc2xvdHMgPSAzMiAtIChody0mZ3Q7bXVsdGlfYWRkciAmIzQzOyAxKTsKJiM0MzsJZWxzZSBpZiAoaHctJmd0O2FkZGl0aW9uYWxfNjRfYWRkcikKJiM0MzsJCWVtcHR5X3Nsb3RzID0gNjQgLSAoaHctJmd0O211bHRpX2FkZHIgJiM0MzsgMSk7CiYjNDM7CiYjNDM7CXJldHVybiByZWdfbiAmIzQzOyBlbXB0eV9zbG90czsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgdm9pZCBkd21hYzRfc2V0X3VtYWNfYWRkcihzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywKIAkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqYWRkciwgdW5zaWduZWQgaW50IHJlZ19uKQogewogCXZvaWQgX19pb21lbSAqaW9hZGRyID0gaHctJmd0O3Bjc3I7CiYjNDM7CXVuc2lnbmVkIGludCBzbG90OwogCi0Jc3RtbWFjX2R3bWFjNF9zZXRfbWFjX2FkZHIoaW9hZGRyLCBhZGRyLCBHTUFDX0FERFJfSElHSChyZWdfbiksCi0JCQkJICAgR01BQ19BRERSX0xPVyhyZWdfbikpOwomIzQzOwlzbG90ID0gZHdtYWM0X3VtYWNfYWRkcl9zbG90KGh3LCByZWdfbik7CiYjNDM7CXN0bW1hY19kd21hYzRfc2V0X21hY19hZGRyKGlvYWRkciwgYWRkciwgR01BQ19BRERSX0hJR0goc2xvdCksCiYjNDM7CQkJCSAgIEdNQUNfQUREUl9MT1coc2xvdCkpOwogfQogCiBzdGF0aWMgdm9pZCBkd21hYzRfZ2V0X3VtYWNfYWRkcihzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywKIAkJCQkgdW5zaWduZWQgY2hhciAqYWRkciwgdW5zaWduZWQgaW50IHJlZ19uKQogewogCXZvaWQgX19pb21lbSAqaW9hZGRyID0gaHctJmd0O3Bjc3I7CiYjNDM7CXVuc2lnbmVkIGludCBzbG90OwogCi0Jc3RtbWFjX2dldF9tYWNfYWRkcihpb2FkZHIsIGFkZHIsIEdNQUNfQUREUl9ISUdIKHJlZ19uKSwKLQkJCSAgICBHTUFDX0FERFJfTE9XKHJlZ19uKSk7CiYjNDM7CXNsb3QgPSBkd21hYzRfdW1hY19hZGRyX3Nsb3QoaHcsIHJlZ19uKTsKJiM0MzsJc3RtbWFjX2dldF9tYWNfYWRkcihpb2FkZHIsIGFkZHIsIEdNQUNfQUREUl9ISUdIKHNsb3QpLAomIzQzOwkJCSAgICBHTUFDX0FERFJfTE9XKHNsb3QpKTsKIH0KIAogc3RhdGljIGludCBkd21hYzRfc2V0X2xwaV9tb2RlKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LApAQCAtNTIyLDkgJiM0Mzs1NjMsNiBAQCBzdGF0aWMgdm9pZCBkd21hYzRfc2V0X2ZpbHRlcihzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywKIAogCS8qIEhhbmRsZSBtdWx0aXBsZSB1bmljYXN0IGFkZHJlc3NlcyAqLwogCWlmIChuZXRkZXZfdWNfY291bnQoZGV2KSAmIzQzOyAxICZndDsgaHctJmd0O3VuaWNhc3RfZmlsdGVyX2VudHJpZXMpIHsKLQkJLyogU3dpdGNoIHRvIHByb21pc2N1b3VzIG1vZGUgaWYgbW9yZSB0aGFuIDEyOCBhZGRycwotCQkgKiBhcmUgcmVxdWlyZWQKLQkJICovCiAJCXZhbHVlIHw9IEdNQUNfUEFDS0VUX0ZJTFRFUl9QUjsKIAl9IGVsc2UgewogCQlzdHJ1Y3QgbmV0ZGV2X2h3X2FkZHIgKmhhOwpAQCAtNTM1LDkgJiM0Mzs1NzMsMTEgQEAgc3RhdGljIHZvaWQgZHdtYWM0X3NldF9maWx0ZXIoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsCiAJCQlyZWcmIzQzOyYjNDM7OwogCQl9CiAKLQkJd2hpbGUgKHJlZyAmbHQ7IEdNQUNfTUFYX1BFUkZFQ1RfQUREUkVTU0VTKSB7Ci0JCQl3cml0ZWwoMCwgaW9hZGRyICYjNDM7IEdNQUNfQUREUl9ISUdIKHJlZykpOwotCQkJd3JpdGVsKDAsIGlvYWRkciAmIzQzOyBHTUFDX0FERFJfTE9XKHJlZykpOwomIzQzOwkJd2hpbGUgKHJlZyAmbHQ7IGh3LSZndDt1bmljYXN0X2ZpbHRlcl9lbnRyaWVzKSB7CiYjNDM7CQkJdW5zaWduZWQgaW50IHNsb3QgPSBkd21hYzRfdW1hY19hZGRyX3Nsb3QoaHcsIHJlZyk7CiYjNDM7CiYjNDM7CQkJd3JpdGVsKDAsIGlvYWRkciAmIzQzOyBHTUFDX0FERFJfSElHSChzbG90KSk7CiYjNDM7CQkJd3JpdGVsKDAsIGlvYWRkciAmIzQzOyBHTUFDX0FERFJfTE9XKHNsb3QpKTsKIAkJCXJlZyYjNDM7JiM0Mzs7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzRfZG1hLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzRfZG1hLmMKaW5kZXggMjNmZmUxYWRjZDBkMy4uMTRhYzNmMGU1MWY3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2RtYS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9kbWEuYwpAQCAtMzg4LDYgJiM0MzszODgsOCBAQCBzdGF0aWMgaW50IGR3bWFjNF9nZXRfaHdfZmVhdHVyZSh2b2lkIF9faW9tZW0gKmlvYWRkciwKIAlkbWFfY2FwLSZndDtoYWxmX2R1cGxleCA9IChod19jYXAgJmFtcDsgR01BQ19IV19GRUFUX0hEU0VMKSAmZ3Q7Jmd0OyAyOwogCWRtYV9jYXAtJmd0O3ZsaGFzaCA9IChod19jYXAgJmFtcDsgR01BQ19IV19GRUFUX1ZMSEFTSCkgJmd0OyZndDsgNDsKIAlkbWFfY2FwLSZndDttdWx0aV9hZGRyID0gKGh3X2NhcCAmYW1wOyBHTUFDX0hXX0ZFQVRfQURETUFDKSAmZ3Q7Jmd0OyAxODsKJiM0MzsJZG1hX2NhcC0mZ3Q7YWRkaXRpb25hbF8zMl9hZGRyID0gKGh3X2NhcCAmYW1wOyBHTUFDX0hXX0ZFQVRfTUFDQURSMzJTRUwpICZndDsmZ3Q7IDIzOwomIzQzOwlkbWFfY2FwLSZndDthZGRpdGlvbmFsXzY0X2FkZHIgPSAoaHdfY2FwICZhbXA7IEdNQUNfSFdfRkVBVF9NQUNBRFI2NFNFTCkgJmd0OyZndDsgMjQ7CiAJZG1hX2NhcC0mZ3Q7cGNzID0gKGh3X2NhcCAmYW1wOyBHTUFDX0hXX0ZFQVRfUENTU0VMKSAmZ3Q7Jmd0OyAzOwogCWRtYV9jYXAtJmd0O3NtYV9tZGlvID0gKGh3X2NhcCAmYW1wOyBHTUFDX0hXX0ZFQVRfU01BU0VMKSAmZ3Q7Jmd0OyA1OwogCWRtYV9jYXAtJmd0O3BtdF9yZW1vdGVfd2FrZV91cCA9IChod19jYXAgJmFtcDsgR01BQ19IV19GRUFUX1JXS1NFTCkgJmd0OyZndDsgNjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCmluZGV4IGYyZmM4OTE3NjY1NGUuLjgwNDEzYmE4ZGY1NWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYwpAQCAtNjU4MCw2ICYjNDM7NjU4MCwxOCBAQCBzdGF0aWMgaW50IHN0bW1hY19kbWFfY2FwX3Nob3coc3RydWN0IHNlcV9maWxlICpzZXEsIHZvaWQgKnYpCiAJCXNlcV9wcmludGYoc2VxLAogCQkJICAgJiMzNDtcdE51bWJlciBvZiBBZGRpdGlvbmFsIE1BQyBhZGRyZXNzIHJlZ2lzdGVyczogJWRcbiYjMzQ7LAogCQkJICAgcHJpdi0mZ3Q7ZG1hX2NhcC5tdWx0aV9hZGRyKTsKJiM0MzsJfSBlbHNlIGlmIChwcml2LSZndDtwbGF0LSZndDtjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNCkgewomIzQzOwkJc2VxX3ByaW50ZihzZXEsCiYjNDM7CQkJICAgJiMzNDtcdE51bWJlciBvZiBNQUMgYWRkcmVzcyByZWdpc3RlcnMgKDEtMzEpOiAlZFxuJiMzNDssCiYjNDM7CQkJICAgcHJpdi0mZ3Q7ZG1hX2NhcC5tdWx0aV9hZGRyKTsKJiM0MzsJCXNlcV9wcmludGYoc2VxLAomIzQzOwkJCSAgICYjMzQ7XHRBZGRpdGlvbmFsIDMyIE1BQyBhZGRyZXNzIHJlZ2lzdGVycyAoMzItNjMpOiAlc1xuJiMzNDssCiYjNDM7CQkJICAgcHJpdi0mZ3Q7ZG1hX2NhcC5hZGRpdGlvbmFsXzMyX2FkZHIgPyAmIzM0O1kmIzM0OyA6ICYjMzQ7TiYjMzQ7KTsKJiM0MzsJCXNlcV9wcmludGYoc2VxLAomIzQzOwkJCSAgICYjMzQ7XHRBZGRpdGlvbmFsIDY0IE1BQyBhZGRyZXNzIHJlZ2lzdGVycyAoNjQtMTI3KTogJXNcbiYjMzQ7LAomIzQzOwkJCSAgIHByaXYtJmd0O2RtYV9jYXAuYWRkaXRpb25hbF82NF9hZGRyID8gJiMzNDtZJiMzNDsgOiAmIzM0O04mIzM0Oyk7CiYjNDM7CQlzZXFfcHJpbnRmKHNlcSwgJiMzNDtcdEhhc2ggRmlsdGVyOiAlc1xuJiMzNDssCiYjNDM7CQkJICAgKHByaXYtJmd0O2RtYV9jYXAuaGFzaF9maWx0ZXIpID8gJiMzNDtZJiMzNDsgOiAmIzM0O04mIzM0Oyk7CiAJfSBlbHNlIHsKIAkJc2VxX3ByaW50ZihzZXEsICYjMzQ7XHRIYXNoIEZpbHRlcjogJXNcbiYjMzQ7LAogCQkJICAgKHByaXYtJmd0O2RtYV9jYXAuaGFzaF9maWx0ZXIpID8gJiMzNDtZJiMzNDsgOiAmIzM0O04mIzM0Oyk7CkBAIC03NDgwLDYgJiM0Mzs3NDkyLDMzIEBAIHN0YXRpYyBpbnQgc3RtbWFjX2h3X2luaXQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KQogCQlwcml2LSZndDtwbGF0LSZndDt0eF9maWZvX3NpemUgPSBwcml2LSZndDtkbWFfY2FwLnR4X2ZpZm9fc2l6ZTsKIAl9CiAKJiM0MzsJLyogT24gRFdNQUM0IHdlIGNhbiBnZXQgdGhlIGV4YWN0IG51bWJlciBvZiBwZXJmZWN0IGZpbHRlciBlbnRyaWVzIGZyb20KJiM0MzsJICogdGhlIEhXX0ZlYXR1cmVzLgomIzQzOwkgKi8KJiM0MzsJaWYgKHByaXYtJmd0O3BsYXQtJmd0O2NvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KSB7CiYjNDM7CQlwcml2LSZndDtody0mZ3Q7bXVsdGlfYWRkciA9IHByaXYtJmd0O2RtYV9jYXAubXVsdGlfYWRkcjsKJiM0MzsJCXByaXYtJmd0O2h3LSZndDthZGRpdGlvbmFsXzMyX2FkZHIgPQomIzQzOwkJCSEhcHJpdi0mZ3Q7ZG1hX2NhcC5hZGRpdGlvbmFsXzMyX2FkZHI7CiYjNDM7CQlwcml2LSZndDtody0mZ3Q7YWRkaXRpb25hbF82NF9hZGRyID0KJiM0MzsJCQkhIXByaXYtJmd0O2RtYV9jYXAuYWRkaXRpb25hbF82NF9hZGRyOwomIzQzOwomIzQzOwkJLyogV2UgYWx3YXlzIGhhdmUgb25lIHNsb3QgZm9yIHRoZSBwcmltYXJ5IE1BQyAqLwomIzQzOwkJcHJpdi0mZ3Q7aHctJmd0O3VuaWNhc3RfZmlsdGVyX2VudHJpZXMgPSAxOwomIzQzOwomIzQzOwkJLyogSG93IG1hbnkgc2xvdHMgaW4gdGhlIDEgLSZndDsgMzEgcmFuZ2UgKi8KJiM0MzsJCXByaXYtJmd0O2h3LSZndDt1bmljYXN0X2ZpbHRlcl9lbnRyaWVzICYjNDM7PSBwcml2LSZndDtody0mZ3Q7bXVsdGlfYWRkcjsKJiM0MzsKJiM0MzsJCS8qIEFkZGl0aW9uYWwgMzIgZW50cmllcyBpbiB0aGUgMzIgLSZndDsgNjMgcmFuZ2UgKi8KJiM0MzsJCWlmIChwcml2LSZndDtody0mZ3Q7YWRkaXRpb25hbF8zMl9hZGRyKQomIzQzOwkJCXByaXYtJmd0O2h3LSZndDt1bmljYXN0X2ZpbHRlcl9lbnRyaWVzICYjNDM7PSAzMjsKJiM0MzsKJiM0MzsJCS8qIEFkZGl0aW9uYWwgNjQgZW50cmllcyBpbiB0aGUgNjQgLSZndDsgMTI3IHJhbmdlLCBjYW4gYmUgZW5hYmxlZAomIzQzOwkJICogaW5kZXBlbmRlbnRseSBvZiB0aGUgMzIgLSZndDsgNjMgcmFuZ2UKJiM0MzsJCSAqLwomIzQzOwkJaWYgKHByaXYtJmd0O2h3LSZndDthZGRpdGlvbmFsXzY0X2FkZHIpCiYjNDM7CQkJcHJpdi0mZ3Q7aHctJmd0O3VuaWNhc3RfZmlsdGVyX2VudHJpZXMgJiM0Mzs9IDY0OwomIzQzOwl9CiYjNDM7CiAJcHJpdi0mZ3Q7aHctJmd0O3ZsYW5fZmFpbF9xX2VuID0KIAkJKHByaXYtJmd0O3BsYXQtJmd0O2ZsYWdzICZhbXA7IFNUTU1BQ19GTEFHX1ZMQU5fRkFJTF9RX0VOKTsKIAlwcml2LSZndDtody0mZ3Q7dmxhbl9mYWlsX3EgPSBwcml2LSZndDtwbGF0LSZndDt2bGFuX2ZhaWxfcTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMDc6MzA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTU4NQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDIxNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIHN0bW1hYyBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGNsZWFybHkgZGlnZ2luZyBpbnRvIHRoZSBgc3RtbWFjYCBkcml2ZXIg4oCTIHRoYXQmIzM5O3MgdGhlIFNUTWljcm9lbGVjdHJvbmljcyBNdWx0aS1DaGFubmVsIEV0aGVybmV0IE1BQyBkcml2ZXIuIEl0JiMzOTtzIHRvdWNoaW5nIHNvbWUga2V5IGZpbGVzOiBgY29tbW9uLmhgLCBgZHdtYWM0LmhgLCBhbmQgdGhlIGNvcmUgaW1wbGVtZW50YXRpb24gZmlsZXMgbGlrZSBgZHdtYWM0X2NvcmUuY2AsIGBkd21hYzRfZG1hLmNgLCBhbmQgdGhlIG1haW4gZHJpdmVyIGZpbGUgYHN0bW1hY19tYWluLmNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCB0aGUgY29udGV4dCBvZiB0aGlzLiBJcyB0aGlzIHNvbWV0aGluZyBJIGNhbiBlYXNpbHkgdGVzdD8KCkkgbmVlZCB0byBxdWlja2x5IGFzc2VzcyB0aGUgZW11bGF0aW9uIHNpdHVhdGlvbi4gSXMgYHN0bW1hY2AgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVT8gT3IgZG9lcyB0aGlzIHJlcXVpcmUgc3BlY2lmaWMgaGFyZHdhcmUsIG9yIGF0IGxlYXN0IGEgc3BlY2lmaWMgcGxhdGZvcm0gY29uZmlndXJhdGlvbiBpbiBRRU1VIG9yIEdDRT8gSGFuZyBvbuKApiBiZWZvcmUgSSBnbyBkb3duIHRoYXQgcmFiYml0IGhvbGUsIEkgc2hvdWxkIGp1c3QgY29uZmlybSBob3cgaXQmIzM5O3MgKmFjdHVhbGx5KiB1c2VkIGluIHRoZSBrZXJuZWwuIExldCYjMzk7cyBzdGFydCB3aXRoIGEgcXVpY2sgc2VhcmNoIHRvIHBpbnBvaW50IGl0cyB1c2FnZSB0aHJvdWdob3V0IHRoZSBrZXJuZWwgc291cmNlLiBLbm93aW5nIHRoYXQgd2lsbCBnaXZlIG1lIGNvbnRleHQgYmVmb3JlIGRpZ2dpbmcgaW50byBlbXVsYXRpb24gZGV0YWlscy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAwNzozMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdG1tYWMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDExNTY5IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI5PWNvbmZpZyBTVE1NQUNfUExBVEZPUk1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzLVx0aGVscFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNDpcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1LVx0ICBUaGlzIGlzIHRoZSBkcml2ZXIgdXNlZCBvbiBzZXZlcmFsIFNvQ3M6XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz02MD1jb25maWcgRFdNQUNfQU5BUklPTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjY3Olx0ICBUaGlzIHNlbGVjdHMgdGhlIEFuYXJpb24gU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTY4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Nzg9Y29uZmlnIERXTUFDX0lOR0VOSUNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo4NjpcdCAgVGhpcyBzZWxlY3RzIEluZ2VuaWMgU29DcyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctODctXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBJbmdlbmljIFNvQ3Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTkwPWNvbmZpZyBEV01BQ19JUFE4MDZYXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6OTg6XHQgIFRoaXMgc2VsZWN0cyB0aGUgSVBRODA2eCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTk5LVx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBkb2VzIG5vdCB1c2UgYW55IG9mIHRoZSBoYXJkd2FyZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTE0PWNvbmZpZyBEV01BQ19NRURJQVRFS1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMjA6XHQgIFRoaXMgc2VsZWN0cyB0aGUgTVQyNzEyIFNvQyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMjI9Y29uZmlnIERXTUFDX01FU09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMjktXHQgIFRoaXMgc2VsZWN0cyB0aGUgQW1sb2dpYyBNZXNvbiBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMzA6XHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgTWVzb242LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMzEtXHQgIE1lc29uOCwgTWVzb244YiBhbmQgR1hCQiBTb0NzLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTMzPWNvbmZpZyBEV01BQ19OVVZPVE9OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNDEtXHQgIFRoaXMgc2VsZWN0cyB0aGUgTnV2b3RvbiBNQTM1IHNlcmllcyBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE0MjpcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhlIG51dm90b24tZHdtYWMgZHJpdmVyIGlzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE0My1cdCAgdXNlZCBmb3IgTUEzNSBzZXJpZXMgU29Dcy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE0NT1jb25maWcgRFdNQUNfUUNPTV9FVEhRT1Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE1Mi1cdCAgVGhpcyBzZWxlY3RzIHRoZSBRdWFsY29tbSBFVEhRT1MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTUzOlx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNTU9Y29uZmlnIERXTUFDX1JFTkVTQVNfR0JFVEhcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTY0Olx0ICBUaGlzIHNlbGVjdHMgUmVuZXNhcyBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRldmljZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNjUtXHQgIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFJaL1YySChQKSBmYW1pbHksIFJaL1QySCBhbmRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE2OD1jb25maWcgRFdNQUNfUk9DS0NISVBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3Ni1cdCAgVGhpcyBzZWxlY3RzIHRoZSBSb2NrY2hpcCBSSzMyODggU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTc3Olx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTc5PWNvbmZpZyBEV01BQ19SWk4xXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xODctXHQgIFRoaXMgc2VsZWN0cyB0aGUgUmVuZXNhcyBSWi9OMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxODg6XHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBzdXBwb3J0IGNhbiBtYWtlIHVzZSBvZiBhIGN1c3RvbSBNSUlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTg5LVx0ICBjb252ZXJ0ZXIgUENTIGRldmljZS5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE5MT1jb25maWcgRFdNQUNfUzMyXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xOTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE5ODpcdCAgVGhpcyBzZWxlY3RzIE5YUCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5OS1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFMzMkNDIHNlcmllc1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjAzPWNvbmZpZyBEV01BQ19TT0NGUEdBXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMTQtXHQgIFRoaXMgc2VsZWN0cyB0aGUgQWx0ZXJhIFNPQ0ZQR0EgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMTU6XHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxNi1cdCAgYXJyaWE1IGFuZCBjeWNsb25lNSBGUEdBIFNvQ3MuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMTg9Y29uZmlnIERXTUFDX1NPUEhHT1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjI1LVx0ICBUaGlzIHNlbGVjdHMgdGhlIFNvcGhnbyBTb0Mgc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIyNjpcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIyNy1cdCAgZXRoZXJuZXQgY29udHJvbGxlcnMgb24gdmFyaW91cyBTb3BoZ28gU29Dcy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIyOT1jb25maWcgRFdNQUNfU1BBQ0VNSVRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIzNy1cdCAgVGhpcyBzZWxlY3RzIHRoZSBTcGFjZW1pdCBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjM4Olx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjM5LVx0ICBTcGFjZW1pdCBLMyBldGhlcm5ldCBjb250cm9sbGVycy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI0MT1jb25maWcgRFdNQUNfU1RBUkZJVkVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI0OS1cdCAgVGhpcyBzZWxlY3RzIHRoZSBTdGFyRml2ZSBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjUwOlx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjUxLVx0ICBTdGFyRml2ZSBKSDcxMDAgYW5kIEpINzExMCBldGhlcm5ldCBjb250cm9sbGVycy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI1Mz1jb25maWcgRFdNQUNfU1RJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI2MTpcdCAgVGhpcyBzZWxlY3RzIFNUaSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI2Mi1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBvbiBmb3IgdGhlIFNUaSBzZXJpZXNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI2NT1jb25maWcgRFdNQUNfU1RNMzJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjczOlx0ICBUaGlzIHNlbGVjdHMgU1RNMzIgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzQtXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBTVE0zMiBzZXJpZXNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI3Nz1jb25maWcgRFdNQUNfU1VOWElcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI4NC1cdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjg1Olx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgQTIwL0EzMVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yODYtXHQgIEdNQUMgZXRoZXJuZXQgY29udHJvbGxlci5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI4OD1jb25maWcgRFdNQUNfU1VOOElcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI5Ni1cdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjk3Olx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSDMvQTgzVC9BNjRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjk4LVx0ICBFTUFDIGV0aGVybmV0IGNvbnRyb2xsZXIuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMDA9Y29uZmlnIERXTUFDX1NVTjU1SVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzA4LVx0ICBUaGlzIHNlbGVjdHMgQWxsd2lubmVyIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMDk6XHQgIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBBNTIzL1Q1MjdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzEwLVx0ICBHTUFDMjAwIGV0aGVybmV0IGNvbnRyb2xsZXIuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMTI9Y29uZmlnIERXTUFDX1RIRUFEXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMTgtXHQgIFRoaXMgc2VsZWN0cyB0aGUgVC1IRUFEIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzE5Olx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIFQtSEVBRCBUSDE1MjBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzIwLVx0ICBldGhlcm5ldCBjb250cm9sbGVyLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzIyPWNvbmZpZyBEV01BQ19JTVg4XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMzMDpcdCAgVGhpcyBzZWxlY3RzIE5YUCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzMS1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgaS5NWDggc2VyaWVzIGxpa2Vcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMzND1jb25maWcgRFdNQUNfSU5URUxfUExBVFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzQwLVx0ICBUaGlzIHNlbGVjdHMgdGhlIEludGVsIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzQxOlx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZSBJbnRlbCBLZWVtIEJheVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNDItXHQgIFNvQy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM0ND1jb25maWcgRFdNQUNfTE9PTkdTT04xXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM1MTpcdCAgVGhpcyBzZWxlY3RzIExvb25nc29uMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1Mi1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgTG9vbmdzb24xLWJhc2VkIGJvYXJkc1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzU1PWNvbmZpZyBEV01BQ19URUdSQVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzYwLVx0ICBmb3VuZCBvbiB0aGUgTlZJRElBIFRlZ3JhIFNvQyBkZXZpY2VzLiBUaGlzIGRyaXZlciBwcm92aWRlcyB0aGUgZ2x1ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNjE6XHQgIGxheWVyIG9uIHRvcCBvZiB0aGUgc3RtbWFjIGRyaXZlciByZXF1aXJlZCBmb3IgdGhlc2UgTlZJRElBIFRlZ3JhIFNvQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNjItXHQgIGRldmljZXMuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzM9Y29uZmlnIFNUTU1BQ19MSUJQQ0lcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3NS1cdGhlbHBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzc2Olx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBQQ0kgYnVzIGhlbHBlcnMgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM3OD1jb25maWcgRFdNQUNfSU5URUxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM4NS1cdCAgVGhpcyBzZWxlY3RzIHRoZSBJbnRlbCBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM4NjpcdCAgc3RtbWFjIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSW50ZWwgUXVhcmsvRUhML1RHTC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zODg9Y29uZmlnIERXTUFDX0xPT05HU09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTQtXHRoZWxwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM5NTpcdCAgVGhpcyBzZWxlY3RzIHRoZSBMT09OR1NPTiBQQ0kgYnVzIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTYtXHQgIFN1cHBvcnQgZm9yIGV0aGVybmV0IGNvbnRyb2xsZXIgb24gTG9vbmdzb24tMksxMDAwIFNvQyBhbmQgTFM3QTEwMDAgYnJpZGdlLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NDA3PWNvbmZpZyBTVE1NQUNfUENJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MTItXHRoZWxwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQxMzpcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQxNC1cdCAgVGhpcyBkcml2ZXIgd2FzIHRlc3RlZCBvbiBYTElOWCBYQzJWMzAwMCBGRjExNTJBTVQwMjIxXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyOm9iai0kKENPTkZJR19TVE1NQUNfRVRIKSAmIzQzOz0gc3RtbWFjLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjM6c3RtbWFjLW9ianM6PSBzdG1tYWNfbWFpbi5vIHN0bW1hY19ldGh0b29sLm8gc3RtbWFjX21kaW8ubyByaW5nX21vZGUub1x0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTQtXHQgICAgICBjaGFpbl9tb2RlLm8gZHdtYWNfbGliLm8gZHdtYWMxMDAwX2NvcmUubyBkd21hYzEwMDBfZG1hLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01LVx0ICAgICAgZHdtYWMxMDBfY29yZS5vIGR3bWFjMTAwX2RtYS5vIGVuaF9kZXNjLm8gbm9ybV9kZXNjLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo2Olx0ICAgICAgbW1jX2NvcmUubyBzdG1tYWNfaHd0c3RhbXAubyBzdG1tYWNfcHRwLm8gZHdtYWM0X2Rlc2NzLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS03LVx0ICAgICAgZHdtYWM0X2RtYS5vIGR3bWFjNF9saWIubyBkd21hYzRfY29yZS5vIGR3bWFjNS5vIGh3aWYubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6ODpcdCAgICAgIHN0bW1hY190Yy5vIGR3eGdtYWMyX2NvcmUubyBkd3hnbWFjMl9kbWEubyBkd3hnbWFjMl9kZXNjcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo5Olx0ICAgICAgc3RtbWFjX3hkcC5vIHN0bW1hY19lc3QubyBzdG1tYWNfZnBlLm8gc3RtbWFjX3ZsYW4ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTA6XHQgICAgICBzdG1tYWNfcGNzLm8gJChzdG1tYWMteSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTI6c3RtbWFjLSQoQ09ORklHX1NUTU1BQ19TRUxGVEVTVFMpICYjNDM7PSBzdG1tYWNfc2VsZnRlc3RzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMTQtIyBPcmRlcmluZyBtYXR0ZXJzLiBHZW5lcmljIGRyaXZlciBtdXN0IGJlIGxhc3QuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxNTpvYmotJChDT05GSUdfU1RNTUFDX1BMQVRGT1JNKVx0JiM0Mzs9IHN0bW1hYy1wbGF0Zm9ybS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xNi1vYmotJChDT05GSUdfRFdNQUNfQU5BUklPTilcdCYjNDM7PSBkd21hYy1hbmFyaW9uLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT00NT1vYmotJChDT05GSUdfRFdNQUNfVklTQ09OVEkpXHQmIzQzOz0gZHdtYWMtdmlzY29udGkub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDY6c3RtbWFjLXBsYXRmb3JtLW9ianM6PSBzdG1tYWNfcGxhdGZvcm0ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNDctZHdtYWMtYWx0ci1zb2NmcGdhLW9ianMgOj0gZHdtYWMtc29jZnBnYS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS00OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQ5Om9iai0kKENPTkZJR19TVE1NQUNfTElCUENJKVx0JiM0Mzs9IHN0bW1hY19saWJwY2kub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTA6b2JqLSQoQ09ORklHX1NUTU1BQ19QQ0kpXHQmIzQzOz0gc3RtbWFjLXBjaS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01MS1vYmotJChDT05GSUdfRFdNQUNfSU5URUwpXHQmIzQzOz0gZHdtYWMtaW50ZWwub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTUzPW9iai0kKENPTkZJR19EV01BQ19NT1RPUkNPTU0pXHQmIzQzOz0gZHdtYWMtbW90b3Jjb21tLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjU0OnN0bW1hYy1wY2ktb2Jqczo9IHN0bW1hY19wY2kub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNTojaW5jbHVkZSBcJiMzNDtzdG1tYWMuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE3OnN0YXRpYyBpbnQganVtYm9fZnJtKHN0cnVjdCBzdG1tYWNfdHhfcXVldWUgKnR4X3EsIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTgtXHRcdCAgICAgaW50IGNzdW0pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIwLVx0dW5zaWduZWQgaW50IG5vcGFnZWRfbGVuID0gc2tiX2hlYWRsZW4oc2tiKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoyMTpcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHR4X3EtXHUwMDNlcHJpdl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIyLVx0dW5zaWduZWQgaW50IGVudHJ5ID0gdHhfcS1cdTAwM2VjdXJfdHg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTQ1LVx0LyogZG8gbm90IGNsb3NlIHRoZSBkZXNjcmlwdG9yIGFuZCBkbyBub3Qgc2V0IG93biBiaXQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo0NjpcdHN0bW1hY19wcmVwYXJlX3R4X2Rlc2MocHJpdiwgZGVzYywgMSwgYnVmX2xlbiwgY3N1bSwgU1RNTUFDX0NIQUlOX01PREUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNDctXHRcdFx0MCwgZmFsc2UsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy02Mi1cdFx0XHR0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmxlbiA9IGJtYXg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6NjM6XHRcdFx0c3RtbWFjX3ByZXBhcmVfdHhfZGVzYyhwcml2LCBkZXNjLCAwLCBibWF4LCBjc3VtLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTY0LVx0XHRcdFx0XHRTVE1NQUNfQ0hBSU5fTU9ERSwgMSwgZmFsc2UsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03Ni1cdFx0XHQvKiBsYXN0IGRlc2NyaXB0b3IgY2FuIGJlIHNldCBub3cgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo3NzpcdFx0XHRzdG1tYWNfcHJlcGFyZV90eF9kZXNjKHByaXYsIGRlc2MsIDAsIGxlbiwgY3N1bSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03OC1cdFx0XHRcdFx0U1RNTUFDX0NIQUlOX01PREUsIDEsIHRydWUsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYz05OT1zdGF0aWMgdm9pZCBpbml0X2RtYV9jaGFpbih2b2lkICpkZXMsIGRtYV9hZGRyX3QgcGh5X2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEyOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxMjk6c3RhdGljIHZvaWQgcmVmaWxsX2Rlc2MzKHN0cnVjdCBzdG1tYWNfcnhfcXVldWUgKnJ4X3EsIHN0cnVjdCBkbWFfZGVzYyAqcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xMzAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjEzMTpcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHJ4X3EtXHUwMDNlcHJpdl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEzMi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE0NDpzdGF0aWMgdm9pZCBjbGVhbl9kZXNjMyhzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xLCBzdHJ1Y3QgZG1hX2Rlc2MgKnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQ1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNDY6XHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSB0eF9xLVx1MDAzZXByaXZfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNDctXHR1bnNpZ25lZCBpbnQgZW50cnkgPSB0eF9xLVx1MDAzZWRpcnR5X3R4O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTYxOmNvbnN0IHN0cnVjdCBzdG1tYWNfbW9kZV9vcHMgY2hhaW5fbW9kZV9vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTYyLVx0LmluaXQgPSBpbml0X2RtYV9jaGFpbixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xNS0jaW5jbHVkZSBcdTAwM2NsaW51eC9uZXRkZXZpY2UuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTY6I2luY2x1ZGUgXHUwMDNjbGludXgvc3RtbWFjLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTE3LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3BoeS5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDk9c3RhdGljIGlubGluZSBib29sIGR3bWFjX2lzX3htYWMoZW51bSBkd21hY19jb3JlX3R5cGUgY29yZV90eXBlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NzE6c3RydWN0IHN0bW1hY19xX3R4X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcyLVx0dTY0X3N0YXRzX3QgdHhfYnl0ZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo3ODpzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzktXHR1NjRfc3RhdHNfdCB0eF9wYWNrZXRzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6ODY6c3RydWN0IHN0bW1hY190eHFfc3RhdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODctXHQvKiBVcGRhdGVzIHByb3RlY3RlZCBieSB0eCBxdWV1ZSBsb2NrLiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODgtXHRzdHJ1Y3QgdTY0X3N0YXRzX3N5bmMgcV9zeW5jcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjg5Olx0c3RydWN0IHN0bW1hY19xX3R4X3N0YXRzIHE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05Mi1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6OTM6XHRzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMgbmFwaTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk0LX0gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6OTY6c3RydWN0IHN0bW1hY19uYXBpX3J4X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk3LVx0dTY0X3N0YXRzX3QgcnhfYnl0ZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTAzOnN0cnVjdCBzdG1tYWNfcnhxX3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNC1cdC8qIFVwZGF0ZXMgcHJvdGVjdGVkIGJ5IE5BUEkgcG9sbCBsb2dpYy4gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNS1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTA2Olx0c3RydWN0IHN0bW1hY19uYXBpX3J4X3N0YXRzIG5hcGk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDctfSBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwOS0vKiBVcGRhdGVzIG9uIGVhY2ggQ1BVIHByb3RlY3RlZCBieSBub3QgYWxsb3dpbmcgbmVzdGVkIGlycXMuICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoxMTA6c3RydWN0IHN0bW1hY19wY3B1X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExMS1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBzeW5jcDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMTYtLyogRXh0cmEgc3RhdGlzdGljIGFuZCBkZWJ1ZyBpbmZvcm1hdGlvbiBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjExNzpzdHJ1Y3Qgc3RtbWFjX2V4dHJhX3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExOC1cdC8qIFRyYW5zbWl0IGVycm9ycyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTIzNy1cdC8qIHBlciBxdWV1ZSBzdGF0aXN0aWNzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoyMzg6XHRzdHJ1Y3Qgc3RtbWFjX3R4cV9zdGF0cyB0eHFfc3RhdHNbTVRMX01BWF9UWF9RVUVVRVNdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjM5Olx0c3RydWN0IHN0bW1hY19yeHFfc3RhdHMgcnhxX3N0YXRzW01UTF9NQVhfUlhfUVVFVUVTXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI0MDpcdHN0cnVjdCBzdG1tYWNfcGNwdV9zdGF0cyBfX3BlcmNwdSAqcGNwdV9zdGF0cztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI0MS1cdHVuc2lnbmVkIGxvbmcgcnhfZHJvcHBlZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDctLyogU2FmZXR5IEZlYXR1cmUgc3RhdGlzdGljcyBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI0ODpzdHJ1Y3Qgc3RtbWFjX3NhZmV0eV9zdGF0cyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDktXHR1bnNpZ25lZCBsb25nIG1hY19lcnJvcnNbMzJdO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI1Ni0jZGVmaW5lIFNUTU1BQ19TQUZFVFlfRkVBVF9TSVpFXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjU3Olx0KHNpemVvZihzdHJ1Y3Qgc3RtbWFjX3NhZmV0eV9zdGF0cykgLyBzaXplb2YodW5zaWduZWQgbG9uZykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDE2PXN0cnVjdCBkbWFfZmVhdHVyZXMge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTU2Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjU2Nzp2b2lkIHN0bW1hY19heGlfYmxlbl90b19tYXNrKHUzMiAqcmVndmFsLCBjb25zdCB1MzIgKmJsZW4sIHNpemVfdCBsZW4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNTY4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTYxNT1zdHJ1Y3QgbWFjX2RldmljZV9pbmZvIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNjpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfb3BzICptYWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTc6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2Rlc2Nfb3BzICpkZXNjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE4Olx0Y29uc3Qgc3RydWN0IHN0bW1hY19kbWFfb3BzICpkbWE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTk6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX21vZGVfb3BzICptb2RlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjIwOlx0Y29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCAqcHRwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjIxOlx0Y29uc3Qgc3RydWN0IHN0bW1hY190Y19vcHMgKnRjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjIyOlx0Y29uc3Qgc3RydWN0IHN0bW1hY19tbWNfb3BzICptbWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MjM6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2VzdF9vcHMgKmVzdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYyNDpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfdmxhbl9vcHMgKnZsYW47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02MjUtXHRzdHJ1Y3QgZHdfeHBjcyAqeHBjcztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTA6c3RydWN0IHN0bW1hY19yeF9yb3V0aW5nIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY1MS1cdHUzMiByZWdfbWFzaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTU6aW50IGR3bWFjMTAwX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTY6aW50IGR3bWFjMTAwMF9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjU3OmludCBkd21hYzRfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1ODppbnQgZHd4Z21hYzJfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1OTppbnQgZHd4bGdtYWMyX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjE6dm9pZCBzdG1tYWNfc2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCBjb25zdCB1OCBhZGRyWzZdLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjYyLVx0XHRcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjM6dm9pZCBzdG1tYWNfZ2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCB1bnNpZ25lZCBjaGFyICphZGRyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjY0LVx0XHRcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjU6dm9pZCBzdG1tYWNfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjY3OnZvaWQgc3RtbWFjX2R3bWFjNF9zZXRfbWFjX2FkZHIodm9pZCBfX2lvbWVtICppb2FkZHIsIGNvbnN0IHU4IGFkZHJbNl0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjgtXHRcdFx0XHR1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2Njk6dm9pZCBzdG1tYWNfZHdtYWM0X2dldF9tYWNfYWRkcih2b2lkIF9faW9tZW0gKmlvYWRkciwgdW5zaWduZWQgY2hhciAqYWRkcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY3MC1cdFx0XHRcdHVuc2lnbmVkIGludCBoaWdoLCB1bnNpZ25lZCBpbnQgbG93KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY3MTp2b2lkIHN0bW1hY19kd21hYzRfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjcyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMS0jaW5jbHVkZSBcdTAwM2NsaW51eC9vZl9uZXQuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEyOiNpbmNsdWRlIFx1MDAzY2xpbnV4L3N0bW1hYy5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7c3RtbWFjLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxNTojaW5jbHVkZSBcJiMzNDtzdG1tYWNfcGxhdGZvcm0uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTE2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz02Mz1hbmFyaW9uX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjY0Olx0XHQgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtNjUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz05Mz1zdGF0aWMgaW50IGFuYXJpb25fZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtOTYtXHRzdHJ1Y3QgYW5hcmlvbl9nbWFjICpnbWFjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjk3Olx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzo5ODpcdHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHN0bW1hY19yZXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtOTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTAwOlx0cmV0ID0gc3RtbWFjX2dldF9wbGF0Zm9ybV9yZXNvdXJjZXMocGRldiwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAxLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEwNDpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMDUtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjExNjpcdHJldHVybiBkZXZtX3N0bW1hY19wbHRmcl9wcm9iZShwZGV2LCBwbGF0X2RhdCwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE3LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9MTI1PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFuYXJpb25fZHdtYWNfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMjgtXHRcdC5uYW1lICAgICAgICAgICA9IFwmIzM0O2FuYXJpb24tZHdtYWNcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTI5Olx0XHQucG1cdFx0PSBcdTAwMjZzdG1tYWNfcGx0ZnJfcG1fb3BzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEzMC1cdFx0Lm9mX21hdGNoX3RhYmxlID0gYW5hcmlvbl9kd21hY19tYXRjaCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIxLSNpbmNsdWRlIFx1MDAzY2xpbnV4L3Jlc2V0LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjI6I2luY2x1ZGUgXHUwMDNjbGludXgvc3RtbWFjLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI0OiNpbmNsdWRlIFwmIzM0O3N0bW1hY19wbGF0Zm9ybS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI1LSNpbmNsdWRlIFwmIzM0O2R3bWFjNC5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNj1zdGF0aWMgaW50IGR3Y19ldGhfZHdtYWNfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM3Olx0XHRcdFx0ICAgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDMtXHRcdHBsYXRfZGF0LVx1MDAzZWF4aSA9IGRldm1fa3phbGxvYyhcdTAwMjZwZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6NDQ6XHRcdFx0XHRcdCAgICAgc2l6ZW9mKHN0cnVjdCBzdG1tYWNfYXhpKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDUtXHRcdFx0XHRcdCAgICAgR0ZQX0tFUk5FTCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz05Nj1zdGF0aWMgaW50IGR3Y19xb3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6OTc6XHRcdFx0IHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjk4Olx0XHRcdCBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqc3RtbWFjX3JlcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtOTkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxMDA6XHRwbGF0X2RhdC1cdTAwM2VwY2xrID0gc3RtbWFjX3BsdGZyX2ZpbmRfY2xrKHBsYXRfZGF0LCBcJiMzNDtwaHlfcmVmX2Nsa1wmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTEwMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTExNT1zdGF0aWMgdm9pZCB0ZWdyYV9lcW9zX2ZpeF9zcGVlZCh2b2lkICpic3BfcHJpdiwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTExOS1cdGJvb2wgbmVlZHNfY2FsaWJyYXRpb24gPSBmYWxzZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTIwOlx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xMjEtXHR1MzIgdmFsdWU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDEtXHRcdC8qIENhbGlicmF0aW9uIHNob3VsZCBiZSBkb25lIHdpdGggdGhlIE1ESU8gYnVzIGlkbGUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTQyOlx0XHRzdG1tYWNfbWRpb19sb2NrKHByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE3ODpcdFx0c3RtbWFjX21kaW9fdW5sb2NrKHByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzktXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MTg2PXN0YXRpYyBpbnQgdGVncmFfZXFvc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxODc6XHRcdFx0ICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE4ODpcdFx0XHQgICAgc3RydWN0IHN0bW1hY19yZXNvdXJjZXMgKnJlcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTg5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjA0Olx0cGxhdF9kYXQtXHUwMDNlY2xrX3R4X2kgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsIFwmIzM0O3R4XCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjA1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjM3LVx0cGxhdF9kYXQtXHUwMDNlZml4X21hY19zcGVlZCA9IHRlZ3JhX2Vxb3NfZml4X3NwZWVkO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyMzg6XHRwbGF0X2RhdC1cdTAwM2VzZXRfY2xrX3R4X3JhdGUgPSBzdG1tYWNfc2V0X2Nsa190eF9yYXRlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMzktXHRwbGF0X2RhdC1cdTAwM2Vic3BfcHJpdiA9IGVxb3M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNTI9c3RhdGljIHZvaWQgdGVncmFfZXFvc19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjUzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjU0Olx0c3RydWN0IHRlZ3JhX2Vxb3MgKmVxb3MgPSBnZXRfc3RtbWFjX2JzcF9wcml2KFx1MDAyNnBkZXYtXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjU1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjYwPXN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjEtXHRpbnQgKCpwcm9iZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjYyOlx0XHQgICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2MzpcdFx0ICAgICBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqcmVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY0LVx0dm9pZCAoKnJlbW92ZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2NTpcdGNvbnN0IGNoYXIgKnN0bW1hY19jbGtfbmFtZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY2LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNjg9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgZHdjX3Fvc19kYXRhID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjktXHQucHJvYmUgPSBkd2NfcW9zX3Byb2JlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNzA6XHQuc3RtbWFjX2Nsa19uYW1lID0gXCYjMzQ7YXBiX3BjbGtcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3MS19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjczPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhIHRlZ3JhX2Vxb3NfZGF0YSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3NS1cdC5yZW1vdmUgPSB0ZWdyYV9lcW9zX3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjc2Olx0LnN0bW1hY19jbGtfbmFtZSA9IFwmIzM0O3NsYXZlX2J1c1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjc3LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNzk9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgZnNkX2Vxb3NfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjgwOlx0LnN0bW1hY19jbGtfbmFtZSA9IFwmIzM0O3NsYXZlX2J1c1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjgxLX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yODM9c3RhdGljIGludCBkd2NfZXRoX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODUtXHRjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhICpkYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODY6XHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODc6XHRzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyBzdG1tYWNfcmVzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODgtXHRpbnQgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjkxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTI6XHRtZW1zZXQoXHUwMDI2c3RtbWFjX3JlcywgMCwgc2l6ZW9mKHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjk0LVx0LyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI5NTpcdCAqIFNpbmNlIHN0bW1hY19wbGF0Zm9ybSBzdXBwb3J0cyBuYW1lIElSUSBvbmx5LCBiYXNpYyBwbGF0Zm9ybVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTYtXHQgKiByZXNvdXJjZSBpbml0aWFsaXphdGlvbiBpcyBkb25lIGluIHRoZSBnbHVlIGxvZ2ljLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTctXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjk4Olx0c3RtbWFjX3Jlcy5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTk6XHRpZiAoc3RtbWFjX3Jlcy5pcnEgXHUwMDNjIDApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwMDpcdFx0cmV0dXJuIHN0bW1hY19yZXMuaXJxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDE6XHRzdG1tYWNfcmVzLndvbF9pcnEgPSBzdG1tYWNfcmVzLmlycTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDM6XHRzdG1tYWNfcmVzLmFkZHIgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNDpcdGlmIChJU19FUlIoc3RtbWFjX3Jlcy5hZGRyKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzA1Olx0XHRyZXR1cm4gUFRSX0VSUihzdG1tYWNfcmVzLmFkZHIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNzpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzA4LVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMxNjpcdHBsYXRfZGF0LVx1MDAzZXN0bW1hY19jbGsgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMxNzpcdFx0XHRcdFx0XHQgICAgIGRhdGEtXHUwMDNlc3RtbWFjX2Nsa19uYW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTktXHRpZiAoZGF0YS1cdTAwM2Vwcm9iZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzIwOlx0XHRyZXQgPSBkYXRhLVx1MDAzZXByb2JlKHBkZXYsIHBsYXRfZGF0LCBcdTAwMjZzdG1tYWNfcmVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzIxLVx0aWYgKHJldCBcdTAwM2MgMCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMzA6XHRyZXQgPSBzdG1tYWNfZHZyX3Byb2JlKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBwbGF0X2RhdCwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMzMS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNDM9c3RhdGljIHZvaWQgZHdjX2V0aF9kd21hY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzQ3Olx0c3RtbWFjX2R2cl9yZW1vdmUoXHUwMDI2cGRldi1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNDgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNjE9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZHdjX2V0aF9kd21hY19kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNjUtXHRcdC5uYW1lICAgICAgICAgICA9IFwmIzM0O2R3Yy1ldGgtZHdtYWNcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM2NjpcdFx0LnBtICAgICAgICAgICAgID0gXHUwMDI2c3RtbWFjX3BsdGZyX3BtX29wcyxcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDA3OjMwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNDcwCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogNTA3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRnV6emluZyBQb3RlbnRpYWwgb2YgYW4gYHN0bW1hY2AgUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIGBzdG1tYWNgLi4uIHJpZ2h0LCB0aGF0JiMzOTtzIHRoZSBTeW5vcHN5cyBEZXNpZ25XYXJlIEV0aGVybmV0IE1BQyBkcml2ZXIsIHVzZWQgYWNyb3NzIGEgdG9uIG9mIGVtYmVkZGVkIFNvQ3MgYW5kIFBDSSBib2FyZHMuIEFsbHdpbm5lciwgSW50ZWwsIFJlbmVzYXMsIHRoZSB1c3VhbCBzdXNwZWN0cy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGtub3cgaG93IGl0JiMzOTtzIHVzZWQgc28gSSBjYW4gYXNzZXNzIHdoZXRoZXIgaXQmIzM5O3Mgd29ydGggZnV6emluZy4KCk15IGltbWVkaWF0ZSBxdWVzdGlvbnMgYXJlOiBEb2VzIFFFTVUgZXZlbiAqZW11bGF0ZSogYHN0bW1hY2AgaGFyZHdhcmU/IERvZXMgaXQgZW11bGF0ZSB0aGUgaGFyZHdhcmUgdGhhdCB0aGUgcGF0Y2ggaXMgbWVhbnQgdG8gZml4PyBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBhbnkgb2YgdGhlIGhhcmR3YXJlIGl0IHN1cHBvcnRzIChTVE0zMiwgQWxsd2lubmVyIEExMC9IMywgZXRjLikgYXJlIGVtdWxhdGVkIG9yIHJlYWNoYWJsZSB0aHJvdWdoIHRoZSBlbXVsYXRlZCBzZXR1cC4KCkFuZCB3aGF0IGFib3V0IFN5emthbGxlcj8gSXMgYHN0bW1hY2AgZnV6emVkIGluIHRoZSBzdGFuZGFyZCBzZXR1cHM/IFg4Nl82NCwgYXJtNjQuLi4gZG9lcyBTeXprYWxsZXIgZXZlbiB0YXJnZXQgaXQ/CgpXYWl0LCBJIG5lZWQgdG8gZ28gYmFjayBhbmQgcmUtcmVhZCB0aGUgZ3VpZGVsaW5lcyBjYXJlZnVsbHkuIEkgaGF2ZSB0byBtYWtlIHN1cmUgdGhpcyBwYXRjaCBpc24mIzM5O3QganVzdCBkb2N1bWVudGF0aW9uLCBsb2dnaW5nLCBkZWNvcmF0aXZlIGNoYW5nZXMsIG9yIHNvbWV0aGluZyB1bnJlYWNoYWJsZSBpbiBRRU1VLiBUaGF0JiMzOTtzIGEgd2FzdGUgb2YgdGltZS4gSSBoYXZlIHRvIGNvbnNpZGVyIHdoZXRoZXIgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy4gVGhhdCYjMzk7cyB0aGUga2V5LgoKT2theSwgYmFjayB0byBgc3RtbWFjYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgKmV4YWN0bHkqIHdoaWNoIGhhcmR3YXJlIElEcyBvciBQQ0kgZGV2aWNlcyBgc3RtbWFjYCBzdXBwb3J0cywgYW5kIHRoZW4gZGV0ZXJtaW5lIGlmIFFFTVUgY2FuIGhhbmRsZSB0aGVtLCBpZiB0aGV5JiMzOTtyZSByZWFjaGFibGUuIEkgbmVlZCB0byBnZXQgaW50byB0aGUgY29kZSBhbmQgc3RhcnQgbG9va2luZyBhdCBmaWxlcyBsaWtlIGBzdG1tYWNfcGNpLmNgLCBgZHdtYWMtaW50ZWwuY2AsIGBkd21hYy1sb29uZ3Nvbi5jYCwgYW5kIHNvIG9uLiBUaGF0JiMzOTtzIHRoZSBuZXh0IHN0ZXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMDc6MzA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TU9EVUxFX0RFVklDRV9UQUJMRSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9MTE5PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGFuYXJpb25fZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTIyLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTIzOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGFuYXJpb25fZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEyNC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTM1Mz1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBkd2NfZXRoX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNTgtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzU5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGR3Y19ldGhfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNjAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jPTM1MD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBlaWM3NzAwX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jLTM1OS19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jOjM2MDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBlaWM3NzAwX2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWVpYzc3MDAuYy0zNjEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZ2VuZXJpYy5jPTUyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGR3bWFjX2dlbmVyaWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1nZW5lcmljLmMtNjYtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYzo2NzpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBkd21hY19nZW5lcmljX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYy02OC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYz0zODQ9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaW14X2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmMtMzg5LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYzozOTA6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgaW14X2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlteC5jLTM5MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmM9MjYyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGluZ2VuaWNfbWFjX29mX21hdGNoZXNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmMtMjY5LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmM6MjcwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGluZ2VuaWNfbWFjX29mX21hdGNoZXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW5nZW5pYy5jLTI3MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmM9MzY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaW50ZWxfZXRoX3BsYXRfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmMtMzktfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYzo0MDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBpbnRlbF9ldGhfcGxhdF9tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmMtNDEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0xMzk1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBpbnRlbF9ldGhfcGNpX2lkX3RhYmxlW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xNDE0LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjE0MTU6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGludGVsX2V0aF9wY2lfaWRfdGFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xNDE2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlwcTgwNnguYz00OTE9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaXBxODA2eF9nbWFjX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTQ5NC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jOjQ5NTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBpcHE4MDZ4X2dtYWNfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTQ5Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTU5Nj1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgbG9vbmdzb25fZHdtYWNfaWRfdGFibGVbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTYwMS19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo2MDI6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGxvb25nc29uX2R3bWFjX2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNjAzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uMS5jPTIxNj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBsczF4X2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmMtMjI2LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYzoyMjc6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbHMxeF9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYy0yMjgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jPTcxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGxwYzE4eHhfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmMtNzQtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYzo3NTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBscGMxOHh4X2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy03Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jPTY2Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtZWRpYXRla19kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmMtNjY5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYzo2NzA6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbWVkaWF0ZWtfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYy02NzEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb24uYz03Nj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtZXNvbjZfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jLTc5LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jOjgwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG1lc29uNl9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jLTgxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYz00ODI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbWVzb244Yl9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYy01MDQtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYzo1MDU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbWVzb244Yl9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmMtNTA2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jPTM2Nz1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgZHdtYWNfbW90b3Jjb21tX3BjaV9pZF90YWJsZVtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTM3MC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MzcxOk1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBkd21hY19tb3RvcmNvbW1fcGNpX2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTM3Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmM9MTE4PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG52dF9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYy0xMjEtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYzoxMjI6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbnZ0X2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYy0xMjMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYz04MDA9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcWNvbV9ldGhxb3NfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1xY29tLWV0aHFvcy5jLTgwNi19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYzo4MDc6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgcWNvbV9ldGhxb3NfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYy04MDgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmVuZXNhcy1nYmV0aC5jPTIxNj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCByZW5lc2FzX2diZXRoX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmVuZXNhcy1nYmV0aC5jLTIyMS19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmVuZXNhcy1nYmV0aC5jOjIyMjpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCByZW5lc2FzX2diZXRoX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYy0yMjMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYz0xNjE2PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHJrX2dtYWNfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jLTE2MzQtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmM6MTYzNTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBya19nbWFjX2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmMtMTYzNi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yem4xLmM9NzU9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcnpuMV9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYy03OC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcnpuMS5jOjc5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHJ6bjFfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcnpuMS5jLTgwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXMzMi5jPTIxNj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzMzJfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYy0yMTktfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXMzMi5jOjIyMDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzMzJfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmMtMjIxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYz02NzM9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc29jZnBnYV9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy02NzgtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYzo2Nzk6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc29jZnBnYV9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNjgwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jPTcyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNvcGhnb19kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jLTc2LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYzo3NzpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzb3BoZ29fZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29waGdvLmMtNzgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3BhY2VtaXQuYz0yMTA9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3BhY2VtaXRfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jLTIxMy19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3BhY2VtaXQuYzoyMTQ6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3BhY2VtaXRfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3BhY2VtaXQuYy0yMTUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYz0xNjA9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3RhcmZpdmVfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTE2NC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYzoxNjU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3RhcmZpdmVfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYy0xNjYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RpLmM9Mjk2PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN0aV9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTI5OS19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RpLmM6MzAwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN0aV9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYy0zMDEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RtMzIuYz02NjI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3RtMzJfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdG0zMi5jLTY2OC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RtMzIuYzo2Njk6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3RtMzJfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RtMzIuYy02NzAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuNTVpLmM9MTQxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN1bjU1aV9nbWFjMjAwX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuNTVpLmMtMTQ0LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW41NWkuYzoxNDU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3VuNTVpX2dtYWMyMDBfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuNTVpLmMtMTQ2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmM9MTI2OD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdW44aV9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmMtMTI4Mi19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuOGkuYzoxMjgzOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN1bjhpX2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmMtMTI4NC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jPTE1MD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdW43aV9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bnhpLmMtMTUzLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jOjE1NDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdW43aV9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jLTE1NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jPTM5Nz1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB0ZWdyYV9tZ2JlX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYy00MDAtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmM6NDAxOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHRlZ3JhX21nYmVfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYy00MDItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGhlYWQuYz0yNjc9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgdGhlYWRfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10aGVhZC5jLTI3MC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGhlYWQuYzoyNzE6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgdGhlYWRfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGhlYWQuYy0yNzItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdmlzY29udGkuYz0yNTU9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgdmlzY29udGlfZXRoX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdmlzY29udGkuYy0yNTgtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXZpc2NvbnRpLmM6MjU5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHZpc2NvbnRpX2V0aF9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy12aXNjb250aS5jLTI2MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjAzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBzdG1tYWNfaWRfdGFibGVbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjA5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxMDpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgc3RtbWFjX2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTEtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMDc6MzA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY3NjQKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAxMTA1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBRRU1VIEVtdWxhdGlvbiBDYXBhYmlsaXRpZXMgZm9yIEV0aGVybmV0IERyaXZlcnMqKgoKT2theSwgaGVyZSYjMzk7cyB3aGF0IEkmIzM5O20gdGhpbmtpbmcuLi4gZmlyc3QsIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIFFFTVUgKmFjdHVhbGx5KiBlbXVsYXRlcyB0aGUgc3RtbWFjIGRyaXZlciBhdCBhbGwuIElzIGl0IGEgc3RhbmRhcmQgZW11bGF0aW9uIG9yIGlzIGl0IHNvbWV0aGluZyB0aGF0IHJlcXVpcmVzIGEgc3BlY2lmaWMgUUVNVSBjb25maWd1cmF0aW9uIG9yIGV2ZW4gYSBjdXN0b20gc2V0dXA/IE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBjaGVjayBpZiBpdCYjMzk7cyBlbXVsYXRlZCBpbiBhbnkgY29tbW9uIEFSTSBwbGF0Zm9ybXMuCgpMZXQmIzM5O3Mgc2VlLiBEb2VzIFFFTVUgaGF2ZSBzdXBwb3J0IGZvciBgYWxsd2lubmVyLWVtYWNgLCBvciBzcGVjaWZpY2FsbHkgYGFsbHdpbm5lci1zdW44aS1lbWFjYCwgb3IgZXZlbiB0aGUgZ2VuZXJpYyBgZGVzaWdud2FyZWAgZXRoZXJuZXQgY29udHJvbGxlcj8gSSByZWNhbGwgc2VlaW5nIHNvbWV0aGluZy4uLiBBaCwgeWVzLCBRRU1VIGRvZXMgaGF2ZSBgYWxsd2lubmVyLXN1bjhpLWVtYWNgLCBhbG9uZyB3aXRoIG90aGVyIG9wdGlvbnMgbGlrZSBgY2FkZW5jZV9nZW1gLCBgaW14X2ZlY2AsIGFuZCBgbGFuOTExOGAuIEJ1dCwgZG9lcyBpdCBoYXZlIHRoZSBzcGVjaWZpYyBgZHdjX2V0aF9xb3NgIG9yIHNpbXBseSBgZHdtYWNgIHRoYXQmIzM5O3MgcmVsZXZhbnQgdG8gdGhpcyBwb3RlbnRpYWwgaW52ZXN0aWdhdGlvbj8KCk9rYXksIGl0IHNlZW1zIFFFTVUgaGFzIGBhbGx3aW5uZXItc3VuOGktZW1hY2AsIGFuZCBJIHNlZSB0aGUgcGF0aCBgaHcvbmV0L2FsbHdpbm5lci1zdW44aS1lbWFjLmNgLiBEb2VzIHRoYXQgYGFsbHdpbm5lci1zdW44aS1lbWFjYCBjb3JyZXNwb25kIHRvIHRoZSBgc3VuOGlfZHdtYWNgIG9yIHRoZSBtb3JlIGdlbmVyYWwgYHN1bjhpLWVtYWNgPwoKV2FpdCwgYmVmb3JlIGdldHRpbmcgdG9vIGRlZXAsIGxldCYjMzk7cyByZWZyZXNoIG91ciBtZW1vcnkgb2YgdGhlIHJ1bGVzOiB0aGUgY29kZSBpcyBvbmx5IGNvbnNpZGVyZWQgJiMzNDt3b3J0aCBmdXp6aW5nJiMzNDsgaWYgdGhlIGNoYW5nZXMgaW1wYWN0IHJlYWNoYWJsZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuIFRoaW5ncyBsaWtlIGRvY3VtZW50YXRpb24sIEtjb25maWcsIG9yIGNvbW1lbnRzIGFyZSBvdXQuIEFsc28sIHdlJiMzOTtyZSBub3QgaW50ZXJlc3RlZCBpbiBwYXJ0cyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIFRoYXQgaW5jbHVkZXMgdGhpbmdzIGxpa2UgdmVuZG9yLXNwZWNpZmljIFBDSWUgY2FyZHMsIHRlYXJkb3duIGNvZGUsIGFuZCBkcml2ZXJzIHJlcXVpcmluZyBwaHlzaWNhbCBoYXJkd2FyZS4KClNvLCBJIG5lZWQgdG8gY2hlY2sgaWYgYHN0bW1hYy9kd21hYzRgIGlzIHJlYWNoYWJsZSBpbiBRRU1VIG9yIEdDRS4KCkxldCYjMzk7cyBlbnVtZXJhdGUgdGhlIGV0aGVybmV0IGRyaXZlcnMgdGhhdCBhcmUgZW11bGF0ZWQgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50ICh4ODYgb3IgYXJtNjQpLiBJIGtub3cgdGhlcmUgYXJlIGRyaXZlcnMgbGlrZSBgZTEwMDBgLCBgZTEwMDBlYCwgYGlnYmAsIGB2bXhuZXQzYCwgYHJ0bDgxMzlgLCBgcGNuZXRgLCBgbmUya19wY2lgLCBgdmlydGlvLW5ldGAsIGBzdW5nZW1gLCBhbmQgYHJvY2tlcmAuIFVTQiBldGhlcm5ldCwgbGlrZSBgdXNiLW5ldGAgYW5kIGBjZGMtZXRoZXJgLCBpcyBhbm90aGVyIGFyZWEuIEJ1dCwgd2hlcmUgZG9lcyBgc3RtbWFjYCBmaXQgaW4/CgpMZXQmIzM5O3MgY2hlY2sgdGhlIHNvdXJjZSwgc3BlY2lmaWNhbGx5IGBzdG1tYWNfcGNpLmNgIGFuZCBgZHdtYWMtaW50ZWwuY2AuIEluIGBzdG1tYWNfcGNpLmNgLCBJIHNlZSBQQ0kgZGV2aWNlcyBmcm9tIFNUIE1pY3JvZWxlY3Ryb25pY3MvU3lub3BzeXMgKDB4MTA0QSkgYW5kIGFsc28gZnJvbSBJbnRlbC4gSW4gYGR3bWFjLWludGVsLmNgLCB0aGVyZSYjMzk7cyBhbiBJbnRlbCBRdWFyayBkZXZpY2UgKDB4MDkzNykgYW5kIG5ld2VyIEludGVsIGZhbWlsaWVzIChFSEwsIFRHTCwgZXRjKS4gVGhlcmUmIzM5O3MgYWxzbyBgZHdtYWMtbG9vbmdzb24uY2AsIGZvciB0aGUgTFM3QTEwMDAuCgpOb3csIHRoZSBjcml0aWNhbCBxdWVzdGlvbjogYXJlIGFueSBvZiB0aGVzZSBlbXVsYXRlZCBieSBzdGFuZGFyZCBRRU1VIG9yIGluIEdDRT8gTm9wZSwgaXQgZG9lc24mIzM5O3QgbG9vayBsaWtlIFFFTVUgZW11bGF0ZXMgSW50ZWwgUXVhcmsvRUhMIEdiRSAoZHdtYWMpLCBMb29uZ3NvbiBzdG1tYWMsIG9yIFNUTS9TeW5vcHN5cyBQQ0kgTUFDLgoKT2theSwgbGV0JiMzOTtzIHRyeSBhIGRpZmZlcmVudCB0YWNrLiBXaGF0IGFib3V0IEFSTSwgUklTQy1WLCBvciBNSVBTIFFFTVUgbWFjaGluZXM/IExldCYjMzk7cyBjaGVjay4uLiB3aXRoIFFFTVU6CiogICBgYXJtYCBoYXMgdmVyc2F0aWxlcGIgKHNtYzkxYzExMSksIHJlYWx2aWV3IChzbWM5MWMxMTEgLyBsYW45MTE4KSwgdmlydCAodmlydGlvLW5ldCksIHJhc3BpIChiY20yODM1IC8gc21zYzk1MTIpLCBhbmQgb3JhbmdlcGktcGMgKGFsbHdpbm5lci1oMykuIEJpbmdvISBUaGUgYG9yYW5nZXBpLXBjYCBoYXMgYGFsbHdpbm5lci1zdW44aS1lbWFjYCEgQW5kLCBgc3VuOGlfZHdtYWMuY2AgaW4gTGludXggaXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmNgLgoKQWhhISBOb3cgd2UmIzM5O3JlIGdldHRpbmcgc29tZXdoZXJlLiBEb2VzIGBkd21hYy1zdW44aS5jYCAqdXNlKiBgZHdtYWM0YD8gVGhlIGFuc3dlciB0byB0aGF0IHF1ZXN0aW9uIGlzIGtleSEgVGltZSB0byBkaWcgaW50byBgZHdtYWMtc3VuOGkuY2AhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMDc6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7RFdNQUNfQ09SRV8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMzItLyogU3lub3BzeXMgQ29yZSB2ZXJzaW9ucyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MzM6I2RlZmluZVx0RFdNQUNfQ09SRV8zXzQwXHRcdDB4MzRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM0OiNkZWZpbmVcdERXTUFDX0NPUkVfM181MFx0XHQweDM1XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDozNTojZGVmaW5lXHREV01BQ19DT1JFXzNfNzBcdFx0MHgzN1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MzY6I2RlZmluZVx0RFdNQUNfQ09SRV80XzAwXHRcdDB4NDBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM3OiNkZWZpbmUgRFdNQUNfQ09SRV80XzEwXHRcdDB4NDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM4OiNkZWZpbmUgRFdNQUNfQ09SRV81XzAwXHRcdDB4NTBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM5OiNkZWZpbmUgRFdNQUNfQ09SRV81XzEwXHRcdDB4NTFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjQwOiNkZWZpbmUgRFdNQUNfQ09SRV81XzIwXHRcdDB4NTJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTQxLSNkZWZpbmUgRFdYR01BQ19DT1JFXzJfMTBcdDB4MjFcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaD00OT1zdGF0aWMgaW5saW5lIGJvb2wgZHdtYWNfaXNfeG1hYyhlbnVtIGR3bWFjX2NvcmVfdHlwZSBjb3JlX3R5cGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC01MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo1MTpcdHJldHVybiBjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNCB8fCBjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTUyLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTM2PXN0YXRpYyBpbnQgZHdjX2V0aF9kd21hY19jb25maWdfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTg3LVx0LyogZHdjLXFvcyBuZWVkcyBHTUFDNCwgQUFMLCBUU08gYW5kIFBNVCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzo4ODpcdHBsYXRfZGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTg5LVx0cGxhdF9kYXQtXHUwMDNlZG1hX2NmZy1cdTAwM2VhYWwgPSAxO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9NTk2PXN0YXRpYyB2b2lkIGNvbW1vbl9kZWZhdWx0X2RhdGEoc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNTk5LVx0cGxhdC1cdTAwM2VjbGtfY3NyID0gU1RNTUFDX0NTUl8yMF8zNU07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjYwMDpcdHBsYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy02MDEtXHRwbGF0LVx1MDAzZWZvcmNlX3NmX2RtYV9tb2RlID0gdHJ1ZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTYxNj1zdGF0aWMgaW50IGludGVsX21nYmVfY29tbW9uX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy02MjYtXHRwbGF0LVx1MDAzZWNsa19jc3IgPSBTVE1NQUNfQ1NSXzI1MF8zMDBNO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo2Mjc6XHRwbGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTYyOC1cdHBsYXQtXHUwMDNlZm9yY2Vfc2ZfZG1hX21vZGUgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlwcTgwNnguYz0zNzQ9c3RhdGljIGludCBpcHE4MDZ4X2dtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmMtNDc1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jOjQ3NjpcdHBsYXRfZGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlwcTgwNnguYy00NzctXHRwbGF0X2RhdC1cdTAwM2Vic3BfcHJpdiA9IGdtYWM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy03Mi0jZGVmaW5lIFBDSV9ERVZJQ0VfSURfTE9PTkdTT05fR05FVFx0MHg3YTEzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjczOiNkZWZpbmUgRFdNQUNfQ09SRV9NVUxUSUNIQU5fVjFcdDB4MTBcdC8qIExvb25nc29uIGN1c3RvbSBJRCAweDEwICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjc0OiNkZWZpbmUgRFdNQUNfQ09SRV9NVUxUSUNIQU5fVjJcdDB4MTJcdC8qIExvb25nc29uIGN1c3RvbSBJRCAweDEyICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTc1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9ODY9c3RhdGljIHZvaWQgbG9vbmdzb25fZGVmYXVsdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtOTUtXHRwbGF0LVx1MDAzZWNsa19jc3IgPSBTVE1NQUNfQ1NSXzEwMF8xNTBNO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo5NjpcdHBsYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy05Ny1cdHBsYXQtXHUwMDNlZm9yY2Vfc2ZfZG1hX21vZGUgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTA4LVx0c3dpdGNoIChsZC1cdTAwM2Vsb29uZ3Nvbl9pZCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxMDk6XHRjYXNlIERXTUFDX0NPUkVfTVVMVElDSEFOX1YxOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xMTAtXHRcdGxkLVx1MDAzZW11bHRpY2hhbiA9IDE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xMjAtXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxMjE6XHRjYXNlIERXTUFDX0NPUkVfTVVMVElDSEFOX1YyOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xMjItXHRcdGxkLVx1MDAzZW11bHRpY2hhbiA9IDE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz0zMDY9c3RhdGljIGludCBsb29uZ3Nvbl9kd21hY19zZXR1cCh2b2lkICphcHJpdiwgc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqbWFjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMzI4LVx0aWYgKGxkLVx1MDAzZW11bHRpY2hhbikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzozMjk6XHRcdHByaXYtXHUwMDNlc3lub3BzeXNfaWQgPSBEV01BQ19DT1JFXzNfNzA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTMzMC1cdFx0KmRtYSA9IGR3bWFjMTAwMF9kbWFfb3BzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYz00Mj1zdGF0aWMgaW50IGxwYzE4eHhfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmMtNTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmM6NTc6XHRwbGF0X2RhdC1cdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmMtNTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MjA4PW1vdG9yY29tbV9kZWZhdWx0X3BsYXRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0yNDctXHRwbGF0LVx1MDAzZWNsa19yZWZfcmF0ZVx0PSAxMjUwMDAwMDA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzoyNDg6XHRwbGF0LVx1MDAzZWNvcmVfdHlwZVx0XHQ9IERXTUFDX0NPUkVfR01BQzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0yNDktXHRwbGF0LVx1MDAzZXN1c3BlbmRcdFx0PSBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1xY29tLWV0aHFvcy5jPTY4ND1zdGF0aWMgaW50IHFjb21fZXRocW9zX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYy03NzYtXHRwbGF0X2RhdC1cdTAwM2VwdHBfY2xrX2ZyZXFfY29uZmlnID0gZXRocW9zX3B0cF9jbGtfZnJlcV9jb25maWc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1xY29tLWV0aHFvcy5jOjc3NzpcdHBsYXRfZGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1xY29tLWV0aHFvcy5jLTc3OC1cdGlmIChldGhxb3MtXHUwMDNlaGFzX2VtYWNfZ2VfMylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jPTE1Njg9c3RhdGljIGludCBya19nbWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYy0xNTkxLVx0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jOjE1OTI6XHRpZiAocGxhdF9kYXQtXHUwMDNlY29yZV90eXBlICE9IERXTUFDX0NPUkVfR01BQzQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmM6MTU5MzpcdFx0cGxhdF9kYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYy0xNTk0LVx0XHRwbGF0X2RhdC1cdTAwM2VyeF9maWZvX3NpemUgPSA0MDk2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXMzMi5jPTE0ND1zdGF0aWMgaW50IHMzMl9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXMzMi5jLTE5NS1cdC8qIFMzMkNDIGNvcmUgZmVhdHVyZSBzZXQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXMzMi5jOjE5NjpcdHBsYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXMzMi5jLTE5Ny1cdHBsYXQtXHUwMDNlcG10ID0gdHJ1ZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM9NTU5PXN0YXRpYyB2b2lkIHNvY2ZwZ2FfZ2VuNV9zZXR1cF9wbGF0X2RhdChzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jLTU2Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYzo1NjM6XHRwbGF0X2RhdC1cdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNTY0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYz01Njk9c3RhdGljIHZvaWQgc29jZnBnYV9hZ2lsZXg1X3NldHVwX3BsYXRfZGF0KHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNTcyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jOjU3MzpcdHBsYXRfZGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNTc0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bnhpLmM9OTk9c3RhdGljIGludCBzdW43aV9nbWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VueGkuYy0xMzgtXHRwbGF0X2RhdC1cdTAwM2V0eF9jb2UgPSB0cnVlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VueGkuYzoxMzk6XHRwbGF0X2RhdC1cdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jLTE0MC1cdHBsYXRfZGF0LVx1MDAzZWJzcF9wcml2ID0gZ21hYztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jPTIxND1zdGF0aWMgaW50IHRlZ3JhX21nYmVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jLTMyNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmM6MzI2Olx0cGxhdC1cdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX1hHTUFDO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYy0zMjctXHRwbGF0LVx1MDAzZWZsYWdzIHw9IFNUTU1BQ19GTEFHX1RTT19FTjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM9MjE9c3RhdGljIHZvaWQgc3RtbWFjX2dldF92ZXJzaW9uKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MzE6XHRpZiAoY29yZV90eXBlID09IERXTUFDX0NPUkVfTUFDMTAwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTMyLVx0XHRyZXR1cm47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MzQ6XHRpZiAoY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0zNS1cdFx0dmVyc2lvbl9vZmZzZXQgPSBHTUFDX1ZFUlNJT047XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTQ5LVx0dmVyLVx1MDAzZXNucHN2ZXIgPSBGSUVMRF9HRVQoRFdNQUNfU05QU1ZFUiwgdmVyc2lvbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6NTA6XHRpZiAoY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtNTEtXHRcdHZlci1cdTAwM2VkZXZfaWQgPSBGSUVMRF9HRVQoRFdNQUNfVVNFUlZFUiwgdmVyc2lvbik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jPTY5PXN0YXRpYyBpbnQgc3RtbWFjX2R3bWFjMV9xdWlya3Moc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy03Ni1cdFx0LyogR01BQyBvbGRlciB0aGFuIDMuNTAgaGFzIG5vIGV4dGVuZGVkIGRlc2NyaXB0b3JzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6Nzc6XHRcdGlmIChwcml2LVx1MDAzZXN5bm9wc3lzX2lkIFx1MDAzZT0gRFdNQUNfQ09SRV8zXzUwKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtNzgtXHRcdFx0ZGV2X2luZm8ocHJpdi1cdTAwM2VkZXZpY2UsIFwmIzM0O0VuYWJsZWQgZXh0ZW5kZWQgZGVzY3JpcHRvcnNcXG5cJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYz0xMTE9c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHdpZl9lbnRyeSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTEzMC1cdHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoxMzE6XHRcdC5jb3JlX3R5cGUgPSBEV01BQ19DT1JFX01BQzEwMCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0xMzItXHRcdC5taW5faWQgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0xNDctXHR9LCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MTQ4Olx0XHQuY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTE0OS1cdFx0Lm1pbl9pZCA9IDAsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTE2NC1cdH0sIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoxNjU6XHRcdC5jb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTE2Ni1cdFx0Lm1pbl9pZCA9IDAsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTE4NC1cdH0sIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoxODU6XHRcdC5jb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjE4NjpcdFx0Lm1pbl9pZCA9IERXTUFDX0NPUkVfNF8wMCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0xODctXHRcdC5yZWdzID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yMDUtXHR9LCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MjA2Olx0XHQuY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDNCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoyMDc6XHRcdC5taW5faWQgPSBEV01BQ19DT1JFXzRfMTAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMjA4LVx0XHQucmVncyA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMjI2LVx0fSwge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjIyNzpcdFx0LmNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MjI4Olx0XHQubWluX2lkID0gRFdNQUNfQ09SRV81XzEwLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTIyOS1cdFx0LnJlZ3MgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTI0Ny1cdH0sIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoyNDg6XHRcdC5jb3JlX3R5cGUgPSBEV01BQ19DT1JFX1hHTUFDLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTI0OS1cdFx0Lm1pbl9pZCA9IERXWEdNQUNfQ09SRV8yXzEwLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yNjktXHR9LCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MjcwOlx0XHQuY29yZV90eXBlID0gRFdNQUNfQ09SRV9YR01BQyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yNzEtXHRcdC5taW5faWQgPSBEV1hMR01BQ19DT1JFXzJfMDAsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jPTI5ND1zdG1tYWNfaHdpZl9maW5kKGVudW0gZHdtYWNfY29yZV90eXBlIGNvcmVfdHlwZSwgdTggc25wc3ZlciwgdTggZGV2X2lkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0zMDYtXHRcdFx0Y29udGludWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MzA3Olx0XHRpZiAoY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMzA4LVx0XHQgICAgZGV2X2lkICE9IGVudHJ5LVx1MDAzZWRldl9pZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM9MzE3PWludCBzdG1tYWNfaHdpZl9pbml0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMzUyLVx0XHRcdFwmIzM0O0ZhaWxlZCB0byBmaW5kIEhXIElGIChpZD0weCV4LCBnbWFjPSVkLyVkKVxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzozNTM6XHRcdFx0dmVyc2lvbi5zbnBzdmVyLCBjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjM1NDpcdFx0XHRjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMzU1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYz0yOD1zdGF0aWMgaW50IGVzdF9jb25maWd1cmUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBzdHJ1Y3Qgc3RtbWFjX2VzdCAqY2ZnLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYy01NS1cdGN0cmwgPSByZWFkbChlc3RfYWRkciAmIzQzOyBFU1RfQ09OVFJPTCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmM6NTY6XHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmMtNTctXHRcdGN0cmwgXHUwMDI2PSB+RVNUX1hHTUFDX1BUT1Y7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jPTgzPXN0YXRpYyB2b2lkIGVzdF9pcnFfc3RhdHVzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmMtMTUwLVx0aWYgKHN0YXR1cyBcdTAwMjYgRVNUX0JUUkUpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYzoxNTE6XHRcdGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYy0xNTItXHRcdFx0YnRybCA9IEZJRUxEX0dFVChFU1RfWEdNQUNfQlRSTCwgc3RhdHVzKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jPTMwMT1zdGF0aWMgdm9pZCBzdG1tYWNfZXRodG9vbF9nZXRkcnZpbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zMDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jOjMwNjpcdGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQyB8fFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYzozMDc6XHQgICAgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zMDgtXHRcdHN0cnNjcHkoaW5mby1cdTAwM2Vkcml2ZXIsIEdNQUNfRVRIVE9PTF9OQU1FLCBzaXplb2YoaW5mby1cdTAwM2Vkcml2ZXIpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM6MzA5Olx0ZWxzZSBpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zMTAtXHRcdHN0cnNjcHkoaW5mby1cdTAwM2Vkcml2ZXIsIFhHTUFDX0VUSFRPT0xfTkFNRSwgc2l6ZW9mKGluZm8tXHUwMDNlZHJpdmVyKSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYz0zNTA9c3RhdGljIGludCBzdG1tYWNfZXRodG9vbF9nZXRfcmVnc19sZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTM1My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM6MzU0Olx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtMzU1LVx0XHRyZXR1cm4gWEdNQUNfUkVHU0laRSAqIDQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jOjM1NjpcdGVsc2UgaWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtMzU3LVx0XHRyZXR1cm4gR01BQzRfUkVHX1NQQUNFX1NJWkU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYz0zNjE9c3RhdGljIHZvaWQgc3RtbWFjX2V0aHRvb2xfZ3JlZ3Moc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTM3MC1cdC8qIENvcHkgRE1BIHJlZ2lzdGVycyB0byB3aGVyZSBldGh0b29sIGV4cGVjdHMgdGhlbSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYzozNzE6XHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTM3Mi1cdFx0LyogR01BQzQgZHVtcHMgaXRzIERNQSByZWdpc3RlcnMgYXQgaXRzIERNQV9DSEFOX0JBU0VfQUREUiAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtMzc1LVx0XHQgICAgICAgTlVNX0RXTUFDNF9ETUFfUkVHUyAqIDQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYzozNzY6XHR9IGVsc2UgaWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgIT0gRFdNQUNfQ09SRV9YR01BQykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zNzctXHRcdG1lbWNweShcdTAwMjZyZWdfc3BhY2VbRVRIVE9PTF9ETUFfT0ZGU0VUXSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jPTUxNT1zdGF0aWMgdm9pZCBzdG1tYWNfZ2V0X2V0aHRvb2xfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTU1NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM6NTU2Olx0XHRpZiAocHJpdi1cdTAwM2VzeW5vcHN5c19pZCBcdTAwM2U9IERXTUFDX0NPUkVfM181MClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtNTU3LVx0XHRcdHN0bW1hY19tYWNfZGVidWcocHJpdiwgcHJpdi1cdTAwM2Vpb2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz02NDI9c3RhdGljIGludCBzdG1tYWNfaHd0c3RhbXBfc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NTctXHRcdFx0c25hcF90eXBlX3NlbCA9IFBUUF9UQ1JfU05BUFRZUFNFTF8xO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3NTg6XHRcdFx0aWYgKHByaXYtXHUwMDNlc3lub3BzeXNfaWQgXHUwMDNjIERXTUFDX0NPUkVfM183MCBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzU5Olx0XHRcdCAgICBwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlICE9IERXTUFDX0NPUkVfWEdNQUMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc2MC1cdFx0XHRcdHRzX2V2ZW50X2VuID0gUFRQX1RDUl9UU0VWTlRFTkE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz00Mzc5PXN0YXRpYyB2b2lkIHN0bW1hY19zZXRfZ3NvX2ZlYXR1cmVzKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDQwOC1cdG5kZXYtXHUwMDNlaHdfZmVhdHVyZXMgfD0gTkVUSUZfRl9UU08gfCBORVRJRl9GX1RTTzY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQ0MDk6XHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00NDEwLVx0XHRuZGV2LVx1MDAzZWh3X2ZlYXR1cmVzIHw9IE5FVElGX0ZfR1NPX1VEUF9MNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTUxMjQ9c3RhdGljIHVuc2lnbmVkIGludCBzdG1tYWNfcnhfYnVmMl9sZW4oc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTE0OS1cdC8qIE5vdCBHTUFDNCBhbmQgbm90IGxhc3QgZGVzY3JpcHRvciAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1MTUwOlx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgIT0gRFdNQUNfQ09SRV9HTUFDNCBcdTAwMjZcdTAwMjYgKHN0YXR1cyBcdTAwMjYgcnhfbm90X2xzKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTE1MS1cdFx0cmV0dXJuIHByaXYtXHUwMDNlZG1hX2NvbmYuZG1hX2J1Zl9zejtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTYyMDc9c3RhdGljIHZvaWQgc3RtbWFjX2NvbW1vbl9pbnRlcnJ1cHQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjIyOC1cdC8qIFRvIGhhbmRsZSBHTUFDIG93biBpbnRlcnJ1cHRzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjYyMjk6XHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUMgfHwgeG1hYykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02MjMwLVx0XHRpbnQgc3RhdHVzID0gc3RtbWFjX2hvc3RfaXJxX3N0YXR1cyhwcml2LCBcdTAwMjZwcml2LVx1MDAzZXhzdGF0cyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz02NTQzPXN0YXRpYyBpbnQgc3RtbWFjX2RtYV9jYXBfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY1NzgtXHRcdCAgIChwcml2LVx1MDAzZWRtYV9jYXAuaGFsZl9kdXBsZXgpID8gXCYjMzQ7WVwmIzM0OyA6IFwmIzM0O05cJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2NTc5Olx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NTgwLVx0XHRzZXFfcHJpbnRmKHNlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY1ODItXHRcdFx0ICAgcHJpdi1cdTAwM2VkbWFfY2FwLm11bHRpX2FkZHIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2NTgzOlx0fSBlbHNlIGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQzQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjU4NC1cdFx0c2VxX3ByaW50ZihzZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NjE0LVx0XHQgICAocHJpdi1cdTAwM2VkbWFfY2FwLmF0aW1lX3N0YW1wKSA/IFwmIzM0O1lcJiMzNDsgOiBcJiMzNDtOXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NjYxNTpcdGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY2MTYtXHRcdHNlcV9wcmludGYoc2VxLCBcJiMzNDtcXHRUaW1lc3RhbXAgU3lzdGVtIFRpbWUgU291cmNlOiAlc1xcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY2MjItXHRcdCAgIChwcml2LVx1MDAzZWRtYV9jYXAudHhfY29lKSA/IFwmIzM0O1lcJiMzNDsgOiBcJiMzNDtOXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NjYyMzpcdGlmIChwcml2LVx1MDAzZXN5bm9wc3lzX2lkIFx1MDAzZT0gRFdNQUNfQ09SRV80XzAwIHx8XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjY2MjQ6XHQgICAgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY2MjUtXHRcdHNlcV9wcmludGYoc2VxLCBcJiMzNDtcXHRJUCBDaGVja3N1bSBPZmZsb2FkIGluIFJYOiAlc1xcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTczNTU9c3RhdGljIHZvaWQgc3RtbWFjX3ByaW50X2FjdHBoeWlmKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTczNjEtXHRzd2l0Y2ggKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzM2MjpcdGNhc2UgRFdNQUNfQ09SRV9NQUMxMDA6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTczNjMtXHRcdHJldHVybjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzM2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzM2NTpcdGNhc2UgRFdNQUNfQ09SRV9HTUFDOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3MzY2Olx0Y2FzZSBEV01BQ19DT1JFX0dNQUM0OlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MzY3LVx0XHRwaHlpZl90YWJsZSA9IHN0bW1hY19kd21hY19hY3RwaHlpZjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTczNzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjczNzE6XHRjYXNlIERXTUFDX0NPUkVfWEdNQUM6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTczNzItXHRcdHBoeWlmX3RhYmxlID0gc3RtbWFjX2R3eGdtYWNfcGh5aWY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03Mzk3PXN0YXRpYyBpbnQgc3RtbWFjX2h3X2luaXQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzQ1Mi1cdFx0ZGV2X2luZm8ocHJpdi1cdTAwM2VkZXZpY2UsIFwmIzM0O1JYIENoZWNrc3VtIE9mZmxvYWQgRW5naW5lIHN1cHBvcnRlZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjc0NTM6XHRcdGlmIChwcml2LVx1MDAzZXN5bm9wc3lzX2lkIFx1MDAzYyBEV01BQ19DT1JFXzRfMDApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc0NTQtXHRcdFx0ZGV2X2luZm8ocHJpdi1cdTAwM2VkZXZpY2UsIFwmIzM0O0NPRSBUeXBlICVkXFxuXCYjMzQ7LCBwcml2LVx1MDAzZWh3LVx1MDAzZXJ4X2NzdW0pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzQ5Ny1cdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3NDk4Olx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NDk5LVx0XHRwcml2LVx1MDAzZWh3LVx1MDAzZW11bHRpX2FkZHIgPSBwcml2LVx1MDAzZWRtYV9jYXAubXVsdGlfYWRkcjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc1NDUtXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzU0NjpcdGlmICgocHJpdi1cdTAwM2VzeW5vcHN5c19pZCBcdTAwM2U9IERXTUFDX0NPUkVfM181MCB8fFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3NTQ3Olx0ICAgICBwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NTQ4LVx0ICAgICFwcml2LVx1MDAzZXBsYXQtXHUwMDNlcml3dF9vZmYpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTc4MTM9c3RhdGljIGludCBfX3N0bW1hY19kdnJfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2aWNlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzkyMi1cdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3OTIzOlx0aWYgKHByaXYtXHUwMDNlc3lub3BzeXNfaWQgXHUwMDNjIERXTUFDX0NPUkVfNV8yMClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzkyNC1cdFx0cHJpdi1cdTAwM2VwbGF0LVx1MDAzZWRtYV9jZmctXHUwMDNlZGNoZSA9IGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODAyMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6ODAyMTpcdGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTgwMjItXHRcdG5kZXYtXHUwMDNlbWF4X210dSA9IFhHTUFDX0pVTUJPX0xFTjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6ODAyMzpcdGVsc2UgaWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2VlbmhfZGVzYyB8fCBwcml2LVx1MDAzZXN5bm9wc3lzX2lkIFx1MDAzZT0gRFdNQUNfQ09SRV80XzAwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04MDI0LVx0XHRuZGV2LVx1MDAzZW1heF9tdHUgPSBKVU1CT19MRU47XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYz0yOTk9c3RhdGljIGludCBzdG1tYWNfbWRpb19yZWFkX2MyMihzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5YWRkciwgaW50IHBoeXJlZylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTMwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM6MzA0Olx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtMzA1LVx0XHRjbWQgPSBNSUlfR01BQzRfUkVBRDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jPTM0MT1zdGF0aWMgaW50IHN0bW1hY19tZGlvX3dyaXRlX2MyMihzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5YWRkciwgaW50IHBoeXJlZyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTM0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM6MzQ3Olx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtMzQ4LVx0XHRjbWQgPSBNSUlfR01BQzRfV1JJVEU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYz0zODE9aW50IHN0bW1hY19tZGlvX3Jlc2V0KHN0cnVjdCBtaWlfYnVzICpidXMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy00MTktXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM6NDIwOlx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgIT0gRFdNQUNfQ09SRV9HTUFDNClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNDIxLVx0XHR3cml0ZWwoMCwgcHJpdi1cdTAwM2Vpb2FkZHIgJiM0MzsgbWlpX2FkZHJlc3MpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM9NTM2PXN0YXRpYyB1MzIgc3RtbWFjX2Nsa19jc3Jfc2V0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTU1NC1cdFx0cmF0ZXMgPSBzdG1tYWNfc3VuOGlfY3NyX3RvX21kYztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM6NTU1Olx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNTU2LVx0XHRyYXRlcyA9IHN0bW1hY194Z21hY19jc3JfdG9fbWRjO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM9NTk1PWludCBzdG1tYWNfbWRpb19yZWdpc3RlcihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTYyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM6NjIyOlx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy02MjMtXHRcdG5ld19idXMtXHUwMDNlcmVhZCA9IFx1MDAyNnN0bW1hY194Z21hYzJfbWRpb19yZWFkX2MyMjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTYzOS1cdFx0bmV3X2J1cy1cdTAwM2V3cml0ZSA9IFx1MDAyNnN0bW1hY19tZGlvX3dyaXRlX2MyMjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM6NjQwOlx0XHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTY0MS1cdFx0XHRuZXdfYnVzLVx1MDAzZXJlYWRfYzQ1ID0gXHUwMDI2c3RtbWFjX21kaW9fcmVhZF9jNDU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy02NjUtXHQvKiBMb29rcyBsaWtlIHdlIG5lZWQgYSBkdW1teSByZWFkIGZvciBYR01BQyBvbmx5IGFuZCBDNDUgUEhZcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYzo2NjY6XHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy02NjctXHRcdHN0bW1hY194Z21hYzJfbWRpb19yZWFkX2M0NShuZXdfYnVzLCAwLCAwLCAwKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjM9c3RhdGljIHZvaWQgY29tbW9uX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTI2LVx0cGxhdC1cdTAwM2VjbGtfY3NyID0gU1RNTUFDX0NTUl8yMF8zNU07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6Mjc6XHRwbGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yOC1cdHBsYXQtXHUwMDNlZm9yY2Vfc2ZfZG1hX21vZGUgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz01ND1zdGF0aWMgaW50IHNucHNfZ21hYzVfZGVmYXVsdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy01OS1cdHBsYXQtXHUwMDNlY2xrX2NzciA9IFNUTU1BQ19DU1JfMjUwXzMwME07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6NjA6XHRwbGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtNjEtXHRwbGF0LVx1MDAzZWZvcmNlX3NmX2RtYV9tb2RlID0gdHJ1ZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYz00MTQ9c3RtbWFjX3Byb2JlX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCB1OCAqbWFjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTUxOC1cdFx0XHRcdFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBwbGF0LVx1MDAzZW11bHRpY2FzdF9maWx0ZXJfYmlucyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYzo1MTk6XHRcdHBsYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTIwLVx0XHRwbGF0LVx1MDAzZXBtdCA9IHRydWU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTIzLVx0aWYgKG9mX2RldmljZV9pc19jb21wYXRpYmxlKG5wLCBcJiMzNDtzbnBzLGR3bWFjLTMuNDBhXCYjMzQ7KSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmM6NTI0Olx0XHRwbGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTUyNS1cdFx0cGxhdC1cdTAwM2VlbmhfZGVzYyA9IHRydWU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTMxLVx0aWYgKG9mX2RldmljZV9jb21wYXRpYmxlX21hdGNoKG5wLCBzdG1tYWNfZ21hYzRfY29tcGF0cykpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjUzMjpcdFx0cGxhdC1cdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTMzLVx0XHRwbGF0LVx1MDAzZXBtdCA9IHRydWU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTQ1LVx0aWYgKG9mX2RldmljZV9pc19jb21wYXRpYmxlKG5wLCBcJiMzNDtzbnBzLGR3eGdtYWNcJiMzNDspKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYzo1NDY6XHRcdHBsYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9YR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTU0Ny1cdFx0cGxhdC1cdTAwM2VwbXQgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuYz0zMzU9dm9pZCBzdG1tYWNfcHRwX3JlZ2lzdGVyKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmMtMzQ4LVx0cHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNkY19lcnJvcl9hZGogPSAwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5jOjM0OTpcdGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQzQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmMtMzUwLVx0XHRwcml2LVx1MDAzZXBsYXQtXHUwMDNlY2RjX2Vycm9yX2FkaiA9ICgyICogTlNFQ19QRVJfU0VDKSAvIHByaXYtXHUwMDNlcGxhdC1cdTAwM2VjbGtfcHRwX3JhdGU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jPTczNj1zdGF0aWMgaW50IHN0bW1hY190ZXN0X2Zsb3djdHJsKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfc2VsZnRlc3RzLmMtNzU1LVx0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfc2VsZnRlc3RzLmM6NzU2Olx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgIT0gRFdNQUNfQ09SRV9NQUMxMDAgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfc2VsZnRlc3RzLmMtNzU3LVx0ICAgIHJ4X2ZpZm9fc2l6ZSAvIHByaXYtXHUwMDNlcGxhdC1cdTAwM2VyeF9xdWV1ZXNfdG9fdXNlIFx1MDAzYyA0MDk2KVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDA3OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQxMzAyCgkJCQkJCQlvdXRwdXQ6IDEzMwoJCQkJCQkJdGhvdWdodHM6IDEwNjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHlzaXMgb2YgYHN0bW1hY2AgRHJpdmVyIEZ1enppbmcgRmVhc2liaWxpdHkqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYHN0bW1hY2AgZXRoZXJuZXQgZHJpdmVyLiBJdCYjMzk7cyBmb3IgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMgKERXTUFDKSBhbmQgU1RNaWNybyBNQUNzLiBNeSBpbml0aWFsIHF1ZXN0aW9uIGlzOiBjYW4gSSBldmVuIHJlYWNoIHRoaXMgdGhpbmcgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50IGxpa2UgUUVNVSBvciBHQ0U/CgpUaGUgaW5zdHJ1Y3Rpb25zIHRlbGwgbWUgdG8gYXZvaWQgY29kZSB0aGF0IGlzIHVucmVhY2hhYmxlIGluIHRoZXNlIGVudmlyb25tZW50cy4gVGhhdCBpbmNsdWRlcyBkcml2ZXJzIGZvciBoYXJkd2FyZSB0aGF0IGlzbiYjMzk7dCBlbXVsYXRlZCwgbGlrZSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2ggZHJpdmVycywgU21hcnROSUNzLCBHUFUgZHJpdmVycyByZXF1aXJpbmcgcGh5c2ljYWwgUENJZSBjYXJkcywgYW5kIGRyaXZlciBjbGVhbnVwIHJvdXRpbmVzIG9ubHkgdHJpZ2dlcmVkIGJ5IFBDSSBob3QtdW5wbHVnLgoKU28sIGlzIGBzdG1tYWNgIGVtdWxhdGVkIGluIFFFTVUgb3IgR0NFPyBMZXQmIzM5O3MgYnJlYWsgaXQgZG93bjoKCiogICAqKlFFTVUgKHg4NlxfNjQsIGFybTY0IGB2aXJ0YCBtYWNoaW5lKToqKiBUaGUgc3RhbmRhcmQgbmV0d29yayBpbnRlcmZhY2VzIGluIFFFTVUgYXJlIHRoaW5ncyBsaWtlIGB2aXJ0aW8tbmV0LXBjaWAsIGBlMTAwMGAsIGFuZCBzbyBvbi4gTm9uZSBvZiB0aGUgbGlzdGVkIG9uZXMgbWF0Y2ggYHN0bW1hY2AgZGlyZWN0bHkuIEkgYWxzbyBuZWVkIHRvIGNvbnNpZGVyIFNvQyBwbGF0Zm9ybSBkZXZpY2VzLiBMb29raW5nIGF0IEFSTSBtYWNoaW5lczoKICAgICogICBgdmlydGAgZG9lc24mIzM5O3QgaGF2ZSBgc3RtbWFjYCwgb25seSB2aXJ0aW8vcGNpCiAgICAqICAgQWxsd2lubmVyIEExMCAoY3ViaWVib2FyZCkgaGFzIGBhbGx3aW5uZXItZW1hY2AsIGJ1dCBub3QgYGR3bWFjYCBvciBgc3RtbWFjYC4KICAgICogICBBbGx3aW5uZXIgSDMgKG9yYW5nZXBpLXBjKSBoYXMgYGFsbHdpbm5lci1zdW44aS1lbWFjYCB3aGljaCB1c2VzIGBkd21hYy1zdW44aS5jYCwgYnV0IGl0JiMzOTtzIG5vdCB0aGUgc2FtZSBhcyB0aGUgdGFyZ2V0OiB0aGUgcGF0Y2ggaXMgc3BlY2lmaWNhbGx5IGZvciBHTUFDNCAvIGR3bWFjNC4KICAgICogICBJdCBzZWVtcyB0aGVyZSYjMzk7cyBubyBRRU1VIG1hY2hpbmUgdGhhdCBlbXVsYXRlcyBEV01BQzQgLyBEV01BQ1xfQ09SRVxfR01BQzQuCiogICAqKkdDRSAoR29vZ2xlIENvbXB1dGUgRW5naW5lKToqKiBPbmx5IGB2aXJ0aW8tbmV0YCBvciBgZ3ZlYCBhcmUgYXZhaWxhYmxlLiBObyBwaHlzaWNhbCBEV01BQyBoYXJkd2FyZSBoZXJlIGVpdGhlci4KClNvLCB3aXRob3V0IGFueSBwaHlzaWNhbCBoYXJkd2FyZSwgY2FuIEkgcmVhY2ggYHN0bW1hY2A/IEFsbCBgc3RtbWFjYCBkcml2ZXJzIGFyZSBwcm9iZWQgZWl0aGVyIHZpYSBgcGxhdGZvcm1fZHJpdmVyYCAodXNpbmcgYW4gT0YgLyBkZXZpY2UgdHJlZSB0byBtYXRjaCBhIHNwZWNpZmljIFNvQyBsaWtlIFF1YWxjb21tIEVUSFFPUywgTlhQIFMzMiwgUm9ja2NoaXAgUkszNTg4LCBldGMuKSBvciBgcGNpX2RyaXZlcmAgKEludGVsIEVsa2hhcnQgTGFrZSAvIFRpZ2VyIExha2UgR2JFLCBNb3RvcmNvbW0sIExvb25nc29uIExTN0ExMDAwLCBTVE1pY3JvIFBDSSkuIFRoZXNlIGFyZSBub3QgcHJlc2VudCBvciBlbXVsYXRlZCBpbiBzdGFuZGFyZCBlbnZpcm9ubWVudHMuCgpUaGVyZWZvcmUsIHRoaXMgY29kZSBwYXRoIGlzIGluIHZlbmRvci1zcGVjaWZpYyBTb0MvcGh5c2ljYWwgZXRoZXJuZXQgaGFyZHdhcmUgZHJpdmVycyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UsIGFuZCBpdCYjMzk7cyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4KCkxldCYjMzk7cyBkb3VibGUtY2hlY2sgYWxsIHRoZSBkZXRhaWxzOgoKMS4gICoqV29ydGhGdXp6aW5nPWZhbHNlPyoqIFllcywgYmVjYXVzZSB0aGUgY29kZSBwYXRoIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLgoyLiAgKipSZWFzb25pbmc6KiogVGhlIHBhdGNoIG1vZGlmaWVzIHVuaWNhc3QgTUFDIGZpbHRlcmluZyBsb2dpYyBhbmQgaGFyZHdhcmUgZmVhdHVyZSBwYXJzaW5nIGluIHRoZSBTeW5vcHN5cyBEZXNpZ25XYXJlIE1BQyAoRFdNQUM0KSAvIFNUTU1BQyBFdGhlcm5ldCBkcml2ZXIsIHNwZWNpZmljYWxseSBpbiBgZHdtYWM0X2NvcmUuY2AsIGBkd21hYzRfZG1hLmNgLCBhbmQgYHN0bW1hY19tYWluLmNgLiBEV01BQzQgaGFyZHdhcmUgaXMgb25seSBwcmVzZW50IG9uIHNwZWNpZmljIHBoeXNpY2FsIFNvQ3MgYW5kIFBDSSBjYXJkcyAoZS5nLiBJbnRlbCBFbGtoYXJ0IExha2UsIE5YUCBTMzIsIFF1YWxjb21tIEVUSFFPUykgd2hpY2ggYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIGF2YWlsYWJsZSBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyBsaWtlIEdDRS4KMy4gICoqRm9jdXNTeW1ib2xzOioqIFxbXS4KNC4gICoqRW5hYmxlQ29uZmlnczoqKiBcW10uCgpPa2F5LCB0aGF0JiMzOTtzIGNvbmNsdXNpdmUuIExldCYjMzk7cyBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDA3OjMxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFN5bm9wc3lzIERlc2lnbldhcmUgTUFDIDQgKERXTUFDNCkgdW5pY2FzdCBmaWx0ZXIgY29uZmlndXJhdGlvbiBhbmQgaGFyZHdhcmUgZmVhdHVyZSBkZXRlY3Rpb24gaW4gdGhlIFNUTU1BQyBldGhlcm5ldCBkcml2ZXIuIERXTUFDNCBjb250cm9sbGVycyBhcmUgZW1iZWRkZWQgaW4gcGh5c2ljYWwgU29DcyAoZS5nLiwgSW50ZWwgRWxraGFydCBMYWtlLCBRdWFsY29tbSBFVEhRT1MsIE5YUCBTMzIpIGFuZCBQQ0kgZGV2aWNlcyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBjbG91ZCBlbnZpcm9ubWVudHMgKEdDRSkuIENvbnNlcXVlbnRseSwgdGhlc2UgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMgNCAoRFdNQUM0KSB1bmljYXN0IGZpbHRlciBjb25maWd1cmF0aW9uIGFuZCBoYXJkd2FyZSBmZWF0dXJlIGRldGVjdGlvbiBpbiB0aGUgU1RNTUFDIGV0aGVybmV0IGRyaXZlci4gRFdNQUM0IGNvbnRyb2xsZXJzIGFyZSBlbWJlZGRlZCBpbiBwaHlzaWNhbCBTb0NzIChlLmcuLCBJbnRlbCBFbGtoYXJ0IExha2UsIFF1YWxjb21tIEVUSFFPUywgTlhQIFMzMikgYW5kIFBDSSBkZXZpY2VzIHRoYXQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGNsb3VkIGVudmlyb25tZW50cyAoR0NFKS4gQ29uc2VxdWVudGx5LCB0aGVzZSBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDA3OjMxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0zMVQwNzozMDozMC4zMTAwMzcwOTJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MDE3ODUzNDM3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBTeW5vcHN5cyBEZXNpZ25XYXJlIE1BQyA0IChEV01BQzQpIHVuaWNhc3QgZmlsdGVyIGNvbmZpZ3VyYXRpb24gYW5kIGhhcmR3YXJlIGZlYXR1cmUgZGV0ZWN0aW9uIGluIHRoZSBTVE1NQUMgZXRoZXJuZXQgZHJpdmVyLiBEV01BQzQgY29udHJvbGxlcnMgYXJlIGVtYmVkZGVkIGluIHBoeXNpY2FsIFNvQ3MgKGUuZy4sIEludGVsIEVsa2hhcnQgTGFrZSwgUXVhbGNvbW0gRVRIUU9TLCBOWFAgUzMyKSBhbmQgUENJIGRldmljZXMgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgdmlydHVhbGl6ZWQgY2xvdWQgZW52aXJvbm1lbnRzIChHQ0UpLiBDb25zZXF1ZW50bHksIHRoZXNlIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMDc6MzA6MzAuMzEwMDQyMDUyWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNTgwNDUwNDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBiZjQ2ZmZmNTY1ZTA3YWY0NTFhODkzOTM4YThiNjI1ODUwNDYwNmVjXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gQXVnIDMxIDA3OjMwOjI5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmhcXG5pbmRleCA5MjdlYTYyMzAwNzNmLi4xNzI5ZmIyOWVjZTM4IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmhcXG5AQCAtNDE5LDYgKzQxOSw4IEBAIHN0cnVjdCBkbWFfZmVhdHVyZXMge1xcbiBcXHR1bnNpZ25lZCBpbnQgaGFsZl9kdXBsZXg7XFxuIFxcdHVuc2lnbmVkIGludCBoYXNoX2ZpbHRlcjtcXG4gXFx0dW5zaWduZWQgaW50IG11bHRpX2FkZHI7XFxuK1xcdHVuc2lnbmVkIGludCBhZGRpdGlvbmFsXzMyX2FkZHI7XFxuK1xcdHVuc2lnbmVkIGludCBhZGRpdGlvbmFsXzY0X2FkZHI7XFxuIFxcdHVuc2lnbmVkIGludCBwY3M7XFxuIFxcdHVuc2lnbmVkIGludCBzbWFfbWRpbztcXG4gXFx0dW5zaWduZWQgaW50IHBtdF9yZW1vdGVfd2FrZV91cDtcXG5AQCAtNjI3LDYgKzYyOSw3IEBAIHN0cnVjdCBtYWNfZGV2aWNlX2luZm8ge1xcbiBcXHR2b2lkIF9faW9tZW0gKnBjc3I7ICAgICAvKiB2cG9pbnRlciB0byBkZXZpY2UgQ1NScyAqL1xcbiBcXHR1bnNpZ25lZCBpbnQgbXVsdGljYXN0X2ZpbHRlcl9iaW5zO1xcbiBcXHR1bnNpZ25lZCBpbnQgdW5pY2FzdF9maWx0ZXJfZW50cmllcztcXG4rXFx0dW5zaWduZWQgaW50IG11bHRpX2FkZHI7XFxuIFxcdHVuc2lnbmVkIGludCBtY2FzdF9iaXRzX2xvZzI7XFxuIFxcdHVuc2lnbmVkIGludCByeF9jc3VtO1xcbiBcXHR1bnNpZ25lZCBpbnQgbnVtX3ZsYW47XFxuQEAgLTYzNSw2ICs2MzgsOCBAQCBzdHJ1Y3QgbWFjX2RldmljZV9pbmZvIHtcXG4gXFx0dTggdmxhbl9mYWlsX3E7XFxuIFxcdGJvb2wgaHdfdmxhbl9lbjtcXG4gXFx0Ym9vbCByZXZlcnNlX3NnbWlpX2VuYWJsZTtcXG4rXFx0Ym9vbCBhZGRpdGlvbmFsXzMyX2FkZHI7XFxuK1xcdGJvb2wgYWRkaXRpb25hbF82NF9hZGRyO1xcbiBcXG4gXFx0LyogVGhpcyBzcGlubG9jayBwcm90ZWN0cyByZWFkLW1vZGlmeS13cml0ZSBvZiB0aGUgaW50ZXJydXB0XFxuIFxcdCAqIG1hc2svZW5hYmxlIHJlZ2lzdGVycy5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzQuaFxcbmluZGV4IDYzODI4MzY4MjhiYWMuLjY5Njg0NjUzMTIyOTUgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0LmhcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzQuaFxcbkBAIC03NSw4ICs3NSw2IEBAXFxuICNkZWZpbmUgR01BQ19QQUNLRVRfRklMVEVSX0lQRkVcXHRcXHRCSVQoMjApXFxuICNkZWZpbmUgR01BQ19QQUNLRVRfRklMVEVSX1JBXFx0XFx0QklUKDMxKVxcbiBcXG4tI2RlZmluZSBHTUFDX01BWF9QRVJGRUNUX0FERFJFU1NFU1xcdDEyOFxcbi1cXG4gLyogTUFDIFJYIFF1ZXVlIEVuYWJsZSAqL1xcbiAjZGVmaW5lIEdNQUNfUlhfUVVFVUVfQ0xFQVIocXVldWUpXFx0fihHRU5NQVNLKDEsIDApIFxcdTAwM2NcXHUwMDNjICgocXVldWUpICogMikpXFxuICNkZWZpbmUgR01BQ19SWF9BVl9RVUVVRV9FTkFCTEUocXVldWUpXFx0QklUKChxdWV1ZSkgKiAyKVxcbkBAIC0xNzYsNyArMTc0LDkgQEAgZW51bSBwb3dlcl9ldmVudCB7XFxuIFxcbiAvKiBNQUMgSFcgZmVhdHVyZXMwIGJpdG1hcCAqL1xcbiAjZGVmaW5lIEdNQUNfSFdfRkVBVF9TQVZMQU5JTlNcXHRcXHRCSVQoMjcpXFxuLSNkZWZpbmUgR01BQ19IV19GRUFUX0FERE1BQ1xcdFxcdEJJVCgxOClcXG4rI2RlZmluZSBHTUFDX0hXX0ZFQVRfTUFDQURSNjRTRUxcXHRCSVQoMjQpXFxuKyNkZWZpbmUgR01BQ19IV19GRUFUX01BQ0FEUjMyU0VMXFx0QklUKDIzKVxcbisjZGVmaW5lIEdNQUNfSFdfRkVBVF9BRERNQUNcXHRcXHRHRU5NQVNLKDIyLCAxOClcXG4gI2RlZmluZSBHTUFDX0hXX0ZFQVRfUlhDT0VTRUxcXHRcXHRCSVQoMTYpXFxuICNkZWZpbmUgR01BQ19IV19GRUFUX1RYQ09TRUxcXHRcXHRCSVQoMTQpXFxuICNkZWZpbmUgR01BQ19IV19GRUFUX0VFRVNFTFxcdFxcdEJJVCgxMylcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2NvcmUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9jb3JlLmNcXG5pbmRleCAxOGIzNTdiMjU3Y2MwLi5mYjViOTZhNDM1MDU0IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9jb3JlLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzRfY29yZS5jXFxuQEAgLTM2NSwyMiArMzY1LDYzIEBAIHN0YXRpYyB2b2lkIGR3bWFjNF9wbXQoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHVuc2lnbmVkIGxvbmcgbW9kZSlcXG4gXFx0d3JpdGVsKHBtdCwgaW9hZGRyICsgR01BQ19QTVQpO1xcbiB9XFxuIFxcbisvKipcXG4rICogZHdtYWM0X3VtYWNfYWRkcl9zbG90IC0gR2V0IHRoZSBVQyBmaWx0ZXIgc2xvdCBmb3IgdGhlIE50aCBNQUMgYWRkcmVzc1xcbisgKiBAaHc6IFRoZSBNQUMgZGV2aWNlIGluZm9cXG4rICogQHJlZ19uOiBUaGUgTUFDIGFkZHJlc3MncyBpbmRleCBpbiB0aGUgVUMgbGlzdFxcbisgKlxcbisgKiBPbiBkd21hYzQgdGhlIHNsb3RzIGF2YWlsYWJsZSBmb3IgVW5pY2FzdCBNQUMgZmlsdGVyaW5nIGFyZSBjb25maWd1cmVkIHdoZW5cXG4rICogaW50ZWdyYXRpbmcgdGhlIElQLlxcbisgKlxcbisgKiAgLSBTbG90IDAgaXMgYWx3YXlzIGF2YWlsYWJsZSwgdXNlZCB0byBzdG9yZSB0aGUgcHJpbWFyeSBNQUMgYWRkcmVzc1xcbisgKiAgLSBGcm9tIDEgdG8gMzEsIHRoZSBudW1iZXIgb2YgaW1wbGVtZW50ZWQgc2xvdHMgaXMgc2V0IGluIGh3LVxcdTAwM2VtdWx0aV9hZGRyXFxuKyAqICAtIEZyb20gMzIgdG8gNjMsIHRoZSByYW5nZSBpcyBhdmFpbGFibGUgaWYgaHctXFx1MDAzZWFkZGl0aW9uYWxfMzJfYWRkclxcbisgKiAgICBpcyBzZXRcXG4rICogIC0gRnJvbSA2NCB0byAxMjcsIHRoZSByYW5nZSBpcyBhdmFpbGFibGUgaWYgaHctXFx1MDAzZWFkZGl0aW9uYWxfNjRfYWRkciBpcyBzZXRcXG4rICpcXG4rICogQWxsIHRoZSByYW5nZXMgY2FuIGJlIGNvbmZpZ3VyZWQgaW5kZXBlbmRlbnRseSAoZS5nLiA2NCAtXFx1MDAzZSAxMjcgY2FuIGJlXFxuKyAqIGF2YWlsYWJsZSwgYnV0IG5vdCAzMiAtXFx1MDAzZSA2MylcXG4rICpcXG4rICogUmV0dXJuczogVGhlIHBoeXNpY2FsIHNsb3QgaW5kZXggaW4gdGhlIFVDIGZpbHRlclxcbisgKi9cXG4rc3RhdGljIHVuc2lnbmVkIGludCBkd21hYzRfdW1hY19hZGRyX3Nsb3Qoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXFxuK1xcdFxcdFxcdFxcdFxcdCAgdW5zaWduZWQgaW50IHJlZ19uKVxcbit7XFxuK1xcdHVuc2lnbmVkIGludCBlbXB0eV9zbG90cyA9IDA7XFxuK1xcbitcXHQvKiByZWdfbiBpcyBpbiB0aGUgMS0zMSBiYW5rIDogMSB0byAxIG1hcHBpbmcgKi9cXG4rXFx0aWYgKHJlZ19uIFxcdTAwM2MgKGh3LVxcdTAwM2VtdWx0aV9hZGRyICsgMSkpXFxuK1xcdFxcdHJldHVybiByZWdfbjtcXG4rXFxuK1xcdC8qIEdhcCBiZXR3ZWVuIHRoZSBsYXN0IGFkZHJlc3MgaW4gdGhlIDEtXFx1MDAzZTMxIHJhbmdlIGFuZCB0aGUgbmV4dCBzbG90ICovXFxuK1xcdGlmIChody1cXHUwMDNlYWRkaXRpb25hbF8zMl9hZGRyKVxcbitcXHRcXHRlbXB0eV9zbG90cyA9IDMyIC0gKGh3LVxcdTAwM2VtdWx0aV9hZGRyICsgMSk7XFxuK1xcdGVsc2UgaWYgKGh3LVxcdTAwM2VhZGRpdGlvbmFsXzY0X2FkZHIpXFxuK1xcdFxcdGVtcHR5X3Nsb3RzID0gNjQgLSAoaHctXFx1MDAzZW11bHRpX2FkZHIgKyAxKTtcXG4rXFxuK1xcdHJldHVybiByZWdfbiArIGVtcHR5X3Nsb3RzO1xcbit9XFxuK1xcbiBzdGF0aWMgdm9pZCBkd21hYzRfc2V0X3VtYWNfYWRkcihzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcXG4gXFx0XFx0XFx0XFx0IGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZHIsIHVuc2lnbmVkIGludCByZWdfbilcXG4ge1xcbiBcXHR2b2lkIF9faW9tZW0gKmlvYWRkciA9IGh3LVxcdTAwM2VwY3NyO1xcbitcXHR1bnNpZ25lZCBpbnQgc2xvdDtcXG4gXFxuLVxcdHN0bW1hY19kd21hYzRfc2V0X21hY19hZGRyKGlvYWRkciwgYWRkciwgR01BQ19BRERSX0hJR0gocmVnX24pLFxcbi1cXHRcXHRcXHRcXHQgICBHTUFDX0FERFJfTE9XKHJlZ19uKSk7XFxuK1xcdHNsb3QgPSBkd21hYzRfdW1hY19hZGRyX3Nsb3QoaHcsIHJlZ19uKTtcXG4rXFx0c3RtbWFjX2R3bWFjNF9zZXRfbWFjX2FkZHIoaW9hZGRyLCBhZGRyLCBHTUFDX0FERFJfSElHSChzbG90KSxcXG4rXFx0XFx0XFx0XFx0ICAgR01BQ19BRERSX0xPVyhzbG90KSk7XFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkIGR3bWFjNF9nZXRfdW1hY19hZGRyKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxcbiBcXHRcXHRcXHRcXHQgdW5zaWduZWQgY2hhciAqYWRkciwgdW5zaWduZWQgaW50IHJlZ19uKVxcbiB7XFxuIFxcdHZvaWQgX19pb21lbSAqaW9hZGRyID0gaHctXFx1MDAzZXBjc3I7XFxuK1xcdHVuc2lnbmVkIGludCBzbG90O1xcbiBcXG4tXFx0c3RtbWFjX2dldF9tYWNfYWRkcihpb2FkZHIsIGFkZHIsIEdNQUNfQUREUl9ISUdIKHJlZ19uKSxcXG4tXFx0XFx0XFx0ICAgIEdNQUNfQUREUl9MT1cocmVnX24pKTtcXG4rXFx0c2xvdCA9IGR3bWFjNF91bWFjX2FkZHJfc2xvdChodywgcmVnX24pO1xcbitcXHRzdG1tYWNfZ2V0X21hY19hZGRyKGlvYWRkciwgYWRkciwgR01BQ19BRERSX0hJR0goc2xvdCksXFxuK1xcdFxcdFxcdCAgICBHTUFDX0FERFJfTE9XKHNsb3QpKTtcXG4gfVxcbiBcXG4gc3RhdGljIGludCBkd21hYzRfc2V0X2xwaV9tb2RlKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxcbkBAIC01MjIsOSArNTYzLDYgQEAgc3RhdGljIHZvaWQgZHdtYWM0X3NldF9maWx0ZXIoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXFxuIFxcbiBcXHQvKiBIYW5kbGUgbXVsdGlwbGUgdW5pY2FzdCBhZGRyZXNzZXMgKi9cXG4gXFx0aWYgKG5ldGRldl91Y19jb3VudChkZXYpICsgMSBcXHUwMDNlIGh3LVxcdTAwM2V1bmljYXN0X2ZpbHRlcl9lbnRyaWVzKSB7XFxuLVxcdFxcdC8qIFN3aXRjaCB0byBwcm9taXNjdW91cyBtb2RlIGlmIG1vcmUgdGhhbiAxMjggYWRkcnNcXG4tXFx0XFx0ICogYXJlIHJlcXVpcmVkXFxuLVxcdFxcdCAqL1xcbiBcXHRcXHR2YWx1ZSB8PSBHTUFDX1BBQ0tFVF9GSUxURVJfUFI7XFxuIFxcdH0gZWxzZSB7XFxuIFxcdFxcdHN0cnVjdCBuZXRkZXZfaHdfYWRkciAqaGE7XFxuQEAgLTUzNSw5ICs1NzMsMTEgQEAgc3RhdGljIHZvaWQgZHdtYWM0X3NldF9maWx0ZXIoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXFxuIFxcdFxcdFxcdHJlZysrO1xcbiBcXHRcXHR9XFxuIFxcbi1cXHRcXHR3aGlsZSAocmVnIFxcdTAwM2MgR01BQ19NQVhfUEVSRkVDVF9BRERSRVNTRVMpIHtcXG4tXFx0XFx0XFx0d3JpdGVsKDAsIGlvYWRkciArIEdNQUNfQUREUl9ISUdIKHJlZykpO1xcbi1cXHRcXHRcXHR3cml0ZWwoMCwgaW9hZGRyICsgR01BQ19BRERSX0xPVyhyZWcpKTtcXG4rXFx0XFx0d2hpbGUgKHJlZyBcXHUwMDNjIGh3LVxcdTAwM2V1bmljYXN0X2ZpbHRlcl9lbnRyaWVzKSB7XFxuK1xcdFxcdFxcdHVuc2lnbmVkIGludCBzbG90ID0gZHdtYWM0X3VtYWNfYWRkcl9zbG90KGh3LCByZWcpO1xcbitcXG4rXFx0XFx0XFx0d3JpdGVsKDAsIGlvYWRkciArIEdNQUNfQUREUl9ISUdIKHNsb3QpKTtcXG4rXFx0XFx0XFx0d3JpdGVsKDAsIGlvYWRkciArIEdNQUNfQUREUl9MT1coc2xvdCkpO1xcbiBcXHRcXHRcXHRyZWcrKztcXG4gXFx0XFx0fVxcbiBcXHR9XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9kbWEuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9kbWEuY1xcbmluZGV4IDIzZmZlMWFkY2QwZDMuLjE0YWMzZjBlNTFmNzcgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2RtYS5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2RtYS5jXFxuQEAgLTM4OCw2ICszODgsOCBAQCBzdGF0aWMgaW50IGR3bWFjNF9nZXRfaHdfZmVhdHVyZSh2b2lkIF9faW9tZW0gKmlvYWRkcixcXG4gXFx0ZG1hX2NhcC1cXHUwMDNlaGFsZl9kdXBsZXggPSAoaHdfY2FwIFxcdTAwMjYgR01BQ19IV19GRUFUX0hEU0VMKSBcXHUwMDNlXFx1MDAzZSAyO1xcbiBcXHRkbWFfY2FwLVxcdTAwM2V2bGhhc2ggPSAoaHdfY2FwIFxcdTAwMjYgR01BQ19IV19GRUFUX1ZMSEFTSCkgXFx1MDAzZVxcdTAwM2UgNDtcXG4gXFx0ZG1hX2NhcC1cXHUwMDNlbXVsdGlfYWRkciA9IChod19jYXAgXFx1MDAyNiBHTUFDX0hXX0ZFQVRfQURETUFDKSBcXHUwMDNlXFx1MDAzZSAxODtcXG4rXFx0ZG1hX2NhcC1cXHUwMDNlYWRkaXRpb25hbF8zMl9hZGRyID0gKGh3X2NhcCBcXHUwMDI2IEdNQUNfSFdfRkVBVF9NQUNBRFIzMlNFTCkgXFx1MDAzZVxcdTAwM2UgMjM7XFxuK1xcdGRtYV9jYXAtXFx1MDAzZWFkZGl0aW9uYWxfNjRfYWRkciA9IChod19jYXAgXFx1MDAyNiBHTUFDX0hXX0ZFQVRfTUFDQURSNjRTRUwpIFxcdTAwM2VcXHUwMDNlIDI0O1xcbiBcXHRkbWFfY2FwLVxcdTAwM2VwY3MgPSAoaHdfY2FwIFxcdTAwMjYgR01BQ19IV19GRUFUX1BDU1NFTCkgXFx1MDAzZVxcdTAwM2UgMztcXG4gXFx0ZG1hX2NhcC1cXHUwMDNlc21hX21kaW8gPSAoaHdfY2FwIFxcdTAwMjYgR01BQ19IV19GRUFUX1NNQVNFTCkgXFx1MDAzZVxcdTAwM2UgNTtcXG4gXFx0ZG1hX2NhcC1cXHUwMDNlcG10X3JlbW90ZV93YWtlX3VwID0gKGh3X2NhcCBcXHUwMDI2IEdNQUNfSFdfRkVBVF9SV0tTRUwpIFxcdTAwM2VcXHUwMDNlIDY7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXFxuaW5kZXggZjJmYzg5MTc2NjU0ZS4uODA0MTNiYThkZjU1ZSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xcbkBAIC02NTgwLDYgKzY1ODAsMTggQEAgc3RhdGljIGludCBzdG1tYWNfZG1hX2NhcF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KVxcbiBcXHRcXHRzZXFfcHJpbnRmKHNlcSxcXG4gXFx0XFx0XFx0ICAgXFxcIlxcXFx0TnVtYmVyIG9mIEFkZGl0aW9uYWwgTUFDIGFkZHJlc3MgcmVnaXN0ZXJzOiAlZFxcXFxuXFxcIixcXG4gXFx0XFx0XFx0ICAgcHJpdi1cXHUwMDNlZG1hX2NhcC5tdWx0aV9hZGRyKTtcXG4rXFx0fSBlbHNlIGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNCkge1xcbitcXHRcXHRzZXFfcHJpbnRmKHNlcSxcXG4rXFx0XFx0XFx0ICAgXFxcIlxcXFx0TnVtYmVyIG9mIE1BQyBhZGRyZXNzIHJlZ2lzdGVycyAoMS0zMSk6ICVkXFxcXG5cXFwiLFxcbitcXHRcXHRcXHQgICBwcml2LVxcdTAwM2VkbWFfY2FwLm11bHRpX2FkZHIpO1xcbitcXHRcXHRzZXFfcHJpbnRmKHNlcSxcXG4rXFx0XFx0XFx0ICAgXFxcIlxcXFx0QWRkaXRpb25hbCAzMiBNQUMgYWRkcmVzcyByZWdpc3RlcnMgKDMyLTYzKTogJXNcXFxcblxcXCIsXFxuK1xcdFxcdFxcdCAgIHByaXYtXFx1MDAzZWRtYV9jYXAuYWRkaXRpb25hbF8zMl9hZGRyID8gXFxcIllcXFwiIDogXFxcIk5cXFwiKTtcXG4rXFx0XFx0c2VxX3ByaW50ZihzZXEsXFxuK1xcdFxcdFxcdCAgIFxcXCJcXFxcdEFkZGl0aW9uYWwgNjQgTUFDIGFkZHJlc3MgcmVnaXN0ZXJzICg2NC0xMjcpOiAlc1xcXFxuXFxcIixcXG4rXFx0XFx0XFx0ICAgcHJpdi1cXHUwMDNlZG1hX2NhcC5hZGRpdGlvbmFsXzY0X2FkZHIgPyBcXFwiWVxcXCIgOiBcXFwiTlxcXCIpO1xcbitcXHRcXHRzZXFfcHJpbnRmKHNlcSwgXFxcIlxcXFx0SGFzaCBGaWx0ZXI6ICVzXFxcXG5cXFwiLFxcbitcXHRcXHRcXHQgICAocHJpdi1cXHUwMDNlZG1hX2NhcC5oYXNoX2ZpbHRlcikgPyBcXFwiWVxcXCIgOiBcXFwiTlxcXCIpO1xcbiBcXHR9IGVsc2Uge1xcbiBcXHRcXHRzZXFfcHJpbnRmKHNlcSwgXFxcIlxcXFx0SGFzaCBGaWx0ZXI6ICVzXFxcXG5cXFwiLFxcbiBcXHRcXHRcXHQgICAocHJpdi1cXHUwMDNlZG1hX2NhcC5oYXNoX2ZpbHRlcikgPyBcXFwiWVxcXCIgOiBcXFwiTlxcXCIpO1xcbkBAIC03NDgwLDYgKzc0OTIsMzMgQEAgc3RhdGljIGludCBzdG1tYWNfaHdfaW5pdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuIFxcdFxcdHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZXR4X2ZpZm9fc2l6ZSA9IHByaXYtXFx1MDAzZWRtYV9jYXAudHhfZmlmb19zaXplO1xcbiBcXHR9XFxuIFxcbitcXHQvKiBPbiBEV01BQzQgd2UgY2FuIGdldCB0aGUgZXhhY3QgbnVtYmVyIG9mIHBlcmZlY3QgZmlsdGVyIGVudHJpZXMgZnJvbVxcbitcXHQgKiB0aGUgSFdfRmVhdHVyZXMuXFxuK1xcdCAqL1xcbitcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQzQpIHtcXG4rXFx0XFx0cHJpdi1cXHUwMDNlaHctXFx1MDAzZW11bHRpX2FkZHIgPSBwcml2LVxcdTAwM2VkbWFfY2FwLm11bHRpX2FkZHI7XFxuK1xcdFxcdHByaXYtXFx1MDAzZWh3LVxcdTAwM2VhZGRpdGlvbmFsXzMyX2FkZHIgPVxcbitcXHRcXHRcXHQhIXByaXYtXFx1MDAzZWRtYV9jYXAuYWRkaXRpb25hbF8zMl9hZGRyO1xcbitcXHRcXHRwcml2LVxcdTAwM2Vody1cXHUwMDNlYWRkaXRpb25hbF82NF9hZGRyID1cXG4rXFx0XFx0XFx0ISFwcml2LVxcdTAwM2VkbWFfY2FwLmFkZGl0aW9uYWxfNjRfYWRkcjtcXG4rXFxuK1xcdFxcdC8qIFdlIGFsd2F5cyBoYXZlIG9uZSBzbG90IGZvciB0aGUgcHJpbWFyeSBNQUMgKi9cXG4rXFx0XFx0cHJpdi1cXHUwMDNlaHctXFx1MDAzZXVuaWNhc3RfZmlsdGVyX2VudHJpZXMgPSAxO1xcbitcXG4rXFx0XFx0LyogSG93IG1hbnkgc2xvdHMgaW4gdGhlIDEgLVxcdTAwM2UgMzEgcmFuZ2UgKi9cXG4rXFx0XFx0cHJpdi1cXHUwMDNlaHctXFx1MDAzZXVuaWNhc3RfZmlsdGVyX2VudHJpZXMgKz0gcHJpdi1cXHUwMDNlaHctXFx1MDAzZW11bHRpX2FkZHI7XFxuK1xcbitcXHRcXHQvKiBBZGRpdGlvbmFsIDMyIGVudHJpZXMgaW4gdGhlIDMyIC1cXHUwMDNlIDYzIHJhbmdlICovXFxuK1xcdFxcdGlmIChwcml2LVxcdTAwM2Vody1cXHUwMDNlYWRkaXRpb25hbF8zMl9hZGRyKVxcbitcXHRcXHRcXHRwcml2LVxcdTAwM2Vody1cXHUwMDNldW5pY2FzdF9maWx0ZXJfZW50cmllcyArPSAzMjtcXG4rXFxuK1xcdFxcdC8qIEFkZGl0aW9uYWwgNjQgZW50cmllcyBpbiB0aGUgNjQgLVxcdTAwM2UgMTI3IHJhbmdlLCBjYW4gYmUgZW5hYmxlZFxcbitcXHRcXHQgKiBpbmRlcGVuZGVudGx5IG9mIHRoZSAzMiAtXFx1MDAzZSA2MyByYW5nZVxcbitcXHRcXHQgKi9cXG4rXFx0XFx0aWYgKHByaXYtXFx1MDAzZWh3LVxcdTAwM2VhZGRpdGlvbmFsXzY0X2FkZHIpXFxuK1xcdFxcdFxcdHByaXYtXFx1MDAzZWh3LVxcdTAwM2V1bmljYXN0X2ZpbHRlcl9lbnRyaWVzICs9IDY0O1xcbitcXHR9XFxuK1xcbiBcXHRwcml2LVxcdTAwM2Vody1cXHUwMDNldmxhbl9mYWlsX3FfZW4gPVxcbiBcXHRcXHQocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBTVE1NQUNfRkxBR19WTEFOX0ZBSUxfUV9FTik7XFxuIFxcdHByaXYtXFx1MDAzZWh3LVxcdTAwM2V2bGFuX2ZhaWxfcSA9IHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZXZsYW5fZmFpbF9xO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQwNzozMDozMC42Njg4MjM1NDZaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjU5ODE5NzMyNTQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMgNCAoRFdNQUM0KSB1bmljYXN0IGZpbHRlciBjb25maWd1cmF0aW9uIGFuZCBoYXJkd2FyZSBmZWF0dXJlIGRldGVjdGlvbiBpbiB0aGUgU1RNTUFDIGV0aGVybmV0IGRyaXZlci4gRFdNQUM0IGNvbnRyb2xsZXJzIGFyZSBlbWJlZGRlZCBpbiBwaHlzaWNhbCBTb0NzIChlLmcuLCBJbnRlbCBFbGtoYXJ0IExha2UsIFF1YWxjb21tIEVUSFFPUywgTlhQIFMzMikgYW5kIFBDSSBkZXZpY2VzIHRoYXQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGNsb3VkIGVudmlyb25tZW50cyAoR0NFKS4gQ29uc2VxdWVudGx5LCB0aGVzZSBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGJmNDZmZmY1NjVlMDdhZjQ1MWE4OTM5MzhhOGI2MjU4NTA0NjA2ZWNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzMSAwNzozMDoyOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmhcbmluZGV4IDkyN2VhNjIzMDA3M2YuLjE3MjlmYjI5ZWNlMzggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmhcbkBAIC00MTksNiArNDE5LDggQEAgc3RydWN0IGRtYV9mZWF0dXJlcyB7XG4gXHR1bnNpZ25lZCBpbnQgaGFsZl9kdXBsZXg7XG4gXHR1bnNpZ25lZCBpbnQgaGFzaF9maWx0ZXI7XG4gXHR1bnNpZ25lZCBpbnQgbXVsdGlfYWRkcjtcbitcdHVuc2lnbmVkIGludCBhZGRpdGlvbmFsXzMyX2FkZHI7XG4rXHR1bnNpZ25lZCBpbnQgYWRkaXRpb25hbF82NF9hZGRyO1xuIFx0dW5zaWduZWQgaW50IHBjcztcbiBcdHVuc2lnbmVkIGludCBzbWFfbWRpbztcbiBcdHVuc2lnbmVkIGludCBwbXRfcmVtb3RlX3dha2VfdXA7XG5AQCAtNjI3LDYgKzYyOSw3IEBAIHN0cnVjdCBtYWNfZGV2aWNlX2luZm8ge1xuIFx0dm9pZCBfX2lvbWVtICpwY3NyOyAgICAgLyogdnBvaW50ZXIgdG8gZGV2aWNlIENTUnMgKi9cbiBcdHVuc2lnbmVkIGludCBtdWx0aWNhc3RfZmlsdGVyX2JpbnM7XG4gXHR1bnNpZ25lZCBpbnQgdW5pY2FzdF9maWx0ZXJfZW50cmllcztcbitcdHVuc2lnbmVkIGludCBtdWx0aV9hZGRyO1xuIFx0dW5zaWduZWQgaW50IG1jYXN0X2JpdHNfbG9nMjtcbiBcdHVuc2lnbmVkIGludCByeF9jc3VtO1xuIFx0dW5zaWduZWQgaW50IG51bV92bGFuO1xuQEAgLTYzNSw2ICs2MzgsOCBAQCBzdHJ1Y3QgbWFjX2RldmljZV9pbmZvIHtcbiBcdHU4IHZsYW5fZmFpbF9xO1xuIFx0Ym9vbCBod192bGFuX2VuO1xuIFx0Ym9vbCByZXZlcnNlX3NnbWlpX2VuYWJsZTtcbitcdGJvb2wgYWRkaXRpb25hbF8zMl9hZGRyO1xuK1x0Ym9vbCBhZGRpdGlvbmFsXzY0X2FkZHI7XG4gXG4gXHQvKiBUaGlzIHNwaW5sb2NrIHByb3RlY3RzIHJlYWQtbW9kaWZ5LXdyaXRlIG9mIHRoZSBpbnRlcnJ1cHRcbiBcdCAqIG1hc2svZW5hYmxlIHJlZ2lzdGVycy5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzQuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNC5oXG5pbmRleCA2MzgyODM2ODI4YmFjLi42OTY4NDY1MzEyMjk1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0LmhcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNC5oXG5AQCAtNzUsOCArNzUsNiBAQFxuICNkZWZpbmUgR01BQ19QQUNLRVRfRklMVEVSX0lQRkVcdFx0QklUKDIwKVxuICNkZWZpbmUgR01BQ19QQUNLRVRfRklMVEVSX1JBXHRcdEJJVCgzMSlcbiBcbi0jZGVmaW5lIEdNQUNfTUFYX1BFUkZFQ1RfQUREUkVTU0VTXHQxMjhcbi1cbiAvKiBNQUMgUlggUXVldWUgRW5hYmxlICovXG4gI2RlZmluZSBHTUFDX1JYX1FVRVVFX0NMRUFSKHF1ZXVlKVx0fihHRU5NQVNLKDEsIDApIFx1MDAzY1x1MDAzYyAoKHF1ZXVlKSAqIDIpKVxuICNkZWZpbmUgR01BQ19SWF9BVl9RVUVVRV9FTkFCTEUocXVldWUpXHRCSVQoKHF1ZXVlKSAqIDIpXG5AQCAtMTc2LDcgKzE3NCw5IEBAIGVudW0gcG93ZXJfZXZlbnQge1xuIFxuIC8qIE1BQyBIVyBmZWF0dXJlczAgYml0bWFwICovXG4gI2RlZmluZSBHTUFDX0hXX0ZFQVRfU0FWTEFOSU5TXHRcdEJJVCgyNylcbi0jZGVmaW5lIEdNQUNfSFdfRkVBVF9BRERNQUNcdFx0QklUKDE4KVxuKyNkZWZpbmUgR01BQ19IV19GRUFUX01BQ0FEUjY0U0VMXHRCSVQoMjQpXG4rI2RlZmluZSBHTUFDX0hXX0ZFQVRfTUFDQURSMzJTRUxcdEJJVCgyMylcbisjZGVmaW5lIEdNQUNfSFdfRkVBVF9BRERNQUNcdFx0R0VOTUFTSygyMiwgMTgpXG4gI2RlZmluZSBHTUFDX0hXX0ZFQVRfUlhDT0VTRUxcdFx0QklUKDE2KVxuICNkZWZpbmUgR01BQ19IV19GRUFUX1RYQ09TRUxcdFx0QklUKDE0KVxuICNkZWZpbmUgR01BQ19IV19GRUFUX0VFRVNFTFx0XHRCSVQoMTMpXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2NvcmUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9jb3JlLmNcbmluZGV4IDE4YjM1N2IyNTdjYzAuLmZiNWI5NmE0MzUwNTQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzRfY29yZS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzRfY29yZS5jXG5AQCAtMzY1LDIyICszNjUsNjMgQEAgc3RhdGljIHZvaWQgZHdtYWM0X3BtdChzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdW5zaWduZWQgbG9uZyBtb2RlKVxuIFx0d3JpdGVsKHBtdCwgaW9hZGRyICsgR01BQ19QTVQpO1xuIH1cbiBcbisvKipcbisgKiBkd21hYzRfdW1hY19hZGRyX3Nsb3QgLSBHZXQgdGhlIFVDIGZpbHRlciBzbG90IGZvciB0aGUgTnRoIE1BQyBhZGRyZXNzXG4rICogQGh3OiBUaGUgTUFDIGRldmljZSBpbmZvXG4rICogQHJlZ19uOiBUaGUgTUFDIGFkZHJlc3MncyBpbmRleCBpbiB0aGUgVUMgbGlzdFxuKyAqXG4rICogT24gZHdtYWM0IHRoZSBzbG90cyBhdmFpbGFibGUgZm9yIFVuaWNhc3QgTUFDIGZpbHRlcmluZyBhcmUgY29uZmlndXJlZCB3aGVuXG4rICogaW50ZWdyYXRpbmcgdGhlIElQLlxuKyAqXG4rICogIC0gU2xvdCAwIGlzIGFsd2F5cyBhdmFpbGFibGUsIHVzZWQgdG8gc3RvcmUgdGhlIHByaW1hcnkgTUFDIGFkZHJlc3NcbisgKiAgLSBGcm9tIDEgdG8gMzEsIHRoZSBudW1iZXIgb2YgaW1wbGVtZW50ZWQgc2xvdHMgaXMgc2V0IGluIGh3LVx1MDAzZW11bHRpX2FkZHJcbisgKiAgLSBGcm9tIDMyIHRvIDYzLCB0aGUgcmFuZ2UgaXMgYXZhaWxhYmxlIGlmIGh3LVx1MDAzZWFkZGl0aW9uYWxfMzJfYWRkclxuKyAqICAgIGlzIHNldFxuKyAqICAtIEZyb20gNjQgdG8gMTI3LCB0aGUgcmFuZ2UgaXMgYXZhaWxhYmxlIGlmIGh3LVx1MDAzZWFkZGl0aW9uYWxfNjRfYWRkciBpcyBzZXRcbisgKlxuKyAqIEFsbCB0aGUgcmFuZ2VzIGNhbiBiZSBjb25maWd1cmVkIGluZGVwZW5kZW50bHkgKGUuZy4gNjQgLVx1MDAzZSAxMjcgY2FuIGJlXG4rICogYXZhaWxhYmxlLCBidXQgbm90IDMyIC1cdTAwM2UgNjMpXG4rICpcbisgKiBSZXR1cm5zOiBUaGUgcGh5c2ljYWwgc2xvdCBpbmRleCBpbiB0aGUgVUMgZmlsdGVyXG4rICovXG4rc3RhdGljIHVuc2lnbmVkIGludCBkd21hYzRfdW1hY19hZGRyX3Nsb3Qoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXG4rXHRcdFx0XHRcdCAgdW5zaWduZWQgaW50IHJlZ19uKVxuK3tcbitcdHVuc2lnbmVkIGludCBlbXB0eV9zbG90cyA9IDA7XG4rXG4rXHQvKiByZWdfbiBpcyBpbiB0aGUgMS0zMSBiYW5rIDogMSB0byAxIG1hcHBpbmcgKi9cbitcdGlmIChyZWdfbiBcdTAwM2MgKGh3LVx1MDAzZW11bHRpX2FkZHIgKyAxKSlcbitcdFx0cmV0dXJuIHJlZ19uO1xuK1xuK1x0LyogR2FwIGJldHdlZW4gdGhlIGxhc3QgYWRkcmVzcyBpbiB0aGUgMS1cdTAwM2UzMSByYW5nZSBhbmQgdGhlIG5leHQgc2xvdCAqL1xuK1x0aWYgKGh3LVx1MDAzZWFkZGl0aW9uYWxfMzJfYWRkcilcbitcdFx0ZW1wdHlfc2xvdHMgPSAzMiAtIChody1cdTAwM2VtdWx0aV9hZGRyICsgMSk7XG4rXHRlbHNlIGlmIChody1cdTAwM2VhZGRpdGlvbmFsXzY0X2FkZHIpXG4rXHRcdGVtcHR5X3Nsb3RzID0gNjQgLSAoaHctXHUwMDNlbXVsdGlfYWRkciArIDEpO1xuK1xuK1x0cmV0dXJuIHJlZ19uICsgZW1wdHlfc2xvdHM7XG4rfVxuK1xuIHN0YXRpYyB2b2lkIGR3bWFjNF9zZXRfdW1hY19hZGRyKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxuIFx0XHRcdFx0IGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZHIsIHVuc2lnbmVkIGludCByZWdfbilcbiB7XG4gXHR2b2lkIF9faW9tZW0gKmlvYWRkciA9IGh3LVx1MDAzZXBjc3I7XG4rXHR1bnNpZ25lZCBpbnQgc2xvdDtcbiBcbi1cdHN0bW1hY19kd21hYzRfc2V0X21hY19hZGRyKGlvYWRkciwgYWRkciwgR01BQ19BRERSX0hJR0gocmVnX24pLFxuLVx0XHRcdFx0ICAgR01BQ19BRERSX0xPVyhyZWdfbikpO1xuK1x0c2xvdCA9IGR3bWFjNF91bWFjX2FkZHJfc2xvdChodywgcmVnX24pO1xuK1x0c3RtbWFjX2R3bWFjNF9zZXRfbWFjX2FkZHIoaW9hZGRyLCBhZGRyLCBHTUFDX0FERFJfSElHSChzbG90KSxcbitcdFx0XHRcdCAgIEdNQUNfQUREUl9MT1coc2xvdCkpO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBkd21hYzRfZ2V0X3VtYWNfYWRkcihzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcbiBcdFx0XHRcdCB1bnNpZ25lZCBjaGFyICphZGRyLCB1bnNpZ25lZCBpbnQgcmVnX24pXG4ge1xuIFx0dm9pZCBfX2lvbWVtICppb2FkZHIgPSBody1cdTAwM2VwY3NyO1xuK1x0dW5zaWduZWQgaW50IHNsb3Q7XG4gXG4tXHRzdG1tYWNfZ2V0X21hY19hZGRyKGlvYWRkciwgYWRkciwgR01BQ19BRERSX0hJR0gocmVnX24pLFxuLVx0XHRcdCAgICBHTUFDX0FERFJfTE9XKHJlZ19uKSk7XG4rXHRzbG90ID0gZHdtYWM0X3VtYWNfYWRkcl9zbG90KGh3LCByZWdfbik7XG4rXHRzdG1tYWNfZ2V0X21hY19hZGRyKGlvYWRkciwgYWRkciwgR01BQ19BRERSX0hJR0goc2xvdCksXG4rXHRcdFx0ICAgIEdNQUNfQUREUl9MT1coc2xvdCkpO1xuIH1cbiBcbiBzdGF0aWMgaW50IGR3bWFjNF9zZXRfbHBpX21vZGUoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXG5AQCAtNTIyLDkgKzU2Myw2IEBAIHN0YXRpYyB2b2lkIGR3bWFjNF9zZXRfZmlsdGVyKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxuIFxuIFx0LyogSGFuZGxlIG11bHRpcGxlIHVuaWNhc3QgYWRkcmVzc2VzICovXG4gXHRpZiAobmV0ZGV2X3VjX2NvdW50KGRldikgKyAxIFx1MDAzZSBody1cdTAwM2V1bmljYXN0X2ZpbHRlcl9lbnRyaWVzKSB7XG4tXHRcdC8qIFN3aXRjaCB0byBwcm9taXNjdW91cyBtb2RlIGlmIG1vcmUgdGhhbiAxMjggYWRkcnNcbi1cdFx0ICogYXJlIHJlcXVpcmVkXG4tXHRcdCAqL1xuIFx0XHR2YWx1ZSB8PSBHTUFDX1BBQ0tFVF9GSUxURVJfUFI7XG4gXHR9IGVsc2Uge1xuIFx0XHRzdHJ1Y3QgbmV0ZGV2X2h3X2FkZHIgKmhhO1xuQEAgLTUzNSw5ICs1NzMsMTEgQEAgc3RhdGljIHZvaWQgZHdtYWM0X3NldF9maWx0ZXIoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXG4gXHRcdFx0cmVnKys7XG4gXHRcdH1cbiBcbi1cdFx0d2hpbGUgKHJlZyBcdTAwM2MgR01BQ19NQVhfUEVSRkVDVF9BRERSRVNTRVMpIHtcbi1cdFx0XHR3cml0ZWwoMCwgaW9hZGRyICsgR01BQ19BRERSX0hJR0gocmVnKSk7XG4tXHRcdFx0d3JpdGVsKDAsIGlvYWRkciArIEdNQUNfQUREUl9MT1cocmVnKSk7XG4rXHRcdHdoaWxlIChyZWcgXHUwMDNjIGh3LVx1MDAzZXVuaWNhc3RfZmlsdGVyX2VudHJpZXMpIHtcbitcdFx0XHR1bnNpZ25lZCBpbnQgc2xvdCA9IGR3bWFjNF91bWFjX2FkZHJfc2xvdChodywgcmVnKTtcbitcbitcdFx0XHR3cml0ZWwoMCwgaW9hZGRyICsgR01BQ19BRERSX0hJR0goc2xvdCkpO1xuK1x0XHRcdHdyaXRlbCgwLCBpb2FkZHIgKyBHTUFDX0FERFJfTE9XKHNsb3QpKTtcbiBcdFx0XHRyZWcrKztcbiBcdFx0fVxuIFx0fVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9kbWEuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9kbWEuY1xuaW5kZXggMjNmZmUxYWRjZDBkMy4uMTRhYzNmMGU1MWY3NyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9kbWEuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2RtYS5jXG5AQCAtMzg4LDYgKzM4OCw4IEBAIHN0YXRpYyBpbnQgZHdtYWM0X2dldF9od19mZWF0dXJlKHZvaWQgX19pb21lbSAqaW9hZGRyLFxuIFx0ZG1hX2NhcC1cdTAwM2VoYWxmX2R1cGxleCA9IChod19jYXAgXHUwMDI2IEdNQUNfSFdfRkVBVF9IRFNFTCkgXHUwMDNlXHUwMDNlIDI7XG4gXHRkbWFfY2FwLVx1MDAzZXZsaGFzaCA9IChod19jYXAgXHUwMDI2IEdNQUNfSFdfRkVBVF9WTEhBU0gpIFx1MDAzZVx1MDAzZSA0O1xuIFx0ZG1hX2NhcC1cdTAwM2VtdWx0aV9hZGRyID0gKGh3X2NhcCBcdTAwMjYgR01BQ19IV19GRUFUX0FERE1BQykgXHUwMDNlXHUwMDNlIDE4O1xuK1x0ZG1hX2NhcC1cdTAwM2VhZGRpdGlvbmFsXzMyX2FkZHIgPSAoaHdfY2FwIFx1MDAyNiBHTUFDX0hXX0ZFQVRfTUFDQURSMzJTRUwpIFx1MDAzZVx1MDAzZSAyMztcbitcdGRtYV9jYXAtXHUwMDNlYWRkaXRpb25hbF82NF9hZGRyID0gKGh3X2NhcCBcdTAwMjYgR01BQ19IV19GRUFUX01BQ0FEUjY0U0VMKSBcdTAwM2VcdTAwM2UgMjQ7XG4gXHRkbWFfY2FwLVx1MDAzZXBjcyA9IChod19jYXAgXHUwMDI2IEdNQUNfSFdfRkVBVF9QQ1NTRUwpIFx1MDAzZVx1MDAzZSAzO1xuIFx0ZG1hX2NhcC1cdTAwM2VzbWFfbWRpbyA9IChod19jYXAgXHUwMDI2IEdNQUNfSFdfRkVBVF9TTUFTRUwpIFx1MDAzZVx1MDAzZSA1O1xuIFx0ZG1hX2NhcC1cdTAwM2VwbXRfcmVtb3RlX3dha2VfdXAgPSAoaHdfY2FwIFx1MDAyNiBHTUFDX0hXX0ZFQVRfUldLU0VMKSBcdTAwM2VcdTAwM2UgNjtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuaW5kZXggZjJmYzg5MTc2NjU0ZS4uODA0MTNiYThkZjU1ZSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbkBAIC02NTgwLDYgKzY1ODAsMTggQEAgc3RhdGljIGludCBzdG1tYWNfZG1hX2NhcF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KVxuIFx0XHRzZXFfcHJpbnRmKHNlcSxcbiBcdFx0XHQgICBcIlxcdE51bWJlciBvZiBBZGRpdGlvbmFsIE1BQyBhZGRyZXNzIHJlZ2lzdGVyczogJWRcXG5cIixcbiBcdFx0XHQgICBwcml2LVx1MDAzZWRtYV9jYXAubXVsdGlfYWRkcik7XG4rXHR9IGVsc2UgaWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNCkge1xuK1x0XHRzZXFfcHJpbnRmKHNlcSxcbitcdFx0XHQgICBcIlxcdE51bWJlciBvZiBNQUMgYWRkcmVzcyByZWdpc3RlcnMgKDEtMzEpOiAlZFxcblwiLFxuK1x0XHRcdCAgIHByaXYtXHUwMDNlZG1hX2NhcC5tdWx0aV9hZGRyKTtcbitcdFx0c2VxX3ByaW50ZihzZXEsXG4rXHRcdFx0ICAgXCJcXHRBZGRpdGlvbmFsIDMyIE1BQyBhZGRyZXNzIHJlZ2lzdGVycyAoMzItNjMpOiAlc1xcblwiLFxuK1x0XHRcdCAgIHByaXYtXHUwMDNlZG1hX2NhcC5hZGRpdGlvbmFsXzMyX2FkZHIgPyBcIllcIiA6IFwiTlwiKTtcbitcdFx0c2VxX3ByaW50ZihzZXEsXG4rXHRcdFx0ICAgXCJcXHRBZGRpdGlvbmFsIDY0IE1BQyBhZGRyZXNzIHJlZ2lzdGVycyAoNjQtMTI3KTogJXNcXG5cIixcbitcdFx0XHQgICBwcml2LVx1MDAzZWRtYV9jYXAuYWRkaXRpb25hbF82NF9hZGRyID8gXCJZXCIgOiBcIk5cIik7XG4rXHRcdHNlcV9wcmludGYoc2VxLCBcIlxcdEhhc2ggRmlsdGVyOiAlc1xcblwiLFxuK1x0XHRcdCAgIChwcml2LVx1MDAzZWRtYV9jYXAuaGFzaF9maWx0ZXIpID8gXCJZXCIgOiBcIk5cIik7XG4gXHR9IGVsc2Uge1xuIFx0XHRzZXFfcHJpbnRmKHNlcSwgXCJcXHRIYXNoIEZpbHRlcjogJXNcXG5cIixcbiBcdFx0XHQgICAocHJpdi1cdTAwM2VkbWFfY2FwLmhhc2hfZmlsdGVyKSA/IFwiWVwiIDogXCJOXCIpO1xuQEAgLTc0ODAsNiArNzQ5MiwzMyBAQCBzdGF0aWMgaW50IHN0bW1hY19od19pbml0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbiBcdFx0cHJpdi1cdTAwM2VwbGF0LVx1MDAzZXR4X2ZpZm9fc2l6ZSA9IHByaXYtXHUwMDNlZG1hX2NhcC50eF9maWZvX3NpemU7XG4gXHR9XG4gXG4rXHQvKiBPbiBEV01BQzQgd2UgY2FuIGdldCB0aGUgZXhhY3QgbnVtYmVyIG9mIHBlcmZlY3QgZmlsdGVyIGVudHJpZXMgZnJvbVxuK1x0ICogdGhlIEhXX0ZlYXR1cmVzLlxuK1x0ICovXG4rXHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KSB7XG4rXHRcdHByaXYtXHUwMDNlaHctXHUwMDNlbXVsdGlfYWRkciA9IHByaXYtXHUwMDNlZG1hX2NhcC5tdWx0aV9hZGRyO1xuK1x0XHRwcml2LVx1MDAzZWh3LVx1MDAzZWFkZGl0aW9uYWxfMzJfYWRkciA9XG4rXHRcdFx0ISFwcml2LVx1MDAzZWRtYV9jYXAuYWRkaXRpb25hbF8zMl9hZGRyO1xuK1x0XHRwcml2LVx1MDAzZWh3LVx1MDAzZWFkZGl0aW9uYWxfNjRfYWRkciA9XG4rXHRcdFx0ISFwcml2LVx1MDAzZWRtYV9jYXAuYWRkaXRpb25hbF82NF9hZGRyO1xuK1xuK1x0XHQvKiBXZSBhbHdheXMgaGF2ZSBvbmUgc2xvdCBmb3IgdGhlIHByaW1hcnkgTUFDICovXG4rXHRcdHByaXYtXHUwMDNlaHctXHUwMDNldW5pY2FzdF9maWx0ZXJfZW50cmllcyA9IDE7XG4rXG4rXHRcdC8qIEhvdyBtYW55IHNsb3RzIGluIHRoZSAxIC1cdTAwM2UgMzEgcmFuZ2UgKi9cbitcdFx0cHJpdi1cdTAwM2Vody1cdTAwM2V1bmljYXN0X2ZpbHRlcl9lbnRyaWVzICs9IHByaXYtXHUwMDNlaHctXHUwMDNlbXVsdGlfYWRkcjtcbitcbitcdFx0LyogQWRkaXRpb25hbCAzMiBlbnRyaWVzIGluIHRoZSAzMiAtXHUwMDNlIDYzIHJhbmdlICovXG4rXHRcdGlmIChwcml2LVx1MDAzZWh3LVx1MDAzZWFkZGl0aW9uYWxfMzJfYWRkcilcbitcdFx0XHRwcml2LVx1MDAzZWh3LVx1MDAzZXVuaWNhc3RfZmlsdGVyX2VudHJpZXMgKz0gMzI7XG4rXG4rXHRcdC8qIEFkZGl0aW9uYWwgNjQgZW50cmllcyBpbiB0aGUgNjQgLVx1MDAzZSAxMjcgcmFuZ2UsIGNhbiBiZSBlbmFibGVkXG4rXHRcdCAqIGluZGVwZW5kZW50bHkgb2YgdGhlIDMyIC1cdTAwM2UgNjMgcmFuZ2VcbitcdFx0ICovXG4rXHRcdGlmIChwcml2LVx1MDAzZWh3LVx1MDAzZWFkZGl0aW9uYWxfNjRfYWRkcilcbitcdFx0XHRwcml2LVx1MDAzZWh3LVx1MDAzZXVuaWNhc3RfZmlsdGVyX2VudHJpZXMgKz0gNjQ7XG4rXHR9XG4rXG4gXHRwcml2LVx1MDAzZWh3LVx1MDAzZXZsYW5fZmFpbF9xX2VuID1cbiBcdFx0KHByaXYtXHUwMDNlcGxhdC1cdTAwM2VmbGFncyBcdTAwMjYgU1RNTUFDX0ZMQUdfVkxBTl9GQUlMX1FfRU4pO1xuIFx0cHJpdi1cdTAwM2Vody1cdTAwM2V2bGFuX2ZhaWxfcSA9IHByaXYtXHUwMDNlcGxhdC1cdTAwM2V2bGFuX2ZhaWxfcTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDA3OjMwOjMwLjY2ODgyNTM4NloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjc4NTM0OTM0NzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBzdG1tYWMgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGNsZWFybHkgZGlnZ2luZyBpbnRvIHRoZSBgc3RtbWFjYCBkcml2ZXIg4oCTIHRoYXQncyB0aGUgU1RNaWNyb2VsZWN0cm9uaWNzIE11bHRpLUNoYW5uZWwgRXRoZXJuZXQgTUFDIGRyaXZlci4gSXQncyB0b3VjaGluZyBzb21lIGtleSBmaWxlczogYGNvbW1vbi5oYCwgYGR3bWFjNC5oYCwgYW5kIHRoZSBjb3JlIGltcGxlbWVudGF0aW9uIGZpbGVzIGxpa2UgYGR3bWFjNF9jb3JlLmNgLCBgZHdtYWM0X2RtYS5jYCwgYW5kIHRoZSBtYWluIGRyaXZlciBmaWxlIGBzdG1tYWNfbWFpbi5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgdGhlIGNvbnRleHQgb2YgdGhpcy4gSXMgdGhpcyBzb21ldGhpbmcgSSBjYW4gZWFzaWx5IHRlc3Q/XG5cbkkgbmVlZCB0byBxdWlja2x5IGFzc2VzcyB0aGUgZW11bGF0aW9uIHNpdHVhdGlvbi4gSXMgYHN0bW1hY2AgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVT8gT3IgZG9lcyB0aGlzIHJlcXVpcmUgc3BlY2lmaWMgaGFyZHdhcmUsIG9yIGF0IGxlYXN0IGEgc3BlY2lmaWMgcGxhdGZvcm0gY29uZmlndXJhdGlvbiBpbiBRRU1VIG9yIEdDRT8gSGFuZyBvbuKApiBiZWZvcmUgSSBnbyBkb3duIHRoYXQgcmFiYml0IGhvbGUsIEkgc2hvdWxkIGp1c3QgY29uZmlybSBob3cgaXQncyAqYWN0dWFsbHkqIHVzZWQgaW4gdGhlIGtlcm5lbC4gTGV0J3Mgc3RhcnQgd2l0aCBhIHF1aWNrIHNlYXJjaCB0byBwaW5wb2ludCBpdHMgdXNhZ2UgdGhyb3VnaG91dCB0aGUga2VybmVsIHNvdXJjZS4gS25vd2luZyB0aGF0IHdpbGwgZ2l2ZSBtZSBjb250ZXh0IGJlZm9yZSBkaWdnaW5nIGludG8gZW11bGF0aW9uIGRldGFpbHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU1ODUsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTUsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQwNzozMDozOC41MjIzMjE3NzNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY3MDc3ODI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0bW1hY1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMTU2OSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yOT1jb25maWcgU1RNTUFDX1BMQVRGT1JNXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzLVxcdGhlbHBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM0OlxcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNS1cXHQgIFRoaXMgaXMgdGhlIGRyaXZlciB1c2VkIG9uIHNldmVyYWwgU29DczpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NjA9Y29uZmlnIERXTUFDX0FOQVJJT05cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo2NzpcXHQgIFRoaXMgc2VsZWN0cyB0aGUgQW5hcmlvbiBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTY4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz03OD1jb25maWcgRFdNQUNfSU5HRU5JQ1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy04NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjg2OlxcdCAgVGhpcyBzZWxlY3RzIEluZ2VuaWMgU29DcyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTg3LVxcdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBvbiBmb3IgdGhlIEluZ2VuaWMgU29Dc1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz05MD1jb25maWcgRFdNQUNfSVBRODA2WFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjk4OlxcdCAgVGhpcyBzZWxlY3RzIHRoZSBJUFE4MDZ4IFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTk5LVxcdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgZG9lcyBub3QgdXNlIGFueSBvZiB0aGUgaGFyZHdhcmVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTE0PWNvbmZpZyBEV01BQ19NRURJQVRFS1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMjA6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIE1UMjcxMiBTb0Mgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMjI9Y29uZmlnIERXTUFDX01FU09OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEyOS1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgQW1sb2dpYyBNZXNvbiBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTMwOlxcdCAgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBNZXNvbjYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMzEtXFx0ICBNZXNvbjgsIE1lc29uOGIgYW5kIEdYQkIgU29Dcy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTMzPWNvbmZpZyBEV01BQ19OVVZPVE9OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE0MS1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgTnV2b3RvbiBNQTM1IHNlcmllcyBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxNDI6XFx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGUgbnV2b3Rvbi1kd21hYyBkcml2ZXIgaXNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE0My1cXHQgIHVzZWQgZm9yIE1BMzUgc2VyaWVzIFNvQ3MuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE0NT1jb25maWcgRFdNQUNfUUNPTV9FVEhRT1NcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTUyLVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBRdWFsY29tbSBFVEhRT1MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE1MzpcXHQgIHN0bW1hYyBkZXZpY2UgZHJpdmVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTU0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTU1PWNvbmZpZyBEV01BQ19SRU5FU0FTX0dCRVRIXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE2My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE2NDpcXHQgIFRoaXMgc2VsZWN0cyBSZW5lc2FzIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZGV2aWNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNjUtXFx0ICBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZSBSWi9WMkgoUCkgZmFtaWx5LCBSWi9UMkggYW5kXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE2OD1jb25maWcgRFdNQUNfUk9DS0NISVBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTc2LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBSb2NrY2hpcCBSSzMyODggU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE3NzpcXHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE3OT1jb25maWcgRFdNQUNfUlpOMVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xODctXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFJlbmVzYXMgUlovTjEgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE4ODpcXHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBzdXBwb3J0IGNhbiBtYWtlIHVzZSBvZiBhIGN1c3RvbSBNSUlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE4OS1cXHQgIGNvbnZlcnRlciBQQ1MgZGV2aWNlLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xOTE9Y29uZmlnIERXTUFDX1MzMlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xOTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxOTg6XFx0ICBUaGlzIHNlbGVjdHMgTlhQIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5OS1cXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZSBTMzJDQyBzZXJpZXNcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjAzPWNvbmZpZyBEV01BQ19TT0NGUEdBXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxNC1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgQWx0ZXJhIFNPQ0ZQR0EgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjE1OlxcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxNi1cXHQgIGFycmlhNSBhbmQgY3ljbG9uZTUgRlBHQSBTb0NzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMTg9Y29uZmlnIERXTUFDX1NPUEhHT1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMjUtXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFNvcGhnbyBTb0Mgc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMjY6XFx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIyNy1cXHQgIGV0aGVybmV0IGNvbnRyb2xsZXJzIG9uIHZhcmlvdXMgU29waGdvIFNvQ3MuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIyOT1jb25maWcgRFdNQUNfU1BBQ0VNSVRcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjM3LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBTcGFjZW1pdCBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIzODpcXHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjM5LVxcdCAgU3BhY2VtaXQgSzMgZXRoZXJuZXQgY29udHJvbGxlcnMuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI0MT1jb25maWcgRFdNQUNfU1RBUkZJVkVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjQ5LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBTdGFyRml2ZSBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI1MDpcXHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjUxLVxcdCAgU3RhckZpdmUgSkg3MTAwIGFuZCBKSDcxMTAgZXRoZXJuZXQgY29udHJvbGxlcnMuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI1Mz1jb25maWcgRFdNQUNfU1RJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI2MTpcXHQgIFRoaXMgc2VsZWN0cyBTVGkgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjYyLVxcdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBvbiBmb3IgdGhlIFNUaSBzZXJpZXNcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjY1PWNvbmZpZyBEV01BQ19TVE0zMlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyNzM6XFx0ICBUaGlzIHNlbGVjdHMgU1RNMzIgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjc0LVxcdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBvbiBmb3IgdGhlIFNUTTMyIHNlcmllc1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yNzc9Y29uZmlnIERXTUFDX1NVTlhJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI4NC1cXHQgIFRoaXMgc2VsZWN0cyBBbGx3aW5uZXIgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyODU6XFx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgQTIwL0EzMVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjg2LVxcdCAgR01BQyBldGhlcm5ldCBjb250cm9sbGVyLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yODg9Y29uZmlnIERXTUFDX1NVTjhJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI5Ni1cXHQgIFRoaXMgc2VsZWN0cyBBbGx3aW5uZXIgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOTc6XFx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSDMvQTgzVC9BNjRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI5OC1cXHQgIEVNQUMgZXRoZXJuZXQgY29udHJvbGxlci5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzAwPWNvbmZpZyBEV01BQ19TVU41NUlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzA4LVxcdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMwOTpcXHQgIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBBNTIzL1Q1MjdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMxMC1cXHQgIEdNQUMyMDAgZXRoZXJuZXQgY29udHJvbGxlci5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzEyPWNvbmZpZyBEV01BQ19USEVBRFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMTgtXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFQtSEVBRCBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMTk6XFx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIFQtSEVBRCBUSDE1MjBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMyMC1cXHQgIGV0aGVybmV0IGNvbnRyb2xsZXIuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMyMj1jb25maWcgRFdNQUNfSU1YOFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMzA6XFx0ICBUaGlzIHNlbGVjdHMgTlhQIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzMS1cXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIGkuTVg4IHNlcmllcyBsaWtlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMzND1jb25maWcgRFdNQUNfSU5URUxfUExBVFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNDAtXFx0ICBUaGlzIHNlbGVjdHMgdGhlIEludGVsIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM0MTpcXHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIEludGVsIEtlZW0gQmF5XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNDItXFx0ICBTb0MuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM0ND1jb25maWcgRFdNQUNfTE9PTkdTT04xXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM1MTpcXHQgIFRoaXMgc2VsZWN0cyBMb29uZ3NvbjEgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzUyLVxcdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgTG9vbmdzb24xLWJhc2VkIGJvYXJkc1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNTU9Y29uZmlnIERXTUFDX1RFR1JBXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM2MC1cXHQgIGZvdW5kIG9uIHRoZSBOVklESUEgVGVncmEgU29DIGRldmljZXMuIFRoaXMgZHJpdmVyIHByb3ZpZGVzIHRoZSBnbHVlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNjE6XFx0ICBsYXllciBvbiB0b3Agb2YgdGhlIHN0bW1hYyBkcml2ZXIgcmVxdWlyZWQgZm9yIHRoZXNlIE5WSURJQSBUZWdyYSBTb0NcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM2Mi1cXHQgIGRldmljZXMuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM3Mz1jb25maWcgU1RNTUFDX0xJQlBDSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzUtXFx0aGVscFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzc2OlxcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgUENJIGJ1cyBoZWxwZXJzIGZvciB0aGUgc3RtbWFjIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM3OD1jb25maWcgRFdNQUNfSU5URUxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzg1LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBJbnRlbCBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozODY6XFx0ICBzdG1tYWMgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBJbnRlbCBRdWFyay9FSEwvVEdMLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzg3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mzg4PWNvbmZpZyBEV01BQ19MT09OR1NPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTQtXFx0aGVscFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzk1OlxcdCAgVGhpcyBzZWxlY3RzIHRoZSBMT09OR1NPTiBQQ0kgYnVzIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzk2LVxcdCAgU3VwcG9ydCBmb3IgZXRoZXJuZXQgY29udHJvbGxlciBvbiBMb29uZ3Nvbi0ySzEwMDAgU29DIGFuZCBMUzdBMTAwMCBicmlkZ2UuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTQwNz1jb25maWcgU1RNTUFDX1BDSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MTItXFx0aGVscFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NDEzOlxcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MTQtXFx0ICBUaGlzIGRyaXZlciB3YXMgdGVzdGVkIG9uIFhMSU5YIFhDMlYzMDAwIEZGMTE1MkFNVDAyMjFcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX1NUTU1BQ19FVEgpICs9IHN0bW1hYy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MzpzdG1tYWMtb2Jqczo9IHN0bW1hY19tYWluLm8gc3RtbWFjX2V0aHRvb2wubyBzdG1tYWNfbWRpby5vIHJpbmdfbW9kZS5vXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTQtXFx0ICAgICAgY2hhaW5fbW9kZS5vIGR3bWFjX2xpYi5vIGR3bWFjMTAwMF9jb3JlLm8gZHdtYWMxMDAwX2RtYS5vXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTUtXFx0ICAgICAgZHdtYWMxMDBfY29yZS5vIGR3bWFjMTAwX2RtYS5vIGVuaF9kZXNjLm8gbm9ybV9kZXNjLm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NjpcXHQgICAgICBtbWNfY29yZS5vIHN0bW1hY19od3RzdGFtcC5vIHN0bW1hY19wdHAubyBkd21hYzRfZGVzY3Mub1xcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS03LVxcdCAgICAgIGR3bWFjNF9kbWEubyBkd21hYzRfbGliLm8gZHdtYWM0X2NvcmUubyBkd21hYzUubyBod2lmLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjg6XFx0ICAgICAgc3RtbWFjX3RjLm8gZHd4Z21hYzJfY29yZS5vIGR3eGdtYWMyX2RtYS5vIGR3eGdtYWMyX2Rlc2NzLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjk6XFx0ICAgICAgc3RtbWFjX3hkcC5vIHN0bW1hY19lc3QubyBzdG1tYWNfZnBlLm8gc3RtbWFjX3ZsYW4ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTA6XFx0ICAgICAgc3RtbWFjX3Bjcy5vICQoc3RtbWFjLXkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTI6c3RtbWFjLSQoQ09ORklHX1NUTU1BQ19TRUxGVEVTVFMpICs9IHN0bW1hY19zZWxmdGVzdHMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTE0LSMgT3JkZXJpbmcgbWF0dGVycy4gR2VuZXJpYyBkcml2ZXIgbXVzdCBiZSBsYXN0LlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjE1Om9iai0kKENPTkZJR19TVE1NQUNfUExBVEZPUk0pXFx0Kz0gc3RtbWFjLXBsYXRmb3JtLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xNi1vYmotJChDT05GSUdfRFdNQUNfQU5BUklPTilcXHQrPSBkd21hYy1hbmFyaW9uLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTQ1PW9iai0kKENPTkZJR19EV01BQ19WSVNDT05USSlcXHQrPSBkd21hYy12aXNjb250aS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDY6c3RtbWFjLXBsYXRmb3JtLW9ianM6PSBzdG1tYWNfcGxhdGZvcm0ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTQ3LWR3bWFjLWFsdHItc29jZnBnYS1vYmpzIDo9IGR3bWFjLXNvY2ZwZ2Eub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTQ4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQ5Om9iai0kKENPTkZJR19TVE1NQUNfTElCUENJKVxcdCs9IHN0bW1hY19saWJwY2kub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjUwOm9iai0kKENPTkZJR19TVE1NQUNfUENJKVxcdCs9IHN0bW1hYy1wY2kub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTUxLW9iai0kKENPTkZJR19EV01BQ19JTlRFTClcXHQrPSBkd21hYy1pbnRlbC5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT01Mz1vYmotJChDT05GSUdfRFdNQUNfTU9UT1JDT01NKVxcdCs9IGR3bWFjLW1vdG9yY29tbS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTQ6c3RtbWFjLXBjaS1vYmpzOj0gc3RtbWFjX3BjaS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE1OiNpbmNsdWRlIFxcXCJzdG1tYWMuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE3OnN0YXRpYyBpbnQganVtYm9fZnJtKHN0cnVjdCBzdG1tYWNfdHhfcXVldWUgKnR4X3EsIHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE4LVxcdFxcdCAgICAgaW50IGNzdW0pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMjAtXFx0dW5zaWduZWQgaW50IG5vcGFnZWRfbGVuID0gc2tiX2hlYWRsZW4oc2tiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MjE6XFx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2ID0gdHhfcS1cXHUwMDNlcHJpdl9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0yMi1cXHR1bnNpZ25lZCBpbnQgZW50cnkgPSB0eF9xLVxcdTAwM2VjdXJfdHg7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNDUtXFx0LyogZG8gbm90IGNsb3NlIHRoZSBkZXNjcmlwdG9yIGFuZCBkbyBub3Qgc2V0IG93biBiaXQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6NDY6XFx0c3RtbWFjX3ByZXBhcmVfdHhfZGVzYyhwcml2LCBkZXNjLCAxLCBidWZfbGVuLCBjc3VtLCBTVE1NQUNfQ0hBSU5fTU9ERSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNDctXFx0XFx0XFx0MCwgZmFsc2UsIHNrYi1cXHUwMDNlbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy02Mi1cXHRcXHRcXHR0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5sZW4gPSBibWF4O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo2MzpcXHRcXHRcXHRzdG1tYWNfcHJlcGFyZV90eF9kZXNjKHByaXYsIGRlc2MsIDAsIGJtYXgsIGNzdW0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTY0LVxcdFxcdFxcdFxcdFxcdFNUTU1BQ19DSEFJTl9NT0RFLCAxLCBmYWxzZSwgc2tiLVxcdTAwM2VsZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTc2LVxcdFxcdFxcdC8qIGxhc3QgZGVzY3JpcHRvciBjYW4gYmUgc2V0IG5vdyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo3NzpcXHRcXHRcXHRzdG1tYWNfcHJlcGFyZV90eF9kZXNjKHByaXYsIGRlc2MsIDAsIGxlbiwgY3N1bSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNzgtXFx0XFx0XFx0XFx0XFx0U1RNTUFDX0NIQUlOX01PREUsIDEsIHRydWUsIHNrYi1cXHUwMDNlbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYz05OT1zdGF0aWMgdm9pZCBpbml0X2RtYV9jaGFpbih2b2lkICpkZXMsIGRtYV9hZGRyX3QgcGh5X2FkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTI4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxMjk6c3RhdGljIHZvaWQgcmVmaWxsX2Rlc2MzKHN0cnVjdCBzdG1tYWNfcnhfcXVldWUgKnJ4X3EsIHN0cnVjdCBkbWFfZGVzYyAqcClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTMwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTMxOlxcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHJ4X3EtXFx1MDAzZXByaXZfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTMyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE0My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTQ0OnN0YXRpYyB2b2lkIGNsZWFuX2Rlc2MzKHN0cnVjdCBzdG1tYWNfdHhfcXVldWUgKnR4X3EsIHN0cnVjdCBkbWFfZGVzYyAqcClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQ1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTQ2OlxcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHR4X3EtXFx1MDAzZXByaXZfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQ3LVxcdHVuc2lnbmVkIGludCBlbnRyeSA9IHR4X3EtXFx1MDAzZWRpcnR5X3R4O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTYxOmNvbnN0IHN0cnVjdCBzdG1tYWNfbW9kZV9vcHMgY2hhaW5fbW9kZV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE2Mi1cXHQuaW5pdCA9IGluaXRfZG1hX2NoYWluLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTUtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L25ldGRldmljZS5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjE2OiNpbmNsdWRlIFxcdTAwM2NsaW51eC9zdG1tYWMuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xNy0jaW5jbHVkZSBcXHUwMDNjbGludXgvcGh5LmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaD00OT1zdGF0aWMgaW5saW5lIGJvb2wgZHdtYWNfaXNfeG1hYyhlbnVtIGR3bWFjX2NvcmVfdHlwZSBjb3JlX3R5cGUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC03MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo3MTpzdHJ1Y3Qgc3RtbWFjX3FfdHhfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcyLVxcdHU2NF9zdGF0c190IHR4X2J5dGVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6Nzg6c3RydWN0IHN0bW1hY19uYXBpX3R4X3N0YXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC03OS1cXHR1NjRfc3RhdHNfdCB0eF9wYWNrZXRzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6ODY6c3RydWN0IHN0bW1hY190eHFfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTg3LVxcdC8qIFVwZGF0ZXMgcHJvdGVjdGVkIGJ5IHR4IHF1ZXVlIGxvY2suICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODgtXFx0c3RydWN0IHU2NF9zdGF0c19zeW5jIHFfc3luY3A7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6ODk6XFx0c3RydWN0IHN0bW1hY19xX3R4X3N0YXRzIHE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtOTAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05Mi1cXHRzdHJ1Y3QgdTY0X3N0YXRzX3N5bmMgbmFwaV9zeW5jcDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo5MzpcXHRzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMgbmFwaTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05NC19IF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtOTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6OTY6c3RydWN0IHN0bW1hY19uYXBpX3J4X3N0YXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05Ny1cXHR1NjRfc3RhdHNfdCByeF9ieXRlcztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoxMDM6c3RydWN0IHN0bW1hY19yeHFfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNC1cXHQvKiBVcGRhdGVzIHByb3RlY3RlZCBieSBOQVBJIHBvbGwgbG9naWMuICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTA1LVxcdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjEwNjpcXHRzdHJ1Y3Qgc3RtbWFjX25hcGlfcnhfc3RhdHMgbmFwaTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDctfSBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTA5LS8qIFVwZGF0ZXMgb24gZWFjaCBDUFUgcHJvdGVjdGVkIGJ5IG5vdCBhbGxvd2luZyBuZXN0ZWQgaXJxcy4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoxMTA6c3RydWN0IHN0bW1hY19wY3B1X3N0YXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMTEtXFx0c3RydWN0IHU2NF9zdGF0c19zeW5jIHN5bmNwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTE2LS8qIEV4dHJhIHN0YXRpc3RpYyBhbmQgZGVidWcgaW5mb3JtYXRpb24gZXhwb3NlZCBieSBldGh0b29sICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTE3OnN0cnVjdCBzdG1tYWNfZXh0cmFfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExOC1cXHQvKiBUcmFuc21pdCBlcnJvcnMgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTIzNy1cXHQvKiBwZXIgcXVldWUgc3RhdGlzdGljcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjIzODpcXHRzdHJ1Y3Qgc3RtbWFjX3R4cV9zdGF0cyB0eHFfc3RhdHNbTVRMX01BWF9UWF9RVUVVRVNdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjIzOTpcXHRzdHJ1Y3Qgc3RtbWFjX3J4cV9zdGF0cyByeHFfc3RhdHNbTVRMX01BWF9SWF9RVUVVRVNdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI0MDpcXHRzdHJ1Y3Qgc3RtbWFjX3BjcHVfc3RhdHMgX19wZXJjcHUgKnBjcHVfc3RhdHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMjQxLVxcdHVuc2lnbmVkIGxvbmcgcnhfZHJvcHBlZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI0Ny0vKiBTYWZldHkgRmVhdHVyZSBzdGF0aXN0aWNzIGV4cG9zZWQgYnkgZXRodG9vbCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI0ODpzdHJ1Y3Qgc3RtbWFjX3NhZmV0eV9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMjQ5LVxcdHVuc2lnbmVkIGxvbmcgbWFjX2Vycm9yc1szMl07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNTYtI2RlZmluZSBTVE1NQUNfU0FGRVRZX0ZFQVRfU0laRVxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoyNTc6XFx0KHNpemVvZihzdHJ1Y3Qgc3RtbWFjX3NhZmV0eV9zdGF0cykgLyBzaXplb2YodW5zaWduZWQgbG9uZykpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMjU4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDE2PXN0cnVjdCBkbWFfZmVhdHVyZXMge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNTY2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjU2Nzp2b2lkIHN0bW1hY19heGlfYmxlbl90b19tYXNrKHUzMiAqcmVndmFsLCBjb25zdCB1MzIgKmJsZW4sIHNpemVfdCBsZW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTU2OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTYxNT1zdHJ1Y3QgbWFjX2RldmljZV9pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTY6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19vcHMgKm1hYztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTc6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19kZXNjX29wcyAqZGVzYztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTg6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19kbWFfb3BzICpkbWE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE5OlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfbW9kZV9vcHMgKm1vZGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjIwOlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgKnB0cDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MjE6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY190Y19vcHMgKnRjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYyMjpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX21tY19vcHMgKm1tYztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MjM6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19lc3Rfb3BzICplc3Q7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjI0OlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfdmxhbl9vcHMgKnZsYW47XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjI1LVxcdHN0cnVjdCBkd194cGNzICp4cGNzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjQ5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1MDpzdHJ1Y3Qgc3RtbWFjX3J4X3JvdXRpbmcge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY1MS1cXHR1MzIgcmVnX21hc2s7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjU1OmludCBkd21hYzEwMF9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1NjppbnQgZHdtYWMxMDAwX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjU3OmludCBkd21hYzRfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTg6aW50IGR3eGdtYWMyX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjU5OmludCBkd3hsZ21hYzJfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjYxOnZvaWQgc3RtbWFjX3NldF9tYWNfYWRkcih2b2lkIF9faW9tZW0gKmlvYWRkciwgY29uc3QgdTggYWRkcls2XSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjItXFx0XFx0XFx0IHVuc2lnbmVkIGludCBoaWdoLCB1bnNpZ25lZCBpbnQgbG93KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjM6dm9pZCBzdG1tYWNfZ2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCB1bnNpZ25lZCBjaGFyICphZGRyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY2NC1cXHRcXHRcXHQgdW5zaWduZWQgaW50IGhpZ2gsIHVuc2lnbmVkIGludCBsb3cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY2NTp2b2lkIHN0bW1hY19zZXRfbWFjKHZvaWQgX19pb21lbSAqaW9hZGRyLCBib29sIGVuYWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjY2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY2Nzp2b2lkIHN0bW1hY19kd21hYzRfc2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCBjb25zdCB1OCBhZGRyWzZdLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY2OC1cXHRcXHRcXHRcXHR1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjY5OnZvaWQgc3RtbWFjX2R3bWFjNF9nZXRfbWFjX2FkZHIodm9pZCBfX2lvbWVtICppb2FkZHIsIHVuc2lnbmVkIGNoYXIgKmFkZHIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjcwLVxcdFxcdFxcdFxcdHVuc2lnbmVkIGludCBoaWdoLCB1bnNpZ25lZCBpbnQgbG93KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NzE6dm9pZCBzdG1tYWNfZHdtYWM0X3NldF9tYWModm9pZCBfX2lvbWVtICppb2FkZHIsIGJvb2wgZW5hYmxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NzItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTEtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L29mX25ldC5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxMjojaW5jbHVkZSBcXHUwMDNjbGludXgvc3RtbWFjLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxNDojaW5jbHVkZSBcXFwic3RtbWFjLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjE1OiNpbmNsdWRlIFxcXCJzdG1tYWNfcGxhdGZvcm0uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9NjM9YW5hcmlvbl9jb25maWdfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6NjQ6XFx0XFx0ICBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy02NS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9OTM9c3RhdGljIGludCBhbmFyaW9uX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtOTYtXFx0c3RydWN0IGFuYXJpb25fZ21hYyAqZ21hYztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6OTc6XFx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6OTg6XFx0c3RydWN0IHN0bW1hY19yZXNvdXJjZXMgc3RtbWFjX3JlcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtOTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEwMDpcXHRyZXQgPSBzdG1tYWNfZ2V0X3BsYXRmb3JtX3Jlc291cmNlcyhwZGV2LCBcXHUwMDI2c3RtbWFjX3Jlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEwMS1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEwMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTA0OlxcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTA1LVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTExNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTE2OlxcdHJldHVybiBkZXZtX3N0bW1hY19wbHRmcl9wcm9iZShwZGV2LCBwbGF0X2RhdCwgXFx1MDAyNnN0bW1hY19yZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMTctfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jPTEyNT1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBhbmFyaW9uX2R3bWFjX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMjgtXFx0XFx0Lm5hbWUgICAgICAgICAgID0gXFxcImFuYXJpb24tZHdtYWNcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxMjk6XFx0XFx0LnBtXFx0XFx0PSBcXHUwMDI2c3RtbWFjX3BsdGZyX3BtX29wcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTMwLVxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IGFuYXJpb25fZHdtYWNfbWF0Y2gsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIxLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9yZXNldC5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjI6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3N0bW1hYy5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNDojaW5jbHVkZSBcXFwic3RtbWFjX3BsYXRmb3JtLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNS0jaW5jbHVkZSBcXFwiZHdtYWM0LmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTM2PXN0YXRpYyBpbnQgZHdjX2V0aF9kd21hY19jb25maWdfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM3OlxcdFxcdFxcdFxcdCAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zOC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTQzLVxcdFxcdHBsYXRfZGF0LVxcdTAwM2VheGkgPSBkZXZtX2t6YWxsb2MoXFx1MDAyNnBkZXYtXFx1MDAzZWRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjQ0OlxcdFxcdFxcdFxcdFxcdCAgICAgc2l6ZW9mKHN0cnVjdCBzdG1tYWNfYXhpKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTQ1LVxcdFxcdFxcdFxcdFxcdCAgICAgR0ZQX0tFUk5FTCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTk2PXN0YXRpYyBpbnQgZHdjX3Fvc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6OTc6XFx0XFx0XFx0IHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzo5ODpcXHRcXHRcXHQgc3RydWN0IHN0bW1hY19yZXNvdXJjZXMgKnN0bW1hY19yZXMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy05OS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxMDA6XFx0cGxhdF9kYXQtXFx1MDAzZXBjbGsgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsIFxcXCJwaHlfcmVmX2Nsa1xcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTAxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0xMTU9c3RhdGljIHZvaWQgdGVncmFfZXFvc19maXhfc3BlZWQodm9pZCAqYnNwX3ByaXYsIHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTExOS1cXHRib29sIG5lZWRzX2NhbGlicmF0aW9uID0gZmFsc2U7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxMjA6XFx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTIxLVxcdHUzMiB2YWx1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTQxLVxcdFxcdC8qIENhbGlicmF0aW9uIHNob3VsZCBiZSBkb25lIHdpdGggdGhlIE1ESU8gYnVzIGlkbGUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE0MjpcXHRcXHRzdG1tYWNfbWRpb19sb2NrKHByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTQzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxNzg6XFx0XFx0c3RtbWFjX21kaW9fdW5sb2NrKHByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTc5LVxcdH0gZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTE4Nj1zdGF0aWMgaW50IHRlZ3JhX2Vxb3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE4NzpcXHRcXHRcXHQgICAgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE4ODpcXHRcXHRcXHQgICAgc3RydWN0IHN0bW1hY19yZXNvdXJjZXMgKnJlcylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTE4OS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIwMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjIwNDpcXHRwbGF0X2RhdC1cXHUwMDNlY2xrX3R4X2kgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsIFxcXCJ0eFxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjA1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMzctXFx0cGxhdF9kYXQtXFx1MDAzZWZpeF9tYWNfc3BlZWQgPSB0ZWdyYV9lcW9zX2ZpeF9zcGVlZDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjIzODpcXHRwbGF0X2RhdC1cXHUwMDNlc2V0X2Nsa190eF9yYXRlID0gc3RtbWFjX3NldF9jbGtfdHhfcmF0ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIzOS1cXHRwbGF0X2RhdC1cXHUwMDNlYnNwX3ByaXYgPSBlcW9zO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNTI9c3RhdGljIHZvaWQgdGVncmFfZXFvc19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI1My17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNTQ6XFx0c3RydWN0IHRlZ3JhX2Vxb3MgKmVxb3MgPSBnZXRfc3RtbWFjX2JzcF9wcml2KFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjU1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNjA9c3RydWN0IGR3Y19ldGhfZHdtYWNfZGF0YSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjEtXFx0aW50ICgqcHJvYmUpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNjI6XFx0XFx0ICAgICBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjYzOlxcdFxcdCAgICAgc3RydWN0IHN0bW1hY19yZXNvdXJjZXMgKnJlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjQtXFx0dm9pZCAoKnJlbW92ZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNjU6XFx0Y29uc3QgY2hhciAqc3RtbWFjX2Nsa19uYW1lO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY2LX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI2OD1zdGF0aWMgY29uc3Qgc3RydWN0IGR3Y19ldGhfZHdtYWNfZGF0YSBkd2NfcW9zX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjktXFx0LnByb2JlID0gZHdjX3Fvc19wcm9iZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI3MDpcXHQuc3RtbWFjX2Nsa19uYW1lID0gXFxcImFwYl9wY2xrXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3MS19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNzM9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgdGVncmFfZXFvc19kYXRhID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNzUtXFx0LnJlbW92ZSA9IHRlZ3JhX2Vxb3NfcmVtb3ZlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjc2OlxcdC5zdG1tYWNfY2xrX25hbWUgPSBcXFwic2xhdmVfYnVzXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3Ny19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNzk9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgZnNkX2Vxb3NfZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI4MDpcXHQuc3RtbWFjX2Nsa19uYW1lID0gXFxcInNsYXZlX2J1c1xcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODEtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjgzPXN0YXRpYyBpbnQgZHdjX2V0aF9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODUtXFx0Y29uc3Qgc3RydWN0IGR3Y19ldGhfZHdtYWNfZGF0YSAqZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI4NjpcXHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjg3OlxcdHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHN0bW1hY19yZXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODgtXFx0aW50IHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjkxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjkyOlxcdG1lbXNldChcXHUwMDI2c3RtbWFjX3JlcywgMCwgc2l6ZW9mKHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTQtXFx0LyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTU6XFx0ICogU2luY2Ugc3RtbWFjX3BsYXRmb3JtIHN1cHBvcnRzIG5hbWUgSVJRIG9ubHksIGJhc2ljIHBsYXRmb3JtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTYtXFx0ICogcmVzb3VyY2UgaW5pdGlhbGl6YXRpb24gaXMgZG9uZSBpbiB0aGUgZ2x1ZSBsb2dpYy5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5Ny1cXHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI5ODpcXHRzdG1tYWNfcmVzLmlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTk6XFx0aWYgKHN0bW1hY19yZXMuaXJxIFxcdTAwM2MgMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwMDpcXHRcXHRyZXR1cm4gc3RtbWFjX3Jlcy5pcnE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDE6XFx0c3RtbWFjX3Jlcy53b2xfaXJxID0gc3RtbWFjX3Jlcy5pcnE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDM6XFx0c3RtbWFjX3Jlcy5hZGRyID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzA0OlxcdGlmIChJU19FUlIoc3RtbWFjX3Jlcy5hZGRyKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNTpcXHRcXHRyZXR1cm4gUFRSX0VSUihzdG1tYWNfcmVzLmFkZHIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzA2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzA3OlxcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMwOC1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzE1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzE2OlxcdHBsYXRfZGF0LVxcdTAwM2VzdG1tYWNfY2xrID0gc3RtbWFjX3BsdGZyX2ZpbmRfY2xrKHBsYXRfZGF0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzE3OlxcdFxcdFxcdFxcdFxcdFxcdCAgICAgZGF0YS1cXHUwMDNlc3RtbWFjX2Nsa19uYW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMxOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMxOS1cXHRpZiAoZGF0YS1cXHUwMDNlcHJvYmUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMjA6XFx0XFx0cmV0ID0gZGF0YS1cXHUwMDNlcHJvYmUocGRldiwgcGxhdF9kYXQsIFxcdTAwMjZzdG1tYWNfcmVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMyMS1cXHRpZiAocmV0IFxcdTAwM2MgMCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMzA6XFx0cmV0ID0gc3RtbWFjX2R2cl9wcm9iZShcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBwbGF0X2RhdCwgXFx1MDAyNnN0bW1hY19yZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzMxLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTM0Mz1zdGF0aWMgdm9pZCBkd2NfZXRoX2R3bWFjX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozNDc6XFx0c3RtbWFjX2R2cl9yZW1vdmUoXFx1MDAyNnBkZXYtXFx1MDAzZWRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNDgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTM2MT1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBkd2NfZXRoX2R3bWFjX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzY1LVxcdFxcdC5uYW1lICAgICAgICAgICA9IFxcXCJkd2MtZXRoLWR3bWFjXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM2NjpcXHRcXHQucG0gICAgICAgICAgICAgPSBcXHUwMDI2c3RtbWFjX3BsdGZyX3BtX29wcyxcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMDc6MzA6MzguNjg5NDA3NzAxWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjAwODQzNDI0MDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBGdXp6aW5nIFBvdGVudGlhbCBvZiBhbiBgc3RtbWFjYCBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIGBzdG1tYWNgLi4uIHJpZ2h0LCB0aGF0J3MgdGhlIFN5bm9wc3lzIERlc2lnbldhcmUgRXRoZXJuZXQgTUFDIGRyaXZlciwgdXNlZCBhY3Jvc3MgYSB0b24gb2YgZW1iZWRkZWQgU29DcyBhbmQgUENJIGJvYXJkcy4gQWxsd2lubmVyLCBJbnRlbCwgUmVuZXNhcywgdGhlIHVzdWFsIHN1c3BlY3RzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkga25vdyBob3cgaXQncyB1c2VkIHNvIEkgY2FuIGFzc2VzcyB3aGV0aGVyIGl0J3Mgd29ydGggZnV6emluZy5cblxuTXkgaW1tZWRpYXRlIHF1ZXN0aW9ucyBhcmU6IERvZXMgUUVNVSBldmVuICplbXVsYXRlKiBgc3RtbWFjYCBoYXJkd2FyZT8gRG9lcyBpdCBlbXVsYXRlIHRoZSBoYXJkd2FyZSB0aGF0IHRoZSBwYXRjaCBpcyBtZWFudCB0byBmaXg/IEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIGFueSBvZiB0aGUgaGFyZHdhcmUgaXQgc3VwcG9ydHMgKFNUTTMyLCBBbGx3aW5uZXIgQTEwL0gzLCBldGMuKSBhcmUgZW11bGF0ZWQgb3IgcmVhY2hhYmxlIHRocm91Z2ggdGhlIGVtdWxhdGVkIHNldHVwLlxuXG5BbmQgd2hhdCBhYm91dCBTeXprYWxsZXI/IElzIGBzdG1tYWNgIGZ1enplZCBpbiB0aGUgc3RhbmRhcmQgc2V0dXBzPyBYODZfNjQsIGFybTY0Li4uIGRvZXMgU3l6a2FsbGVyIGV2ZW4gdGFyZ2V0IGl0P1xuXG5XYWl0LCBJIG5lZWQgdG8gZ28gYmFjayBhbmQgcmUtcmVhZCB0aGUgZ3VpZGVsaW5lcyBjYXJlZnVsbHkuIEkgaGF2ZSB0byBtYWtlIHN1cmUgdGhpcyBwYXRjaCBpc24ndCBqdXN0IGRvY3VtZW50YXRpb24sIGxvZ2dpbmcsIGRlY29yYXRpdmUgY2hhbmdlcywgb3Igc29tZXRoaW5nIHVucmVhY2hhYmxlIGluIFFFTVUuIFRoYXQncyBhIHdhc3RlIG9mIHRpbWUuIEkgaGF2ZSB0byBjb25zaWRlciB3aGV0aGVyIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuIFRoYXQncyB0aGUga2V5LlxuXG5Pa2F5LCBiYWNrIHRvIGBzdG1tYWNgLiBJIG5lZWQgdG8gZmlndXJlIG91dCAqZXhhY3RseSogd2hpY2ggaGFyZHdhcmUgSURzIG9yIFBDSSBkZXZpY2VzIGBzdG1tYWNgIHN1cHBvcnRzLCBhbmQgdGhlbiBkZXRlcm1pbmUgaWYgUUVNVSBjYW4gaGFuZGxlIHRoZW0sIGlmIHRoZXkncmUgcmVhY2hhYmxlLiBJIG5lZWQgdG8gZ2V0IGludG8gdGhlIGNvZGUgYW5kIHN0YXJ0IGxvb2tpbmcgYXQgZmlsZXMgbGlrZSBgc3RtbWFjX3BjaS5jYCwgYGR3bWFjLWludGVsLmNgLCBgZHdtYWMtbG9vbmdzb24uY2AsIGFuZCBzbyBvbi4gVGhhdCdzIHRoZSBuZXh0IHN0ZXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNDcwLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTA3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDA3OjMwOjU4Ljc3Mzc1MzIwNloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzcxNjAzMDIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTU9EVUxFX0RFVklDRV9UQUJMRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jPTExOT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhbmFyaW9uX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTIyLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEyMzpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBhbmFyaW9uX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTI0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNTM9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZHdjX2V0aF9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNTgtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM1OTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBkd2NfZXRoX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM2MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWVpYzc3MDAuYz0zNTA9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZWljNzcwMF9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jLTM1OS19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWVpYzc3MDAuYzozNjA6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZWljNzcwMF9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jLTM2MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYz01Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBkd21hY19nZW5lcmljX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1nZW5lcmljLmMtNjYtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1nZW5lcmljLmM6Njc6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZHdtYWNfZ2VuZXJpY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZ2VuZXJpYy5jLTY4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmM9Mzg0PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGlteF9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmMtMzg5LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmM6MzkwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGlteF9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmMtMzkxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW5nZW5pYy5jPTI2Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpbmdlbmljX21hY19vZl9tYXRjaGVzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmMtMjY5LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW5nZW5pYy5jOjI3MDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBpbmdlbmljX21hY19vZl9tYXRjaGVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmMtMjcxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwtcGxhdC5jPTM2PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGludGVsX2V0aF9wbGF0X21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmMtMzktfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmM6NDA6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgaW50ZWxfZXRoX3BsYXRfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYy00MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MTM5NT1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgaW50ZWxfZXRoX3BjaV9pZF90YWJsZVtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xNDE0LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxNDE1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBpbnRlbF9ldGhfcGNpX2lkX3RhYmxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTE0MTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmM9NDkxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGlwcTgwNnhfZ21hY19kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTQ5NC19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlwcTgwNnguYzo0OTU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgaXBxODA2eF9nbWFjX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmMtNDk2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz01OTY9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGxvb25nc29uX2R3bWFjX2lkX3RhYmxlW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTYwMS19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NjAyOk1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBsb29uZ3Nvbl9kd21hY19pZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy02MDMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYz0yMTY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbHMxeF9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmMtMjI2LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmM6MjI3Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGxzMXhfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uMS5jLTIyOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYz03MT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBscGMxOHh4X2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmMtNzQtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmM6NzU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbHBjMTh4eF9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jLTc2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYz02NjI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbWVkaWF0ZWtfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmMtNjY5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmM6NjcwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG1lZGlhdGVrX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jLTY3MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmM9NzY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbWVzb242X2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jLTc5LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb24uYzo4MDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtZXNvbjZfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmMtODEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmM9NDgyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG1lc29uOGJfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYy01MDQtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmM6NTA1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG1lc29uOGJfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYy01MDYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0zNjc9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGR3bWFjX21vdG9yY29tbV9wY2lfaWRfdGFibGVbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTM3MC19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jOjM3MTpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgZHdtYWNfbW90b3Jjb21tX3BjaV9pZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMzcyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbnV2b3Rvbi5jPTExOD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBudnRfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYy0xMjEtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmM6MTIyOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG52dF9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbnV2b3Rvbi5jLTEyMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmM9ODAwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHFjb21fZXRocW9zX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1xY29tLWV0aHFvcy5jLTgwNi19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmM6ODA3Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHFjb21fZXRocW9zX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1xY29tLWV0aHFvcy5jLTgwOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYz0yMTY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcmVuZXNhc19nYmV0aF9tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmVuZXNhcy1nYmV0aC5jLTIyMS19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYzoyMjI6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgcmVuZXNhc19nYmV0aF9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmVuZXNhcy1nYmV0aC5jLTIyMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmM9MTYxNj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBya19nbWFjX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jLTE2MzQtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jOjE2MzU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgcmtfZ21hY19kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYy0xNjM2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcnpuMS5jPTc1PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHJ6bjFfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYy03OC19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYzo3OTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCByem4xX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yem4xLmMtODAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYz0yMTY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgczMyX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYy0yMTktfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYzoyMjA6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgczMyX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYy0yMjEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM9NjczPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNvY2ZwZ2FfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy02NzgtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM6Njc5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNvY2ZwZ2FfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy02ODAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYz03Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzb3BoZ29fZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jLTc2LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29waGdvLmM6Nzc6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc29waGdvX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYy03OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmM9MjEwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNwYWNlbWl0X2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jLTIxMy19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmM6MjE0Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNwYWNlbWl0X2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jLTIxNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmM9MTYwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN0YXJmaXZlX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTE2NC19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmM6MTY1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN0YXJmaXZlX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTE2Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jPTI5Nj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdGlfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTI5OS19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jOjMwMDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdGlfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTMwMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0bTMyLmM9NjYyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN0bTMyX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdG0zMi5jLTY2OC19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0bTMyLmM6NjY5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN0bTMyX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdG0zMi5jLTY3MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjU1aS5jPTE0MT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdW41NWlfZ21hYzIwMF9tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuNTVpLmMtMTQ0LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuNTVpLmM6MTQ1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN1bjU1aV9nbWFjMjAwX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW41NWkuYy0xNDYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW44aS5jPTEyNjg9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3VuOGlfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmMtMTI4Mi19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmM6MTI4MzpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdW44aV9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuOGkuYy0xMjg0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VueGkuYz0xNTA9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3VuN2lfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bnhpLmMtMTUzLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VueGkuYzoxNTQ6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3VuN2lfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bnhpLmMtMTU1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYz0zOTc9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgdGVncmFfbWdiZV9tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYy00MDAtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jOjQwMTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCB0ZWdyYV9tZ2JlX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jLTQwMi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRoZWFkLmM9MjY3PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHRoZWFkX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10aGVhZC5jLTI3MC19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRoZWFkLmM6MjcxOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHRoZWFkX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10aGVhZC5jLTI3Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXZpc2NvbnRpLmM9MjU1PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHZpc2NvbnRpX2V0aF9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdmlzY29udGkuYy0yNTgtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy12aXNjb250aS5jOjI1OTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCB2aXNjb250aV9ldGhfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXZpc2NvbnRpLmMtMjYwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTIwMz1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgc3RtbWFjX2lkX3RhYmxlW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTA6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIHN0bW1hY19pZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMDc6MzA6NTkuMDEwOTIzNDI5WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTA5MzY0MTc4NzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFFFTVUgRW11bGF0aW9uIENhcGFiaWxpdGllcyBmb3IgRXRoZXJuZXQgRHJpdmVycyoqXG5cbk9rYXksIGhlcmUncyB3aGF0IEknbSB0aGlua2luZy4uLiBmaXJzdCwgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgUUVNVSAqYWN0dWFsbHkqIGVtdWxhdGVzIHRoZSBzdG1tYWMgZHJpdmVyIGF0IGFsbC4gSXMgaXQgYSBzdGFuZGFyZCBlbXVsYXRpb24gb3IgaXMgaXQgc29tZXRoaW5nIHRoYXQgcmVxdWlyZXMgYSBzcGVjaWZpYyBRRU1VIGNvbmZpZ3VyYXRpb24gb3IgZXZlbiBhIGN1c3RvbSBzZXR1cD8gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGNoZWNrIGlmIGl0J3MgZW11bGF0ZWQgaW4gYW55IGNvbW1vbiBBUk0gcGxhdGZvcm1zLlxuXG5MZXQncyBzZWUuIERvZXMgUUVNVSBoYXZlIHN1cHBvcnQgZm9yIGBhbGx3aW5uZXItZW1hY2AsIG9yIHNwZWNpZmljYWxseSBgYWxsd2lubmVyLXN1bjhpLWVtYWNgLCBvciBldmVuIHRoZSBnZW5lcmljIGBkZXNpZ253YXJlYCBldGhlcm5ldCBjb250cm9sbGVyPyBJIHJlY2FsbCBzZWVpbmcgc29tZXRoaW5nLi4uIEFoLCB5ZXMsIFFFTVUgZG9lcyBoYXZlIGBhbGx3aW5uZXItc3VuOGktZW1hY2AsIGFsb25nIHdpdGggb3RoZXIgb3B0aW9ucyBsaWtlIGBjYWRlbmNlX2dlbWAsIGBpbXhfZmVjYCwgYW5kIGBsYW45MTE4YC4gQnV0LCBkb2VzIGl0IGhhdmUgdGhlIHNwZWNpZmljIGBkd2NfZXRoX3Fvc2Agb3Igc2ltcGx5IGBkd21hY2AgdGhhdCdzIHJlbGV2YW50IHRvIHRoaXMgcG90ZW50aWFsIGludmVzdGlnYXRpb24/XG5cbk9rYXksIGl0IHNlZW1zIFFFTVUgaGFzIGBhbGx3aW5uZXItc3VuOGktZW1hY2AsIGFuZCBJIHNlZSB0aGUgcGF0aCBgaHcvbmV0L2FsbHdpbm5lci1zdW44aS1lbWFjLmNgLiBEb2VzIHRoYXQgYGFsbHdpbm5lci1zdW44aS1lbWFjYCBjb3JyZXNwb25kIHRvIHRoZSBgc3VuOGlfZHdtYWNgIG9yIHRoZSBtb3JlIGdlbmVyYWwgYHN1bjhpLWVtYWNgP1xuXG5XYWl0LCBiZWZvcmUgZ2V0dGluZyB0b28gZGVlcCwgbGV0J3MgcmVmcmVzaCBvdXIgbWVtb3J5IG9mIHRoZSBydWxlczogdGhlIGNvZGUgaXMgb25seSBjb25zaWRlcmVkIFwid29ydGggZnV6emluZ1wiIGlmIHRoZSBjaGFuZ2VzIGltcGFjdCByZWFjaGFibGUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLiBUaGluZ3MgbGlrZSBkb2N1bWVudGF0aW9uLCBLY29uZmlnLCBvciBjb21tZW50cyBhcmUgb3V0LiBBbHNvLCB3ZSdyZSBub3QgaW50ZXJlc3RlZCBpbiBwYXJ0cyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIFRoYXQgaW5jbHVkZXMgdGhpbmdzIGxpa2UgdmVuZG9yLXNwZWNpZmljIFBDSWUgY2FyZHMsIHRlYXJkb3duIGNvZGUsIGFuZCBkcml2ZXJzIHJlcXVpcmluZyBwaHlzaWNhbCBoYXJkd2FyZS5cblxuU28sIEkgbmVlZCB0byBjaGVjayBpZiBgc3RtbWFjL2R3bWFjNGAgaXMgcmVhY2hhYmxlIGluIFFFTVUgb3IgR0NFLlxuXG5MZXQncyBlbnVtZXJhdGUgdGhlIGV0aGVybmV0IGRyaXZlcnMgdGhhdCBhcmUgZW11bGF0ZWQgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50ICh4ODYgb3IgYXJtNjQpLiBJIGtub3cgdGhlcmUgYXJlIGRyaXZlcnMgbGlrZSBgZTEwMDBgLCBgZTEwMDBlYCwgYGlnYmAsIGB2bXhuZXQzYCwgYHJ0bDgxMzlgLCBgcGNuZXRgLCBgbmUya19wY2lgLCBgdmlydGlvLW5ldGAsIGBzdW5nZW1gLCBhbmQgYHJvY2tlcmAuIFVTQiBldGhlcm5ldCwgbGlrZSBgdXNiLW5ldGAgYW5kIGBjZGMtZXRoZXJgLCBpcyBhbm90aGVyIGFyZWEuIEJ1dCwgd2hlcmUgZG9lcyBgc3RtbWFjYCBmaXQgaW4/XG5cbkxldCdzIGNoZWNrIHRoZSBzb3VyY2UsIHNwZWNpZmljYWxseSBgc3RtbWFjX3BjaS5jYCBhbmQgYGR3bWFjLWludGVsLmNgLiBJbiBgc3RtbWFjX3BjaS5jYCwgSSBzZWUgUENJIGRldmljZXMgZnJvbSBTVCBNaWNyb2VsZWN0cm9uaWNzL1N5bm9wc3lzICgweDEwNEEpIGFuZCBhbHNvIGZyb20gSW50ZWwuIEluIGBkd21hYy1pbnRlbC5jYCwgdGhlcmUncyBhbiBJbnRlbCBRdWFyayBkZXZpY2UgKDB4MDkzNykgYW5kIG5ld2VyIEludGVsIGZhbWlsaWVzIChFSEwsIFRHTCwgZXRjKS4gVGhlcmUncyBhbHNvIGBkd21hYy1sb29uZ3Nvbi5jYCwgZm9yIHRoZSBMUzdBMTAwMC5cblxuTm93LCB0aGUgY3JpdGljYWwgcXVlc3Rpb246IGFyZSBhbnkgb2YgdGhlc2UgZW11bGF0ZWQgYnkgc3RhbmRhcmQgUUVNVSBvciBpbiBHQ0U/IE5vcGUsIGl0IGRvZXNuJ3QgbG9vayBsaWtlIFFFTVUgZW11bGF0ZXMgSW50ZWwgUXVhcmsvRUhMIEdiRSAoZHdtYWMpLCBMb29uZ3NvbiBzdG1tYWMsIG9yIFNUTS9TeW5vcHN5cyBQQ0kgTUFDLlxuXG5Pa2F5LCBsZXQncyB0cnkgYSBkaWZmZXJlbnQgdGFjay4gV2hhdCBhYm91dCBBUk0sIFJJU0MtViwgb3IgTUlQUyBRRU1VIG1hY2hpbmVzPyBMZXQncyBjaGVjay4uLiB3aXRoIFFFTVU6XG4qICAgYGFybWAgaGFzIHZlcnNhdGlsZXBiIChzbWM5MWMxMTEpLCByZWFsdmlldyAoc21jOTFjMTExIC8gbGFuOTExOCksIHZpcnQgKHZpcnRpby1uZXQpLCByYXNwaSAoYmNtMjgzNSAvIHNtc2M5NTEyKSwgYW5kIG9yYW5nZXBpLXBjIChhbGx3aW5uZXItaDMpLiBCaW5nbyEgVGhlIGBvcmFuZ2VwaS1wY2AgaGFzIGBhbGx3aW5uZXItc3VuOGktZW1hY2AhIEFuZCwgYHN1bjhpX2R3bWFjLmNgIGluIExpbnV4IGlzIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW44aS5jYC5cblxuQWhhISBOb3cgd2UncmUgZ2V0dGluZyBzb21ld2hlcmUuIERvZXMgYGR3bWFjLXN1bjhpLmNgICp1c2UqIGBkd21hYzRgPyBUaGUgYW5zd2VyIHRvIHRoYXQgcXVlc3Rpb24gaXMga2V5ISBUaW1lIHRvIGRpZyBpbnRvIGBkd21hYy1zdW44aS5jYCFcblxuXG4iLCJJbnB1dFRva2VucyI6MjY3NjQsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTA1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDA3OjMxOjA5Ljk0NzM0MzMyOFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0ODUwMDcwNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJEV01BQ19DT1JFX1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMzItLyogU3lub3BzeXMgQ29yZSB2ZXJzaW9ucyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjMzOiNkZWZpbmVcXHREV01BQ19DT1JFXzNfNDBcXHRcXHQweDM0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MzQ6I2RlZmluZVxcdERXTUFDX0NPUkVfM181MFxcdFxcdDB4MzVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDozNTojZGVmaW5lXFx0RFdNQUNfQ09SRV8zXzcwXFx0XFx0MHgzN1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM2OiNkZWZpbmVcXHREV01BQ19DT1JFXzRfMDBcXHRcXHQweDQwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6Mzc6I2RlZmluZSBEV01BQ19DT1JFXzRfMTBcXHRcXHQweDQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6Mzg6I2RlZmluZSBEV01BQ19DT1JFXzVfMDBcXHRcXHQweDUwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6Mzk6I2RlZmluZSBEV01BQ19DT1JFXzVfMTBcXHRcXHQweDUxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NDA6I2RlZmluZSBEV01BQ19DT1JFXzVfMjBcXHRcXHQweDUyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNDEtI2RlZmluZSBEV1hHTUFDX0NPUkVfMl8xMFxcdDB4MjFcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTQ5PXN0YXRpYyBpbmxpbmUgYm9vbCBkd21hY19pc194bWFjKGVudW0gZHdtYWNfY29yZV90eXBlIGNvcmVfdHlwZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC01MC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NTE6XFx0cmV0dXJuIGNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0IHx8IGNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTUyLX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MzY9c3RhdGljIGludCBkd2NfZXRoX2R3bWFjX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy04Ny1cXHQvKiBkd2MtcW9zIG5lZWRzIEdNQUM0LCBBQUwsIFRTTyBhbmQgUE1UICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzo4ODpcXHRwbGF0X2RhdC1cXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDNDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTg5LVxcdHBsYXRfZGF0LVxcdTAwM2VkbWFfY2ZnLVxcdTAwM2VhYWwgPSAxO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz01OTY9c3RhdGljIHZvaWQgY29tbW9uX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTU5OS1cXHRwbGF0LVxcdTAwM2VjbGtfY3NyID0gU1RNTUFDX0NTUl8yMF8zNU07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo2MDA6XFx0cGxhdC1cXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNjAxLVxcdHBsYXQtXFx1MDAzZWZvcmNlX3NmX2RtYV9tb2RlID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9NjE2PXN0YXRpYyBpbnQgaW50ZWxfbWdiZV9jb21tb25fZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNjI2LVxcdHBsYXQtXFx1MDAzZWNsa19jc3IgPSBTVE1NQUNfQ1NSXzI1MF8zMDBNO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NjI3OlxcdHBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy02MjgtXFx0cGxhdC1cXHUwMDNlZm9yY2Vfc2ZfZG1hX21vZGUgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jPTM3ND1zdGF0aWMgaW50IGlwcTgwNnhfZ21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTQ3NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmM6NDc2OlxcdHBsYXRfZGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTQ3Ny1cXHRwbGF0X2RhdC1cXHUwMDNlYnNwX3ByaXYgPSBnbWFjO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy03Mi0jZGVmaW5lIFBDSV9ERVZJQ0VfSURfTE9PTkdTT05fR05FVFxcdDB4N2ExM1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NzM6I2RlZmluZSBEV01BQ19DT1JFX01VTFRJQ0hBTl9WMVxcdDB4MTBcXHQvKiBMb29uZ3NvbiBjdXN0b20gSUQgMHgxMCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NzQ6I2RlZmluZSBEV01BQ19DT1JFX01VTFRJQ0hBTl9WMlxcdDB4MTJcXHQvKiBMb29uZ3NvbiBjdXN0b20gSUQgMHgxMiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNzUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTg2PXN0YXRpYyB2b2lkIGxvb25nc29uX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtOTUtXFx0cGxhdC1cXHUwMDNlY2xrX2NzciA9IFNUTU1BQ19DU1JfMTAwXzE1ME07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo5NjpcXHRwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy05Ny1cXHRwbGF0LVxcdTAwM2Vmb3JjZV9zZl9kbWFfbW9kZSA9IHRydWU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTEwOC1cXHRzd2l0Y2ggKGxkLVxcdTAwM2Vsb29uZ3Nvbl9pZCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6MTA5OlxcdGNhc2UgRFdNQUNfQ09SRV9NVUxUSUNIQU5fVjE6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xMTAtXFx0XFx0bGQtXFx1MDAzZW11bHRpY2hhbiA9IDE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTEyMC1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjEyMTpcXHRjYXNlIERXTUFDX0NPUkVfTVVMVElDSEFOX1YyOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTIyLVxcdFxcdGxkLVxcdTAwM2VtdWx0aWNoYW4gPSAxO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz0zMDY9c3RhdGljIGludCBsb29uZ3Nvbl9kd21hY19zZXR1cCh2b2lkICphcHJpdiwgc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqbWFjKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0zMjgtXFx0aWYgKGxkLVxcdTAwM2VtdWx0aWNoYW4pIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjMyOTpcXHRcXHRwcml2LVxcdTAwM2VzeW5vcHN5c19pZCA9IERXTUFDX0NPUkVfM183MDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTMzMC1cXHRcXHQqZG1hID0gZHdtYWMxMDAwX2RtYV9vcHM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmM9NDI9c3RhdGljIGludCBscGMxOHh4X2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmMtNTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jOjU3OlxcdHBsYXRfZGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jLTU4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MjA4PW1vdG9yY29tbV9kZWZhdWx0X3BsYXRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI0Ny1cXHRwbGF0LVxcdTAwM2VjbGtfcmVmX3JhdGVcXHQ9IDEyNTAwMDAwMDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzoyNDg6XFx0cGxhdC1cXHUwMDNlY29yZV90eXBlXFx0XFx0PSBEV01BQ19DT1JFX0dNQUM0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI0OS1cXHRwbGF0LVxcdTAwM2VzdXNwZW5kXFx0XFx0PSBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmM9Njg0PXN0YXRpYyBpbnQgcWNvbV9ldGhxb3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmMtNzc2LVxcdHBsYXRfZGF0LVxcdTAwM2VwdHBfY2xrX2ZyZXFfY29uZmlnID0gZXRocW9zX3B0cF9jbGtfZnJlcV9jb25maWc7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYzo3Nzc6XFx0cGxhdF9kYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYy03NzgtXFx0aWYgKGV0aHFvcy1cXHUwMDNlaGFzX2VtYWNfZ2VfMylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmM9MTU2OD1zdGF0aWMgaW50IHJrX2dtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmMtMTU5MS1cXHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jOjE1OTI6XFx0aWYgKHBsYXRfZGF0LVxcdTAwM2Vjb3JlX3R5cGUgIT0gRFdNQUNfQ09SRV9HTUFDNCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmM6MTU5MzpcXHRcXHRwbGF0X2RhdC1cXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmMtMTU5NC1cXHRcXHRwbGF0X2RhdC1cXHUwMDNlcnhfZmlmb19zaXplID0gNDA5NjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXMzMi5jPTE0ND1zdGF0aWMgaW50IHMzMl9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmMtMTk1LVxcdC8qIFMzMkNDIGNvcmUgZmVhdHVyZSBzZXQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYzoxOTY6XFx0cGxhdC1cXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDNDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYy0xOTctXFx0cGxhdC1cXHUwMDNlcG10ID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYz01NTk9c3RhdGljIHZvaWQgc29jZnBnYV9nZW41X3NldHVwX3BsYXRfZGF0KHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy01NjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jOjU2MzpcXHRwbGF0X2RhdC1cXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy01NjQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM9NTY5PXN0YXRpYyB2b2lkIHNvY2ZwZ2FfYWdpbGV4NV9zZXR1cF9wbGF0X2RhdChzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNTcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYzo1NzM6XFx0cGxhdF9kYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jLTU3NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bnhpLmM9OTk9c3RhdGljIGludCBzdW43aV9nbWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jLTEzOC1cXHRwbGF0X2RhdC1cXHUwMDNldHhfY29lID0gdHJ1ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jOjEzOTpcXHRwbGF0X2RhdC1cXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bnhpLmMtMTQwLVxcdHBsYXRfZGF0LVxcdTAwM2Vic3BfcHJpdiA9IGdtYWM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jPTIxND1zdGF0aWMgaW50IHRlZ3JhX21nYmVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmMtMzI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmM6MzI2OlxcdHBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYy0zMjctXFx0cGxhdC1cXHUwMDNlZmxhZ3MgfD0gU1RNTUFDX0ZMQUdfVFNPX0VOO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jPTIxPXN0YXRpYyB2b2lkIHN0bW1hY19nZXRfdmVyc2lvbihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjMxOlxcdGlmIChjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9NQUMxMDApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTMyLVxcdFxcdHJldHVybjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjM0OlxcdGlmIChjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0zNS1cXHRcXHR2ZXJzaW9uX29mZnNldCA9IEdNQUNfVkVSU0lPTjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy00OS1cXHR2ZXItXFx1MDAzZXNucHN2ZXIgPSBGSUVMRF9HRVQoRFdNQUNfU05QU1ZFUiwgdmVyc2lvbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjUwOlxcdGlmIChjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtNTEtXFx0XFx0dmVyLVxcdTAwM2VkZXZfaWQgPSBGSUVMRF9HRVQoRFdNQUNfVVNFUlZFUiwgdmVyc2lvbik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM9Njk9c3RhdGljIGludCBzdG1tYWNfZHdtYWMxX3F1aXJrcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtNzYtXFx0XFx0LyogR01BQyBvbGRlciB0aGFuIDMuNTAgaGFzIG5vIGV4dGVuZGVkIGRlc2NyaXB0b3JzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjc3OlxcdFxcdGlmIChwcml2LVxcdTAwM2VzeW5vcHN5c19pZCBcXHUwMDNlPSBEV01BQ19DT1JFXzNfNTApIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtNzgtXFx0XFx0XFx0ZGV2X2luZm8ocHJpdi1cXHUwMDNlZGV2aWNlLCBcXFwiRW5hYmxlZCBleHRlbmRlZCBkZXNjcmlwdG9yc1xcXFxuXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM9MTExPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3aWZfZW50cnkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTEzMC1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjEzMTpcXHRcXHQuY29yZV90eXBlID0gRFdNQUNfQ09SRV9NQUMxMDAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTEzMi1cXHRcXHQubWluX2lkID0gMCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0xNDctXFx0fSwge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoxNDg6XFx0XFx0LmNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMTQ5LVxcdFxcdC5taW5faWQgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTE2NC1cXHR9LCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjE2NTpcXHRcXHQuY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDNCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMTY2LVxcdFxcdC5taW5faWQgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTE4NC1cXHR9LCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjE4NTpcXHRcXHQuY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDNCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MTg2OlxcdFxcdC5taW5faWQgPSBEV01BQ19DT1JFXzRfMDAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTE4Ny1cXHRcXHQucmVncyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yMDUtXFx0fSwge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoyMDY6XFx0XFx0LmNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjIwNzpcXHRcXHQubWluX2lkID0gRFdNQUNfQ09SRV80XzEwLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yMDgtXFx0XFx0LnJlZ3MgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMjI2LVxcdH0sIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MjI3OlxcdFxcdC5jb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoyMjg6XFx0XFx0Lm1pbl9pZCA9IERXTUFDX0NPUkVfNV8xMCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMjI5LVxcdFxcdC5yZWdzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTI0Ny1cXHR9LCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjI0ODpcXHRcXHQuY29yZV90eXBlID0gRFdNQUNfQ09SRV9YR01BQyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMjQ5LVxcdFxcdC5taW5faWQgPSBEV1hHTUFDX0NPUkVfMl8xMCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yNjktXFx0fSwge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoyNzA6XFx0XFx0LmNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTI3MS1cXHRcXHQubWluX2lkID0gRFdYTEdNQUNfQ09SRV8yXzAwLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jPTI5ND1zdG1tYWNfaHdpZl9maW5kKGVudW0gZHdtYWNfY29yZV90eXBlIGNvcmVfdHlwZSwgdTggc25wc3ZlciwgdTggZGV2X2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTMwNi1cXHRcXHRcXHRjb250aW51ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MzA3OlxcdFxcdGlmIChjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQyBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0zMDgtXFx0XFx0ICAgIGRldl9pZCAhPSBlbnRyeS1cXHUwMDNlZGV2X2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jPTMxNz1pbnQgc3RtbWFjX2h3aWZfaW5pdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMzUyLVxcdFxcdFxcdFxcXCJGYWlsZWQgdG8gZmluZCBIVyBJRiAoaWQ9MHgleCwgZ21hYz0lZC8lZClcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjM1MzpcXHRcXHRcXHR2ZXJzaW9uLnNucHN2ZXIsIGNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjM1NDpcXHRcXHRcXHRjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTM1NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYz0yOD1zdGF0aWMgaW50IGVzdF9jb25maWd1cmUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBzdHJ1Y3Qgc3RtbWFjX2VzdCAqY2ZnLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jLTU1LVxcdGN0cmwgPSByZWFkbChlc3RfYWRkciArIEVTVF9DT05UUk9MKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmM6NTY6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jLTU3LVxcdFxcdGN0cmwgXFx1MDAyNj0gfkVTVF9YR01BQ19QVE9WO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jPTgzPXN0YXRpYyB2b2lkIGVzdF9pcnFfc3RhdHVzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYy0xNTAtXFx0aWYgKHN0YXR1cyBcXHUwMDI2IEVTVF9CVFJFKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jOjE1MTpcXHRcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmMtMTUyLVxcdFxcdFxcdGJ0cmwgPSBGSUVMRF9HRVQoRVNUX1hHTUFDX0JUUkwsIHN0YXR1cyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jPTMwMT1zdGF0aWMgdm9pZCBzdG1tYWNfZXRodG9vbF9nZXRkcnZpbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTMwNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jOjMwNjpcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQyB8fFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM6MzA3OlxcdCAgICBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTMwOC1cXHRcXHRzdHJzY3B5KGluZm8tXFx1MDAzZWRyaXZlciwgR01BQ19FVEhUT09MX05BTUUsIHNpemVvZihpbmZvLVxcdTAwM2Vkcml2ZXIpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jOjMwOTpcXHRlbHNlIGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTMxMC1cXHRcXHRzdHJzY3B5KGluZm8tXFx1MDAzZWRyaXZlciwgWEdNQUNfRVRIVE9PTF9OQU1FLCBzaXplb2YoaW5mby1cXHUwMDNlZHJpdmVyKSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jPTM1MD1zdGF0aWMgaW50IHN0bW1hY19ldGh0b29sX2dldF9yZWdzX2xlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zNTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYzozNTQ6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtMzU1LVxcdFxcdHJldHVybiBYR01BQ19SRUdTSVpFICogNDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jOjM1NjpcXHRlbHNlIGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTM1Ny1cXHRcXHRyZXR1cm4gR01BQzRfUkVHX1NQQUNFX1NJWkU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jPTM2MT1zdGF0aWMgdm9pZCBzdG1tYWNfZXRodG9vbF9ncmVncyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zNzAtXFx0LyogQ29weSBETUEgcmVnaXN0ZXJzIHRvIHdoZXJlIGV0aHRvb2wgZXhwZWN0cyB0aGVtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYzozNzE6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zNzItXFx0XFx0LyogR01BQzQgZHVtcHMgaXRzIERNQSByZWdpc3RlcnMgYXQgaXRzIERNQV9DSEFOX0JBU0VfQUREUiAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zNzUtXFx0XFx0ICAgICAgIE5VTV9EV01BQzRfRE1BX1JFR1MgKiA0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jOjM3NjpcXHR9IGVsc2UgaWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSAhPSBEV01BQ19DT1JFX1hHTUFDKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zNzctXFx0XFx0bWVtY3B5KFxcdTAwMjZyZWdfc3BhY2VbRVRIVE9PTF9ETUFfT0ZGU0VUXSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM9NTE1PXN0YXRpYyB2b2lkIHN0bW1hY19nZXRfZXRodG9vbF9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy01NTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYzo1NTY6XFx0XFx0aWYgKHByaXYtXFx1MDAzZXN5bm9wc3lzX2lkIFxcdTAwM2U9IERXTUFDX0NPUkVfM181MClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTU1Ny1cXHRcXHRcXHRzdG1tYWNfbWFjX2RlYnVnKHByaXYsIHByaXYtXFx1MDAzZWlvYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NjQyPXN0YXRpYyBpbnQgc3RtbWFjX2h3dHN0YW1wX3NldChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NTctXFx0XFx0XFx0c25hcF90eXBlX3NlbCA9IFBUUF9UQ1JfU05BUFRZUFNFTF8xO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzU4OlxcdFxcdFxcdGlmIChwcml2LVxcdTAwM2VzeW5vcHN5c19pZCBcXHUwMDNjIERXTUFDX0NPUkVfM183MCBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzU5OlxcdFxcdFxcdCAgICBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgIT0gRFdNQUNfQ09SRV9YR01BQylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc2MC1cXHRcXHRcXHRcXHR0c19ldmVudF9lbiA9IFBUUF9UQ1JfVFNFVk5URU5BO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz00Mzc5PXN0YXRpYyB2b2lkIHN0bW1hY19zZXRfZ3NvX2ZlYXR1cmVzKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00NDA4LVxcdG5kZXYtXFx1MDAzZWh3X2ZlYXR1cmVzIHw9IE5FVElGX0ZfVFNPIHwgTkVUSUZfRl9UU082O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NDQwOTpcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQzQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00NDEwLVxcdFxcdG5kZXYtXFx1MDAzZWh3X2ZlYXR1cmVzIHw9IE5FVElGX0ZfR1NPX1VEUF9MNDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NTEyND1zdGF0aWMgdW5zaWduZWQgaW50IHN0bW1hY19yeF9idWYyX2xlbihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUxNDktXFx0LyogTm90IEdNQUM0IGFuZCBub3QgbGFzdCBkZXNjcmlwdG9yICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1MTUwOlxcdGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgIT0gRFdNQUNfQ09SRV9HTUFDNCBcXHUwMDI2XFx1MDAyNiAoc3RhdHVzIFxcdTAwMjYgcnhfbm90X2xzKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUxNTEtXFx0XFx0cmV0dXJuIHByaXYtXFx1MDAzZWRtYV9jb25mLmRtYV9idWZfc3o7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTYyMDc9c3RhdGljIHZvaWQgc3RtbWFjX2NvbW1vbl9pbnRlcnJ1cHQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02MjI4LVxcdC8qIFRvIGhhbmRsZSBHTUFDIG93biBpbnRlcnJ1cHRzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2MjI5OlxcdGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDIHx8IHhtYWMpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTYyMzAtXFx0XFx0aW50IHN0YXR1cyA9IHN0bW1hY19ob3N0X2lycV9zdGF0dXMocHJpdiwgXFx1MDAyNnByaXYtXFx1MDAzZXhzdGF0cyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTY1NDM9c3RhdGljIGludCBzdG1tYWNfZG1hX2NhcF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NTc4LVxcdFxcdCAgIChwcml2LVxcdTAwM2VkbWFfY2FwLmhhbGZfZHVwbGV4KSA/IFxcXCJZXFxcIiA6IFxcXCJOXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2NTc5OlxcdGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjU4MC1cXHRcXHRzZXFfcHJpbnRmKHNlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjU4Mi1cXHRcXHRcXHQgICBwcml2LVxcdTAwM2VkbWFfY2FwLm11bHRpX2FkZHIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NjU4MzpcXHR9IGVsc2UgaWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NTg0LVxcdFxcdHNlcV9wcmludGYoc2VxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NjE0LVxcdFxcdCAgIChwcml2LVxcdTAwM2VkbWFfY2FwLmF0aW1lX3N0YW1wKSA/IFxcXCJZXFxcIiA6IFxcXCJOXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2NjE1OlxcdGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY2MTYtXFx0XFx0c2VxX3ByaW50ZihzZXEsIFxcXCJcXFxcdFRpbWVzdGFtcCBTeXN0ZW0gVGltZSBTb3VyY2U6ICVzXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NjIyLVxcdFxcdCAgIChwcml2LVxcdTAwM2VkbWFfY2FwLnR4X2NvZSkgPyBcXFwiWVxcXCIgOiBcXFwiTlxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NjYyMzpcXHRpZiAocHJpdi1cXHUwMDNlc3lub3BzeXNfaWQgXFx1MDAzZT0gRFdNQUNfQ09SRV80XzAwIHx8XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2NjI0OlxcdCAgICBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjYyNS1cXHRcXHRzZXFfcHJpbnRmKHNlcSwgXFxcIlxcXFx0SVAgQ2hlY2tzdW0gT2ZmbG9hZCBpbiBSWDogJXNcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTczNTU9c3RhdGljIHZvaWQgc3RtbWFjX3ByaW50X2FjdHBoeWlmKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzM2MS1cXHRzd2l0Y2ggKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzM2MjpcXHRjYXNlIERXTUFDX0NPUkVfTUFDMTAwOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzM2My1cXHRcXHRyZXR1cm47XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MzY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzM2NTpcXHRjYXNlIERXTUFDX0NPUkVfR01BQzpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjczNjY6XFx0Y2FzZSBEV01BQ19DT1JFX0dNQUM0OlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzM2Ny1cXHRcXHRwaHlpZl90YWJsZSA9IHN0bW1hY19kd21hY19hY3RwaHlpZjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzM3MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjczNzE6XFx0Y2FzZSBEV01BQ19DT1JFX1hHTUFDOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzM3Mi1cXHRcXHRwaHlpZl90YWJsZSA9IHN0bW1hY19kd3hnbWFjX3BoeWlmO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03Mzk3PXN0YXRpYyBpbnQgc3RtbWFjX2h3X2luaXQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NDUyLVxcdFxcdGRldl9pbmZvKHByaXYtXFx1MDAzZWRldmljZSwgXFxcIlJYIENoZWNrc3VtIE9mZmxvYWQgRW5naW5lIHN1cHBvcnRlZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3NDUzOlxcdFxcdGlmIChwcml2LVxcdTAwM2VzeW5vcHN5c19pZCBcXHUwMDNjIERXTUFDX0NPUkVfNF8wMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc0NTQtXFx0XFx0XFx0ZGV2X2luZm8ocHJpdi1cXHUwMDNlZGV2aWNlLCBcXFwiQ09FIFR5cGUgJWRcXFxcblxcXCIsIHByaXYtXFx1MDAzZWh3LVxcdTAwM2VyeF9jc3VtKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzQ5Ny1cXHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjc0OTg6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NDk5LVxcdFxcdHByaXYtXFx1MDAzZWh3LVxcdTAwM2VtdWx0aV9hZGRyID0gcHJpdi1cXHUwMDNlZG1hX2NhcC5tdWx0aV9hZGRyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NTQ1LVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzU0NjpcXHRpZiAoKHByaXYtXFx1MDAzZXN5bm9wc3lzX2lkIFxcdTAwM2U9IERXTUFDX0NPUkVfM181MCB8fFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzU0NzpcXHQgICAgIHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzU0OC1cXHQgICAgIXByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZXJpd3Rfb2ZmKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTc4MTM9c3RhdGljIGludCBfX3N0bW1hY19kdnJfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2aWNlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03OTIyLVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzkyMzpcXHRpZiAocHJpdi1cXHUwMDNlc3lub3BzeXNfaWQgXFx1MDAzYyBEV01BQ19DT1JFXzVfMjApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03OTI0LVxcdFxcdHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWRtYV9jZmctXFx1MDAzZWRjaGUgPSBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODAyMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjgwMjE6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODAyMi1cXHRcXHRuZGV2LVxcdTAwM2VtYXhfbXR1ID0gWEdNQUNfSlVNQk9fTEVOO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6ODAyMzpcXHRlbHNlIGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2VlbmhfZGVzYyB8fCBwcml2LVxcdTAwM2VzeW5vcHN5c19pZCBcXHUwMDNlPSBEV01BQ19DT1JFXzRfMDApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04MDI0LVxcdFxcdG5kZXYtXFx1MDAzZW1heF9tdHUgPSBKVU1CT19MRU47XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jPTI5OT1zdGF0aWMgaW50IHN0bW1hY19tZGlvX3JlYWRfYzIyKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHlhZGRyLCBpbnQgcGh5cmVnKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy0zMDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYzozMDQ6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtMzA1LVxcdFxcdGNtZCA9IE1JSV9HTUFDNF9SRUFEO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYz0zNDE9c3RhdGljIGludCBzdG1tYWNfbWRpb193cml0ZV9jMjIoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeWFkZHIsIGludCBwaHlyZWcsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTM0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjM0NzpcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQzQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy0zNDgtXFx0XFx0Y21kID0gTUlJX0dNQUM0X1dSSVRFO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYz0zODE9aW50IHN0bW1hY19tZGlvX3Jlc2V0KHN0cnVjdCBtaWlfYnVzICpidXMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTQxOS1cXHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjQyMDpcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlICE9IERXTUFDX0NPUkVfR01BQzQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy00MjEtXFx0XFx0d3JpdGVsKDAsIHByaXYtXFx1MDAzZWlvYWRkciArIG1paV9hZGRyZXNzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM9NTM2PXN0YXRpYyB1MzIgc3RtbWFjX2Nsa19jc3Jfc2V0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNTU0LVxcdFxcdHJhdGVzID0gc3RtbWFjX3N1bjhpX2Nzcl90b19tZGM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYzo1NTU6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNTU2LVxcdFxcdHJhdGVzID0gc3RtbWFjX3hnbWFjX2Nzcl90b19tZGM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jPTU5NT1pbnQgc3RtbWFjX21kaW9fcmVnaXN0ZXIoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTYyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjYyMjpcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTYyMy1cXHRcXHRuZXdfYnVzLVxcdTAwM2VyZWFkID0gXFx1MDAyNnN0bW1hY194Z21hYzJfbWRpb19yZWFkX2MyMjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNjM5LVxcdFxcdG5ld19idXMtXFx1MDAzZXdyaXRlID0gXFx1MDAyNnN0bW1hY19tZGlvX3dyaXRlX2MyMjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjY0MDpcXHRcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQzQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTY0MS1cXHRcXHRcXHRuZXdfYnVzLVxcdTAwM2VyZWFkX2M0NSA9IFxcdTAwMjZzdG1tYWNfbWRpb19yZWFkX2M0NTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNjY1LVxcdC8qIExvb2tzIGxpa2Ugd2UgbmVlZCBhIGR1bW15IHJlYWQgZm9yIFhHTUFDIG9ubHkgYW5kIEM0NSBQSFlzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYzo2NjY6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNjY3LVxcdFxcdHN0bW1hY194Z21hYzJfbWRpb19yZWFkX2M0NShuZXdfYnVzLCAwLCAwLCAwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0yMz1zdGF0aWMgdm9pZCBjb21tb25fZGVmYXVsdF9kYXRhKHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yNi1cXHRwbGF0LVxcdTAwM2VjbGtfY3NyID0gU1RNTUFDX0NTUl8yMF8zNU07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjI3OlxcdHBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjgtXFx0cGxhdC1cXHUwMDNlZm9yY2Vfc2ZfZG1hX21vZGUgPSB0cnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTU0PXN0YXRpYyBpbnQgc25wc19nbWFjNV9kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtNTktXFx0cGxhdC1cXHUwMDNlY2xrX2NzciA9IFNUTU1BQ19DU1JfMjUwXzMwME07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjYwOlxcdHBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTYxLVxcdHBsYXQtXFx1MDAzZWZvcmNlX3NmX2RtYV9tb2RlID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jPTQxND1zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHU4ICptYWMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYy01MTgtXFx0XFx0XFx0XFx0XFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgcGxhdC1cXHUwMDNlbXVsdGljYXN0X2ZpbHRlcl9iaW5zKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYzo1MTk6XFx0XFx0cGxhdC1cXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTUyMC1cXHRcXHRwbGF0LVxcdTAwM2VwbXQgPSB0cnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTIzLVxcdGlmIChvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShucCwgXFxcInNucHMsZHdtYWMtMy40MGFcXFwiKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjUyNDpcXHRcXHRwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTI1LVxcdFxcdHBsYXQtXFx1MDAzZWVuaF9kZXNjID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTUzMS1cXHRpZiAob2ZfZGV2aWNlX2NvbXBhdGlibGVfbWF0Y2gobnAsIHN0bW1hY19nbWFjNF9jb21wYXRzKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjUzMjpcXHRcXHRwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTUzMy1cXHRcXHRwbGF0LVxcdTAwM2VwbXQgPSB0cnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTQ1LVxcdGlmIChvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShucCwgXFxcInNucHMsZHd4Z21hY1xcXCIpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmM6NTQ2OlxcdFxcdHBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTQ3LVxcdFxcdHBsYXQtXFx1MDAzZXBtdCA9IHRydWU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmM9MzM1PXZvaWQgc3RtbWFjX3B0cF9yZWdpc3RlcihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmMtMzQ4LVxcdHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNkY19lcnJvcl9hZGogPSAwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuYzozNDk6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuYy0zNTAtXFx0XFx0cHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY2RjX2Vycm9yX2FkaiA9ICgyICogTlNFQ19QRVJfU0VDKSAvIHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNsa19wdHBfcmF0ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuYz03MzY9c3RhdGljIGludCBzdG1tYWNfdGVzdF9mbG93Y3RybChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfc2VsZnRlc3RzLmMtNzU1LVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuYzo3NTY6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSAhPSBEV01BQ19DT1JFX01BQzEwMCBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuYy03NTctXFx0ICAgIHJ4X2ZpZm9fc2l6ZSAvIHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZXJ4X3F1ZXVlc190b191c2UgXFx1MDAzYyA0MDk2KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQwNzozMTowOS45OTU4NDgyNjVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyMDQ5MjY3MTc0MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXNpcyBvZiBgc3RtbWFjYCBEcml2ZXIgRnV6emluZyBGZWFzaWJpbGl0eSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYHN0bW1hY2AgZXRoZXJuZXQgZHJpdmVyLiBJdCdzIGZvciBTeW5vcHN5cyBEZXNpZ25XYXJlIE1BQyAoRFdNQUMpIGFuZCBTVE1pY3JvIE1BQ3MuIE15IGluaXRpYWwgcXVlc3Rpb24gaXM6IGNhbiBJIGV2ZW4gcmVhY2ggdGhpcyB0aGluZyBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnQgbGlrZSBRRU1VIG9yIEdDRT9cblxuVGhlIGluc3RydWN0aW9ucyB0ZWxsIG1lIHRvIGF2b2lkIGNvZGUgdGhhdCBpcyB1bnJlYWNoYWJsZSBpbiB0aGVzZSBlbnZpcm9ubWVudHMuIFRoYXQgaW5jbHVkZXMgZHJpdmVycyBmb3IgaGFyZHdhcmUgdGhhdCBpc24ndCBlbXVsYXRlZCwgbGlrZSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2ggZHJpdmVycywgU21hcnROSUNzLCBHUFUgZHJpdmVycyByZXF1aXJpbmcgcGh5c2ljYWwgUENJZSBjYXJkcywgYW5kIGRyaXZlciBjbGVhbnVwIHJvdXRpbmVzIG9ubHkgdHJpZ2dlcmVkIGJ5IFBDSSBob3QtdW5wbHVnLlxuXG5TbywgaXMgYHN0bW1hY2AgZW11bGF0ZWQgaW4gUUVNVSBvciBHQ0U/IExldCdzIGJyZWFrIGl0IGRvd246XG5cbiogICAqKlFFTVUgKHg4NlxcXzY0LCBhcm02NCBgdmlydGAgbWFjaGluZSk6KiogVGhlIHN0YW5kYXJkIG5ldHdvcmsgaW50ZXJmYWNlcyBpbiBRRU1VIGFyZSB0aGluZ3MgbGlrZSBgdmlydGlvLW5ldC1wY2lgLCBgZTEwMDBgLCBhbmQgc28gb24uIE5vbmUgb2YgdGhlIGxpc3RlZCBvbmVzIG1hdGNoIGBzdG1tYWNgIGRpcmVjdGx5LiBJIGFsc28gbmVlZCB0byBjb25zaWRlciBTb0MgcGxhdGZvcm0gZGV2aWNlcy4gTG9va2luZyBhdCBBUk0gbWFjaGluZXM6XG4gICAgKiAgIGB2aXJ0YCBkb2Vzbid0IGhhdmUgYHN0bW1hY2AsIG9ubHkgdmlydGlvL3BjaVxuICAgICogICBBbGx3aW5uZXIgQTEwIChjdWJpZWJvYXJkKSBoYXMgYGFsbHdpbm5lci1lbWFjYCwgYnV0IG5vdCBgZHdtYWNgIG9yIGBzdG1tYWNgLlxuICAgICogICBBbGx3aW5uZXIgSDMgKG9yYW5nZXBpLXBjKSBoYXMgYGFsbHdpbm5lci1zdW44aS1lbWFjYCB3aGljaCB1c2VzIGBkd21hYy1zdW44aS5jYCwgYnV0IGl0J3Mgbm90IHRoZSBzYW1lIGFzIHRoZSB0YXJnZXQ6IHRoZSBwYXRjaCBpcyBzcGVjaWZpY2FsbHkgZm9yIEdNQUM0IC8gZHdtYWM0LlxuICAgICogICBJdCBzZWVtcyB0aGVyZSdzIG5vIFFFTVUgbWFjaGluZSB0aGF0IGVtdWxhdGVzIERXTUFDNCAvIERXTUFDXFxfQ09SRVxcX0dNQUM0LlxuKiAgICoqR0NFIChHb29nbGUgQ29tcHV0ZSBFbmdpbmUpOioqIE9ubHkgYHZpcnRpby1uZXRgIG9yIGBndmVgIGFyZSBhdmFpbGFibGUuIE5vIHBoeXNpY2FsIERXTUFDIGhhcmR3YXJlIGhlcmUgZWl0aGVyLlxuXG5Tbywgd2l0aG91dCBhbnkgcGh5c2ljYWwgaGFyZHdhcmUsIGNhbiBJIHJlYWNoIGBzdG1tYWNgPyBBbGwgYHN0bW1hY2AgZHJpdmVycyBhcmUgcHJvYmVkIGVpdGhlciB2aWEgYHBsYXRmb3JtX2RyaXZlcmAgKHVzaW5nIGFuIE9GIC8gZGV2aWNlIHRyZWUgdG8gbWF0Y2ggYSBzcGVjaWZpYyBTb0MgbGlrZSBRdWFsY29tbSBFVEhRT1MsIE5YUCBTMzIsIFJvY2tjaGlwIFJLMzU4OCwgZXRjLikgb3IgYHBjaV9kcml2ZXJgIChJbnRlbCBFbGtoYXJ0IExha2UgLyBUaWdlciBMYWtlIEdiRSwgTW90b3Jjb21tLCBMb29uZ3NvbiBMUzdBMTAwMCwgU1RNaWNybyBQQ0kpLiBUaGVzZSBhcmUgbm90IHByZXNlbnQgb3IgZW11bGF0ZWQgaW4gc3RhbmRhcmQgZW52aXJvbm1lbnRzLlxuXG5UaGVyZWZvcmUsIHRoaXMgY29kZSBwYXRoIGlzIGluIHZlbmRvci1zcGVjaWZpYyBTb0MvcGh5c2ljYWwgZXRoZXJuZXQgaGFyZHdhcmUgZHJpdmVycyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UsIGFuZCBpdCdzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlxuXG5MZXQncyBkb3VibGUtY2hlY2sgYWxsIHRoZSBkZXRhaWxzOlxuXG4xLiAgKipXb3J0aEZ1enppbmc9ZmFsc2U/KiogWWVzLCBiZWNhdXNlIHRoZSBjb2RlIHBhdGggaXMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXG4yLiAgKipSZWFzb25pbmc6KiogVGhlIHBhdGNoIG1vZGlmaWVzIHVuaWNhc3QgTUFDIGZpbHRlcmluZyBsb2dpYyBhbmQgaGFyZHdhcmUgZmVhdHVyZSBwYXJzaW5nIGluIHRoZSBTeW5vcHN5cyBEZXNpZ25XYXJlIE1BQyAoRFdNQUM0KSAvIFNUTU1BQyBFdGhlcm5ldCBkcml2ZXIsIHNwZWNpZmljYWxseSBpbiBgZHdtYWM0X2NvcmUuY2AsIGBkd21hYzRfZG1hLmNgLCBhbmQgYHN0bW1hY19tYWluLmNgLiBEV01BQzQgaGFyZHdhcmUgaXMgb25seSBwcmVzZW50IG9uIHNwZWNpZmljIHBoeXNpY2FsIFNvQ3MgYW5kIFBDSSBjYXJkcyAoZS5nLiBJbnRlbCBFbGtoYXJ0IExha2UsIE5YUCBTMzIsIFF1YWxjb21tIEVUSFFPUykgd2hpY2ggYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIGF2YWlsYWJsZSBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyBsaWtlIEdDRS5cbjMuICAqKkZvY3VzU3ltYm9sczoqKiBcXFtdLlxuNC4gICoqRW5hYmxlQ29uZmlnczoqKiBcXFtdLlxuXG5Pa2F5LCB0aGF0J3MgY29uY2x1c2l2ZS4gTGV0J3MgY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MTMwMiwiT3V0cHV0VG9rZW5zIjoxMzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDY0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDA3OjMxOjMwLjQ4ODUyMzkwOFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI4NjgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBTeW5vcHN5cyBEZXNpZ25XYXJlIE1BQyA0IChEV01BQzQpIHVuaWNhc3QgZmlsdGVyIGNvbmZpZ3VyYXRpb24gYW5kIGhhcmR3YXJlIGZlYXR1cmUgZGV0ZWN0aW9uIGluIHRoZSBTVE1NQUMgZXRoZXJuZXQgZHJpdmVyLiBEV01BQzQgY29udHJvbGxlcnMgYXJlIGVtYmVkZGVkIGluIHBoeXNpY2FsIFNvQ3MgKGUuZy4sIEludGVsIEVsa2hhcnQgTGFrZSwgUXVhbGNvbW0gRVRIUU9TLCBOWFAgUzMyKSBhbmQgUENJIGRldmljZXMgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgdmlydHVhbGl6ZWQgY2xvdWQgZW52aXJvbm1lbnRzIChHQ0UpLiBDb25zZXF1ZW50bHksIHRoZXNlIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFN5bm9wc3lzIERlc2lnbldhcmUgTUFDIDQgKERXTUFDNCkgdW5pY2FzdCBmaWx0ZXIgY29uZmlndXJhdGlvbiBhbmQgaGFyZHdhcmUgZmVhdHVyZSBkZXRlY3Rpb24gaW4gdGhlIFNUTU1BQyBldGhlcm5ldCBkcml2ZXIuIERXTUFDNCBjb250cm9sbGVycyBhcmUgZW1iZWRkZWQgaW4gcGh5c2ljYWwgU29DcyAoZS5nLiwgSW50ZWwgRWxraGFydCBMYWtlLCBRdWFsY29tbSBFVEhRT1MsIE5YUCBTMzIpIGFuZCBQQ0kgZGV2aWNlcyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBjbG91ZCBlbnZpcm9ubWVudHMgKEdDRSkuIENvbnNlcXVlbnRseSwgdGhlc2UgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQwNzozMTozMC40ODg1NTgzNzhaIiwiU2VxIjoxMSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow7dfjw[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-31 07:14:18 +0000 UTC FinishedAt: 2026-08-31 07:31:31 +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+CgkJCTx0ZD4yMDI2LzA4LzMxIDA3OjMwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFN5bm9wc3lzIERlc2lnbldhcmUgTUFDIDQgKERXTUFDNCkgdW5pY2FzdCBmaWx0ZXIgY29uZmlndXJhdGlvbiBhbmQgaGFyZHdhcmUgZmVhdHVyZSBkZXRlY3Rpb24gaW4gdGhlIFNUTU1BQyBldGhlcm5ldCBkcml2ZXIuIERXTUFDNCBjb250cm9sbGVycyBhcmUgZW1iZWRkZWQgaW4gcGh5c2ljYWwgU29DcyAoZS5nLiwgSW50ZWwgRWxraGFydCBMYWtlLCBRdWFsY29tbSBFVEhRT1MsIE5YUCBTMzIpIGFuZCBQQ0kgZGV2aWNlcyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBjbG91ZCBlbnZpcm9ubWVudHMgKEdDRSkuIENvbnNlcXVlbnRseSwgdGhlc2UgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDA3OjMwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYmY0NmZmZjU2NWUwN2FmNDUxYTg5MzkzOGE4YjYyNTg1MDQ2MDZlY1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDMxIDA3OjMwOjI5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmhcbmluZGV4IDkyN2VhNjIzMDA3M2YuLjE3MjlmYjI5ZWNlMzggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmhcbkBAIC00MTksNiAmIzQzOzQxOSw4IEBAIHN0cnVjdCBkbWFfZmVhdHVyZXMge1xuIFx0dW5zaWduZWQgaW50IGhhbGZfZHVwbGV4O1xuIFx0dW5zaWduZWQgaW50IGhhc2hfZmlsdGVyO1xuIFx0dW5zaWduZWQgaW50IG11bHRpX2FkZHI7XG4mIzQzO1x0dW5zaWduZWQgaW50IGFkZGl0aW9uYWxfMzJfYWRkcjtcbiYjNDM7XHR1bnNpZ25lZCBpbnQgYWRkaXRpb25hbF82NF9hZGRyO1xuIFx0dW5zaWduZWQgaW50IHBjcztcbiBcdHVuc2lnbmVkIGludCBzbWFfbWRpbztcbiBcdHVuc2lnbmVkIGludCBwbXRfcmVtb3RlX3dha2VfdXA7XG5AQCAtNjI3LDYgJiM0Mzs2MjksNyBAQCBzdHJ1Y3QgbWFjX2RldmljZV9pbmZvIHtcbiBcdHZvaWQgX19pb21lbSAqcGNzcjsgICAgIC8qIHZwb2ludGVyIHRvIGRldmljZSBDU1JzICovXG4gXHR1bnNpZ25lZCBpbnQgbXVsdGljYXN0X2ZpbHRlcl9iaW5zO1xuIFx0dW5zaWduZWQgaW50IHVuaWNhc3RfZmlsdGVyX2VudHJpZXM7XG4mIzQzO1x0dW5zaWduZWQgaW50IG11bHRpX2FkZHI7XG4gXHR1bnNpZ25lZCBpbnQgbWNhc3RfYml0c19sb2cyO1xuIFx0dW5zaWduZWQgaW50IHJ4X2NzdW07XG4gXHR1bnNpZ25lZCBpbnQgbnVtX3ZsYW47XG5AQCAtNjM1LDYgJiM0Mzs2MzgsOCBAQCBzdHJ1Y3QgbWFjX2RldmljZV9pbmZvIHtcbiBcdHU4IHZsYW5fZmFpbF9xO1xuIFx0Ym9vbCBod192bGFuX2VuO1xuIFx0Ym9vbCByZXZlcnNlX3NnbWlpX2VuYWJsZTtcbiYjNDM7XHRib29sIGFkZGl0aW9uYWxfMzJfYWRkcjtcbiYjNDM7XHRib29sIGFkZGl0aW9uYWxfNjRfYWRkcjtcbiBcbiBcdC8qIFRoaXMgc3BpbmxvY2sgcHJvdGVjdHMgcmVhZC1tb2RpZnktd3JpdGUgb2YgdGhlIGludGVycnVwdFxuIFx0ICogbWFzay9lbmFibGUgcmVnaXN0ZXJzLlxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0LmhcbmluZGV4IDYzODI4MzY4MjhiYWMuLjY5Njg0NjUzMTIyOTUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzQuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0LmhcbkBAIC03NSw4ICYjNDM7NzUsNiBAQFxuICNkZWZpbmUgR01BQ19QQUNLRVRfRklMVEVSX0lQRkVcdFx0QklUKDIwKVxuICNkZWZpbmUgR01BQ19QQUNLRVRfRklMVEVSX1JBXHRcdEJJVCgzMSlcbiBcbi0jZGVmaW5lIEdNQUNfTUFYX1BFUkZFQ1RfQUREUkVTU0VTXHQxMjhcbi1cbiAvKiBNQUMgUlggUXVldWUgRW5hYmxlICovXG4gI2RlZmluZSBHTUFDX1JYX1FVRVVFX0NMRUFSKHF1ZXVlKVx0fihHRU5NQVNLKDEsIDApIFx1MDAzY1x1MDAzYyAoKHF1ZXVlKSAqIDIpKVxuICNkZWZpbmUgR01BQ19SWF9BVl9RVUVVRV9FTkFCTEUocXVldWUpXHRCSVQoKHF1ZXVlKSAqIDIpXG5AQCAtMTc2LDcgJiM0MzsxNzQsOSBAQCBlbnVtIHBvd2VyX2V2ZW50IHtcbiBcbiAvKiBNQUMgSFcgZmVhdHVyZXMwIGJpdG1hcCAqL1xuICNkZWZpbmUgR01BQ19IV19GRUFUX1NBVkxBTklOU1x0XHRCSVQoMjcpXG4tI2RlZmluZSBHTUFDX0hXX0ZFQVRfQURETUFDXHRcdEJJVCgxOClcbiYjNDM7I2RlZmluZSBHTUFDX0hXX0ZFQVRfTUFDQURSNjRTRUxcdEJJVCgyNClcbiYjNDM7I2RlZmluZSBHTUFDX0hXX0ZFQVRfTUFDQURSMzJTRUxcdEJJVCgyMylcbiYjNDM7I2RlZmluZSBHTUFDX0hXX0ZFQVRfQURETUFDXHRcdEdFTk1BU0soMjIsIDE4KVxuICNkZWZpbmUgR01BQ19IV19GRUFUX1JYQ09FU0VMXHRcdEJJVCgxNilcbiAjZGVmaW5lIEdNQUNfSFdfRkVBVF9UWENPU0VMXHRcdEJJVCgxNClcbiAjZGVmaW5lIEdNQUNfSFdfRkVBVF9FRUVTRUxcdFx0QklUKDEzKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9jb3JlLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzRfY29yZS5jXG5pbmRleCAxOGIzNTdiMjU3Y2MwLi5mYjViOTZhNDM1MDU0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2NvcmUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2NvcmUuY1xuQEAgLTM2NSwyMiAmIzQzOzM2NSw2MyBAQCBzdGF0aWMgdm9pZCBkd21hYzRfcG10KHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1bnNpZ25lZCBsb25nIG1vZGUpXG4gXHR3cml0ZWwocG10LCBpb2FkZHIgJiM0MzsgR01BQ19QTVQpO1xuIH1cbiBcbiYjNDM7LyoqXG4mIzQzOyAqIGR3bWFjNF91bWFjX2FkZHJfc2xvdCAtIEdldCB0aGUgVUMgZmlsdGVyIHNsb3QgZm9yIHRoZSBOdGggTUFDIGFkZHJlc3NcbiYjNDM7ICogQGh3OiBUaGUgTUFDIGRldmljZSBpbmZvXG4mIzQzOyAqIEByZWdfbjogVGhlIE1BQyBhZGRyZXNzJiMzOTtzIGluZGV4IGluIHRoZSBVQyBsaXN0XG4mIzQzOyAqXG4mIzQzOyAqIE9uIGR3bWFjNCB0aGUgc2xvdHMgYXZhaWxhYmxlIGZvciBVbmljYXN0IE1BQyBmaWx0ZXJpbmcgYXJlIGNvbmZpZ3VyZWQgd2hlblxuJiM0MzsgKiBpbnRlZ3JhdGluZyB0aGUgSVAuXG4mIzQzOyAqXG4mIzQzOyAqICAtIFNsb3QgMCBpcyBhbHdheXMgYXZhaWxhYmxlLCB1c2VkIHRvIHN0b3JlIHRoZSBwcmltYXJ5IE1BQyBhZGRyZXNzXG4mIzQzOyAqICAtIEZyb20gMSB0byAzMSwgdGhlIG51bWJlciBvZiBpbXBsZW1lbnRlZCBzbG90cyBpcyBzZXQgaW4gaHctXHUwMDNlbXVsdGlfYWRkclxuJiM0MzsgKiAgLSBGcm9tIDMyIHRvIDYzLCB0aGUgcmFuZ2UgaXMgYXZhaWxhYmxlIGlmIGh3LVx1MDAzZWFkZGl0aW9uYWxfMzJfYWRkclxuJiM0MzsgKiAgICBpcyBzZXRcbiYjNDM7ICogIC0gRnJvbSA2NCB0byAxMjcsIHRoZSByYW5nZSBpcyBhdmFpbGFibGUgaWYgaHctXHUwMDNlYWRkaXRpb25hbF82NF9hZGRyIGlzIHNldFxuJiM0MzsgKlxuJiM0MzsgKiBBbGwgdGhlIHJhbmdlcyBjYW4gYmUgY29uZmlndXJlZCBpbmRlcGVuZGVudGx5IChlLmcuIDY0IC1cdTAwM2UgMTI3IGNhbiBiZVxuJiM0MzsgKiBhdmFpbGFibGUsIGJ1dCBub3QgMzIgLVx1MDAzZSA2MylcbiYjNDM7ICpcbiYjNDM7ICogUmV0dXJuczogVGhlIHBoeXNpY2FsIHNsb3QgaW5kZXggaW4gdGhlIFVDIGZpbHRlclxuJiM0MzsgKi9cbiYjNDM7c3RhdGljIHVuc2lnbmVkIGludCBkd21hYzRfdW1hY19hZGRyX3Nsb3Qoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXG4mIzQzO1x0XHRcdFx0XHQgIHVuc2lnbmVkIGludCByZWdfbilcbiYjNDM7e1xuJiM0MztcdHVuc2lnbmVkIGludCBlbXB0eV9zbG90cyA9IDA7XG4mIzQzO1xuJiM0MztcdC8qIHJlZ19uIGlzIGluIHRoZSAxLTMxIGJhbmsgOiAxIHRvIDEgbWFwcGluZyAqL1xuJiM0MztcdGlmIChyZWdfbiBcdTAwM2MgKGh3LVx1MDAzZW11bHRpX2FkZHIgJiM0MzsgMSkpXG4mIzQzO1x0XHRyZXR1cm4gcmVnX247XG4mIzQzO1xuJiM0MztcdC8qIEdhcCBiZXR3ZWVuIHRoZSBsYXN0IGFkZHJlc3MgaW4gdGhlIDEtXHUwMDNlMzEgcmFuZ2UgYW5kIHRoZSBuZXh0IHNsb3QgKi9cbiYjNDM7XHRpZiAoaHctXHUwMDNlYWRkaXRpb25hbF8zMl9hZGRyKVxuJiM0MztcdFx0ZW1wdHlfc2xvdHMgPSAzMiAtIChody1cdTAwM2VtdWx0aV9hZGRyICYjNDM7IDEpO1xuJiM0MztcdGVsc2UgaWYgKGh3LVx1MDAzZWFkZGl0aW9uYWxfNjRfYWRkcilcbiYjNDM7XHRcdGVtcHR5X3Nsb3RzID0gNjQgLSAoaHctXHUwMDNlbXVsdGlfYWRkciAmIzQzOyAxKTtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIHJlZ19uICYjNDM7IGVtcHR5X3Nsb3RzO1xuJiM0Mzt9XG4mIzQzO1xuIHN0YXRpYyB2b2lkIGR3bWFjNF9zZXRfdW1hY19hZGRyKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxuIFx0XHRcdFx0IGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZHIsIHVuc2lnbmVkIGludCByZWdfbilcbiB7XG4gXHR2b2lkIF9faW9tZW0gKmlvYWRkciA9IGh3LVx1MDAzZXBjc3I7XG4mIzQzO1x0dW5zaWduZWQgaW50IHNsb3Q7XG4gXG4tXHRzdG1tYWNfZHdtYWM0X3NldF9tYWNfYWRkcihpb2FkZHIsIGFkZHIsIEdNQUNfQUREUl9ISUdIKHJlZ19uKSxcbi1cdFx0XHRcdCAgIEdNQUNfQUREUl9MT1cocmVnX24pKTtcbiYjNDM7XHRzbG90ID0gZHdtYWM0X3VtYWNfYWRkcl9zbG90KGh3LCByZWdfbik7XG4mIzQzO1x0c3RtbWFjX2R3bWFjNF9zZXRfbWFjX2FkZHIoaW9hZGRyLCBhZGRyLCBHTUFDX0FERFJfSElHSChzbG90KSxcbiYjNDM7XHRcdFx0XHQgICBHTUFDX0FERFJfTE9XKHNsb3QpKTtcbiB9XG4gXG4gc3RhdGljIHZvaWQgZHdtYWM0X2dldF91bWFjX2FkZHIoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXG4gXHRcdFx0XHQgdW5zaWduZWQgY2hhciAqYWRkciwgdW5zaWduZWQgaW50IHJlZ19uKVxuIHtcbiBcdHZvaWQgX19pb21lbSAqaW9hZGRyID0gaHctXHUwMDNlcGNzcjtcbiYjNDM7XHR1bnNpZ25lZCBpbnQgc2xvdDtcbiBcbi1cdHN0bW1hY19nZXRfbWFjX2FkZHIoaW9hZGRyLCBhZGRyLCBHTUFDX0FERFJfSElHSChyZWdfbiksXG4tXHRcdFx0ICAgIEdNQUNfQUREUl9MT1cocmVnX24pKTtcbiYjNDM7XHRzbG90ID0gZHdtYWM0X3VtYWNfYWRkcl9zbG90KGh3LCByZWdfbik7XG4mIzQzO1x0c3RtbWFjX2dldF9tYWNfYWRkcihpb2FkZHIsIGFkZHIsIEdNQUNfQUREUl9ISUdIKHNsb3QpLFxuJiM0MztcdFx0XHQgICAgR01BQ19BRERSX0xPVyhzbG90KSk7XG4gfVxuIFxuIHN0YXRpYyBpbnQgZHdtYWM0X3NldF9scGlfbW9kZShzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcbkBAIC01MjIsOSAmIzQzOzU2Myw2IEBAIHN0YXRpYyB2b2lkIGR3bWFjNF9zZXRfZmlsdGVyKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxuIFxuIFx0LyogSGFuZGxlIG11bHRpcGxlIHVuaWNhc3QgYWRkcmVzc2VzICovXG4gXHRpZiAobmV0ZGV2X3VjX2NvdW50KGRldikgJiM0MzsgMSBcdTAwM2UgaHctXHUwMDNldW5pY2FzdF9maWx0ZXJfZW50cmllcykge1xuLVx0XHQvKiBTd2l0Y2ggdG8gcHJvbWlzY3VvdXMgbW9kZSBpZiBtb3JlIHRoYW4gMTI4IGFkZHJzXG4tXHRcdCAqIGFyZSByZXF1aXJlZFxuLVx0XHQgKi9cbiBcdFx0dmFsdWUgfD0gR01BQ19QQUNLRVRfRklMVEVSX1BSO1xuIFx0fSBlbHNlIHtcbiBcdFx0c3RydWN0IG5ldGRldl9od19hZGRyICpoYTtcbkBAIC01MzUsOSAmIzQzOzU3MywxMSBAQCBzdGF0aWMgdm9pZCBkd21hYzRfc2V0X2ZpbHRlcihzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcbiBcdFx0XHRyZWcmIzQzOyYjNDM7O1xuIFx0XHR9XG4gXG4tXHRcdHdoaWxlIChyZWcgXHUwMDNjIEdNQUNfTUFYX1BFUkZFQ1RfQUREUkVTU0VTKSB7XG4tXHRcdFx0d3JpdGVsKDAsIGlvYWRkciAmIzQzOyBHTUFDX0FERFJfSElHSChyZWcpKTtcbi1cdFx0XHR3cml0ZWwoMCwgaW9hZGRyICYjNDM7IEdNQUNfQUREUl9MT1cocmVnKSk7XG4mIzQzO1x0XHR3aGlsZSAocmVnIFx1MDAzYyBody1cdTAwM2V1bmljYXN0X2ZpbHRlcl9lbnRyaWVzKSB7XG4mIzQzO1x0XHRcdHVuc2lnbmVkIGludCBzbG90ID0gZHdtYWM0X3VtYWNfYWRkcl9zbG90KGh3LCByZWcpO1xuJiM0MztcbiYjNDM7XHRcdFx0d3JpdGVsKDAsIGlvYWRkciAmIzQzOyBHTUFDX0FERFJfSElHSChzbG90KSk7XG4mIzQzO1x0XHRcdHdyaXRlbCgwLCBpb2FkZHIgJiM0MzsgR01BQ19BRERSX0xPVyhzbG90KSk7XG4gXHRcdFx0cmVnJiM0MzsmIzQzOztcbiBcdFx0fVxuIFx0fVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9kbWEuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9kbWEuY1xuaW5kZXggMjNmZmUxYWRjZDBkMy4uMTRhYzNmMGU1MWY3NyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9kbWEuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2RtYS5jXG5AQCAtMzg4LDYgJiM0MzszODgsOCBAQCBzdGF0aWMgaW50IGR3bWFjNF9nZXRfaHdfZmVhdHVyZSh2b2lkIF9faW9tZW0gKmlvYWRkcixcbiBcdGRtYV9jYXAtXHUwMDNlaGFsZl9kdXBsZXggPSAoaHdfY2FwIFx1MDAyNiBHTUFDX0hXX0ZFQVRfSERTRUwpIFx1MDAzZVx1MDAzZSAyO1xuIFx0ZG1hX2NhcC1cdTAwM2V2bGhhc2ggPSAoaHdfY2FwIFx1MDAyNiBHTUFDX0hXX0ZFQVRfVkxIQVNIKSBcdTAwM2VcdTAwM2UgNDtcbiBcdGRtYV9jYXAtXHUwMDNlbXVsdGlfYWRkciA9IChod19jYXAgXHUwMDI2IEdNQUNfSFdfRkVBVF9BRERNQUMpIFx1MDAzZVx1MDAzZSAxODtcbiYjNDM7XHRkbWFfY2FwLVx1MDAzZWFkZGl0aW9uYWxfMzJfYWRkciA9IChod19jYXAgXHUwMDI2IEdNQUNfSFdfRkVBVF9NQUNBRFIzMlNFTCkgXHUwMDNlXHUwMDNlIDIzO1xuJiM0MztcdGRtYV9jYXAtXHUwMDNlYWRkaXRpb25hbF82NF9hZGRyID0gKGh3X2NhcCBcdTAwMjYgR01BQ19IV19GRUFUX01BQ0FEUjY0U0VMKSBcdTAwM2VcdTAwM2UgMjQ7XG4gXHRkbWFfY2FwLVx1MDAzZXBjcyA9IChod19jYXAgXHUwMDI2IEdNQUNfSFdfRkVBVF9QQ1NTRUwpIFx1MDAzZVx1MDAzZSAzO1xuIFx0ZG1hX2NhcC1cdTAwM2VzbWFfbWRpbyA9IChod19jYXAgXHUwMDI2IEdNQUNfSFdfRkVBVF9TTUFTRUwpIFx1MDAzZVx1MDAzZSA1O1xuIFx0ZG1hX2NhcC1cdTAwM2VwbXRfcmVtb3RlX3dha2VfdXAgPSAoaHdfY2FwIFx1MDAyNiBHTUFDX0hXX0ZFQVRfUldLU0VMKSBcdTAwM2VcdTAwM2UgNjtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuaW5kZXggZjJmYzg5MTc2NjU0ZS4uODA0MTNiYThkZjU1ZSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbkBAIC02NTgwLDYgJiM0Mzs2NTgwLDE4IEBAIHN0YXRpYyBpbnQgc3RtbWFjX2RtYV9jYXBfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdilcbiBcdFx0c2VxX3ByaW50ZihzZXEsXG4gXHRcdFx0ICAgXCYjMzQ7XFx0TnVtYmVyIG9mIEFkZGl0aW9uYWwgTUFDIGFkZHJlc3MgcmVnaXN0ZXJzOiAlZFxcblwmIzM0OyxcbiBcdFx0XHQgICBwcml2LVx1MDAzZWRtYV9jYXAubXVsdGlfYWRkcik7XG4mIzQzO1x0fSBlbHNlIGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQzQpIHtcbiYjNDM7XHRcdHNlcV9wcmludGYoc2VxLFxuJiM0MztcdFx0XHQgICBcJiMzNDtcXHROdW1iZXIgb2YgTUFDIGFkZHJlc3MgcmVnaXN0ZXJzICgxLTMxKTogJWRcXG5cJiMzNDssXG4mIzQzO1x0XHRcdCAgIHByaXYtXHUwMDNlZG1hX2NhcC5tdWx0aV9hZGRyKTtcbiYjNDM7XHRcdHNlcV9wcmludGYoc2VxLFxuJiM0MztcdFx0XHQgICBcJiMzNDtcXHRBZGRpdGlvbmFsIDMyIE1BQyBhZGRyZXNzIHJlZ2lzdGVycyAoMzItNjMpOiAlc1xcblwmIzM0OyxcbiYjNDM7XHRcdFx0ICAgcHJpdi1cdTAwM2VkbWFfY2FwLmFkZGl0aW9uYWxfMzJfYWRkciA/IFwmIzM0O1lcJiMzNDsgOiBcJiMzNDtOXCYjMzQ7KTtcbiYjNDM7XHRcdHNlcV9wcmludGYoc2VxLFxuJiM0MztcdFx0XHQgICBcJiMzNDtcXHRBZGRpdGlvbmFsIDY0IE1BQyBhZGRyZXNzIHJlZ2lzdGVycyAoNjQtMTI3KTogJXNcXG5cJiMzNDssXG4mIzQzO1x0XHRcdCAgIHByaXYtXHUwMDNlZG1hX2NhcC5hZGRpdGlvbmFsXzY0X2FkZHIgPyBcJiMzNDtZXCYjMzQ7IDogXCYjMzQ7TlwmIzM0Oyk7XG4mIzQzO1x0XHRzZXFfcHJpbnRmKHNlcSwgXCYjMzQ7XFx0SGFzaCBGaWx0ZXI6ICVzXFxuXCYjMzQ7LFxuJiM0MztcdFx0XHQgICAocHJpdi1cdTAwM2VkbWFfY2FwLmhhc2hfZmlsdGVyKSA/IFwmIzM0O1lcJiMzNDsgOiBcJiMzNDtOXCYjMzQ7KTtcbiBcdH0gZWxzZSB7XG4gXHRcdHNlcV9wcmludGYoc2VxLCBcJiMzNDtcXHRIYXNoIEZpbHRlcjogJXNcXG5cJiMzNDssXG4gXHRcdFx0ICAgKHByaXYtXHUwMDNlZG1hX2NhcC5oYXNoX2ZpbHRlcikgPyBcJiMzNDtZXCYjMzQ7IDogXCYjMzQ7TlwmIzM0Oyk7XG5AQCAtNzQ4MCw2ICYjNDM7NzQ5MiwzMyBAQCBzdGF0aWMgaW50IHN0bW1hY19od19pbml0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbiBcdFx0cHJpdi1cdTAwM2VwbGF0LVx1MDAzZXR4X2ZpZm9fc2l6ZSA9IHByaXYtXHUwMDNlZG1hX2NhcC50eF9maWZvX3NpemU7XG4gXHR9XG4gXG4mIzQzO1x0LyogT24gRFdNQUM0IHdlIGNhbiBnZXQgdGhlIGV4YWN0IG51bWJlciBvZiBwZXJmZWN0IGZpbHRlciBlbnRyaWVzIGZyb21cbiYjNDM7XHQgKiB0aGUgSFdfRmVhdHVyZXMuXG4mIzQzO1x0ICovXG4mIzQzO1x0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNCkge1xuJiM0MztcdFx0cHJpdi1cdTAwM2Vody1cdTAwM2VtdWx0aV9hZGRyID0gcHJpdi1cdTAwM2VkbWFfY2FwLm11bHRpX2FkZHI7XG4mIzQzO1x0XHRwcml2LVx1MDAzZWh3LVx1MDAzZWFkZGl0aW9uYWxfMzJfYWRkciA9XG4mIzQzO1x0XHRcdCEhcHJpdi1cdTAwM2VkbWFfY2FwLmFkZGl0aW9uYWxfMzJfYWRkcjtcbiYjNDM7XHRcdHByaXYtXHUwMDNlaHctXHUwMDNlYWRkaXRpb25hbF82NF9hZGRyID1cbiYjNDM7XHRcdFx0ISFwcml2LVx1MDAzZWRtYV9jYXAuYWRkaXRpb25hbF82NF9hZGRyO1xuJiM0MztcbiYjNDM7XHRcdC8qIFdlIGFsd2F5cyBoYXZlIG9uZSBzbG90IGZvciB0aGUgcHJpbWFyeSBNQUMgKi9cbiYjNDM7XHRcdHByaXYtXHUwMDNlaHctXHUwMDNldW5pY2FzdF9maWx0ZXJfZW50cmllcyA9IDE7XG4mIzQzO1xuJiM0MztcdFx0LyogSG93IG1hbnkgc2xvdHMgaW4gdGhlIDEgLVx1MDAzZSAzMSByYW5nZSAqL1xuJiM0MztcdFx0cHJpdi1cdTAwM2Vody1cdTAwM2V1bmljYXN0X2ZpbHRlcl9lbnRyaWVzICYjNDM7PSBwcml2LVx1MDAzZWh3LVx1MDAzZW11bHRpX2FkZHI7XG4mIzQzO1xuJiM0MztcdFx0LyogQWRkaXRpb25hbCAzMiBlbnRyaWVzIGluIHRoZSAzMiAtXHUwMDNlIDYzIHJhbmdlICovXG4mIzQzO1x0XHRpZiAocHJpdi1cdTAwM2Vody1cdTAwM2VhZGRpdGlvbmFsXzMyX2FkZHIpXG4mIzQzO1x0XHRcdHByaXYtXHUwMDNlaHctXHUwMDNldW5pY2FzdF9maWx0ZXJfZW50cmllcyAmIzQzOz0gMzI7XG4mIzQzO1xuJiM0MztcdFx0LyogQWRkaXRpb25hbCA2NCBlbnRyaWVzIGluIHRoZSA2NCAtXHUwMDNlIDEyNyByYW5nZSwgY2FuIGJlIGVuYWJsZWRcbiYjNDM7XHRcdCAqIGluZGVwZW5kZW50bHkgb2YgdGhlIDMyIC1cdTAwM2UgNjMgcmFuZ2VcbiYjNDM7XHRcdCAqL1xuJiM0MztcdFx0aWYgKHByaXYtXHUwMDNlaHctXHUwMDNlYWRkaXRpb25hbF82NF9hZGRyKVxuJiM0MztcdFx0XHRwcml2LVx1MDAzZWh3LVx1MDAzZXVuaWNhc3RfZmlsdGVyX2VudHJpZXMgJiM0Mzs9IDY0O1xuJiM0MztcdH1cbiYjNDM7XG4gXHRwcml2LVx1MDAzZWh3LVx1MDAzZXZsYW5fZmFpbF9xX2VuID1cbiBcdFx0KHByaXYtXHUwMDNlcGxhdC1cdTAwM2VmbGFncyBcdTAwMjYgU1RNTUFDX0ZMQUdfVkxBTl9GQUlMX1FfRU4pO1xuIFx0cHJpdi1cdTAwM2Vody1cdTAwM2V2bGFuX2ZhaWxfcSA9IHByaXYtXHUwMDNlcGxhdC1cdTAwM2V2bGFuX2ZhaWxfcTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAwNzozMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMgNCAoRFdNQUM0KSB1bmljYXN0IGZpbHRlciBjb25maWd1cmF0aW9uIGFuZCBoYXJkd2FyZSBmZWF0dXJlIGRldGVjdGlvbiBpbiB0aGUgU1RNTUFDIGV0aGVybmV0IGRyaXZlci4gRFdNQUM0IGNvbnRyb2xsZXJzIGFyZSBlbWJlZGRlZCBpbiBwaHlzaWNhbCBTb0NzIChlLmcuLCBJbnRlbCBFbGtoYXJ0IExha2UsIFF1YWxjb21tIEVUSFFPUywgTlhQIFMzMikgYW5kIFBDSSBkZXZpY2VzIHRoYXQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGNsb3VkIGVudmlyb25tZW50cyAoR0NFKS4gQ29uc2VxdWVudGx5LCB0aGVzZSBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBiZjQ2ZmZmNTY1ZTA3YWY0NTFhODkzOTM4YThiNjI1ODUwNDYwNmVjCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBBdWcgMzEgMDc6MzA6MjkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oCmluZGV4IDkyN2VhNjIzMDA3M2YuLjE3MjlmYjI5ZWNlMzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oCkBAIC00MTksNiAmIzQzOzQxOSw4IEBAIHN0cnVjdCBkbWFfZmVhdHVyZXMgewogCXVuc2lnbmVkIGludCBoYWxmX2R1cGxleDsKIAl1bnNpZ25lZCBpbnQgaGFzaF9maWx0ZXI7CiAJdW5zaWduZWQgaW50IG11bHRpX2FkZHI7CiYjNDM7CXVuc2lnbmVkIGludCBhZGRpdGlvbmFsXzMyX2FkZHI7CiYjNDM7CXVuc2lnbmVkIGludCBhZGRpdGlvbmFsXzY0X2FkZHI7CiAJdW5zaWduZWQgaW50IHBjczsKIAl1bnNpZ25lZCBpbnQgc21hX21kaW87CiAJdW5zaWduZWQgaW50IHBtdF9yZW1vdGVfd2FrZV91cDsKQEAgLTYyNyw2ICYjNDM7NjI5LDcgQEAgc3RydWN0IG1hY19kZXZpY2VfaW5mbyB7CiAJdm9pZCBfX2lvbWVtICpwY3NyOyAgICAgLyogdnBvaW50ZXIgdG8gZGV2aWNlIENTUnMgKi8KIAl1bnNpZ25lZCBpbnQgbXVsdGljYXN0X2ZpbHRlcl9iaW5zOwogCXVuc2lnbmVkIGludCB1bmljYXN0X2ZpbHRlcl9lbnRyaWVzOwomIzQzOwl1bnNpZ25lZCBpbnQgbXVsdGlfYWRkcjsKIAl1bnNpZ25lZCBpbnQgbWNhc3RfYml0c19sb2cyOwogCXVuc2lnbmVkIGludCByeF9jc3VtOwogCXVuc2lnbmVkIGludCBudW1fdmxhbjsKQEAgLTYzNSw2ICYjNDM7NjM4LDggQEAgc3RydWN0IG1hY19kZXZpY2VfaW5mbyB7CiAJdTggdmxhbl9mYWlsX3E7CiAJYm9vbCBod192bGFuX2VuOwogCWJvb2wgcmV2ZXJzZV9zZ21paV9lbmFibGU7CiYjNDM7CWJvb2wgYWRkaXRpb25hbF8zMl9hZGRyOwomIzQzOwlib29sIGFkZGl0aW9uYWxfNjRfYWRkcjsKIAogCS8qIFRoaXMgc3BpbmxvY2sgcHJvdGVjdHMgcmVhZC1tb2RpZnktd3JpdGUgb2YgdGhlIGludGVycnVwdAogCSAqIG1hc2svZW5hYmxlIHJlZ2lzdGVycy4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0LmgKaW5kZXggNjM4MjgzNjgyOGJhYy4uNjk2ODQ2NTMxMjI5NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0LmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0LmgKQEAgLTc1LDggJiM0Mzs3NSw2IEBACiAjZGVmaW5lIEdNQUNfUEFDS0VUX0ZJTFRFUl9JUEZFCQlCSVQoMjApCiAjZGVmaW5lIEdNQUNfUEFDS0VUX0ZJTFRFUl9SQQkJQklUKDMxKQogCi0jZGVmaW5lIEdNQUNfTUFYX1BFUkZFQ1RfQUREUkVTU0VTCTEyOAotCiAvKiBNQUMgUlggUXVldWUgRW5hYmxlICovCiAjZGVmaW5lIEdNQUNfUlhfUVVFVUVfQ0xFQVIocXVldWUpCX4oR0VOTUFTSygxLCAwKSAmbHQ7Jmx0OyAoKHF1ZXVlKSAqIDIpKQogI2RlZmluZSBHTUFDX1JYX0FWX1FVRVVFX0VOQUJMRShxdWV1ZSkJQklUKChxdWV1ZSkgKiAyKQpAQCAtMTc2LDcgJiM0MzsxNzQsOSBAQCBlbnVtIHBvd2VyX2V2ZW50IHsKIAogLyogTUFDIEhXIGZlYXR1cmVzMCBiaXRtYXAgKi8KICNkZWZpbmUgR01BQ19IV19GRUFUX1NBVkxBTklOUwkJQklUKDI3KQotI2RlZmluZSBHTUFDX0hXX0ZFQVRfQURETUFDCQlCSVQoMTgpCiYjNDM7I2RlZmluZSBHTUFDX0hXX0ZFQVRfTUFDQURSNjRTRUwJQklUKDI0KQomIzQzOyNkZWZpbmUgR01BQ19IV19GRUFUX01BQ0FEUjMyU0VMCUJJVCgyMykKJiM0MzsjZGVmaW5lIEdNQUNfSFdfRkVBVF9BRERNQUMJCUdFTk1BU0soMjIsIDE4KQogI2RlZmluZSBHTUFDX0hXX0ZFQVRfUlhDT0VTRUwJCUJJVCgxNikKICNkZWZpbmUgR01BQ19IV19GRUFUX1RYQ09TRUwJCUJJVCgxNCkKICNkZWZpbmUgR01BQ19IV19GRUFUX0VFRVNFTAkJQklUKDEzKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2NvcmUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9jb3JlLmMKaW5kZXggMThiMzU3YjI1N2NjMC4uZmI1Yjk2YTQzNTA1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2NvcmUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzRfY29yZS5jCkBAIC0zNjUsMjIgJiM0MzszNjUsNjMgQEAgc3RhdGljIHZvaWQgZHdtYWM0X3BtdChzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdW5zaWduZWQgbG9uZyBtb2RlKQogCXdyaXRlbChwbXQsIGlvYWRkciAmIzQzOyBHTUFDX1BNVCk7CiB9CiAKJiM0MzsvKioKJiM0MzsgKiBkd21hYzRfdW1hY19hZGRyX3Nsb3QgLSBHZXQgdGhlIFVDIGZpbHRlciBzbG90IGZvciB0aGUgTnRoIE1BQyBhZGRyZXNzCiYjNDM7ICogQGh3OiBUaGUgTUFDIGRldmljZSBpbmZvCiYjNDM7ICogQHJlZ19uOiBUaGUgTUFDIGFkZHJlc3MmIzM5O3MgaW5kZXggaW4gdGhlIFVDIGxpc3QKJiM0MzsgKgomIzQzOyAqIE9uIGR3bWFjNCB0aGUgc2xvdHMgYXZhaWxhYmxlIGZvciBVbmljYXN0IE1BQyBmaWx0ZXJpbmcgYXJlIGNvbmZpZ3VyZWQgd2hlbgomIzQzOyAqIGludGVncmF0aW5nIHRoZSBJUC4KJiM0MzsgKgomIzQzOyAqICAtIFNsb3QgMCBpcyBhbHdheXMgYXZhaWxhYmxlLCB1c2VkIHRvIHN0b3JlIHRoZSBwcmltYXJ5IE1BQyBhZGRyZXNzCiYjNDM7ICogIC0gRnJvbSAxIHRvIDMxLCB0aGUgbnVtYmVyIG9mIGltcGxlbWVudGVkIHNsb3RzIGlzIHNldCBpbiBody0mZ3Q7bXVsdGlfYWRkcgomIzQzOyAqICAtIEZyb20gMzIgdG8gNjMsIHRoZSByYW5nZSBpcyBhdmFpbGFibGUgaWYgaHctJmd0O2FkZGl0aW9uYWxfMzJfYWRkcgomIzQzOyAqICAgIGlzIHNldAomIzQzOyAqICAtIEZyb20gNjQgdG8gMTI3LCB0aGUgcmFuZ2UgaXMgYXZhaWxhYmxlIGlmIGh3LSZndDthZGRpdGlvbmFsXzY0X2FkZHIgaXMgc2V0CiYjNDM7ICoKJiM0MzsgKiBBbGwgdGhlIHJhbmdlcyBjYW4gYmUgY29uZmlndXJlZCBpbmRlcGVuZGVudGx5IChlLmcuIDY0IC0mZ3Q7IDEyNyBjYW4gYmUKJiM0MzsgKiBhdmFpbGFibGUsIGJ1dCBub3QgMzIgLSZndDsgNjMpCiYjNDM7ICoKJiM0MzsgKiBSZXR1cm5zOiBUaGUgcGh5c2ljYWwgc2xvdCBpbmRleCBpbiB0aGUgVUMgZmlsdGVyCiYjNDM7ICovCiYjNDM7c3RhdGljIHVuc2lnbmVkIGludCBkd21hYzRfdW1hY19hZGRyX3Nsb3Qoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsCiYjNDM7CQkJCQkgIHVuc2lnbmVkIGludCByZWdfbikKJiM0Mzt7CiYjNDM7CXVuc2lnbmVkIGludCBlbXB0eV9zbG90cyA9IDA7CiYjNDM7CiYjNDM7CS8qIHJlZ19uIGlzIGluIHRoZSAxLTMxIGJhbmsgOiAxIHRvIDEgbWFwcGluZyAqLwomIzQzOwlpZiAocmVnX24gJmx0OyAoaHctJmd0O211bHRpX2FkZHIgJiM0MzsgMSkpCiYjNDM7CQlyZXR1cm4gcmVnX247CiYjNDM7CiYjNDM7CS8qIEdhcCBiZXR3ZWVuIHRoZSBsYXN0IGFkZHJlc3MgaW4gdGhlIDEtJmd0OzMxIHJhbmdlIGFuZCB0aGUgbmV4dCBzbG90ICovCiYjNDM7CWlmIChody0mZ3Q7YWRkaXRpb25hbF8zMl9hZGRyKQomIzQzOwkJZW1wdHlfc2xvdHMgPSAzMiAtIChody0mZ3Q7bXVsdGlfYWRkciAmIzQzOyAxKTsKJiM0MzsJZWxzZSBpZiAoaHctJmd0O2FkZGl0aW9uYWxfNjRfYWRkcikKJiM0MzsJCWVtcHR5X3Nsb3RzID0gNjQgLSAoaHctJmd0O211bHRpX2FkZHIgJiM0MzsgMSk7CiYjNDM7CiYjNDM7CXJldHVybiByZWdfbiAmIzQzOyBlbXB0eV9zbG90czsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgdm9pZCBkd21hYzRfc2V0X3VtYWNfYWRkcihzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywKIAkJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqYWRkciwgdW5zaWduZWQgaW50IHJlZ19uKQogewogCXZvaWQgX19pb21lbSAqaW9hZGRyID0gaHctJmd0O3Bjc3I7CiYjNDM7CXVuc2lnbmVkIGludCBzbG90OwogCi0Jc3RtbWFjX2R3bWFjNF9zZXRfbWFjX2FkZHIoaW9hZGRyLCBhZGRyLCBHTUFDX0FERFJfSElHSChyZWdfbiksCi0JCQkJICAgR01BQ19BRERSX0xPVyhyZWdfbikpOwomIzQzOwlzbG90ID0gZHdtYWM0X3VtYWNfYWRkcl9zbG90KGh3LCByZWdfbik7CiYjNDM7CXN0bW1hY19kd21hYzRfc2V0X21hY19hZGRyKGlvYWRkciwgYWRkciwgR01BQ19BRERSX0hJR0goc2xvdCksCiYjNDM7CQkJCSAgIEdNQUNfQUREUl9MT1coc2xvdCkpOwogfQogCiBzdGF0aWMgdm9pZCBkd21hYzRfZ2V0X3VtYWNfYWRkcihzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywKIAkJCQkgdW5zaWduZWQgY2hhciAqYWRkciwgdW5zaWduZWQgaW50IHJlZ19uKQogewogCXZvaWQgX19pb21lbSAqaW9hZGRyID0gaHctJmd0O3Bjc3I7CiYjNDM7CXVuc2lnbmVkIGludCBzbG90OwogCi0Jc3RtbWFjX2dldF9tYWNfYWRkcihpb2FkZHIsIGFkZHIsIEdNQUNfQUREUl9ISUdIKHJlZ19uKSwKLQkJCSAgICBHTUFDX0FERFJfTE9XKHJlZ19uKSk7CiYjNDM7CXNsb3QgPSBkd21hYzRfdW1hY19hZGRyX3Nsb3QoaHcsIHJlZ19uKTsKJiM0MzsJc3RtbWFjX2dldF9tYWNfYWRkcihpb2FkZHIsIGFkZHIsIEdNQUNfQUREUl9ISUdIKHNsb3QpLAomIzQzOwkJCSAgICBHTUFDX0FERFJfTE9XKHNsb3QpKTsKIH0KIAogc3RhdGljIGludCBkd21hYzRfc2V0X2xwaV9tb2RlKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LApAQCAtNTIyLDkgJiM0Mzs1NjMsNiBAQCBzdGF0aWMgdm9pZCBkd21hYzRfc2V0X2ZpbHRlcihzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywKIAogCS8qIEhhbmRsZSBtdWx0aXBsZSB1bmljYXN0IGFkZHJlc3NlcyAqLwogCWlmIChuZXRkZXZfdWNfY291bnQoZGV2KSAmIzQzOyAxICZndDsgaHctJmd0O3VuaWNhc3RfZmlsdGVyX2VudHJpZXMpIHsKLQkJLyogU3dpdGNoIHRvIHByb21pc2N1b3VzIG1vZGUgaWYgbW9yZSB0aGFuIDEyOCBhZGRycwotCQkgKiBhcmUgcmVxdWlyZWQKLQkJICovCiAJCXZhbHVlIHw9IEdNQUNfUEFDS0VUX0ZJTFRFUl9QUjsKIAl9IGVsc2UgewogCQlzdHJ1Y3QgbmV0ZGV2X2h3X2FkZHIgKmhhOwpAQCAtNTM1LDkgJiM0Mzs1NzMsMTEgQEAgc3RhdGljIHZvaWQgZHdtYWM0X3NldF9maWx0ZXIoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsCiAJCQlyZWcmIzQzOyYjNDM7OwogCQl9CiAKLQkJd2hpbGUgKHJlZyAmbHQ7IEdNQUNfTUFYX1BFUkZFQ1RfQUREUkVTU0VTKSB7Ci0JCQl3cml0ZWwoMCwgaW9hZGRyICYjNDM7IEdNQUNfQUREUl9ISUdIKHJlZykpOwotCQkJd3JpdGVsKDAsIGlvYWRkciAmIzQzOyBHTUFDX0FERFJfTE9XKHJlZykpOwomIzQzOwkJd2hpbGUgKHJlZyAmbHQ7IGh3LSZndDt1bmljYXN0X2ZpbHRlcl9lbnRyaWVzKSB7CiYjNDM7CQkJdW5zaWduZWQgaW50IHNsb3QgPSBkd21hYzRfdW1hY19hZGRyX3Nsb3QoaHcsIHJlZyk7CiYjNDM7CiYjNDM7CQkJd3JpdGVsKDAsIGlvYWRkciAmIzQzOyBHTUFDX0FERFJfSElHSChzbG90KSk7CiYjNDM7CQkJd3JpdGVsKDAsIGlvYWRkciAmIzQzOyBHTUFDX0FERFJfTE9XKHNsb3QpKTsKIAkJCXJlZyYjNDM7JiM0Mzs7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzRfZG1hLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzRfZG1hLmMKaW5kZXggMjNmZmUxYWRjZDBkMy4uMTRhYzNmMGU1MWY3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2RtYS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9kbWEuYwpAQCAtMzg4LDYgJiM0MzszODgsOCBAQCBzdGF0aWMgaW50IGR3bWFjNF9nZXRfaHdfZmVhdHVyZSh2b2lkIF9faW9tZW0gKmlvYWRkciwKIAlkbWFfY2FwLSZndDtoYWxmX2R1cGxleCA9IChod19jYXAgJmFtcDsgR01BQ19IV19GRUFUX0hEU0VMKSAmZ3Q7Jmd0OyAyOwogCWRtYV9jYXAtJmd0O3ZsaGFzaCA9IChod19jYXAgJmFtcDsgR01BQ19IV19GRUFUX1ZMSEFTSCkgJmd0OyZndDsgNDsKIAlkbWFfY2FwLSZndDttdWx0aV9hZGRyID0gKGh3X2NhcCAmYW1wOyBHTUFDX0hXX0ZFQVRfQURETUFDKSAmZ3Q7Jmd0OyAxODsKJiM0MzsJZG1hX2NhcC0mZ3Q7YWRkaXRpb25hbF8zMl9hZGRyID0gKGh3X2NhcCAmYW1wOyBHTUFDX0hXX0ZFQVRfTUFDQURSMzJTRUwpICZndDsmZ3Q7IDIzOwomIzQzOwlkbWFfY2FwLSZndDthZGRpdGlvbmFsXzY0X2FkZHIgPSAoaHdfY2FwICZhbXA7IEdNQUNfSFdfRkVBVF9NQUNBRFI2NFNFTCkgJmd0OyZndDsgMjQ7CiAJZG1hX2NhcC0mZ3Q7cGNzID0gKGh3X2NhcCAmYW1wOyBHTUFDX0hXX0ZFQVRfUENTU0VMKSAmZ3Q7Jmd0OyAzOwogCWRtYV9jYXAtJmd0O3NtYV9tZGlvID0gKGh3X2NhcCAmYW1wOyBHTUFDX0hXX0ZFQVRfU01BU0VMKSAmZ3Q7Jmd0OyA1OwogCWRtYV9jYXAtJmd0O3BtdF9yZW1vdGVfd2FrZV91cCA9IChod19jYXAgJmFtcDsgR01BQ19IV19GRUFUX1JXS1NFTCkgJmd0OyZndDsgNjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCmluZGV4IGYyZmM4OTE3NjY1NGUuLjgwNDEzYmE4ZGY1NWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYwpAQCAtNjU4MCw2ICYjNDM7NjU4MCwxOCBAQCBzdGF0aWMgaW50IHN0bW1hY19kbWFfY2FwX3Nob3coc3RydWN0IHNlcV9maWxlICpzZXEsIHZvaWQgKnYpCiAJCXNlcV9wcmludGYoc2VxLAogCQkJICAgJiMzNDtcdE51bWJlciBvZiBBZGRpdGlvbmFsIE1BQyBhZGRyZXNzIHJlZ2lzdGVyczogJWRcbiYjMzQ7LAogCQkJICAgcHJpdi0mZ3Q7ZG1hX2NhcC5tdWx0aV9hZGRyKTsKJiM0MzsJfSBlbHNlIGlmIChwcml2LSZndDtwbGF0LSZndDtjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNCkgewomIzQzOwkJc2VxX3ByaW50ZihzZXEsCiYjNDM7CQkJICAgJiMzNDtcdE51bWJlciBvZiBNQUMgYWRkcmVzcyByZWdpc3RlcnMgKDEtMzEpOiAlZFxuJiMzNDssCiYjNDM7CQkJICAgcHJpdi0mZ3Q7ZG1hX2NhcC5tdWx0aV9hZGRyKTsKJiM0MzsJCXNlcV9wcmludGYoc2VxLAomIzQzOwkJCSAgICYjMzQ7XHRBZGRpdGlvbmFsIDMyIE1BQyBhZGRyZXNzIHJlZ2lzdGVycyAoMzItNjMpOiAlc1xuJiMzNDssCiYjNDM7CQkJICAgcHJpdi0mZ3Q7ZG1hX2NhcC5hZGRpdGlvbmFsXzMyX2FkZHIgPyAmIzM0O1kmIzM0OyA6ICYjMzQ7TiYjMzQ7KTsKJiM0MzsJCXNlcV9wcmludGYoc2VxLAomIzQzOwkJCSAgICYjMzQ7XHRBZGRpdGlvbmFsIDY0IE1BQyBhZGRyZXNzIHJlZ2lzdGVycyAoNjQtMTI3KTogJXNcbiYjMzQ7LAomIzQzOwkJCSAgIHByaXYtJmd0O2RtYV9jYXAuYWRkaXRpb25hbF82NF9hZGRyID8gJiMzNDtZJiMzNDsgOiAmIzM0O04mIzM0Oyk7CiYjNDM7CQlzZXFfcHJpbnRmKHNlcSwgJiMzNDtcdEhhc2ggRmlsdGVyOiAlc1xuJiMzNDssCiYjNDM7CQkJICAgKHByaXYtJmd0O2RtYV9jYXAuaGFzaF9maWx0ZXIpID8gJiMzNDtZJiMzNDsgOiAmIzM0O04mIzM0Oyk7CiAJfSBlbHNlIHsKIAkJc2VxX3ByaW50ZihzZXEsICYjMzQ7XHRIYXNoIEZpbHRlcjogJXNcbiYjMzQ7LAogCQkJICAgKHByaXYtJmd0O2RtYV9jYXAuaGFzaF9maWx0ZXIpID8gJiMzNDtZJiMzNDsgOiAmIzM0O04mIzM0Oyk7CkBAIC03NDgwLDYgJiM0Mzs3NDkyLDMzIEBAIHN0YXRpYyBpbnQgc3RtbWFjX2h3X2luaXQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KQogCQlwcml2LSZndDtwbGF0LSZndDt0eF9maWZvX3NpemUgPSBwcml2LSZndDtkbWFfY2FwLnR4X2ZpZm9fc2l6ZTsKIAl9CiAKJiM0MzsJLyogT24gRFdNQUM0IHdlIGNhbiBnZXQgdGhlIGV4YWN0IG51bWJlciBvZiBwZXJmZWN0IGZpbHRlciBlbnRyaWVzIGZyb20KJiM0MzsJICogdGhlIEhXX0ZlYXR1cmVzLgomIzQzOwkgKi8KJiM0MzsJaWYgKHByaXYtJmd0O3BsYXQtJmd0O2NvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KSB7CiYjNDM7CQlwcml2LSZndDtody0mZ3Q7bXVsdGlfYWRkciA9IHByaXYtJmd0O2RtYV9jYXAubXVsdGlfYWRkcjsKJiM0MzsJCXByaXYtJmd0O2h3LSZndDthZGRpdGlvbmFsXzMyX2FkZHIgPQomIzQzOwkJCSEhcHJpdi0mZ3Q7ZG1hX2NhcC5hZGRpdGlvbmFsXzMyX2FkZHI7CiYjNDM7CQlwcml2LSZndDtody0mZ3Q7YWRkaXRpb25hbF82NF9hZGRyID0KJiM0MzsJCQkhIXByaXYtJmd0O2RtYV9jYXAuYWRkaXRpb25hbF82NF9hZGRyOwomIzQzOwomIzQzOwkJLyogV2UgYWx3YXlzIGhhdmUgb25lIHNsb3QgZm9yIHRoZSBwcmltYXJ5IE1BQyAqLwomIzQzOwkJcHJpdi0mZ3Q7aHctJmd0O3VuaWNhc3RfZmlsdGVyX2VudHJpZXMgPSAxOwomIzQzOwomIzQzOwkJLyogSG93IG1hbnkgc2xvdHMgaW4gdGhlIDEgLSZndDsgMzEgcmFuZ2UgKi8KJiM0MzsJCXByaXYtJmd0O2h3LSZndDt1bmljYXN0X2ZpbHRlcl9lbnRyaWVzICYjNDM7PSBwcml2LSZndDtody0mZ3Q7bXVsdGlfYWRkcjsKJiM0MzsKJiM0MzsJCS8qIEFkZGl0aW9uYWwgMzIgZW50cmllcyBpbiB0aGUgMzIgLSZndDsgNjMgcmFuZ2UgKi8KJiM0MzsJCWlmIChwcml2LSZndDtody0mZ3Q7YWRkaXRpb25hbF8zMl9hZGRyKQomIzQzOwkJCXByaXYtJmd0O2h3LSZndDt1bmljYXN0X2ZpbHRlcl9lbnRyaWVzICYjNDM7PSAzMjsKJiM0MzsKJiM0MzsJCS8qIEFkZGl0aW9uYWwgNjQgZW50cmllcyBpbiB0aGUgNjQgLSZndDsgMTI3IHJhbmdlLCBjYW4gYmUgZW5hYmxlZAomIzQzOwkJICogaW5kZXBlbmRlbnRseSBvZiB0aGUgMzIgLSZndDsgNjMgcmFuZ2UKJiM0MzsJCSAqLwomIzQzOwkJaWYgKHByaXYtJmd0O2h3LSZndDthZGRpdGlvbmFsXzY0X2FkZHIpCiYjNDM7CQkJcHJpdi0mZ3Q7aHctJmd0O3VuaWNhc3RfZmlsdGVyX2VudHJpZXMgJiM0Mzs9IDY0OwomIzQzOwl9CiYjNDM7CiAJcHJpdi0mZ3Q7aHctJmd0O3ZsYW5fZmFpbF9xX2VuID0KIAkJKHByaXYtJmd0O3BsYXQtJmd0O2ZsYWdzICZhbXA7IFNUTU1BQ19GTEFHX1ZMQU5fRkFJTF9RX0VOKTsKIAlwcml2LSZndDtody0mZ3Q7dmxhbl9mYWlsX3EgPSBwcml2LSZndDtwbGF0LSZndDt2bGFuX2ZhaWxfcTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMDc6MzA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTU4NQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDIxNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIHN0bW1hYyBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGNsZWFybHkgZGlnZ2luZyBpbnRvIHRoZSBgc3RtbWFjYCBkcml2ZXIg4oCTIHRoYXQmIzM5O3MgdGhlIFNUTWljcm9lbGVjdHJvbmljcyBNdWx0aS1DaGFubmVsIEV0aGVybmV0IE1BQyBkcml2ZXIuIEl0JiMzOTtzIHRvdWNoaW5nIHNvbWUga2V5IGZpbGVzOiBgY29tbW9uLmhgLCBgZHdtYWM0LmhgLCBhbmQgdGhlIGNvcmUgaW1wbGVtZW50YXRpb24gZmlsZXMgbGlrZSBgZHdtYWM0X2NvcmUuY2AsIGBkd21hYzRfZG1hLmNgLCBhbmQgdGhlIG1haW4gZHJpdmVyIGZpbGUgYHN0bW1hY19tYWluLmNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCB0aGUgY29udGV4dCBvZiB0aGlzLiBJcyB0aGlzIHNvbWV0aGluZyBJIGNhbiBlYXNpbHkgdGVzdD8KCkkgbmVlZCB0byBxdWlja2x5IGFzc2VzcyB0aGUgZW11bGF0aW9uIHNpdHVhdGlvbi4gSXMgYHN0bW1hY2AgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVT8gT3IgZG9lcyB0aGlzIHJlcXVpcmUgc3BlY2lmaWMgaGFyZHdhcmUsIG9yIGF0IGxlYXN0IGEgc3BlY2lmaWMgcGxhdGZvcm0gY29uZmlndXJhdGlvbiBpbiBRRU1VIG9yIEdDRT8gSGFuZyBvbuKApiBiZWZvcmUgSSBnbyBkb3duIHRoYXQgcmFiYml0IGhvbGUsIEkgc2hvdWxkIGp1c3QgY29uZmlybSBob3cgaXQmIzM5O3MgKmFjdHVhbGx5KiB1c2VkIGluIHRoZSBrZXJuZWwuIExldCYjMzk7cyBzdGFydCB3aXRoIGEgcXVpY2sgc2VhcmNoIHRvIHBpbnBvaW50IGl0cyB1c2FnZSB0aHJvdWdob3V0IHRoZSBrZXJuZWwgc291cmNlLiBLbm93aW5nIHRoYXQgd2lsbCBnaXZlIG1lIGNvbnRleHQgYmVmb3JlIGRpZ2dpbmcgaW50byBlbXVsYXRpb24gZGV0YWlscy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAwNzozMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdG1tYWMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDExNTY5IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI5PWNvbmZpZyBTVE1NQUNfUExBVEZPUk1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzLVx0aGVscFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNDpcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1LVx0ICBUaGlzIGlzIHRoZSBkcml2ZXIgdXNlZCBvbiBzZXZlcmFsIFNvQ3M6XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz02MD1jb25maWcgRFdNQUNfQU5BUklPTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjY3Olx0ICBUaGlzIHNlbGVjdHMgdGhlIEFuYXJpb24gU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTY4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Nzg9Y29uZmlnIERXTUFDX0lOR0VOSUNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo4NjpcdCAgVGhpcyBzZWxlY3RzIEluZ2VuaWMgU29DcyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctODctXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBJbmdlbmljIFNvQ3Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTkwPWNvbmZpZyBEV01BQ19JUFE4MDZYXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6OTg6XHQgIFRoaXMgc2VsZWN0cyB0aGUgSVBRODA2eCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTk5LVx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBkb2VzIG5vdCB1c2UgYW55IG9mIHRoZSBoYXJkd2FyZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTE0PWNvbmZpZyBEV01BQ19NRURJQVRFS1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMjA6XHQgIFRoaXMgc2VsZWN0cyB0aGUgTVQyNzEyIFNvQyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMjI9Y29uZmlnIERXTUFDX01FU09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMjktXHQgIFRoaXMgc2VsZWN0cyB0aGUgQW1sb2dpYyBNZXNvbiBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMzA6XHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgTWVzb242LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMzEtXHQgIE1lc29uOCwgTWVzb244YiBhbmQgR1hCQiBTb0NzLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTMzPWNvbmZpZyBEV01BQ19OVVZPVE9OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNDEtXHQgIFRoaXMgc2VsZWN0cyB0aGUgTnV2b3RvbiBNQTM1IHNlcmllcyBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE0MjpcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhlIG51dm90b24tZHdtYWMgZHJpdmVyIGlzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE0My1cdCAgdXNlZCBmb3IgTUEzNSBzZXJpZXMgU29Dcy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE0NT1jb25maWcgRFdNQUNfUUNPTV9FVEhRT1Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE1Mi1cdCAgVGhpcyBzZWxlY3RzIHRoZSBRdWFsY29tbSBFVEhRT1MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTUzOlx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNTU9Y29uZmlnIERXTUFDX1JFTkVTQVNfR0JFVEhcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTY0Olx0ICBUaGlzIHNlbGVjdHMgUmVuZXNhcyBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRldmljZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNjUtXHQgIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFJaL1YySChQKSBmYW1pbHksIFJaL1QySCBhbmRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE2OD1jb25maWcgRFdNQUNfUk9DS0NISVBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3Ni1cdCAgVGhpcyBzZWxlY3RzIHRoZSBSb2NrY2hpcCBSSzMyODggU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTc3Olx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTc5PWNvbmZpZyBEV01BQ19SWk4xXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xODctXHQgIFRoaXMgc2VsZWN0cyB0aGUgUmVuZXNhcyBSWi9OMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxODg6XHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBzdXBwb3J0IGNhbiBtYWtlIHVzZSBvZiBhIGN1c3RvbSBNSUlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTg5LVx0ICBjb252ZXJ0ZXIgUENTIGRldmljZS5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE5MT1jb25maWcgRFdNQUNfUzMyXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xOTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE5ODpcdCAgVGhpcyBzZWxlY3RzIE5YUCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5OS1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFMzMkNDIHNlcmllc1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjAzPWNvbmZpZyBEV01BQ19TT0NGUEdBXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMTQtXHQgIFRoaXMgc2VsZWN0cyB0aGUgQWx0ZXJhIFNPQ0ZQR0EgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMTU6XHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxNi1cdCAgYXJyaWE1IGFuZCBjeWNsb25lNSBGUEdBIFNvQ3MuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMTg9Y29uZmlnIERXTUFDX1NPUEhHT1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjI1LVx0ICBUaGlzIHNlbGVjdHMgdGhlIFNvcGhnbyBTb0Mgc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIyNjpcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIyNy1cdCAgZXRoZXJuZXQgY29udHJvbGxlcnMgb24gdmFyaW91cyBTb3BoZ28gU29Dcy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIyOT1jb25maWcgRFdNQUNfU1BBQ0VNSVRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIzNy1cdCAgVGhpcyBzZWxlY3RzIHRoZSBTcGFjZW1pdCBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjM4Olx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjM5LVx0ICBTcGFjZW1pdCBLMyBldGhlcm5ldCBjb250cm9sbGVycy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI0MT1jb25maWcgRFdNQUNfU1RBUkZJVkVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI0OS1cdCAgVGhpcyBzZWxlY3RzIHRoZSBTdGFyRml2ZSBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjUwOlx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjUxLVx0ICBTdGFyRml2ZSBKSDcxMDAgYW5kIEpINzExMCBldGhlcm5ldCBjb250cm9sbGVycy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI1Mz1jb25maWcgRFdNQUNfU1RJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI2MTpcdCAgVGhpcyBzZWxlY3RzIFNUaSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI2Mi1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBvbiBmb3IgdGhlIFNUaSBzZXJpZXNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI2NT1jb25maWcgRFdNQUNfU1RNMzJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjczOlx0ICBUaGlzIHNlbGVjdHMgU1RNMzIgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzQtXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBTVE0zMiBzZXJpZXNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI3Nz1jb25maWcgRFdNQUNfU1VOWElcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI4NC1cdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjg1Olx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgQTIwL0EzMVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yODYtXHQgIEdNQUMgZXRoZXJuZXQgY29udHJvbGxlci5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI4OD1jb25maWcgRFdNQUNfU1VOOElcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI5Ni1cdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjk3Olx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSDMvQTgzVC9BNjRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjk4LVx0ICBFTUFDIGV0aGVybmV0IGNvbnRyb2xsZXIuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMDA9Y29uZmlnIERXTUFDX1NVTjU1SVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzA4LVx0ICBUaGlzIHNlbGVjdHMgQWxsd2lubmVyIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMDk6XHQgIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBBNTIzL1Q1MjdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzEwLVx0ICBHTUFDMjAwIGV0aGVybmV0IGNvbnRyb2xsZXIuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMTI9Y29uZmlnIERXTUFDX1RIRUFEXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMTgtXHQgIFRoaXMgc2VsZWN0cyB0aGUgVC1IRUFEIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzE5Olx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIFQtSEVBRCBUSDE1MjBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzIwLVx0ICBldGhlcm5ldCBjb250cm9sbGVyLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzIyPWNvbmZpZyBEV01BQ19JTVg4XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMzMDpcdCAgVGhpcyBzZWxlY3RzIE5YUCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzMS1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgaS5NWDggc2VyaWVzIGxpa2Vcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMzND1jb25maWcgRFdNQUNfSU5URUxfUExBVFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzQwLVx0ICBUaGlzIHNlbGVjdHMgdGhlIEludGVsIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzQxOlx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZSBJbnRlbCBLZWVtIEJheVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNDItXHQgIFNvQy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM0ND1jb25maWcgRFdNQUNfTE9PTkdTT04xXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM1MTpcdCAgVGhpcyBzZWxlY3RzIExvb25nc29uMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1Mi1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgTG9vbmdzb24xLWJhc2VkIGJvYXJkc1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzU1PWNvbmZpZyBEV01BQ19URUdSQVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzYwLVx0ICBmb3VuZCBvbiB0aGUgTlZJRElBIFRlZ3JhIFNvQyBkZXZpY2VzLiBUaGlzIGRyaXZlciBwcm92aWRlcyB0aGUgZ2x1ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNjE6XHQgIGxheWVyIG9uIHRvcCBvZiB0aGUgc3RtbWFjIGRyaXZlciByZXF1aXJlZCBmb3IgdGhlc2UgTlZJRElBIFRlZ3JhIFNvQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNjItXHQgIGRldmljZXMuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzM9Y29uZmlnIFNUTU1BQ19MSUJQQ0lcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3NS1cdGhlbHBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzc2Olx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBQQ0kgYnVzIGhlbHBlcnMgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM3OD1jb25maWcgRFdNQUNfSU5URUxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM4NS1cdCAgVGhpcyBzZWxlY3RzIHRoZSBJbnRlbCBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM4NjpcdCAgc3RtbWFjIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSW50ZWwgUXVhcmsvRUhML1RHTC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zODg9Y29uZmlnIERXTUFDX0xPT05HU09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTQtXHRoZWxwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM5NTpcdCAgVGhpcyBzZWxlY3RzIHRoZSBMT09OR1NPTiBQQ0kgYnVzIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTYtXHQgIFN1cHBvcnQgZm9yIGV0aGVybmV0IGNvbnRyb2xsZXIgb24gTG9vbmdzb24tMksxMDAwIFNvQyBhbmQgTFM3QTEwMDAgYnJpZGdlLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NDA3PWNvbmZpZyBTVE1NQUNfUENJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MTItXHRoZWxwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQxMzpcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQxNC1cdCAgVGhpcyBkcml2ZXIgd2FzIHRlc3RlZCBvbiBYTElOWCBYQzJWMzAwMCBGRjExNTJBTVQwMjIxXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyOm9iai0kKENPTkZJR19TVE1NQUNfRVRIKSAmIzQzOz0gc3RtbWFjLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjM6c3RtbWFjLW9ianM6PSBzdG1tYWNfbWFpbi5vIHN0bW1hY19ldGh0b29sLm8gc3RtbWFjX21kaW8ubyByaW5nX21vZGUub1x0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTQtXHQgICAgICBjaGFpbl9tb2RlLm8gZHdtYWNfbGliLm8gZHdtYWMxMDAwX2NvcmUubyBkd21hYzEwMDBfZG1hLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01LVx0ICAgICAgZHdtYWMxMDBfY29yZS5vIGR3bWFjMTAwX2RtYS5vIGVuaF9kZXNjLm8gbm9ybV9kZXNjLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo2Olx0ICAgICAgbW1jX2NvcmUubyBzdG1tYWNfaHd0c3RhbXAubyBzdG1tYWNfcHRwLm8gZHdtYWM0X2Rlc2NzLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS03LVx0ICAgICAgZHdtYWM0X2RtYS5vIGR3bWFjNF9saWIubyBkd21hYzRfY29yZS5vIGR3bWFjNS5vIGh3aWYubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6ODpcdCAgICAgIHN0bW1hY190Yy5vIGR3eGdtYWMyX2NvcmUubyBkd3hnbWFjMl9kbWEubyBkd3hnbWFjMl9kZXNjcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo5Olx0ICAgICAgc3RtbWFjX3hkcC5vIHN0bW1hY19lc3QubyBzdG1tYWNfZnBlLm8gc3RtbWFjX3ZsYW4ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTA6XHQgICAgICBzdG1tYWNfcGNzLm8gJChzdG1tYWMteSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTI6c3RtbWFjLSQoQ09ORklHX1NUTU1BQ19TRUxGVEVTVFMpICYjNDM7PSBzdG1tYWNfc2VsZnRlc3RzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMTQtIyBPcmRlcmluZyBtYXR0ZXJzLiBHZW5lcmljIGRyaXZlciBtdXN0IGJlIGxhc3QuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxNTpvYmotJChDT05GSUdfU1RNTUFDX1BMQVRGT1JNKVx0JiM0Mzs9IHN0bW1hYy1wbGF0Zm9ybS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xNi1vYmotJChDT05GSUdfRFdNQUNfQU5BUklPTilcdCYjNDM7PSBkd21hYy1hbmFyaW9uLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT00NT1vYmotJChDT05GSUdfRFdNQUNfVklTQ09OVEkpXHQmIzQzOz0gZHdtYWMtdmlzY29udGkub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDY6c3RtbWFjLXBsYXRmb3JtLW9ianM6PSBzdG1tYWNfcGxhdGZvcm0ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNDctZHdtYWMtYWx0ci1zb2NmcGdhLW9ianMgOj0gZHdtYWMtc29jZnBnYS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS00OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQ5Om9iai0kKENPTkZJR19TVE1NQUNfTElCUENJKVx0JiM0Mzs9IHN0bW1hY19saWJwY2kub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTA6b2JqLSQoQ09ORklHX1NUTU1BQ19QQ0kpXHQmIzQzOz0gc3RtbWFjLXBjaS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01MS1vYmotJChDT05GSUdfRFdNQUNfSU5URUwpXHQmIzQzOz0gZHdtYWMtaW50ZWwub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTUzPW9iai0kKENPTkZJR19EV01BQ19NT1RPUkNPTU0pXHQmIzQzOz0gZHdtYWMtbW90b3Jjb21tLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjU0OnN0bW1hYy1wY2ktb2Jqczo9IHN0bW1hY19wY2kub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNTojaW5jbHVkZSBcJiMzNDtzdG1tYWMuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE3OnN0YXRpYyBpbnQganVtYm9fZnJtKHN0cnVjdCBzdG1tYWNfdHhfcXVldWUgKnR4X3EsIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTgtXHRcdCAgICAgaW50IGNzdW0pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIwLVx0dW5zaWduZWQgaW50IG5vcGFnZWRfbGVuID0gc2tiX2hlYWRsZW4oc2tiKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoyMTpcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHR4X3EtXHUwMDNlcHJpdl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIyLVx0dW5zaWduZWQgaW50IGVudHJ5ID0gdHhfcS1cdTAwM2VjdXJfdHg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTQ1LVx0LyogZG8gbm90IGNsb3NlIHRoZSBkZXNjcmlwdG9yIGFuZCBkbyBub3Qgc2V0IG93biBiaXQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo0NjpcdHN0bW1hY19wcmVwYXJlX3R4X2Rlc2MocHJpdiwgZGVzYywgMSwgYnVmX2xlbiwgY3N1bSwgU1RNTUFDX0NIQUlOX01PREUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNDctXHRcdFx0MCwgZmFsc2UsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy02Mi1cdFx0XHR0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmxlbiA9IGJtYXg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6NjM6XHRcdFx0c3RtbWFjX3ByZXBhcmVfdHhfZGVzYyhwcml2LCBkZXNjLCAwLCBibWF4LCBjc3VtLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTY0LVx0XHRcdFx0XHRTVE1NQUNfQ0hBSU5fTU9ERSwgMSwgZmFsc2UsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03Ni1cdFx0XHQvKiBsYXN0IGRlc2NyaXB0b3IgY2FuIGJlIHNldCBub3cgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo3NzpcdFx0XHRzdG1tYWNfcHJlcGFyZV90eF9kZXNjKHByaXYsIGRlc2MsIDAsIGxlbiwgY3N1bSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03OC1cdFx0XHRcdFx0U1RNTUFDX0NIQUlOX01PREUsIDEsIHRydWUsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYz05OT1zdGF0aWMgdm9pZCBpbml0X2RtYV9jaGFpbih2b2lkICpkZXMsIGRtYV9hZGRyX3QgcGh5X2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEyOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxMjk6c3RhdGljIHZvaWQgcmVmaWxsX2Rlc2MzKHN0cnVjdCBzdG1tYWNfcnhfcXVldWUgKnJ4X3EsIHN0cnVjdCBkbWFfZGVzYyAqcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xMzAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjEzMTpcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHJ4X3EtXHUwMDNlcHJpdl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEzMi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE0NDpzdGF0aWMgdm9pZCBjbGVhbl9kZXNjMyhzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xLCBzdHJ1Y3QgZG1hX2Rlc2MgKnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQ1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNDY6XHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSB0eF9xLVx1MDAzZXByaXZfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNDctXHR1bnNpZ25lZCBpbnQgZW50cnkgPSB0eF9xLVx1MDAzZWRpcnR5X3R4O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTYxOmNvbnN0IHN0cnVjdCBzdG1tYWNfbW9kZV9vcHMgY2hhaW5fbW9kZV9vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTYyLVx0LmluaXQgPSBpbml0X2RtYV9jaGFpbixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xNS0jaW5jbHVkZSBcdTAwM2NsaW51eC9uZXRkZXZpY2UuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTY6I2luY2x1ZGUgXHUwMDNjbGludXgvc3RtbWFjLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTE3LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3BoeS5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDk9c3RhdGljIGlubGluZSBib29sIGR3bWFjX2lzX3htYWMoZW51bSBkd21hY19jb3JlX3R5cGUgY29yZV90eXBlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NzE6c3RydWN0IHN0bW1hY19xX3R4X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcyLVx0dTY0X3N0YXRzX3QgdHhfYnl0ZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo3ODpzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzktXHR1NjRfc3RhdHNfdCB0eF9wYWNrZXRzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6ODY6c3RydWN0IHN0bW1hY190eHFfc3RhdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODctXHQvKiBVcGRhdGVzIHByb3RlY3RlZCBieSB0eCBxdWV1ZSBsb2NrLiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODgtXHRzdHJ1Y3QgdTY0X3N0YXRzX3N5bmMgcV9zeW5jcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjg5Olx0c3RydWN0IHN0bW1hY19xX3R4X3N0YXRzIHE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05Mi1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6OTM6XHRzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMgbmFwaTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk0LX0gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6OTY6c3RydWN0IHN0bW1hY19uYXBpX3J4X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk3LVx0dTY0X3N0YXRzX3QgcnhfYnl0ZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTAzOnN0cnVjdCBzdG1tYWNfcnhxX3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNC1cdC8qIFVwZGF0ZXMgcHJvdGVjdGVkIGJ5IE5BUEkgcG9sbCBsb2dpYy4gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNS1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTA2Olx0c3RydWN0IHN0bW1hY19uYXBpX3J4X3N0YXRzIG5hcGk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDctfSBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwOS0vKiBVcGRhdGVzIG9uIGVhY2ggQ1BVIHByb3RlY3RlZCBieSBub3QgYWxsb3dpbmcgbmVzdGVkIGlycXMuICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoxMTA6c3RydWN0IHN0bW1hY19wY3B1X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExMS1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBzeW5jcDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMTYtLyogRXh0cmEgc3RhdGlzdGljIGFuZCBkZWJ1ZyBpbmZvcm1hdGlvbiBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjExNzpzdHJ1Y3Qgc3RtbWFjX2V4dHJhX3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExOC1cdC8qIFRyYW5zbWl0IGVycm9ycyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTIzNy1cdC8qIHBlciBxdWV1ZSBzdGF0aXN0aWNzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoyMzg6XHRzdHJ1Y3Qgc3RtbWFjX3R4cV9zdGF0cyB0eHFfc3RhdHNbTVRMX01BWF9UWF9RVUVVRVNdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjM5Olx0c3RydWN0IHN0bW1hY19yeHFfc3RhdHMgcnhxX3N0YXRzW01UTF9NQVhfUlhfUVVFVUVTXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI0MDpcdHN0cnVjdCBzdG1tYWNfcGNwdV9zdGF0cyBfX3BlcmNwdSAqcGNwdV9zdGF0cztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI0MS1cdHVuc2lnbmVkIGxvbmcgcnhfZHJvcHBlZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDctLyogU2FmZXR5IEZlYXR1cmUgc3RhdGlzdGljcyBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI0ODpzdHJ1Y3Qgc3RtbWFjX3NhZmV0eV9zdGF0cyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDktXHR1bnNpZ25lZCBsb25nIG1hY19lcnJvcnNbMzJdO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI1Ni0jZGVmaW5lIFNUTU1BQ19TQUZFVFlfRkVBVF9TSVpFXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjU3Olx0KHNpemVvZihzdHJ1Y3Qgc3RtbWFjX3NhZmV0eV9zdGF0cykgLyBzaXplb2YodW5zaWduZWQgbG9uZykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDE2PXN0cnVjdCBkbWFfZmVhdHVyZXMge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTU2Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjU2Nzp2b2lkIHN0bW1hY19heGlfYmxlbl90b19tYXNrKHUzMiAqcmVndmFsLCBjb25zdCB1MzIgKmJsZW4sIHNpemVfdCBsZW4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNTY4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTYxNT1zdHJ1Y3QgbWFjX2RldmljZV9pbmZvIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNjpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfb3BzICptYWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTc6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2Rlc2Nfb3BzICpkZXNjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE4Olx0Y29uc3Qgc3RydWN0IHN0bW1hY19kbWFfb3BzICpkbWE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTk6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX21vZGVfb3BzICptb2RlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjIwOlx0Y29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCAqcHRwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjIxOlx0Y29uc3Qgc3RydWN0IHN0bW1hY190Y19vcHMgKnRjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjIyOlx0Y29uc3Qgc3RydWN0IHN0bW1hY19tbWNfb3BzICptbWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MjM6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2VzdF9vcHMgKmVzdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYyNDpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfdmxhbl9vcHMgKnZsYW47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02MjUtXHRzdHJ1Y3QgZHdfeHBjcyAqeHBjcztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTA6c3RydWN0IHN0bW1hY19yeF9yb3V0aW5nIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY1MS1cdHUzMiByZWdfbWFzaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTU6aW50IGR3bWFjMTAwX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTY6aW50IGR3bWFjMTAwMF9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjU3OmludCBkd21hYzRfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1ODppbnQgZHd4Z21hYzJfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1OTppbnQgZHd4bGdtYWMyX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjE6dm9pZCBzdG1tYWNfc2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCBjb25zdCB1OCBhZGRyWzZdLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjYyLVx0XHRcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjM6dm9pZCBzdG1tYWNfZ2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCB1bnNpZ25lZCBjaGFyICphZGRyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjY0LVx0XHRcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjU6dm9pZCBzdG1tYWNfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjY3OnZvaWQgc3RtbWFjX2R3bWFjNF9zZXRfbWFjX2FkZHIodm9pZCBfX2lvbWVtICppb2FkZHIsIGNvbnN0IHU4IGFkZHJbNl0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjgtXHRcdFx0XHR1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2Njk6dm9pZCBzdG1tYWNfZHdtYWM0X2dldF9tYWNfYWRkcih2b2lkIF9faW9tZW0gKmlvYWRkciwgdW5zaWduZWQgY2hhciAqYWRkcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY3MC1cdFx0XHRcdHVuc2lnbmVkIGludCBoaWdoLCB1bnNpZ25lZCBpbnQgbG93KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY3MTp2b2lkIHN0bW1hY19kd21hYzRfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjcyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMS0jaW5jbHVkZSBcdTAwM2NsaW51eC9vZl9uZXQuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEyOiNpbmNsdWRlIFx1MDAzY2xpbnV4L3N0bW1hYy5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7c3RtbWFjLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxNTojaW5jbHVkZSBcJiMzNDtzdG1tYWNfcGxhdGZvcm0uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTE2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz02Mz1hbmFyaW9uX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjY0Olx0XHQgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtNjUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz05Mz1zdGF0aWMgaW50IGFuYXJpb25fZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtOTYtXHRzdHJ1Y3QgYW5hcmlvbl9nbWFjICpnbWFjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjk3Olx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzo5ODpcdHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHN0bW1hY19yZXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtOTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTAwOlx0cmV0ID0gc3RtbWFjX2dldF9wbGF0Zm9ybV9yZXNvdXJjZXMocGRldiwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAxLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEwNDpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMDUtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjExNjpcdHJldHVybiBkZXZtX3N0bW1hY19wbHRmcl9wcm9iZShwZGV2LCBwbGF0X2RhdCwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE3LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9MTI1PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFuYXJpb25fZHdtYWNfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMjgtXHRcdC5uYW1lICAgICAgICAgICA9IFwmIzM0O2FuYXJpb24tZHdtYWNcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTI5Olx0XHQucG1cdFx0PSBcdTAwMjZzdG1tYWNfcGx0ZnJfcG1fb3BzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEzMC1cdFx0Lm9mX21hdGNoX3RhYmxlID0gYW5hcmlvbl9kd21hY19tYXRjaCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIxLSNpbmNsdWRlIFx1MDAzY2xpbnV4L3Jlc2V0LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjI6I2luY2x1ZGUgXHUwMDNjbGludXgvc3RtbWFjLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI0OiNpbmNsdWRlIFwmIzM0O3N0bW1hY19wbGF0Zm9ybS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI1LSNpbmNsdWRlIFwmIzM0O2R3bWFjNC5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNj1zdGF0aWMgaW50IGR3Y19ldGhfZHdtYWNfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM3Olx0XHRcdFx0ICAgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDMtXHRcdHBsYXRfZGF0LVx1MDAzZWF4aSA9IGRldm1fa3phbGxvYyhcdTAwMjZwZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6NDQ6XHRcdFx0XHRcdCAgICAgc2l6ZW9mKHN0cnVjdCBzdG1tYWNfYXhpKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDUtXHRcdFx0XHRcdCAgICAgR0ZQX0tFUk5FTCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz05Nj1zdGF0aWMgaW50IGR3Y19xb3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6OTc6XHRcdFx0IHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjk4Olx0XHRcdCBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqc3RtbWFjX3JlcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtOTkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxMDA6XHRwbGF0X2RhdC1cdTAwM2VwY2xrID0gc3RtbWFjX3BsdGZyX2ZpbmRfY2xrKHBsYXRfZGF0LCBcJiMzNDtwaHlfcmVmX2Nsa1wmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTEwMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTExNT1zdGF0aWMgdm9pZCB0ZWdyYV9lcW9zX2ZpeF9zcGVlZCh2b2lkICpic3BfcHJpdiwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTExOS1cdGJvb2wgbmVlZHNfY2FsaWJyYXRpb24gPSBmYWxzZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTIwOlx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xMjEtXHR1MzIgdmFsdWU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDEtXHRcdC8qIENhbGlicmF0aW9uIHNob3VsZCBiZSBkb25lIHdpdGggdGhlIE1ESU8gYnVzIGlkbGUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTQyOlx0XHRzdG1tYWNfbWRpb19sb2NrKHByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE3ODpcdFx0c3RtbWFjX21kaW9fdW5sb2NrKHByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzktXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MTg2PXN0YXRpYyBpbnQgdGVncmFfZXFvc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxODc6XHRcdFx0ICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE4ODpcdFx0XHQgICAgc3RydWN0IHN0bW1hY19yZXNvdXJjZXMgKnJlcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTg5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjA0Olx0cGxhdF9kYXQtXHUwMDNlY2xrX3R4X2kgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsIFwmIzM0O3R4XCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjA1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjM3LVx0cGxhdF9kYXQtXHUwMDNlZml4X21hY19zcGVlZCA9IHRlZ3JhX2Vxb3NfZml4X3NwZWVkO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyMzg6XHRwbGF0X2RhdC1cdTAwM2VzZXRfY2xrX3R4X3JhdGUgPSBzdG1tYWNfc2V0X2Nsa190eF9yYXRlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMzktXHRwbGF0X2RhdC1cdTAwM2Vic3BfcHJpdiA9IGVxb3M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNTI9c3RhdGljIHZvaWQgdGVncmFfZXFvc19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjUzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjU0Olx0c3RydWN0IHRlZ3JhX2Vxb3MgKmVxb3MgPSBnZXRfc3RtbWFjX2JzcF9wcml2KFx1MDAyNnBkZXYtXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjU1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjYwPXN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjEtXHRpbnQgKCpwcm9iZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjYyOlx0XHQgICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2MzpcdFx0ICAgICBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqcmVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY0LVx0dm9pZCAoKnJlbW92ZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2NTpcdGNvbnN0IGNoYXIgKnN0bW1hY19jbGtfbmFtZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY2LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNjg9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgZHdjX3Fvc19kYXRhID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjktXHQucHJvYmUgPSBkd2NfcW9zX3Byb2JlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNzA6XHQuc3RtbWFjX2Nsa19uYW1lID0gXCYjMzQ7YXBiX3BjbGtcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3MS19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjczPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhIHRlZ3JhX2Vxb3NfZGF0YSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3NS1cdC5yZW1vdmUgPSB0ZWdyYV9lcW9zX3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjc2Olx0LnN0bW1hY19jbGtfbmFtZSA9IFwmIzM0O3NsYXZlX2J1c1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjc3LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNzk9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgZnNkX2Vxb3NfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjgwOlx0LnN0bW1hY19jbGtfbmFtZSA9IFwmIzM0O3NsYXZlX2J1c1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjgxLX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yODM9c3RhdGljIGludCBkd2NfZXRoX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODUtXHRjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhICpkYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODY6XHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODc6XHRzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyBzdG1tYWNfcmVzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODgtXHRpbnQgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjkxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTI6XHRtZW1zZXQoXHUwMDI2c3RtbWFjX3JlcywgMCwgc2l6ZW9mKHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjk0LVx0LyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI5NTpcdCAqIFNpbmNlIHN0bW1hY19wbGF0Zm9ybSBzdXBwb3J0cyBuYW1lIElSUSBvbmx5LCBiYXNpYyBwbGF0Zm9ybVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTYtXHQgKiByZXNvdXJjZSBpbml0aWFsaXphdGlvbiBpcyBkb25lIGluIHRoZSBnbHVlIGxvZ2ljLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTctXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjk4Olx0c3RtbWFjX3Jlcy5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTk6XHRpZiAoc3RtbWFjX3Jlcy5pcnEgXHUwMDNjIDApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwMDpcdFx0cmV0dXJuIHN0bW1hY19yZXMuaXJxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDE6XHRzdG1tYWNfcmVzLndvbF9pcnEgPSBzdG1tYWNfcmVzLmlycTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDM6XHRzdG1tYWNfcmVzLmFkZHIgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNDpcdGlmIChJU19FUlIoc3RtbWFjX3Jlcy5hZGRyKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzA1Olx0XHRyZXR1cm4gUFRSX0VSUihzdG1tYWNfcmVzLmFkZHIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNzpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzA4LVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMxNjpcdHBsYXRfZGF0LVx1MDAzZXN0bW1hY19jbGsgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMxNzpcdFx0XHRcdFx0XHQgICAgIGRhdGEtXHUwMDNlc3RtbWFjX2Nsa19uYW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTktXHRpZiAoZGF0YS1cdTAwM2Vwcm9iZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzIwOlx0XHRyZXQgPSBkYXRhLVx1MDAzZXByb2JlKHBkZXYsIHBsYXRfZGF0LCBcdTAwMjZzdG1tYWNfcmVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzIxLVx0aWYgKHJldCBcdTAwM2MgMCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMzA6XHRyZXQgPSBzdG1tYWNfZHZyX3Byb2JlKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBwbGF0X2RhdCwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMzMS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNDM9c3RhdGljIHZvaWQgZHdjX2V0aF9kd21hY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzQ3Olx0c3RtbWFjX2R2cl9yZW1vdmUoXHUwMDI2cGRldi1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNDgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNjE9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZHdjX2V0aF9kd21hY19kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNjUtXHRcdC5uYW1lICAgICAgICAgICA9IFwmIzM0O2R3Yy1ldGgtZHdtYWNcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM2NjpcdFx0LnBtICAgICAgICAgICAgID0gXHUwMDI2c3RtbWFjX3BsdGZyX3BtX29wcyxcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDA3OjMwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNDcwCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogNTA3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRnV6emluZyBQb3RlbnRpYWwgb2YgYW4gYHN0bW1hY2AgUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIGBzdG1tYWNgLi4uIHJpZ2h0LCB0aGF0JiMzOTtzIHRoZSBTeW5vcHN5cyBEZXNpZ25XYXJlIEV0aGVybmV0IE1BQyBkcml2ZXIsIHVzZWQgYWNyb3NzIGEgdG9uIG9mIGVtYmVkZGVkIFNvQ3MgYW5kIFBDSSBib2FyZHMuIEFsbHdpbm5lciwgSW50ZWwsIFJlbmVzYXMsIHRoZSB1c3VhbCBzdXNwZWN0cy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGtub3cgaG93IGl0JiMzOTtzIHVzZWQgc28gSSBjYW4gYXNzZXNzIHdoZXRoZXIgaXQmIzM5O3Mgd29ydGggZnV6emluZy4KCk15IGltbWVkaWF0ZSBxdWVzdGlvbnMgYXJlOiBEb2VzIFFFTVUgZXZlbiAqZW11bGF0ZSogYHN0bW1hY2AgaGFyZHdhcmU/IERvZXMgaXQgZW11bGF0ZSB0aGUgaGFyZHdhcmUgdGhhdCB0aGUgcGF0Y2ggaXMgbWVhbnQgdG8gZml4PyBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBhbnkgb2YgdGhlIGhhcmR3YXJlIGl0IHN1cHBvcnRzIChTVE0zMiwgQWxsd2lubmVyIEExMC9IMywgZXRjLikgYXJlIGVtdWxhdGVkIG9yIHJlYWNoYWJsZSB0aHJvdWdoIHRoZSBlbXVsYXRlZCBzZXR1cC4KCkFuZCB3aGF0IGFib3V0IFN5emthbGxlcj8gSXMgYHN0bW1hY2AgZnV6emVkIGluIHRoZSBzdGFuZGFyZCBzZXR1cHM/IFg4Nl82NCwgYXJtNjQuLi4gZG9lcyBTeXprYWxsZXIgZXZlbiB0YXJnZXQgaXQ/CgpXYWl0LCBJIG5lZWQgdG8gZ28gYmFjayBhbmQgcmUtcmVhZCB0aGUgZ3VpZGVsaW5lcyBjYXJlZnVsbHkuIEkgaGF2ZSB0byBtYWtlIHN1cmUgdGhpcyBwYXRjaCBpc24mIzM5O3QganVzdCBkb2N1bWVudGF0aW9uLCBsb2dnaW5nLCBkZWNvcmF0aXZlIGNoYW5nZXMsIG9yIHNvbWV0aGluZyB1bnJlYWNoYWJsZSBpbiBRRU1VLiBUaGF0JiMzOTtzIGEgd2FzdGUgb2YgdGltZS4gSSBoYXZlIHRvIGNvbnNpZGVyIHdoZXRoZXIgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy4gVGhhdCYjMzk7cyB0aGUga2V5LgoKT2theSwgYmFjayB0byBgc3RtbWFjYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgKmV4YWN0bHkqIHdoaWNoIGhhcmR3YXJlIElEcyBvciBQQ0kgZGV2aWNlcyBgc3RtbWFjYCBzdXBwb3J0cywgYW5kIHRoZW4gZGV0ZXJtaW5lIGlmIFFFTVUgY2FuIGhhbmRsZSB0aGVtLCBpZiB0aGV5JiMzOTtyZSByZWFjaGFibGUuIEkgbmVlZCB0byBnZXQgaW50byB0aGUgY29kZSBhbmQgc3RhcnQgbG9va2luZyBhdCBmaWxlcyBsaWtlIGBzdG1tYWNfcGNpLmNgLCBgZHdtYWMtaW50ZWwuY2AsIGBkd21hYy1sb29uZ3Nvbi5jYCwgYW5kIHNvIG9uLiBUaGF0JiMzOTtzIHRoZSBuZXh0IHN0ZXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMDc6MzA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TU9EVUxFX0RFVklDRV9UQUJMRSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9MTE5PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGFuYXJpb25fZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTIyLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTIzOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGFuYXJpb25fZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEyNC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTM1Mz1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBkd2NfZXRoX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNTgtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzU5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGR3Y19ldGhfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNjAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jPTM1MD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBlaWM3NzAwX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jLTM1OS19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jOjM2MDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBlaWM3NzAwX2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWVpYzc3MDAuYy0zNjEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZ2VuZXJpYy5jPTUyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGR3bWFjX2dlbmVyaWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1nZW5lcmljLmMtNjYtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYzo2NzpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBkd21hY19nZW5lcmljX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYy02OC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYz0zODQ9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaW14X2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmMtMzg5LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYzozOTA6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgaW14X2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlteC5jLTM5MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmM9MjYyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGluZ2VuaWNfbWFjX29mX21hdGNoZXNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmMtMjY5LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmM6MjcwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGluZ2VuaWNfbWFjX29mX21hdGNoZXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW5nZW5pYy5jLTI3MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmM9MzY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaW50ZWxfZXRoX3BsYXRfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmMtMzktfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYzo0MDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBpbnRlbF9ldGhfcGxhdF9tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmMtNDEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0xMzk1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBpbnRlbF9ldGhfcGNpX2lkX3RhYmxlW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xNDE0LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjE0MTU6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGludGVsX2V0aF9wY2lfaWRfdGFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xNDE2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlwcTgwNnguYz00OTE9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaXBxODA2eF9nbWFjX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTQ5NC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jOjQ5NTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBpcHE4MDZ4X2dtYWNfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTQ5Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTU5Nj1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgbG9vbmdzb25fZHdtYWNfaWRfdGFibGVbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTYwMS19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo2MDI6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGxvb25nc29uX2R3bWFjX2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNjAzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uMS5jPTIxNj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBsczF4X2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmMtMjI2LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYzoyMjc6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbHMxeF9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYy0yMjgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jPTcxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGxwYzE4eHhfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmMtNzQtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYzo3NTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBscGMxOHh4X2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy03Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jPTY2Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtZWRpYXRla19kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmMtNjY5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYzo2NzA6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbWVkaWF0ZWtfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYy02NzEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb24uYz03Nj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtZXNvbjZfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jLTc5LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jOjgwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG1lc29uNl9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jLTgxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYz00ODI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbWVzb244Yl9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYy01MDQtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYzo1MDU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbWVzb244Yl9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmMtNTA2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jPTM2Nz1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgZHdtYWNfbW90b3Jjb21tX3BjaV9pZF90YWJsZVtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTM3MC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MzcxOk1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBkd21hY19tb3RvcmNvbW1fcGNpX2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTM3Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmM9MTE4PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG52dF9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYy0xMjEtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYzoxMjI6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbnZ0X2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYy0xMjMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYz04MDA9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcWNvbV9ldGhxb3NfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1xY29tLWV0aHFvcy5jLTgwNi19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYzo4MDc6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgcWNvbV9ldGhxb3NfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYy04MDgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmVuZXNhcy1nYmV0aC5jPTIxNj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCByZW5lc2FzX2diZXRoX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmVuZXNhcy1nYmV0aC5jLTIyMS19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmVuZXNhcy1nYmV0aC5jOjIyMjpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCByZW5lc2FzX2diZXRoX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYy0yMjMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYz0xNjE2PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHJrX2dtYWNfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jLTE2MzQtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmM6MTYzNTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBya19nbWFjX2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmMtMTYzNi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yem4xLmM9NzU9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcnpuMV9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYy03OC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcnpuMS5jOjc5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHJ6bjFfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcnpuMS5jLTgwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXMzMi5jPTIxNj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzMzJfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYy0yMTktfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXMzMi5jOjIyMDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzMzJfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmMtMjIxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYz02NzM9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc29jZnBnYV9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy02NzgtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYzo2Nzk6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc29jZnBnYV9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNjgwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jPTcyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNvcGhnb19kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jLTc2LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYzo3NzpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzb3BoZ29fZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29waGdvLmMtNzgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3BhY2VtaXQuYz0yMTA9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3BhY2VtaXRfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jLTIxMy19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3BhY2VtaXQuYzoyMTQ6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3BhY2VtaXRfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3BhY2VtaXQuYy0yMTUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYz0xNjA9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3RhcmZpdmVfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTE2NC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYzoxNjU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3RhcmZpdmVfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYy0xNjYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RpLmM9Mjk2PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN0aV9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTI5OS19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RpLmM6MzAwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN0aV9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYy0zMDEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RtMzIuYz02NjI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3RtMzJfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdG0zMi5jLTY2OC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RtMzIuYzo2Njk6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3RtMzJfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RtMzIuYy02NzAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuNTVpLmM9MTQxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN1bjU1aV9nbWFjMjAwX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuNTVpLmMtMTQ0LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW41NWkuYzoxNDU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3VuNTVpX2dtYWMyMDBfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuNTVpLmMtMTQ2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmM9MTI2OD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdW44aV9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmMtMTI4Mi19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuOGkuYzoxMjgzOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN1bjhpX2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmMtMTI4NC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jPTE1MD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdW43aV9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bnhpLmMtMTUzLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jOjE1NDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdW43aV9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jLTE1NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jPTM5Nz1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB0ZWdyYV9tZ2JlX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYy00MDAtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmM6NDAxOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHRlZ3JhX21nYmVfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYy00MDItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGhlYWQuYz0yNjc9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgdGhlYWRfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10aGVhZC5jLTI3MC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGhlYWQuYzoyNzE6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgdGhlYWRfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGhlYWQuYy0yNzItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdmlzY29udGkuYz0yNTU9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgdmlzY29udGlfZXRoX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdmlzY29udGkuYy0yNTgtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXZpc2NvbnRpLmM6MjU5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHZpc2NvbnRpX2V0aF9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy12aXNjb250aS5jLTI2MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjAzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBzdG1tYWNfaWRfdGFibGVbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjA5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxMDpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgc3RtbWFjX2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTEtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMDc6MzA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY3NjQKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAxMTA1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBRRU1VIEVtdWxhdGlvbiBDYXBhYmlsaXRpZXMgZm9yIEV0aGVybmV0IERyaXZlcnMqKgoKT2theSwgaGVyZSYjMzk7cyB3aGF0IEkmIzM5O20gdGhpbmtpbmcuLi4gZmlyc3QsIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIFFFTVUgKmFjdHVhbGx5KiBlbXVsYXRlcyB0aGUgc3RtbWFjIGRyaXZlciBhdCBhbGwuIElzIGl0IGEgc3RhbmRhcmQgZW11bGF0aW9uIG9yIGlzIGl0IHNvbWV0aGluZyB0aGF0IHJlcXVpcmVzIGEgc3BlY2lmaWMgUUVNVSBjb25maWd1cmF0aW9uIG9yIGV2ZW4gYSBjdXN0b20gc2V0dXA/IE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBjaGVjayBpZiBpdCYjMzk7cyBlbXVsYXRlZCBpbiBhbnkgY29tbW9uIEFSTSBwbGF0Zm9ybXMuCgpMZXQmIzM5O3Mgc2VlLiBEb2VzIFFFTVUgaGF2ZSBzdXBwb3J0IGZvciBgYWxsd2lubmVyLWVtYWNgLCBvciBzcGVjaWZpY2FsbHkgYGFsbHdpbm5lci1zdW44aS1lbWFjYCwgb3IgZXZlbiB0aGUgZ2VuZXJpYyBgZGVzaWdud2FyZWAgZXRoZXJuZXQgY29udHJvbGxlcj8gSSByZWNhbGwgc2VlaW5nIHNvbWV0aGluZy4uLiBBaCwgeWVzLCBRRU1VIGRvZXMgaGF2ZSBgYWxsd2lubmVyLXN1bjhpLWVtYWNgLCBhbG9uZyB3aXRoIG90aGVyIG9wdGlvbnMgbGlrZSBgY2FkZW5jZV9nZW1gLCBgaW14X2ZlY2AsIGFuZCBgbGFuOTExOGAuIEJ1dCwgZG9lcyBpdCBoYXZlIHRoZSBzcGVjaWZpYyBgZHdjX2V0aF9xb3NgIG9yIHNpbXBseSBgZHdtYWNgIHRoYXQmIzM5O3MgcmVsZXZhbnQgdG8gdGhpcyBwb3RlbnRpYWwgaW52ZXN0aWdhdGlvbj8KCk9rYXksIGl0IHNlZW1zIFFFTVUgaGFzIGBhbGx3aW5uZXItc3VuOGktZW1hY2AsIGFuZCBJIHNlZSB0aGUgcGF0aCBgaHcvbmV0L2FsbHdpbm5lci1zdW44aS1lbWFjLmNgLiBEb2VzIHRoYXQgYGFsbHdpbm5lci1zdW44aS1lbWFjYCBjb3JyZXNwb25kIHRvIHRoZSBgc3VuOGlfZHdtYWNgIG9yIHRoZSBtb3JlIGdlbmVyYWwgYHN1bjhpLWVtYWNgPwoKV2FpdCwgYmVmb3JlIGdldHRpbmcgdG9vIGRlZXAsIGxldCYjMzk7cyByZWZyZXNoIG91ciBtZW1vcnkgb2YgdGhlIHJ1bGVzOiB0aGUgY29kZSBpcyBvbmx5IGNvbnNpZGVyZWQgJiMzNDt3b3J0aCBmdXp6aW5nJiMzNDsgaWYgdGhlIGNoYW5nZXMgaW1wYWN0IHJlYWNoYWJsZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuIFRoaW5ncyBsaWtlIGRvY3VtZW50YXRpb24sIEtjb25maWcsIG9yIGNvbW1lbnRzIGFyZSBvdXQuIEFsc28sIHdlJiMzOTtyZSBub3QgaW50ZXJlc3RlZCBpbiBwYXJ0cyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIFRoYXQgaW5jbHVkZXMgdGhpbmdzIGxpa2UgdmVuZG9yLXNwZWNpZmljIFBDSWUgY2FyZHMsIHRlYXJkb3duIGNvZGUsIGFuZCBkcml2ZXJzIHJlcXVpcmluZyBwaHlzaWNhbCBoYXJkd2FyZS4KClNvLCBJIG5lZWQgdG8gY2hlY2sgaWYgYHN0bW1hYy9kd21hYzRgIGlzIHJlYWNoYWJsZSBpbiBRRU1VIG9yIEdDRS4KCkxldCYjMzk7cyBlbnVtZXJhdGUgdGhlIGV0aGVybmV0IGRyaXZlcnMgdGhhdCBhcmUgZW11bGF0ZWQgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50ICh4ODYgb3IgYXJtNjQpLiBJIGtub3cgdGhlcmUgYXJlIGRyaXZlcnMgbGlrZSBgZTEwMDBgLCBgZTEwMDBlYCwgYGlnYmAsIGB2bXhuZXQzYCwgYHJ0bDgxMzlgLCBgcGNuZXRgLCBgbmUya19wY2lgLCBgdmlydGlvLW5ldGAsIGBzdW5nZW1gLCBhbmQgYHJvY2tlcmAuIFVTQiBldGhlcm5ldCwgbGlrZSBgdXNiLW5ldGAgYW5kIGBjZGMtZXRoZXJgLCBpcyBhbm90aGVyIGFyZWEuIEJ1dCwgd2hlcmUgZG9lcyBgc3RtbWFjYCBmaXQgaW4/CgpMZXQmIzM5O3MgY2hlY2sgdGhlIHNvdXJjZSwgc3BlY2lmaWNhbGx5IGBzdG1tYWNfcGNpLmNgIGFuZCBgZHdtYWMtaW50ZWwuY2AuIEluIGBzdG1tYWNfcGNpLmNgLCBJIHNlZSBQQ0kgZGV2aWNlcyBmcm9tIFNUIE1pY3JvZWxlY3Ryb25pY3MvU3lub3BzeXMgKDB4MTA0QSkgYW5kIGFsc28gZnJvbSBJbnRlbC4gSW4gYGR3bWFjLWludGVsLmNgLCB0aGVyZSYjMzk7cyBhbiBJbnRlbCBRdWFyayBkZXZpY2UgKDB4MDkzNykgYW5kIG5ld2VyIEludGVsIGZhbWlsaWVzIChFSEwsIFRHTCwgZXRjKS4gVGhlcmUmIzM5O3MgYWxzbyBgZHdtYWMtbG9vbmdzb24uY2AsIGZvciB0aGUgTFM3QTEwMDAuCgpOb3csIHRoZSBjcml0aWNhbCBxdWVzdGlvbjogYXJlIGFueSBvZiB0aGVzZSBlbXVsYXRlZCBieSBzdGFuZGFyZCBRRU1VIG9yIGluIEdDRT8gTm9wZSwgaXQgZG9lc24mIzM5O3QgbG9vayBsaWtlIFFFTVUgZW11bGF0ZXMgSW50ZWwgUXVhcmsvRUhMIEdiRSAoZHdtYWMpLCBMb29uZ3NvbiBzdG1tYWMsIG9yIFNUTS9TeW5vcHN5cyBQQ0kgTUFDLgoKT2theSwgbGV0JiMzOTtzIHRyeSBhIGRpZmZlcmVudCB0YWNrLiBXaGF0IGFib3V0IEFSTSwgUklTQy1WLCBvciBNSVBTIFFFTVUgbWFjaGluZXM/IExldCYjMzk7cyBjaGVjay4uLiB3aXRoIFFFTVU6CiogICBgYXJtYCBoYXMgdmVyc2F0aWxlcGIgKHNtYzkxYzExMSksIHJlYWx2aWV3IChzbWM5MWMxMTEgLyBsYW45MTE4KSwgdmlydCAodmlydGlvLW5ldCksIHJhc3BpIChiY20yODM1IC8gc21zYzk1MTIpLCBhbmQgb3JhbmdlcGktcGMgKGFsbHdpbm5lci1oMykuIEJpbmdvISBUaGUgYG9yYW5nZXBpLXBjYCBoYXMgYGFsbHdpbm5lci1zdW44aS1lbWFjYCEgQW5kLCBgc3VuOGlfZHdtYWMuY2AgaW4gTGludXggaXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmNgLgoKQWhhISBOb3cgd2UmIzM5O3JlIGdldHRpbmcgc29tZXdoZXJlLiBEb2VzIGBkd21hYy1zdW44aS5jYCAqdXNlKiBgZHdtYWM0YD8gVGhlIGFuc3dlciB0byB0aGF0IHF1ZXN0aW9uIGlzIGtleSEgVGltZSB0byBkaWcgaW50byBgZHdtYWMtc3VuOGkuY2AhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMDc6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7RFdNQUNfQ09SRV8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMzItLyogU3lub3BzeXMgQ29yZSB2ZXJzaW9ucyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MzM6I2RlZmluZVx0RFdNQUNfQ09SRV8zXzQwXHRcdDB4MzRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM0OiNkZWZpbmVcdERXTUFDX0NPUkVfM181MFx0XHQweDM1XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDozNTojZGVmaW5lXHREV01BQ19DT1JFXzNfNzBcdFx0MHgzN1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MzY6I2RlZmluZVx0RFdNQUNfQ09SRV80XzAwXHRcdDB4NDBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM3OiNkZWZpbmUgRFdNQUNfQ09SRV80XzEwXHRcdDB4NDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM4OiNkZWZpbmUgRFdNQUNfQ09SRV81XzAwXHRcdDB4NTBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM5OiNkZWZpbmUgRFdNQUNfQ09SRV81XzEwXHRcdDB4NTFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjQwOiNkZWZpbmUgRFdNQUNfQ09SRV81XzIwXHRcdDB4NTJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTQxLSNkZWZpbmUgRFdYR01BQ19DT1JFXzJfMTBcdDB4MjFcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaD00OT1zdGF0aWMgaW5saW5lIGJvb2wgZHdtYWNfaXNfeG1hYyhlbnVtIGR3bWFjX2NvcmVfdHlwZSBjb3JlX3R5cGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC01MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo1MTpcdHJldHVybiBjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNCB8fCBjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTUyLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTM2PXN0YXRpYyBpbnQgZHdjX2V0aF9kd21hY19jb25maWdfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTg3LVx0LyogZHdjLXFvcyBuZWVkcyBHTUFDNCwgQUFMLCBUU08gYW5kIFBNVCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzo4ODpcdHBsYXRfZGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTg5LVx0cGxhdF9kYXQtXHUwMDNlZG1hX2NmZy1cdTAwM2VhYWwgPSAxO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9NTk2PXN0YXRpYyB2b2lkIGNvbW1vbl9kZWZhdWx0X2RhdGEoc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNTk5LVx0cGxhdC1cdTAwM2VjbGtfY3NyID0gU1RNTUFDX0NTUl8yMF8zNU07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjYwMDpcdHBsYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy02MDEtXHRwbGF0LVx1MDAzZWZvcmNlX3NmX2RtYV9tb2RlID0gdHJ1ZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTYxNj1zdGF0aWMgaW50IGludGVsX21nYmVfY29tbW9uX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy02MjYtXHRwbGF0LVx1MDAzZWNsa19jc3IgPSBTVE1NQUNfQ1NSXzI1MF8zMDBNO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo2Mjc6XHRwbGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTYyOC1cdHBsYXQtXHUwMDNlZm9yY2Vfc2ZfZG1hX21vZGUgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlwcTgwNnguYz0zNzQ9c3RhdGljIGludCBpcHE4MDZ4X2dtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmMtNDc1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jOjQ3NjpcdHBsYXRfZGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlwcTgwNnguYy00NzctXHRwbGF0X2RhdC1cdTAwM2Vic3BfcHJpdiA9IGdtYWM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy03Mi0jZGVmaW5lIFBDSV9ERVZJQ0VfSURfTE9PTkdTT05fR05FVFx0MHg3YTEzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjczOiNkZWZpbmUgRFdNQUNfQ09SRV9NVUxUSUNIQU5fVjFcdDB4MTBcdC8qIExvb25nc29uIGN1c3RvbSBJRCAweDEwICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjc0OiNkZWZpbmUgRFdNQUNfQ09SRV9NVUxUSUNIQU5fVjJcdDB4MTJcdC8qIExvb25nc29uIGN1c3RvbSBJRCAweDEyICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTc1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9ODY9c3RhdGljIHZvaWQgbG9vbmdzb25fZGVmYXVsdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtOTUtXHRwbGF0LVx1MDAzZWNsa19jc3IgPSBTVE1NQUNfQ1NSXzEwMF8xNTBNO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo5NjpcdHBsYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy05Ny1cdHBsYXQtXHUwMDNlZm9yY2Vfc2ZfZG1hX21vZGUgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTA4LVx0c3dpdGNoIChsZC1cdTAwM2Vsb29uZ3Nvbl9pZCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxMDk6XHRjYXNlIERXTUFDX0NPUkVfTVVMVElDSEFOX1YxOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xMTAtXHRcdGxkLVx1MDAzZW11bHRpY2hhbiA9IDE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xMjAtXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxMjE6XHRjYXNlIERXTUFDX0NPUkVfTVVMVElDSEFOX1YyOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xMjItXHRcdGxkLVx1MDAzZW11bHRpY2hhbiA9IDE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz0zMDY9c3RhdGljIGludCBsb29uZ3Nvbl9kd21hY19zZXR1cCh2b2lkICphcHJpdiwgc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqbWFjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMzI4LVx0aWYgKGxkLVx1MDAzZW11bHRpY2hhbikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzozMjk6XHRcdHByaXYtXHUwMDNlc3lub3BzeXNfaWQgPSBEV01BQ19DT1JFXzNfNzA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTMzMC1cdFx0KmRtYSA9IGR3bWFjMTAwMF9kbWFfb3BzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYz00Mj1zdGF0aWMgaW50IGxwYzE4eHhfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmMtNTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmM6NTc6XHRwbGF0X2RhdC1cdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmMtNTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MjA4PW1vdG9yY29tbV9kZWZhdWx0X3BsYXRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0yNDctXHRwbGF0LVx1MDAzZWNsa19yZWZfcmF0ZVx0PSAxMjUwMDAwMDA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzoyNDg6XHRwbGF0LVx1MDAzZWNvcmVfdHlwZVx0XHQ9IERXTUFDX0NPUkVfR01BQzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0yNDktXHRwbGF0LVx1MDAzZXN1c3BlbmRcdFx0PSBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1xY29tLWV0aHFvcy5jPTY4ND1zdGF0aWMgaW50IHFjb21fZXRocW9zX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYy03NzYtXHRwbGF0X2RhdC1cdTAwM2VwdHBfY2xrX2ZyZXFfY29uZmlnID0gZXRocW9zX3B0cF9jbGtfZnJlcV9jb25maWc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1xY29tLWV0aHFvcy5jOjc3NzpcdHBsYXRfZGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1xY29tLWV0aHFvcy5jLTc3OC1cdGlmIChldGhxb3MtXHUwMDNlaGFzX2VtYWNfZ2VfMylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jPTE1Njg9c3RhdGljIGludCBya19nbWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYy0xNTkxLVx0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jOjE1OTI6XHRpZiAocGxhdF9kYXQtXHUwMDNlY29yZV90eXBlICE9IERXTUFDX0NPUkVfR01BQzQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmM6MTU5MzpcdFx0cGxhdF9kYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYy0xNTk0LVx0XHRwbGF0X2RhdC1cdTAwM2VyeF9maWZvX3NpemUgPSA0MDk2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXMzMi5jPTE0ND1zdGF0aWMgaW50IHMzMl9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXMzMi5jLTE5NS1cdC8qIFMzMkNDIGNvcmUgZmVhdHVyZSBzZXQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXMzMi5jOjE5NjpcdHBsYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXMzMi5jLTE5Ny1cdHBsYXQtXHUwMDNlcG10ID0gdHJ1ZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM9NTU5PXN0YXRpYyB2b2lkIHNvY2ZwZ2FfZ2VuNV9zZXR1cF9wbGF0X2RhdChzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jLTU2Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYzo1NjM6XHRwbGF0X2RhdC1cdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNTY0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYz01Njk9c3RhdGljIHZvaWQgc29jZnBnYV9hZ2lsZXg1X3NldHVwX3BsYXRfZGF0KHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNTcyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jOjU3MzpcdHBsYXRfZGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNTc0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bnhpLmM9OTk9c3RhdGljIGludCBzdW43aV9nbWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VueGkuYy0xMzgtXHRwbGF0X2RhdC1cdTAwM2V0eF9jb2UgPSB0cnVlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VueGkuYzoxMzk6XHRwbGF0X2RhdC1cdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jLTE0MC1cdHBsYXRfZGF0LVx1MDAzZWJzcF9wcml2ID0gZ21hYztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jPTIxND1zdGF0aWMgaW50IHRlZ3JhX21nYmVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jLTMyNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmM6MzI2Olx0cGxhdC1cdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX1hHTUFDO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYy0zMjctXHRwbGF0LVx1MDAzZWZsYWdzIHw9IFNUTU1BQ19GTEFHX1RTT19FTjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM9MjE9c3RhdGljIHZvaWQgc3RtbWFjX2dldF92ZXJzaW9uKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MzE6XHRpZiAoY29yZV90eXBlID09IERXTUFDX0NPUkVfTUFDMTAwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTMyLVx0XHRyZXR1cm47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MzQ6XHRpZiAoY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0zNS1cdFx0dmVyc2lvbl9vZmZzZXQgPSBHTUFDX1ZFUlNJT047XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTQ5LVx0dmVyLVx1MDAzZXNucHN2ZXIgPSBGSUVMRF9HRVQoRFdNQUNfU05QU1ZFUiwgdmVyc2lvbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6NTA6XHRpZiAoY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtNTEtXHRcdHZlci1cdTAwM2VkZXZfaWQgPSBGSUVMRF9HRVQoRFdNQUNfVVNFUlZFUiwgdmVyc2lvbik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jPTY5PXN0YXRpYyBpbnQgc3RtbWFjX2R3bWFjMV9xdWlya3Moc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy03Ni1cdFx0LyogR01BQyBvbGRlciB0aGFuIDMuNTAgaGFzIG5vIGV4dGVuZGVkIGRlc2NyaXB0b3JzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6Nzc6XHRcdGlmIChwcml2LVx1MDAzZXN5bm9wc3lzX2lkIFx1MDAzZT0gRFdNQUNfQ09SRV8zXzUwKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtNzgtXHRcdFx0ZGV2X2luZm8ocHJpdi1cdTAwM2VkZXZpY2UsIFwmIzM0O0VuYWJsZWQgZXh0ZW5kZWQgZGVzY3JpcHRvcnNcXG5cJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYz0xMTE9c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHdpZl9lbnRyeSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTEzMC1cdHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoxMzE6XHRcdC5jb3JlX3R5cGUgPSBEV01BQ19DT1JFX01BQzEwMCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0xMzItXHRcdC5taW5faWQgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0xNDctXHR9LCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MTQ4Olx0XHQuY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTE0OS1cdFx0Lm1pbl9pZCA9IDAsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTE2NC1cdH0sIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoxNjU6XHRcdC5jb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTE2Ni1cdFx0Lm1pbl9pZCA9IDAsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTE4NC1cdH0sIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoxODU6XHRcdC5jb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjE4NjpcdFx0Lm1pbl9pZCA9IERXTUFDX0NPUkVfNF8wMCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0xODctXHRcdC5yZWdzID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yMDUtXHR9LCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MjA2Olx0XHQuY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDNCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoyMDc6XHRcdC5taW5faWQgPSBEV01BQ19DT1JFXzRfMTAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMjA4LVx0XHQucmVncyA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMjI2LVx0fSwge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjIyNzpcdFx0LmNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MjI4Olx0XHQubWluX2lkID0gRFdNQUNfQ09SRV81XzEwLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTIyOS1cdFx0LnJlZ3MgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTI0Ny1cdH0sIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoyNDg6XHRcdC5jb3JlX3R5cGUgPSBEV01BQ19DT1JFX1hHTUFDLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTI0OS1cdFx0Lm1pbl9pZCA9IERXWEdNQUNfQ09SRV8yXzEwLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yNjktXHR9LCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MjcwOlx0XHQuY29yZV90eXBlID0gRFdNQUNfQ09SRV9YR01BQyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yNzEtXHRcdC5taW5faWQgPSBEV1hMR01BQ19DT1JFXzJfMDAsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jPTI5ND1zdG1tYWNfaHdpZl9maW5kKGVudW0gZHdtYWNfY29yZV90eXBlIGNvcmVfdHlwZSwgdTggc25wc3ZlciwgdTggZGV2X2lkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0zMDYtXHRcdFx0Y29udGludWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MzA3Olx0XHRpZiAoY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMzA4LVx0XHQgICAgZGV2X2lkICE9IGVudHJ5LVx1MDAzZWRldl9pZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM9MzE3PWludCBzdG1tYWNfaHdpZl9pbml0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMzUyLVx0XHRcdFwmIzM0O0ZhaWxlZCB0byBmaW5kIEhXIElGIChpZD0weCV4LCBnbWFjPSVkLyVkKVxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzozNTM6XHRcdFx0dmVyc2lvbi5zbnBzdmVyLCBjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjM1NDpcdFx0XHRjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMzU1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYz0yOD1zdGF0aWMgaW50IGVzdF9jb25maWd1cmUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBzdHJ1Y3Qgc3RtbWFjX2VzdCAqY2ZnLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYy01NS1cdGN0cmwgPSByZWFkbChlc3RfYWRkciAmIzQzOyBFU1RfQ09OVFJPTCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmM6NTY6XHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmMtNTctXHRcdGN0cmwgXHUwMDI2PSB+RVNUX1hHTUFDX1BUT1Y7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jPTgzPXN0YXRpYyB2b2lkIGVzdF9pcnFfc3RhdHVzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmMtMTUwLVx0aWYgKHN0YXR1cyBcdTAwMjYgRVNUX0JUUkUpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYzoxNTE6XHRcdGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYy0xNTItXHRcdFx0YnRybCA9IEZJRUxEX0dFVChFU1RfWEdNQUNfQlRSTCwgc3RhdHVzKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jPTMwMT1zdGF0aWMgdm9pZCBzdG1tYWNfZXRodG9vbF9nZXRkcnZpbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zMDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jOjMwNjpcdGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQyB8fFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYzozMDc6XHQgICAgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zMDgtXHRcdHN0cnNjcHkoaW5mby1cdTAwM2Vkcml2ZXIsIEdNQUNfRVRIVE9PTF9OQU1FLCBzaXplb2YoaW5mby1cdTAwM2Vkcml2ZXIpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM6MzA5Olx0ZWxzZSBpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zMTAtXHRcdHN0cnNjcHkoaW5mby1cdTAwM2Vkcml2ZXIsIFhHTUFDX0VUSFRPT0xfTkFNRSwgc2l6ZW9mKGluZm8tXHUwMDNlZHJpdmVyKSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYz0zNTA9c3RhdGljIGludCBzdG1tYWNfZXRodG9vbF9nZXRfcmVnc19sZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTM1My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM6MzU0Olx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtMzU1LVx0XHRyZXR1cm4gWEdNQUNfUkVHU0laRSAqIDQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jOjM1NjpcdGVsc2UgaWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtMzU3LVx0XHRyZXR1cm4gR01BQzRfUkVHX1NQQUNFX1NJWkU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYz0zNjE9c3RhdGljIHZvaWQgc3RtbWFjX2V0aHRvb2xfZ3JlZ3Moc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTM3MC1cdC8qIENvcHkgRE1BIHJlZ2lzdGVycyB0byB3aGVyZSBldGh0b29sIGV4cGVjdHMgdGhlbSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYzozNzE6XHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTM3Mi1cdFx0LyogR01BQzQgZHVtcHMgaXRzIERNQSByZWdpc3RlcnMgYXQgaXRzIERNQV9DSEFOX0JBU0VfQUREUiAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtMzc1LVx0XHQgICAgICAgTlVNX0RXTUFDNF9ETUFfUkVHUyAqIDQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYzozNzY6XHR9IGVsc2UgaWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgIT0gRFdNQUNfQ09SRV9YR01BQykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zNzctXHRcdG1lbWNweShcdTAwMjZyZWdfc3BhY2VbRVRIVE9PTF9ETUFfT0ZGU0VUXSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jPTUxNT1zdGF0aWMgdm9pZCBzdG1tYWNfZ2V0X2V0aHRvb2xfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTU1NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM6NTU2Olx0XHRpZiAocHJpdi1cdTAwM2VzeW5vcHN5c19pZCBcdTAwM2U9IERXTUFDX0NPUkVfM181MClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtNTU3LVx0XHRcdHN0bW1hY19tYWNfZGVidWcocHJpdiwgcHJpdi1cdTAwM2Vpb2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz02NDI9c3RhdGljIGludCBzdG1tYWNfaHd0c3RhbXBfc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NTctXHRcdFx0c25hcF90eXBlX3NlbCA9IFBUUF9UQ1JfU05BUFRZUFNFTF8xO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3NTg6XHRcdFx0aWYgKHByaXYtXHUwMDNlc3lub3BzeXNfaWQgXHUwMDNjIERXTUFDX0NPUkVfM183MCBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzU5Olx0XHRcdCAgICBwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlICE9IERXTUFDX0NPUkVfWEdNQUMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc2MC1cdFx0XHRcdHRzX2V2ZW50X2VuID0gUFRQX1RDUl9UU0VWTlRFTkE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz00Mzc5PXN0YXRpYyB2b2lkIHN0bW1hY19zZXRfZ3NvX2ZlYXR1cmVzKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDQwOC1cdG5kZXYtXHUwMDNlaHdfZmVhdHVyZXMgfD0gTkVUSUZfRl9UU08gfCBORVRJRl9GX1RTTzY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQ0MDk6XHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00NDEwLVx0XHRuZGV2LVx1MDAzZWh3X2ZlYXR1cmVzIHw9IE5FVElGX0ZfR1NPX1VEUF9MNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTUxMjQ9c3RhdGljIHVuc2lnbmVkIGludCBzdG1tYWNfcnhfYnVmMl9sZW4oc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTE0OS1cdC8qIE5vdCBHTUFDNCBhbmQgbm90IGxhc3QgZGVzY3JpcHRvciAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1MTUwOlx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgIT0gRFdNQUNfQ09SRV9HTUFDNCBcdTAwMjZcdTAwMjYgKHN0YXR1cyBcdTAwMjYgcnhfbm90X2xzKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTE1MS1cdFx0cmV0dXJuIHByaXYtXHUwMDNlZG1hX2NvbmYuZG1hX2J1Zl9zejtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTYyMDc9c3RhdGljIHZvaWQgc3RtbWFjX2NvbW1vbl9pbnRlcnJ1cHQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjIyOC1cdC8qIFRvIGhhbmRsZSBHTUFDIG93biBpbnRlcnJ1cHRzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjYyMjk6XHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUMgfHwgeG1hYykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02MjMwLVx0XHRpbnQgc3RhdHVzID0gc3RtbWFjX2hvc3RfaXJxX3N0YXR1cyhwcml2LCBcdTAwMjZwcml2LVx1MDAzZXhzdGF0cyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz02NTQzPXN0YXRpYyBpbnQgc3RtbWFjX2RtYV9jYXBfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY1NzgtXHRcdCAgIChwcml2LVx1MDAzZWRtYV9jYXAuaGFsZl9kdXBsZXgpID8gXCYjMzQ7WVwmIzM0OyA6IFwmIzM0O05cJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2NTc5Olx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NTgwLVx0XHRzZXFfcHJpbnRmKHNlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY1ODItXHRcdFx0ICAgcHJpdi1cdTAwM2VkbWFfY2FwLm11bHRpX2FkZHIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2NTgzOlx0fSBlbHNlIGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQzQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjU4NC1cdFx0c2VxX3ByaW50ZihzZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NjE0LVx0XHQgICAocHJpdi1cdTAwM2VkbWFfY2FwLmF0aW1lX3N0YW1wKSA/IFwmIzM0O1lcJiMzNDsgOiBcJiMzNDtOXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NjYxNTpcdGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY2MTYtXHRcdHNlcV9wcmludGYoc2VxLCBcJiMzNDtcXHRUaW1lc3RhbXAgU3lzdGVtIFRpbWUgU291cmNlOiAlc1xcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY2MjItXHRcdCAgIChwcml2LVx1MDAzZWRtYV9jYXAudHhfY29lKSA/IFwmIzM0O1lcJiMzNDsgOiBcJiMzNDtOXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NjYyMzpcdGlmIChwcml2LVx1MDAzZXN5bm9wc3lzX2lkIFx1MDAzZT0gRFdNQUNfQ09SRV80XzAwIHx8XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjY2MjQ6XHQgICAgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY2MjUtXHRcdHNlcV9wcmludGYoc2VxLCBcJiMzNDtcXHRJUCBDaGVja3N1bSBPZmZsb2FkIGluIFJYOiAlc1xcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTczNTU9c3RhdGljIHZvaWQgc3RtbWFjX3ByaW50X2FjdHBoeWlmKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTczNjEtXHRzd2l0Y2ggKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzM2MjpcdGNhc2UgRFdNQUNfQ09SRV9NQUMxMDA6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTczNjMtXHRcdHJldHVybjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzM2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzM2NTpcdGNhc2UgRFdNQUNfQ09SRV9HTUFDOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3MzY2Olx0Y2FzZSBEV01BQ19DT1JFX0dNQUM0OlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MzY3LVx0XHRwaHlpZl90YWJsZSA9IHN0bW1hY19kd21hY19hY3RwaHlpZjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTczNzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjczNzE6XHRjYXNlIERXTUFDX0NPUkVfWEdNQUM6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTczNzItXHRcdHBoeWlmX3RhYmxlID0gc3RtbWFjX2R3eGdtYWNfcGh5aWY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03Mzk3PXN0YXRpYyBpbnQgc3RtbWFjX2h3X2luaXQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzQ1Mi1cdFx0ZGV2X2luZm8ocHJpdi1cdTAwM2VkZXZpY2UsIFwmIzM0O1JYIENoZWNrc3VtIE9mZmxvYWQgRW5naW5lIHN1cHBvcnRlZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjc0NTM6XHRcdGlmIChwcml2LVx1MDAzZXN5bm9wc3lzX2lkIFx1MDAzYyBEV01BQ19DT1JFXzRfMDApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc0NTQtXHRcdFx0ZGV2X2luZm8ocHJpdi1cdTAwM2VkZXZpY2UsIFwmIzM0O0NPRSBUeXBlICVkXFxuXCYjMzQ7LCBwcml2LVx1MDAzZWh3LVx1MDAzZXJ4X2NzdW0pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzQ5Ny1cdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3NDk4Olx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NDk5LVx0XHRwcml2LVx1MDAzZWh3LVx1MDAzZW11bHRpX2FkZHIgPSBwcml2LVx1MDAzZWRtYV9jYXAubXVsdGlfYWRkcjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc1NDUtXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzU0NjpcdGlmICgocHJpdi1cdTAwM2VzeW5vcHN5c19pZCBcdTAwM2U9IERXTUFDX0NPUkVfM181MCB8fFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3NTQ3Olx0ICAgICBwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NTQ4LVx0ICAgICFwcml2LVx1MDAzZXBsYXQtXHUwMDNlcml3dF9vZmYpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTc4MTM9c3RhdGljIGludCBfX3N0bW1hY19kdnJfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2aWNlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzkyMi1cdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3OTIzOlx0aWYgKHByaXYtXHUwMDNlc3lub3BzeXNfaWQgXHUwMDNjIERXTUFDX0NPUkVfNV8yMClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzkyNC1cdFx0cHJpdi1cdTAwM2VwbGF0LVx1MDAzZWRtYV9jZmctXHUwMDNlZGNoZSA9IGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODAyMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6ODAyMTpcdGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTgwMjItXHRcdG5kZXYtXHUwMDNlbWF4X210dSA9IFhHTUFDX0pVTUJPX0xFTjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6ODAyMzpcdGVsc2UgaWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2VlbmhfZGVzYyB8fCBwcml2LVx1MDAzZXN5bm9wc3lzX2lkIFx1MDAzZT0gRFdNQUNfQ09SRV80XzAwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04MDI0LVx0XHRuZGV2LVx1MDAzZW1heF9tdHUgPSBKVU1CT19MRU47XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYz0yOTk9c3RhdGljIGludCBzdG1tYWNfbWRpb19yZWFkX2MyMihzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5YWRkciwgaW50IHBoeXJlZylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTMwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM6MzA0Olx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtMzA1LVx0XHRjbWQgPSBNSUlfR01BQzRfUkVBRDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jPTM0MT1zdGF0aWMgaW50IHN0bW1hY19tZGlvX3dyaXRlX2MyMihzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5YWRkciwgaW50IHBoeXJlZyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTM0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM6MzQ3Olx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtMzQ4LVx0XHRjbWQgPSBNSUlfR01BQzRfV1JJVEU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYz0zODE9aW50IHN0bW1hY19tZGlvX3Jlc2V0KHN0cnVjdCBtaWlfYnVzICpidXMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy00MTktXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM6NDIwOlx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgIT0gRFdNQUNfQ09SRV9HTUFDNClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNDIxLVx0XHR3cml0ZWwoMCwgcHJpdi1cdTAwM2Vpb2FkZHIgJiM0MzsgbWlpX2FkZHJlc3MpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM9NTM2PXN0YXRpYyB1MzIgc3RtbWFjX2Nsa19jc3Jfc2V0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTU1NC1cdFx0cmF0ZXMgPSBzdG1tYWNfc3VuOGlfY3NyX3RvX21kYztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM6NTU1Olx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNTU2LVx0XHRyYXRlcyA9IHN0bW1hY194Z21hY19jc3JfdG9fbWRjO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM9NTk1PWludCBzdG1tYWNfbWRpb19yZWdpc3RlcihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTYyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM6NjIyOlx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy02MjMtXHRcdG5ld19idXMtXHUwMDNlcmVhZCA9IFx1MDAyNnN0bW1hY194Z21hYzJfbWRpb19yZWFkX2MyMjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTYzOS1cdFx0bmV3X2J1cy1cdTAwM2V3cml0ZSA9IFx1MDAyNnN0bW1hY19tZGlvX3dyaXRlX2MyMjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM6NjQwOlx0XHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTY0MS1cdFx0XHRuZXdfYnVzLVx1MDAzZXJlYWRfYzQ1ID0gXHUwMDI2c3RtbWFjX21kaW9fcmVhZF9jNDU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy02NjUtXHQvKiBMb29rcyBsaWtlIHdlIG5lZWQgYSBkdW1teSByZWFkIGZvciBYR01BQyBvbmx5IGFuZCBDNDUgUEhZcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYzo2NjY6XHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy02NjctXHRcdHN0bW1hY194Z21hYzJfbWRpb19yZWFkX2M0NShuZXdfYnVzLCAwLCAwLCAwKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjM9c3RhdGljIHZvaWQgY29tbW9uX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTI2LVx0cGxhdC1cdTAwM2VjbGtfY3NyID0gU1RNTUFDX0NTUl8yMF8zNU07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6Mjc6XHRwbGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yOC1cdHBsYXQtXHUwMDNlZm9yY2Vfc2ZfZG1hX21vZGUgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz01ND1zdGF0aWMgaW50IHNucHNfZ21hYzVfZGVmYXVsdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy01OS1cdHBsYXQtXHUwMDNlY2xrX2NzciA9IFNUTU1BQ19DU1JfMjUwXzMwME07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6NjA6XHRwbGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtNjEtXHRwbGF0LVx1MDAzZWZvcmNlX3NmX2RtYV9tb2RlID0gdHJ1ZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYz00MTQ9c3RtbWFjX3Byb2JlX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCB1OCAqbWFjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTUxOC1cdFx0XHRcdFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBwbGF0LVx1MDAzZW11bHRpY2FzdF9maWx0ZXJfYmlucyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYzo1MTk6XHRcdHBsYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTIwLVx0XHRwbGF0LVx1MDAzZXBtdCA9IHRydWU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTIzLVx0aWYgKG9mX2RldmljZV9pc19jb21wYXRpYmxlKG5wLCBcJiMzNDtzbnBzLGR3bWFjLTMuNDBhXCYjMzQ7KSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmM6NTI0Olx0XHRwbGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTUyNS1cdFx0cGxhdC1cdTAwM2VlbmhfZGVzYyA9IHRydWU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTMxLVx0aWYgKG9mX2RldmljZV9jb21wYXRpYmxlX21hdGNoKG5wLCBzdG1tYWNfZ21hYzRfY29tcGF0cykpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjUzMjpcdFx0cGxhdC1cdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTMzLVx0XHRwbGF0LVx1MDAzZXBtdCA9IHRydWU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTQ1LVx0aWYgKG9mX2RldmljZV9pc19jb21wYXRpYmxlKG5wLCBcJiMzNDtzbnBzLGR3eGdtYWNcJiMzNDspKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYzo1NDY6XHRcdHBsYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9YR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTU0Ny1cdFx0cGxhdC1cdTAwM2VwbXQgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuYz0zMzU9dm9pZCBzdG1tYWNfcHRwX3JlZ2lzdGVyKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmMtMzQ4LVx0cHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNkY19lcnJvcl9hZGogPSAwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5jOjM0OTpcdGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQzQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmMtMzUwLVx0XHRwcml2LVx1MDAzZXBsYXQtXHUwMDNlY2RjX2Vycm9yX2FkaiA9ICgyICogTlNFQ19QRVJfU0VDKSAvIHByaXYtXHUwMDNlcGxhdC1cdTAwM2VjbGtfcHRwX3JhdGU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jPTczNj1zdGF0aWMgaW50IHN0bW1hY190ZXN0X2Zsb3djdHJsKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfc2VsZnRlc3RzLmMtNzU1LVx0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfc2VsZnRlc3RzLmM6NzU2Olx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgIT0gRFdNQUNfQ09SRV9NQUMxMDAgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfc2VsZnRlc3RzLmMtNzU3LVx0ICAgIHJ4X2ZpZm9fc2l6ZSAvIHByaXYtXHUwMDNlcGxhdC1cdTAwM2VyeF9xdWV1ZXNfdG9fdXNlIFx1MDAzYyA0MDk2KVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDA3OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQxMzAyCgkJCQkJCQlvdXRwdXQ6IDEzMwoJCQkJCQkJdGhvdWdodHM6IDEwNjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHlzaXMgb2YgYHN0bW1hY2AgRHJpdmVyIEZ1enppbmcgRmVhc2liaWxpdHkqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYHN0bW1hY2AgZXRoZXJuZXQgZHJpdmVyLiBJdCYjMzk7cyBmb3IgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMgKERXTUFDKSBhbmQgU1RNaWNybyBNQUNzLiBNeSBpbml0aWFsIHF1ZXN0aW9uIGlzOiBjYW4gSSBldmVuIHJlYWNoIHRoaXMgdGhpbmcgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50IGxpa2UgUUVNVSBvciBHQ0U/CgpUaGUgaW5zdHJ1Y3Rpb25zIHRlbGwgbWUgdG8gYXZvaWQgY29kZSB0aGF0IGlzIHVucmVhY2hhYmxlIGluIHRoZXNlIGVudmlyb25tZW50cy4gVGhhdCBpbmNsdWRlcyBkcml2ZXJzIGZvciBoYXJkd2FyZSB0aGF0IGlzbiYjMzk7dCBlbXVsYXRlZCwgbGlrZSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2ggZHJpdmVycywgU21hcnROSUNzLCBHUFUgZHJpdmVycyByZXF1aXJpbmcgcGh5c2ljYWwgUENJZSBjYXJkcywgYW5kIGRyaXZlciBjbGVhbnVwIHJvdXRpbmVzIG9ubHkgdHJpZ2dlcmVkIGJ5IFBDSSBob3QtdW5wbHVnLgoKU28sIGlzIGBzdG1tYWNgIGVtdWxhdGVkIGluIFFFTVUgb3IgR0NFPyBMZXQmIzM5O3MgYnJlYWsgaXQgZG93bjoKCiogICAqKlFFTVUgKHg4NlxfNjQsIGFybTY0IGB2aXJ0YCBtYWNoaW5lKToqKiBUaGUgc3RhbmRhcmQgbmV0d29yayBpbnRlcmZhY2VzIGluIFFFTVUgYXJlIHRoaW5ncyBsaWtlIGB2aXJ0aW8tbmV0LXBjaWAsIGBlMTAwMGAsIGFuZCBzbyBvbi4gTm9uZSBvZiB0aGUgbGlzdGVkIG9uZXMgbWF0Y2ggYHN0bW1hY2AgZGlyZWN0bHkuIEkgYWxzbyBuZWVkIHRvIGNvbnNpZGVyIFNvQyBwbGF0Zm9ybSBkZXZpY2VzLiBMb29raW5nIGF0IEFSTSBtYWNoaW5lczoKICAgICogICBgdmlydGAgZG9lc24mIzM5O3QgaGF2ZSBgc3RtbWFjYCwgb25seSB2aXJ0aW8vcGNpCiAgICAqICAgQWxsd2lubmVyIEExMCAoY3ViaWVib2FyZCkgaGFzIGBhbGx3aW5uZXItZW1hY2AsIGJ1dCBub3QgYGR3bWFjYCBvciBgc3RtbWFjYC4KICAgICogICBBbGx3aW5uZXIgSDMgKG9yYW5nZXBpLXBjKSBoYXMgYGFsbHdpbm5lci1zdW44aS1lbWFjYCB3aGljaCB1c2VzIGBkd21hYy1zdW44aS5jYCwgYnV0IGl0JiMzOTtzIG5vdCB0aGUgc2FtZSBhcyB0aGUgdGFyZ2V0OiB0aGUgcGF0Y2ggaXMgc3BlY2lmaWNhbGx5IGZvciBHTUFDNCAvIGR3bWFjNC4KICAgICogICBJdCBzZWVtcyB0aGVyZSYjMzk7cyBubyBRRU1VIG1hY2hpbmUgdGhhdCBlbXVsYXRlcyBEV01BQzQgLyBEV01BQ1xfQ09SRVxfR01BQzQuCiogICAqKkdDRSAoR29vZ2xlIENvbXB1dGUgRW5naW5lKToqKiBPbmx5IGB2aXJ0aW8tbmV0YCBvciBgZ3ZlYCBhcmUgYXZhaWxhYmxlLiBObyBwaHlzaWNhbCBEV01BQyBoYXJkd2FyZSBoZXJlIGVpdGhlci4KClNvLCB3aXRob3V0IGFueSBwaHlzaWNhbCBoYXJkd2FyZSwgY2FuIEkgcmVhY2ggYHN0bW1hY2A/IEFsbCBgc3RtbWFjYCBkcml2ZXJzIGFyZSBwcm9iZWQgZWl0aGVyIHZpYSBgcGxhdGZvcm1fZHJpdmVyYCAodXNpbmcgYW4gT0YgLyBkZXZpY2UgdHJlZSB0byBtYXRjaCBhIHNwZWNpZmljIFNvQyBsaWtlIFF1YWxjb21tIEVUSFFPUywgTlhQIFMzMiwgUm9ja2NoaXAgUkszNTg4LCBldGMuKSBvciBgcGNpX2RyaXZlcmAgKEludGVsIEVsa2hhcnQgTGFrZSAvIFRpZ2VyIExha2UgR2JFLCBNb3RvcmNvbW0sIExvb25nc29uIExTN0ExMDAwLCBTVE1pY3JvIFBDSSkuIFRoZXNlIGFyZSBub3QgcHJlc2VudCBvciBlbXVsYXRlZCBpbiBzdGFuZGFyZCBlbnZpcm9ubWVudHMuCgpUaGVyZWZvcmUsIHRoaXMgY29kZSBwYXRoIGlzIGluIHZlbmRvci1zcGVjaWZpYyBTb0MvcGh5c2ljYWwgZXRoZXJuZXQgaGFyZHdhcmUgZHJpdmVycyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UsIGFuZCBpdCYjMzk7cyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4KCkxldCYjMzk7cyBkb3VibGUtY2hlY2sgYWxsIHRoZSBkZXRhaWxzOgoKMS4gICoqV29ydGhGdXp6aW5nPWZhbHNlPyoqIFllcywgYmVjYXVzZSB0aGUgY29kZSBwYXRoIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLgoyLiAgKipSZWFzb25pbmc6KiogVGhlIHBhdGNoIG1vZGlmaWVzIHVuaWNhc3QgTUFDIGZpbHRlcmluZyBsb2dpYyBhbmQgaGFyZHdhcmUgZmVhdHVyZSBwYXJzaW5nIGluIHRoZSBTeW5vcHN5cyBEZXNpZ25XYXJlIE1BQyAoRFdNQUM0KSAvIFNUTU1BQyBFdGhlcm5ldCBkcml2ZXIsIHNwZWNpZmljYWxseSBpbiBgZHdtYWM0X2NvcmUuY2AsIGBkd21hYzRfZG1hLmNgLCBhbmQgYHN0bW1hY19tYWluLmNgLiBEV01BQzQgaGFyZHdhcmUgaXMgb25seSBwcmVzZW50IG9uIHNwZWNpZmljIHBoeXNpY2FsIFNvQ3MgYW5kIFBDSSBjYXJkcyAoZS5nLiBJbnRlbCBFbGtoYXJ0IExha2UsIE5YUCBTMzIsIFF1YWxjb21tIEVUSFFPUykgd2hpY2ggYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIGF2YWlsYWJsZSBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyBsaWtlIEdDRS4KMy4gICoqRm9jdXNTeW1ib2xzOioqIFxbXS4KNC4gICoqRW5hYmxlQ29uZmlnczoqKiBcW10uCgpPa2F5LCB0aGF0JiMzOTtzIGNvbmNsdXNpdmUuIExldCYjMzk7cyBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDA3OjMxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFN5bm9wc3lzIERlc2lnbldhcmUgTUFDIDQgKERXTUFDNCkgdW5pY2FzdCBmaWx0ZXIgY29uZmlndXJhdGlvbiBhbmQgaGFyZHdhcmUgZmVhdHVyZSBkZXRlY3Rpb24gaW4gdGhlIFNUTU1BQyBldGhlcm5ldCBkcml2ZXIuIERXTUFDNCBjb250cm9sbGVycyBhcmUgZW1iZWRkZWQgaW4gcGh5c2ljYWwgU29DcyAoZS5nLiwgSW50ZWwgRWxraGFydCBMYWtlLCBRdWFsY29tbSBFVEhRT1MsIE5YUCBTMzIpIGFuZCBQQ0kgZGV2aWNlcyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBjbG91ZCBlbnZpcm9ubWVudHMgKEdDRSkuIENvbnNlcXVlbnRseSwgdGhlc2UgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMgNCAoRFdNQUM0KSB1bmljYXN0IGZpbHRlciBjb25maWd1cmF0aW9uIGFuZCBoYXJkd2FyZSBmZWF0dXJlIGRldGVjdGlvbiBpbiB0aGUgU1RNTUFDIGV0aGVybmV0IGRyaXZlci4gRFdNQUM0IGNvbnRyb2xsZXJzIGFyZSBlbWJlZGRlZCBpbiBwaHlzaWNhbCBTb0NzIChlLmcuLCBJbnRlbCBFbGtoYXJ0IExha2UsIFF1YWxjb21tIEVUSFFPUywgTlhQIFMzMikgYW5kIFBDSSBkZXZpY2VzIHRoYXQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGNsb3VkIGVudmlyb25tZW50cyAoR0NFKS4gQ29uc2VxdWVudGx5LCB0aGVzZSBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDA3OjMxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0zMVQwNzozMDozMC4zMTAwMzcwOTJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MDE3ODUzNDM3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBTeW5vcHN5cyBEZXNpZ25XYXJlIE1BQyA0IChEV01BQzQpIHVuaWNhc3QgZmlsdGVyIGNvbmZpZ3VyYXRpb24gYW5kIGhhcmR3YXJlIGZlYXR1cmUgZGV0ZWN0aW9uIGluIHRoZSBTVE1NQUMgZXRoZXJuZXQgZHJpdmVyLiBEV01BQzQgY29udHJvbGxlcnMgYXJlIGVtYmVkZGVkIGluIHBoeXNpY2FsIFNvQ3MgKGUuZy4sIEludGVsIEVsa2hhcnQgTGFrZSwgUXVhbGNvbW0gRVRIUU9TLCBOWFAgUzMyKSBhbmQgUENJIGRldmljZXMgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgdmlydHVhbGl6ZWQgY2xvdWQgZW52aXJvbm1lbnRzIChHQ0UpLiBDb25zZXF1ZW50bHksIHRoZXNlIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMDc6MzA6MzAuMzEwMDQyMDUyWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNTgwNDUwNDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBiZjQ2ZmZmNTY1ZTA3YWY0NTFhODkzOTM4YThiNjI1ODUwNDYwNmVjXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gQXVnIDMxIDA3OjMwOjI5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmhcXG5pbmRleCA5MjdlYTYyMzAwNzNmLi4xNzI5ZmIyOWVjZTM4IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmhcXG5AQCAtNDE5LDYgKzQxOSw4IEBAIHN0cnVjdCBkbWFfZmVhdHVyZXMge1xcbiBcXHR1bnNpZ25lZCBpbnQgaGFsZl9kdXBsZXg7XFxuIFxcdHVuc2lnbmVkIGludCBoYXNoX2ZpbHRlcjtcXG4gXFx0dW5zaWduZWQgaW50IG11bHRpX2FkZHI7XFxuK1xcdHVuc2lnbmVkIGludCBhZGRpdGlvbmFsXzMyX2FkZHI7XFxuK1xcdHVuc2lnbmVkIGludCBhZGRpdGlvbmFsXzY0X2FkZHI7XFxuIFxcdHVuc2lnbmVkIGludCBwY3M7XFxuIFxcdHVuc2lnbmVkIGludCBzbWFfbWRpbztcXG4gXFx0dW5zaWduZWQgaW50IHBtdF9yZW1vdGVfd2FrZV91cDtcXG5AQCAtNjI3LDYgKzYyOSw3IEBAIHN0cnVjdCBtYWNfZGV2aWNlX2luZm8ge1xcbiBcXHR2b2lkIF9faW9tZW0gKnBjc3I7ICAgICAvKiB2cG9pbnRlciB0byBkZXZpY2UgQ1NScyAqL1xcbiBcXHR1bnNpZ25lZCBpbnQgbXVsdGljYXN0X2ZpbHRlcl9iaW5zO1xcbiBcXHR1bnNpZ25lZCBpbnQgdW5pY2FzdF9maWx0ZXJfZW50cmllcztcXG4rXFx0dW5zaWduZWQgaW50IG11bHRpX2FkZHI7XFxuIFxcdHVuc2lnbmVkIGludCBtY2FzdF9iaXRzX2xvZzI7XFxuIFxcdHVuc2lnbmVkIGludCByeF9jc3VtO1xcbiBcXHR1bnNpZ25lZCBpbnQgbnVtX3ZsYW47XFxuQEAgLTYzNSw2ICs2MzgsOCBAQCBzdHJ1Y3QgbWFjX2RldmljZV9pbmZvIHtcXG4gXFx0dTggdmxhbl9mYWlsX3E7XFxuIFxcdGJvb2wgaHdfdmxhbl9lbjtcXG4gXFx0Ym9vbCByZXZlcnNlX3NnbWlpX2VuYWJsZTtcXG4rXFx0Ym9vbCBhZGRpdGlvbmFsXzMyX2FkZHI7XFxuK1xcdGJvb2wgYWRkaXRpb25hbF82NF9hZGRyO1xcbiBcXG4gXFx0LyogVGhpcyBzcGlubG9jayBwcm90ZWN0cyByZWFkLW1vZGlmeS13cml0ZSBvZiB0aGUgaW50ZXJydXB0XFxuIFxcdCAqIG1hc2svZW5hYmxlIHJlZ2lzdGVycy5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzQuaFxcbmluZGV4IDYzODI4MzY4MjhiYWMuLjY5Njg0NjUzMTIyOTUgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0LmhcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzQuaFxcbkBAIC03NSw4ICs3NSw2IEBAXFxuICNkZWZpbmUgR01BQ19QQUNLRVRfRklMVEVSX0lQRkVcXHRcXHRCSVQoMjApXFxuICNkZWZpbmUgR01BQ19QQUNLRVRfRklMVEVSX1JBXFx0XFx0QklUKDMxKVxcbiBcXG4tI2RlZmluZSBHTUFDX01BWF9QRVJGRUNUX0FERFJFU1NFU1xcdDEyOFxcbi1cXG4gLyogTUFDIFJYIFF1ZXVlIEVuYWJsZSAqL1xcbiAjZGVmaW5lIEdNQUNfUlhfUVVFVUVfQ0xFQVIocXVldWUpXFx0fihHRU5NQVNLKDEsIDApIFxcdTAwM2NcXHUwMDNjICgocXVldWUpICogMikpXFxuICNkZWZpbmUgR01BQ19SWF9BVl9RVUVVRV9FTkFCTEUocXVldWUpXFx0QklUKChxdWV1ZSkgKiAyKVxcbkBAIC0xNzYsNyArMTc0LDkgQEAgZW51bSBwb3dlcl9ldmVudCB7XFxuIFxcbiAvKiBNQUMgSFcgZmVhdHVyZXMwIGJpdG1hcCAqL1xcbiAjZGVmaW5lIEdNQUNfSFdfRkVBVF9TQVZMQU5JTlNcXHRcXHRCSVQoMjcpXFxuLSNkZWZpbmUgR01BQ19IV19GRUFUX0FERE1BQ1xcdFxcdEJJVCgxOClcXG4rI2RlZmluZSBHTUFDX0hXX0ZFQVRfTUFDQURSNjRTRUxcXHRCSVQoMjQpXFxuKyNkZWZpbmUgR01BQ19IV19GRUFUX01BQ0FEUjMyU0VMXFx0QklUKDIzKVxcbisjZGVmaW5lIEdNQUNfSFdfRkVBVF9BRERNQUNcXHRcXHRHRU5NQVNLKDIyLCAxOClcXG4gI2RlZmluZSBHTUFDX0hXX0ZFQVRfUlhDT0VTRUxcXHRcXHRCSVQoMTYpXFxuICNkZWZpbmUgR01BQ19IV19GRUFUX1RYQ09TRUxcXHRcXHRCSVQoMTQpXFxuICNkZWZpbmUgR01BQ19IV19GRUFUX0VFRVNFTFxcdFxcdEJJVCgxMylcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2NvcmUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9jb3JlLmNcXG5pbmRleCAxOGIzNTdiMjU3Y2MwLi5mYjViOTZhNDM1MDU0IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9jb3JlLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzRfY29yZS5jXFxuQEAgLTM2NSwyMiArMzY1LDYzIEBAIHN0YXRpYyB2b2lkIGR3bWFjNF9wbXQoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHVuc2lnbmVkIGxvbmcgbW9kZSlcXG4gXFx0d3JpdGVsKHBtdCwgaW9hZGRyICsgR01BQ19QTVQpO1xcbiB9XFxuIFxcbisvKipcXG4rICogZHdtYWM0X3VtYWNfYWRkcl9zbG90IC0gR2V0IHRoZSBVQyBmaWx0ZXIgc2xvdCBmb3IgdGhlIE50aCBNQUMgYWRkcmVzc1xcbisgKiBAaHc6IFRoZSBNQUMgZGV2aWNlIGluZm9cXG4rICogQHJlZ19uOiBUaGUgTUFDIGFkZHJlc3MncyBpbmRleCBpbiB0aGUgVUMgbGlzdFxcbisgKlxcbisgKiBPbiBkd21hYzQgdGhlIHNsb3RzIGF2YWlsYWJsZSBmb3IgVW5pY2FzdCBNQUMgZmlsdGVyaW5nIGFyZSBjb25maWd1cmVkIHdoZW5cXG4rICogaW50ZWdyYXRpbmcgdGhlIElQLlxcbisgKlxcbisgKiAgLSBTbG90IDAgaXMgYWx3YXlzIGF2YWlsYWJsZSwgdXNlZCB0byBzdG9yZSB0aGUgcHJpbWFyeSBNQUMgYWRkcmVzc1xcbisgKiAgLSBGcm9tIDEgdG8gMzEsIHRoZSBudW1iZXIgb2YgaW1wbGVtZW50ZWQgc2xvdHMgaXMgc2V0IGluIGh3LVxcdTAwM2VtdWx0aV9hZGRyXFxuKyAqICAtIEZyb20gMzIgdG8gNjMsIHRoZSByYW5nZSBpcyBhdmFpbGFibGUgaWYgaHctXFx1MDAzZWFkZGl0aW9uYWxfMzJfYWRkclxcbisgKiAgICBpcyBzZXRcXG4rICogIC0gRnJvbSA2NCB0byAxMjcsIHRoZSByYW5nZSBpcyBhdmFpbGFibGUgaWYgaHctXFx1MDAzZWFkZGl0aW9uYWxfNjRfYWRkciBpcyBzZXRcXG4rICpcXG4rICogQWxsIHRoZSByYW5nZXMgY2FuIGJlIGNvbmZpZ3VyZWQgaW5kZXBlbmRlbnRseSAoZS5nLiA2NCAtXFx1MDAzZSAxMjcgY2FuIGJlXFxuKyAqIGF2YWlsYWJsZSwgYnV0IG5vdCAzMiAtXFx1MDAzZSA2MylcXG4rICpcXG4rICogUmV0dXJuczogVGhlIHBoeXNpY2FsIHNsb3QgaW5kZXggaW4gdGhlIFVDIGZpbHRlclxcbisgKi9cXG4rc3RhdGljIHVuc2lnbmVkIGludCBkd21hYzRfdW1hY19hZGRyX3Nsb3Qoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXFxuK1xcdFxcdFxcdFxcdFxcdCAgdW5zaWduZWQgaW50IHJlZ19uKVxcbit7XFxuK1xcdHVuc2lnbmVkIGludCBlbXB0eV9zbG90cyA9IDA7XFxuK1xcbitcXHQvKiByZWdfbiBpcyBpbiB0aGUgMS0zMSBiYW5rIDogMSB0byAxIG1hcHBpbmcgKi9cXG4rXFx0aWYgKHJlZ19uIFxcdTAwM2MgKGh3LVxcdTAwM2VtdWx0aV9hZGRyICsgMSkpXFxuK1xcdFxcdHJldHVybiByZWdfbjtcXG4rXFxuK1xcdC8qIEdhcCBiZXR3ZWVuIHRoZSBsYXN0IGFkZHJlc3MgaW4gdGhlIDEtXFx1MDAzZTMxIHJhbmdlIGFuZCB0aGUgbmV4dCBzbG90ICovXFxuK1xcdGlmIChody1cXHUwMDNlYWRkaXRpb25hbF8zMl9hZGRyKVxcbitcXHRcXHRlbXB0eV9zbG90cyA9IDMyIC0gKGh3LVxcdTAwM2VtdWx0aV9hZGRyICsgMSk7XFxuK1xcdGVsc2UgaWYgKGh3LVxcdTAwM2VhZGRpdGlvbmFsXzY0X2FkZHIpXFxuK1xcdFxcdGVtcHR5X3Nsb3RzID0gNjQgLSAoaHctXFx1MDAzZW11bHRpX2FkZHIgKyAxKTtcXG4rXFxuK1xcdHJldHVybiByZWdfbiArIGVtcHR5X3Nsb3RzO1xcbit9XFxuK1xcbiBzdGF0aWMgdm9pZCBkd21hYzRfc2V0X3VtYWNfYWRkcihzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcXG4gXFx0XFx0XFx0XFx0IGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZHIsIHVuc2lnbmVkIGludCByZWdfbilcXG4ge1xcbiBcXHR2b2lkIF9faW9tZW0gKmlvYWRkciA9IGh3LVxcdTAwM2VwY3NyO1xcbitcXHR1bnNpZ25lZCBpbnQgc2xvdDtcXG4gXFxuLVxcdHN0bW1hY19kd21hYzRfc2V0X21hY19hZGRyKGlvYWRkciwgYWRkciwgR01BQ19BRERSX0hJR0gocmVnX24pLFxcbi1cXHRcXHRcXHRcXHQgICBHTUFDX0FERFJfTE9XKHJlZ19uKSk7XFxuK1xcdHNsb3QgPSBkd21hYzRfdW1hY19hZGRyX3Nsb3QoaHcsIHJlZ19uKTtcXG4rXFx0c3RtbWFjX2R3bWFjNF9zZXRfbWFjX2FkZHIoaW9hZGRyLCBhZGRyLCBHTUFDX0FERFJfSElHSChzbG90KSxcXG4rXFx0XFx0XFx0XFx0ICAgR01BQ19BRERSX0xPVyhzbG90KSk7XFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkIGR3bWFjNF9nZXRfdW1hY19hZGRyKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxcbiBcXHRcXHRcXHRcXHQgdW5zaWduZWQgY2hhciAqYWRkciwgdW5zaWduZWQgaW50IHJlZ19uKVxcbiB7XFxuIFxcdHZvaWQgX19pb21lbSAqaW9hZGRyID0gaHctXFx1MDAzZXBjc3I7XFxuK1xcdHVuc2lnbmVkIGludCBzbG90O1xcbiBcXG4tXFx0c3RtbWFjX2dldF9tYWNfYWRkcihpb2FkZHIsIGFkZHIsIEdNQUNfQUREUl9ISUdIKHJlZ19uKSxcXG4tXFx0XFx0XFx0ICAgIEdNQUNfQUREUl9MT1cocmVnX24pKTtcXG4rXFx0c2xvdCA9IGR3bWFjNF91bWFjX2FkZHJfc2xvdChodywgcmVnX24pO1xcbitcXHRzdG1tYWNfZ2V0X21hY19hZGRyKGlvYWRkciwgYWRkciwgR01BQ19BRERSX0hJR0goc2xvdCksXFxuK1xcdFxcdFxcdCAgICBHTUFDX0FERFJfTE9XKHNsb3QpKTtcXG4gfVxcbiBcXG4gc3RhdGljIGludCBkd21hYzRfc2V0X2xwaV9tb2RlKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxcbkBAIC01MjIsOSArNTYzLDYgQEAgc3RhdGljIHZvaWQgZHdtYWM0X3NldF9maWx0ZXIoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXFxuIFxcbiBcXHQvKiBIYW5kbGUgbXVsdGlwbGUgdW5pY2FzdCBhZGRyZXNzZXMgKi9cXG4gXFx0aWYgKG5ldGRldl91Y19jb3VudChkZXYpICsgMSBcXHUwMDNlIGh3LVxcdTAwM2V1bmljYXN0X2ZpbHRlcl9lbnRyaWVzKSB7XFxuLVxcdFxcdC8qIFN3aXRjaCB0byBwcm9taXNjdW91cyBtb2RlIGlmIG1vcmUgdGhhbiAxMjggYWRkcnNcXG4tXFx0XFx0ICogYXJlIHJlcXVpcmVkXFxuLVxcdFxcdCAqL1xcbiBcXHRcXHR2YWx1ZSB8PSBHTUFDX1BBQ0tFVF9GSUxURVJfUFI7XFxuIFxcdH0gZWxzZSB7XFxuIFxcdFxcdHN0cnVjdCBuZXRkZXZfaHdfYWRkciAqaGE7XFxuQEAgLTUzNSw5ICs1NzMsMTEgQEAgc3RhdGljIHZvaWQgZHdtYWM0X3NldF9maWx0ZXIoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXFxuIFxcdFxcdFxcdHJlZysrO1xcbiBcXHRcXHR9XFxuIFxcbi1cXHRcXHR3aGlsZSAocmVnIFxcdTAwM2MgR01BQ19NQVhfUEVSRkVDVF9BRERSRVNTRVMpIHtcXG4tXFx0XFx0XFx0d3JpdGVsKDAsIGlvYWRkciArIEdNQUNfQUREUl9ISUdIKHJlZykpO1xcbi1cXHRcXHRcXHR3cml0ZWwoMCwgaW9hZGRyICsgR01BQ19BRERSX0xPVyhyZWcpKTtcXG4rXFx0XFx0d2hpbGUgKHJlZyBcXHUwMDNjIGh3LVxcdTAwM2V1bmljYXN0X2ZpbHRlcl9lbnRyaWVzKSB7XFxuK1xcdFxcdFxcdHVuc2lnbmVkIGludCBzbG90ID0gZHdtYWM0X3VtYWNfYWRkcl9zbG90KGh3LCByZWcpO1xcbitcXG4rXFx0XFx0XFx0d3JpdGVsKDAsIGlvYWRkciArIEdNQUNfQUREUl9ISUdIKHNsb3QpKTtcXG4rXFx0XFx0XFx0d3JpdGVsKDAsIGlvYWRkciArIEdNQUNfQUREUl9MT1coc2xvdCkpO1xcbiBcXHRcXHRcXHRyZWcrKztcXG4gXFx0XFx0fVxcbiBcXHR9XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9kbWEuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9kbWEuY1xcbmluZGV4IDIzZmZlMWFkY2QwZDMuLjE0YWMzZjBlNTFmNzcgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2RtYS5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2RtYS5jXFxuQEAgLTM4OCw2ICszODgsOCBAQCBzdGF0aWMgaW50IGR3bWFjNF9nZXRfaHdfZmVhdHVyZSh2b2lkIF9faW9tZW0gKmlvYWRkcixcXG4gXFx0ZG1hX2NhcC1cXHUwMDNlaGFsZl9kdXBsZXggPSAoaHdfY2FwIFxcdTAwMjYgR01BQ19IV19GRUFUX0hEU0VMKSBcXHUwMDNlXFx1MDAzZSAyO1xcbiBcXHRkbWFfY2FwLVxcdTAwM2V2bGhhc2ggPSAoaHdfY2FwIFxcdTAwMjYgR01BQ19IV19GRUFUX1ZMSEFTSCkgXFx1MDAzZVxcdTAwM2UgNDtcXG4gXFx0ZG1hX2NhcC1cXHUwMDNlbXVsdGlfYWRkciA9IChod19jYXAgXFx1MDAyNiBHTUFDX0hXX0ZFQVRfQURETUFDKSBcXHUwMDNlXFx1MDAzZSAxODtcXG4rXFx0ZG1hX2NhcC1cXHUwMDNlYWRkaXRpb25hbF8zMl9hZGRyID0gKGh3X2NhcCBcXHUwMDI2IEdNQUNfSFdfRkVBVF9NQUNBRFIzMlNFTCkgXFx1MDAzZVxcdTAwM2UgMjM7XFxuK1xcdGRtYV9jYXAtXFx1MDAzZWFkZGl0aW9uYWxfNjRfYWRkciA9IChod19jYXAgXFx1MDAyNiBHTUFDX0hXX0ZFQVRfTUFDQURSNjRTRUwpIFxcdTAwM2VcXHUwMDNlIDI0O1xcbiBcXHRkbWFfY2FwLVxcdTAwM2VwY3MgPSAoaHdfY2FwIFxcdTAwMjYgR01BQ19IV19GRUFUX1BDU1NFTCkgXFx1MDAzZVxcdTAwM2UgMztcXG4gXFx0ZG1hX2NhcC1cXHUwMDNlc21hX21kaW8gPSAoaHdfY2FwIFxcdTAwMjYgR01BQ19IV19GRUFUX1NNQVNFTCkgXFx1MDAzZVxcdTAwM2UgNTtcXG4gXFx0ZG1hX2NhcC1cXHUwMDNlcG10X3JlbW90ZV93YWtlX3VwID0gKGh3X2NhcCBcXHUwMDI2IEdNQUNfSFdfRkVBVF9SV0tTRUwpIFxcdTAwM2VcXHUwMDNlIDY7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXFxuaW5kZXggZjJmYzg5MTc2NjU0ZS4uODA0MTNiYThkZjU1ZSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xcbkBAIC02NTgwLDYgKzY1ODAsMTggQEAgc3RhdGljIGludCBzdG1tYWNfZG1hX2NhcF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KVxcbiBcXHRcXHRzZXFfcHJpbnRmKHNlcSxcXG4gXFx0XFx0XFx0ICAgXFxcIlxcXFx0TnVtYmVyIG9mIEFkZGl0aW9uYWwgTUFDIGFkZHJlc3MgcmVnaXN0ZXJzOiAlZFxcXFxuXFxcIixcXG4gXFx0XFx0XFx0ICAgcHJpdi1cXHUwMDNlZG1hX2NhcC5tdWx0aV9hZGRyKTtcXG4rXFx0fSBlbHNlIGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNCkge1xcbitcXHRcXHRzZXFfcHJpbnRmKHNlcSxcXG4rXFx0XFx0XFx0ICAgXFxcIlxcXFx0TnVtYmVyIG9mIE1BQyBhZGRyZXNzIHJlZ2lzdGVycyAoMS0zMSk6ICVkXFxcXG5cXFwiLFxcbitcXHRcXHRcXHQgICBwcml2LVxcdTAwM2VkbWFfY2FwLm11bHRpX2FkZHIpO1xcbitcXHRcXHRzZXFfcHJpbnRmKHNlcSxcXG4rXFx0XFx0XFx0ICAgXFxcIlxcXFx0QWRkaXRpb25hbCAzMiBNQUMgYWRkcmVzcyByZWdpc3RlcnMgKDMyLTYzKTogJXNcXFxcblxcXCIsXFxuK1xcdFxcdFxcdCAgIHByaXYtXFx1MDAzZWRtYV9jYXAuYWRkaXRpb25hbF8zMl9hZGRyID8gXFxcIllcXFwiIDogXFxcIk5cXFwiKTtcXG4rXFx0XFx0c2VxX3ByaW50ZihzZXEsXFxuK1xcdFxcdFxcdCAgIFxcXCJcXFxcdEFkZGl0aW9uYWwgNjQgTUFDIGFkZHJlc3MgcmVnaXN0ZXJzICg2NC0xMjcpOiAlc1xcXFxuXFxcIixcXG4rXFx0XFx0XFx0ICAgcHJpdi1cXHUwMDNlZG1hX2NhcC5hZGRpdGlvbmFsXzY0X2FkZHIgPyBcXFwiWVxcXCIgOiBcXFwiTlxcXCIpO1xcbitcXHRcXHRzZXFfcHJpbnRmKHNlcSwgXFxcIlxcXFx0SGFzaCBGaWx0ZXI6ICVzXFxcXG5cXFwiLFxcbitcXHRcXHRcXHQgICAocHJpdi1cXHUwMDNlZG1hX2NhcC5oYXNoX2ZpbHRlcikgPyBcXFwiWVxcXCIgOiBcXFwiTlxcXCIpO1xcbiBcXHR9IGVsc2Uge1xcbiBcXHRcXHRzZXFfcHJpbnRmKHNlcSwgXFxcIlxcXFx0SGFzaCBGaWx0ZXI6ICVzXFxcXG5cXFwiLFxcbiBcXHRcXHRcXHQgICAocHJpdi1cXHUwMDNlZG1hX2NhcC5oYXNoX2ZpbHRlcikgPyBcXFwiWVxcXCIgOiBcXFwiTlxcXCIpO1xcbkBAIC03NDgwLDYgKzc0OTIsMzMgQEAgc3RhdGljIGludCBzdG1tYWNfaHdfaW5pdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuIFxcdFxcdHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZXR4X2ZpZm9fc2l6ZSA9IHByaXYtXFx1MDAzZWRtYV9jYXAudHhfZmlmb19zaXplO1xcbiBcXHR9XFxuIFxcbitcXHQvKiBPbiBEV01BQzQgd2UgY2FuIGdldCB0aGUgZXhhY3QgbnVtYmVyIG9mIHBlcmZlY3QgZmlsdGVyIGVudHJpZXMgZnJvbVxcbitcXHQgKiB0aGUgSFdfRmVhdHVyZXMuXFxuK1xcdCAqL1xcbitcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQzQpIHtcXG4rXFx0XFx0cHJpdi1cXHUwMDNlaHctXFx1MDAzZW11bHRpX2FkZHIgPSBwcml2LVxcdTAwM2VkbWFfY2FwLm11bHRpX2FkZHI7XFxuK1xcdFxcdHByaXYtXFx1MDAzZWh3LVxcdTAwM2VhZGRpdGlvbmFsXzMyX2FkZHIgPVxcbitcXHRcXHRcXHQhIXByaXYtXFx1MDAzZWRtYV9jYXAuYWRkaXRpb25hbF8zMl9hZGRyO1xcbitcXHRcXHRwcml2LVxcdTAwM2Vody1cXHUwMDNlYWRkaXRpb25hbF82NF9hZGRyID1cXG4rXFx0XFx0XFx0ISFwcml2LVxcdTAwM2VkbWFfY2FwLmFkZGl0aW9uYWxfNjRfYWRkcjtcXG4rXFxuK1xcdFxcdC8qIFdlIGFsd2F5cyBoYXZlIG9uZSBzbG90IGZvciB0aGUgcHJpbWFyeSBNQUMgKi9cXG4rXFx0XFx0cHJpdi1cXHUwMDNlaHctXFx1MDAzZXVuaWNhc3RfZmlsdGVyX2VudHJpZXMgPSAxO1xcbitcXG4rXFx0XFx0LyogSG93IG1hbnkgc2xvdHMgaW4gdGhlIDEgLVxcdTAwM2UgMzEgcmFuZ2UgKi9cXG4rXFx0XFx0cHJpdi1cXHUwMDNlaHctXFx1MDAzZXVuaWNhc3RfZmlsdGVyX2VudHJpZXMgKz0gcHJpdi1cXHUwMDNlaHctXFx1MDAzZW11bHRpX2FkZHI7XFxuK1xcbitcXHRcXHQvKiBBZGRpdGlvbmFsIDMyIGVudHJpZXMgaW4gdGhlIDMyIC1cXHUwMDNlIDYzIHJhbmdlICovXFxuK1xcdFxcdGlmIChwcml2LVxcdTAwM2Vody1cXHUwMDNlYWRkaXRpb25hbF8zMl9hZGRyKVxcbitcXHRcXHRcXHRwcml2LVxcdTAwM2Vody1cXHUwMDNldW5pY2FzdF9maWx0ZXJfZW50cmllcyArPSAzMjtcXG4rXFxuK1xcdFxcdC8qIEFkZGl0aW9uYWwgNjQgZW50cmllcyBpbiB0aGUgNjQgLVxcdTAwM2UgMTI3IHJhbmdlLCBjYW4gYmUgZW5hYmxlZFxcbitcXHRcXHQgKiBpbmRlcGVuZGVudGx5IG9mIHRoZSAzMiAtXFx1MDAzZSA2MyByYW5nZVxcbitcXHRcXHQgKi9cXG4rXFx0XFx0aWYgKHByaXYtXFx1MDAzZWh3LVxcdTAwM2VhZGRpdGlvbmFsXzY0X2FkZHIpXFxuK1xcdFxcdFxcdHByaXYtXFx1MDAzZWh3LVxcdTAwM2V1bmljYXN0X2ZpbHRlcl9lbnRyaWVzICs9IDY0O1xcbitcXHR9XFxuK1xcbiBcXHRwcml2LVxcdTAwM2Vody1cXHUwMDNldmxhbl9mYWlsX3FfZW4gPVxcbiBcXHRcXHQocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBTVE1NQUNfRkxBR19WTEFOX0ZBSUxfUV9FTik7XFxuIFxcdHByaXYtXFx1MDAzZWh3LVxcdTAwM2V2bGFuX2ZhaWxfcSA9IHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZXZsYW5fZmFpbF9xO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQwNzozMDozMC42Njg4MjM1NDZaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjU5ODE5NzMyNTQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMgNCAoRFdNQUM0KSB1bmljYXN0IGZpbHRlciBjb25maWd1cmF0aW9uIGFuZCBoYXJkd2FyZSBmZWF0dXJlIGRldGVjdGlvbiBpbiB0aGUgU1RNTUFDIGV0aGVybmV0IGRyaXZlci4gRFdNQUM0IGNvbnRyb2xsZXJzIGFyZSBlbWJlZGRlZCBpbiBwaHlzaWNhbCBTb0NzIChlLmcuLCBJbnRlbCBFbGtoYXJ0IExha2UsIFF1YWxjb21tIEVUSFFPUywgTlhQIFMzMikgYW5kIFBDSSBkZXZpY2VzIHRoYXQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGNsb3VkIGVudmlyb25tZW50cyAoR0NFKS4gQ29uc2VxdWVudGx5LCB0aGVzZSBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGJmNDZmZmY1NjVlMDdhZjQ1MWE4OTM5MzhhOGI2MjU4NTA0NjA2ZWNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzMSAwNzozMDoyOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmhcbmluZGV4IDkyN2VhNjIzMDA3M2YuLjE3MjlmYjI5ZWNlMzggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmhcbkBAIC00MTksNiArNDE5LDggQEAgc3RydWN0IGRtYV9mZWF0dXJlcyB7XG4gXHR1bnNpZ25lZCBpbnQgaGFsZl9kdXBsZXg7XG4gXHR1bnNpZ25lZCBpbnQgaGFzaF9maWx0ZXI7XG4gXHR1bnNpZ25lZCBpbnQgbXVsdGlfYWRkcjtcbitcdHVuc2lnbmVkIGludCBhZGRpdGlvbmFsXzMyX2FkZHI7XG4rXHR1bnNpZ25lZCBpbnQgYWRkaXRpb25hbF82NF9hZGRyO1xuIFx0dW5zaWduZWQgaW50IHBjcztcbiBcdHVuc2lnbmVkIGludCBzbWFfbWRpbztcbiBcdHVuc2lnbmVkIGludCBwbXRfcmVtb3RlX3dha2VfdXA7XG5AQCAtNjI3LDYgKzYyOSw3IEBAIHN0cnVjdCBtYWNfZGV2aWNlX2luZm8ge1xuIFx0dm9pZCBfX2lvbWVtICpwY3NyOyAgICAgLyogdnBvaW50ZXIgdG8gZGV2aWNlIENTUnMgKi9cbiBcdHVuc2lnbmVkIGludCBtdWx0aWNhc3RfZmlsdGVyX2JpbnM7XG4gXHR1bnNpZ25lZCBpbnQgdW5pY2FzdF9maWx0ZXJfZW50cmllcztcbitcdHVuc2lnbmVkIGludCBtdWx0aV9hZGRyO1xuIFx0dW5zaWduZWQgaW50IG1jYXN0X2JpdHNfbG9nMjtcbiBcdHVuc2lnbmVkIGludCByeF9jc3VtO1xuIFx0dW5zaWduZWQgaW50IG51bV92bGFuO1xuQEAgLTYzNSw2ICs2MzgsOCBAQCBzdHJ1Y3QgbWFjX2RldmljZV9pbmZvIHtcbiBcdHU4IHZsYW5fZmFpbF9xO1xuIFx0Ym9vbCBod192bGFuX2VuO1xuIFx0Ym9vbCByZXZlcnNlX3NnbWlpX2VuYWJsZTtcbitcdGJvb2wgYWRkaXRpb25hbF8zMl9hZGRyO1xuK1x0Ym9vbCBhZGRpdGlvbmFsXzY0X2FkZHI7XG4gXG4gXHQvKiBUaGlzIHNwaW5sb2NrIHByb3RlY3RzIHJlYWQtbW9kaWZ5LXdyaXRlIG9mIHRoZSBpbnRlcnJ1cHRcbiBcdCAqIG1hc2svZW5hYmxlIHJlZ2lzdGVycy5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzQuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNC5oXG5pbmRleCA2MzgyODM2ODI4YmFjLi42OTY4NDY1MzEyMjk1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0LmhcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNC5oXG5AQCAtNzUsOCArNzUsNiBAQFxuICNkZWZpbmUgR01BQ19QQUNLRVRfRklMVEVSX0lQRkVcdFx0QklUKDIwKVxuICNkZWZpbmUgR01BQ19QQUNLRVRfRklMVEVSX1JBXHRcdEJJVCgzMSlcbiBcbi0jZGVmaW5lIEdNQUNfTUFYX1BFUkZFQ1RfQUREUkVTU0VTXHQxMjhcbi1cbiAvKiBNQUMgUlggUXVldWUgRW5hYmxlICovXG4gI2RlZmluZSBHTUFDX1JYX1FVRVVFX0NMRUFSKHF1ZXVlKVx0fihHRU5NQVNLKDEsIDApIFx1MDAzY1x1MDAzYyAoKHF1ZXVlKSAqIDIpKVxuICNkZWZpbmUgR01BQ19SWF9BVl9RVUVVRV9FTkFCTEUocXVldWUpXHRCSVQoKHF1ZXVlKSAqIDIpXG5AQCAtMTc2LDcgKzE3NCw5IEBAIGVudW0gcG93ZXJfZXZlbnQge1xuIFxuIC8qIE1BQyBIVyBmZWF0dXJlczAgYml0bWFwICovXG4gI2RlZmluZSBHTUFDX0hXX0ZFQVRfU0FWTEFOSU5TXHRcdEJJVCgyNylcbi0jZGVmaW5lIEdNQUNfSFdfRkVBVF9BRERNQUNcdFx0QklUKDE4KVxuKyNkZWZpbmUgR01BQ19IV19GRUFUX01BQ0FEUjY0U0VMXHRCSVQoMjQpXG4rI2RlZmluZSBHTUFDX0hXX0ZFQVRfTUFDQURSMzJTRUxcdEJJVCgyMylcbisjZGVmaW5lIEdNQUNfSFdfRkVBVF9BRERNQUNcdFx0R0VOTUFTSygyMiwgMTgpXG4gI2RlZmluZSBHTUFDX0hXX0ZFQVRfUlhDT0VTRUxcdFx0QklUKDE2KVxuICNkZWZpbmUgR01BQ19IV19GRUFUX1RYQ09TRUxcdFx0QklUKDE0KVxuICNkZWZpbmUgR01BQ19IV19GRUFUX0VFRVNFTFx0XHRCSVQoMTMpXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2NvcmUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9jb3JlLmNcbmluZGV4IDE4YjM1N2IyNTdjYzAuLmZiNWI5NmE0MzUwNTQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzRfY29yZS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzRfY29yZS5jXG5AQCAtMzY1LDIyICszNjUsNjMgQEAgc3RhdGljIHZvaWQgZHdtYWM0X3BtdChzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdW5zaWduZWQgbG9uZyBtb2RlKVxuIFx0d3JpdGVsKHBtdCwgaW9hZGRyICsgR01BQ19QTVQpO1xuIH1cbiBcbisvKipcbisgKiBkd21hYzRfdW1hY19hZGRyX3Nsb3QgLSBHZXQgdGhlIFVDIGZpbHRlciBzbG90IGZvciB0aGUgTnRoIE1BQyBhZGRyZXNzXG4rICogQGh3OiBUaGUgTUFDIGRldmljZSBpbmZvXG4rICogQHJlZ19uOiBUaGUgTUFDIGFkZHJlc3MncyBpbmRleCBpbiB0aGUgVUMgbGlzdFxuKyAqXG4rICogT24gZHdtYWM0IHRoZSBzbG90cyBhdmFpbGFibGUgZm9yIFVuaWNhc3QgTUFDIGZpbHRlcmluZyBhcmUgY29uZmlndXJlZCB3aGVuXG4rICogaW50ZWdyYXRpbmcgdGhlIElQLlxuKyAqXG4rICogIC0gU2xvdCAwIGlzIGFsd2F5cyBhdmFpbGFibGUsIHVzZWQgdG8gc3RvcmUgdGhlIHByaW1hcnkgTUFDIGFkZHJlc3NcbisgKiAgLSBGcm9tIDEgdG8gMzEsIHRoZSBudW1iZXIgb2YgaW1wbGVtZW50ZWQgc2xvdHMgaXMgc2V0IGluIGh3LVx1MDAzZW11bHRpX2FkZHJcbisgKiAgLSBGcm9tIDMyIHRvIDYzLCB0aGUgcmFuZ2UgaXMgYXZhaWxhYmxlIGlmIGh3LVx1MDAzZWFkZGl0aW9uYWxfMzJfYWRkclxuKyAqICAgIGlzIHNldFxuKyAqICAtIEZyb20gNjQgdG8gMTI3LCB0aGUgcmFuZ2UgaXMgYXZhaWxhYmxlIGlmIGh3LVx1MDAzZWFkZGl0aW9uYWxfNjRfYWRkciBpcyBzZXRcbisgKlxuKyAqIEFsbCB0aGUgcmFuZ2VzIGNhbiBiZSBjb25maWd1cmVkIGluZGVwZW5kZW50bHkgKGUuZy4gNjQgLVx1MDAzZSAxMjcgY2FuIGJlXG4rICogYXZhaWxhYmxlLCBidXQgbm90IDMyIC1cdTAwM2UgNjMpXG4rICpcbisgKiBSZXR1cm5zOiBUaGUgcGh5c2ljYWwgc2xvdCBpbmRleCBpbiB0aGUgVUMgZmlsdGVyXG4rICovXG4rc3RhdGljIHVuc2lnbmVkIGludCBkd21hYzRfdW1hY19hZGRyX3Nsb3Qoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXG4rXHRcdFx0XHRcdCAgdW5zaWduZWQgaW50IHJlZ19uKVxuK3tcbitcdHVuc2lnbmVkIGludCBlbXB0eV9zbG90cyA9IDA7XG4rXG4rXHQvKiByZWdfbiBpcyBpbiB0aGUgMS0zMSBiYW5rIDogMSB0byAxIG1hcHBpbmcgKi9cbitcdGlmIChyZWdfbiBcdTAwM2MgKGh3LVx1MDAzZW11bHRpX2FkZHIgKyAxKSlcbitcdFx0cmV0dXJuIHJlZ19uO1xuK1xuK1x0LyogR2FwIGJldHdlZW4gdGhlIGxhc3QgYWRkcmVzcyBpbiB0aGUgMS1cdTAwM2UzMSByYW5nZSBhbmQgdGhlIG5leHQgc2xvdCAqL1xuK1x0aWYgKGh3LVx1MDAzZWFkZGl0aW9uYWxfMzJfYWRkcilcbitcdFx0ZW1wdHlfc2xvdHMgPSAzMiAtIChody1cdTAwM2VtdWx0aV9hZGRyICsgMSk7XG4rXHRlbHNlIGlmIChody1cdTAwM2VhZGRpdGlvbmFsXzY0X2FkZHIpXG4rXHRcdGVtcHR5X3Nsb3RzID0gNjQgLSAoaHctXHUwMDNlbXVsdGlfYWRkciArIDEpO1xuK1xuK1x0cmV0dXJuIHJlZ19uICsgZW1wdHlfc2xvdHM7XG4rfVxuK1xuIHN0YXRpYyB2b2lkIGR3bWFjNF9zZXRfdW1hY19hZGRyKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxuIFx0XHRcdFx0IGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZHIsIHVuc2lnbmVkIGludCByZWdfbilcbiB7XG4gXHR2b2lkIF9faW9tZW0gKmlvYWRkciA9IGh3LVx1MDAzZXBjc3I7XG4rXHR1bnNpZ25lZCBpbnQgc2xvdDtcbiBcbi1cdHN0bW1hY19kd21hYzRfc2V0X21hY19hZGRyKGlvYWRkciwgYWRkciwgR01BQ19BRERSX0hJR0gocmVnX24pLFxuLVx0XHRcdFx0ICAgR01BQ19BRERSX0xPVyhyZWdfbikpO1xuK1x0c2xvdCA9IGR3bWFjNF91bWFjX2FkZHJfc2xvdChodywgcmVnX24pO1xuK1x0c3RtbWFjX2R3bWFjNF9zZXRfbWFjX2FkZHIoaW9hZGRyLCBhZGRyLCBHTUFDX0FERFJfSElHSChzbG90KSxcbitcdFx0XHRcdCAgIEdNQUNfQUREUl9MT1coc2xvdCkpO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBkd21hYzRfZ2V0X3VtYWNfYWRkcihzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcbiBcdFx0XHRcdCB1bnNpZ25lZCBjaGFyICphZGRyLCB1bnNpZ25lZCBpbnQgcmVnX24pXG4ge1xuIFx0dm9pZCBfX2lvbWVtICppb2FkZHIgPSBody1cdTAwM2VwY3NyO1xuK1x0dW5zaWduZWQgaW50IHNsb3Q7XG4gXG4tXHRzdG1tYWNfZ2V0X21hY19hZGRyKGlvYWRkciwgYWRkciwgR01BQ19BRERSX0hJR0gocmVnX24pLFxuLVx0XHRcdCAgICBHTUFDX0FERFJfTE9XKHJlZ19uKSk7XG4rXHRzbG90ID0gZHdtYWM0X3VtYWNfYWRkcl9zbG90KGh3LCByZWdfbik7XG4rXHRzdG1tYWNfZ2V0X21hY19hZGRyKGlvYWRkciwgYWRkciwgR01BQ19BRERSX0hJR0goc2xvdCksXG4rXHRcdFx0ICAgIEdNQUNfQUREUl9MT1coc2xvdCkpO1xuIH1cbiBcbiBzdGF0aWMgaW50IGR3bWFjNF9zZXRfbHBpX21vZGUoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXG5AQCAtNTIyLDkgKzU2Myw2IEBAIHN0YXRpYyB2b2lkIGR3bWFjNF9zZXRfZmlsdGVyKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxuIFxuIFx0LyogSGFuZGxlIG11bHRpcGxlIHVuaWNhc3QgYWRkcmVzc2VzICovXG4gXHRpZiAobmV0ZGV2X3VjX2NvdW50KGRldikgKyAxIFx1MDAzZSBody1cdTAwM2V1bmljYXN0X2ZpbHRlcl9lbnRyaWVzKSB7XG4tXHRcdC8qIFN3aXRjaCB0byBwcm9taXNjdW91cyBtb2RlIGlmIG1vcmUgdGhhbiAxMjggYWRkcnNcbi1cdFx0ICogYXJlIHJlcXVpcmVkXG4tXHRcdCAqL1xuIFx0XHR2YWx1ZSB8PSBHTUFDX1BBQ0tFVF9GSUxURVJfUFI7XG4gXHR9IGVsc2Uge1xuIFx0XHRzdHJ1Y3QgbmV0ZGV2X2h3X2FkZHIgKmhhO1xuQEAgLTUzNSw5ICs1NzMsMTEgQEAgc3RhdGljIHZvaWQgZHdtYWM0X3NldF9maWx0ZXIoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXG4gXHRcdFx0cmVnKys7XG4gXHRcdH1cbiBcbi1cdFx0d2hpbGUgKHJlZyBcdTAwM2MgR01BQ19NQVhfUEVSRkVDVF9BRERSRVNTRVMpIHtcbi1cdFx0XHR3cml0ZWwoMCwgaW9hZGRyICsgR01BQ19BRERSX0hJR0gocmVnKSk7XG4tXHRcdFx0d3JpdGVsKDAsIGlvYWRkciArIEdNQUNfQUREUl9MT1cocmVnKSk7XG4rXHRcdHdoaWxlIChyZWcgXHUwMDNjIGh3LVx1MDAzZXVuaWNhc3RfZmlsdGVyX2VudHJpZXMpIHtcbitcdFx0XHR1bnNpZ25lZCBpbnQgc2xvdCA9IGR3bWFjNF91bWFjX2FkZHJfc2xvdChodywgcmVnKTtcbitcbitcdFx0XHR3cml0ZWwoMCwgaW9hZGRyICsgR01BQ19BRERSX0hJR0goc2xvdCkpO1xuK1x0XHRcdHdyaXRlbCgwLCBpb2FkZHIgKyBHTUFDX0FERFJfTE9XKHNsb3QpKTtcbiBcdFx0XHRyZWcrKztcbiBcdFx0fVxuIFx0fVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9kbWEuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9kbWEuY1xuaW5kZXggMjNmZmUxYWRjZDBkMy4uMTRhYzNmMGU1MWY3NyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9kbWEuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2RtYS5jXG5AQCAtMzg4LDYgKzM4OCw4IEBAIHN0YXRpYyBpbnQgZHdtYWM0X2dldF9od19mZWF0dXJlKHZvaWQgX19pb21lbSAqaW9hZGRyLFxuIFx0ZG1hX2NhcC1cdTAwM2VoYWxmX2R1cGxleCA9IChod19jYXAgXHUwMDI2IEdNQUNfSFdfRkVBVF9IRFNFTCkgXHUwMDNlXHUwMDNlIDI7XG4gXHRkbWFfY2FwLVx1MDAzZXZsaGFzaCA9IChod19jYXAgXHUwMDI2IEdNQUNfSFdfRkVBVF9WTEhBU0gpIFx1MDAzZVx1MDAzZSA0O1xuIFx0ZG1hX2NhcC1cdTAwM2VtdWx0aV9hZGRyID0gKGh3X2NhcCBcdTAwMjYgR01BQ19IV19GRUFUX0FERE1BQykgXHUwMDNlXHUwMDNlIDE4O1xuK1x0ZG1hX2NhcC1cdTAwM2VhZGRpdGlvbmFsXzMyX2FkZHIgPSAoaHdfY2FwIFx1MDAyNiBHTUFDX0hXX0ZFQVRfTUFDQURSMzJTRUwpIFx1MDAzZVx1MDAzZSAyMztcbitcdGRtYV9jYXAtXHUwMDNlYWRkaXRpb25hbF82NF9hZGRyID0gKGh3X2NhcCBcdTAwMjYgR01BQ19IV19GRUFUX01BQ0FEUjY0U0VMKSBcdTAwM2VcdTAwM2UgMjQ7XG4gXHRkbWFfY2FwLVx1MDAzZXBjcyA9IChod19jYXAgXHUwMDI2IEdNQUNfSFdfRkVBVF9QQ1NTRUwpIFx1MDAzZVx1MDAzZSAzO1xuIFx0ZG1hX2NhcC1cdTAwM2VzbWFfbWRpbyA9IChod19jYXAgXHUwMDI2IEdNQUNfSFdfRkVBVF9TTUFTRUwpIFx1MDAzZVx1MDAzZSA1O1xuIFx0ZG1hX2NhcC1cdTAwM2VwbXRfcmVtb3RlX3dha2VfdXAgPSAoaHdfY2FwIFx1MDAyNiBHTUFDX0hXX0ZFQVRfUldLU0VMKSBcdTAwM2VcdTAwM2UgNjtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuaW5kZXggZjJmYzg5MTc2NjU0ZS4uODA0MTNiYThkZjU1ZSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbkBAIC02NTgwLDYgKzY1ODAsMTggQEAgc3RhdGljIGludCBzdG1tYWNfZG1hX2NhcF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KVxuIFx0XHRzZXFfcHJpbnRmKHNlcSxcbiBcdFx0XHQgICBcIlxcdE51bWJlciBvZiBBZGRpdGlvbmFsIE1BQyBhZGRyZXNzIHJlZ2lzdGVyczogJWRcXG5cIixcbiBcdFx0XHQgICBwcml2LVx1MDAzZWRtYV9jYXAubXVsdGlfYWRkcik7XG4rXHR9IGVsc2UgaWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNCkge1xuK1x0XHRzZXFfcHJpbnRmKHNlcSxcbitcdFx0XHQgICBcIlxcdE51bWJlciBvZiBNQUMgYWRkcmVzcyByZWdpc3RlcnMgKDEtMzEpOiAlZFxcblwiLFxuK1x0XHRcdCAgIHByaXYtXHUwMDNlZG1hX2NhcC5tdWx0aV9hZGRyKTtcbitcdFx0c2VxX3ByaW50ZihzZXEsXG4rXHRcdFx0ICAgXCJcXHRBZGRpdGlvbmFsIDMyIE1BQyBhZGRyZXNzIHJlZ2lzdGVycyAoMzItNjMpOiAlc1xcblwiLFxuK1x0XHRcdCAgIHByaXYtXHUwMDNlZG1hX2NhcC5hZGRpdGlvbmFsXzMyX2FkZHIgPyBcIllcIiA6IFwiTlwiKTtcbitcdFx0c2VxX3ByaW50ZihzZXEsXG4rXHRcdFx0ICAgXCJcXHRBZGRpdGlvbmFsIDY0IE1BQyBhZGRyZXNzIHJlZ2lzdGVycyAoNjQtMTI3KTogJXNcXG5cIixcbitcdFx0XHQgICBwcml2LVx1MDAzZWRtYV9jYXAuYWRkaXRpb25hbF82NF9hZGRyID8gXCJZXCIgOiBcIk5cIik7XG4rXHRcdHNlcV9wcmludGYoc2VxLCBcIlxcdEhhc2ggRmlsdGVyOiAlc1xcblwiLFxuK1x0XHRcdCAgIChwcml2LVx1MDAzZWRtYV9jYXAuaGFzaF9maWx0ZXIpID8gXCJZXCIgOiBcIk5cIik7XG4gXHR9IGVsc2Uge1xuIFx0XHRzZXFfcHJpbnRmKHNlcSwgXCJcXHRIYXNoIEZpbHRlcjogJXNcXG5cIixcbiBcdFx0XHQgICAocHJpdi1cdTAwM2VkbWFfY2FwLmhhc2hfZmlsdGVyKSA/IFwiWVwiIDogXCJOXCIpO1xuQEAgLTc0ODAsNiArNzQ5MiwzMyBAQCBzdGF0aWMgaW50IHN0bW1hY19od19pbml0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbiBcdFx0cHJpdi1cdTAwM2VwbGF0LVx1MDAzZXR4X2ZpZm9fc2l6ZSA9IHByaXYtXHUwMDNlZG1hX2NhcC50eF9maWZvX3NpemU7XG4gXHR9XG4gXG4rXHQvKiBPbiBEV01BQzQgd2UgY2FuIGdldCB0aGUgZXhhY3QgbnVtYmVyIG9mIHBlcmZlY3QgZmlsdGVyIGVudHJpZXMgZnJvbVxuK1x0ICogdGhlIEhXX0ZlYXR1cmVzLlxuK1x0ICovXG4rXHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KSB7XG4rXHRcdHByaXYtXHUwMDNlaHctXHUwMDNlbXVsdGlfYWRkciA9IHByaXYtXHUwMDNlZG1hX2NhcC5tdWx0aV9hZGRyO1xuK1x0XHRwcml2LVx1MDAzZWh3LVx1MDAzZWFkZGl0aW9uYWxfMzJfYWRkciA9XG4rXHRcdFx0ISFwcml2LVx1MDAzZWRtYV9jYXAuYWRkaXRpb25hbF8zMl9hZGRyO1xuK1x0XHRwcml2LVx1MDAzZWh3LVx1MDAzZWFkZGl0aW9uYWxfNjRfYWRkciA9XG4rXHRcdFx0ISFwcml2LVx1MDAzZWRtYV9jYXAuYWRkaXRpb25hbF82NF9hZGRyO1xuK1xuK1x0XHQvKiBXZSBhbHdheXMgaGF2ZSBvbmUgc2xvdCBmb3IgdGhlIHByaW1hcnkgTUFDICovXG4rXHRcdHByaXYtXHUwMDNlaHctXHUwMDNldW5pY2FzdF9maWx0ZXJfZW50cmllcyA9IDE7XG4rXG4rXHRcdC8qIEhvdyBtYW55IHNsb3RzIGluIHRoZSAxIC1cdTAwM2UgMzEgcmFuZ2UgKi9cbitcdFx0cHJpdi1cdTAwM2Vody1cdTAwM2V1bmljYXN0X2ZpbHRlcl9lbnRyaWVzICs9IHByaXYtXHUwMDNlaHctXHUwMDNlbXVsdGlfYWRkcjtcbitcbitcdFx0LyogQWRkaXRpb25hbCAzMiBlbnRyaWVzIGluIHRoZSAzMiAtXHUwMDNlIDYzIHJhbmdlICovXG4rXHRcdGlmIChwcml2LVx1MDAzZWh3LVx1MDAzZWFkZGl0aW9uYWxfMzJfYWRkcilcbitcdFx0XHRwcml2LVx1MDAzZWh3LVx1MDAzZXVuaWNhc3RfZmlsdGVyX2VudHJpZXMgKz0gMzI7XG4rXG4rXHRcdC8qIEFkZGl0aW9uYWwgNjQgZW50cmllcyBpbiB0aGUgNjQgLVx1MDAzZSAxMjcgcmFuZ2UsIGNhbiBiZSBlbmFibGVkXG4rXHRcdCAqIGluZGVwZW5kZW50bHkgb2YgdGhlIDMyIC1cdTAwM2UgNjMgcmFuZ2VcbitcdFx0ICovXG4rXHRcdGlmIChwcml2LVx1MDAzZWh3LVx1MDAzZWFkZGl0aW9uYWxfNjRfYWRkcilcbitcdFx0XHRwcml2LVx1MDAzZWh3LVx1MDAzZXVuaWNhc3RfZmlsdGVyX2VudHJpZXMgKz0gNjQ7XG4rXHR9XG4rXG4gXHRwcml2LVx1MDAzZWh3LVx1MDAzZXZsYW5fZmFpbF9xX2VuID1cbiBcdFx0KHByaXYtXHUwMDNlcGxhdC1cdTAwM2VmbGFncyBcdTAwMjYgU1RNTUFDX0ZMQUdfVkxBTl9GQUlMX1FfRU4pO1xuIFx0cHJpdi1cdTAwM2Vody1cdTAwM2V2bGFuX2ZhaWxfcSA9IHByaXYtXHUwMDNlcGxhdC1cdTAwM2V2bGFuX2ZhaWxfcTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDA3OjMwOjMwLjY2ODgyNTM4NloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjc4NTM0OTM0NzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBzdG1tYWMgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGNsZWFybHkgZGlnZ2luZyBpbnRvIHRoZSBgc3RtbWFjYCBkcml2ZXIg4oCTIHRoYXQncyB0aGUgU1RNaWNyb2VsZWN0cm9uaWNzIE11bHRpLUNoYW5uZWwgRXRoZXJuZXQgTUFDIGRyaXZlci4gSXQncyB0b3VjaGluZyBzb21lIGtleSBmaWxlczogYGNvbW1vbi5oYCwgYGR3bWFjNC5oYCwgYW5kIHRoZSBjb3JlIGltcGxlbWVudGF0aW9uIGZpbGVzIGxpa2UgYGR3bWFjNF9jb3JlLmNgLCBgZHdtYWM0X2RtYS5jYCwgYW5kIHRoZSBtYWluIGRyaXZlciBmaWxlIGBzdG1tYWNfbWFpbi5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgdGhlIGNvbnRleHQgb2YgdGhpcy4gSXMgdGhpcyBzb21ldGhpbmcgSSBjYW4gZWFzaWx5IHRlc3Q/XG5cbkkgbmVlZCB0byBxdWlja2x5IGFzc2VzcyB0aGUgZW11bGF0aW9uIHNpdHVhdGlvbi4gSXMgYHN0bW1hY2AgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVT8gT3IgZG9lcyB0aGlzIHJlcXVpcmUgc3BlY2lmaWMgaGFyZHdhcmUsIG9yIGF0IGxlYXN0IGEgc3BlY2lmaWMgcGxhdGZvcm0gY29uZmlndXJhdGlvbiBpbiBRRU1VIG9yIEdDRT8gSGFuZyBvbuKApiBiZWZvcmUgSSBnbyBkb3duIHRoYXQgcmFiYml0IGhvbGUsIEkgc2hvdWxkIGp1c3QgY29uZmlybSBob3cgaXQncyAqYWN0dWFsbHkqIHVzZWQgaW4gdGhlIGtlcm5lbC4gTGV0J3Mgc3RhcnQgd2l0aCBhIHF1aWNrIHNlYXJjaCB0byBwaW5wb2ludCBpdHMgdXNhZ2UgdGhyb3VnaG91dCB0aGUga2VybmVsIHNvdXJjZS4gS25vd2luZyB0aGF0IHdpbGwgZ2l2ZSBtZSBjb250ZXh0IGJlZm9yZSBkaWdnaW5nIGludG8gZW11bGF0aW9uIGRldGFpbHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU1ODUsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTUsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQwNzozMDozOC41MjIzMjE3NzNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY3MDc3ODI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0bW1hY1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMTU2OSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yOT1jb25maWcgU1RNTUFDX1BMQVRGT1JNXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzLVxcdGhlbHBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM0OlxcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNS1cXHQgIFRoaXMgaXMgdGhlIGRyaXZlciB1c2VkIG9uIHNldmVyYWwgU29DczpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NjA9Y29uZmlnIERXTUFDX0FOQVJJT05cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo2NzpcXHQgIFRoaXMgc2VsZWN0cyB0aGUgQW5hcmlvbiBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTY4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz03OD1jb25maWcgRFdNQUNfSU5HRU5JQ1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy04NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjg2OlxcdCAgVGhpcyBzZWxlY3RzIEluZ2VuaWMgU29DcyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTg3LVxcdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBvbiBmb3IgdGhlIEluZ2VuaWMgU29Dc1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz05MD1jb25maWcgRFdNQUNfSVBRODA2WFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjk4OlxcdCAgVGhpcyBzZWxlY3RzIHRoZSBJUFE4MDZ4IFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTk5LVxcdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgZG9lcyBub3QgdXNlIGFueSBvZiB0aGUgaGFyZHdhcmVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTE0PWNvbmZpZyBEV01BQ19NRURJQVRFS1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMjA6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIE1UMjcxMiBTb0Mgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMjI9Y29uZmlnIERXTUFDX01FU09OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEyOS1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgQW1sb2dpYyBNZXNvbiBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTMwOlxcdCAgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBNZXNvbjYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMzEtXFx0ICBNZXNvbjgsIE1lc29uOGIgYW5kIEdYQkIgU29Dcy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTMzPWNvbmZpZyBEV01BQ19OVVZPVE9OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE0MS1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgTnV2b3RvbiBNQTM1IHNlcmllcyBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxNDI6XFx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGUgbnV2b3Rvbi1kd21hYyBkcml2ZXIgaXNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE0My1cXHQgIHVzZWQgZm9yIE1BMzUgc2VyaWVzIFNvQ3MuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE0NT1jb25maWcgRFdNQUNfUUNPTV9FVEhRT1NcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTUyLVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBRdWFsY29tbSBFVEhRT1MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE1MzpcXHQgIHN0bW1hYyBkZXZpY2UgZHJpdmVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTU0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTU1PWNvbmZpZyBEV01BQ19SRU5FU0FTX0dCRVRIXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE2My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE2NDpcXHQgIFRoaXMgc2VsZWN0cyBSZW5lc2FzIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZGV2aWNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNjUtXFx0ICBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZSBSWi9WMkgoUCkgZmFtaWx5LCBSWi9UMkggYW5kXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE2OD1jb25maWcgRFdNQUNfUk9DS0NISVBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTc2LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBSb2NrY2hpcCBSSzMyODggU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE3NzpcXHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE3OT1jb25maWcgRFdNQUNfUlpOMVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xODctXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFJlbmVzYXMgUlovTjEgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE4ODpcXHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBzdXBwb3J0IGNhbiBtYWtlIHVzZSBvZiBhIGN1c3RvbSBNSUlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE4OS1cXHQgIGNvbnZlcnRlciBQQ1MgZGV2aWNlLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xOTE9Y29uZmlnIERXTUFDX1MzMlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xOTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxOTg6XFx0ICBUaGlzIHNlbGVjdHMgTlhQIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5OS1cXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZSBTMzJDQyBzZXJpZXNcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjAzPWNvbmZpZyBEV01BQ19TT0NGUEdBXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxNC1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgQWx0ZXJhIFNPQ0ZQR0EgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjE1OlxcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxNi1cXHQgIGFycmlhNSBhbmQgY3ljbG9uZTUgRlBHQSBTb0NzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMTg9Y29uZmlnIERXTUFDX1NPUEhHT1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMjUtXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFNvcGhnbyBTb0Mgc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMjY6XFx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIyNy1cXHQgIGV0aGVybmV0IGNvbnRyb2xsZXJzIG9uIHZhcmlvdXMgU29waGdvIFNvQ3MuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIyOT1jb25maWcgRFdNQUNfU1BBQ0VNSVRcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjM3LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBTcGFjZW1pdCBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIzODpcXHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjM5LVxcdCAgU3BhY2VtaXQgSzMgZXRoZXJuZXQgY29udHJvbGxlcnMuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI0MT1jb25maWcgRFdNQUNfU1RBUkZJVkVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjQ5LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBTdGFyRml2ZSBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI1MDpcXHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjUxLVxcdCAgU3RhckZpdmUgSkg3MTAwIGFuZCBKSDcxMTAgZXRoZXJuZXQgY29udHJvbGxlcnMuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI1Mz1jb25maWcgRFdNQUNfU1RJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI2MTpcXHQgIFRoaXMgc2VsZWN0cyBTVGkgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjYyLVxcdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBvbiBmb3IgdGhlIFNUaSBzZXJpZXNcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjY1PWNvbmZpZyBEV01BQ19TVE0zMlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyNzM6XFx0ICBUaGlzIHNlbGVjdHMgU1RNMzIgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjc0LVxcdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBvbiBmb3IgdGhlIFNUTTMyIHNlcmllc1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yNzc9Y29uZmlnIERXTUFDX1NVTlhJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI4NC1cXHQgIFRoaXMgc2VsZWN0cyBBbGx3aW5uZXIgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyODU6XFx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgQTIwL0EzMVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjg2LVxcdCAgR01BQyBldGhlcm5ldCBjb250cm9sbGVyLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yODg9Y29uZmlnIERXTUFDX1NVTjhJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI5Ni1cXHQgIFRoaXMgc2VsZWN0cyBBbGx3aW5uZXIgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOTc6XFx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSDMvQTgzVC9BNjRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI5OC1cXHQgIEVNQUMgZXRoZXJuZXQgY29udHJvbGxlci5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzAwPWNvbmZpZyBEV01BQ19TVU41NUlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzA4LVxcdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMwOTpcXHQgIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBBNTIzL1Q1MjdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMxMC1cXHQgIEdNQUMyMDAgZXRoZXJuZXQgY29udHJvbGxlci5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzEyPWNvbmZpZyBEV01BQ19USEVBRFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMTgtXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFQtSEVBRCBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMTk6XFx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIFQtSEVBRCBUSDE1MjBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMyMC1cXHQgIGV0aGVybmV0IGNvbnRyb2xsZXIuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMyMj1jb25maWcgRFdNQUNfSU1YOFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMzA6XFx0ICBUaGlzIHNlbGVjdHMgTlhQIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzMS1cXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIGkuTVg4IHNlcmllcyBsaWtlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMzND1jb25maWcgRFdNQUNfSU5URUxfUExBVFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNDAtXFx0ICBUaGlzIHNlbGVjdHMgdGhlIEludGVsIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM0MTpcXHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIEludGVsIEtlZW0gQmF5XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNDItXFx0ICBTb0MuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM0ND1jb25maWcgRFdNQUNfTE9PTkdTT04xXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM1MTpcXHQgIFRoaXMgc2VsZWN0cyBMb29uZ3NvbjEgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzUyLVxcdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgTG9vbmdzb24xLWJhc2VkIGJvYXJkc1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNTU9Y29uZmlnIERXTUFDX1RFR1JBXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM2MC1cXHQgIGZvdW5kIG9uIHRoZSBOVklESUEgVGVncmEgU29DIGRldmljZXMuIFRoaXMgZHJpdmVyIHByb3ZpZGVzIHRoZSBnbHVlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNjE6XFx0ICBsYXllciBvbiB0b3Agb2YgdGhlIHN0bW1hYyBkcml2ZXIgcmVxdWlyZWQgZm9yIHRoZXNlIE5WSURJQSBUZWdyYSBTb0NcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM2Mi1cXHQgIGRldmljZXMuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM3Mz1jb25maWcgU1RNTUFDX0xJQlBDSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzUtXFx0aGVscFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzc2OlxcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgUENJIGJ1cyBoZWxwZXJzIGZvciB0aGUgc3RtbWFjIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM3OD1jb25maWcgRFdNQUNfSU5URUxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzg1LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBJbnRlbCBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozODY6XFx0ICBzdG1tYWMgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBJbnRlbCBRdWFyay9FSEwvVEdMLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzg3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mzg4PWNvbmZpZyBEV01BQ19MT09OR1NPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTQtXFx0aGVscFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzk1OlxcdCAgVGhpcyBzZWxlY3RzIHRoZSBMT09OR1NPTiBQQ0kgYnVzIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzk2LVxcdCAgU3VwcG9ydCBmb3IgZXRoZXJuZXQgY29udHJvbGxlciBvbiBMb29uZ3Nvbi0ySzEwMDAgU29DIGFuZCBMUzdBMTAwMCBicmlkZ2UuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTQwNz1jb25maWcgU1RNTUFDX1BDSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MTItXFx0aGVscFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NDEzOlxcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MTQtXFx0ICBUaGlzIGRyaXZlciB3YXMgdGVzdGVkIG9uIFhMSU5YIFhDMlYzMDAwIEZGMTE1MkFNVDAyMjFcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX1NUTU1BQ19FVEgpICs9IHN0bW1hYy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MzpzdG1tYWMtb2Jqczo9IHN0bW1hY19tYWluLm8gc3RtbWFjX2V0aHRvb2wubyBzdG1tYWNfbWRpby5vIHJpbmdfbW9kZS5vXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTQtXFx0ICAgICAgY2hhaW5fbW9kZS5vIGR3bWFjX2xpYi5vIGR3bWFjMTAwMF9jb3JlLm8gZHdtYWMxMDAwX2RtYS5vXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTUtXFx0ICAgICAgZHdtYWMxMDBfY29yZS5vIGR3bWFjMTAwX2RtYS5vIGVuaF9kZXNjLm8gbm9ybV9kZXNjLm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NjpcXHQgICAgICBtbWNfY29yZS5vIHN0bW1hY19od3RzdGFtcC5vIHN0bW1hY19wdHAubyBkd21hYzRfZGVzY3Mub1xcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS03LVxcdCAgICAgIGR3bWFjNF9kbWEubyBkd21hYzRfbGliLm8gZHdtYWM0X2NvcmUubyBkd21hYzUubyBod2lmLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjg6XFx0ICAgICAgc3RtbWFjX3RjLm8gZHd4Z21hYzJfY29yZS5vIGR3eGdtYWMyX2RtYS5vIGR3eGdtYWMyX2Rlc2NzLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjk6XFx0ICAgICAgc3RtbWFjX3hkcC5vIHN0bW1hY19lc3QubyBzdG1tYWNfZnBlLm8gc3RtbWFjX3ZsYW4ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTA6XFx0ICAgICAgc3RtbWFjX3Bjcy5vICQoc3RtbWFjLXkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTI6c3RtbWFjLSQoQ09ORklHX1NUTU1BQ19TRUxGVEVTVFMpICs9IHN0bW1hY19zZWxmdGVzdHMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTE0LSMgT3JkZXJpbmcgbWF0dGVycy4gR2VuZXJpYyBkcml2ZXIgbXVzdCBiZSBsYXN0LlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjE1Om9iai0kKENPTkZJR19TVE1NQUNfUExBVEZPUk0pXFx0Kz0gc3RtbWFjLXBsYXRmb3JtLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xNi1vYmotJChDT05GSUdfRFdNQUNfQU5BUklPTilcXHQrPSBkd21hYy1hbmFyaW9uLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTQ1PW9iai0kKENPTkZJR19EV01BQ19WSVNDT05USSlcXHQrPSBkd21hYy12aXNjb250aS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDY6c3RtbWFjLXBsYXRmb3JtLW9ianM6PSBzdG1tYWNfcGxhdGZvcm0ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTQ3LWR3bWFjLWFsdHItc29jZnBnYS1vYmpzIDo9IGR3bWFjLXNvY2ZwZ2Eub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTQ4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQ5Om9iai0kKENPTkZJR19TVE1NQUNfTElCUENJKVxcdCs9IHN0bW1hY19saWJwY2kub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjUwOm9iai0kKENPTkZJR19TVE1NQUNfUENJKVxcdCs9IHN0bW1hYy1wY2kub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTUxLW9iai0kKENPTkZJR19EV01BQ19JTlRFTClcXHQrPSBkd21hYy1pbnRlbC5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT01Mz1vYmotJChDT05GSUdfRFdNQUNfTU9UT1JDT01NKVxcdCs9IGR3bWFjLW1vdG9yY29tbS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTQ6c3RtbWFjLXBjaS1vYmpzOj0gc3RtbWFjX3BjaS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE1OiNpbmNsdWRlIFxcXCJzdG1tYWMuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE3OnN0YXRpYyBpbnQganVtYm9fZnJtKHN0cnVjdCBzdG1tYWNfdHhfcXVldWUgKnR4X3EsIHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE4LVxcdFxcdCAgICAgaW50IGNzdW0pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMjAtXFx0dW5zaWduZWQgaW50IG5vcGFnZWRfbGVuID0gc2tiX2hlYWRsZW4oc2tiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MjE6XFx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2ID0gdHhfcS1cXHUwMDNlcHJpdl9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0yMi1cXHR1bnNpZ25lZCBpbnQgZW50cnkgPSB0eF9xLVxcdTAwM2VjdXJfdHg7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNDUtXFx0LyogZG8gbm90IGNsb3NlIHRoZSBkZXNjcmlwdG9yIGFuZCBkbyBub3Qgc2V0IG93biBiaXQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6NDY6XFx0c3RtbWFjX3ByZXBhcmVfdHhfZGVzYyhwcml2LCBkZXNjLCAxLCBidWZfbGVuLCBjc3VtLCBTVE1NQUNfQ0hBSU5fTU9ERSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNDctXFx0XFx0XFx0MCwgZmFsc2UsIHNrYi1cXHUwMDNlbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy02Mi1cXHRcXHRcXHR0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5sZW4gPSBibWF4O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo2MzpcXHRcXHRcXHRzdG1tYWNfcHJlcGFyZV90eF9kZXNjKHByaXYsIGRlc2MsIDAsIGJtYXgsIGNzdW0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTY0LVxcdFxcdFxcdFxcdFxcdFNUTU1BQ19DSEFJTl9NT0RFLCAxLCBmYWxzZSwgc2tiLVxcdTAwM2VsZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTc2LVxcdFxcdFxcdC8qIGxhc3QgZGVzY3JpcHRvciBjYW4gYmUgc2V0IG5vdyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo3NzpcXHRcXHRcXHRzdG1tYWNfcHJlcGFyZV90eF9kZXNjKHByaXYsIGRlc2MsIDAsIGxlbiwgY3N1bSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNzgtXFx0XFx0XFx0XFx0XFx0U1RNTUFDX0NIQUlOX01PREUsIDEsIHRydWUsIHNrYi1cXHUwMDNlbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYz05OT1zdGF0aWMgdm9pZCBpbml0X2RtYV9jaGFpbih2b2lkICpkZXMsIGRtYV9hZGRyX3QgcGh5X2FkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTI4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxMjk6c3RhdGljIHZvaWQgcmVmaWxsX2Rlc2MzKHN0cnVjdCBzdG1tYWNfcnhfcXVldWUgKnJ4X3EsIHN0cnVjdCBkbWFfZGVzYyAqcClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTMwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTMxOlxcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHJ4X3EtXFx1MDAzZXByaXZfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTMyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE0My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTQ0OnN0YXRpYyB2b2lkIGNsZWFuX2Rlc2MzKHN0cnVjdCBzdG1tYWNfdHhfcXVldWUgKnR4X3EsIHN0cnVjdCBkbWFfZGVzYyAqcClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQ1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTQ2OlxcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHR4X3EtXFx1MDAzZXByaXZfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQ3LVxcdHVuc2lnbmVkIGludCBlbnRyeSA9IHR4X3EtXFx1MDAzZWRpcnR5X3R4O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTYxOmNvbnN0IHN0cnVjdCBzdG1tYWNfbW9kZV9vcHMgY2hhaW5fbW9kZV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE2Mi1cXHQuaW5pdCA9IGluaXRfZG1hX2NoYWluLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTUtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L25ldGRldmljZS5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjE2OiNpbmNsdWRlIFxcdTAwM2NsaW51eC9zdG1tYWMuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xNy0jaW5jbHVkZSBcXHUwMDNjbGludXgvcGh5LmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaD00OT1zdGF0aWMgaW5saW5lIGJvb2wgZHdtYWNfaXNfeG1hYyhlbnVtIGR3bWFjX2NvcmVfdHlwZSBjb3JlX3R5cGUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC03MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo3MTpzdHJ1Y3Qgc3RtbWFjX3FfdHhfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcyLVxcdHU2NF9zdGF0c190IHR4X2J5dGVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6Nzg6c3RydWN0IHN0bW1hY19uYXBpX3R4X3N0YXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC03OS1cXHR1NjRfc3RhdHNfdCB0eF9wYWNrZXRzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6ODY6c3RydWN0IHN0bW1hY190eHFfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTg3LVxcdC8qIFVwZGF0ZXMgcHJvdGVjdGVkIGJ5IHR4IHF1ZXVlIGxvY2suICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODgtXFx0c3RydWN0IHU2NF9zdGF0c19zeW5jIHFfc3luY3A7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6ODk6XFx0c3RydWN0IHN0bW1hY19xX3R4X3N0YXRzIHE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtOTAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05Mi1cXHRzdHJ1Y3QgdTY0X3N0YXRzX3N5bmMgbmFwaV9zeW5jcDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo5MzpcXHRzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMgbmFwaTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05NC19IF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtOTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6OTY6c3RydWN0IHN0bW1hY19uYXBpX3J4X3N0YXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05Ny1cXHR1NjRfc3RhdHNfdCByeF9ieXRlcztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoxMDM6c3RydWN0IHN0bW1hY19yeHFfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNC1cXHQvKiBVcGRhdGVzIHByb3RlY3RlZCBieSBOQVBJIHBvbGwgbG9naWMuICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTA1LVxcdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjEwNjpcXHRzdHJ1Y3Qgc3RtbWFjX25hcGlfcnhfc3RhdHMgbmFwaTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDctfSBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTA5LS8qIFVwZGF0ZXMgb24gZWFjaCBDUFUgcHJvdGVjdGVkIGJ5IG5vdCBhbGxvd2luZyBuZXN0ZWQgaXJxcy4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoxMTA6c3RydWN0IHN0bW1hY19wY3B1X3N0YXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMTEtXFx0c3RydWN0IHU2NF9zdGF0c19zeW5jIHN5bmNwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTE2LS8qIEV4dHJhIHN0YXRpc3RpYyBhbmQgZGVidWcgaW5mb3JtYXRpb24gZXhwb3NlZCBieSBldGh0b29sICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTE3OnN0cnVjdCBzdG1tYWNfZXh0cmFfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExOC1cXHQvKiBUcmFuc21pdCBlcnJvcnMgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTIzNy1cXHQvKiBwZXIgcXVldWUgc3RhdGlzdGljcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjIzODpcXHRzdHJ1Y3Qgc3RtbWFjX3R4cV9zdGF0cyB0eHFfc3RhdHNbTVRMX01BWF9UWF9RVUVVRVNdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjIzOTpcXHRzdHJ1Y3Qgc3RtbWFjX3J4cV9zdGF0cyByeHFfc3RhdHNbTVRMX01BWF9SWF9RVUVVRVNdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI0MDpcXHRzdHJ1Y3Qgc3RtbWFjX3BjcHVfc3RhdHMgX19wZXJjcHUgKnBjcHVfc3RhdHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMjQxLVxcdHVuc2lnbmVkIGxvbmcgcnhfZHJvcHBlZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI0Ny0vKiBTYWZldHkgRmVhdHVyZSBzdGF0aXN0aWNzIGV4cG9zZWQgYnkgZXRodG9vbCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI0ODpzdHJ1Y3Qgc3RtbWFjX3NhZmV0eV9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMjQ5LVxcdHVuc2lnbmVkIGxvbmcgbWFjX2Vycm9yc1szMl07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNTYtI2RlZmluZSBTVE1NQUNfU0FGRVRZX0ZFQVRfU0laRVxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoyNTc6XFx0KHNpemVvZihzdHJ1Y3Qgc3RtbWFjX3NhZmV0eV9zdGF0cykgLyBzaXplb2YodW5zaWduZWQgbG9uZykpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMjU4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDE2PXN0cnVjdCBkbWFfZmVhdHVyZXMge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNTY2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjU2Nzp2b2lkIHN0bW1hY19heGlfYmxlbl90b19tYXNrKHUzMiAqcmVndmFsLCBjb25zdCB1MzIgKmJsZW4sIHNpemVfdCBsZW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTU2OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTYxNT1zdHJ1Y3QgbWFjX2RldmljZV9pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTY6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19vcHMgKm1hYztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTc6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19kZXNjX29wcyAqZGVzYztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTg6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19kbWFfb3BzICpkbWE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE5OlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfbW9kZV9vcHMgKm1vZGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjIwOlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgKnB0cDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MjE6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY190Y19vcHMgKnRjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYyMjpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX21tY19vcHMgKm1tYztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MjM6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19lc3Rfb3BzICplc3Q7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjI0OlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfdmxhbl9vcHMgKnZsYW47XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjI1LVxcdHN0cnVjdCBkd194cGNzICp4cGNzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjQ5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1MDpzdHJ1Y3Qgc3RtbWFjX3J4X3JvdXRpbmcge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY1MS1cXHR1MzIgcmVnX21hc2s7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjU1OmludCBkd21hYzEwMF9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1NjppbnQgZHdtYWMxMDAwX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjU3OmludCBkd21hYzRfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTg6aW50IGR3eGdtYWMyX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjU5OmludCBkd3hsZ21hYzJfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjYxOnZvaWQgc3RtbWFjX3NldF9tYWNfYWRkcih2b2lkIF9faW9tZW0gKmlvYWRkciwgY29uc3QgdTggYWRkcls2XSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjItXFx0XFx0XFx0IHVuc2lnbmVkIGludCBoaWdoLCB1bnNpZ25lZCBpbnQgbG93KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjM6dm9pZCBzdG1tYWNfZ2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCB1bnNpZ25lZCBjaGFyICphZGRyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY2NC1cXHRcXHRcXHQgdW5zaWduZWQgaW50IGhpZ2gsIHVuc2lnbmVkIGludCBsb3cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY2NTp2b2lkIHN0bW1hY19zZXRfbWFjKHZvaWQgX19pb21lbSAqaW9hZGRyLCBib29sIGVuYWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjY2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY2Nzp2b2lkIHN0bW1hY19kd21hYzRfc2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCBjb25zdCB1OCBhZGRyWzZdLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY2OC1cXHRcXHRcXHRcXHR1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjY5OnZvaWQgc3RtbWFjX2R3bWFjNF9nZXRfbWFjX2FkZHIodm9pZCBfX2lvbWVtICppb2FkZHIsIHVuc2lnbmVkIGNoYXIgKmFkZHIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjcwLVxcdFxcdFxcdFxcdHVuc2lnbmVkIGludCBoaWdoLCB1bnNpZ25lZCBpbnQgbG93KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NzE6dm9pZCBzdG1tYWNfZHdtYWM0X3NldF9tYWModm9pZCBfX2lvbWVtICppb2FkZHIsIGJvb2wgZW5hYmxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NzItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTEtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L29mX25ldC5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxMjojaW5jbHVkZSBcXHUwMDNjbGludXgvc3RtbWFjLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxNDojaW5jbHVkZSBcXFwic3RtbWFjLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjE1OiNpbmNsdWRlIFxcXCJzdG1tYWNfcGxhdGZvcm0uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9NjM9YW5hcmlvbl9jb25maWdfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6NjQ6XFx0XFx0ICBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy02NS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9OTM9c3RhdGljIGludCBhbmFyaW9uX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtOTYtXFx0c3RydWN0IGFuYXJpb25fZ21hYyAqZ21hYztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6OTc6XFx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6OTg6XFx0c3RydWN0IHN0bW1hY19yZXNvdXJjZXMgc3RtbWFjX3JlcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtOTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEwMDpcXHRyZXQgPSBzdG1tYWNfZ2V0X3BsYXRmb3JtX3Jlc291cmNlcyhwZGV2LCBcXHUwMDI2c3RtbWFjX3Jlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEwMS1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEwMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTA0OlxcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTA1LVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTExNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTE2OlxcdHJldHVybiBkZXZtX3N0bW1hY19wbHRmcl9wcm9iZShwZGV2LCBwbGF0X2RhdCwgXFx1MDAyNnN0bW1hY19yZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMTctfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jPTEyNT1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBhbmFyaW9uX2R3bWFjX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMjgtXFx0XFx0Lm5hbWUgICAgICAgICAgID0gXFxcImFuYXJpb24tZHdtYWNcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxMjk6XFx0XFx0LnBtXFx0XFx0PSBcXHUwMDI2c3RtbWFjX3BsdGZyX3BtX29wcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTMwLVxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IGFuYXJpb25fZHdtYWNfbWF0Y2gsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIxLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9yZXNldC5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjI6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3N0bW1hYy5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNDojaW5jbHVkZSBcXFwic3RtbWFjX3BsYXRmb3JtLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNS0jaW5jbHVkZSBcXFwiZHdtYWM0LmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTM2PXN0YXRpYyBpbnQgZHdjX2V0aF9kd21hY19jb25maWdfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM3OlxcdFxcdFxcdFxcdCAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zOC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTQzLVxcdFxcdHBsYXRfZGF0LVxcdTAwM2VheGkgPSBkZXZtX2t6YWxsb2MoXFx1MDAyNnBkZXYtXFx1MDAzZWRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjQ0OlxcdFxcdFxcdFxcdFxcdCAgICAgc2l6ZW9mKHN0cnVjdCBzdG1tYWNfYXhpKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTQ1LVxcdFxcdFxcdFxcdFxcdCAgICAgR0ZQX0tFUk5FTCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTk2PXN0YXRpYyBpbnQgZHdjX3Fvc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6OTc6XFx0XFx0XFx0IHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzo5ODpcXHRcXHRcXHQgc3RydWN0IHN0bW1hY19yZXNvdXJjZXMgKnN0bW1hY19yZXMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy05OS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxMDA6XFx0cGxhdF9kYXQtXFx1MDAzZXBjbGsgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsIFxcXCJwaHlfcmVmX2Nsa1xcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTAxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0xMTU9c3RhdGljIHZvaWQgdGVncmFfZXFvc19maXhfc3BlZWQodm9pZCAqYnNwX3ByaXYsIHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTExOS1cXHRib29sIG5lZWRzX2NhbGlicmF0aW9uID0gZmFsc2U7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxMjA6XFx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTIxLVxcdHUzMiB2YWx1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTQxLVxcdFxcdC8qIENhbGlicmF0aW9uIHNob3VsZCBiZSBkb25lIHdpdGggdGhlIE1ESU8gYnVzIGlkbGUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE0MjpcXHRcXHRzdG1tYWNfbWRpb19sb2NrKHByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTQzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxNzg6XFx0XFx0c3RtbWFjX21kaW9fdW5sb2NrKHByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTc5LVxcdH0gZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTE4Nj1zdGF0aWMgaW50IHRlZ3JhX2Vxb3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE4NzpcXHRcXHRcXHQgICAgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE4ODpcXHRcXHRcXHQgICAgc3RydWN0IHN0bW1hY19yZXNvdXJjZXMgKnJlcylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTE4OS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIwMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjIwNDpcXHRwbGF0X2RhdC1cXHUwMDNlY2xrX3R4X2kgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsIFxcXCJ0eFxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjA1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMzctXFx0cGxhdF9kYXQtXFx1MDAzZWZpeF9tYWNfc3BlZWQgPSB0ZWdyYV9lcW9zX2ZpeF9zcGVlZDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjIzODpcXHRwbGF0X2RhdC1cXHUwMDNlc2V0X2Nsa190eF9yYXRlID0gc3RtbWFjX3NldF9jbGtfdHhfcmF0ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIzOS1cXHRwbGF0X2RhdC1cXHUwMDNlYnNwX3ByaXYgPSBlcW9zO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNTI9c3RhdGljIHZvaWQgdGVncmFfZXFvc19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI1My17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNTQ6XFx0c3RydWN0IHRlZ3JhX2Vxb3MgKmVxb3MgPSBnZXRfc3RtbWFjX2JzcF9wcml2KFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjU1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNjA9c3RydWN0IGR3Y19ldGhfZHdtYWNfZGF0YSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjEtXFx0aW50ICgqcHJvYmUpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNjI6XFx0XFx0ICAgICBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjYzOlxcdFxcdCAgICAgc3RydWN0IHN0bW1hY19yZXNvdXJjZXMgKnJlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjQtXFx0dm9pZCAoKnJlbW92ZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNjU6XFx0Y29uc3QgY2hhciAqc3RtbWFjX2Nsa19uYW1lO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY2LX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI2OD1zdGF0aWMgY29uc3Qgc3RydWN0IGR3Y19ldGhfZHdtYWNfZGF0YSBkd2NfcW9zX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjktXFx0LnByb2JlID0gZHdjX3Fvc19wcm9iZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI3MDpcXHQuc3RtbWFjX2Nsa19uYW1lID0gXFxcImFwYl9wY2xrXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3MS19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNzM9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgdGVncmFfZXFvc19kYXRhID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNzUtXFx0LnJlbW92ZSA9IHRlZ3JhX2Vxb3NfcmVtb3ZlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjc2OlxcdC5zdG1tYWNfY2xrX25hbWUgPSBcXFwic2xhdmVfYnVzXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3Ny19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNzk9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgZnNkX2Vxb3NfZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI4MDpcXHQuc3RtbWFjX2Nsa19uYW1lID0gXFxcInNsYXZlX2J1c1xcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODEtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjgzPXN0YXRpYyBpbnQgZHdjX2V0aF9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODUtXFx0Y29uc3Qgc3RydWN0IGR3Y19ldGhfZHdtYWNfZGF0YSAqZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI4NjpcXHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjg3OlxcdHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHN0bW1hY19yZXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODgtXFx0aW50IHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjkxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjkyOlxcdG1lbXNldChcXHUwMDI2c3RtbWFjX3JlcywgMCwgc2l6ZW9mKHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTQtXFx0LyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTU6XFx0ICogU2luY2Ugc3RtbWFjX3BsYXRmb3JtIHN1cHBvcnRzIG5hbWUgSVJRIG9ubHksIGJhc2ljIHBsYXRmb3JtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTYtXFx0ICogcmVzb3VyY2UgaW5pdGlhbGl6YXRpb24gaXMgZG9uZSBpbiB0aGUgZ2x1ZSBsb2dpYy5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5Ny1cXHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI5ODpcXHRzdG1tYWNfcmVzLmlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTk6XFx0aWYgKHN0bW1hY19yZXMuaXJxIFxcdTAwM2MgMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwMDpcXHRcXHRyZXR1cm4gc3RtbWFjX3Jlcy5pcnE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDE6XFx0c3RtbWFjX3Jlcy53b2xfaXJxID0gc3RtbWFjX3Jlcy5pcnE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDM6XFx0c3RtbWFjX3Jlcy5hZGRyID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzA0OlxcdGlmIChJU19FUlIoc3RtbWFjX3Jlcy5hZGRyKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNTpcXHRcXHRyZXR1cm4gUFRSX0VSUihzdG1tYWNfcmVzLmFkZHIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzA2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzA3OlxcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMwOC1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzE1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzE2OlxcdHBsYXRfZGF0LVxcdTAwM2VzdG1tYWNfY2xrID0gc3RtbWFjX3BsdGZyX2ZpbmRfY2xrKHBsYXRfZGF0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzE3OlxcdFxcdFxcdFxcdFxcdFxcdCAgICAgZGF0YS1cXHUwMDNlc3RtbWFjX2Nsa19uYW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMxOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMxOS1cXHRpZiAoZGF0YS1cXHUwMDNlcHJvYmUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMjA6XFx0XFx0cmV0ID0gZGF0YS1cXHUwMDNlcHJvYmUocGRldiwgcGxhdF9kYXQsIFxcdTAwMjZzdG1tYWNfcmVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMyMS1cXHRpZiAocmV0IFxcdTAwM2MgMCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMzA6XFx0cmV0ID0gc3RtbWFjX2R2cl9wcm9iZShcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBwbGF0X2RhdCwgXFx1MDAyNnN0bW1hY19yZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzMxLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTM0Mz1zdGF0aWMgdm9pZCBkd2NfZXRoX2R3bWFjX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozNDc6XFx0c3RtbWFjX2R2cl9yZW1vdmUoXFx1MDAyNnBkZXYtXFx1MDAzZWRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNDgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTM2MT1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBkd2NfZXRoX2R3bWFjX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzY1LVxcdFxcdC5uYW1lICAgICAgICAgICA9IFxcXCJkd2MtZXRoLWR3bWFjXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM2NjpcXHRcXHQucG0gICAgICAgICAgICAgPSBcXHUwMDI2c3RtbWFjX3BsdGZyX3BtX29wcyxcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMDc6MzA6MzguNjg5NDA3NzAxWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjAwODQzNDI0MDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBGdXp6aW5nIFBvdGVudGlhbCBvZiBhbiBgc3RtbWFjYCBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIGBzdG1tYWNgLi4uIHJpZ2h0LCB0aGF0J3MgdGhlIFN5bm9wc3lzIERlc2lnbldhcmUgRXRoZXJuZXQgTUFDIGRyaXZlciwgdXNlZCBhY3Jvc3MgYSB0b24gb2YgZW1iZWRkZWQgU29DcyBhbmQgUENJIGJvYXJkcy4gQWxsd2lubmVyLCBJbnRlbCwgUmVuZXNhcywgdGhlIHVzdWFsIHN1c3BlY3RzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkga25vdyBob3cgaXQncyB1c2VkIHNvIEkgY2FuIGFzc2VzcyB3aGV0aGVyIGl0J3Mgd29ydGggZnV6emluZy5cblxuTXkgaW1tZWRpYXRlIHF1ZXN0aW9ucyBhcmU6IERvZXMgUUVNVSBldmVuICplbXVsYXRlKiBgc3RtbWFjYCBoYXJkd2FyZT8gRG9lcyBpdCBlbXVsYXRlIHRoZSBoYXJkd2FyZSB0aGF0IHRoZSBwYXRjaCBpcyBtZWFudCB0byBmaXg/IEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIGFueSBvZiB0aGUgaGFyZHdhcmUgaXQgc3VwcG9ydHMgKFNUTTMyLCBBbGx3aW5uZXIgQTEwL0gzLCBldGMuKSBhcmUgZW11bGF0ZWQgb3IgcmVhY2hhYmxlIHRocm91Z2ggdGhlIGVtdWxhdGVkIHNldHVwLlxuXG5BbmQgd2hhdCBhYm91dCBTeXprYWxsZXI/IElzIGBzdG1tYWNgIGZ1enplZCBpbiB0aGUgc3RhbmRhcmQgc2V0dXBzPyBYODZfNjQsIGFybTY0Li4uIGRvZXMgU3l6a2FsbGVyIGV2ZW4gdGFyZ2V0IGl0P1xuXG5XYWl0LCBJIG5lZWQgdG8gZ28gYmFjayBhbmQgcmUtcmVhZCB0aGUgZ3VpZGVsaW5lcyBjYXJlZnVsbHkuIEkgaGF2ZSB0byBtYWtlIHN1cmUgdGhpcyBwYXRjaCBpc24ndCBqdXN0IGRvY3VtZW50YXRpb24sIGxvZ2dpbmcsIGRlY29yYXRpdmUgY2hhbmdlcywgb3Igc29tZXRoaW5nIHVucmVhY2hhYmxlIGluIFFFTVUuIFRoYXQncyBhIHdhc3RlIG9mIHRpbWUuIEkgaGF2ZSB0byBjb25zaWRlciB3aGV0aGVyIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuIFRoYXQncyB0aGUga2V5LlxuXG5Pa2F5LCBiYWNrIHRvIGBzdG1tYWNgLiBJIG5lZWQgdG8gZmlndXJlIG91dCAqZXhhY3RseSogd2hpY2ggaGFyZHdhcmUgSURzIG9yIFBDSSBkZXZpY2VzIGBzdG1tYWNgIHN1cHBvcnRzLCBhbmQgdGhlbiBkZXRlcm1pbmUgaWYgUUVNVSBjYW4gaGFuZGxlIHRoZW0sIGlmIHRoZXkncmUgcmVhY2hhYmxlLiBJIG5lZWQgdG8gZ2V0IGludG8gdGhlIGNvZGUgYW5kIHN0YXJ0IGxvb2tpbmcgYXQgZmlsZXMgbGlrZSBgc3RtbWFjX3BjaS5jYCwgYGR3bWFjLWludGVsLmNgLCBgZHdtYWMtbG9vbmdzb24uY2AsIGFuZCBzbyBvbi4gVGhhdCdzIHRoZSBuZXh0IHN0ZXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNDcwLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTA3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDA3OjMwOjU4Ljc3Mzc1MzIwNloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzcxNjAzMDIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTU9EVUxFX0RFVklDRV9UQUJMRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jPTExOT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhbmFyaW9uX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTIyLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEyMzpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBhbmFyaW9uX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTI0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNTM9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZHdjX2V0aF9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNTgtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM1OTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBkd2NfZXRoX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM2MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWVpYzc3MDAuYz0zNTA9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZWljNzcwMF9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jLTM1OS19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWVpYzc3MDAuYzozNjA6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZWljNzcwMF9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jLTM2MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYz01Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBkd21hY19nZW5lcmljX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1nZW5lcmljLmMtNjYtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1nZW5lcmljLmM6Njc6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZHdtYWNfZ2VuZXJpY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZ2VuZXJpYy5jLTY4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmM9Mzg0PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGlteF9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmMtMzg5LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmM6MzkwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGlteF9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmMtMzkxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW5nZW5pYy5jPTI2Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpbmdlbmljX21hY19vZl9tYXRjaGVzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmMtMjY5LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW5nZW5pYy5jOjI3MDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBpbmdlbmljX21hY19vZl9tYXRjaGVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmMtMjcxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwtcGxhdC5jPTM2PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGludGVsX2V0aF9wbGF0X21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmMtMzktfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmM6NDA6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgaW50ZWxfZXRoX3BsYXRfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYy00MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MTM5NT1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgaW50ZWxfZXRoX3BjaV9pZF90YWJsZVtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xNDE0LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxNDE1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBpbnRlbF9ldGhfcGNpX2lkX3RhYmxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTE0MTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmM9NDkxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGlwcTgwNnhfZ21hY19kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTQ5NC19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlwcTgwNnguYzo0OTU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgaXBxODA2eF9nbWFjX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmMtNDk2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz01OTY9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGxvb25nc29uX2R3bWFjX2lkX3RhYmxlW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTYwMS19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NjAyOk1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBsb29uZ3Nvbl9kd21hY19pZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy02MDMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYz0yMTY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbHMxeF9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmMtMjI2LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmM6MjI3Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGxzMXhfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uMS5jLTIyOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYz03MT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBscGMxOHh4X2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmMtNzQtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmM6NzU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbHBjMTh4eF9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jLTc2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYz02NjI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbWVkaWF0ZWtfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmMtNjY5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmM6NjcwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG1lZGlhdGVrX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jLTY3MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmM9NzY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbWVzb242X2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jLTc5LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb24uYzo4MDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtZXNvbjZfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmMtODEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmM9NDgyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG1lc29uOGJfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYy01MDQtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmM6NTA1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG1lc29uOGJfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYy01MDYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0zNjc9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGR3bWFjX21vdG9yY29tbV9wY2lfaWRfdGFibGVbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTM3MC19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jOjM3MTpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgZHdtYWNfbW90b3Jjb21tX3BjaV9pZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMzcyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbnV2b3Rvbi5jPTExOD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBudnRfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYy0xMjEtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmM6MTIyOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG52dF9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbnV2b3Rvbi5jLTEyMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmM9ODAwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHFjb21fZXRocW9zX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1xY29tLWV0aHFvcy5jLTgwNi19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmM6ODA3Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHFjb21fZXRocW9zX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1xY29tLWV0aHFvcy5jLTgwOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYz0yMTY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcmVuZXNhc19nYmV0aF9tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmVuZXNhcy1nYmV0aC5jLTIyMS19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYzoyMjI6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgcmVuZXNhc19nYmV0aF9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmVuZXNhcy1nYmV0aC5jLTIyMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmM9MTYxNj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBya19nbWFjX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jLTE2MzQtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jOjE2MzU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgcmtfZ21hY19kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYy0xNjM2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcnpuMS5jPTc1PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHJ6bjFfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYy03OC19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYzo3OTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCByem4xX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yem4xLmMtODAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYz0yMTY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgczMyX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYy0yMTktfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYzoyMjA6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgczMyX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYy0yMjEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM9NjczPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNvY2ZwZ2FfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy02NzgtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM6Njc5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNvY2ZwZ2FfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy02ODAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYz03Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzb3BoZ29fZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jLTc2LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29waGdvLmM6Nzc6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc29waGdvX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYy03OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmM9MjEwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNwYWNlbWl0X2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jLTIxMy19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmM6MjE0Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNwYWNlbWl0X2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jLTIxNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmM9MTYwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN0YXJmaXZlX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTE2NC19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmM6MTY1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN0YXJmaXZlX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTE2Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jPTI5Nj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdGlfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTI5OS19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jOjMwMDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdGlfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTMwMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0bTMyLmM9NjYyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN0bTMyX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdG0zMi5jLTY2OC19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0bTMyLmM6NjY5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN0bTMyX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdG0zMi5jLTY3MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjU1aS5jPTE0MT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdW41NWlfZ21hYzIwMF9tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuNTVpLmMtMTQ0LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuNTVpLmM6MTQ1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN1bjU1aV9nbWFjMjAwX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW41NWkuYy0xNDYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW44aS5jPTEyNjg9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3VuOGlfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmMtMTI4Mi19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmM6MTI4MzpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdW44aV9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuOGkuYy0xMjg0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VueGkuYz0xNTA9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3VuN2lfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bnhpLmMtMTUzLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VueGkuYzoxNTQ6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3VuN2lfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bnhpLmMtMTU1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYz0zOTc9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgdGVncmFfbWdiZV9tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYy00MDAtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jOjQwMTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCB0ZWdyYV9tZ2JlX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jLTQwMi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRoZWFkLmM9MjY3PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHRoZWFkX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10aGVhZC5jLTI3MC19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRoZWFkLmM6MjcxOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHRoZWFkX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10aGVhZC5jLTI3Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXZpc2NvbnRpLmM9MjU1PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHZpc2NvbnRpX2V0aF9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdmlzY29udGkuYy0yNTgtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy12aXNjb250aS5jOjI1OTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCB2aXNjb250aV9ldGhfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXZpc2NvbnRpLmMtMjYwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTIwMz1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgc3RtbWFjX2lkX3RhYmxlW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTA6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIHN0bW1hY19pZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMDc6MzA6NTkuMDEwOTIzNDI5WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTA5MzY0MTc4NzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFFFTVUgRW11bGF0aW9uIENhcGFiaWxpdGllcyBmb3IgRXRoZXJuZXQgRHJpdmVycyoqXG5cbk9rYXksIGhlcmUncyB3aGF0IEknbSB0aGlua2luZy4uLiBmaXJzdCwgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgUUVNVSAqYWN0dWFsbHkqIGVtdWxhdGVzIHRoZSBzdG1tYWMgZHJpdmVyIGF0IGFsbC4gSXMgaXQgYSBzdGFuZGFyZCBlbXVsYXRpb24gb3IgaXMgaXQgc29tZXRoaW5nIHRoYXQgcmVxdWlyZXMgYSBzcGVjaWZpYyBRRU1VIGNvbmZpZ3VyYXRpb24gb3IgZXZlbiBhIGN1c3RvbSBzZXR1cD8gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGNoZWNrIGlmIGl0J3MgZW11bGF0ZWQgaW4gYW55IGNvbW1vbiBBUk0gcGxhdGZvcm1zLlxuXG5MZXQncyBzZWUuIERvZXMgUUVNVSBoYXZlIHN1cHBvcnQgZm9yIGBhbGx3aW5uZXItZW1hY2AsIG9yIHNwZWNpZmljYWxseSBgYWxsd2lubmVyLXN1bjhpLWVtYWNgLCBvciBldmVuIHRoZSBnZW5lcmljIGBkZXNpZ253YXJlYCBldGhlcm5ldCBjb250cm9sbGVyPyBJIHJlY2FsbCBzZWVpbmcgc29tZXRoaW5nLi4uIEFoLCB5ZXMsIFFFTVUgZG9lcyBoYXZlIGBhbGx3aW5uZXItc3VuOGktZW1hY2AsIGFsb25nIHdpdGggb3RoZXIgb3B0aW9ucyBsaWtlIGBjYWRlbmNlX2dlbWAsIGBpbXhfZmVjYCwgYW5kIGBsYW45MTE4YC4gQnV0LCBkb2VzIGl0IGhhdmUgdGhlIHNwZWNpZmljIGBkd2NfZXRoX3Fvc2Agb3Igc2ltcGx5IGBkd21hY2AgdGhhdCdzIHJlbGV2YW50IHRvIHRoaXMgcG90ZW50aWFsIGludmVzdGlnYXRpb24/XG5cbk9rYXksIGl0IHNlZW1zIFFFTVUgaGFzIGBhbGx3aW5uZXItc3VuOGktZW1hY2AsIGFuZCBJIHNlZSB0aGUgcGF0aCBgaHcvbmV0L2FsbHdpbm5lci1zdW44aS1lbWFjLmNgLiBEb2VzIHRoYXQgYGFsbHdpbm5lci1zdW44aS1lbWFjYCBjb3JyZXNwb25kIHRvIHRoZSBgc3VuOGlfZHdtYWNgIG9yIHRoZSBtb3JlIGdlbmVyYWwgYHN1bjhpLWVtYWNgP1xuXG5XYWl0LCBiZWZvcmUgZ2V0dGluZyB0b28gZGVlcCwgbGV0J3MgcmVmcmVzaCBvdXIgbWVtb3J5IG9mIHRoZSBydWxlczogdGhlIGNvZGUgaXMgb25seSBjb25zaWRlcmVkIFwid29ydGggZnV6emluZ1wiIGlmIHRoZSBjaGFuZ2VzIGltcGFjdCByZWFjaGFibGUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLiBUaGluZ3MgbGlrZSBkb2N1bWVudGF0aW9uLCBLY29uZmlnLCBvciBjb21tZW50cyBhcmUgb3V0LiBBbHNvLCB3ZSdyZSBub3QgaW50ZXJlc3RlZCBpbiBwYXJ0cyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIFRoYXQgaW5jbHVkZXMgdGhpbmdzIGxpa2UgdmVuZG9yLXNwZWNpZmljIFBDSWUgY2FyZHMsIHRlYXJkb3duIGNvZGUsIGFuZCBkcml2ZXJzIHJlcXVpcmluZyBwaHlzaWNhbCBoYXJkd2FyZS5cblxuU28sIEkgbmVlZCB0byBjaGVjayBpZiBgc3RtbWFjL2R3bWFjNGAgaXMgcmVhY2hhYmxlIGluIFFFTVUgb3IgR0NFLlxuXG5MZXQncyBlbnVtZXJhdGUgdGhlIGV0aGVybmV0IGRyaXZlcnMgdGhhdCBhcmUgZW11bGF0ZWQgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50ICh4ODYgb3IgYXJtNjQpLiBJIGtub3cgdGhlcmUgYXJlIGRyaXZlcnMgbGlrZSBgZTEwMDBgLCBgZTEwMDBlYCwgYGlnYmAsIGB2bXhuZXQzYCwgYHJ0bDgxMzlgLCBgcGNuZXRgLCBgbmUya19wY2lgLCBgdmlydGlvLW5ldGAsIGBzdW5nZW1gLCBhbmQgYHJvY2tlcmAuIFVTQiBldGhlcm5ldCwgbGlrZSBgdXNiLW5ldGAgYW5kIGBjZGMtZXRoZXJgLCBpcyBhbm90aGVyIGFyZWEuIEJ1dCwgd2hlcmUgZG9lcyBgc3RtbWFjYCBmaXQgaW4/XG5cbkxldCdzIGNoZWNrIHRoZSBzb3VyY2UsIHNwZWNpZmljYWxseSBgc3RtbWFjX3BjaS5jYCBhbmQgYGR3bWFjLWludGVsLmNgLiBJbiBgc3RtbWFjX3BjaS5jYCwgSSBzZWUgUENJIGRldmljZXMgZnJvbSBTVCBNaWNyb2VsZWN0cm9uaWNzL1N5bm9wc3lzICgweDEwNEEpIGFuZCBhbHNvIGZyb20gSW50ZWwuIEluIGBkd21hYy1pbnRlbC5jYCwgdGhlcmUncyBhbiBJbnRlbCBRdWFyayBkZXZpY2UgKDB4MDkzNykgYW5kIG5ld2VyIEludGVsIGZhbWlsaWVzIChFSEwsIFRHTCwgZXRjKS4gVGhlcmUncyBhbHNvIGBkd21hYy1sb29uZ3Nvbi5jYCwgZm9yIHRoZSBMUzdBMTAwMC5cblxuTm93LCB0aGUgY3JpdGljYWwgcXVlc3Rpb246IGFyZSBhbnkgb2YgdGhlc2UgZW11bGF0ZWQgYnkgc3RhbmRhcmQgUUVNVSBvciBpbiBHQ0U/IE5vcGUsIGl0IGRvZXNuJ3QgbG9vayBsaWtlIFFFTVUgZW11bGF0ZXMgSW50ZWwgUXVhcmsvRUhMIEdiRSAoZHdtYWMpLCBMb29uZ3NvbiBzdG1tYWMsIG9yIFNUTS9TeW5vcHN5cyBQQ0kgTUFDLlxuXG5Pa2F5LCBsZXQncyB0cnkgYSBkaWZmZXJlbnQgdGFjay4gV2hhdCBhYm91dCBBUk0sIFJJU0MtViwgb3IgTUlQUyBRRU1VIG1hY2hpbmVzPyBMZXQncyBjaGVjay4uLiB3aXRoIFFFTVU6XG4qICAgYGFybWAgaGFzIHZlcnNhdGlsZXBiIChzbWM5MWMxMTEpLCByZWFsdmlldyAoc21jOTFjMTExIC8gbGFuOTExOCksIHZpcnQgKHZpcnRpby1uZXQpLCByYXNwaSAoYmNtMjgzNSAvIHNtc2M5NTEyKSwgYW5kIG9yYW5nZXBpLXBjIChhbGx3aW5uZXItaDMpLiBCaW5nbyEgVGhlIGBvcmFuZ2VwaS1wY2AgaGFzIGBhbGx3aW5uZXItc3VuOGktZW1hY2AhIEFuZCwgYHN1bjhpX2R3bWFjLmNgIGluIExpbnV4IGlzIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW44aS5jYC5cblxuQWhhISBOb3cgd2UncmUgZ2V0dGluZyBzb21ld2hlcmUuIERvZXMgYGR3bWFjLXN1bjhpLmNgICp1c2UqIGBkd21hYzRgPyBUaGUgYW5zd2VyIHRvIHRoYXQgcXVlc3Rpb24gaXMga2V5ISBUaW1lIHRvIGRpZyBpbnRvIGBkd21hYy1zdW44aS5jYCFcblxuXG4iLCJJbnB1dFRva2VucyI6MjY3NjQsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTA1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDA3OjMxOjA5Ljk0NzM0MzMyOFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0ODUwMDcwNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJEV01BQ19DT1JFX1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMzItLyogU3lub3BzeXMgQ29yZSB2ZXJzaW9ucyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjMzOiNkZWZpbmVcXHREV01BQ19DT1JFXzNfNDBcXHRcXHQweDM0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MzQ6I2RlZmluZVxcdERXTUFDX0NPUkVfM181MFxcdFxcdDB4MzVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDozNTojZGVmaW5lXFx0RFdNQUNfQ09SRV8zXzcwXFx0XFx0MHgzN1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM2OiNkZWZpbmVcXHREV01BQ19DT1JFXzRfMDBcXHRcXHQweDQwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6Mzc6I2RlZmluZSBEV01BQ19DT1JFXzRfMTBcXHRcXHQweDQxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6Mzg6I2RlZmluZSBEV01BQ19DT1JFXzVfMDBcXHRcXHQweDUwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6Mzk6I2RlZmluZSBEV01BQ19DT1JFXzVfMTBcXHRcXHQweDUxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NDA6I2RlZmluZSBEV01BQ19DT1JFXzVfMjBcXHRcXHQweDUyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNDEtI2RlZmluZSBEV1hHTUFDX0NPUkVfMl8xMFxcdDB4MjFcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTQ5PXN0YXRpYyBpbmxpbmUgYm9vbCBkd21hY19pc194bWFjKGVudW0gZHdtYWNfY29yZV90eXBlIGNvcmVfdHlwZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC01MC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NTE6XFx0cmV0dXJuIGNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0IHx8IGNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTUyLX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MzY9c3RhdGljIGludCBkd2NfZXRoX2R3bWFjX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy04Ny1cXHQvKiBkd2MtcW9zIG5lZWRzIEdNQUM0LCBBQUwsIFRTTyBhbmQgUE1UICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzo4ODpcXHRwbGF0X2RhdC1cXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDNDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTg5LVxcdHBsYXRfZGF0LVxcdTAwM2VkbWFfY2ZnLVxcdTAwM2VhYWwgPSAxO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz01OTY9c3RhdGljIHZvaWQgY29tbW9uX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTU5OS1cXHRwbGF0LVxcdTAwM2VjbGtfY3NyID0gU1RNTUFDX0NTUl8yMF8zNU07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo2MDA6XFx0cGxhdC1cXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNjAxLVxcdHBsYXQtXFx1MDAzZWZvcmNlX3NmX2RtYV9tb2RlID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9NjE2PXN0YXRpYyBpbnQgaW50ZWxfbWdiZV9jb21tb25fZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNjI2LVxcdHBsYXQtXFx1MDAzZWNsa19jc3IgPSBTVE1NQUNfQ1NSXzI1MF8zMDBNO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NjI3OlxcdHBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy02MjgtXFx0cGxhdC1cXHUwMDNlZm9yY2Vfc2ZfZG1hX21vZGUgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jPTM3ND1zdGF0aWMgaW50IGlwcTgwNnhfZ21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTQ3NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmM6NDc2OlxcdHBsYXRfZGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTQ3Ny1cXHRwbGF0X2RhdC1cXHUwMDNlYnNwX3ByaXYgPSBnbWFjO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy03Mi0jZGVmaW5lIFBDSV9ERVZJQ0VfSURfTE9PTkdTT05fR05FVFxcdDB4N2ExM1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NzM6I2RlZmluZSBEV01BQ19DT1JFX01VTFRJQ0hBTl9WMVxcdDB4MTBcXHQvKiBMb29uZ3NvbiBjdXN0b20gSUQgMHgxMCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NzQ6I2RlZmluZSBEV01BQ19DT1JFX01VTFRJQ0hBTl9WMlxcdDB4MTJcXHQvKiBMb29uZ3NvbiBjdXN0b20gSUQgMHgxMiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNzUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTg2PXN0YXRpYyB2b2lkIGxvb25nc29uX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtOTUtXFx0cGxhdC1cXHUwMDNlY2xrX2NzciA9IFNUTU1BQ19DU1JfMTAwXzE1ME07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo5NjpcXHRwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy05Ny1cXHRwbGF0LVxcdTAwM2Vmb3JjZV9zZl9kbWFfbW9kZSA9IHRydWU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTEwOC1cXHRzd2l0Y2ggKGxkLVxcdTAwM2Vsb29uZ3Nvbl9pZCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6MTA5OlxcdGNhc2UgRFdNQUNfQ09SRV9NVUxUSUNIQU5fVjE6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xMTAtXFx0XFx0bGQtXFx1MDAzZW11bHRpY2hhbiA9IDE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTEyMC1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjEyMTpcXHRjYXNlIERXTUFDX0NPUkVfTVVMVElDSEFOX1YyOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTIyLVxcdFxcdGxkLVxcdTAwM2VtdWx0aWNoYW4gPSAxO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz0zMDY9c3RhdGljIGludCBsb29uZ3Nvbl9kd21hY19zZXR1cCh2b2lkICphcHJpdiwgc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqbWFjKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0zMjgtXFx0aWYgKGxkLVxcdTAwM2VtdWx0aWNoYW4pIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjMyOTpcXHRcXHRwcml2LVxcdTAwM2VzeW5vcHN5c19pZCA9IERXTUFDX0NPUkVfM183MDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTMzMC1cXHRcXHQqZG1hID0gZHdtYWMxMDAwX2RtYV9vcHM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmM9NDI9c3RhdGljIGludCBscGMxOHh4X2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmMtNTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jOjU3OlxcdHBsYXRfZGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jLTU4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MjA4PW1vdG9yY29tbV9kZWZhdWx0X3BsYXRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI0Ny1cXHRwbGF0LVxcdTAwM2VjbGtfcmVmX3JhdGVcXHQ9IDEyNTAwMDAwMDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzoyNDg6XFx0cGxhdC1cXHUwMDNlY29yZV90eXBlXFx0XFx0PSBEV01BQ19DT1JFX0dNQUM0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI0OS1cXHRwbGF0LVxcdTAwM2VzdXNwZW5kXFx0XFx0PSBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmM9Njg0PXN0YXRpYyBpbnQgcWNvbV9ldGhxb3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmMtNzc2LVxcdHBsYXRfZGF0LVxcdTAwM2VwdHBfY2xrX2ZyZXFfY29uZmlnID0gZXRocW9zX3B0cF9jbGtfZnJlcV9jb25maWc7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYzo3Nzc6XFx0cGxhdF9kYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYy03NzgtXFx0aWYgKGV0aHFvcy1cXHUwMDNlaGFzX2VtYWNfZ2VfMylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmM9MTU2OD1zdGF0aWMgaW50IHJrX2dtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmMtMTU5MS1cXHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jOjE1OTI6XFx0aWYgKHBsYXRfZGF0LVxcdTAwM2Vjb3JlX3R5cGUgIT0gRFdNQUNfQ09SRV9HTUFDNCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmM6MTU5MzpcXHRcXHRwbGF0X2RhdC1cXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmMtMTU5NC1cXHRcXHRwbGF0X2RhdC1cXHUwMDNlcnhfZmlmb19zaXplID0gNDA5NjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXMzMi5jPTE0ND1zdGF0aWMgaW50IHMzMl9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmMtMTk1LVxcdC8qIFMzMkNDIGNvcmUgZmVhdHVyZSBzZXQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYzoxOTY6XFx0cGxhdC1cXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDNDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYy0xOTctXFx0cGxhdC1cXHUwMDNlcG10ID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYz01NTk9c3RhdGljIHZvaWQgc29jZnBnYV9nZW41X3NldHVwX3BsYXRfZGF0KHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy01NjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jOjU2MzpcXHRwbGF0X2RhdC1cXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy01NjQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM9NTY5PXN0YXRpYyB2b2lkIHNvY2ZwZ2FfYWdpbGV4NV9zZXR1cF9wbGF0X2RhdChzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNTcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYzo1NzM6XFx0cGxhdF9kYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jLTU3NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bnhpLmM9OTk9c3RhdGljIGludCBzdW43aV9nbWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jLTEzOC1cXHRwbGF0X2RhdC1cXHUwMDNldHhfY29lID0gdHJ1ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jOjEzOTpcXHRwbGF0X2RhdC1cXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bnhpLmMtMTQwLVxcdHBsYXRfZGF0LVxcdTAwM2Vic3BfcHJpdiA9IGdtYWM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jPTIxND1zdGF0aWMgaW50IHRlZ3JhX21nYmVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmMtMzI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmM6MzI2OlxcdHBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYy0zMjctXFx0cGxhdC1cXHUwMDNlZmxhZ3MgfD0gU1RNTUFDX0ZMQUdfVFNPX0VOO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jPTIxPXN0YXRpYyB2b2lkIHN0bW1hY19nZXRfdmVyc2lvbihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjMxOlxcdGlmIChjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9NQUMxMDApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTMyLVxcdFxcdHJldHVybjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjM0OlxcdGlmIChjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0zNS1cXHRcXHR2ZXJzaW9uX29mZnNldCA9IEdNQUNfVkVSU0lPTjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy00OS1cXHR2ZXItXFx1MDAzZXNucHN2ZXIgPSBGSUVMRF9HRVQoRFdNQUNfU05QU1ZFUiwgdmVyc2lvbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjUwOlxcdGlmIChjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtNTEtXFx0XFx0dmVyLVxcdTAwM2VkZXZfaWQgPSBGSUVMRF9HRVQoRFdNQUNfVVNFUlZFUiwgdmVyc2lvbik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM9Njk9c3RhdGljIGludCBzdG1tYWNfZHdtYWMxX3F1aXJrcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtNzYtXFx0XFx0LyogR01BQyBvbGRlciB0aGFuIDMuNTAgaGFzIG5vIGV4dGVuZGVkIGRlc2NyaXB0b3JzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjc3OlxcdFxcdGlmIChwcml2LVxcdTAwM2VzeW5vcHN5c19pZCBcXHUwMDNlPSBEV01BQ19DT1JFXzNfNTApIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtNzgtXFx0XFx0XFx0ZGV2X2luZm8ocHJpdi1cXHUwMDNlZGV2aWNlLCBcXFwiRW5hYmxlZCBleHRlbmRlZCBkZXNjcmlwdG9yc1xcXFxuXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM9MTExPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3aWZfZW50cnkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTEzMC1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjEzMTpcXHRcXHQuY29yZV90eXBlID0gRFdNQUNfQ09SRV9NQUMxMDAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTEzMi1cXHRcXHQubWluX2lkID0gMCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0xNDctXFx0fSwge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoxNDg6XFx0XFx0LmNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMTQ5LVxcdFxcdC5taW5faWQgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTE2NC1cXHR9LCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjE2NTpcXHRcXHQuY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDNCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMTY2LVxcdFxcdC5taW5faWQgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTE4NC1cXHR9LCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjE4NTpcXHRcXHQuY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDNCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MTg2OlxcdFxcdC5taW5faWQgPSBEV01BQ19DT1JFXzRfMDAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTE4Ny1cXHRcXHQucmVncyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yMDUtXFx0fSwge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoyMDY6XFx0XFx0LmNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjIwNzpcXHRcXHQubWluX2lkID0gRFdNQUNfQ09SRV80XzEwLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yMDgtXFx0XFx0LnJlZ3MgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMjI2LVxcdH0sIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MjI3OlxcdFxcdC5jb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoyMjg6XFx0XFx0Lm1pbl9pZCA9IERXTUFDX0NPUkVfNV8xMCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMjI5LVxcdFxcdC5yZWdzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTI0Ny1cXHR9LCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjI0ODpcXHRcXHQuY29yZV90eXBlID0gRFdNQUNfQ09SRV9YR01BQyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMjQ5LVxcdFxcdC5taW5faWQgPSBEV1hHTUFDX0NPUkVfMl8xMCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yNjktXFx0fSwge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoyNzA6XFx0XFx0LmNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTI3MS1cXHRcXHQubWluX2lkID0gRFdYTEdNQUNfQ09SRV8yXzAwLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jPTI5ND1zdG1tYWNfaHdpZl9maW5kKGVudW0gZHdtYWNfY29yZV90eXBlIGNvcmVfdHlwZSwgdTggc25wc3ZlciwgdTggZGV2X2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTMwNi1cXHRcXHRcXHRjb250aW51ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MzA3OlxcdFxcdGlmIChjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQyBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0zMDgtXFx0XFx0ICAgIGRldl9pZCAhPSBlbnRyeS1cXHUwMDNlZGV2X2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jPTMxNz1pbnQgc3RtbWFjX2h3aWZfaW5pdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMzUyLVxcdFxcdFxcdFxcXCJGYWlsZWQgdG8gZmluZCBIVyBJRiAoaWQ9MHgleCwgZ21hYz0lZC8lZClcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjM1MzpcXHRcXHRcXHR2ZXJzaW9uLnNucHN2ZXIsIGNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjM1NDpcXHRcXHRcXHRjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTM1NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYz0yOD1zdGF0aWMgaW50IGVzdF9jb25maWd1cmUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBzdHJ1Y3Qgc3RtbWFjX2VzdCAqY2ZnLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jLTU1LVxcdGN0cmwgPSByZWFkbChlc3RfYWRkciArIEVTVF9DT05UUk9MKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmM6NTY6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jLTU3LVxcdFxcdGN0cmwgXFx1MDAyNj0gfkVTVF9YR01BQ19QVE9WO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jPTgzPXN0YXRpYyB2b2lkIGVzdF9pcnFfc3RhdHVzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYy0xNTAtXFx0aWYgKHN0YXR1cyBcXHUwMDI2IEVTVF9CVFJFKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jOjE1MTpcXHRcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmMtMTUyLVxcdFxcdFxcdGJ0cmwgPSBGSUVMRF9HRVQoRVNUX1hHTUFDX0JUUkwsIHN0YXR1cyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jPTMwMT1zdGF0aWMgdm9pZCBzdG1tYWNfZXRodG9vbF9nZXRkcnZpbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTMwNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jOjMwNjpcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQyB8fFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM6MzA3OlxcdCAgICBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTMwOC1cXHRcXHRzdHJzY3B5KGluZm8tXFx1MDAzZWRyaXZlciwgR01BQ19FVEhUT09MX05BTUUsIHNpemVvZihpbmZvLVxcdTAwM2Vkcml2ZXIpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jOjMwOTpcXHRlbHNlIGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTMxMC1cXHRcXHRzdHJzY3B5KGluZm8tXFx1MDAzZWRyaXZlciwgWEdNQUNfRVRIVE9PTF9OQU1FLCBzaXplb2YoaW5mby1cXHUwMDNlZHJpdmVyKSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jPTM1MD1zdGF0aWMgaW50IHN0bW1hY19ldGh0b29sX2dldF9yZWdzX2xlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zNTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYzozNTQ6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtMzU1LVxcdFxcdHJldHVybiBYR01BQ19SRUdTSVpFICogNDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jOjM1NjpcXHRlbHNlIGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTM1Ny1cXHRcXHRyZXR1cm4gR01BQzRfUkVHX1NQQUNFX1NJWkU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jPTM2MT1zdGF0aWMgdm9pZCBzdG1tYWNfZXRodG9vbF9ncmVncyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zNzAtXFx0LyogQ29weSBETUEgcmVnaXN0ZXJzIHRvIHdoZXJlIGV0aHRvb2wgZXhwZWN0cyB0aGVtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYzozNzE6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zNzItXFx0XFx0LyogR01BQzQgZHVtcHMgaXRzIERNQSByZWdpc3RlcnMgYXQgaXRzIERNQV9DSEFOX0JBU0VfQUREUiAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zNzUtXFx0XFx0ICAgICAgIE5VTV9EV01BQzRfRE1BX1JFR1MgKiA0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jOjM3NjpcXHR9IGVsc2UgaWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSAhPSBEV01BQ19DT1JFX1hHTUFDKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zNzctXFx0XFx0bWVtY3B5KFxcdTAwMjZyZWdfc3BhY2VbRVRIVE9PTF9ETUFfT0ZGU0VUXSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM9NTE1PXN0YXRpYyB2b2lkIHN0bW1hY19nZXRfZXRodG9vbF9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy01NTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYzo1NTY6XFx0XFx0aWYgKHByaXYtXFx1MDAzZXN5bm9wc3lzX2lkIFxcdTAwM2U9IERXTUFDX0NPUkVfM181MClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTU1Ny1cXHRcXHRcXHRzdG1tYWNfbWFjX2RlYnVnKHByaXYsIHByaXYtXFx1MDAzZWlvYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NjQyPXN0YXRpYyBpbnQgc3RtbWFjX2h3dHN0YW1wX3NldChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NTctXFx0XFx0XFx0c25hcF90eXBlX3NlbCA9IFBUUF9UQ1JfU05BUFRZUFNFTF8xO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzU4OlxcdFxcdFxcdGlmIChwcml2LVxcdTAwM2VzeW5vcHN5c19pZCBcXHUwMDNjIERXTUFDX0NPUkVfM183MCBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzU5OlxcdFxcdFxcdCAgICBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgIT0gRFdNQUNfQ09SRV9YR01BQylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc2MC1cXHRcXHRcXHRcXHR0c19ldmVudF9lbiA9IFBUUF9UQ1JfVFNFVk5URU5BO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz00Mzc5PXN0YXRpYyB2b2lkIHN0bW1hY19zZXRfZ3NvX2ZlYXR1cmVzKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00NDA4LVxcdG5kZXYtXFx1MDAzZWh3X2ZlYXR1cmVzIHw9IE5FVElGX0ZfVFNPIHwgTkVUSUZfRl9UU082O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NDQwOTpcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQzQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00NDEwLVxcdFxcdG5kZXYtXFx1MDAzZWh3X2ZlYXR1cmVzIHw9IE5FVElGX0ZfR1NPX1VEUF9MNDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NTEyND1zdGF0aWMgdW5zaWduZWQgaW50IHN0bW1hY19yeF9idWYyX2xlbihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUxNDktXFx0LyogTm90IEdNQUM0IGFuZCBub3QgbGFzdCBkZXNjcmlwdG9yICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1MTUwOlxcdGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgIT0gRFdNQUNfQ09SRV9HTUFDNCBcXHUwMDI2XFx1MDAyNiAoc3RhdHVzIFxcdTAwMjYgcnhfbm90X2xzKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUxNTEtXFx0XFx0cmV0dXJuIHByaXYtXFx1MDAzZWRtYV9jb25mLmRtYV9idWZfc3o7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTYyMDc9c3RhdGljIHZvaWQgc3RtbWFjX2NvbW1vbl9pbnRlcnJ1cHQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02MjI4LVxcdC8qIFRvIGhhbmRsZSBHTUFDIG93biBpbnRlcnJ1cHRzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2MjI5OlxcdGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDIHx8IHhtYWMpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTYyMzAtXFx0XFx0aW50IHN0YXR1cyA9IHN0bW1hY19ob3N0X2lycV9zdGF0dXMocHJpdiwgXFx1MDAyNnByaXYtXFx1MDAzZXhzdGF0cyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTY1NDM9c3RhdGljIGludCBzdG1tYWNfZG1hX2NhcF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NTc4LVxcdFxcdCAgIChwcml2LVxcdTAwM2VkbWFfY2FwLmhhbGZfZHVwbGV4KSA/IFxcXCJZXFxcIiA6IFxcXCJOXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2NTc5OlxcdGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjU4MC1cXHRcXHRzZXFfcHJpbnRmKHNlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjU4Mi1cXHRcXHRcXHQgICBwcml2LVxcdTAwM2VkbWFfY2FwLm11bHRpX2FkZHIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NjU4MzpcXHR9IGVsc2UgaWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NTg0LVxcdFxcdHNlcV9wcmludGYoc2VxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NjE0LVxcdFxcdCAgIChwcml2LVxcdTAwM2VkbWFfY2FwLmF0aW1lX3N0YW1wKSA/IFxcXCJZXFxcIiA6IFxcXCJOXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2NjE1OlxcdGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY2MTYtXFx0XFx0c2VxX3ByaW50ZihzZXEsIFxcXCJcXFxcdFRpbWVzdGFtcCBTeXN0ZW0gVGltZSBTb3VyY2U6ICVzXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NjIyLVxcdFxcdCAgIChwcml2LVxcdTAwM2VkbWFfY2FwLnR4X2NvZSkgPyBcXFwiWVxcXCIgOiBcXFwiTlxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NjYyMzpcXHRpZiAocHJpdi1cXHUwMDNlc3lub3BzeXNfaWQgXFx1MDAzZT0gRFdNQUNfQ09SRV80XzAwIHx8XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2NjI0OlxcdCAgICBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjYyNS1cXHRcXHRzZXFfcHJpbnRmKHNlcSwgXFxcIlxcXFx0SVAgQ2hlY2tzdW0gT2ZmbG9hZCBpbiBSWDogJXNcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTczNTU9c3RhdGljIHZvaWQgc3RtbWFjX3ByaW50X2FjdHBoeWlmKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzM2MS1cXHRzd2l0Y2ggKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzM2MjpcXHRjYXNlIERXTUFDX0NPUkVfTUFDMTAwOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzM2My1cXHRcXHRyZXR1cm47XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MzY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzM2NTpcXHRjYXNlIERXTUFDX0NPUkVfR01BQzpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjczNjY6XFx0Y2FzZSBEV01BQ19DT1JFX0dNQUM0OlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzM2Ny1cXHRcXHRwaHlpZl90YWJsZSA9IHN0bW1hY19kd21hY19hY3RwaHlpZjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzM3MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjczNzE6XFx0Y2FzZSBEV01BQ19DT1JFX1hHTUFDOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzM3Mi1cXHRcXHRwaHlpZl90YWJsZSA9IHN0bW1hY19kd3hnbWFjX3BoeWlmO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03Mzk3PXN0YXRpYyBpbnQgc3RtbWFjX2h3X2luaXQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NDUyLVxcdFxcdGRldl9pbmZvKHByaXYtXFx1MDAzZWRldmljZSwgXFxcIlJYIENoZWNrc3VtIE9mZmxvYWQgRW5naW5lIHN1cHBvcnRlZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3NDUzOlxcdFxcdGlmIChwcml2LVxcdTAwM2VzeW5vcHN5c19pZCBcXHUwMDNjIERXTUFDX0NPUkVfNF8wMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc0NTQtXFx0XFx0XFx0ZGV2X2luZm8ocHJpdi1cXHUwMDNlZGV2aWNlLCBcXFwiQ09FIFR5cGUgJWRcXFxcblxcXCIsIHByaXYtXFx1MDAzZWh3LVxcdTAwM2VyeF9jc3VtKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzQ5Ny1cXHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjc0OTg6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NDk5LVxcdFxcdHByaXYtXFx1MDAzZWh3LVxcdTAwM2VtdWx0aV9hZGRyID0gcHJpdi1cXHUwMDNlZG1hX2NhcC5tdWx0aV9hZGRyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NTQ1LVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzU0NjpcXHRpZiAoKHByaXYtXFx1MDAzZXN5bm9wc3lzX2lkIFxcdTAwM2U9IERXTUFDX0NPUkVfM181MCB8fFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzU0NzpcXHQgICAgIHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzU0OC1cXHQgICAgIXByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZXJpd3Rfb2ZmKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTc4MTM9c3RhdGljIGludCBfX3N0bW1hY19kdnJfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2aWNlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03OTIyLVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzkyMzpcXHRpZiAocHJpdi1cXHUwMDNlc3lub3BzeXNfaWQgXFx1MDAzYyBEV01BQ19DT1JFXzVfMjApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03OTI0LVxcdFxcdHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWRtYV9jZmctXFx1MDAzZWRjaGUgPSBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODAyMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjgwMjE6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODAyMi1cXHRcXHRuZGV2LVxcdTAwM2VtYXhfbXR1ID0gWEdNQUNfSlVNQk9fTEVOO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6ODAyMzpcXHRlbHNlIGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2VlbmhfZGVzYyB8fCBwcml2LVxcdTAwM2VzeW5vcHN5c19pZCBcXHUwMDNlPSBEV01BQ19DT1JFXzRfMDApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04MDI0LVxcdFxcdG5kZXYtXFx1MDAzZW1heF9tdHUgPSBKVU1CT19MRU47XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jPTI5OT1zdGF0aWMgaW50IHN0bW1hY19tZGlvX3JlYWRfYzIyKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHlhZGRyLCBpbnQgcGh5cmVnKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy0zMDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYzozMDQ6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtMzA1LVxcdFxcdGNtZCA9IE1JSV9HTUFDNF9SRUFEO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYz0zNDE9c3RhdGljIGludCBzdG1tYWNfbWRpb193cml0ZV9jMjIoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeWFkZHIsIGludCBwaHlyZWcsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTM0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjM0NzpcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQzQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy0zNDgtXFx0XFx0Y21kID0gTUlJX0dNQUM0X1dSSVRFO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYz0zODE9aW50IHN0bW1hY19tZGlvX3Jlc2V0KHN0cnVjdCBtaWlfYnVzICpidXMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTQxOS1cXHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjQyMDpcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlICE9IERXTUFDX0NPUkVfR01BQzQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy00MjEtXFx0XFx0d3JpdGVsKDAsIHByaXYtXFx1MDAzZWlvYWRkciArIG1paV9hZGRyZXNzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM9NTM2PXN0YXRpYyB1MzIgc3RtbWFjX2Nsa19jc3Jfc2V0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNTU0LVxcdFxcdHJhdGVzID0gc3RtbWFjX3N1bjhpX2Nzcl90b19tZGM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYzo1NTU6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNTU2LVxcdFxcdHJhdGVzID0gc3RtbWFjX3hnbWFjX2Nzcl90b19tZGM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jPTU5NT1pbnQgc3RtbWFjX21kaW9fcmVnaXN0ZXIoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTYyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjYyMjpcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTYyMy1cXHRcXHRuZXdfYnVzLVxcdTAwM2VyZWFkID0gXFx1MDAyNnN0bW1hY194Z21hYzJfbWRpb19yZWFkX2MyMjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNjM5LVxcdFxcdG5ld19idXMtXFx1MDAzZXdyaXRlID0gXFx1MDAyNnN0bW1hY19tZGlvX3dyaXRlX2MyMjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjY0MDpcXHRcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQzQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTY0MS1cXHRcXHRcXHRuZXdfYnVzLVxcdTAwM2VyZWFkX2M0NSA9IFxcdTAwMjZzdG1tYWNfbWRpb19yZWFkX2M0NTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNjY1LVxcdC8qIExvb2tzIGxpa2Ugd2UgbmVlZCBhIGR1bW15IHJlYWQgZm9yIFhHTUFDIG9ubHkgYW5kIEM0NSBQSFlzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYzo2NjY6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNjY3LVxcdFxcdHN0bW1hY194Z21hYzJfbWRpb19yZWFkX2M0NShuZXdfYnVzLCAwLCAwLCAwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0yMz1zdGF0aWMgdm9pZCBjb21tb25fZGVmYXVsdF9kYXRhKHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yNi1cXHRwbGF0LVxcdTAwM2VjbGtfY3NyID0gU1RNTUFDX0NTUl8yMF8zNU07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjI3OlxcdHBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjgtXFx0cGxhdC1cXHUwMDNlZm9yY2Vfc2ZfZG1hX21vZGUgPSB0cnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTU0PXN0YXRpYyBpbnQgc25wc19nbWFjNV9kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtNTktXFx0cGxhdC1cXHUwMDNlY2xrX2NzciA9IFNUTU1BQ19DU1JfMjUwXzMwME07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjYwOlxcdHBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTYxLVxcdHBsYXQtXFx1MDAzZWZvcmNlX3NmX2RtYV9tb2RlID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jPTQxND1zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHU4ICptYWMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYy01MTgtXFx0XFx0XFx0XFx0XFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgcGxhdC1cXHUwMDNlbXVsdGljYXN0X2ZpbHRlcl9iaW5zKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYzo1MTk6XFx0XFx0cGxhdC1cXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTUyMC1cXHRcXHRwbGF0LVxcdTAwM2VwbXQgPSB0cnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTIzLVxcdGlmIChvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShucCwgXFxcInNucHMsZHdtYWMtMy40MGFcXFwiKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjUyNDpcXHRcXHRwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTI1LVxcdFxcdHBsYXQtXFx1MDAzZWVuaF9kZXNjID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTUzMS1cXHRpZiAob2ZfZGV2aWNlX2NvbXBhdGlibGVfbWF0Y2gobnAsIHN0bW1hY19nbWFjNF9jb21wYXRzKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjUzMjpcXHRcXHRwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTUzMy1cXHRcXHRwbGF0LVxcdTAwM2VwbXQgPSB0cnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTQ1LVxcdGlmIChvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShucCwgXFxcInNucHMsZHd4Z21hY1xcXCIpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmM6NTQ2OlxcdFxcdHBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTQ3LVxcdFxcdHBsYXQtXFx1MDAzZXBtdCA9IHRydWU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmM9MzM1PXZvaWQgc3RtbWFjX3B0cF9yZWdpc3RlcihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmMtMzQ4LVxcdHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNkY19lcnJvcl9hZGogPSAwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuYzozNDk6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX0dNQUM0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuYy0zNTAtXFx0XFx0cHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY2RjX2Vycm9yX2FkaiA9ICgyICogTlNFQ19QRVJfU0VDKSAvIHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNsa19wdHBfcmF0ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuYz03MzY9c3RhdGljIGludCBzdG1tYWNfdGVzdF9mbG93Y3RybChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfc2VsZnRlc3RzLmMtNzU1LVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuYzo3NTY6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSAhPSBEV01BQ19DT1JFX01BQzEwMCBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuYy03NTctXFx0ICAgIHJ4X2ZpZm9fc2l6ZSAvIHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZXJ4X3F1ZXVlc190b191c2UgXFx1MDAzYyA0MDk2KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQwNzozMTowOS45OTU4NDgyNjVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyMDQ5MjY3MTc0MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXNpcyBvZiBgc3RtbWFjYCBEcml2ZXIgRnV6emluZyBGZWFzaWJpbGl0eSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYHN0bW1hY2AgZXRoZXJuZXQgZHJpdmVyLiBJdCdzIGZvciBTeW5vcHN5cyBEZXNpZ25XYXJlIE1BQyAoRFdNQUMpIGFuZCBTVE1pY3JvIE1BQ3MuIE15IGluaXRpYWwgcXVlc3Rpb24gaXM6IGNhbiBJIGV2ZW4gcmVhY2ggdGhpcyB0aGluZyBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnQgbGlrZSBRRU1VIG9yIEdDRT9cblxuVGhlIGluc3RydWN0aW9ucyB0ZWxsIG1lIHRvIGF2b2lkIGNvZGUgdGhhdCBpcyB1bnJlYWNoYWJsZSBpbiB0aGVzZSBlbnZpcm9ubWVudHMuIFRoYXQgaW5jbHVkZXMgZHJpdmVycyBmb3IgaGFyZHdhcmUgdGhhdCBpc24ndCBlbXVsYXRlZCwgbGlrZSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2ggZHJpdmVycywgU21hcnROSUNzLCBHUFUgZHJpdmVycyByZXF1aXJpbmcgcGh5c2ljYWwgUENJZSBjYXJkcywgYW5kIGRyaXZlciBjbGVhbnVwIHJvdXRpbmVzIG9ubHkgdHJpZ2dlcmVkIGJ5IFBDSSBob3QtdW5wbHVnLlxuXG5TbywgaXMgYHN0bW1hY2AgZW11bGF0ZWQgaW4gUUVNVSBvciBHQ0U/IExldCdzIGJyZWFrIGl0IGRvd246XG5cbiogICAqKlFFTVUgKHg4NlxcXzY0LCBhcm02NCBgdmlydGAgbWFjaGluZSk6KiogVGhlIHN0YW5kYXJkIG5ldHdvcmsgaW50ZXJmYWNlcyBpbiBRRU1VIGFyZSB0aGluZ3MgbGlrZSBgdmlydGlvLW5ldC1wY2lgLCBgZTEwMDBgLCBhbmQgc28gb24uIE5vbmUgb2YgdGhlIGxpc3RlZCBvbmVzIG1hdGNoIGBzdG1tYWNgIGRpcmVjdGx5LiBJIGFsc28gbmVlZCB0byBjb25zaWRlciBTb0MgcGxhdGZvcm0gZGV2aWNlcy4gTG9va2luZyBhdCBBUk0gbWFjaGluZXM6XG4gICAgKiAgIGB2aXJ0YCBkb2Vzbid0IGhhdmUgYHN0bW1hY2AsIG9ubHkgdmlydGlvL3BjaVxuICAgICogICBBbGx3aW5uZXIgQTEwIChjdWJpZWJvYXJkKSBoYXMgYGFsbHdpbm5lci1lbWFjYCwgYnV0IG5vdCBgZHdtYWNgIG9yIGBzdG1tYWNgLlxuICAgICogICBBbGx3aW5uZXIgSDMgKG9yYW5nZXBpLXBjKSBoYXMgYGFsbHdpbm5lci1zdW44aS1lbWFjYCB3aGljaCB1c2VzIGBkd21hYy1zdW44aS5jYCwgYnV0IGl0J3Mgbm90IHRoZSBzYW1lIGFzIHRoZSB0YXJnZXQ6IHRoZSBwYXRjaCBpcyBzcGVjaWZpY2FsbHkgZm9yIEdNQUM0IC8gZHdtYWM0LlxuICAgICogICBJdCBzZWVtcyB0aGVyZSdzIG5vIFFFTVUgbWFjaGluZSB0aGF0IGVtdWxhdGVzIERXTUFDNCAvIERXTUFDXFxfQ09SRVxcX0dNQUM0LlxuKiAgICoqR0NFIChHb29nbGUgQ29tcHV0ZSBFbmdpbmUpOioqIE9ubHkgYHZpcnRpby1uZXRgIG9yIGBndmVgIGFyZSBhdmFpbGFibGUuIE5vIHBoeXNpY2FsIERXTUFDIGhhcmR3YXJlIGhlcmUgZWl0aGVyLlxuXG5Tbywgd2l0aG91dCBhbnkgcGh5c2ljYWwgaGFyZHdhcmUsIGNhbiBJIHJlYWNoIGBzdG1tYWNgPyBBbGwgYHN0bW1hY2AgZHJpdmVycyBhcmUgcHJvYmVkIGVpdGhlciB2aWEgYHBsYXRmb3JtX2RyaXZlcmAgKHVzaW5nIGFuIE9GIC8gZGV2aWNlIHRyZWUgdG8gbWF0Y2ggYSBzcGVjaWZpYyBTb0MgbGlrZSBRdWFsY29tbSBFVEhRT1MsIE5YUCBTMzIsIFJvY2tjaGlwIFJLMzU4OCwgZXRjLikgb3IgYHBjaV9kcml2ZXJgIChJbnRlbCBFbGtoYXJ0IExha2UgLyBUaWdlciBMYWtlIEdiRSwgTW90b3Jjb21tLCBMb29uZ3NvbiBMUzdBMTAwMCwgU1RNaWNybyBQQ0kpLiBUaGVzZSBhcmUgbm90IHByZXNlbnQgb3IgZW11bGF0ZWQgaW4gc3RhbmRhcmQgZW52aXJvbm1lbnRzLlxuXG5UaGVyZWZvcmUsIHRoaXMgY29kZSBwYXRoIGlzIGluIHZlbmRvci1zcGVjaWZpYyBTb0MvcGh5c2ljYWwgZXRoZXJuZXQgaGFyZHdhcmUgZHJpdmVycyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UsIGFuZCBpdCdzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlxuXG5MZXQncyBkb3VibGUtY2hlY2sgYWxsIHRoZSBkZXRhaWxzOlxuXG4xLiAgKipXb3J0aEZ1enppbmc9ZmFsc2U/KiogWWVzLCBiZWNhdXNlIHRoZSBjb2RlIHBhdGggaXMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXG4yLiAgKipSZWFzb25pbmc6KiogVGhlIHBhdGNoIG1vZGlmaWVzIHVuaWNhc3QgTUFDIGZpbHRlcmluZyBsb2dpYyBhbmQgaGFyZHdhcmUgZmVhdHVyZSBwYXJzaW5nIGluIHRoZSBTeW5vcHN5cyBEZXNpZ25XYXJlIE1BQyAoRFdNQUM0KSAvIFNUTU1BQyBFdGhlcm5ldCBkcml2ZXIsIHNwZWNpZmljYWxseSBpbiBgZHdtYWM0X2NvcmUuY2AsIGBkd21hYzRfZG1hLmNgLCBhbmQgYHN0bW1hY19tYWluLmNgLiBEV01BQzQgaGFyZHdhcmUgaXMgb25seSBwcmVzZW50IG9uIHNwZWNpZmljIHBoeXNpY2FsIFNvQ3MgYW5kIFBDSSBjYXJkcyAoZS5nLiBJbnRlbCBFbGtoYXJ0IExha2UsIE5YUCBTMzIsIFF1YWxjb21tIEVUSFFPUykgd2hpY2ggYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIGF2YWlsYWJsZSBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyBsaWtlIEdDRS5cbjMuICAqKkZvY3VzU3ltYm9sczoqKiBcXFtdLlxuNC4gICoqRW5hYmxlQ29uZmlnczoqKiBcXFtdLlxuXG5Pa2F5LCB0aGF0J3MgY29uY2x1c2l2ZS4gTGV0J3MgY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MTMwMiwiT3V0cHV0VG9rZW5zIjoxMzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDY0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDA3OjMxOjMwLjQ4ODUyMzkwOFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI4NjgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBTeW5vcHN5cyBEZXNpZ25XYXJlIE1BQyA0IChEV01BQzQpIHVuaWNhc3QgZmlsdGVyIGNvbmZpZ3VyYXRpb24gYW5kIGhhcmR3YXJlIGZlYXR1cmUgZGV0ZWN0aW9uIGluIHRoZSBTVE1NQUMgZXRoZXJuZXQgZHJpdmVyLiBEV01BQzQgY29udHJvbGxlcnMgYXJlIGVtYmVkZGVkIGluIHBoeXNpY2FsIFNvQ3MgKGUuZy4sIEludGVsIEVsa2hhcnQgTGFrZSwgUXVhbGNvbW0gRVRIUU9TLCBOWFAgUzMyKSBhbmQgUENJIGRldmljZXMgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgdmlydHVhbGl6ZWQgY2xvdWQgZW52aXJvbm1lbnRzIChHQ0UpLiBDb25zZXF1ZW50bHksIHRoZXNlIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFN5bm9wc3lzIERlc2lnbldhcmUgTUFDIDQgKERXTUFDNCkgdW5pY2FzdCBmaWx0ZXIgY29uZmlndXJhdGlvbiBhbmQgaGFyZHdhcmUgZmVhdHVyZSBkZXRlY3Rpb24gaW4gdGhlIFNUTU1BQyBldGhlcm5ldCBkcml2ZXIuIERXTUFDNCBjb250cm9sbGVycyBhcmUgZW1iZWRkZWQgaW4gcGh5c2ljYWwgU29DcyAoZS5nLiwgSW50ZWwgRWxraGFydCBMYWtlLCBRdWFsY29tbSBFVEhRT1MsIE5YUCBTMzIpIGFuZCBQQ0kgZGV2aWNlcyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBjbG91ZCBlbnZpcm9ubWVudHMgKEdDRSkuIENvbnNlcXVlbnRseSwgdGhlc2UgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQwNzozMTozMC40ODg1NTgzNzhaIiwiU2VxIjoxMSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow7dfjw[1] Phase: Running StartedAt: 2026-08-31 07:31:40 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dfjw[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-31 07:31:40 +0000 UTC FinishedAt: 2026-08-31 07:31:44 +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,}