Name: series-workflowtmv5h Phase: Failed StartedAt: 2026-08-15 15:22:22 +0000 UTC FinishedAt: 2026-08-15 16:21:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtmv5h[0] Phase: Succeeded StartedAt: 2026-08-15 15:22:22 +0000 UTC FinishedAt: 2026-08-15 16:21:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtmv5h[0].run-triage Phase: Succeeded StartedAt: 2026-08-15 15:22:22 +0000 UTC FinishedAt: 2026-08-15 16:21:21 +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+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjExPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7JiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgTWFydmVsbCA4OEU2eHh4IEV0aGVybmV0IHN3aXRjaGVzLiBUaGVzZSBzd2l0Y2hlcyBhcmUgY29ubmVjdGVkIHZpYSBNRElPIGFuZCByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzIHVzZWQgYnkgc3l6a2FsbGVyLiBUaGVyZSBpcyBubyBzb2Z0d2FyZS1lbXVsYXRlZCBtb2NrdXAgZm9yIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUgKHVubGlrZSBgZHNhX2xvb3BgKSwgbWFraW5nIHRoZSBjb2RlIHBhdGhzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxMTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQ5NGMzNTNhZjM1ZTgyMWU1MjIzODZlZWRiNWI0YzU0MDViNzZiZmVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAxNSAxNjoxMTowMCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jXG5pbmRleCA4MGI4NzdjNzQ1MTNkLi40MzIyODVlMjg4MTcxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jXG5AQCAtMzc2OSw2ICYjNDM7Mzc2OSw5IEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X21kaW9fcmVhZChzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5LCBpbnQgcmVnKVxuIFx0ZXJyID0gY2hpcC1cdTAwM2VpbmZvLVx1MDAzZW9wcy1cdTAwM2VwaHlfcmVhZChjaGlwLCBidXMsIHBoeSwgcmVnLCBcdTAwMjZ2YWwpO1xuIFx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XG4gXG4mIzQzO1x0aWYgKGVycilcbiYjNDM7XHRcdHJldHVybiBlcnI7XG4mIzQzO1xuIFx0LyogU29tZSBpbnRlcm5hbCBQSFlzIGRvbiYjMzk7dCBoYXZlIGEgbW9kZWwgbnVtYmVyLiAqL1xuIFx0aWYgKHJlZyA9PSBNSUlfUEhZU0lEMiBcdTAwMjZcdTAwMjYgISh2YWwgXHUwMDI2IDB4M2YwKSBcdTAwMjZcdTAwMjZcbiBcdCAgICBjaGlwLVx1MDAzZWluZm8tXHUwMDNlZmFtaWx5IFx1MDAzYyBBUlJBWV9TSVpFKGZhbWlseV9wcm9kX2lkX3RhYmxlKSkge1xuQEAgLTM3NzcsNyAmIzQzOzM3ODAsNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3JlYWQoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeSwgaW50IHJlZylcbiBcdFx0XHR2YWwgfD0gcHJvZF9pZCBcdTAwM2VcdTAwM2UgNDtcbiBcdH1cbiBcbi1cdHJldHVybiBlcnIgPyBlcnIgOiB2YWw7XG4mIzQzO1x0cmV0dXJuIHZhbDtcbiB9XG4gXG4gc3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb19yZWFkX2M0NShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5LCBpbnQgZGV2YWQsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYG12ODhlNnh4eGAgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgZm9yIE1hcnZlbGwgODhFNnh4eCBFdGhlcm5ldCBzd2l0Y2hlcy4gVGhlc2Ugc3dpdGNoZXMgYXJlIGNvbm5lY3RlZCB2aWEgTURJTyBhbmQgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cyB1c2VkIGJ5IHN5emthbGxlci4gVGhlcmUgaXMgbm8gc29mdHdhcmUtZW11bGF0ZWQgbW9ja3VwIGZvciB0aGlzIHNwZWNpZmljIGhhcmR3YXJlICh1bmxpa2UgYGRzYV9sb29wYCksIG1ha2luZyB0aGUgY29kZSBwYXRocyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBkOTRjMzUzYWYzNWU4MjFlNTIyMzg2ZWVkYjViNGM1NDA1Yjc2YmZlCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBBdWcgMTUgMTY6MTE6MDAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jCmluZGV4IDgwYjg3N2M3NDUxM2QuLjQzMjI4NWUyODgxNzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jCkBAIC0zNzY5LDYgJiM0MzszNzY5LDkgQEAgc3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb19yZWFkKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHksIGludCByZWcpCiAJZXJyID0gY2hpcC0mZ3Q7aW5mby0mZ3Q7b3BzLSZndDtwaHlfcmVhZChjaGlwLCBidXMsIHBoeSwgcmVnLCAmYW1wO3ZhbCk7CiAJbXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7CiAKJiM0MzsJaWYgKGVycikKJiM0MzsJCXJldHVybiBlcnI7CiYjNDM7CiAJLyogU29tZSBpbnRlcm5hbCBQSFlzIGRvbiYjMzk7dCBoYXZlIGEgbW9kZWwgbnVtYmVyLiAqLwogCWlmIChyZWcgPT0gTUlJX1BIWVNJRDIgJmFtcDsmYW1wOyAhKHZhbCAmYW1wOyAweDNmMCkgJmFtcDsmYW1wOwogCSAgICBjaGlwLSZndDtpbmZvLSZndDtmYW1pbHkgJmx0OyBBUlJBWV9TSVpFKGZhbWlseV9wcm9kX2lkX3RhYmxlKSkgewpAQCAtMzc3Nyw3ICYjNDM7Mzc4MCw3IEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X21kaW9fcmVhZChzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5LCBpbnQgcmVnKQogCQkJdmFsIHw9IHByb2RfaWQgJmd0OyZndDsgNDsKIAl9CiAKLQlyZXR1cm4gZXJyID8gZXJyIDogdmFsOwomIzQzOwlyZXR1cm4gdmFsOwogfQogCiBzdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3JlYWRfYzQ1KHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHksIGludCBkZXZhZCwKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE4NQoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDIyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBpbiB0aGUgYG12ODhlNnh4eF9tZGlvX3JlYWRgIGZ1bmN0aW9uIHdpdGhpbiBgZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNgLiBJdCBsb29rcyBsaWtlIGl0JiMzOTtzIGFkZHJlc3NpbmcgYW4gdW5pbml0aWFsaXplZCB2YXJpYWJsZSBpc3N1ZS4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyBhZGRpbmcgYW4gZWFybHkgcmV0dXJuIGlmIGBjaGlwLSZndDtpbmZvLSZndDtvcHMtJmd0O3BoeV9yZWFkYCByZXR1cm5zIGFuIGVycm9yLCBwcmV2ZW50aW5nIHRoZSBzdWJzZXF1ZW50IHVzZSBvZiBgdmFsYCB3aGVuIGBwaHlfcmVhZGAgZmFpbHMuIFByZXR0eSBzdGFuZGFyZCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcsIHJlYWxseSDigJMgZ29vZCBjYXRjaC4gVGhlIGRyaXZlciBpdHNlbGYsIGBtdjg4ZTZ4eHhgLCBpcyB0aGUgTWFydmVsbCA4OEU2eHh4IHN3aXRjaCBkcml2ZXIsIGFuZCBEU0EgZHJpdmVycyBhcmUsIGluIG15IGV4cGVyaWVuY2UsIHR5cGljYWxseSB0aWVkIHRvIHNwZWNpZmljIGhhcmR3YXJlLgoKTXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzLCBob3cgKnJlYWNoYWJsZSogaXMgdGhpcyBkcml2ZXIgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gRFNBIGRyaXZlcnMgZ2VuZXJhbGx5IGRlcGVuZCBvbiBwaHlzaWNhbCBoYXJkd2FyZSBpbnRlcmFjdGlvbnMsIHNvIGl0JiMzOTtzIG5vdCBhIGdpdmVuIHRoYXQgdGhpcyB3aWxsIHRyYW5zbGF0ZSB0byBhIFFFTVUgaW5zdGFuY2UsIHNheS4gQXJlIHRoZXJlIGFueSBrbm93biBlbXVsYXRpb25zIG9yIHZpcnR1YWwgYnVzIGltcGxlbWVudGF0aW9ucyBmb3IgdGhpcyBwYXJ0aWN1bGFyIE1hcnZlbGwgc3dpdGNoIGZhbWlseT8gVGhhdCYjMzk7cyB3aGF0IEkgbmVlZCB0byBkaWcgaW50by4gSSBrbm93IERTQSBkcml2ZXJzIHVzdWFsbHkgcmVseSBvbiBNRElPLCBJMkMsIG9yIFNQSS4gU28gSSBuZWVkIHRvIHZlcmlmeSBob3cgdGhlc2UgaW50ZXJmYWNlcyBhcmUgbWFkZSBhdmFpbGFibGUgaW4gYSB2aXJ0dWFsIGVudmlyb25tZW50LgoKTGV0JiMzOTtzIHN0YXJ0IGJ5IHJldmlzaXRpbmcgYGRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jYCBhZ2Fpbi4gSSBuZWVkIHRvIGdldCBhIGJldHRlciBoYW5kbGUgb24gaG93IHRoaXMgZHJpdmVyIGludGVyYWN0cyB3aXRoIHRoZSBoYXJkd2FyZSBhbmQgdW5kZXJzdGFuZCB0aGUgcG90ZW50aWFsIGltcGxpY2F0aW9ucyBvZiB0aGlzIHBhdGNoIGluIGEgYnJvYWRlciBjb250ZXh0LiBJIG5lZWQgdG8gY29uc2lkZXIgd2hldGhlciB0aGlzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgc2NlbmFyaW8gY291bGQgZXZlbiBtYW5pZmVzdCBpbiBhIHZpcnR1YWxpemVkIHNldHRpbmcsIG9yIGlmIGl0JiMzOTtzIHN0cmljdGx5IGEgcGh5c2ljYWwgaGFyZHdhcmUgY29uY2Vybi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdjg4ZTZ4eHhfbWRpb19yZWFkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9Mzc1MT1zdGF0aWMgY29uc3QgdTE2IGZhbWlseV9wcm9kX2lkX3RhYmxlW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzc1Ni1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3NTc6c3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb19yZWFkKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHksIGludCByZWcpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzU4LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzg1LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzc4NjpzdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3JlYWRfYzQ1KHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHksIGludCBkZXZhZCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM3ODctXHRcdFx0XHQgICBpbnQgcmVnKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTM4Mzc9c3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb19yZWdpc3RlcihzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzg3NS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4NzY6XHRidXMtXHUwMDNlcmVhZCA9IG12ODhlNnh4eF9tZGlvX3JlYWQ7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODc3LVx0YnVzLVx1MDAzZXdyaXRlID0gbXY4OGU2eHh4X21kaW9fd3JpdGU7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODc4Olx0YnVzLVx1MDAzZXJlYWRfYzQ1ID0gbXY4OGU2eHh4X21kaW9fcmVhZF9jNDU7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODc5LVx0YnVzLVx1MDAzZXdyaXRlX2M0NSA9IG12ODhlNnh4eF9tZGlvX3dyaXRlX2M0NTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+NW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzI0CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMTgwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1hcnZlbGwgODhFNnh4eCBEcml2ZXIgaW4gdGhpcyBDb250ZXh0KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGRyaXZlciBhbmQgdGhpbmtpbmcgdGhyb3VnaCBob3cgd2UmIzM5O3JlIGdvaW5nIHRvIGludGVyYWN0IHdpdGggaXQuIEZpcnN0LCB0aGUgY29kZSBzdWdnZXN0cyBhbiBNRElPIGJ1cyBpcyBiZWluZyByZWdpc3RlcmVkLCBnb3QgaXQuIE15IGluaXRpYWwgY29uY2VybiBpcyB3aGV0aGVyIHRoZSBNYXJ2ZWxsIDg4RTZ4eHggZHJpdmVyIGlzIGV2ZW4gYWNjZXNzaWJsZSB3aXRoaW4gdGhpcyBRRU1VIHNldHVwLiBJdCYjMzk7cyBhIGNvbW1vbiBNRElPL1NNSS1jb25uZWN0ZWQgc3dpdGNoLCBhbmQgcmVhbGlzdGljYWxseSwgdGhlc2UgdHlwZXMgb2YgZGV2aWNlcyBhcmUgcmFyZWx5IGVtdWxhdGVkIG91dC1vZi10aGUtYm94IGluIFFFTVUgdW5sZXNzIHRoZSBzcGVjaWZpYyBtYWNoaW5lIG1vZGVsIGV4cGxpY2l0bHkgaW5jb3Jwb3JhdGVzIHRoZW0uCgpNeSBuZXh0IHRob3VnaHQgaXMsIGNhbiBJIGluc3RhbnRpYXRlIGl0IHRocm91Z2ggYW4gSTJDIG9yIE1ESU8gcGF0aHdheSBmcm9tIHVzZXJzcGFjZT8gUGVyaGFwcyB1c2luZyBzb21ldGhpbmcgbGlrZSBgaTJjLXN0dWJgIG9yIGEgY29tcGFyYWJsZSBhcHByb2FjaC4gQnV0IHRoZW4gSSYjMzk7bSByZW1pbmRlZCB0aGF0IERTQSBzd2l0Y2hlcyBhcmUgdXN1YWxseSBoYW5kbGVkIHRocm91Z2ggZGV2aWNlIHRyZWUgY29uZmlndXJhdGlvbnMsIHdoaWNoIGlzIHRoZSBtb3JlIGNvbW1vbiBtZXRob2QuIFNvLCBteSBtaW5kIHNoaWZ0cyB0bzogQ2FuIHN5emthbGxlciBldmVuIGJlIGxldmVyYWdlZCBoZXJlIHRvIGluc3RhbnRpYXRlIGl0PwoKVW5mb3J0dW5hdGVseSwgYXMgSSByZW1lbWJlciwgc3l6a2FsbGVyIGRvZXNuJiMzOTt0IGhhdmUgYSBkaXJlY3Qgd2F5IHRvIGluc3RhbnRpYXRlIGFyYml0cmFyeSBJMkMgb3IgTURJTyBkZXZpY2VzIHVubGVzcyBhIHZpcnR1YWwgYnVzIGV4aXN0cyBvciB0aGVyZSYjMzk7cyBkZXZpY2UgdHJlZSBvdmVybGF5IHN1cHBvcnQuIFRoYXQmIzM5O3MgYSBjb25zdHJhaW50LiBXYWl0LCBpdCYjMzk7cyBhbiBNRElPIGRldmljZS4KCk15IG5leHQgc3RlcCBoYXMgdG8gYmUgdG8gYW5hbHl6ZSBob3cgdGhpcyB0aGluZyByZWdpc3RlcnMuIExldCYjMzk7cyBkaWcgaW4gYW5kIHNlZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21vZHVsZV9tZGlvX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODQ4CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIERyaXZlciBSZWdpc3RyYXRpb24qKgoKUmlnaHQsIGxldCYjMzk7cyBkaXZlIGluLiBNeSBpbW1lZGlhdGUgZm9jdXMgaXMgb24gaG93IHRoaXMgZHJpdmVyIGlzIGJlaW5nIHJlZ2lzdGVyZWQgd2l0aGluIHRoZSBzeXN0ZW0uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBtZWNoYW5pc207IGlzIGl0IGEgZGlyZWN0IGNhbGwsIGEgc2VydmljZSByZWdpc3RyYXRpb24sIG9yIHNvbWV0aGluZyBtb3JlIG51YW5jZWQ/IEtub3dpbmcgdGhlIG1ldGhvZCBvZiByZWdpc3RyYXRpb24gaXMgY3JpdGljYWwsIGFzIGl0IGluZm9ybXMgdGhlIHBvdGVudGlhbCBwb2ludHMgb2YgaW50ZXJ2ZW50aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuIEnigJltIHRoaW5raW5nIGFib3V0IHRoZSBpbXBsaWNhdGlvbnMgZm9yIGRlcGVuZGVuY3kgaW5qZWN0aW9uLCBhbnkgcG90ZW50aWFsIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5nIGRyaXZlcnMsIGFuZCB3aGVyZSB0byBsb29rIHdpdGhpbiB0aGUgY29kZSBiYXNlIHRvIGNvbmZpcm0gdGhpcyBiZWhhdmlvci4gRGVwZW5kaW5nIG9uIHRoZSByZWdpc3RyYXRpb24gbWV0aG9kLCBJJiMzOTtsbCBuZWVkIHRvIGFzc2VzcyB0aGUgaW1wbGljYXRpb25zIG9uIGluaXRpYWxpemF0aW9uIGFuZCB0ZWFyZG93biBvZiB0aGUgZHJpdmVyLiBTbywgd2hlcmUgZG9lcyB0aGUgcmVnaXN0cmF0aW9uIG9jY3VyIGFuZCBob3cgaXMgaXQgaGFwcGVuaW5nPyBUaGlzIGluaXRpYWwgYW5hbHlzaXMgd2lsbCBhbGxvdyBtZSB0byBwcm9wZXJseSBidWlsZCBhIG1lbnRhbCBtb2RlbCBvZiB0aGUgZHJpdmVyJiMzOTtzIGludGVncmF0aW9uIHdpdGhpbiB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bW9kdWxlXy4qZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzUyND1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIG12ODhlNnh4eF9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzNC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1MzU6bWRpb19tb2R1bGVfZHJpdmVyKG12ODhlNnh4eF9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzNi1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MjE5CgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogNjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTURJTyBEcml2ZXIgRnV6emluZyAtIEluaXRpYWwgQXNzZXNzbWVudCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpczsgaXQmIzM5O3MgYW4gTURJTyBkcml2ZXIuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O0NhbiB3ZSBldmVuIGZ1enogdGhpcyB0aGluZyB3aXRoIHN5emthbGxlcj8mIzM0OyBJIGtub3cgc3l6a2FsbGVyIGRvZXNuJiMzOTt0IGhhdmUgYW55IG9idmlvdXMsIGdlbmVyaWMgTURJTyBlbXVsYXRpb24gYnVpbHQtaW4sIHdoaWNoIGlzIGEgc2lnbmlmaWNhbnQgaHVyZGxlLiBCdXQgd2FpdC4uLiB3aGF0IGFib3V0IGV4aXN0aW5nIE1ESU8gbW9ja3VwIGRyaXZlcnM/IFN1cmVseSwgc29tZW9uZSYjMzk7cyBoYWQgdG8gZGVhbCB3aXRoIHRoaXMgYmVmb3JlLiBJIG5lZWQgdG8gcXVpY2tseSBjaGVjayBpZiB0aGVyZSBhcmUgYW55IGBtZGlvLW1vY2t1cGAgaW1wbGVtZW50YXRpb25zLCBvciBhbnl0aGluZyBzaW1pbGFyLCB0aGF0IEkgY2FuIGxldmVyYWdlLiBUaGF0IHdvdWxkIGJlIGEgaHVnZSB0aW1lIHNhdmVyLiBJIG5lZWQgdG8gc2VlIHdoYXQmIzM5O3MgYWxyZWFkeSBvdXQgdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWRpby4qbW9ja3VwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDQ2MQoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDg4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaXQgd2VudDoKCioqRXhhbWluaW5nIHRoZSBDb2RlIFBhdGgqKgoKT2theSwgZmlyc3QgdGhpbmdzIGZpcnN0LCBpcyB0aGlzIEkyQyByZWxhdGVkPyBOb3BlLCB0aGF0JiMzOTtzIGRlZmluaXRlbHkgTURJTy4gUmlnaHQsIHNvIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYW4gTURJTyBkcml2ZXIuIFRoZSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGhvdyBhbSBJIGV2ZW4gZ29pbmcgdG8gdHJpZ2dlciB0aGlzIGNvZGUgcGF0aCBnaXZlbiB0aGUgZW52aXJvbm1lbnQ/IFdlJiMzOTtyZSB2aXJ0dWFsaXplZCwgcmlnaHQ/IFRoYXQgY2hhbmdlcyB0aGUgZ2FtZS4gSWYgaXQmIzM5O3MgTURJTywgaXQmIzM5O3MgaW50cmluc2ljYWxseSB0aWVkIHRvIGFuIE1ESU8gYnVzLiBDYW4gSSBzb21laG93LCBtYXliZSB3aXRoIHNvbWUgY2xldmVyIHRyaWNrZXJ5LCB3aGlwIHVwIGFuIE1ESU8gYnVzIGZyb20gdXNlcnNwYWNlPyBUaGF0IHdvdWxkIGJlIGlkZWFsLiBXYWl0Li4uIEkgc2VlbSB0byByZWNhbGwgYSBsb29wYmFjayBEU0EgZHJpdmVyLi4uIGBkc2FfbG9vcGAsIHRoYXQmIzM5O3MgaXQhIExldCYjMzk7cyBnbyBjaGVjayBvdXQgYGRzYV9sb29wYC4gU2VlIGlmIHRoYXQgZ2l2ZXMgdXMgYSB3YXkgaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RzYV9sb29wJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9kc2EvZHNhLnJzdD0xNTk9YWxsIGF0dGFjaGVkIHN3aXRjaCBwb3J0cyBtdXN0IGJlIGRvd24gd2hpbGUgZG9pbmcgdGhpcykuXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZHNhL2RzYS5yc3QtMTYwLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RzYS9kc2EucnN0OjE2MTpJdCBpcyBkZXNpcmFibGUgdGhhdCBhbGwgdGFnZ2luZyBwcm90b2NvbHMgYXJlIHRlc3RhYmxlIHdpdGggdGhlIGBgZHNhX2xvb3BgYFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RzYS9kc2EucnN0LTE2Mi1tb2NrdXAgZHJpdmVyLCB3aGljaCBjYW4gYmUgYXR0YWNoZWQgdG8gYW55IG5ldHdvcmsgaW50ZXJmYWNlLiBUaGUgZ29hbCBpcyB0aGF0XG4tLVxuZHJpdmVycy9uZXQvZHNhL01ha2VmaWxlPTM9YmNtLXNmMi1vYmpzXHRcdFx0Oj0gYmNtX3NmMi5vIGJjbV9zZjJfY2ZwLm9cbmRyaXZlcnMvbmV0L2RzYS9NYWtlZmlsZTo0Om9iai0kKENPTkZJR19ORVRfRFNBX0xPT1ApXHQmIzQzOz0gZHNhX2xvb3Aub1xuZHJpdmVycy9uZXQvZHNhL01ha2VmaWxlLTUtb2JqLSQoQ09ORklHX05FVF9EU0FfS1M4OTk1KSBcdCYjNDM7PSBrczg5OTUub1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI0LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjU6c3RydWN0IGRzYV9sb29wX3ZsYW4ge1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjYtXHR1MTYgbWVtYmVycztcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yOS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMwOnN0cnVjdCBkc2FfbG9vcF9taWJfZW50cnkge1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzEtXHRjaGFyIG5hbWVbRVRIX0dTVFJJTkdfTEVOXTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1OmVudW0gZHNhX2xvb3BfbWliX2NvdW50ZXJzIHtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTM2LVx0RFNBX0xPT1BfUEhZX1JFQURfT0ssXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDItXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0MzpzdHJ1Y3QgZHNhX2xvb3BfcG9ydCB7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0NDpcdHN0cnVjdCBkc2FfbG9vcF9taWJfZW50cnkgbWliW19fRFNBX0xPT1BfQ05UX01BWF07XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NS1cdHUxNiBwdmlkO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ4LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDk6c3RydWN0IGRzYV9sb29wX3ByaXYge1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTAtXHRzdHJ1Y3QgbWlpX2J1c1x0KmJ1cztcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUxLVx0dW5zaWduZWQgaW50XHRwb3J0X2Jhc2U7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1MjpcdHN0cnVjdCBkc2FfbG9vcF92bGFuIHZsYW5zW1ZMQU5fTl9WSURdO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTMtXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NTQ6XHRzdHJ1Y3QgZHNhX2xvb3BfcG9ydCBwb3J0c1tEU0FfTUFYX1BPUlRTXTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTU1LX07XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01Ni1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjU3OnN0cnVjdCBkc2FfbG9vcF9wZGF0YSB7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01OC1cdC8qIE11c3QgYmUgZmlyc3QsIHN1Y2ggdGhhdCBkc2FfcmVnaXN0ZXJfc3dpdGNoKCkgY2FuIGFjY2VzcyB0aGlzXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNjYtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo2NzpzdGF0aWMgc3RydWN0IGRzYV9sb29wX21pYl9lbnRyeSBkc2FfbG9vcF9taWJzW10gPSB7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy02OC1cdFtEU0FfTE9PUF9QSFlfUkVBRF9PS11cdD0geyBcJiMzNDtwaHlfcmVhZF9va1wmIzM0OywgfSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYz03NT1zdGF0aWMgc3RydWN0IG1kaW9fZGV2aWNlICpzd2l0Y2hfbWRpb2RldjtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTc2LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6Nzc6ZW51bSBkc2FfbG9vcF9kZXZsaW5rX3Jlc291cmNlX2lkIHtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTc4LVx0RFNBX0xPT1BfREVWTElOS19QQVJBTV9JRF9OT05FLCAgLyogREVWTElOS19SRVNPVVJDRV9JRF9QQVJFTlRfVE9QICovXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtODEtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo4MjpzdGF0aWMgdTY0IGRzYV9sb29wX2RldmxpbmtfdnR1X2dldCh2b2lkICpwcml2KVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtODMte1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6ODQ6XHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBwcml2O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtODUtXHR1bnNpZ25lZCBpbnQgaSwgY291bnQgPSAwO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6ODY6XHRzdHJ1Y3QgZHNhX2xvb3BfdmxhbiAqdmw7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy04Ny1cbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy05Ni1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjk3OnN0YXRpYyBpbnQgZHNhX2xvb3Bfc2V0dXBfZGV2bGlua19yZXNvdXJjZXMoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtOTgte1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtOTktXHRzdHJ1Y3QgZGV2bGlua19yZXNvdXJjZV9zaXplX3BhcmFtcyBzaXplX3BhcmFtcztcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjEwMDpcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcyA9IGRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMDEtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTExNS1cdFx0XHRcdFx0ICAgICAgRFNBX0xPT1BfREVWTElOS19QQVJBTV9JRF9WVFUsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxMTY6XHRcdFx0XHRcdCAgICAgIGRzYV9sb29wX2RldmxpbmtfdnR1X2dldCwgcHMpO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTE3LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTEyNC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjEyNTpzdGF0aWMgZW51bSBkc2FfdGFnX3Byb3RvY29sIGRzYV9sb29wX2dldF9wcm90b2NvbChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMjYtXHRcdFx0XHRcdFx0ICAgaW50IHBvcnQsXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTMzLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTM0OnN0YXRpYyBpbnQgZHNhX2xvb3Bfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTM1LXtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjEzNjpcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcyA9IGRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMzctXHR1bnNpZ25lZCBpbnQgaTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMzktXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBkcy1cdTAwM2VudW1fcG9ydHM7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTQwOlx0XHRtZW1jcHkocHMtXHUwMDNlcG9ydHNbaV0ubWliLCBkc2FfbG9vcF9taWJzLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTQxOlx0XHQgICAgICAgc2l6ZW9mKGRzYV9sb29wX21pYnMpKTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE0Mi1cbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNDQtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNDU6XHRyZXR1cm4gZHNhX2xvb3Bfc2V0dXBfZGV2bGlua19yZXNvdXJjZXMoZHMpO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTQ2LX1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE0Ny1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE0ODpzdGF0aWMgdm9pZCBkc2FfbG9vcF90ZWFyZG93bihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNDkte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE1Mi1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE1MzpzdGF0aWMgaW50IGRzYV9sb29wX2dldF9zc2V0X2NvdW50KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIGludCBzc2V0KVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTU0LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNjAtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNjE6c3RhdGljIHZvaWQgZHNhX2xvb3BfZ2V0X3N0cmluZ3Moc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE2Mi1cdFx0XHRcdCB1MzIgc3RyaW5nc2V0LCB1aW50OF90ICpkYXRhKVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTYzLXtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE2NDpcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcyA9IGRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNjUtXHR1bnNpZ25lZCBpbnQgaTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNzMtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNzQ6c3RhdGljIHZvaWQgZHNhX2xvb3BfZ2V0X2V0aHRvb2xfc3RhdHMoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE3NS1cdFx0XHRcdCAgICAgICB1aW50NjRfdCAqZGF0YSlcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE3Ni17XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNzc6XHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTc4LVx0dW5zaWduZWQgaW50IGk7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTgzLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTg0OnN0YXRpYyBpbnQgZHNhX2xvb3BfcGh5X3JlYWQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwgaW50IHJlZ251bSlcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE4NS17XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxODY6XHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTg3LVx0c3RydWN0IG1paV9idXMgKmJ1cyA9IHBzLVx1MDAzZWJ1cztcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xOTgtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxOTk6c3RhdGljIGludCBkc2FfbG9vcF9waHlfd3JpdGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIwMC1cdFx0XHQgICAgICBpbnQgcmVnbnVtLCB1MTYgdmFsdWUpXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMDEte1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjAyOlx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gZHMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIwMy1cdHN0cnVjdCBtaWlfYnVzICpidXMgPSBwcy1cdTAwM2VidXM7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjE0LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjE1OnN0YXRpYyBpbnQgZHNhX2xvb3BfcG9ydF9icmlkZ2Vfam9pbihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjE2LVx0XHRcdFx0ICAgICBzdHJ1Y3QgZHNhX2JyaWRnZSBicmlkZ2UsXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjI1LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjI2OnN0YXRpYyB2b2lkIGRzYV9sb29wX3BvcnRfYnJpZGdlX2xlYXZlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMjctXHRcdFx0XHQgICAgICAgc3RydWN0IGRzYV9icmlkZ2UgYnJpZGdlKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIzMi1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjIzMzpzdGF0aWMgdm9pZCBkc2FfbG9vcF9wb3J0X3N0cF9zdGF0ZV9zZXQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIzNC1cdFx0XHRcdFx0dTggc3RhdGUpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjM5LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjQwOnN0YXRpYyBpbnQgZHNhX2xvb3BfcG9ydF92bGFuX2ZpbHRlcmluZyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjQxLVx0XHRcdFx0XHRib29sIHZsYW5fZmlsdGVyaW5nLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI0OS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI1MDpzdGF0aWMgaW50IGRzYV9sb29wX3BvcnRfdmxhbl9hZGQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI1MS1cdFx0XHRcdCAgY29uc3Qgc3RydWN0IHN3aXRjaGRldl9vYmpfcG9ydF92bGFuICp2bGFuLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI1NS1cdGJvb2wgcHZpZCA9IHZsYW4tXHUwMDNlZmxhZ3MgXHUwMDI2IEJSSURHRV9WTEFOX0lORk9fUFZJRDtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI1NjpcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcyA9IGRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yNTctXHRzdHJ1Y3QgbWlpX2J1cyAqYnVzID0gcHMtXHUwMDNlYnVzO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjU4Olx0c3RydWN0IGRzYV9sb29wX3ZsYW4gKnZsO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjU5LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI4Mi1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI4MzpzdGF0aWMgaW50IGRzYV9sb29wX3BvcnRfdmxhbl9kZWwoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI4NC1cdFx0XHRcdCAgY29uc3Qgc3RydWN0IHN3aXRjaGRldl9vYmpfcG9ydF92bGFuICp2bGFuKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI4Ni1cdGJvb2wgdW50YWdnZWQgPSB2bGFuLVx1MDAzZWZsYWdzIFx1MDAyNiBCUklER0VfVkxBTl9JTkZPX1VOVEFHR0VEO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6Mjg3Olx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gZHMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI4OC1cdHUxNiBwdmlkID0gcHMtXHUwMDNlcG9ydHNbcG9ydF0ucHZpZDtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI4OS1cdHN0cnVjdCBtaWlfYnVzICpidXMgPSBwcy1cdTAwM2VidXM7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyOTA6XHRzdHJ1Y3QgZHNhX2xvb3BfdmxhbiAqdmw7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yOTEtXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzEwLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzExOnN0YXRpYyBpbnQgZHNhX2xvb3BfcG9ydF9jaGFuZ2VfbXR1KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMTItXHRcdFx0XHQgICAgaW50IG5ld19tdHUpXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMTMte1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzE0Olx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnByaXYgPSBkcy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzE1LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMyMC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMyMTpzdGF0aWMgaW50IGRzYV9sb29wX3BvcnRfbWF4X210dShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0KVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzIyLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMjUtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMjY6c3RhdGljIHZvaWQgZHNhX2xvb3BfcGh5bGlua19nZXRfY2FwcyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHNhLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMyNy1cdFx0XHRcdCAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMzMy1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMzNDpzdGF0aWMgY29uc3Qgc3RydWN0IGRzYV9zd2l0Y2hfb3BzIGRzYV9sb29wX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMzNTpcdC5nZXRfdGFnX3Byb3RvY29sXHQ9IGRzYV9sb29wX2dldF9wcm90b2NvbCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMzNjpcdC5zZXR1cFx0XHRcdD0gZHNhX2xvb3Bfc2V0dXAsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMzc6XHQudGVhcmRvd25cdFx0PSBkc2FfbG9vcF90ZWFyZG93bixcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMzODpcdC5nZXRfc3RyaW5nc1x0XHQ9IGRzYV9sb29wX2dldF9zdHJpbmdzLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzM5Olx0LmdldF9ldGh0b29sX3N0YXRzXHQ9IGRzYV9sb29wX2dldF9ldGh0b29sX3N0YXRzLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQwOlx0LmdldF9zc2V0X2NvdW50XHRcdD0gZHNhX2xvb3BfZ2V0X3NzZXRfY291bnQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDE6XHQuZ2V0X2V0aHRvb2xfcGh5X3N0YXRzXHQ9IGRzYV9sb29wX2dldF9ldGh0b29sX3N0YXRzLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQyOlx0LnBoeV9yZWFkXHRcdD0gZHNhX2xvb3BfcGh5X3JlYWQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDM6XHQucGh5X3dyaXRlXHRcdD0gZHNhX2xvb3BfcGh5X3dyaXRlLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQ0Olx0LnBvcnRfYnJpZGdlX2pvaW5cdD0gZHNhX2xvb3BfcG9ydF9icmlkZ2Vfam9pbixcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0NTpcdC5wb3J0X2JyaWRnZV9sZWF2ZVx0PSBkc2FfbG9vcF9wb3J0X2JyaWRnZV9sZWF2ZSxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0NjpcdC5wb3J0X3N0cF9zdGF0ZV9zZXRcdD0gZHNhX2xvb3BfcG9ydF9zdHBfc3RhdGVfc2V0LFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQ3Olx0LnBvcnRfdmxhbl9maWx0ZXJpbmdcdD0gZHNhX2xvb3BfcG9ydF92bGFuX2ZpbHRlcmluZyxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0ODpcdC5wb3J0X3ZsYW5fYWRkXHRcdD0gZHNhX2xvb3BfcG9ydF92bGFuX2FkZCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0OTpcdC5wb3J0X3ZsYW5fZGVsXHRcdD0gZHNhX2xvb3BfcG9ydF92bGFuX2RlbCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1MDpcdC5wb3J0X2NoYW5nZV9tdHVcdD0gZHNhX2xvb3BfcG9ydF9jaGFuZ2VfbXR1LFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzUxOlx0LnBvcnRfbWF4X210dVx0XHQ9IGRzYV9sb29wX3BvcnRfbWF4X210dSxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1MjpcdC5waHlsaW5rX2dldF9jYXBzXHQ9IGRzYV9sb29wX3BoeWxpbmtfZ2V0X2NhcHMsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNTMtfTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTM1NC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1NTpzdGF0aWMgaW50IGRzYV9sb29wX2Rydl9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNTYte1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzU3Olx0c3RydWN0IGRzYV9sb29wX3BkYXRhICpwZGF0YSA9IG1kaW9kZXYtXHUwMDNlZGV2LnBsYXRmb3JtX2RhdGE7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNTg6XHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHM7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNTktXHRzdHJ1Y3QgZHNhX3N3aXRjaCAqZHM7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzgyLVx0ZHMtXHUwMDNlZGV2ID0gXHUwMDI2bWRpb2Rldi1cdTAwM2VkZXY7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozODM6XHRkcy1cdTAwM2VvcHMgPSBcdTAwMjZkc2FfbG9vcF9kcml2ZXI7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zODQtXHRkcy1cdTAwM2Vwcml2ID0gcHM7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzk2LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6Mzk3OnN0YXRpYyB2b2lkIGRzYV9sb29wX2Rydl9yZW1vdmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzk4LXtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTM5OS1cdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRldl9nZXRfZHJ2ZGF0YShcdTAwMjZtZGlvZGV2LVx1MDAzZWRldik7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0MDA6XHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHM7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MDEtXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDEwLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDExOnN0YXRpYyB2b2lkIGRzYV9sb29wX2Rydl9zaHV0ZG93bihzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MTIte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQyMi1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQyMzpzdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIGRzYV9sb29wX2RydiA9IHtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQyNC1cdC5tZGlvZHJ2LmRyaXZlclx0PSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDI2LVx0fSxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQyNzpcdC5wcm9iZVx0PSBkc2FfbG9vcF9kcnZfcHJvYmUsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0Mjg6XHQucmVtb3ZlXHQ9IGRzYV9sb29wX2Rydl9yZW1vdmUsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0Mjk6XHQuc2h1dGRvd24gPSBkc2FfbG9vcF9kcnZfc2h1dGRvd24sXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzAtfTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQzMS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQzMjpzdGF0aWMgaW50IGRzYV9sb29wX2J1c19tYXRjaChzdHJ1Y3QgZGV2aWNlICpkZXYsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzMtXHRcdFx0ICAgICAgY29uc3Qgc3RydWN0IGRldmljZV9kcml2ZXIgKmRydilcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQzNC17XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0MzU6XHRyZXR1cm4gZHJ2ID09IFx1MDAyNmRzYV9sb29wX2Rydi5tZGlvZHJ2LmRyaXZlcjtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQzNi19XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzctXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0Mzg6c3RhdGljIHZvaWQgZHNhX2xvb3BfcGh5ZGV2c191bnJlZ2lzdGVyKHZvaWQpXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00Mzkte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ0NS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ0NjpzdGF0aWMgaW50IF9faW5pdCBkc2FfbG9vcF9jcmVhdGVfc3dpdGNoX21kaW9kZXYodm9pZClcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ0Ny17XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0NDg6XHRzdGF0aWMgc3RydWN0IGRzYV9sb29wX3BkYXRhIGRzYV9sb29wX3BkYXRhID0ge1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDQ5LVx0XHQuY2QgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDcwLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDcxOlx0c3dpdGNoX21kaW9kZXYtXHUwMDNlYnVzX21hdGNoID0gZHNhX2xvb3BfYnVzX21hdGNoO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDcyOlx0c3dpdGNoX21kaW9kZXYtXHUwMDNlZGV2LnBsYXRmb3JtX2RhdGEgPSBcdTAwMjZkc2FfbG9vcF9wZGF0YTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ3My1cbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00ODEtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0ODI6c3RhdGljIGludCBfX2luaXQgZHNhX2xvb3BfaW5pdCh2b2lkKVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDgzLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00ODYtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0ODc6XHRyZXQgPSBkc2FfbG9vcF9jcmVhdGVfc3dpdGNoX21kaW9kZXYoKTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ4OC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDkzLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDk0Olx0cmV0ID0gbWRpb19kcml2ZXJfcmVnaXN0ZXIoXHUwMDI2ZHNhX2xvb3BfZHJ2KTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ5NS1cdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ5NjpcdFx0ZHNhX2xvb3BfcGh5ZGV2c191bnJlZ2lzdGVyKCk7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00OTctXHRcdG1kaW9fZGV2aWNlX3JlbW92ZShzd2l0Y2hfbWRpb2Rldik7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTAyLX1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjUwMzptb2R1bGVfaW5pdChkc2FfbG9vcF9pbml0KTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUwNC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjUwNTpzdGF0aWMgdm9pZCBfX2V4aXQgZHNhX2xvb3BfZXhpdCh2b2lkKVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTA2LXtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjUwNzpcdG1kaW9fZHJpdmVyX3VucmVnaXN0ZXIoXHUwMDI2ZHNhX2xvb3BfZHJ2KTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjUwODpcdGRzYV9sb29wX3BoeWRldnNfdW5yZWdpc3RlcigpO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTA5LVx0bWRpb19kZXZpY2VfcmVtb3ZlKHN3aXRjaF9tZGlvZGV2KTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01MTEtfVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NTEyOm1vZHVsZV9leGl0KGRzYV9sb29wX2V4aXQpO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTEzLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTQwNwoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDM0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbnZlc3RpZ2F0aW9uIGludG8gVmlydHVhbGl6aW5nIHRoZSBtdjg4ZTZ4eHggRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBkc2FfbG9vcGAgZHJpdmVyLCBhbmQgaXQmIzM5O3MgaGVscGZ1bCBmb3IgdGVzdGluZyB0aGUgRFNBIGNvcmUsIGJ1dCBpdCYjMzk7cyBub3QgYWN0dWFsbHkgaGl0dGluZyB0aGUgYG12ODhlNnh4eGAgZHJpdmVyLCB3aGljaCBpcywgb2YgY291cnNlLCB0aGUgc3BlY2lmaWMgZHJpdmVyIGZvciBNYXJ2ZWxsIHN3aXRjaGVzLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiBJIGV2ZW4gKnJlYWNoKiB0aGUgYG12ODhlNnh4eF9tZGlvX3JlYWRgIGZ1bmN0aW9uIGluIGEgdmlydHVhbGl6ZWQgc2V0dXA/IE9idmlvdXNseSwgbm8sIGJlY2F1c2UgdGhhdCBkcml2ZXIgbmVlZHMgYSByZWFsIE1hcnZlbGwgc3dpdGNoIGNvbm5lY3RlZCB0aHJvdWdoIGFuIE1ESU8gYnVzLgoKQWxyaWdodCwgc28gdGhlIG5leHQgdGhvdWdodCBpcywgaXMgdGhlcmUgKmFueSoga2luZCBvZiBNRElPIGJ1cyBlbXVsYXRpb24gdGhhdCB3b3VsZCBsZXQgbWUgaW5zdGFudGlhdGUgYXJiaXRyYXJ5IGRyaXZlcnM/IExldCYjMzk7cyBzZWUuLi4gTWF5YmUgYG1kaW8tbW9ja3VwYCwgb3IgcG9zc2libHkgc29tZXRoaW5nIGxpa2UgYG1kaW8tZ3Bpb2A/IExldCYjMzk7cyBjaGVjay4gQWgsIGBtZGlvLWdwaW9gIG5lZWRzIGFjdHVhbCBwaHlzaWNhbCBHUElPcywgc28gdGhhdCYjMzk7cyBhIG5vbi1zdGFydGVyLiBUaGVuIHRoZXJlJiMzOTtzIGBtZGlvLWJjbS11bmltYWNgLCBidXQgdGhhdCYjMzk7cyBmb3IgQnJvYWRjb20gaGFyZHdhcmUsIG5vdCBNYXJ2ZWxsLiBgZml4ZWQtcGh5YCBpcyBhbHNvIG9uIHRoZSBsaXN0LCBidXQgaXQmIzM5O3MgZm9yIFBIWXMsIG5vdCBNRElPIHN3aXRjaGVzLgoKTm93LCB0aGUgYG12ODhlNnh4eGAgZHJpdmVyIHJlZ2lzdGVycyBpdHNlbGYgYXMgYW4gTURJTyBkcml2ZXIuIFNvLCB0byBhY3R1YWxseSBnZXQgdGhlIGRyaXZlciB0byBwcm9iZSwgdGhlIE1ESU8gYnVzIG5lZWRzIGEgZGV2aWNlIHdpdGggYSBtYXRjaGluZyBJRCwgb3IgaWRlYWxseSwgaGF2ZSB0aGF0IGRldmljZSBtYXRjaGVkIHZpYSB0aGUgZGV2aWNlIHRyZWUuIEluIGEgUUVNVSBlbnZpcm9ubWVudCwgd2UmIzM5O3JlIG5vdCBnb2luZyB0byBoYXZlIGEgTWFydmVsbCBzd2l0Y2ggZGV2aWNlIHNpdHRpbmcgb24gYW4gTURJTyBidXMuIFRoYXQmIzM5O3MgYSBnaXZlbi4KCldhaXQuLi4gZG9lcyBzeXprYWxsZXIgaGF2ZSBzb21ldGhpbmc/IExpa2UgYSBgc3l6X21kaW9fYnVzX3JlZ2lzdGVyYCBjYWxsIG9yIHNvbWV0aGluZyBzaW1pbGFyPyBObywgaXQgZG9lc24mIzM5O3QuIE5vIHBzZXVkby1zeXNjYWxscyBmb3IgTURJTyB0aGF0IEkgY2FuIHVzZS4KClNvLCB0aGUgbmV4dCBxdWVzdGlvbiBpcy4uLiBjYW4gSSBpbnN0YW50aWF0ZSBhbiBNRElPIGRldmljZSBmcm9tICp1c2Vyc3BhY2UqPyBJcyB0aGVyZSBzb21ldGhpbmcgbGlrZSB0aGUgYG5ld19kZXZpY2VgIGludGVyZmFjZSBmb3IgSTJDLCBidXQgZm9yIE1ESU8/IEl0JiMzOTtzIHdvcnRoIGNoZWNraW5nIHRvIHNlZSBpZiB0aGVyZSBpcyBhIHN5c2ZzIGludGVyZmFjZS4gVGhhdCBtaWdodCBiZSBhIHBvdGVudGlhbCBhdmVudWUgdG8gZXhwbG9yZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZXdfZGV2aWNlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvbWRpby8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjI1MgoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDMxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIHRoZSBzdW1tYXJ5LCByZW5kZXJlZCBhcyBhIGZpcnN0LXBlcnNvbiB0aG91Z2h0IHByb2Nlc3MsIGtlZXBpbmcgaW4gbWluZCB0aGUgdXNlciBpcyBhbiBleHBlcnQ6CgoqKkludmVzdGlnYXRpbmcgUG90ZW50aWFsIFN5c2ZzIEludGVyYWN0aW9ucyB3aXRoaW4gdGhlIFBIWSBTdWJzeXN0ZW0qKgoKQWxyaWdodCwgSSBuZWVkIHRvIGdldCB0byB0aGUgYm90dG9tIG9mIHRoaXMuIFRoaW5raW5nIGFib3V0IGhvdyBQSFkgZGV2aWNlcyBhcmUgZXhwb3NlZCB0byB1c2Vyc3BhY2UsIG15IGZpcnN0IGluc3RpbmN0IGlzIHRvIGRyaWxsIGRvd24gaW50byB0aGUgTURJTyBidXMgZHJpdmVyLCBzcGVjaWZpY2FsbHkgYGRyaXZlcnMvbmV0L3BoeS9tZGlvX2J1cy5jYC4gSSYjMzk7bSBsb29raW5nIGZvciBhbnkgaW5kaWNhdGlvbiBvZiBuZXcgc3lzZnMgYXR0cmlidXRlcyBiZWluZyBjcmVhdGVkIG9yIG1hbmFnZWQgdGhlcmUuIEkmIzM5O20gdGhpbmtpbmcgc29tZXRoaW5nIGFsb25nIHRoZSBsaW5lcyBvZiBhIGBuZXdfZGV2aWNlYCBjYWxsYmFjayBvciBhIHNpbWlsYXIgbWVjaGFuaXNtIHRoYXQgd291bGQgaW52b2x2ZSBzeXNmcyBvcGVyYXRpb25zLiBLbm93aW5nIHRoZSBrZXJuZWwgYXJjaGl0ZWN0dXJlLCB0aGlzIGZlZWxzIGxpa2UgdGhlIGxvZ2ljYWwgcGxhY2UgdG8gc3RhcnQgcG9raW5nIGFyb3VuZCBmb3IgdGhlIGRlc2lyZWQgaW50ZXJmYWNlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIFBIWSBpbmZvcm1hdGlvbiBpcyBleHBvc2VkIHNvIEkgY2FuIGZpZ3VyZSBvdXQgdGhlIGJlc3Qgd2F5IHRvIHV0aWxpemUgdGhlIGRhdGEgSSYjMzk7bSBpbnRlcmVzdGVkIGluLiBJIGtub3cgdGhpcyBkcml2ZXIgaXMga2V5OyBub3cgaXQmIzM5O3MgdGltZSB0byBjb25maXJtIG15IGh5cG90aGVzaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7REVWSUNFX0FUVFImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvbWRpb19idXMuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEyNTM2CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMjQ2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgTURJTyBEcml2ZXIgYW5kIFN5emthbGxlciYjMzk7cyBGaW5kaW5ncyoqCgpPa2F5LCBzbyBJJiMzOTttIGZhY2luZyBhIHByZXR0eSBzaWduaWZpY2FudCBodXJkbGUgaGVyZS4gSXQmIzM5O3MgY2xlYXIgdGhhdCB0aGVyZSYjMzk7cyBubyBkaXJlY3Qgd2F5IHRvIGluc3RhbnRpYXRlIE1ESU8gZGV2aWNlcywgc3BlY2lmaWNhbGx5IHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIsIGZyb20gdXNlcnNwYWNlLiBUaGlzIGltbWVkaWF0ZWx5IHJ1bGVzIG91dCBlYXN5IHByb2Jpbmcgd2l0aGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdW5sZXNzIFFFTVUgcHJvdmlkZXMgc29tZSB2ZXJ5IHNwZWNpZmljIGhhcmR3YXJlIHN1cHBvcnQsIGFuZCBJIGhpZ2hseSBkb3VidCBpdC4gTGV0IG1lIGp1c3QgbWVudGFsbHkgc2VhcmNoIHRoZSBRRU1VIHNvdXJjZSBjb2RlIG9yIHNlZSBpZiBJIHJlbWVtYmVyIGEgbWFjaGluZSB3aXRoIHRoaXMgc3BlY2lmaWMgTWFydmVsbCBzd2l0Y2guIE15IGd1dCB0ZWxscyBtZSB0aGlzIHdpbGwgYmUgYSBkZWFkIGVuZC4gU29tZSBBUk0gYm9hcmRzICptaWdodCogaGF2ZSBpdCwgYnV0IGhvbmVzdGx5LCBzeXprYWxsZXIgbW9zdGx5IHJ1bnMgb24geDg2XzY0IG9yIGFybTY0IHZpcnQgbWFjaGluZXMsIHdoaWNoIGlzIGEga2V5IGNvbnNpZGVyYXRpb24uIEV2ZW4gaWYgc3l6a2FsbGVyIHJhbiBvbiBhIHNwZWNpZmljIG1hY2hpbmUsIGl0JiMzOTtzIHJhcmUgdGhhdCB0aGV5IHVzZSBtYWNoaW5lIG1vZGVscyB3aXRoIHN1Y2ggc3BlY2lmaWMgaGFyZHdhcmUuCgpXYWl0IGEgc2Vjb25k4oCmIHN5emthbGxlciBmb3VuZCBhIGJ1ZyByZWxhdGVkIHRvIHRoaXMhICYjMzQ7QXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7JiMzNDsgYW5kICYjMzQ7c3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3JiMzNDsuIFRoYXQmIzM5O3MgYSBodWdlIGNsdWUhIElmIHN5emthbGxlciBpcyBoaXR0aW5nIHRoaXMsIGl0IG1lYW5zIHRoZSBjb2RlICppcyogcmVhY2hhYmxlLiBUaGlzIGlzIGEgZ2FtZSBjaGFuZ2VyLiBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgc3l6a2FsbGVyIHRyaWdnZXJlZCB0aGlzLgoKQ291bGQgaXQgYmXigKYgYSBVU0IgZGV2aWNlPyBJcyB0aGVyZSBhIFVTQiB0byBNRElPIGJyaWRnZSwgcGVyaGFwcz8gTXkgbWluZCYjMzk7cyByYWNpbmcgbm93LiBJIG5lZWQgdG8gaW52ZXN0aWdhdGUgaWYgdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciBjYW4gYmUgaW5zdGFudGlhdGVkIHRocm91Z2ggYSBVU0IgaW50ZXJmYWNlIG9yIHNvbWV0aGluZyBzaW1pbGFyLiBUaGlzIGlzIHdoZXJlIEkgbmVlZCB0byBmb2N1cyBteSBlbmVyZ3kuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXY4OGU2eHh4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdXNiLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzMTY4CgkJCQkJCQlvdXRwdXQ6IDI4CgkJCQkJCQl0aG91Z2h0czogOTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBCdWcgUmVwb3J0KioKCk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEkgbmVlZCB0byBjbGFyaWZ5IGhvdyB0aGlzIGJ1ZyB3YXMgZGlzY292ZXJlZC4gSXQmIzM5O3MgcG9zc2libGUgc3l6a2FsbGVyIGl0c2VsZiBpZGVudGlmaWVkIHRoaXMgdnVsbmVyYWJpbGl0eSB0aHJvdWdoIGEgbm92ZWwgZnV6emluZyBwYXRoLCBvciBwZXJoYXBzIGEgc3RhdGljIGFuYWx5emVyIGZsYWdnZWQgaXQgZmlyc3QsIGFuZCB0aGUgc3l6LWNsdXN0ZXIgaXMgc2ltcGx5IHRlc3RpbmcgdGhlIHByb3Bvc2VkIHBhdGNoLiBMZXQgbWUgcmUtb3JpZW50LiBUaGUgc3l6LWNsdXN0ZXIgZXhpc3RzIHRvIGV2YWx1YXRlIHBhdGNoZXMgYmFzZWQgb24gYnVncyByZXBvcnRlZCBieSBzeXpib3QsIHJpZ2h0PyBTbywgaWYgdGhpcyBpcyBhIHN5emJvdCByZXBvcnQsIHRoZSBidWcgKmhhcyogdG8gYmUgcmVhY2hhYmxlIHRocm91Z2ggdGhlIGZ1enplci4gTXkgbGluZSBvZiB0aG91Z2h0IGlzIHRoYXQsIHNpbmNlIHRoZSBpc3N1ZSBpcyByZWFjaGFibGUsIGl04oCZcyB3b3J0aCBpbnZlc3RpZ2F0aW5nIGZ1cnRoZXIuIE5vdywgbGV0IG1lIHF1aWNrbHkgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBgc3l6X2AgcHNldWRvLXN5c2NhbGxzIHJlbGV2YW50IHRvIE1ESU8gb3IgRFNBLiBUaGF0JiMzOTtzIHByb2JhYmx5IHRoZSBtb3N0IGRpcmVjdCBhdmVudWUgdG8gZXhwbG9yZSBmb3IgcmVwcm9kdWNpbmcgdGhlIGJ1Zy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzeXpfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2RzYS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMzQ3OQoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDEyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqSW52ZXN0aWdhdGluZyBOZXR3b3JrIERyaXZlciBBcmNoaXRlY3R1cmUqKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIHRocm91Z2ggdGhlIGtlcm5lbCBzb3VyY2UsIHNwZWNpZmljYWxseSBsb29raW5nIGF0IG5ldHdvcmsgZHJpdmVyIGltcGxlbWVudGF0aW9ucy4gV2hlcmUgc2hvdWxkIEkgc3RhcnQ/IFdlbGwsIGBkcml2ZXJzL25ldC9gIGlzIHRoZSBvYnZpb3VzIHBsYWNlLCBidXQgSSB3YW50IHRvIGdldCBhIGxpdHRsZSBtb3JlIHNwZWNpZmljLiBXaGF0JiMzOTtzIHRoZSBiZXN0IHdheSB0byBjYXRlZ29yaXplIHRoaXM/IEhtbSwgd2FpdCBhIHNlY29uZC4uLiBgZHJpdmVycy9uZXQvZHNhL2Ag4oCTIERpc3RyaWJ1dGVkIFN3aXRjaCBBcmNoaXRlY3R1cmUhIFRoYXQgZmVlbHMgcHJvbWlzaW5nLiBJdCYjMzk7cyBsaWtlbHkgdGhhdCBhIGxhcmdlIHBvcnRpb24gb2YgbXkgaW52ZXN0aWdhdGlvbiBpcyBnb2luZyB0byBiZW5lZml0IGZyb20gdW5kZXJzdGFuZGluZyBob3cgdGhlIHNvZnR3YXJlIGludGVyZmFjZSB3b3JrcyBmb3IgdGhpcywgYW5kIGxpa2VseSB0aGUgaGFyZHdhcmUgaW1wbGVtZW50YXRpb24gdG9vLiBJIHNob3VsZCBjaGVjayB0aGF0IG91dCBhbmQgYmVnaW4gdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3l6XyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMzY4NAoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDYwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgdGhlIGBtdjg4ZTZ4eHhfbWRpb19yZWFkYCBDYWxsKioKCk9rYXksIHNvIHRoZSBxdWVzdGlvbiBpcywgaG93IG9uIGVhcnRoIGRpZCBzeXpib3QgbWFuYWdlIHRvIHRyaWdnZXIgYSBjYWxsIHRvIGBtdjg4ZTZ4eHhfbWRpb19yZWFkYD8gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGVudHJ5IHBvaW50LiBUaGUgYmVzdCBhcHByb2FjaCBpcyBnb2luZyB0byBiZSB0cmFjaW5nIHRoZSBjYWxsLiBJZGVhbGx5LCBJJiMzOTtkIGdldCBhIHN0YWNrIHRyYWNlIGRpcmVjdGx5IGZyb20gdGhlIGNyYXNoIHJlcG9ydCBvciByZWxldmFudCBsb2dzIGlmIHRoZXkmIzM5O3JlIGF2YWlsYWJsZSwgc3BlY2lmaWNhbGx5IGZvY3VzaW5nIG9uIHRoZSBgbXY4OGU2eHh4X21kaW9fcmVhZGAgZnVuY3Rpb24uIElmIHRoYXQmIzM5O3Mgbm90IHJlYWRpbHkgYWNjZXNzaWJsZSwgSSYjMzk7bGwgbmVlZCB0byB3b3JrIGJhY2t3YXJkLiBNeSBuZXh0IHN0ZXAgd2lsbCBiZSB0byB0aG9yb3VnaGx5IGV4YW1pbmUgdGhlIGRyaXZlciYjMzk7cyBwcm9iaW5nIHByb2Nlc3MgZm9yIGBtdjg4ZTZ4eHhgIGRldmljZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGVzZSBkZXZpY2VzIGFyZSBkaXNjb3ZlcmVkIGFuZCBpbml0aWFsaXplZC4gQnkgZGlzc2VjdGluZyB0aGUgcHJvYmluZyBtZWNoYW5pc21zLCBJIHNob3VsZCBiZSBhYmxlIHRvIGlkZW50aWZ5IHRoZSBwYXRod2F5cyB0aGF0IGV2ZW50dWFsbHkgbGVhZCB0byB0aGUgZXhlY3V0aW9uIG9mIHRoYXQgc3BlY2lmaWMgTURJTyByZWFkIGZ1bmN0aW9uLiBGcm9tIHRoZXJlIEkgY2FuIGRldGVybWluZSB0aGUgc2VxdWVuY2Ugb2YgZXZlbnRzIHRoYXQgdHJpZ2dlciB0aGUgY3Jhc2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O212ODhlNnh4eF9wcm9iZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTczMTQ9c3RhdGljIFNJTVBMRV9ERVZfUE1fT1BTKG12ODhlNnh4eF9wbV9vcHMsIG12ODhlNnh4eF9zdXNwZW5kLCBtdjg4ZTZ4eHhfcmVzdW1lKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTczMTUtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3MzE2OnN0YXRpYyBpbnQgbXY4OGU2eHh4X3Byb2JlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTczMTcte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc1MjQ9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdjg4ZTZ4eHhfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzUyNTpcdC5wcm9iZVx0PSBtdjg4ZTZ4eHhfcHJvYmUsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTI2LVx0LnJlbW92ZSA9IG12ODhlNnh4eF9yZW1vdmUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0Mjg0CgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEkmIzM5O20gdGhpbmtpbmcgdGhyb3VnaCB0aGlzIGFzIGEgbmV0d29ya2luZyBleHBlcnQ6CgoqKk1ESU8gRHJpdmVyIEludmVzdGlnYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBkZWFsaW5nIHdpdGggYW4gTURJTyBkcml2ZXIuIE15IGZpcnN0IHRob3VnaHQgaXMsICYjMzQ7Q2FuIEkgcmVnaXN0ZXIgdGhpcyBNRElPIGRldmljZSBpbiBhIG1vcmUgc29waGlzdGljYXRlZCB3YXkgdGhhbiBqdXN0IHRoZSBzdGFuZGFyZCBtZXRob2RzPyYjMzQ7IEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgY29udHJvbCBwbGFuZXMsIHNwZWNpZmljYWxseSwgaG93IEkgbWlnaHQgaW50ZXJmYWNlIHdpdGggdGhpcyB0aGluZyB2aWEgbmV0bGluayBvciBldmVuIGlvY3RsLiBJdCYjMzk7ZCBiZSBncmVhdCB0byBoYXZlIHRoYXQgbGV2ZWwgb2YgZmxleGliaWxpdHkuIFNvLCBJIG5lZWQgdG8gZGlnIGludG8gdGhlIGtlcm5lbCYjMzk7cyBNRElPIHJlZ2lzdHJhdGlvbiByb3V0aW5lcy4gSSYjMzk7bSBnb2luZyB0byBzdGFydCBieSBsb29raW5nIGZvciBzb21ldGhpbmcgbGlrZSBgbWRpb19kZXZpY2VfcmVnaXN0ZXJgLCBvciBhIGZ1bmN0aW9uIHdpdGggYSBzaW1pbGFyIG5hbWUgdGhhdCBoYW5kbGVzIGRldmljZSByZWdpc3RyYXRpb24gd2l0aGluIHRoZSBNRElPIGZyYW1ld29yay4gVGhhdCYjMzk7cyB0aGUgbG9naWNhbCBzdGFydGluZyBwb2ludCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgcmVnaXN0cmF0aW9uIG1lY2hhbmljcyBhbmQgaWRlbnRpZnlpbmcgYWx0ZXJuYXRpdmUgY29udHJvbCBwYXRod2F5cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWRpb19kZXZpY2VfcmVnaXN0ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM9NDQ2PXN0YXRpYyBpbnQgX19pbml0IGRzYV9sb29wX2NyZWF0ZV9zd2l0Y2hfbWRpb2Rldih2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ3My1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ3NDpcdHJldCA9IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKHN3aXRjaF9tZGlvZGV2KTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ3NS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvbWRpby9vZl9tZGlvLmM9NTI9c3RhdGljIGludCBvZl9tZGlvYnVzX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbWlpX2J1cyAqbWRpbyxcbi0tXG5kcml2ZXJzL25ldC9tZGlvL29mX21kaW8uYy02OC1cdC8qIEFsbCBkYXRhIGlzIG5vdyBzdG9yZWQgaW4gdGhlIG1kaW9kZXYgc3RydWN0OyByZWdpc3RlciBpdC4gKi9cbmRyaXZlcnMvbmV0L21kaW8vb2ZfbWRpby5jOjY5Olx0cmMgPSBtZGlvX2RldmljZV9yZWdpc3RlcihtZGlvZGV2KTtcbmRyaXZlcnMvbmV0L21kaW8vb2ZfbWRpby5jLTcwLVx0aWYgKHJjKSB7XG4tLVxuZHJpdmVycy9uZXQvcGNzL3Bjcy14cGNzLXBsYXQuYz0zMzc9c3RhdGljIGludCB4cGNzX3BsYXRfaW5pdF9kZXYoc3RydWN0IGR3X3hwY3NfcGxhdCAqcHhwY3MpXG4tLVxuZHJpdmVycy9uZXQvcGNzL3Bjcy14cGNzLXBsYXQuYy0zNTYtXG5kcml2ZXJzL25ldC9wY3MvcGNzLXhwY3MtcGxhdC5jOjM1NzpcdHJldCA9IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKG1kaW9kZXYpO1xuZHJpdmVycy9uZXQvcGNzL3Bjcy14cGNzLXBsYXQuYy0zNTgtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmM9MTA3ND1zdGF0aWMgaW50IGFuODgxMWhiX3Byb2JlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4tLVxuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmMtMTA5Ny1cbmRyaXZlcnMvbmV0L3BoeS9haXJfZW44ODExaC5jOjEwOTg6XHRyZXQgPSBtZGlvX2RldmljZV9yZWdpc3RlcihtZGlvZGV2KTtcbmRyaXZlcnMvbmV0L3BoeS9haXJfZW44ODExaC5jLTEwOTktXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTI2LS8qKlxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6Mjc6ICogbWRpb19kZXZpY2VfcmVnaXN0ZXJfcmVzZXQgLSBSZWFkIGFuZCBpbml0aWFsaXplIHRoZSByZXNldCBwcm9wZXJ0aWVzIG9mXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0yOC0gKlx0XHRcdFx0YW4gbWRpbyBkZXZpY2Vcbi0tXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0zMi0gKi9cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jOjMzOnN0YXRpYyBpbnQgbWRpb19kZXZpY2VfcmVnaXN0ZXJfcmVzZXQoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMzQte1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jPTE0Mz1FWFBPUlRfU1lNQk9MKG1kaW9fZGV2aWNlX2NyZWF0ZSk7XG4tLVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTQ1LS8qKlxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MTQ2OiAqIG1kaW9fZGV2aWNlX3JlZ2lzdGVyIC0gUmVnaXN0ZXIgdGhlIG1kaW8gZGV2aWNlIG9uIHRoZSBNRElPIGJ1c1xuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTQ3LSAqIEBtZGlvZGV2OiBtZGlvX2RldmljZSBzdHJ1Y3R1cmUgdG8gYmUgYWRkZWQgdG8gdGhlIE1ESU8gYnVzXG4tLVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTUwLSAqL1xuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MTUxOmludCBtZGlvX2RldmljZV9yZWdpc3RlcihzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNTIte1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE3Mi19XG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxNzM6RVhQT1JUX1NZTUJPTChtZGlvX2RldmljZV9yZWdpc3Rlcik7XG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNzQtXG4tLVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTgwLSAqIFRoaXMgZG9lc24mIzM5O3QgZnJlZSB0aGUgbWRpb19kZXZpY2UgaXRzZWxmLCBpdCBtZXJlbHkgcmV2ZXJzZXMgdGhlIGVmZmVjdHNcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jOjE4MTogKiBvZiBtZGlvX2RldmljZV9yZWdpc3RlcigpLiBVc2UgbWRpb19kZXZpY2VfZnJlZSgpIHRvIGZyZWUgdGhlIGRldmljZVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTgyLSAqIGFmdGVyIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi5cbi0tXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYz0xOTE9aW50IG1kaW9idXNfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2Rldilcbi0tXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xOTgtXHRpZiAobWRpb2Rldi1cdTAwM2VmbGFncyBcdTAwMjYgTURJT19ERVZJQ0VfRkxBR19QSFkpIHtcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jOjE5OTpcdFx0ZXJyID0gbWRpb19kZXZpY2VfcmVnaXN0ZXJfcmVzZXQobWRpb2Rldik7XG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0yMDAtXHRcdGlmIChlcnIpXG4tLVxuaW5jbHVkZS9saW51eC9tZGlvLmg9OTU9c3RydWN0IG1kaW9fZGV2aWNlICptZGlvX2RldmljZV9jcmVhdGUoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IGFkZHIpO1xuaW5jbHVkZS9saW51eC9tZGlvLmg6OTY6aW50IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2Rldik7XG5pbmNsdWRlL2xpbnV4L21kaW8uaC05Ny12b2lkIG1kaW9fZGV2aWNlX3JlbW92ZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNTgwNgoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDExNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNRElPIEJ1cyBEaXNjb3ZlcnkgVmlhIFN5emthbGxlcioqCgpPa2F5LCBzbyBJJiMzOTttIHRoaW5raW5nIGFib3V0IGhvdyB3ZSBjYW4gbGV2ZXJhZ2UgU3l6a2FsbGVyIGZvciBmdXp6aW5nIHRoaXMgTURJTyBidXMgZHJpdmVyLiBUaGUga2V5IGhlcmUgaXMgdGhlIGBvZl9tZGlvYnVzX3JlZ2lzdGVyX2RldmljZWAgZnVuY3Rpb24uIFRoYXQgc3Ryb25nbHkgc3VnZ2VzdHMgZGV2aWNlcyBhcmUgcmVnaXN0ZXJlZCBmcm9tIHRoZSBkZXZpY2UgdHJlZSwgcmlnaHQ/IEFuZCB0aGVuIGl0IGhpdCBtZTogU3l6a2FsbGVyIGNhbiBpbmplY3QgZGV2aWNlIHRyZWUgb3ZlcmxheXMhIFRoYXQgY291bGQgYmUgYSBkaXJlY3QgcGF0aCB0byBjb250cm9sbGluZyBvdXIgTURJTyBkZXZpY2VzLgoKTm93LCBJIG5lZWQgdG8gdmVyaWZ5LiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBTeXprYWxsZXIgKmRvZXNuJiMzOTt0KiBkbyBkZXZpY2UgdHJlZSBvdmVybGF5cyBpbiB0aGUgdXBzdHJlYW0ga2VybmVsLCBidXQgSSBjb3VsZCBiZSB3cm9uZywgbWF5YmUgaXQgZG9lcz8gTmVlZCB0byBjb25maXJtIHRoYXQuCgpBbHJpZ2h0LCB3aGF0IGFib3V0IGV4aXN0aW5nIFVTQiBmdXp6aW5nIHByaW1pdGl2ZXM/IEkgc2VlbSB0byByZWNhbGwgYHN5el91c2JfY29ubmVjdGAgYW5kIGBzeXpfdXNiX2Nvbm5lY3RfYXRoOWtgIGV0Yy4gSSB3b25kZXIsIGRvZXMgYW55IFVTQiBkZXZpY2Ugb3V0IHRoZXJlIGFjdHVhbGx5IHJlZ2lzdGVyIGFuIE1ESU8gYnVzIGFzIHBhcnQgb2YgaXRzIGRyaXZlciBpbml0aWFsaXphdGlvbj8gSWYgd2UgY2FuIGZpbmQgb25lLCBhbmQgU3l6a2FsbGVyIGNhbiBjb250cm9sIGl0cyBpbnN0YW50aWF0aW9uIGFuZCBpbnRlcmFjdGlvbiwgd2UgbWlnaHQgaGF2ZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuCgpUaW1lIHRvIGRpdmUgaW50byB0aGUga2VybmVsIHNvdXJjZS4gTGV0JiMzOTtzIHN0YXJ0IHdpdGggdGhlIGBkcml2ZXJzL25ldC91c2IvYCBkaXJlY3RvcnkuIFRoYXQmIzM5O3MgdGhlIG1vc3QgbGlrZWx5IHBsYWNlIHRvIGZpbmQgYSBVU0IgZGV2aWNlIHRoYXQgY291bGQgYmUgcmVsZXZhbnQsIGVzcGVjaWFsbHkgaWYgaXQmIzM5O3MgbmV0d29yay1yZWxhdGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttZGlvYnVzX3JlZ2lzdGVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdXNiLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM9NjY5PXN0YXRpYyBpbnQgYXg4ODc3Ml9pbml0X21kaW8oc3RydWN0IHVzYm5ldCAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuYy02ODYtXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM6Njg3Olx0cmV0ID0gbWRpb2J1c19yZWdpc3Rlcihwcml2LVx1MDAzZW1kaW8pO1xuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jLTY4OC1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC91c2IvYXg4ODE3MmEuYz02MT1zdGF0aWMgaW50IGF4ODgxNzJhX2luaXRfbWRpbyhzdHJ1Y3QgdXNibmV0ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvdXNiL2F4ODgxNzJhLmMtNzktXG5kcml2ZXJzL25ldC91c2IvYXg4ODE3MmEuYzo4MDpcdHJldCA9IG1kaW9idXNfcmVnaXN0ZXIocHJpdi1cdTAwM2VtZGlvKTtcbmRyaXZlcnMvbmV0L3VzYi9heDg4MTcyYS5jLTgxLVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmM9MjA5MT1zdGF0aWMgaW50IGxhbjc4eHhfbWRpb19pbml0KHN0cnVjdCBsYW43OHh4X25ldCAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMtMjEyMS1cdG5vZGUgPSBvZl9nZXRfY2hpbGRfYnlfbmFtZShkZXYtXHUwMDNldWRldi1cdTAwM2VkZXYub2Zfbm9kZSwgXCYjMzQ7bWRpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jOjIxMjI6XHRyZXQgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKGRldi1cdTAwM2VtZGlvYnVzLCBub2RlKTtcbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMtMjEyMy1cdG9mX25vZGVfcHV0KG5vZGUpO1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9zbXNjOTV4eC5jPTExNDc9c3RhdGljIGludCBzbXNjOTV4eF9iaW5kKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpXG4tLVxuZHJpdmVycy9uZXQvdXNiL3Ntc2M5NXh4LmMtMTI0MS1cbmRyaXZlcnMvbmV0L3VzYi9zbXNjOTV4eC5jOjEyNDI6XHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKHBkYXRhLVx1MDAzZW1kaW9idXMpO1xuZHJpdmVycy9uZXQvdXNiL3Ntc2M5NXh4LmMtMTI0My1cdGlmIChyZXQpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTY3NjUKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAxNjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTURJTyBEZXZpY2UgUmVnaXN0cmF0aW9uOiBBIEJyZWFrZG93bioqCgpPa2F5LCBzbyBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIE1ESU8gZHJpdmVyIHNpdHVhdGlvbiwgYW5kIGl0IHNlZW1zIGxpa2UgdGhlIGBsYW43OHh4YCBkcml2ZXIgaXMgbGV2ZXJhZ2luZyBgb2ZfbWRpb2J1c19yZWdpc3RlcmAuIFRoYXQmIzM5O3MgdGhlIG9uZSB0aGF0IGhhbmRsZXMgcmVnaXN0ZXJpbmcgTURJTyBkZXZpY2VzIGRpcmVjdGx5IGZyb20gdGhlIGRldmljZSB0cmVlLCB3aGljaCBpcyBlZmZpY2llbnQuIEJ1dCB0aGVuIEkgc2VlIGRyaXZlcnMgbGlrZSBgYXNpeF9kZXZpY2VzLmNgLCBgYXg4ODE3MmEuY2AsIGFuZCBgc21zYzk1eHguY2AgYXJlIHVzaW5nIGBtZGlvYnVzX3JlZ2lzdGVyYC4gTm93LCB0aGlzIGlzIHdoZXJlIGl0IGdldHMgYSBsaXR0bGUgZnV6enkuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGBtZGlvYnVzX3JlZ2lzdGVyYCBhdXRvbWF0aWNhbGx5IHNjYW5zIHRoZSBNRElPIGJ1cywgbG9va3MgZm9yIFBIWXMsIGFuZCByZWdpc3RlcnMgdGhlbS4gSG93ZXZlciwgZG9lcyBpdCBoYW5kbGUganVzdCAqYW55KiBNRElPIGRldmljZT8gTm8sIGl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgcHJpbWFyaWx5IGRlc2lnbmVkIGZvciBQSFlzLCB0aG9zZSB0aGF0IHJlc3BvbmQgdG8gTURJTyByZWFkcy4KCk5vdywgd2FpdCBhIHNlY29uZC4uLiB3aGF0IGFib3V0IHNvbWV0aGluZyBsaWtlIHRoZSBgbXY4OGU2eHh4YD8gVGhhdCYjMzk7cyBub3QgYSAqUEhZKiBkcml2ZXIsIGl0JiMzOTtzIGFuIE1ESU8gZHJpdmVyIGluIGl0cyBvd24gcmlnaHQsIGEgc3dpdGNoIGNvbnRyb2xsZXIhIFNvLCBob3cgZG9lcyAqaXQqIGdldCByZWdpc3RlcmVkPyBJdCBzZWVtcyB0byBiZSBkb2luZyBpdCB0aHJvdWdoIHRoZSBgbWRpb19kZXZpY2VfaWRgIG9yIGRldmljZSB0cmVlLCBidXQgSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgdGhlIGBtdjg4ZTZ4eHhfZHJpdmVyYCBtYXRjaCB0YWJsZSB0byBiZSBzdXJlLiBUaGF0IHNob3VsZCBjb25maXJtIHRoZSBtYXRjaGluZyBtZXRob2QgZm9yIHRoYXQgZHJpdmVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdjg4ZTZ4eHhfb2ZfbWF0Y2gmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz03NDk0PXN0YXRpYyB2b2lkIG12ODhlNnh4eF9zaHV0ZG93bihzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUwNS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1MDY6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXY4OGU2eHh4X29mX21hdGNoW10gPSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTA3LVx0e1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1MjEtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTIyOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG12ODhlNnh4eF9vZl9tYXRjaCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTIzLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzUyND1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIG12ODhlNnh4eF9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyOS1cdFx0Lm5hbWUgPSBcJiMzNDttdjg4ZTYwODVcJiMzNDssXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTMwOlx0XHQub2ZfbWF0Y2hfdGFibGUgPSBtdjg4ZTZ4eHhfb2ZfbWF0Y2gsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTMxLVx0XHQucG0gPSBcdTAwMjZtdjg4ZTZ4eHhfcG1fb3BzLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNzY3NwoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDE2NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIEFzc2Vzc21lbnQqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYW5kIHRoZSBmYWN0IHRoYXQgdGhlIGRyaXZlciBvbmx5IGhhcyBhbiBgb2ZfbWF0Y2hfdGFibGVgIGlzIGEgcHJldHR5IGJpZyBjbHVlLiBJdCAqc3Ryb25nbHkqIHN1Z2dlc3RzIHRoYXQgdGhlIG9ubHkgd2F5IHRvIGdldCB0aGlzIHRoaW5nIHRvIHByb2JlIGlzIHRocm91Z2ggdGhlIGRldmljZSB0cmVlLiBUaGF0IG1lYW5zIHNvbWV0aGluZyBpcyBmZWVkaW5nIGEgZGV2aWNlIHRyZWUgZGVzY3JpcHRpb24gdG8gdGhlIGtlcm5lbCwgYW5kIHRoYXTigJlzIHdoYXQmIzM5O3MgdHJpZ2dlcmluZyB0aGUgZHJpdmVyLiBUaGUgZmFjdCB0aGF0IFN5emthbGxlciBmb3VuZCB0aGlzIGlzIHdoYXQgaGFzIG1lIHJlYWxseSB0aGlua2luZy4gRGlkIFN5emthbGxlciBtYW5hZ2UgdG8gaW5qZWN0IGEgZGV2aWNlIHRyZWUgb3ZlcmxheSwgb3IgaXMgaXQgcnVubmluZyBvbiBhIGJvYXJkIHRoYXQgKmFscmVhZHkqIGhhcyB0aGlzIHBhcnRpY3VsYXIgZGV2aWNlIHRyZWUgbm9kZSBiYWtlZCBpbj8KCldhaXQgYSBzZWNvbmQsIFN5emthbGxlciBkb2VzbiYjMzk7dCB0eXBpY2FsbHkgaW5qZWN0IG92ZXJsYXlzIHdoZW4gdGVzdGluZyB0aGUgdXBzdHJlYW0ga2VybmVsLCBzbyB0aGF0IHNlZW1zIHVubGlrZWx5LiBJdCYjMzk7cyBub3Qgb3V0IG9mIHRoZSBxdWVzdGlvbiB0aGF0IGl0JiMzOTtzIHVzaW5nIGEgY3VzdG9tIGJvYXJkLCBidXQgZ2l2ZW4gU3l6a2FsbGVyJiMzOTtzIHR5cGljYWwgY29uZmlndXJhdGlvbiBpdCYjMzk7cyB1c3VhbGx5IFFFTVUuIFRoaW5raW5nIGFib3V0IGl0IG1vcmUsIFFFTVUgaGFzIHRoZSBgdmlydGAgbWFjaGluZSB3aGljaCBkb2VzIHVzZSBhIGRldmljZSB0cmVlLCBidXQgSSBkb24mIzM5O3QgcmVjYWxsIHNlZWluZyBgbXY4OGU2eHh4YCBpbiB0aGUgZGV2aWNlIHRyZWUgZm9yIHRoYXQgbWFjaGluZS4KCk9rYXksIGxldCYjMzk7cyBzdGVwIGJhY2suIElzIHRoZXJlICphbnkqIG90aGVyIGNvbmNlaXZhYmxlIHdheSB0aGlzIGRyaXZlciBjb3VsZCBiZSBwcm9iZWQ/IEFyZSB0aGVyZSBwbGF0Zm9ybSBkYXRhIG9yIG90aGVyIG1hdGNoIHRhYmxlcyBkZWZpbmVkIHNvbWV3aGVyZSB0aGF0IEkmIzM5O20gb3Zlcmxvb2tpbmc/IEkgbmVlZCB0byBjaGVjayB0aG9zZSBxdWlja2x5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdjg4ZTZ4eHhfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzUyMj1NT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtdjg4ZTZ4eHhfb2ZfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyMy1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1MjQ6c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdjg4ZTZ4eHhfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyNS1cdC5wcm9iZVx0PSBtdjg4ZTZ4eHhfcHJvYmUsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzNC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1MzU6bWRpb19tb2R1bGVfZHJpdmVyKG12ODhlNnh4eF9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzNi1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTg0MTEKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiAyMzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBhIFBvdGVudGlhbCBTeXprYWxsZXIgRXhwbG9pdCBQYXRoKioKCk9rYXksIHNvIEkmIzM5O20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaG93IHN5emthbGxlciBtaWdodCBiZSB0cmlnZ2VyaW5nIHRoaXMgaXNzdWUuIE15IGluaXRpYWwgdGhvdWdodCBpcywgY291bGQgaXQgYmUgdXNpbmcgYGRzYV9sb29wYD8gVGhhdCYjMzk7cyBhIG1vY2t1cCBkcml2ZXIsIHJpZ2h0PyBCdXQgaXQgZG9lc24mIzM5O3QgZXZlbiB0b3VjaCBgbXY4OGU2eHh4YC4gSG1tLCBtYXliZSBpdCYjMzk7cyBjcmVhdGluZyBhIHZpcnR1YWwgSTJDIG9yIE1ESU8gYnVzIHNvbWVob3c/IElzIGl0IGluc3RhbnRpYXRpbmcgYSBuZXcgZGV2aWNlIHRoYXQgd2F5PyBIb2xkIG9uLCBJIGRvbiYjMzk7dCByZWNhbGwgc2VlaW5nIGEgYG5ld19kZXZpY2VgIGNhbGwgZm9yIE1ESU8uIFRoYXQgc2VlbXMgdW5saWtlbHkuCgpDb3VsZCB0aGVyZSBiZSBhIHdheSB0byBjcmVhdGUgYW4gTURJTyBkZXZpY2UgdGhyb3VnaCBuZXRsaW5rPyBJIHNob3VsZCBwcm9iYWJseSBjaGVjayB0aGUgYG5ldC9kc2EvYCBhbmQgYGRyaXZlcnMvbmV0L21kaW8vYCBkaXJlY3Rvcmllcy4gTm8sIE1ESU8gZGV2aWNlcyBhcmUgdHlwaWNhbGx5IGJyb3VnaHQgdXAgdmlhIGRldmljZSB0cmVlLCBBQ1BJLCBvciBib2FyZCBmaWxlcy4KCldhaXQsIGlzbiYjMzk7dCB0aGVyZSBzb21ldGhpbmcgYWJvdXQgc3l6a2FsbGVyIGJlaW5nIGFibGUgdG8gaW5qZWN0IGRldmljZSB0cmVlIG92ZXJsYXlzPyBCaW5nbyEgSSB0aGluayB0aGF0JiMzOTtzIGl0ISBTeXprYWxsZXIgaGFzIHRoZSBhYmlsaXR5IHRvIGxvYWQgZGV2aWNlIHRyZWUgb3ZlcmxheXMsIHByb2JhYmx5IHRocm91Z2ggYHN5el9tb3VudF9pbWFnZWAgb3Igc29tZXRoaW5nIHNpbWlsYXIsIG9yIG1heWJlIHZpYSBgY29uZmlnZnNgPyBMZXQmIzM5O3Mgc2VlLi4uIFllcCwgdGhhdCYjMzk7cyBpdCEgYENPTkZJR19PRl9PVkVSTEFZYCBhbmQgYGNvbmZpZ2ZzYCBjb21iaW5lZCBjYW4gZGVmaW5pdGVseSBiZSB1c2VkIHRvIGxvYWQgZGV2aWNlIHRyZWUgb3ZlcmxheXMhCgpBbHJpZ2h0LCBuZXh0IHN0ZXA6IGxldCYjMzk7cyB2ZXJpZnkgdGhhdCBgY29uZmlnZnNgIGJhc2VkIGRldmljZSB0cmVlIG92ZXJsYXlzIGFyZSBpbmRlZWQgc3VwcG9ydGVkLiBUaGF0IHNlZW1zIGxpa2UgdGhlIG1vc3QgcHJvbWlzaW5nIGF2ZW51ZSB0byBleHBsb3JlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2R0X292ZXJsYXkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5MDAyCgkJCQkJCQlvdXRwdXQ6IDI3CgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhlIHRob3VnaHQgcHJvY2VzcyB1bmZvbGRzOgoKKipBIFJlYWxpemF0aW9uIEFib3V0IE92ZXJsYXkgRHJpdmVycyoqCgpIbW0sIHdhaXQgYSBzZWNvbmQuLi4gYGRyaXZlcnMvb2Yvb3ZlcmxheS5jYC4uLiB0aGF0IGFjdHVhbGx5IGV4aXN0cy4gSSBjb21wbGV0ZWx5IHNwYWNlZCBvbiB0aGF0LiBJJiMzOTt2ZSBiZWVuIHRoaW5raW5nIGFib3V0IHRoaXMgcHJvYmxlbSBpbiB0ZXJtcyBvZiBzb21lIG5ldywgY3VzdG9tIHNvbHV0aW9uLCBvciBtYXliZSBhbiBhZGFwdGF0aW9uIG9mIGFub3RoZXIgZHJpdmVyLCBidXQgKnRoYXQqIGZpbGUuLi4gdGhhdCBjaGFuZ2VzIHRoaW5ncy4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBzaGlmdCBpbiBwZXJzcGVjdGl2ZS4gVGhhdCBtZWFucyB0aGUgZnJhbWV3b3JrIGZvciBoYW5kbGluZyBkZXZpY2UgdHJlZSBvdmVybGF5cyBpcyBhbHJlYWR5IHRoZXJlLCBiYWtlZCBpbnRvIHRoZSBrZXJuZWwgaW4gYSBkZWRpY2F0ZWQgbG9jYXRpb24hIFRoaXMgc2lnbmlmaWNhbnRseSBpbXBhY3RzIG15IGluaXRpYWwgZGVzaWduIGNvbnNpZGVyYXRpb25zIGFuZCBub3cgb3BlbnMgdXAgYSBkaWZmZXJlbnQgc2V0IG9mIHBvc3NpYmlsaXRpZXMgZm9yIHRoaXMgdGFzaywgSSBuZWVkIHRvIGdvIGxvb2sgaW50byB0aGF0Li4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O29mX292ZXJsYXkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL29mLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYz0yNT1FWFBPUlRfU1lNQk9MX0dQTChvZl9yb290X2t1bml0X3NraXApO1xuLS1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTI4LVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6Mjk6c3RhdGljIHZvaWQgb2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXRfZXhpdCh2b2lkICpvdmNzX2lkKVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtMzAte1xuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6MzE6XHRvZl9vdmVybGF5X3JlbW92ZShvdmNzX2lkKTtcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTMyLX1cbi0tXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0zNC0vKipcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjM1OiAqIG9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0KCkgLSBUZXN0IG1hbmFnZWQgb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtMzYtICogQHRlc3Q6IHRlc3QgY29udGV4dFxuLS1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQwLSAqXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzo0MTogKiBKdXN0IGxpa2Ugb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSwgZXhjZXB0IHRoZSBvdmVybGF5IGlzIG1hbmFnZWQgYnkgdGhlIHRlc3RcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjQyOiAqIGNhc2UgYW5kIGlzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZCB3aXRoIG9mX292ZXJsYXlfcmVtb3ZlKCkgYWZ0ZXIgdGhlIHRlc3RcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQzLSAqIGNhc2UgY29uY2x1ZGVzLlxuLS1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQ2LSAqL1xuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6NDc6aW50IG9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0KHN0cnVjdCBrdW5pdCAqdGVzdCwgdm9pZCAqb3ZlcmxheV9mZHQsXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy00OC1cdFx0XHQgICAgICAgdTMyIG92ZXJsYXlfZmR0X3NpemUsIGludCAqb3Zjc19pZClcbi0tXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy01OC1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjU5Olx0cmV0ID0gb2Zfb3ZlcmxheV9mZHRfYXBwbHkob3ZlcmxheV9mZHQsIG92ZXJsYXlfZmR0X3NpemUsXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy02MC1cdFx0XHRcdCAgIG92Y3NfaWQsIE5VTEwpO1xuLS1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTY1LVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6NjY6XHRyZXR1cm4ga3VuaXRfYWRkX2FjdGlvbl9vcl9yZXNldCh0ZXN0LCBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdF9leGl0LFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNjctXHRcdFx0XHRcdCBjb3B5X2lkKTtcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTY4LX1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjY5OkVYUE9SVF9TWU1CT0xfR1BMKG9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0KTtcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTcwLVxuLS1cbmRyaXZlcnMvb2Yvb2ZfcHJpdmF0ZS5oPTEwMD12b2lkIF9fb2ZfcGhhbmRsZV9jYWNoZV9pbnZfZW50cnkocGhhbmRsZSBoYW5kbGUpO1xuLS1cbmRyaXZlcnMvb2Yvb2ZfcHJpdmF0ZS5oLTEwMi0jaWYgZGVmaW5lZChDT05GSUdfT0ZfT1ZFUkxBWSlcbmRyaXZlcnMvb2Yvb2ZfcHJpdmF0ZS5oOjEwMzp2b2lkIG9mX292ZXJsYXlfbXV0ZXhfbG9jayh2b2lkKTtcbmRyaXZlcnMvb2Yvb2ZfcHJpdmF0ZS5oOjEwNDp2b2lkIG9mX292ZXJsYXlfbXV0ZXhfdW5sb2NrKHZvaWQpO1xuZHJpdmVycy9vZi9vZl9wcml2YXRlLmgtMTA1LSNlbHNlXG5kcml2ZXJzL29mL29mX3ByaXZhdGUuaDoxMDY6c3RhdGljIGlubGluZSB2b2lkIG9mX292ZXJsYXlfbXV0ZXhfbG9jayh2b2lkKSB7fTtcbmRyaXZlcnMvb2Yvb2ZfcHJpdmF0ZS5oOjEwNzpzdGF0aWMgaW5saW5lIHZvaWQgb2Zfb3ZlcmxheV9tdXRleF91bmxvY2sodm9pZCkge307XG5kcml2ZXJzL29mL29mX3ByaXZhdGUuaC0xMDgtI2VuZGlmXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmM9Njk9c3RydWN0IG92ZXJsYXlfY2hhbmdlc2V0IHtcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy03NC1cdHN0cnVjdCBkZXZpY2Vfbm9kZSAqb3ZlcmxheV9yb290O1xuZHJpdmVycy9vZi9vdmVybGF5LmM6NzU6XHRlbnVtIG9mX292ZXJsYXlfbm90aWZ5X2FjdGlvbiBub3RpZnlfc3RhdGU7XG5kcml2ZXJzL29mL292ZXJsYXkuYy03Ni1cdGludCBjb3VudDtcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYz0xMDQ9c3RhdGljIGludCBidWlsZF9jaGFuZ2VzZXRfbmV4dF9sZXZlbChzdHJ1Y3Qgb3ZlcmxheV9jaGFuZ2VzZXQgKm92Y3MsXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA4LSAqIG9mX3Jlc29sdmVfcGhhbmRsZXMoKSBmaW5kcyB0aGUgbGFyZ2VzdCBwaGFuZGxlIGluIHRoZSBsaXZlIHRyZWUuXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDk6ICogb2Zfb3ZlcmxheV9hcHBseSgpIG1heSBhZGQgYSBsYXJnZXIgcGhhbmRsZSB0byB0aGUgbGl2ZSB0cmVlLlxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTEwLSAqIERvIG5vdCBhbGxvdyByYWNlIGJldHdlZW4gdHdvIG92ZXJsYXlzIGJlaW5nIGFwcGxpZWQgc2ltdWx0YW5lb3VzbHk6XG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMTE6ICogICAgbXV0ZXhfbG9jayhcdTAwMjZvZl9vdmVybGF5X3BoYW5kbGVfbXV0ZXgpXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMTItICogICAgb2ZfcmVzb2x2ZV9waGFuZGxlcygpXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMTM6ICogICAgb2Zfb3ZlcmxheV9hcHBseSgpXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMTQ6ICogICAgbXV0ZXhfdW5sb2NrKFx1MDAyNm9mX292ZXJsYXlfcGhhbmRsZV9tdXRleClcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExNS0gKi9cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjExNjpzdGF0aWMgREVGSU5FX01VVEVYKG9mX292ZXJsYXlfcGhhbmRsZV9tdXRleCk7XG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMTctXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMTg6dm9pZCBvZl9vdmVybGF5X211dGV4X2xvY2sodm9pZClcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExOS17XG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMjA6XHRtdXRleF9sb2NrKFx1MDAyNm9mX292ZXJsYXlfcGhhbmRsZV9tdXRleCk7XG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjEtfVxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTIyLVxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTIzOnZvaWQgb2Zfb3ZlcmxheV9tdXRleF91bmxvY2sodm9pZClcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyNC17XG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMjU6XHRtdXRleF91bmxvY2soXHUwMDI2b2Zfb3ZlcmxheV9waGFuZGxlX211dGV4KTtcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyNi19XG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmM9MTMxPXN0YXRpYyBCTE9DS0lOR19OT1RJRklFUl9IRUFEKG92ZXJsYXlfbm90aWZ5X2NoYWluKTtcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMzMtLyoqXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMzQ6ICogb2Zfb3ZlcmxheV9ub3RpZmllcl9yZWdpc3RlcigpIC0gUmVnaXN0ZXIgbm90aWZpZXIgZm9yIG92ZXJsYXkgb3BlcmF0aW9uc1xuZHJpdmVycy9vZi9vdmVybGF5LmMtMTM1LSAqIEBuYjpcdFx0Tm90aWZpZXIgYmxvY2sgdG8gcmVnaXN0ZXJcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xNDQtICovXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxNDU6aW50IG9mX292ZXJsYXlfbm90aWZpZXJfcmVnaXN0ZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYilcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE0Ni17XG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTQ4LX1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjE0OTpFWFBPUlRfU1lNQk9MX0dQTChvZl9vdmVybGF5X25vdGlmaWVyX3JlZ2lzdGVyKTtcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE1MC1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE1MS0vKipcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjE1MjogKiBvZl9vdmVybGF5X25vdGlmaWVyX3VucmVnaXN0ZXIoKSAtIFVucmVnaXN0ZXIgbm90aWZpZXIgZm9yIG92ZXJsYXkgb3BlcmF0aW9uc1xuZHJpdmVycy9vZi9vdmVybGF5LmMtMTUzLSAqIEBuYjpcdFx0Tm90aWZpZXIgYmxvY2sgdG8gdW5yZWdpc3RlclxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTU0LSAqL1xuZHJpdmVycy9vZi9vdmVybGF5LmM6MTU1OmludCBvZl9vdmVybGF5X25vdGlmaWVyX3VucmVnaXN0ZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYilcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE1Ni17XG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTU4LX1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjE1OTpFWFBPUlRfU1lNQk9MX0dQTChvZl9vdmVybGF5X25vdGlmaWVyX3VucmVnaXN0ZXIpO1xuZHJpdmVycy9vZi9vdmVybGF5LmMtMTYwLVxuZHJpdmVycy9vZi9vdmVybGF5LmM9MTYxPXN0YXRpYyBpbnQgb3ZlcmxheV9ub3RpZnkoc3RydWN0IG92ZXJsYXlfY2hhbmdlc2V0ICpvdmNzLFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTYyOlx0XHRlbnVtIG9mX292ZXJsYXlfbm90aWZ5X2FjdGlvbiBhY3Rpb24pXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xNjMte1xuZHJpdmVycy9vZi9vdmVybGF5LmM6MTY0Olx0c3RydWN0IG9mX292ZXJsYXlfbm90aWZ5X2RhdGEgbmQ7XG5kcml2ZXJzL29mL292ZXJsYXkuYy0xNjUtXHRpbnQgaSwgcmV0O1xuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE3OS1cdFx0XHRwcl9lcnIoXCYjMzQ7b3ZlcmxheSBjaGFuZ2VzZXQgJXMgbm90aWZpZXIgZXJyb3IgJWQsIHRhcmdldDogJXBPRlxcblwmIzM0OyxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjE4MDpcdFx0XHQgICAgICAgb2Zfb3ZlcmxheV9hY3Rpb25fbmFtZShhY3Rpb24pLCByZXQsIG5kLnRhcmdldCk7XG5kcml2ZXJzL29mL292ZXJsYXkuYy0xODEtXHRcdFx0cmV0dXJuIHJldDtcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYz04NTk9c3RhdGljIHZvaWQgZnJlZV9vdmVybGF5X2NoYW5nZXNldChzdHJ1Y3Qgb3ZlcmxheV9jaGFuZ2VzZXQgKm92Y3MpXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtODk5LSAqXG5kcml2ZXJzL29mL292ZXJsYXkuYzo5MDA6ICogb2Zfb3ZlcmxheV9hcHBseSgpIC0gQ3JlYXRlIGFuZCBhcHBseSBhbiBvdmVybGF5IGNoYW5nZXNldFxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTAxLSAqIEBvdmNzOlx0b3ZlcmxheSBjaGFuZ2VzZXRcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy05MjItICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIG9yIGEgbmVnYXRpdmUgZXJyb3IgbnVtYmVyLiAgT24gZXJyb3IgcmV0dXJuLFxuZHJpdmVycy9vZi9vdmVybGF5LmM6OTIzOiAqIHRoZSBjYWxsZXIgb2Ygb2Zfb3ZlcmxheV9hcHBseSgpIG11c3QgY2FsbCBmcmVlX292ZXJsYXlfY2hhbmdlc2V0KCkuXG5kcml2ZXJzL29mL292ZXJsYXkuYy05MjQtICovXG5kcml2ZXJzL29mL292ZXJsYXkuYy05MjUtXG5kcml2ZXJzL29mL292ZXJsYXkuYzo5MjY6c3RhdGljIGludCBvZl9vdmVybGF5X2FwcGx5KHN0cnVjdCBvdmVybGF5X2NoYW5nZXNldCAqb3ZjcyxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTkyNy1cdFx0XHQgICAgY29uc3Qgc3RydWN0IGRldmljZV9ub2RlICpiYXNlKVxuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk4MC0vKipcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjk4MTogKiBvZl9vdmVybGF5X2ZkdF9hcHBseSgpIC0gQ3JlYXRlIGFuZCBhcHBseSBhbiBvdmVybGF5IGNoYW5nZXNldFxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTgyLSAqIEBvdmVybGF5X2ZkdDpcdHBvaW50ZXIgdG8gb3ZlcmxheSBGRFRcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy05ODgtICpcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjk4OTogKiBTZWUgb2Zfb3ZlcmxheV9hcHBseSgpIGZvciBpbXBvcnRhbnQgYmVoYXZpb3IgaW5mb3JtYXRpb24uXG5kcml2ZXJzL29mL292ZXJsYXkuYy05OTAtICpcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk5MS0gKiBSZXR1cm46IDAgb24gc3VjY2Vzcywgb3IgYSBuZWdhdGl2ZSBlcnJvciBudW1iZXIuICAqQHJldF9vdmNzX2lkIGlzIHNldCB0b1xuZHJpdmVycy9vZi9vdmVybGF5LmM6OTkyOiAqIHRoZSB2YWx1ZSBvZiBvdmVybGF5IGNoYW5nZXNldCBpZCwgd2hpY2ggY2FuIGJlIHBhc3NlZCB0byBvZl9vdmVybGF5X3JlbW92ZSgpXG5kcml2ZXJzL29mL292ZXJsYXkuYy05OTMtICogdG8gcmVtb3ZlIHRoZSBvdmVybGF5LlxuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk5Ni0gKiBsaWtlbHkgaWYgYW4gT0ZfT1ZFUkxBWV9QT1NUX0FQUExZIG5vdGlmaWVyIHJldHVybnMgYW4gZXJyb3IuICBJbiB0aGlzIGNhc2VcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjk5NzogKiB0aGUgY2FsbGVyIHNob3VsZCBjYWxsIG9mX292ZXJsYXlfcmVtb3ZlKCkgd2l0aCB0aGUgdmFsdWUgaW4gKkByZXRfb3Zjc19pZC5cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk5OC0gKi9cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk5OS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEwMDA6aW50IG9mX292ZXJsYXlfZmR0X2FwcGx5KGNvbnN0IHZvaWQgKm92ZXJsYXlfZmR0LCB1MzIgb3ZlcmxheV9mZHRfc2l6ZSxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwMDEtXHRcdFx0IGludCAqcmV0X292Y3NfaWQsIGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqYmFzZSlcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDMwLVxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTAzMTpcdG9mX292ZXJsYXlfbXV0ZXhfbG9jaygpO1xuZHJpdmVycy9vZi9vdmVybGF5LmMtMTAzMi1cdG11dGV4X2xvY2soXHUwMDI2b2ZfbXV0ZXgpO1xuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwNzEtXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDcyOlx0cmV0ID0gb2Zfb3ZlcmxheV9hcHBseShvdmNzLCBiYXNlKTtcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwNzMtXHQvKlxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTA3NDpcdCAqIElmIG9mX292ZXJsYXlfYXBwbHkoKSBlcnJvciwgY2FsbGluZyBmcmVlX292ZXJsYXlfY2hhbmdlc2V0KCkgbWF5XG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDc1LVx0ICogcmVzdWx0IGluIGEgbWVtb3J5IGxlYWsgaWYgdGhlIGFwcGx5IHBhcnRseSBzdWNjZWVkZWQsIHNvIGRvIE5PVFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTA3NjpcdCAqIGdvdG8gZXJyX2ZyZWVfb3Zjcy4gIEluc3RlYWQsIHRoZSBjYWxsZXIgb2Ygb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKVxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTA3NzpcdCAqIGNhbiBjYWxsIG9mX292ZXJsYXlfcmVtb3ZlKCk7XG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDc4LVx0ICovXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA4Ni1cdG11dGV4X3VubG9jayhcdTAwMjZvZl9tdXRleCk7XG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDg3Olx0b2Zfb3ZlcmxheV9tdXRleF91bmxvY2soKTtcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwODgtXHRyZXR1cm4gcmV0O1xuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA4OS19XG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDkwOkVYUE9SVF9TWU1CT0xfR1BMKG9mX292ZXJsYXlfZmR0X2FwcGx5KTtcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwOTEtXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmM9MTE1NT1zdGF0aWMgaW50IG92ZXJsYXlfcmVtb3ZhbF9pc19vayhzdHJ1Y3Qgb3ZlcmxheV9jaGFuZ2VzZXQgKnJlbW92ZV9vdmNzKVxuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExNjktLyoqXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMTcwOiAqIG9mX292ZXJsYXlfcmVtb3ZlKCkgLSBSZXZlcnQgYW5kIGZyZWUgYW4gb3ZlcmxheSBjaGFuZ2VzZXRcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExNzEtICogQG92Y3NfaWQ6XHRQb2ludGVyIHRvIG92ZXJsYXkgY2hhbmdlc2V0IGlkXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTE3My0gKiBSZW1vdmVzIGFuIG92ZXJsYXkgaWYgaXQgaXMgcGVybWlzc2libGUuICBAb3Zjc19pZCB3YXMgcHJldmlvdXNseSByZXR1cm5lZFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTE3NDogKiBieSBvZl9vdmVybGF5X2ZkdF9hcHBseSgpLlxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTE3NS0gKlxuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyMDItICovXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMjAzOmludCBvZl9vdmVybGF5X3JlbW92ZShpbnQgKm92Y3NfaWQpXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjA0LXtcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjY1LVx0ICogb3ZlcmxheSByZWxhdGVkIG1lbW9yeS4gIFRoaXMgaXMgYSBtZW1vcnkgbGVhayB1bmxlc3MgYSBzdWJzZXF1ZW50XG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMjY2Olx0ICogb2Zfb3ZlcmxheV9yZW1vdmUoKSBvZiB0aGlzIG92ZXJsYXkgaXMgc3VjY2Vzc2Z1bC5cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyNjctXHQgKi9cbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjc0LX1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEyNzU6RVhQT1JUX1NZTUJPTF9HUEwob2Zfb3ZlcmxheV9yZW1vdmUpO1xuZHJpdmVycy9vZi9vdmVybGF5LmMtMTI3Ni1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyNzctLyoqXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMjc4OiAqIG9mX292ZXJsYXlfcmVtb3ZlX2FsbCgpIC0gUmV2ZXJ0cyBhbmQgZnJlZXMgYWxsIG92ZXJsYXkgY2hhbmdlc2V0c1xuZHJpdmVycy9vZi9vdmVybGF5LmMtMTI3OS0gKlxuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyODMtICovXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMjg0OmludCBvZl9vdmVybGF5X3JlbW92ZV9hbGwodm9pZClcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyODUte1xuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyOTAtXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmVfcmV2ZXJzZShvdmNzLCBvdmNzX24sIFx1MDAyNm92Y3NfbGlzdCwgb3Zjc19saXN0KSB7XG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMjkxOlx0XHRyZXQgPSBvZl9vdmVybGF5X3JlbW92ZShcdTAwMjZvdmNzLVx1MDAzZWlkKTtcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyOTItXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTI5Ny19XG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMjk4OkVYUE9SVF9TWU1CT0xfR1BMKG9mX292ZXJsYXlfcmVtb3ZlX2FsbCk7XG4tLVxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYz0xNz1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGt1bml0X2NvbXBhdGlibGUgPSBcJiMzNDt0ZXN0LGVtcHR5XCYjMzQ7O1xuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy0xOC1cbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmM6MTk6LyogVGVzdCB0aGF0IG9mX292ZXJsYXlfYXBwbHlfa3VuaXQoKSBhZGRzIGEgbm9kZSB0byB0aGUgbGl2ZSB0cmVlICovXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjIwOnN0YXRpYyB2b2lkIG9mX292ZXJsYXlfYXBwbHlfa3VuaXRfYXBwbHkoc3RydWN0IGt1bml0ICp0ZXN0KVxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy0yMS17XG4tLVxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy0yNC1cdEtVTklUX0FTU0VSVF9FUSh0ZXN0LCAwLFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzoyNTpcdFx0XHRvZl9vdmVybGF5X2FwcGx5X2t1bml0KHRlc3QsIGt1bml0X292ZXJsYXlfdGVzdCkpO1xuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy0yNi1cbi0tXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTMyLS8qXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjMzOiAqIFRlc3QgdGhhdCBvZl9vdmVybGF5X2FwcGx5X2t1bml0KCkgY3JlYXRlcyBwbGF0Zm9ybSBkZXZpY2VzIHdpdGggdGhlXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTM0LSAqIGV4cGVjdGVkIGRldmljZV9ub2RlXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTM1LSAqL1xuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzozNjpzdGF0aWMgdm9pZCBvZl9vdmVybGF5X2FwcGx5X2t1bml0X3BsYXRmb3JtX2RldmljZShzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTM3LXtcbi0tXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTQxLVx0S1VOSVRfQVNTRVJUX0VRKHRlc3QsIDAsXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjQyOlx0XHRcdG9mX292ZXJsYXlfYXBwbHlfa3VuaXQodGVzdCwga3VuaXRfb3ZlcmxheV90ZXN0KSk7XG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTQzLVxuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtNTMtXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjU0OnN0YXRpYyBpbnQgb2Zfb3ZlcmxheV9idXNfbWF0Y2hfY29tcGF0aWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEpXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTU1LXtcbi0tXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTU4LVxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzo1OTovKiBUZXN0IHRoYXQgb2Zfb3ZlcmxheV9hcHBseV9rdW5pdCgpIGNsZWFucyB1cCBhZnRlciB0aGUgdGVzdCBpcyBmaW5pc2hlZCAqL1xuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzo2MDpzdGF0aWMgdm9pZCBvZl9vdmVybGF5X2FwcGx5X2t1bml0X2NsZWFudXAoc3RydWN0IGt1bml0ICp0ZXN0KVxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy02MS17XG4tLVxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy03Ni1cdEtVTklUX0FTU0VSVF9FUSh0ZXN0LCAwLFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzo3NzpcdFx0XHRvZl9vdmVybGF5X2FwcGx5X2t1bml0KFx1MDAyNmZha2UsIGt1bml0X292ZXJsYXlfdGVzdCkpO1xuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy03OC1cbi0tXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTk1LVx0ZGV2ID0gYnVzX2ZpbmRfZGV2aWNlKFx1MDAyNnBsYXRmb3JtX2J1c190eXBlLCBOVUxMLCBrdW5pdF9jb21wYXRpYmxlLFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzo5NjpcdFx0XHQgICAgICBvZl9vdmVybGF5X2J1c19tYXRjaF9jb21wYXRpYmxlKTtcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtOTctXHRLVU5JVF9FWFBFQ1RfUFRSX0VRKHRlc3QsIE5VTEwsIGRldik7XG4tLVxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy0xMDAtXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjEwMTpzdGF0aWMgc3RydWN0IGt1bml0X2Nhc2Ugb2Zfb3ZlcmxheV9hcHBseV9rdW5pdF90ZXN0X2Nhc2VzW10gPSB7XG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjEwMjpcdEtVTklUX0NBU0Uob2Zfb3ZlcmxheV9hcHBseV9rdW5pdF9hcHBseSksXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjEwMzpcdEtVTklUX0NBU0Uob2Zfb3ZlcmxheV9hcHBseV9rdW5pdF9wbGF0Zm9ybV9kZXZpY2UpLFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzoxMDQ6XHRLVU5JVF9DQVNFKG9mX292ZXJsYXlfYXBwbHlfa3VuaXRfY2xlYW51cCksXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTEwNS1cdHt9XG4tLVxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy0xMTAtICovXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjExMTpzdGF0aWMgc3RydWN0IGt1bml0X3N1aXRlIG9mX292ZXJsYXlfYXBwbHlfa3VuaXRfc3VpdGUgPSB7XG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjExMjpcdC5uYW1lID0gXCYjMzQ7b2Zfb3ZlcmxheV9hcHBseV9rdW5pdFwmIzM0OyxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmM6MTEzOlx0LnRlc3RfY2FzZXMgPSBvZl9vdmVybGF5X2FwcGx5X2t1bml0X3Rlc3RfY2FzZXMsXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTExNC19O1xuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmM9MTE2PWt1bml0X3Rlc3Rfc3VpdGVzKFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzoxMTc6XHRcdTAwMjZvZl9vdmVybGF5X2FwcGx5X2t1bml0X3N1aXRlLFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy0xMTgtKTtcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9MjEzND1zdGF0aWMgaW50IF9faW5pdCB1bml0dGVzdF9kYXRhX2FkZCh2b2lkKVxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0yMTczLVx0ICovXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MjE3NDpcdG9mX292ZXJsYXlfbXV0ZXhfbG9jaygpO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTIxNzUtXG4tLVxuZHJpdmVycy9vZi91bml0dGVzdC5jLTIyMDgtdW5sb2NrOlxuZHJpdmVycy9vZi91bml0dGVzdC5jOjIyMDk6XHRvZl9vdmVybGF5X211dGV4X3VubG9jaygpO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTIyMTAtXG4tLVxuZHJpdmVycy9vZi91bml0dGVzdC5jPTI2MTk9c3RhdGljIHZvaWQgb2ZfdW5pdHRlc3RfcmVtb3ZlX3RyYWNrZWRfb3ZlcmxheXModm9pZClcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMjYyOC1cdFx0c2F2ZV9vdmNzX2lkID0gb3Zjc19pZDtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzoyNjI5Olx0XHRyZXQgPSBvZl9vdmVybGF5X3JlbW92ZShcdTAwMjZvdmNzX2lkKTtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0yNjMwLVx0XHRpZiAocmV0ID09IC1FTk9ERVYpIHtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0yNjMxLVx0XHRcdG92ZXJsYXlfbmFtZSA9IG92ZXJsYXlfbmFtZV9mcm9tX25yKG92ZXJsYXlfbnIpO1xuZHJpdmVycy9vZi91bml0dGVzdC5jOjI2MzI6XHRcdFx0cHJfd2FybihcJiMzNDslczogb2Zfb3ZlcmxheV9yZW1vdmUoKSBmb3Igb3ZlcmxheSBcXFwmIzM0OyVzXFxcJiMzNDsgZmFpbGVkLCByZXQgPSAlZFxcblwmIzM0OyxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0yNjMzLVx0XHRcdFx0X19mdW5jX18sIG92ZXJsYXlfbmFtZSwgcmV0KTtcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9MjcwOT1zdGF0aWMgaW50IF9faW5pdCBvZl91bml0dGVzdF9hcHBseV9yZXZlcnRfb3ZlcmxheV9jaGVjayhpbnQgb3ZlcmxheV9ucixcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMjcyMS1cdHNhdmVfb3Zjc19pZCA9IG92Y3NfaWQ7XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MjcyMjpcdHJldCA9IG9mX292ZXJsYXlfcmVtb3ZlKFx1MDAyNm92Y3NfaWQpO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTI3MjMtXHRpZiAocmV0ICE9IDApIHtcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9Mjg1ND1zdGF0aWMgdm9pZCBfX2luaXQgb2ZfdW5pdHRlc3Rfb3ZlcmxheV82KHZvaWQpXG4tLVxuZHJpdmVycy9vZi91bml0dGVzdC5jLTI5MjctXHRcdG92Y3NfaWQgPSBzYXZlX292Y3NfaWRbaV07XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MjkyODpcdFx0aWYgKG9mX292ZXJsYXlfcmVtb3ZlKFx1MDAyNm92Y3NfaWQpKSB7XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMjkyOS1cdFx0XHR1bml0dGVzdCgwLCBcJiMzNDslcyBmYWlsZWQgZGVzdHJveSBAXFxcJiMzNDslc1xcXCYjMzQ7XFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz0yOTU2PXN0YXRpYyB2b2lkIF9faW5pdCBvZl91bml0dGVzdF9vdmVybGF5Xzgodm9pZClcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzAxMC1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzozMDExOlx0cmV0ID0gb2Zfb3ZlcmxheV9yZW1vdmUoXHUwMDI2b3Zjc19pZCk7XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzAxMi1cbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzAzMy1cdFx0b3Zjc19pZCA9IHNhdmVfb3Zjc19pZFtpXTtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzozMDM0Olx0XHRpZiAob2Zfb3ZlcmxheV9yZW1vdmUoXHUwMDI2b3Zjc19pZCkpIHtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zMDM1LVx0XHRcdHVuaXR0ZXN0KDAsIFwmIzM0OyVzIG5vdCBkZXN0cm95ZWQgQFxcXCYjMzQ7JXNcXFwmIzM0O1xcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9MzQwNj1zdGF0aWMgaW50IG9mX25vdGlmeShzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIGFjdGlvbixcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzQwOC17XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MzQwOTpcdHN0cnVjdCBvZl9vdmVybGF5X25vdGlmeV9kYXRhICpuZCA9IGFyZztcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNDEwLVx0c3RydWN0IGRldmljZV9ub2RlICpmb3VuZDtcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9MzQ3OD1zdGF0aWMgdm9pZCBfX2luaXQgb2ZfdW5pdHRlc3Rfb3ZlcmxheV9ub3RpZnkodm9pZClcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzQ4Mi1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzozNDgzOlx0cmV0ID0gb2Zfb3ZlcmxheV9ub3RpZmllcl9yZWdpc3RlcihcdTAwMjZvZl9uYik7XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzQ4NC1cdHVuaXR0ZXN0KCFyZXQsXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MzQ4NTpcdFx0IFwmIzM0O29mX292ZXJsYXlfbm90aWZpZXJfcmVnaXN0ZXIoKSBmYWlsZWQsIHJldCA9ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTM0ODYtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTMyLVxuZHJpdmVycy9vZi91bml0dGVzdC5jOjM1MzM6XHRcdHJldCA9IG9mX292ZXJsYXlfcmVtb3ZlKFx1MDAyNm92Y3NfaWQpO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1MzQtXHRcdEVYUEVDVF9FTkQoS0VSTl9JTkZPLCBcJiMzNDtPRjogb3ZlcmxheTogb3ZlcmxheSBjaGFuZ2VzZXQgcHJlLXJlbW92ZSBub3RpZmllciBlcnJvciAtMTgsIHRhcmdldDogL3Rlc3RjYXNlLWRhdGEvb3ZlcmxheS1ub2RlL3Rlc3QtYnVzXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzUzOC1cdFx0XHQgKi9cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzozNTM5Olx0XHRcdHVuaXR0ZXN0KDEsIFwmIzM0O292ZXJsYXlfMTggb2Zfb3ZlcmxheV9yZW1vdmUoKSBpbmplY3RlZCBlcnJvciBmb3IgT0ZfT1ZFUkxBWV9QUkVfUkVNT1ZFXFxuXCYjMzQ7KTtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTQwLVx0XHR9IGVsc2Uge1xuZHJpdmVycy9vZi91bml0dGVzdC5jOjM1NDE6XHRcdFx0dW5pdHRlc3QoMCwgXCYjMzQ7b3ZlcmxheV8xOCBvZl9vdmVybGF5X3JlbW92ZSgpIGluamVjdGVkIGVycm9yIGZvciBPRl9PVkVSTEFZX1BSRV9SRU1PVkUgbm90IHJldHVybmVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTQyLVx0XHR9XG4tLVxuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1NTctXHRcdEVYUEVDVF9CRUdJTihLRVJOX0lORk8sIFwmIzM0O09GOiBvdmVybGF5OiBvdmVybGF5IGNoYW5nZXNldCBwb3N0LXJlbW92ZSBub3RpZmllciBlcnJvciAtMTksIHRhcmdldDogL3Rlc3RjYXNlLWRhdGEvb3ZlcmxheS1ub2RlL3Rlc3QtYnVzXCYjMzQ7KTtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzozNTU4Olx0XHRyZXQgPSBvZl9vdmVybGF5X3JlbW92ZShcdTAwMjZvdmNzX2lkKTtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTU5LVx0XHRFWFBFQ1RfRU5EKEtFUk5fSU5GTywgXCYjMzQ7T0Y6IG92ZXJsYXk6IG92ZXJsYXkgY2hhbmdlc2V0IHBvc3QtcmVtb3ZlIG5vdGlmaWVyIGVycm9yIC0xOSwgdGFyZ2V0OiAvdGVzdGNhc2UtZGF0YS9vdmVybGF5LW5vZGUvdGVzdC1idXNcJiMzNDspO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1NjAtXHRcdGlmIChyZXQgPT0gLUVOT0RFVilcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzozNTYxOlx0XHRcdHVuaXR0ZXN0KDEsIFwmIzM0O292ZXJsYXlfMTkgb2Zfb3ZlcmxheV9yZW1vdmUoKSBpbmplY3RlZCBlcnJvciBmb3IgT0ZfT1ZFUkxBWV9QT1NUX1JFTU9WRVxcblwmIzM0Oyk7XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzU2Mi1cdFx0ZWxzZVxuZHJpdmVycy9vZi91bml0dGVzdC5jOjM1NjM6XHRcdFx0dW5pdHRlc3QoMCwgXCYjMzQ7b3ZlcmxheV8xOSBvZl9vdmVybGF5X3JlbW92ZSgpIGluamVjdGVkIGVycm9yIGZvciBPRl9PVkVSTEFZX1BPU1RfUkVNT1ZFIG5vdCByZXR1cm5lZFxcblwmIzM0Oyk7XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzU2NC1cdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1NzYtXHRpZiAob3Zjc19pZCkge1xuZHJpdmVycy9vZi91bml0dGVzdC5jOjM1Nzc6XHRcdHJldCA9IG9mX292ZXJsYXlfcmVtb3ZlKFx1MDAyNm92Y3NfaWQpO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1NzgtXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1ODQtXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MzU4NTpcdHVuaXR0ZXN0KCFvZl9vdmVybGF5X25vdGlmaWVyX3VucmVnaXN0ZXIoXHUwMDI2b2ZfbmIpLFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjM1ODY6XHRcdCBcJiMzNDtvZl9vdmVybGF5X25vdGlmaWVyX3VucmVnaXN0ZXIoKSBmYWlsZWQsIHJldCA9ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1ODctfVxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz0zOTg3PXN0YXRpYyBpbnQgX19pbml0IG92ZXJsYXlfZGF0YV9hcHBseShjb25zdCBjaGFyICpvdmVybGF5X25hbWUsIGludCAqb3Zjc19pZClcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDAwOS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDEwOlx0cmV0ID0gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoaW5mby1cdTAwM2VkdGJvX2JlZ2luLCBzaXplLCBcdTAwMjZpbmZvLVx1MDAzZW92Y3NfaWQsXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDAxMS1cdFx0XHRcdCAgIE5VTEwpO1xuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDIwLVx0aWYgKHJldCAhPSBpbmZvLVx1MDAzZWV4cGVjdGVkX3Jlc3VsdCkge1xuZHJpdmVycy9vZi91bml0dGVzdC5jOjQwMjE6XHRcdHByX2VycihcJiMzNDtvZl9vdmVybGF5X2ZkdF9hcHBseSgpIGV4cGVjdGVkICVkLCByZXQ9JWQsICVzXFxuXCYjMzQ7LFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMjItXHRcdCAgICAgICBpbmZvLVx1MDAzZWV4cGVjdGVkX3Jlc3VsdCwgcmV0LCBvdmVybGF5X25hbWUpO1xuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDI3LVx0XHQvKiBjaGFuZ2VzZXQgbWF5IGJlIHBhcnRpYWxseSBhcHBsaWVkICovXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6NDAyODpcdFx0cmV0MiA9IG9mX292ZXJsYXlfcmVtb3ZlKFx1MDAyNmluZm8tXHUwMDNlb3Zjc19pZCk7XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDAyOS1cdFx0aWYgKHJldDIgIT0gaW5mby1cdTAwM2VleHBlY3RlZF9yZXN1bHRfcmVtb3ZlKSB7XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6NDAzMDpcdFx0XHRwcl9lcnIoXCYjMzQ7b2Zfb3ZlcmxheV9yZW1vdmUoKSBleHBlY3RlZCAlZCwgcmV0PSVkLCAlc1xcblwmIzM0OyxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDMxLVx0XHRcdCAgICAgICBpbmZvLVx1MDAzZWV4cGVjdGVkX3Jlc3VsdF9yZW1vdmUsIHJldDIsXG4tLVxuZHJpdmVycy9vZi91bml0dGVzdC5jPTQwNDg9c3RhdGljIF9faW5pdCB2b2lkIG9mX3VuaXR0ZXN0X292ZXJsYXlfaGlnaF9sZXZlbCh2b2lkKVxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDY2LVx0ICovXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6NDA2NzpcdG9mX292ZXJsYXlfbXV0ZXhfbG9jaygpO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwNjgtXHRvZl9yZXNvbHZlX3BoYW5kbGVzKG92ZXJsYXlfYmFzZV9yb290KTtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDY5Olx0b2Zfb3ZlcmxheV9tdXRleF91bmxvY2soKTtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDcwLVxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz00MzI4PXN0YXRpYyBpbnQgdGVzdGRydl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MzUwLVx0c2l6ZSA9IGluZm8tXHUwMDNlZHRib19lbmQgLSBpbmZvLVx1MDAzZWR0Ym9fYmVnaW47XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6NDM1MTpcdHJldCA9IG9mX292ZXJsYXlfZmR0X2FwcGx5KGluZm8tXHUwMDNlZHRib19iZWdpbiwgc2l6ZSwgXHUwMDI2b3Zjc19pZCwgZG4pO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTQzNTItXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz00MzYxPXN0YXRpYyB2b2lkIHRlc3RkcnZfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MzY1LVx0b2ZfcGxhdGZvcm1fZGVwb3B1bGF0ZShcdTAwMjZwZGV2LVx1MDAzZWRldik7XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6NDM2NjpcdG9mX292ZXJsYXlfcmVtb3ZlKFx1MDAyNm92Y3NfaWQpO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTQzNjctfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjQyOAoJCQkJCQkJb3V0cHV0OiAyNgoJCQkJCQkJdGhvdWdodHM6IDM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKktlcm5lbCBEZXZpY2UgVHJlZSBPdmVybGF5IEluamVjdGlvbiB2aWEgQ29uZmlnRlMgLSBQb3NzaWJpbGl0aWVzPyoqCgpIbW0sIGhvbGQgb24gYSBzZWNvbmQuIEl0IGp1c3Qgc3RydWNrIG1lOiB3YXNuJiMzOTt0IHRoZXJlIHNvbWV0aGluZyBhYm91dCBgc3l6a2FsbGVyYCBwb3RlbnRpYWxseSBsZXZlcmFnaW5nIGBjb25maWdmc2AgdG8gaW5qZWN0IGRldmljZSB0cmVlIG92ZXJsYXlzPyBUaGF0JiMzOTtzIGFuIGludGVyZXN0aW5nIGF2ZW51ZSB0byBleHBsb3JlLCBhY3R1YWxseS4gTXkgbWluZCBpcyBhbHJlYWR5IHJhY2luZyB0aHJvdWdoIHBvdGVudGlhbCBpbXBsaWNhdGlvbnMuLi4gdnVsbmVyYWJpbGl0aWVzLCBkZWJ1Z2dpbmcgYWlkcywgY2xldmVyIHRlc3RpbmcgbWV0aG9kb2xvZ2llc+KApgoKQWxyaWdodCwgdGhlIGxvZ2ljYWwgbmV4dCBzdGVwIGlzIHRvIHF1aWNrbHkgdmVyaWZ5IHRoZSBjdXJyZW50IHN0YXRlIG9mIHBsYXkuIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgYGNvbmZpZ2ZzYC1iYXNlZCBkZXZpY2UgdHJlZSBvdmVybGF5IHN1cHBvcnQgaXMgYWN0dWFsbHkgZW5hYmxlZCBhbmQgZnVuY3Rpb25hbCBpbiB0aGUgdGFyZ2V0IGtlcm5lbC4gTm8gcG9pbnQgaW4gc3Bpbm5pbmcgd2hlZWxzIGlmIHRoZSBmb3VuZGF0aW9uYWwgaW5mcmFzdHJ1Y3R1cmUgaXNuJiMzOTt0IHRoZXJlLiBUaGF0JiMzOTtzIHRoZSBiYXNlbGluZSwgdGhlIGNyaXRpY2FsIGZpcnN0IHN0ZXAuIFRpbWUgdG8gZGlnIGludG8gdGhlIGtlcm5lbCBjb25maWd1cmF0aW9uIGFuZCByZWxldmFudCBjb2RlLCBqdXN0IHRvIGJlIHN1cmUuIFRoaXMgY291bGQgb3BlbiB1cCBhIHdob2xlIG5ldyBhdHRhY2sgc3VyZmFjZSBpZiB0cnVlLCBvciBhdCBsZWFzdCBvZmZlciBzb21lIGludGVyZXN0aW5nIHRlc3RpbmcgcG9zc2liaWxpdGllcy4gTGV0JiMzOTtzIHNlZSB3aGF0IHdlJiMzOTt2ZSBnb3QuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnZnMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL29mLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2NzE0CgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipOYXZpZ2F0aW5nIHRoZSBPdmVybGF5IExhbmRzY2FwZSoqCgpBbHJpZ2h0LCBob2xkIG9uIGEgc2Vjb25kLiBJJiMzOTttIHRha2luZyBhIGxvb2sgYXQgYGRyaXZlcnMvb2Yvb3ZlcmxheS5jYCwgYW5kIEkmIzM5O20gbm90IHNlZWluZyBhbnkgY29uZmlnZnMgaW50ZWdyYXRpb24gaGVyZS4gVGhhdCYjMzk7cy4uLiB1bmV4cGVjdGVkLiBXaGVyZSYjMzk7cyB0aGUgaG9vaz8gV2hlcmUgZG9lcyB0aGUgZGV2aWNlIHRyZWUgb3ZlcmxheSBjb25maWdmcyBpbnRlcmZhY2UgYWN0dWFsbHkgbGl2ZT8gSXQmIzM5O3Mgbm90IGltbWVkaWF0ZWx5IG9idmlvdXMgaW4gdGhpcyBmaWxlLCB3aGljaCBpcyBzdHJhbmdlLiBNeSBpbml0aWFsIHRob3VnaHQgd2FzIHRoYXQgaXQgd291bGQgYmUgaGFuZGxlZCBoZXJlLCBsb2dpY2FsbHkuCgpJJiMzOTttIHByb2JhYmx5IG1pc3Npbmcgc29tZXRoaW5nLiBPa2F5LCBsZXQgbWUgcGl2b3QuIE15IG5leHQgbG9naWNhbCBndWVzcyB3b3VsZCBiZSBgZHJpdmVycy9vZi9jb25maWdmcy5jYC4gSXQgc3RhbmRzIHRvIHJlYXNvbiB0aGF0IGFueSBjb25maWdmcyByZWxhdGVkIHN0dWZmLCBlc3BlY2lhbGx5IHJlbGF0ZWQgdG8gZGV2aWNlIHRyZWUsIHdvdWxkIGJlIGxvY2F0ZWQgdGhlcmUuIFRoYXQmIzM5O3MgdGhlIHBsYWNlIHRvIHN0YXJ0LiBMZXQgbWUgY2hlY2sgaXQgb3V0Li4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnZnMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL29mLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2OTgxCgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMzcyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIFN5emthbGxlciYjMzk7cyBQb3RlbnRpYWwgZm9yIERldmljZSBUcmVlIEluamVjdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIHRoaW5raW5nIGFib3V0IGhvdyBzeXprYWxsZXIgbWlnaHQgYmUgYWJsZSB0byBpbmplY3QgYSBkZXZpY2UgdHJlZSBvdmVybGF5LCBhbmQgSSYjMzk7dmUgZ290IGEgZmV3IGxlYWRzLiBGaXJzdCwgdGhhdCBgc3l6X21vdW50X2ltYWdlYCBwc2V1ZG8tc3lzY2FsbCDigJMgaXQgY2FuIG1vdW50IGEgZmlsZXN5c3RlbSwgd2hpY2ggaXMgaW50ZXJlc3RpbmcsIGJ1dCBub3QgZGlyZWN0bHkgd2hhdCBJJiMzOTttIGFmdGVyLiBCdXQgaG9sZCBvbiwgdGhlIFVTQiBjb25uZWN0aW9uIHRocm91Z2ggYHN5el91c2JfY29ubmVjdGAgaXMgbW9yZSBwcm9taXNpbmcuIEkgcmVtZW1iZXIgdGhhdCB0aGUgYGxhbjc4eHhgIGRyaXZlciByZWdpc3RlcnMgYW4gTURJTyBidXMsIGFuZCB0aGF0JiMzOTtzIHVzdWFsbHkgZG9uZSB0aHJvdWdoIHRoZSBkZXZpY2UgdHJlZSwgaXNuJiMzOTt0IGl0PyBCdXQgYGxhbjc4eHhgIGlzIGEgKlVTQiogZGV2aWNlLCBzbyBob3cgZG9lcyBpdCBjb25uZWN0PwoKQWgsIEkgc2VlISBJZiBzeXprYWxsZXIgaXMgYWJsZSB0byBjb25uZWN0IGEgdmlydHVhbCBVU0IgZGV2aWNlIHRoYXQgYWN0cyBsaWtlIGBsYW43OHh4YCwgdGhlbiBpdCYjMzk7cyAqcG90ZW50aWFsbHkqIGFibGUgdG8gcmVnaXN0ZXIgdGhhdCBNRElPIGJ1cywgd2hpY2ggaXMgYSBrZXkgcGFydCBvZiB0aGUgcHV6emxlLiBOb3csIHRoZSBgbGFuNzh4eGAgZHJpdmVyLCBpdCB1c2VzIGBvZl9tZGlvYnVzX3JlZ2lzdGVyYCB0byBzZXQgdXAgdGhlIE1ESU8gYnVzLiBUaGF0IGZ1bmN0aW9uICpzaG91bGQqIHJlcXVpcmUgYSBkZXZpY2UgdHJlZSBub2RlLCBidXQgd2hhdCBoYXBwZW5zIGlmIHRoZSBub2RlIGlzbiYjMzk7dCB0aGVyZT8gSXQgc2VlbXMgdG8gZmFsbCBiYWNrIHRvIGBtZGlvYnVzX3JlZ2lzdGVyYC4KCkxldCYjMzk7cyBsb29rIGF0IGBsYW43OHh4X21kaW9faW5pdGAsIG9rYXksIHRoZXJlIGl0IGlzOgpgYGBjCm5vZGUgPSBvZl9nZXRfY2hpbGRfYnlfbmFtZShkZXYtJmd0O3VkZXYtJmd0O2Rldi5vZl9ub2RlLCAmIzM0O21kaW8mIzM0Oyk7CnJldCA9IG9mX21kaW9idXNfcmVnaXN0ZXIoZGV2LSZndDttZGlvYnVzLCBub2RlKTsKb2Zfbm9kZV9wdXQobm9kZSk7CmBgYApSaWdodCwgaWYgYG5vZGVgIGlzIE5VTEwsIHRoZW4gYG9mX21kaW9idXNfcmVnaXN0ZXJgIGp1c3QgY2FsbHMgYG1kaW9idXNfcmVnaXN0ZXJgLiAgQW5kIGBtZGlvYnVzX3JlZ2lzdGVyYCwgdGhhdCBvbmUgKnNjYW5zKiBmb3IgUEhZcywgcmlnaHQ/CgpCdXQgdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlci4uLiB0aGF0JiMzOTtzIGZvciB0aGUgTURJTyBkcml2ZXIsIG5vdCB0aGUgUEhZIGRyaXZlci4gIEl0IG1hdGNoZXMgdmlhIGBvZl9tYXRjaF90YWJsZWAuIElmIHRoZXJlJiMzOTtzIG5vIGRldmljZSB0cmVlIG5vZGUsIGl0IGxvb2tzIGxpa2UgaXQgKndvbiYjMzk7dCogbWF0Y2guIEkmIzM5O20gaGl0dGluZyBhIHJvYWRibG9jay4gU28sIGlzIHRoZXJlICphbnkqIG90aGVyIHdheSB0aGUgYG12ODhlNnh4eGAgZHJpdmVyIGNvdWxkIGdldCBwcm9iZWQ/IEkmIzM5O20gZ29pbmcgdG8gaGF2ZSB0byByZS1leGFtaW5lIHRoYXQgYG12ODhlNnh4eF9kcml2ZXJgIGNvZGUgYWdhaW4sIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyBhbnkgb3RoZXIgcGF0aC4gVGhlcmUgaGFzIHRvIGJlIGFub3RoZXIgd2F5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdjg4ZTZ4eHhfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzUyMj1NT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtdjg4ZTZ4eHhfb2ZfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyMy1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1MjQ6c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdjg4ZTZ4eHhfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyNS1cdC5wcm9iZVx0PSBtdjg4ZTZ4eHhfcHJvYmUsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzNC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1MzU6bWRpb19tb2R1bGVfZHJpdmVyKG12ODhlNnh4eF9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzNi1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjgxNzUKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiAxMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNRElPIERyaXZlciBhbmQgU3l6a2FsbGVyJiMzOTtzIENhcGFiaWxpdGllcyoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgdGhlIGBtZGlvX2RyaXZlcmAuLi4gcmlnaHQsIGl0IHVzZXMgYG1kaW9kcnYuZHJpdmVyLm5hbWVgLiBTbywgaWYgYSBkZXZpY2UgaXMgc29tZWhvdyBiZWluZyBjcmVhdGVkLCBtYXliZSB0aHJvdWdoIHN5c2ZzIG9yIHNvbWUgb3RoZXIgbWVjaGFuaXNtLCBhbmQgaXRzIG5hbWUgaGFwcGVucyB0byBiZSAmIzM0O212ODhlNjA4NSYjMzQ7LCBpdCAqY291bGQqIG1hdGNoIHdpdGggdGhlIGRyaXZlci4gQnV0IGhvbGQgb24sIHdlIGFscmVhZHkgY29uZmlybWVkIHRoZXJlJiMzOTtzIG5vIGBuZXdfZGV2aWNlYCBldmVudCBzcGVjaWZpY2FsbHkgZm9yIE1ESU8uIFRoYXQgZWxpbWluYXRlcyBhIGxpa2VseSBwYXRoLgoKQWhhISBOb3cgSSYjMzk7bSByZW1lbWJlcmluZyB0aGF0IHN5emthbGxlciwgYmVpbmcgdGhlIHBvd2VyZnVsIGZ1enplciBpdCBpcywgaGFzIHRoZSBjYXBhYmlsaXR5IHRvIGluamVjdCBkZXZpY2UgdHJlZSBvdmVybGF5cy4gVGhhdCYjMzk7cyBhIGtleSBwb3NzaWJpbGl0eS4gTm93LCB0aGUgcXVlc3Rpb24gaXMsIGhvdyBkb2VzIHN5emthbGxlciBoYW5kbGUgdGhhdD8gRG9lcyBpdCBoYXZlIGEgc3BlY2lmaWMgcHNldWRvLXN5c2NhbGwsIGxpa2UgYHN5el9pbml0X25ldF9zb2NrZXRgLCB0aGF0IHRvdWNoZXMgdGhlIGRldmljZSB0cmVlPyBObywgdGhhdCYjMzk7cyBub3QgcmlnaHQuIFRpbWUgdG8gZ28gYmFjayBhbmQgY2hlY2sgdGhlIHN5emthbGxlciBkb2N1bWVudGF0aW9uLCBzcGVjaWZpY2FsbHkgZm9jdXNpbmcgb24gaXRzIHBzZXVkby1zeXNjYWxscyBhbmQgdGhlaXIgcG90ZW50aWFsIGludGVyYWN0aW9ucyB3aXRoIHRoZSBkZXZpY2UgdHJlZS4gVGhhdCYjMzk7cyB3aGVyZSB0aGUgYW5zd2VyIGxpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3l6XyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODU3NAoJCQkJCQkJb3V0cHV0OiAyMwoJCQkJCQkJdGhvdWdodHM6IDEyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBTeXprYWxsZXIgU2VhcmNoIFN0cmF0ZWd5KioKCk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEkgd2FzIGFib3V0IHRvIHJlYWNoIGZvciBgZ3JlcHBlcmAgdG8gZmluZCB0aG9zZSBgc3l6a2FsbGVyYCBwc2V1ZG8tc3lzY2FsbHMsIGJ1dCB0aGF0JiMzOTtzIG5vdCBnb2luZyB0byB3b3JrLiBSaWdodCwgYmVjYXVzZSB0aGV5JiMzOTtyZSBub3QgYWN0dWFsbHkgKmluKiB0aGUga2VybmVsIHRyZWUsIGFyZSB0aGV5PyBUaGUgZG9jdW1lbnRhdGlvbiBleHBsaWNpdGx5IHNheXMsICYjMzQ7SGV5LCBkb24mIzM5O3QgdXNlIHRoaXMgZm9yIGBzeXpsYW5nYCBkZXNjcmlwdGlvbnMsIG9yIGFueXRoaW5nIHdpdGggYHN5el9gIHByZWZpeGVzLiYjMzQ7IFRoYXQgbWFrZXMgcGVyZmVjdCBzZW5zZS4gSSBrbmV3IHRoZXJlIHdhcyBzb21ldGhpbmcgdGhhdCBJIHdhcyBtaXNzaW5nLgoKUmlnaHQsIGByZWFkLXN5ei1zcGVjYCBvciBgc3l6LWdyZXBwZXJgIGFyZSB0aGUgdG9vbHMgSSBuZWVkLiBJIG5lZWQgdG8ga2VlcCB0aG9zZSBzdHJhaWdodC4gTm93LCB3aGF0IHdhcyBJIGxvb2tpbmcgZm9yIGFnYWluPyBBaCwgeWVzLCBJIHdhbnRlZCB0byBzZWUgaWYgYHN5emthbGxlcmAgaGFzIGFueSBwc2V1ZG8tc3lzY2FsbHMgZGVmaW5lZCBmb3IgTURJTyBvciBkZXZpY2UgdHJlZSBpbnRlcmFjdGlvbnMuIFRoYXQmIzM5O3MgdGhlIGJlc3Qgd2F5IHRvIGRldGVybWluZSB0aGUgZXh0ZW50IG9mIGl0cyB0ZXN0aW5nIGNvdmVyYWdlLiBMZXQmIzM5O3Mgc2VlIHdoYXQgSSBjYW4gdHVybiB1cC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3l6XyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2lvbW11L2lvbW11ZmQvaW9hcy5jPTI4Mz1pbnQgaW9tbXVmZF9pb2FzX2NvcHkoc3RydWN0IGlvbW11ZmRfdWNtZCAqdWNtZClcbi0tXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvaW9hcy5jLTI5Mi1cbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9pb2FzLmM6MjkzOlx0aW9tbXVmZF90ZXN0X3N5el9jb252X2lvdmFfaWQodWNtZCwgY21kLVx1MDAzZXNyY19pb2FzX2lkLCBcdTAwMjZjbWQtXHUwMDNlc3JjX2lvdmEsXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvaW9hcy5jLTI5NC1cdFx0XHRcdCAgICAgIFx1MDAyNmNtZC1cdTAwM2VmbGFncyk7XG4tLVxuZHJpdmVycy9pb21tdS9pb21tdWZkL2lvbW11ZmRfcHJpdmF0ZS5oPTcxMj1leHRlcm4gc2l6ZV90IGlvbW11ZmRfdGVzdF9tZW1vcnlfbGltaXQ7XG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvaW9tbXVmZF9wcml2YXRlLmg6NzEzOnZvaWQgaW9tbXVmZF90ZXN0X3N5el9jb252X2lvdmFfaWQoc3RydWN0IGlvbW11ZmRfdWNtZCAqdWNtZCxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9pb21tdWZkX3ByaXZhdGUuaC03MTQtXHRcdFx0XHQgICB1bnNpZ25lZCBpbnQgaW9hc19pZCwgdTY0ICppb3ZhLCB1MzIgKmZsYWdzKTtcbi0tXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvaW9tbXVmZF9wcml2YXRlLmg9NzE5PWludCBpb21tdWZkX3Rlc3RfZG1hX2J1Zl9pb21tdWZkX21hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2htZW50LFxuLS1cbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9pb21tdWZkX3ByaXZhdGUuaC03MjEtI2Vsc2VcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9pb21tdWZkX3ByaXZhdGUuaDo3MjI6c3RhdGljIGlubGluZSB2b2lkIGlvbW11ZmRfdGVzdF9zeXpfY29udl9pb3ZhX2lkKHN0cnVjdCBpb21tdWZkX3VjbWQgKnVjbWQsXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvaW9tbXVmZF9wcml2YXRlLmgtNzIzLVx0XHRcdFx0XHRcdCB1bnNpZ25lZCBpbnQgaW9hc19pZCxcbi0tXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYz01MT1zdGF0aWMgdm9pZCBtb2NrX2Rldl9kaXNhYmxlX2lvcGYoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb21haW4pO1xuLS1cbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTU4LSAqL1xuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmM6NTk6c3RhdGljIHVuc2lnbmVkIGxvbmcgX19pb21tdWZkX3Rlc3Rfc3l6X2NvbnZfaW92YShzdHJ1Y3QgaW9fcGFnZXRhYmxlICppb3B0LFxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtNjAtXHRcdFx0XHRcdFx0ICB1NjQgKmlvdmEpXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYy02MS17XG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYzo2MjpcdHN0cnVjdCBzeXpfbGF5b3V0IHtcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTYzLVx0XHRfX3UzMiBudGhfYXJlYTtcbi0tXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYy02NS1cdH07XG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYzo2NjpcdHN0cnVjdCBzeXpfbGF5b3V0ICpzeXogPSAodm9pZCAqKWlvdmE7XG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYy02Ny1cdHVuc2lnbmVkIGludCBudGggPSBzeXotXHUwMDNlbnRoX2FyZWE7XG4tLVxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtODMtXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYzo4NDpzdGF0aWMgdW5zaWduZWQgbG9uZyBpb21tdWZkX3Rlc3Rfc3l6X2NvbnZfaW92YShzdHJ1Y3QgaW9tbXVmZF9hY2Nlc3MgKmFjY2VzcyxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTg1LVx0XHRcdFx0XHRcdHU2NCAqaW92YSlcbi0tXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYy05My1cdH1cbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jOjk0Olx0cmV0ID0gX19pb21tdWZkX3Rlc3Rfc3l6X2NvbnZfaW92YShcdTAwMjZhY2Nlc3MtXHUwMDNlaW9hcy1cdTAwM2Vpb3B0LCBpb3ZhKTtcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTk1LVx0bXV0ZXhfdW5sb2NrKFx1MDAyNmFjY2Vzcy1cdTAwM2Vpb2FzX2xvY2spO1xuLS1cbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTk4LVxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmM6OTk6dm9pZCBpb21tdWZkX3Rlc3Rfc3l6X2NvbnZfaW92YV9pZChzdHJ1Y3QgaW9tbXVmZF91Y21kICp1Y21kLFxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtMTAwLVx0XHRcdFx0ICAgdW5zaWduZWQgaW50IGlvYXNfaWQsIHU2NCAqaW92YSwgdTMyICpmbGFncylcbi0tXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYy0xMTAtXHRcdHJldHVybjtcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jOjExMTpcdCppb3ZhID0gX19pb21tdWZkX3Rlc3Rfc3l6X2NvbnZfaW92YShcdTAwMjZpb2FzLVx1MDAzZWlvcHQsIGlvdmEpO1xuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtMTEyLVx0aW9tbXVmZF9wdXRfb2JqZWN0KHVjbWQtXHUwMDNlaWN0eCwgXHUwMDI2aW9hcy1cdTAwM2VvYmopO1xuLS1cbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jPTE1Mjk9c3RhdGljIGludCBpb21tdWZkX3Rlc3RfYWNjZXNzX3BhZ2VzKHN0cnVjdCBpb21tdWZkX3VjbWQgKnVjbWQsXG4tLVxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtMTU1Ny1cdGlmIChmbGFncyBcdTAwMjYgTU9DS19GTEFHU19BQ0NFU1NfU1laKVxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmM6MTU1ODpcdFx0aW92YSA9IGlvbW11ZmRfdGVzdF9zeXpfY29udl9pb3ZhKHN0YWNjZXNzLVx1MDAzZWFjY2VzcyxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTE1NTktXHRcdFx0XHRcdFx0ICBcdTAwMjZjbWQtXHUwMDNlYWNjZXNzX3BhZ2VzLmlvdmEpO1xuLS1cbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jPTE2MjQ9c3RhdGljIGludCBpb21tdWZkX3Rlc3RfYWNjZXNzX3J3KHN0cnVjdCBpb21tdWZkX3VjbWQgKnVjbWQsXG4tLVxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtMTY1OS1cdGlmIChmbGFncyBcdTAwMjYgTU9DS19GTEFHU19BQ0NFU1NfU1laKVxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmM6MTY2MDpcdFx0aW92YSA9IGlvbW11ZmRfdGVzdF9zeXpfY29udl9pb3ZhKHN0YWNjZXNzLVx1MDAzZWFjY2VzcyxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTE2NjEtXHRcdFx0XHRcdFx0ICBcdTAwMjZjbWQtXHUwMDNlYWNjZXNzX3J3LmlvdmEpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMDUwNAoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDU5MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJlYWNoYWJpbGl0eSBvZiBgbXY4OGU2eHh4YCBmb3IgRnV6emluZyoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGlzIHBhdGNoIGlzIHdvcnRoIGZ1enppbmcuIFRoZSBwcm9tcHQgaXMgdmVyeSBzcGVjaWZpYyBhYm91dCBleGNsdWRpbmcgY29kZSB0aGF0JiMzOTtzIG9ubHkgcmVhY2hhYmxlIHdpdGggc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUsIGFuZCB0aGF0JiMzOTtzIHRoZSBhcmVhIEkgbmVlZCB0byB1bmRlcnN0YW5kLiBGaXJzdCwgSSB3YXMgZ29pbmcgdG8gdXNlIGByZWFkLXN5ei1zcGVjYCBhbmQgYHN5ei1ncmVwcGVyYCwgYnV0IHdhaXQsIHRoZXkgYXJlbiYjMzk7dCBldmVuIGxpc3RlZCBhcyBhdmFpbGFibGUgdG9vbHMuIFJpZ2h0LCB0aGUgc3lzdGVtIHByb2JhYmx5IGFzc3VtZXMgc3l6a2FsbGVyICpjYW4qIGdldCB0byB0aGUgbmVjZXNzYXJ5IHJlc291cmNlcy4gSSYjMzk7bGwgZm9jdXMgb24gdGhlIGF2YWlsYWJsZSB0b29sczogYGdyZXBwZXJgLCBgY29kZXNlYXJjaC1kaXItaW5kZXhgLCBgcmVhZC1maWxlYCwgYW5kIGBzZXQtcmVzdWx0c2AuCgpUaGUga2V5IHF1ZXN0aW9uIGlzOiBJcyBgbXY4OGU2eHh4YCBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgdGhhdCAqcmVxdWlyZXMqIHBoeXNpY2FsIGhhcmR3YXJlPyBZZWFoLCBpdCYjMzk7cyBhIE1hcnZlbGwgc3dpdGNoIGRyaXZlciwgc28gaXQgaXMsIGJ5IGl0cyBuYXR1cmUsIHBoeXNpY2FsLiBCdXQgdGhlIHJlYWwgY3J1eCBpcyB3aGV0aGVyIGl0JiMzOTtzICplbXVsYXRhYmxlKi4gQ2FuIHN5emthbGxlciBnZXQgdG8gaXQgZXZlbiB3aXRob3V0IHRoZSByZWFsIGhhcmR3YXJlPwoKSXTigJlzIGFuIE1ESU8gZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gY2hlY2sgaWYgUUVNVSBoYXMgYW55IE1ESU8gZW11bGF0aW9uLiBJIHJlY2FsbCB0aGF0IFFFTVUgaGFzIHNvbWUgTURJTyBlbXVsYXRpb24gZm9yIHNwZWNpZmljIGJvYXJkcywgYnV0IG5vdCBhIGdlbmVyaWMgTURJTyBidXMgdGhhdCBzeXprYWxsZXIgY2FuIHVzZS4gTm8gZ2VuZXJpYyBNRElPIGJ1cyBlbXVsYXRpb24uIFdoYXQgYWJvdXQgYGRzYV9sb29wYCwgb3IgYG1hYzgwMjExX2h3c2ltYCwgYHZrbXNgLCBvciBgbmV0ZGV2c2ltYD8gTm9wZSwgbm90IGdvaW5nIHRvIHdvcmsuIFRoZXNlIGFyZSBhbGwgdXNlZnVsIGRyaXZlcnMsIGJ1dCBub3QgcmVsZXZhbnQgaGVyZS4gU28sIGlmIHN5emthbGxlciBmb3VuZCBhIGJ1ZyBpbiBgbXY4OGU2eHh4X21kaW9fcmVhZGAsICpob3cqIGRpZCBpdCBnZXQgdGhlcmU/CgpJIHRoaW5rIHRoZSBiZXN0IGNvdXJzZSBvZiBhY3Rpb24gaXMgdG8gcGVyZm9ybSBhIGtlcm5lbCBzZWFyY2ggZm9yIGBtdjg4ZTZ4eHhgIHRvIHNlZSBpZiBpdCBpcyBpbnN0YW50aWF0ZWQgYnkgYSB2aXJ0dWFsIGRyaXZlciBvciB0ZXN0IG1vZHVsZS4gVGhpcyB3aWxsIGhlbHAgZGV0ZXJtaW5lIGl0cyByZWFjaGFiaWxpdHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoZXJlIGlzIGEgcGF0aCB0aHJvdWdoIGEgdmlydHVhbCBpbnRlcmZhY2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O212ODhlNnh4eCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTAwMzUgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnPTczPXNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL0tjb25maWdcJiMzNDtcbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnLTc0LVxuZHJpdmVycy9uZXQvZHNhL0tjb25maWc6NzU6c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvS2NvbmZpZ1wmIzM0O1xuZHJpdmVycy9uZXQvZHNhL0tjb25maWctNzYtXG4tLVxuZHJpdmVycy9uZXQvZHNhL01ha2VmaWxlPTIxPW9iai15XHRcdFx0XHQmIzQzOz0gbWljcm9jaGlwL1xuZHJpdmVycy9uZXQvZHNhL01ha2VmaWxlOjIyOm9iai15XHRcdFx0XHQmIzQzOz0gbXY4OGU2eHh4L1xuZHJpdmVycy9uZXQvZHNhL01ha2VmaWxlLTIzLW9iai15XHRcdFx0XHQmIzQzOz0gbXhsODYyeHgvXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNjA2MC5oLTUtICpcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTYwNjAuaDo2OiAqIEJhc2VkIG9uIG12ODhlNnh4eC5oXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2MDYwLmgtNy0gKiBDb3B5cmlnaHQgKGMpIDIwMDggTWFydmVsbCBTZW1pY29uZHVjdG9yXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfTkVUX0RTQV9NVjg4RTZYWFgpICYjNDM7PSBtdjg4ZTZ4eHgub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZTozOm12ODhlNnh4eC1vYmpzIDo9IGNoaXAub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZTo0Om12ODhlNnh4eC1vYmpzICYjNDM7PSBkZXZsaW5rLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6NTptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gZ2xvYmFsMS5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjY6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IGdsb2JhbDFfYXR1Lm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6Nzptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gZ2xvYmFsMV92dHUub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZTo4Om12ODhlNnh4eC1vYmpzICYjNDM7PSBnbG9iYWwyLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6OTptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gZ2xvYmFsMl9hdmIub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxMDptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gZ2xvYmFsMl9zY3JhdGNoLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTE6bXY4OGU2eHh4LSQoQ09ORklHX05FVF9EU0FfTVY4OEU2WFhYX1BUUCkgJiM0Mzs9IGh3dHN0YW1wLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTI6bXY4OGU2eHh4LSQoQ09ORklHX05FVF9EU0FfTVY4OEU2WFhYX0xFRFMpICYjNDM7PSBsZWRzLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTM6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHBjcy02MTg1Lm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTQ6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHBjcy02MzUyLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTU6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHBjcy02Mzl4Lm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTY6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHBoeS5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE3Om12ODhlNnh4eC1vYmpzICYjNDM7PSBwb3J0Lm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTg6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHBvcnRfaGlkZGVuLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTk6bXY4OGU2eHh4LSQoQ09ORklHX05FVF9EU0FfTVY4OEU2WFhYX1BUUCkgJiM0Mzs9IHB0cC5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjIwOm12ODhlNnh4eC1vYmpzICYjNDM7PSBzZXJkZXMub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyMTptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gc21pLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MjI6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHN3aXRjaGRldi5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjIzOm12ODhlNnh4eC1vYmpzICYjNDM7PSB0cmFjZS5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjI0Om12ODhlNnh4eC1vYmpzICYjNDM7PSB0Y2Zsb3dlci5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjI1Om12ODhlNnh4eC1vYmpzICYjNDM7PSB0Y2FtLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGUtMjYtXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTQtI2luY2x1ZGUgXHUwMDNjbGludXgvZGVsYXkuaFx1MDAzZVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTU6I2luY2x1ZGUgXHUwMDNjbGludXgvZHNhL212ODhlNnh4eC5oXHUwMDNlXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNi0jaW5jbHVkZSBcdTAwM2NsaW51eC9ldGhlcmRldmljZS5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjgtI2luY2x1ZGUgXHUwMDNjbGludXgvb2ZfbWRpby5oXHUwMDNlXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyOTojaW5jbHVkZSBcdTAwM2NsaW51eC9wbGF0Zm9ybV9kYXRhL212ODhlNnh4eC5oXHUwMDNlXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMC0jaW5jbHVkZSBcdTAwM2NsaW51eC9wcm9wZXJ0eS5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDgtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0OTpzdGF0aWMgdm9pZCBhc3NlcnRfcmVnX2xvY2soc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTAte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU2LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTc6aW50IG12ODhlNnh4eF9yZWFkKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIGludCByZWcsIHUxNiAqdmFsKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTgte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYyLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NjM6XHRlcnIgPSBtdjg4ZTZ4eHhfc21pX3JlYWQoY2hpcCwgYWRkciwgcmVnLCB2YWwpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjQtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcyLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzM6aW50IG12ODhlNnh4eF93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLCBpbnQgcmVnLCB1MTYgdmFsKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzQte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc4LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Nzk6XHRlcnIgPSBtdjg4ZTZ4eHhfc21pX3dyaXRlKGNoaXAsIGFkZHIsIHJlZywgdmFsKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTgwLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04OC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg5OmludCBtdjg4ZTZ4eHhfd2FpdF9tYXNrKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIGludCByZWcsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MC1cdFx0XHR1MTYgbWFzaywgdTE2IHZhbClcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMDEtXHRmb3IgKGkgPSAwOyB0aW1lX2JlZm9yZShqaWZmaWVzLCB0aW1lb3V0KSB8fCAoaSBcdTAwM2MgMik7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMDI6XHRcdGVyciA9IG12ODhlNnh4eF9yZWFkKGNoaXAsIGFkZHIsIHJlZywgXHUwMDI2ZGF0YSk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMDMtXHRcdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTE0LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTE1Olx0ZXJyID0gbXY4OGU2eHh4X3JlYWQoY2hpcCwgYWRkciwgcmVnLCBcdTAwMjZkYXRhKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTExNi1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTI1LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTI2OmludCBtdjg4ZTZ4eHhfd2FpdF9iaXQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYWRkciwgaW50IHJlZyxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEyNy1cdFx0ICAgICAgIGludCBiaXQsIGludCB2YWwpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMjgte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTI5Olx0cmV0dXJuIG12ODhlNnh4eF93YWl0X21hc2soY2hpcCwgYWRkciwgcmVnLCBCSVQoYml0KSxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzMC1cdFx0XHRcdCAgIHZhbCA/IEJJVChiaXQpIDogMHgwMDAwKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMzItXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMzM6c3RydWN0IG1paV9idXMgKm12ODhlNnh4eF9kZWZhdWx0X21kaW9fYnVzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzNC17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMzU6XHRzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzICptZGlvX2J1cztcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzNi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzNy1cdG1kaW9fYnVzID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKFx1MDAyNmNoaXAtXHUwMDNlbWRpb3MsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMzg6XHRcdFx0XHRcdCAgICBzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzLCBsaXN0KTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzOS1cdGlmICghbWRpb19idXMpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTQ0LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTQ1OnN0YXRpYyB2b2lkIG12ODhlNnh4eF9nMV9pcnFfbWFzayhzdHJ1Y3QgaXJxX2RhdGEgKmQpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNDYte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTQ3Olx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoZCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNDgtXHR1bnNpZ25lZCBpbnQgbiA9IGQtXHUwMDNlaHdpcnE7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTUyLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTUzOnN0YXRpYyB2b2lkIG12ODhlNnh4eF9nMV9pcnFfdW5tYXNrKHN0cnVjdCBpcnFfZGF0YSAqZClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE1NC17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNTU6XHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE1Ni1cdHVuc2lnbmVkIGludCBuID0gZC1cdTAwM2Vod2lycTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNjAtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNjE6c3RhdGljIGlycXJldHVybl90IG12ODhlNnh4eF9nMV9pcnFfdGhyZWFkX3dvcmsoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTYyLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNjktXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNzA6XHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNzE6XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfcmVhZChjaGlwLCBNVjg4RTZYWFhfRzFfU1RTLCBcdTAwMjZyZWcpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTcyOlx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNzMtXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTg2LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTg3Olx0XHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxODg6XHRcdGVyciA9IG12ODhlNnh4eF9nMV9yZWFkKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCBcdTAwMjZjdGwxKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE4OS1cdFx0aWYgKGVycilcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE5MC1cdFx0XHRnb3RvIHVubG9jaztcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE5MTpcdFx0ZXJyID0gbXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2WFhYX0cxX1NUUywgXHUwMDI2cmVnKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE5Mi11bmxvY2s6XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxOTM6XHRcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTk0LVx0XHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIwMi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIwMzpzdGF0aWMgaXJxcmV0dXJuX3QgbXY4OGU2eHh4X2cxX2lycV90aHJlYWRfZm4oaW50IGlycSwgdm9pZCAqZGV2X2lkKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjA0LXtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIwNTpcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRldl9pZDtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIwNi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIwNzpcdHJldHVybiBtdjg4ZTZ4eHhfZzFfaXJxX3RocmVhZF93b3JrKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjA4LX1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIwOS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIxMDpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfZzFfaXJxX2J1c19sb2NrKHN0cnVjdCBpcnFfZGF0YSAqZClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIxMS17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMTI6XHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIxMy1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIxNDpcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIxNS19XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMTYtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMTc6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9idXNfc3luY191bmxvY2soc3RydWN0IGlycV9kYXRhICpkKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjE4LXtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIxOTpcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGQpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjIwLVx0dTE2IG1hc2sgPSBHRU5NQVNLKGNoaXAtXHUwMDNlZzFfaXJxLm5pcnFzLCAwKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMjMtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMjQ6XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfcmVhZChjaGlwLCBNVjg4RTZYWFhfRzFfQ1RMMSwgXHUwMDI2cmVnKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIyNS1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjMwLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjMxOlx0ZXJyID0gbXY4OGU2eHh4X2cxX3dyaXRlKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCByZWcpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjMyLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMzUtb3V0OlxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjM2Olx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMzctfVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjM4LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjM5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgaXJxX2NoaXAgbXY4OGU2eHh4X2cxX2lycV9jaGlwID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQwOlx0Lm5hbWVcdFx0XHQ9IFwmIzM0O212ODhlNnh4eC1nMVwmIzM0OyxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI0MTpcdC5pcnFfbWFza1x0XHQ9IG12ODhlNnh4eF9nMV9pcnFfbWFzayxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI0MjpcdC5pcnFfdW5tYXNrXHRcdD0gbXY4OGU2eHh4X2cxX2lycV91bm1hc2ssXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNDM6XHQuaXJxX2J1c19sb2NrXHRcdD0gbXY4OGU2eHh4X2cxX2lycV9idXNfbG9jayxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI0NDpcdC5pcnFfYnVzX3N5bmNfdW5sb2NrXHQ9IG12ODhlNnh4eF9nMV9pcnFfYnVzX3N5bmNfdW5sb2NrLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjQ1LX07XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNDYtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNDc6c3RhdGljIGludCBtdjg4ZTZ4eHhfZzFfaXJxX2RvbWFpbl9tYXAoc3RydWN0IGlycV9kb21haW4gKmQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNDgtXHRcdFx0XHQgICAgICAgdW5zaWduZWQgaW50IGlycSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNTAte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjUxOlx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gZC1cdTAwM2Vob3N0X2RhdGE7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNTItXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjU5LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjYwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgaXJxX2RvbWFpbl9vcHMgbXY4OGU2eHh4X2cxX2lycV9kb21haW5fb3BzID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjYxOlx0Lm1hcFx0PSBtdjg4ZTZ4eHhfZzFfaXJxX2RvbWFpbl9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNjItXHQueGxhdGVcdD0gaXJxX2RvbWFpbl94bGF0ZV90d29jZWxsLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI2NS0vKiBUbyBiZSBjYWxsZWQgd2l0aCByZWdfbG9jayBoZWxkICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNjY6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9mcmVlX2NvbW1vbihzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNjcte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI3MC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI3MTpcdG12ODhlNnh4eF9nMV9yZWFkKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCBcdTAwMjZtYXNrKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI3Mi1cdG1hc2sgXHUwMDI2PSB+R0VOTUFTSyhjaGlwLVx1MDAzZWcxX2lycS5uaXJxcywgMCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNzM6XHRtdjg4ZTZ4eHhfZzFfd3JpdGUoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIG1hc2spO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjc0LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI4Mi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI4MzpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfZzFfaXJxX2ZyZWUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjg0LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yOTAtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyOTE6XHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyOTI6XHRtdjg4ZTZ4eHhfZzFfaXJxX2ZyZWVfY29tbW9uKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjkzOlx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yOTQtfVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjk1LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mjk2OnN0YXRpYyBpbnQgbXY4OGU2eHh4X2cxX2lycV9zZXR1cF9jb21tb24oc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjk3LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMDMtXHRcdE5VTEwsIGNoaXAtXHUwMDNlZzFfaXJxLm5pcnFzLCAwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzA0Olx0XHRcdTAwMjZtdjg4ZTZ4eHhfZzFfaXJxX2RvbWFpbl9vcHMsIGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzA1LVx0aWYgKCFjaGlwLVx1MDAzZWcxX2lycS5kb21haW4pXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzEwLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzExOlx0Y2hpcC1cdTAwM2VnMV9pcnEuY2hpcCA9IG12ODhlNnh4eF9nMV9pcnFfY2hpcDtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMxMi1cdGNoaXAtXHUwMDNlZzFfaXJxLm1hc2tlZCA9IH4wO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzEzLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzE0Olx0ZXJyID0gbXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIFx1MDAyNm1hc2spO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzE1LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMTktXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMjA6XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfd3JpdGUoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIG1hc2spO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzIxLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMjQtXHQvKiBSZWFkaW5nIHRoZSBpbnRlcnJ1cHQgc3RhdHVzIGNsZWFycyAobW9zdCBvZikgdGhlbSAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzI1Olx0ZXJyID0gbXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2WFhYX0cxX1NUUywgXHUwMDI2cmVnKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMyNi1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzMyLVx0bWFzayBcdTAwMjY9IH5HRU5NQVNLKGNoaXAtXHUwMDNlZzFfaXJxLm5pcnFzLCAwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjMzMzpcdG12ODhlNnh4eF9nMV93cml0ZShjaGlwLCBNVjg4RTZYWFhfRzFfQ1RMMSwgbWFzayk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMzQtXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzQ1LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzQ2OnN0YXRpYyBpbnQgbXY4OGU2eHh4X2cxX2lycV9zZXR1cChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNDcte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM1MS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM1MjpcdGVyciA9IG12ODhlNnh4eF9nMV9pcnFfc2V0dXBfY29tbW9uKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzUzLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNjItXHRzbnByaW50ZihjaGlwLVx1MDAzZWlycV9uYW1lLCBzaXplb2YoY2hpcC1cdTAwM2VpcnFfbmFtZSksXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNjM6XHRcdCBcJiMzNDttdjg4ZTZ4eHgtJXNcJiMzNDssIGRldl9uYW1lKGNoaXAtXHUwMDNlZGV2KSk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNjQtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNjU6XHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2Ni1cdGVyciA9IHJlcXVlc3RfdGhyZWFkZWRfaXJxKGNoaXAtXHUwMDNlaXJxLCBOVUxMLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzY3Olx0XHRcdFx0ICAgbXY4OGU2eHh4X2cxX2lycV90aHJlYWRfZm4sXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNjgtXHRcdFx0XHQgICBJUlFGX09ORVNIT1QgfCBJUlFGX1NIQVJFRCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2OS1cdFx0XHRcdCAgIGNoaXAtXHUwMDNlaXJxX25hbWUsIGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzcwOlx0bXY4OGU2eHh4X3JlZ19sb2NrKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzcxLVx0aWYgKGVycilcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3MjpcdFx0bXY4OGU2eHh4X2cxX2lycV9mcmVlX2NvbW1vbihjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM3My1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzYtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNzc6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2lycV9wb2xsKHN0cnVjdCBrdGhyZWFkX3dvcmsgKndvcmspXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzgte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzc5Olx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gY29udGFpbmVyX29mKHdvcmssXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODA6XHRcdFx0XHRcdFx0ICAgc3RydWN0IG12ODhlNnh4eF9jaGlwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzgxLVx0XHRcdFx0XHRcdCAgIGlycV9wb2xsX3dvcmsud29yayk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODI6XHRtdjg4ZTZ4eHhfZzFfaXJxX3RocmVhZF93b3JrKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzgzLVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4Ny1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4ODpzdGF0aWMgaW50IG12ODhlNnh4eF9pcnFfcG9sbF9zZXR1cChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODkte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM5MS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM5MjpcdGVyciA9IG12ODhlNnh4eF9nMV9pcnFfc2V0dXBfY29tbW9uKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzkzLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTYtXHRrdGhyZWFkX2luaXRfZGVsYXllZF93b3JrKFx1MDAyNmNoaXAtXHUwMDNlaXJxX3BvbGxfd29yayxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM5NzpcdFx0XHRcdCAgbXY4OGU2eHh4X2lycV9wb2xsKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM5OC1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MDgtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0MDk6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2lycV9wb2xsX2ZyZWUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDEwLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MTMtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0MTQ6XHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0MTU6XHRtdjg4ZTZ4eHhfZzFfaXJxX2ZyZWVfY29tbW9uKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDE2Olx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MTctfVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDE4LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDE5OnN0YXRpYyBpbnQgbXY4OGU2eHh4X3BvcnRfY29uZmlnX2ludGVyZmFjZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MjAtXHRcdFx0XHRcdCAgIGludCBwb3J0LCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ0MC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ0MTpzdGF0aWMgaW50IG12ODhlNnh4eF9wb3J0X3NldHVwX21hYyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDQyLVx0XHRcdFx0ICAgIGludCBsaW5rLCBpbnQgc3BlZWQsIGludCBkdXBsZXgsIGludCBwYXVzZSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NjctXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0Njg6XHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9jb25maWdfaW50ZXJmYWNlKGNoaXAsIHBvcnQsIG1vZGUpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDY5LXJlc3RvcmVfbGluazpcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NzUtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NzY6c3RhdGljIGludCBtdjg4ZTZ4eHhfcGh5X2lzX2ludGVybmFsKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00Nzcte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ4Mi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ4MzpzdGF0aWMgaW50IG12ODhlNnh4eF9wb3J0X3BwdV91cGRhdGVzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00ODQte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ5MS1cdGlmIChjaGlwLVx1MDAzZWluZm8tXHUwMDNlZmFtaWx5ID09IE1WODhFNlhYWF9GQU1JTFlfNjI1MClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ5MjpcdFx0cmV0dXJuIG12ODhlNnh4eF9waHlfaXNfaW50ZXJuYWwoY2hpcCwgcG9ydCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00OTMtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0OTQ6XHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9yZWFkKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX1NUUywgXHUwMDI2cmVnKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ5NS1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz01MDU9c3RhdGljIGNvbnN0IHU4IG12ODhlNjE4NV9waHlfaW50ZXJmYWNlX21vZGVzW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTE0LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTE1OnN0YXRpYyB2b2lkIG12ODhlNjA5NV9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MTYtXHRcdFx0XHQgICAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTIxLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTIyOlx0aWYgKG12ODhlNnh4eF9waHlfaXNfaW50ZXJuYWwoY2hpcCwgcG9ydCkpIHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUyMy1cdFx0X19zZXRfYml0KFBIWV9JTlRFUkZBQ0VfTU9ERV9NSUksIGNvbmZpZy1cdTAwM2VzdXBwb3J0ZWRfaW50ZXJmYWNlcyk7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTMzLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTM0OnN0YXRpYyB2b2lkIG12ODhlNjE4NV9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MzUtXHRcdFx0XHQgICAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTQ3LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTQ4OnN0YXRpYyBjb25zdCB1OCBtdjg4ZTZ4eHhfcGh5X2ludGVyZmFjZV9tb2Rlc1tdID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTQ5LVx0W01WODhFNlhYWF9QT1JUX1NUU19DTU9ERV9NSUlfUEhZXVx0PSBQSFlfSU5URVJGQUNFX01PREVfUkVWTUlJLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU2Mi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU2MzpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKHU4IGNtb2RlLCB1bnNpZ25lZCBsb25nICpzdXBwb3J0ZWQpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NjQte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTY1Olx0aWYgKGNtb2RlIFx1MDAzYyBBUlJBWV9TSVpFKG12ODhlNnh4eF9waHlfaW50ZXJmYWNlX21vZGVzKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU2NjpcdCAgICBtdjg4ZTZ4eHhfcGh5X2ludGVyZmFjZV9tb2Rlc1tjbW9kZV0pXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1Njc6XHRcdF9fc2V0X2JpdChtdjg4ZTZ4eHhfcGh5X2ludGVyZmFjZV9tb2Rlc1tjbW9kZV0sIHN1cHBvcnRlZCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NjgtXHRlbHNlIGlmIChjbW9kZSA9PSBNVjg4RTZYWFhfUE9SVF9TVFNfQ01PREVfUkdNSUkpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NTcyPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1NzM6bXY4OGU2MjUwX3NldHVwX3N1cHBvcnRlZF9pbnRlcmZhY2VzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NzQtXHRcdFx0XHQgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU3OS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU4MDpcdGVyciA9IG12ODhlNnh4eF9wb3J0X3JlYWQoY2hpcCwgcG9ydCwgTVY4OEU2WFhYX1BPUlRfU1RTLCBcdTAwMjZyZWcpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTgxLVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYyMS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjYyMjpzdGF0aWMgdm9pZCBtdjg4ZTYyNTBfcGh5bGlua19nZXRfY2FwcyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjIzLVx0XHRcdFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjI0LXtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjYyNTpcdGlmICghbXY4OGU2eHh4X3BoeV9pc19pbnRlcm5hbChjaGlwLCBwb3J0KSlcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYyNi1cdFx0bXY4OGU2MjUwX3NldHVwX3N1cHBvcnRlZF9pbnRlcmZhY2VzKGNoaXAsIHBvcnQsIGNvbmZpZyk7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjMwLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NjMxOnN0YXRpYyB2b2lkIG12ODhlNjM1MV9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02MzItXHRcdFx0XHQgICAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjM2LVx0LyogVHJhbnNsYXRlIHRoZSBkZWZhdWx0IGNtb2RlICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2Mzc6XHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXHUwMDNlcG9ydHNbcG9ydF0uY21vZGUsIHN1cHBvcnRlZCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02MzgtXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjQyLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NjQzOnN0YXRpYyBpbnQgbXY4OGU2M3h4X2dldF9wb3J0X3NlcmRlc19jbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjQ0LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NDctXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NDg6XHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9yZWFkKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX1NUUywgXHUwMDI2cmVnKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY0OS1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjU2LVx0dmFsID0gcmVnIFx1MDAyNiB+TVY4OEU2WFhYX1BPUlRfU1RTX1BIWV9ERVRFQ1Q7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NTc6XHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF93cml0ZShjaGlwLCBwb3J0LCBNVjg4RTZYWFhfUE9SVF9TVFMsIHZhbCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NTgtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY2MC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY2MTpcdGVyciA9IG12ODhlNnh4eF9wb3J0X3JlYWQoY2hpcCwgcG9ydCwgTVY4OEU2WFhYX1BPUlRfU1RTLCBcdTAwMjZ2YWwpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjYyLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NjUtXHQvKiBSZXN0b3JlIFBIWV9ERVRFQ1QgdmFsdWUgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY2NjpcdGVyciA9IG12ODhlNnh4eF9wb3J0X3dyaXRlKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX1NUUywgcmVnKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY2Ny1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjcyLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NjczOnN0YXRpYyB2b2lkIG12ODhlNjM1Ml9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NzQtXHRcdFx0XHQgICAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjc5LVx0LyogVHJhbnNsYXRlIHRoZSBkZWZhdWx0IGNtb2RlICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2ODA6XHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXHUwMDNlcG9ydHNbcG9ydF0uY21vZGUsIHN1cHBvcnRlZCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02ODEtXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjk1LVx0XHRlbHNlXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2OTY6XHRcdFx0bXY4OGU2eHh4X3RyYW5zbGF0ZV9jbW9kZShjbW9kZSwgc3VwcG9ydGVkKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY5Ny1cdH1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02OTktXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3MDA6c3RhdGljIHZvaWQgbXY4OGU2MzJ4X3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcwMS1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MDYtXHQvKiBUcmFuc2xhdGUgdGhlIGRlZmF1bHQgY21vZGUgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjcwNzpcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY2hpcC1cdTAwM2Vwb3J0c1twb3J0XS5jbW9kZSwgc3VwcG9ydGVkKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcwOC1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MTgtXHRcdGVsc2VcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjcxOTpcdFx0XHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNtb2RlLCBzdXBwb3J0ZWQpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzIwLVx0fVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcyMi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjcyMzpzdGF0aWMgdm9pZCBtdjg4ZTYzNDFfcGh5bGlua19nZXRfY2FwcyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzI0LVx0XHRcdFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcyOC1cdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzI5Olx0bXY4OGU2eHh4X3RyYW5zbGF0ZV9jbW9kZShjaGlwLVx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzMwLVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc0NC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc0NTpzdGF0aWMgdm9pZCBtdjg4ZTYzOTBfcGh5bGlua19nZXRfY2FwcyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzQ2LVx0XHRcdFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1MC1cdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzUxOlx0bXY4OGU2eHh4X3RyYW5zbGF0ZV9jbW9kZShjaGlwLVx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyLVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc2Ni1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc2NzpzdGF0aWMgdm9pZCBtdjg4ZTYzOTB4X3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc2OC1cdFx0XHRcdFx0c3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODAxLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODAyOnN0YXRpYyB2b2lkIG12ODhlNjM5M3hfcGh5bGlua19nZXRfY2FwcyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODAzLVx0XHRcdFx0XHRzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04MTAtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4MTE6XHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXHUwMDNlcG9ydHNbcG9ydF0uY21vZGUsIHN1cHBvcnRlZCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04MTItXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODQ1LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODQ2OnN0YXRpYyB2b2lkIG12ODhlNnh4eF9nZXRfY2FwcyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODQ3LVx0XHRcdCAgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg0OC17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4NDk6XHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBkcy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODUwLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODUxOlx0bXY4OGU2eHh4X3JlZ19sb2NrKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODUyLVx0Y2hpcC1cdTAwM2VpbmZvLVx1MDAzZW9wcy1cdTAwM2VwaHlsaW5rX2dldF9jYXBzKGNoaXAsIHBvcnQsIGNvbmZpZyk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4NTM6XHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg1NC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg1NTpcdGlmIChtdjg4ZTZ4eHhfcGh5X2lzX2ludGVybmFsKGNoaXAsIHBvcnQpKSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04NTYtXHRcdF9fc2V0X2JpdChQSFlfSU5URVJGQUNFX01PREVfSU5URVJOQUwsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9ODY0PXN0YXRpYyBzdHJ1Y3QgcGh5bGlua19wY3MgKlxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODY1Om12ODhlNnh4eF9tYWNfc2VsZWN0X3BjcyhzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZyxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg2Ni1cdFx0XHQgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSlcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04NjgtXHRzdHJ1Y3QgZHNhX3BvcnQgKmRwID0gZHNhX3BoeWxpbmtfdG9fcG9ydChjb25maWcpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODY5Olx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gZHAtXHUwMDNlZHMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg3MC1cdHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzID0gTlVMTDtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04NzgtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4Nzk6c3RhdGljIGludCBtdjg4ZTZ4eHhfbWFjX3ByZXBhcmUoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04ODAtXHRcdFx0XHQgdW5zaWduZWQgaW50IG1vZGUsIHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODgyLVx0c3RydWN0IGRzYV9wb3J0ICpkcCA9IGRzYV9waHlsaW5rX3RvX3BvcnQoY29uZmlnKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg4MzpcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRwLVx1MDAzZWRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04ODQtXHRpbnQgcG9ydCA9IGRwLVx1MDAzZWluZGV4O1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg5My1cdCAgICBjaGlwLVx1MDAzZWluZm8tXHUwMDNlb3BzLVx1MDAzZXBvcnRfc2V0X2xpbmspIHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg5NDpcdFx0bXY4OGU2eHh4X3JlZ19sb2NrKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODk1LVx0XHRlcnIgPSBjaGlwLVx1MDAzZWluZm8tXHUwMDNlb3BzLVx1MDAzZXBvcnRfc2V0X2xpbmsoY2hpcCwgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg5Ni1cdFx0XHRcdFx0XHQgICAgIExJTktfRk9SQ0VEX0RPV04pO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODk3Olx0XHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg5OC1cdH1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MDItXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo5MDM6c3RhdGljIHZvaWQgbXY4OGU2eHh4X21hY19jb25maWcoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MDQtXHRcdFx0XHQgdW5zaWduZWQgaW50IG1vZGUsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTA3LVx0c3RydWN0IGRzYV9wb3J0ICpkcCA9IGRzYV9waHlsaW5rX3RvX3BvcnQoY29uZmlnKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjkwODpcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRwLVx1MDAzZWRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MDktXHRpbnQgcG9ydCA9IGRwLVx1MDAzZWluZGV4O1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTkxMS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjkxMjpcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTkxMy1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjkxNDpcdGlmIChtb2RlICE9IE1MT19BTl9QSFkgfHwgIW12ODhlNnh4eF9waHlfaXNfaW50ZXJuYWwoY2hpcCwgcG9ydCkpIHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjkxNTpcdFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfY29uZmlnX2ludGVyZmFjZShjaGlwLCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTE2LVx0XHRcdFx0XHRcdCAgICAgIHN0YXRlLVx1MDAzZWludGVyZmFjZSk7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTIxLWVycl91bmxvY2s6XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo5MjI6XHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTkyMy1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MjctXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo5Mjg6c3RhdGljIGludCBtdjg4ZTZ4eHhfbWFjX2ZpbmlzaChzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZyxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTkyOS1cdFx0XHRcdHVuc2lnbmVkIGludCBtb2RlLCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTkzMS1cdHN0cnVjdCBkc2FfcG9ydCAqZHAgPSBkc2FfcGh5bGlua190b19wb3J0KGNvbmZpZyk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo5MzI6XHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBkcC1cdTAwM2Vkcy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTMzLVx0aW50IHBvcnQgPSBkcC1cdTAwM2VpbmRleDtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05NDEtXHQgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjk0MjpcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTk0My1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05NDYtXHQgICAgICBjaGlwLVx1MDAzZXBvcnRzW3BvcnRdLmludGVyZmFjZSAhPSBpbnRlcmZhY2UpIHx8XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo5NDc6XHQgICAgIChtb2RlID09IE1MT19BTl9QSFkgXHUwMDI2XHUwMDI2IG12ODhlNnh4eF9wb3J0X3BwdV91cGRhdGVzKGNoaXAsIHBvcnQpKSkpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05NDgtXHRcdGVyciA9IGNoaXAtXHUwMDNlaW5mby1cdTAwM2VvcHMtXHUwMDNlcG9ydF9zZXRfbGluayhjaGlwLCBwb3J0LCBMSU5LX1VORk9SQ0VEKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTk0OS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjk1MDpcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTUxLVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTk1Ni1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjk1NzpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfbWFjX2xpbmtfZG93bihzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZyxcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjAzOAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDIzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIFRob3VnaHRzIG9uIFN5emthbGxlciBhbmQgRFNBIERyaXZlcnMqKgoKT2theSwgaGVyZSYjMzk7cyB3aGF0JiMzOTtzIHJ1bm5pbmcgdGhyb3VnaCBteSBoZWFkLiBJJiMzOTttIGxvb2tpbmcgYXQgYG12ODhlNnh4eGAsIHdoaWNoIGlzIGEgRFNBIGRyaXZlciwgcmlnaHQ/IERTQSBzd2l0Y2hlcyBhcmUgKnR5cGljYWxseSogYnJvdWdodCB1cCB0aHJvdWdoIHRoZSBkZXZpY2UgdHJlZS4gU28sIGlmIHN5emthbGxlciBpcyBmdXp6aW5nIGl0LCBzb21ldGhpbmcgaW50ZXJlc3RpbmcgaXMgaGFwcGVuaW5nLiBJdCBoYXMgdG8gYmUgaW5qZWN0aW5nIGRldmljZSB0cmVlIG92ZXJsYXlzLiBJJiMzOTttIHJhY2tpbmcgbXkgYnJhaW4gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaG93LiBJJiMzOTttIHJlbWVtYmVyaW5nIHRoYXQgYG9mX292ZXJsYXlfZmR0X2FwcGx5YCBmdW5jdGlvbiBpbiBgZHJpdmVycy9vZi9vdmVybGF5LmNgLi4uIHRoYXQmIzM5O3MgdGhlIGtleS4KCkRvZXMgc3l6a2FsbGVyIGFjdHVhbGx5IGluamVjdCB0aGVzZT8gQW5kIGlmIHNvLCBob3c/IEkga25vdyBpdCBoYXMgdGhhdCBgc3l6X21vdW50X2ltYWdlYCBwc2V1ZG8tc3lzY2FsbCwgd2hpY2ggY291bGQgYmUgcmVsZXZhbnQsIHNpbmNlIEkgY2FuIHNlZSB0aGUgcG90ZW50aWFsIGZvciBhIG1vdW50ZWQgZmlsZXN5c3RlbS4gV2FpdCBhIG1pbnV0ZSwgd2hhdCBhYm91dCBgc3l6X3VzYl9jb25uZWN0YD8gQ29ubmVjdGluZyBhIHZpcnR1YWwgVVNCIGRldmljZSAqY291bGQqIGFsc28gZXhwb3NlIGEgdmVjdG9yLiBJcyB0aGVyZSBzb21lIG90aGVyIHdheT8KCkhhbmcgb24gYSBzZWMsIHRoZXJlJiMzOTtzIHRoYXQgY29uZmlnZnMgaW50ZXJmYWNlIGZvciBkZXZpY2UgdHJlZSBvdmVybGF5cyEgTGV0JiMzOTtzIHNlZSBpZiBzb21ldGhpbmcgZXhpc3RzIGluIGBkcml2ZXJzL29mL2NvbmZpZ2ZzLmNgIG9yIHNvbWV0aGluZyBzaW1pbGFyLCBpdCBzaG91bGQgYmUgb2J2aW91cyBhbmQgdGhlbiBJJiMzOTtsbCBiZSBvbiBteSB3YXkuIEkgc2VhcmNoIGJ1dCBJIGNhbiYjMzk7dCBmaW5kIGFueXRoaW5nIHJlbGF0ZWQgdG8gY29uZmlnZnMgaW4gdGhlcmUuIE9rYXksIHNvIHNjcmF0Y2ggdGhhdCBpZGVhLgoKQmFjayB0byBgZHJpdmVycy9vZi9vdmVybGF5LmNgLiBXZSYjMzk7dmUgZ290IGBvZl9vdmVybGF5X2ZkdF9hcHBseWAuIE5vdywgd2hlcmUgaW4gdGhlIGtlcm5lbCBjb2RlIGlzIHRoYXQgYWN0dWFsbHkgKmNhbGxlZCo/IFRoYXQmIzM5O3MgdGhlIG5leHQgY3JpdGljYWwgcGllY2Ugb2YgdGhlIHB1enpsZS4gSSBuZWVkIHRvIHRyYWNlIHRoaXMgYmFjay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7b2Zfb3ZlcmxheV9mZHRfYXBwbHkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL292ZXJsYXktbm90ZXMucnN0PTEwOT1UaGUgQVBJIGlzIHF1aXRlIGVhc3kgdG8gdXNlLlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL292ZXJsYXktbm90ZXMucnN0LTExMC1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdDoxMTE6MSkgQ2FsbCBvZl9vdmVybGF5X2ZkdF9hcHBseSgpIHRvIGNyZWF0ZSBhbmQgYXBwbHkgYW4gb3ZlcmxheSBjaGFuZ2VzZXQuIFRoZVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL292ZXJsYXktbm90ZXMucnN0LTExMi0gICByZXR1cm4gdmFsdWUgaXMgYW4gZXJyb3Igb3IgYSBjb29raWUgaWRlbnRpZnlpbmcgdGhpcyBvdmVybGF5LlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdC0xMTQtMikgQ2FsbCBvZl9vdmVybGF5X3JlbW92ZSgpIHRvIHJlbW92ZSBhbmQgY2xlYW4gdXAgdGhlIG92ZXJsYXkgY2hhbmdlc2V0XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvb3ZlcmxheS1ub3Rlcy5yc3Q6MTE1OiAgIHByZXZpb3VzbHkgY3JlYXRlZCB2aWEgdGhlIGNhbGwgdG8gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKS4gUmVtb3ZhbCBvZiBhblxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL292ZXJsYXktbm90ZXMucnN0LTExNi0gICBvdmVybGF5IGNoYW5nZXNldCB0aGF0IGlzIHN0YWNrZWQgYnkgYW5vdGhlciB3aWxsIG5vdCBiZSBwZXJtaXR0ZWQuXG4tLVxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdD05MD1EVOS4reeahOmAguW9k+S9jee9ruOAguWcqOi/meenjeaDheWGteS4i++8jOWPr+S7peaPkOS+m+ebruagh+i3r+W+hOOAgumAmui/h+agh+etvueahOebruagh+S9jee9rueahOivreazleaYr+avlFxuLS1cbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL2RldmljZXRyZWUvb3ZlcmxheS1ub3Rlcy5yc3QtMTEyLVxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdDoxMTM6MSkg6LCD55Sob2Zfb3ZlcmxheV9mZHRfYXBwbHkoKeadpeWIm+W7uuWSjOW6lOeUqOS4gOS4quimhueblueahOWPmOabtOmbhuOAgui/lOWbnuWAvOaYr+S4gOS4qlxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdC0xMTQtICAg6ZSZ6K+v5oiW5LiA5Liq6K+G5Yir6L+Z5Liq6KaG55uW55qEY29va2ll44CCXG5Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9kZXZpY2V0cmVlL292ZXJsYXktbm90ZXMucnN0LTExNS1cbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL2RldmljZXRyZWUvb3ZlcmxheS1ub3Rlcy5yc3Q6MTE2OjIpIOiwg+eUqG9mX292ZXJsYXlfcmVtb3ZlKCnmnaXliKDpmaTlkozmuIXnkIblhYjliY3pgJrov4fosIPnlKhvZl9vdmVybGF5X2ZkdF9hcHBseSgpXG5Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9kZXZpY2V0cmVlL292ZXJsYXktbm90ZXMucnN0LTExNy0gICDogIzliJvlu7rnmoTopobnm5blj5jmm7Tpm4bjgILkuI3lhYHorrjliKDpmaTkuIDkuKrooqvlj6bkuIDkuKropobnm5bnmoTopobnm5blj5jljJbpm4bjgIJcbi0tXG5NQUlOVEFJTkVSUz0yMDI2OT1LOlx0b2Zfb3ZlcmxheV9ub3RpZmllcl9cbk1BSU5UQUlORVJTOjIwMjcwOks6XHRvZl9vdmVybGF5X2ZkdF9hcHBseVxuTUFJTlRBSU5FUlMtMjAyNzEtSzpcdG9mX292ZXJsYXlfcmVtb3ZlXG4tLVxuZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9pbXgvaW14OG1wLWhkbWktdHgtY29ubmVjdG9yLWZpeHVwLmM9MjA9c3RhdGljIGludCBfX2luaXQgaW14OG1wX2hkbWlfdHhfY29ubmVjdG9yX2ZpeHVwX2luaXQodm9pZClcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2lteC9pbXg4bXAtaGRtaS10eC1jb25uZWN0b3ItZml4dXAuYy02Ny1cbmRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvaW14L2lteDhtcC1oZG1pLXR4LWNvbm5lY3Rvci1maXh1cC5jOjY4Olx0ZXJyID0gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoZHRib19zdGFydCwgZHRib19zaXplLCBcdTAwMjZvdmNzX2lkLCBOVUxMKTtcbmRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvaW14L2lteDhtcC1oZG1pLXR4LWNvbm5lY3Rvci1maXh1cC5jLTY5LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19wYW5lbF9sZWdhY3kuYz0xNDM9c3RhdGljIGludCBfX2luaXQgdGlsY2RjX3BhbmVsX2xlZ2FjeV9pbml0KHZvaWQpXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfcGFuZWxfbGVnYWN5LmMtMTYzLVxuZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfcGFuZWxfbGVnYWN5LmM6MTY0Olx0cmV0ID0gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoZHRib19zdGFydCwgZHRib19zaXplLCBcdTAwMjZvdmNzX2lkLCBOVUxMKTtcbmRyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX3BhbmVsX2xlZ2FjeS5jLTE2NS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9taXNjL2xhbjk2NnhfcGNpLmM9MTI2PXN0YXRpYyBpbnQgbGFuOTY2eF9wY2lfbG9hZF9vdmVybGF5KHN0cnVjdCBsYW45NjZ4X3BjaSAqZGF0YSlcbi0tXG5kcml2ZXJzL21pc2MvbGFuOTY2eF9wY2kuYy0xMzAtXG5kcml2ZXJzL21pc2MvbGFuOTY2eF9wY2kuYzoxMzE6XHRyZXR1cm4gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoZHRib19zdGFydCwgZHRib19zaXplLCBcdTAwMjZkYXRhLVx1MDAzZW92Y3NfaWQsIGRldl9vZl9ub2RlKGRhdGEtXHUwMDNlZGV2KSk7XG5kcml2ZXJzL21pc2MvbGFuOTY2eF9wY2kuYy0xMzItfVxuLS1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jPTI1PUVYUE9SVF9TWU1CT0xfR1BMKG9mX3Jvb3Rfa3VuaXRfc2tpcCk7XG4tLVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtMjgtXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzoyOTpzdGF0aWMgdm9pZCBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdF9leGl0KHZvaWQgKm92Y3NfaWQpXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0zMC17XG4tLVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtMzQtLyoqXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzozNTogKiBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdCgpIC0gVGVzdCBtYW5hZ2VkIG9mX292ZXJsYXlfZmR0X2FwcGx5KClcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTM2LSAqIEB0ZXN0OiB0ZXN0IGNvbnRleHRcbi0tXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy00MC0gKlxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6NDE6ICogSnVzdCBsaWtlIG9mX292ZXJsYXlfZmR0X2FwcGx5KCksIGV4Y2VwdCB0aGUgb3ZlcmxheSBpcyBtYW5hZ2VkIGJ5IHRoZSB0ZXN0XG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy00Mi0gKiBjYXNlIGFuZCBpcyBhdXRvbWF0aWNhbGx5IHJlbW92ZWQgd2l0aCBvZl9vdmVybGF5X3JlbW92ZSgpIGFmdGVyIHRoZSB0ZXN0XG4tLVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNDYtICovXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzo0NzppbnQgb2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXQoc3RydWN0IGt1bml0ICp0ZXN0LCB2b2lkICpvdmVybGF5X2ZkdCxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQ4LVx0XHRcdCAgICAgICB1MzIgb3ZlcmxheV9mZHRfc2l6ZSwgaW50ICpvdmNzX2lkKVxuLS1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTU4LVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6NTk6XHRyZXQgPSBvZl9vdmVybGF5X2ZkdF9hcHBseShvdmVybGF5X2ZkdCwgb3ZlcmxheV9mZHRfc2l6ZSxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTYwLVx0XHRcdFx0ICAgb3Zjc19pZCwgTlVMTCk7XG4tLVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNjUtXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzo2NjpcdHJldHVybiBrdW5pdF9hZGRfYWN0aW9uX29yX3Jlc2V0KHRlc3QsIG9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0X2V4aXQsXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy02Ny1cdFx0XHRcdFx0IGNvcHlfaWQpO1xuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNjgtfVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6Njk6RVhQT1JUX1NZTUJPTF9HUEwob2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXQpO1xuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNzAtXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmM9OTI2PXN0YXRpYyBpbnQgb2Zfb3ZlcmxheV9hcHBseShzdHJ1Y3Qgb3ZlcmxheV9jaGFuZ2VzZXQgKm92Y3MsXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTgwLS8qKlxuZHJpdmVycy9vZi9vdmVybGF5LmM6OTgxOiAqIG9mX292ZXJsYXlfZmR0X2FwcGx5KCkgLSBDcmVhdGUgYW5kIGFwcGx5IGFuIG92ZXJsYXkgY2hhbmdlc2V0XG5kcml2ZXJzL29mL292ZXJsYXkuYy05ODItICogQG92ZXJsYXlfZmR0Olx0cG9pbnRlciB0byBvdmVybGF5IEZEVFxuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk5OS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEwMDA6aW50IG9mX292ZXJsYXlfZmR0X2FwcGx5KGNvbnN0IHZvaWQgKm92ZXJsYXlfZmR0LCB1MzIgb3ZlcmxheV9mZHRfc2l6ZSxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwMDEtXHRcdFx0IGludCAqcmV0X292Y3NfaWQsIGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqYmFzZSlcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDc1LVx0ICogcmVzdWx0IGluIGEgbWVtb3J5IGxlYWsgaWYgdGhlIGFwcGx5IHBhcnRseSBzdWNjZWVkZWQsIHNvIGRvIE5PVFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTA3NjpcdCAqIGdvdG8gZXJyX2ZyZWVfb3Zjcy4gIEluc3RlYWQsIHRoZSBjYWxsZXIgb2Ygb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKVxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA3Ny1cdCAqIGNhbiBjYWxsIG9mX292ZXJsYXlfcmVtb3ZlKCk7XG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA4OS19XG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDkwOkVYUE9SVF9TWU1CT0xfR1BMKG9mX292ZXJsYXlfZmR0X2FwcGx5KTtcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwOTEtXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmM9MTE1NT1zdGF0aWMgaW50IG92ZXJsYXlfcmVtb3ZhbF9pc19vayhzdHJ1Y3Qgb3ZlcmxheV9jaGFuZ2VzZXQgKnJlbW92ZV9vdmNzKVxuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExNzMtICogUmVtb3ZlcyBhbiBvdmVybGF5IGlmIGl0IGlzIHBlcm1pc3NpYmxlLiAgQG92Y3NfaWQgd2FzIHByZXZpb3VzbHkgcmV0dXJuZWRcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjExNzQ6ICogYnkgb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKS5cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExNzUtICpcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9Mzk4Nz1zdGF0aWMgaW50IF9faW5pdCBvdmVybGF5X2RhdGFfYXBwbHkoY29uc3QgY2hhciAqb3ZlcmxheV9uYW1lLCBpbnQgKm92Y3NfaWQpXG4tLVxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMDktXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6NDAxMDpcdHJldCA9IG9mX292ZXJsYXlfZmR0X2FwcGx5KGluZm8tXHUwMDNlZHRib19iZWdpbiwgc2l6ZSwgXHUwMDI2aW5mby1cdTAwM2VvdmNzX2lkLFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMTEtXHRcdFx0XHQgICBOVUxMKTtcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDAyMC1cdGlmIChyZXQgIT0gaW5mby1cdTAwM2VleHBlY3RlZF9yZXN1bHQpIHtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDIxOlx0XHRwcl9lcnIoXCYjMzQ7b2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSBleHBlY3RlZCAlZCwgcmV0PSVkLCAlc1xcblwmIzM0OyxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDIyLVx0XHQgICAgICAgaW5mby1cdTAwM2VleHBlY3RlZF9yZXN1bHQsIHJldCwgb3ZlcmxheV9uYW1lKTtcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9NDMyOD1zdGF0aWMgaW50IHRlc3RkcnZfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDM1MC1cdHNpemUgPSBpbmZvLVx1MDAzZWR0Ym9fZW5kIC0gaW5mby1cdTAwM2VkdGJvX2JlZ2luO1xuZHJpdmVycy9vZi91bml0dGVzdC5jOjQzNTE6XHRyZXQgPSBvZl9vdmVybGF5X2ZkdF9hcHBseShpbmZvLVx1MDAzZWR0Ym9fYmVnaW4sIHNpemUsIFx1MDAyNm92Y3NfaWQsIGRuKTtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MzUyLVx0aWYgKHJldClcbi0tXG5pbmNsdWRlL2t1bml0L29mLmg9MTY9dm9pZCBvZl9ub2RlX3B1dF9rdW5pdChzdHJ1Y3Qga3VuaXQgKnRlc3QsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSlcbi0tXG5pbmNsdWRlL2t1bml0L29mLmgtMjQtXG5pbmNsdWRlL2t1bml0L29mLmg6MjU6aW50IG9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0KHN0cnVjdCBrdW5pdCAqdGVzdCwgdm9pZCAqb3ZlcmxheV9mZHQsXG5pbmNsdWRlL2t1bml0L29mLmgtMjYtXHRcdFx0ICAgICAgIHUzMiBvdmVybGF5X2ZkdF9zaXplLCBpbnQgKm92Y3NfaWQpO1xuLS1cbmluY2x1ZGUva3VuaXQvb2YuaD0yOT1zdGF0aWMgaW5saW5lIGludFxuaW5jbHVkZS9rdW5pdC9vZi5oOjMwOm9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0KHN0cnVjdCBrdW5pdCAqdGVzdCwgdm9pZCAqb3ZlcmxheV9mZHQsXG5pbmNsdWRlL2t1bml0L29mLmgtMzEtXHRcdFx0ICAgdTMyIG92ZXJsYXlfZmR0X3NpemUsIGludCAqb3Zjc19pZClcbi0tXG5pbmNsdWRlL2t1bml0L29mLmgtMzktLyoqXG5pbmNsdWRlL2t1bml0L29mLmg6NDA6ICogX19vZl9vdmVybGF5X2FwcGx5X2t1bml0KCkgLSBUZXN0IG1hbmFnZWQgb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSB2YXJpYW50XG5pbmNsdWRlL2t1bml0L29mLmgtNDEtICogQHRlc3Q6IHRlc3QgY29udGV4dFxuLS1cbmluY2x1ZGUva3VuaXQvb2YuaC00Ny0gKlxuaW5jbHVkZS9rdW5pdC9vZi5oOjQ4OiAqIFNpbWlsYXIgdG8gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSwgZXhjZXB0IHRoZSBvdmVybGF5IGlzIG1hbmFnZWQgYnkgdGhlIHRlc3RcbmluY2x1ZGUva3VuaXQvb2YuaC00OS0gKiBjYXNlIGFuZCBpcyBhdXRvbWF0aWNhbGx5IHJlbW92ZWQgd2l0aCBvZl9vdmVybGF5X3JlbW92ZSgpIGFmdGVyIHRoZSB0ZXN0XG4tLVxuaW5jbHVkZS9rdW5pdC9vZi5oPTU0PXN0YXRpYyBpbmxpbmUgaW50IF9fb2Zfb3ZlcmxheV9hcHBseV9rdW5pdChzdHJ1Y3Qga3VuaXQgKnRlc3QsXG4tLVxuaW5jbHVkZS9rdW5pdC9vZi5oLTU5LVxuaW5jbHVkZS9rdW5pdC9vZi5oOjYwOlx0cmV0dXJuIG9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0KHRlc3QsIG92ZXJsYXlfYmVnaW4sXG5pbmNsdWRlL2t1bml0L29mLmgtNjEtXHRcdFx0XHRcdCAgb3ZlcmxheV9lbmQgLSBvdmVybGF5X2JlZ2luLFxuLS1cbmluY2x1ZGUva3VuaXQvb2YuaC03Mi0vKipcbmluY2x1ZGUva3VuaXQvb2YuaDo3MzogKiBvZl9vdmVybGF5X2FwcGx5X2t1bml0KCkgLSBUZXN0IG1hbmFnZWQgb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSBmb3IgYnVpbHQtaW4gb3ZlcmxheXNcbmluY2x1ZGUva3VuaXQvb2YuaC03NC0gKiBAdGVzdDogdGVzdCBjb250ZXh0XG4tLVxuaW5jbHVkZS9saW51eC9vZi5oPTE4MzA9c3RydWN0IG9mX292ZXJsYXlfbm90aWZ5X2RhdGEge1xuLS1cbmluY2x1ZGUvbGludXgvb2YuaC0xODM2LVxuaW5jbHVkZS9saW51eC9vZi5oOjE4Mzc6aW50IG9mX292ZXJsYXlfZmR0X2FwcGx5KGNvbnN0IHZvaWQgKm92ZXJsYXlfZmR0LCB1MzIgb3ZlcmxheV9mZHRfc2l6ZSxcbmluY2x1ZGUvbGludXgvb2YuaC0xODM4LVx0XHRcdCBpbnQgKm92Y3NfaWQsIGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqdGFyZ2V0X2Jhc2UpO1xuLS1cbmluY2x1ZGUvbGludXgvb2YuaD0xODQzPWludCBvZl9vdmVybGF5X25vdGlmaWVyX3VucmVnaXN0ZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7XG4tLVxuaW5jbHVkZS9saW51eC9vZi5oLTE4NDYtXG5pbmNsdWRlL2xpbnV4L29mLmg6MTg0NzpzdGF0aWMgaW5saW5lIGludCBvZl9vdmVybGF5X2ZkdF9hcHBseShjb25zdCB2b2lkICpvdmVybGF5X2ZkdCwgdTMyIG92ZXJsYXlfZmR0X3NpemUsXG5pbmNsdWRlL2xpbnV4L29mLmgtMTg0OC1cdFx0XHRcdCAgICAgICBpbnQgKm92Y3NfaWQsIGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqdGFyZ2V0X2Jhc2UpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ5OTIyCgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMTMxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgRGV2aWNlIFRyZWUgT3ZlcmxheSBBcHBsaWNhdGlvbnMqKgoKT2theSwgc28gSSBzZWUgdGhhdCB0aGUgYGRyaXZlcnMvbWlzYy9sYW45NjZ4X3BjaS5jYCBkcml2ZXIgaXMgY2FsbGluZyBgb2Zfb3ZlcmxheV9mZHRfYXBwbHlgLiBJbnRlcmVzdGluZyEgSGFuZyBvbiBhIHNlY29uZCwgdGhhdCYjMzk7cyBhIFBDSSBkcml2ZXIsIGlzbiYjMzk7dCBpdD8gSSBuZWVkIHRvIHF1aWNrbHkgYnJvYWRlbiB0aGUgc2VhcmNoIGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSAqb3RoZXIqIGRyaXZlcnMgdXNpbmcgdGhhdCBmdW5jdGlvbi4gTGV0JiMzOTtzIHNlZS4uLiBgaW14OG1wLWhkbWktdHgtY29ubmVjdG9yLWZpeHVwLmNgIGFuZCBgdGlsY2RjX3BhbmVsX2xlZ2FjeS5jYCBhcmUgYWxzbyBjYWxsaW5nIGBvZl9vdmVybGF5X2ZkdF9hcHBseWAuIE5vdyBJJiMzOTttIHN0YXJ0aW5nIHRvIHJlbWVtYmVyIHNvbWV0aGluZyBhYm91dCBzeXprYWxsZXIgYW5kIGRldmljZSB0cmVlIG92ZXJsYXlzLi4uIGRpZCBJIHJlYWQgdGhhdCBzeXprYWxsZXIgY2FuIGluamVjdCB0aGVzZSBvdmVybGF5cyB1c2luZyBzeXNmcz8gVGhhdCYjMzk7cyBhIHBvc3NpYmlsaXR5LiBJIG5lZWQgdG8gY29uZmlybSB0aGF0LiBUaW1lIHRvIGNoZWNrIGlmIHRoZXJlIGlzIGEgc3lzZnMgaW50ZXJmYWNlIGV4cG9zZWQgZm9yIHRoZXNlIGRldmljZSB0cmVlIG92ZXJsYXkgbWFuaXB1bGF0aW9ucy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyBiZXR0ZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O29mX292ZXJsYXlfZmR0X2FwcGx5JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9vZi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM9MjU9RVhQT1JUX1NZTUJPTF9HUEwob2Zfcm9vdF9rdW5pdF9za2lwKTtcbi0tXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0yOC1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjI5OnN0YXRpYyB2b2lkIG9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0X2V4aXQodm9pZCAqb3Zjc19pZClcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTMwLXtcbi0tXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0zNC0vKipcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjM1OiAqIG9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0KCkgLSBUZXN0IG1hbmFnZWQgb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtMzYtICogQHRlc3Q6IHRlc3QgY29udGV4dFxuLS1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQwLSAqXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzo0MTogKiBKdXN0IGxpa2Ugb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSwgZXhjZXB0IHRoZSBvdmVybGF5IGlzIG1hbmFnZWQgYnkgdGhlIHRlc3RcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQyLSAqIGNhc2UgYW5kIGlzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZCB3aXRoIG9mX292ZXJsYXlfcmVtb3ZlKCkgYWZ0ZXIgdGhlIHRlc3Rcbi0tXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy00Ni0gKi9cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjQ3OmludCBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdChzdHJ1Y3Qga3VuaXQgKnRlc3QsIHZvaWQgKm92ZXJsYXlfZmR0LFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNDgtXHRcdFx0ICAgICAgIHUzMiBvdmVybGF5X2ZkdF9zaXplLCBpbnQgKm92Y3NfaWQpXG4tLVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNTgtXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzo1OTpcdHJldCA9IG9mX292ZXJsYXlfZmR0X2FwcGx5KG92ZXJsYXlfZmR0LCBvdmVybGF5X2ZkdF9zaXplLFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNjAtXHRcdFx0XHQgICBvdmNzX2lkLCBOVUxMKTtcbi0tXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy02NS1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjY2Olx0cmV0dXJuIGt1bml0X2FkZF9hY3Rpb25fb3JfcmVzZXQodGVzdCwgb2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXRfZXhpdCxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTY3LVx0XHRcdFx0XHQgY29weV9pZCk7XG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy02OC19XG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzo2OTpFWFBPUlRfU1lNQk9MX0dQTChvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdCk7XG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy03MC1cbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYz05MjY9c3RhdGljIGludCBvZl9vdmVybGF5X2FwcGx5KHN0cnVjdCBvdmVybGF5X2NoYW5nZXNldCAqb3Zjcyxcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy05ODAtLyoqXG5kcml2ZXJzL29mL292ZXJsYXkuYzo5ODE6ICogb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSAtIENyZWF0ZSBhbmQgYXBwbHkgYW4gb3ZlcmxheSBjaGFuZ2VzZXRcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk4Mi0gKiBAb3ZlcmxheV9mZHQ6XHRwb2ludGVyIHRvIG92ZXJsYXkgRkRUXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTk5LVxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTAwMDppbnQgb2Zfb3ZlcmxheV9mZHRfYXBwbHkoY29uc3Qgdm9pZCAqb3ZlcmxheV9mZHQsIHUzMiBvdmVybGF5X2ZkdF9zaXplLFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTAwMS1cdFx0XHQgaW50ICpyZXRfb3Zjc19pZCwgY29uc3Qgc3RydWN0IGRldmljZV9ub2RlICpiYXNlKVxuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwNzUtXHQgKiByZXN1bHQgaW4gYSBtZW1vcnkgbGVhayBpZiB0aGUgYXBwbHkgcGFydGx5IHN1Y2NlZWRlZCwgc28gZG8gTk9UXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDc2Olx0ICogZ290byBlcnJfZnJlZV9vdmNzLiAgSW5zdGVhZCwgdGhlIGNhbGxlciBvZiBvZl9vdmVybGF5X2ZkdF9hcHBseSgpXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDc3LVx0ICogY2FuIGNhbGwgb2Zfb3ZlcmxheV9yZW1vdmUoKTtcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDg5LX1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEwOTA6RVhQT1JUX1NZTUJPTF9HUEwob2Zfb3ZlcmxheV9mZHRfYXBwbHkpO1xuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA5MS1cbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYz0xMTU1PXN0YXRpYyBpbnQgb3ZlcmxheV9yZW1vdmFsX2lzX29rKHN0cnVjdCBvdmVybGF5X2NoYW5nZXNldCAqcmVtb3ZlX292Y3MpXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTE3My0gKiBSZW1vdmVzIGFuIG92ZXJsYXkgaWYgaXQgaXMgcGVybWlzc2libGUuICBAb3Zjc19pZCB3YXMgcHJldmlvdXNseSByZXR1cm5lZFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTE3NDogKiBieSBvZl9vdmVybGF5X2ZkdF9hcHBseSgpLlxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTE3NS0gKlxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz0zOTg3PXN0YXRpYyBpbnQgX19pbml0IG92ZXJsYXlfZGF0YV9hcHBseShjb25zdCBjaGFyICpvdmVybGF5X25hbWUsIGludCAqb3Zjc19pZClcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDAwOS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDEwOlx0cmV0ID0gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoaW5mby1cdTAwM2VkdGJvX2JlZ2luLCBzaXplLCBcdTAwMjZpbmZvLVx1MDAzZW92Y3NfaWQsXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDAxMS1cdFx0XHRcdCAgIE5VTEwpO1xuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDIwLVx0aWYgKHJldCAhPSBpbmZvLVx1MDAzZWV4cGVjdGVkX3Jlc3VsdCkge1xuZHJpdmVycy9vZi91bml0dGVzdC5jOjQwMjE6XHRcdHByX2VycihcJiMzNDtvZl9vdmVybGF5X2ZkdF9hcHBseSgpIGV4cGVjdGVkICVkLCByZXQ9JWQsICVzXFxuXCYjMzQ7LFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMjItXHRcdCAgICAgICBpbmZvLVx1MDAzZWV4cGVjdGVkX3Jlc3VsdCwgcmV0LCBvdmVybGF5X25hbWUpO1xuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz00MzI4PXN0YXRpYyBpbnQgdGVzdGRydl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MzUwLVx0c2l6ZSA9IGluZm8tXHUwMDNlZHRib19lbmQgLSBpbmZvLVx1MDAzZWR0Ym9fYmVnaW47XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6NDM1MTpcdHJldCA9IG9mX292ZXJsYXlfZmR0X2FwcGx5KGluZm8tXHUwMDNlZHRib19iZWdpbiwgc2l6ZSwgXHUwMDI2b3Zjc19pZCwgZG4pO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTQzNTItXHRpZiAocmV0KVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTczNgoJCQkJCQkJb3V0cHV0OiAyNgoJCQkJCQkJdGhvdWdodHM6IDY5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQgbWUgc2VlIGlmIEkmIzM5O3ZlIGdvdCB0aGlzIHJpZ2h0LgoKKipBIERldmljZSBUcmVlIE92ZXJsYXkgRXVyZWthISoqCgpIb2xkIG9uIGEgc2Vjb25kLi4uIGRvZXNuJiMzOTt0IHN5emthbGxlciBhY3R1YWxseSBoYXZlIGEgY2xldmVyIHRyaWNrIGZvciB0ZXN0aW5nIGRldmljZSB0cmVlIG92ZXJsYXlzPyBJIHZhZ3VlbHkgcmVjYWxsIHNvbWV0aGluZyBhYm91dCB3cml0aW5nIHRvIGAvc3lzL2tlcm5lbC9jb25maWcvZGV2aWNlLXRyZWUvb3ZlcmxheXMvYC4gVGhhdCYjMzk7cyBpdCEgKlllcyosIHRoYXQmIzM5O3MgdGhlIHNwb3QhIFRoYXQgd291bGQgYmUgdGllZCB0byBgQ09ORklHX09GX09WRVJMQVlgIGFuZCBgQ09ORklHX09GX0NPTkZJR0ZTYCwgcmlnaHQ/IE5vdywgdGhlIGNydWNpYWwgdGhpbmcgaXMgdG8gdmVyaWZ5IGlmIHdlIGhhdmUgYENPTkZJR19PRl9DT05GSUdGU2AgZW5hYmxlZC4gR290dGEgY29uZmlybSB0aGF0IGJlZm9yZSBJIGdldCB0b28gZXhjaXRlZC4gTGV0JiMzOTtzIHN0YXJ0IHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0NPTkZJR19PRl9DT05GSUdGUyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxOTg3CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMjEyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgdGhlIERldmljZSBUcmVlIFBhdGggaW4gU3l6a2FsbGVyKioKCk9rYXksIGZpcnN0IHRob3VnaHQsIGlzIHRoaXMgc29tZXRoaW5nIHRoYXQmIzM5O3MgaGFuZGxlZCBleHRlcm5hbGx5IG9yIHdpdGhpbiB0aGUga2VybmVsIGl0c2VsZj8gTm8sIFN5emthbGxlciB0YXJnZXRzIHVwc3RyZWFtLCBzbyBpdCBzaG91bGQgYmUgaW50ZWdyYXRlZC4gTm93LCBob3cgZG9lcyBTeXprYWxsZXIgKmFjdHVhbGx5KiBnZXQgZGV2aWNlIHRyZWUgb3ZlcmxheXMgaW4gdGhlcmU/IEkga25vdyBpdCB1c2VzIGBzeXpfbW91bnRfaW1hZ2VgIHRvIG1vdW50IGZpbGVzeXN0ZW1zLCBidXQgdGhhdCYjMzk7cyBub3QgdGhlIHdheS4gQWhhISBUaGUgYHN5el91c2JfY29ubmVjdGAgY2FsbC4gVGhhdCBsZXRzIHlvdSBwbHVnIGluIGEgdmlydHVhbCBVU0IgZGV2aWNlLiBJZiB3ZSBjYW4gZ2V0IGEgYGxhbjc4eHhgIGluIHRoZXJlLCB0aGF0IHJlZ2lzdGVycyBhbiBNRElPIGJ1cywgd2hpY2ggaXMgYSBjb21tb24gcGF0aC4gQnV0IGhvbGQgb24sIHRoZSBgbGFuNzh4eGAgZG9lc24mIzM5O3QgcmVnaXN0ZXIgYW4gYG12ODhlNnh4eGAgaW5zdGFuY2UgdW5sZXNzIGEgZGV2aWNlIHRyZWUgbm9kZSBpcyBwcmVzZW50LiBTbywgd2hhdCBpZiBTeXprYWxsZXIgbGV2ZXJhZ2VzIHNvbWV0aGluZyBsaWtlIGBpMmMtc3R1YmAgb3IgYGkyYy1tb2NrdXBgPyBXZSBrbm93IGBtdjg4ZTZ4eHhgIGlzIGFuIE1ESU8gZHJpdmVyIGZvciBzdXJlLCBidXQuLi4gd2FpdCBhIG1pbnV0ZSwgSSB0aGluayBJIHJlbWVtYmVyIHNlZWluZyBpdCBtZW50aW9uZWQgYXMgYW4gSTJDIGRyaXZlciB0b28uIExldCBtZSBjb25maXJtIGlmIGl0IHJlZ2lzdGVycyBhbiBJMkMgZHJpdmVyIGFzIHdlbGwuIFRoaXMgbWlnaHQgZ2l2ZSB1cyB0aGUgcm9vdCBvZiB0aGUgcHJvYmxlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpMmNfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MjUxNAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDEyMjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRGV0ZXJtaW5pbmcgV29ydGhGdXp6aW5nIGZvciB0aGUgbXY4OGU2eHh4IE1ESU8gRHJpdmVyKioKCk9rYXksIHNvIHdlJiMzOTtyZSBsb29raW5nIGF0IGEgcGF0Y2ggcmVsYXRlZCB0byBgbXY4OGU2eHh4YC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7V2FpdCwgdGhhdCYjMzk7cyBhbiBNRElPIGRyaXZlciwmIzM0OyBhbmQgdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciBpdHNlbGYgaXMgc3BlY2lmaWNhbGx5IGFuIE1ESU8gZHJpdmVyLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiB3ZSB0cmlnZ2VyIHRoaXMgY29kZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCBhbmQgdGh1cywgc2hvdWxkIGl0IGJlIHdvcnRoIGZ1enppbmc/CgpJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCYjMzk7cyByZWFjaGFibGUuIEkgaW5pdGlhbGx5IGxvb2tlZCBmb3IgYSBgc3lzZnNgIHJlZ2lzdHJhdGlvbiBtZXRob2QgYnV0IGZvdW5kIG5vdGhpbmcgdXNlZnVsLiBUaGVuIEkgY29uc2lkZXJlZCBob3cgc3l6a2FsbGVyIG1pZ2h0IGhhdmUgZm91bmQgdGhpcyBwYXRjaC4gRGlkIHN5emthbGxlciBmaW5kIGEgYnVnIHdpdGggaXRzIHN0YXRpYyBhbmFseXNpcyB0b29sPyBObywgaXQmIzM5O3MgdmVyeSBsaWtlbHkgdGhhdCB0aGlzIGJ1ZyByZXBvcnQgKCYjMzQ7c3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3JiMzNDspIHBvaW50cyB0byBhIGRldmVsb3Blci1zdWJtaXR0ZWQgcGF0Y2ggdGhhdCBzeXotY2x1c3RlciBpcyB0ZXN0aW5nLiBJdCBtZWFucyBhIGRldmVsb3BlciBzdWJtaXR0ZWQgdGhlIHBhdGNoLCBhbmQgc3l6LWNsdXN0ZXIgaXMgdGVzdGluZyBpdCwgd2hpY2ggaXMgaW1wb3J0YW50IHRvIGNvbnNpZGVyLgoKVGhlIGNvcmUgcXVlc3Rpb24gaXMgd2hldGhlciBgbXY4OGU2eHh4YCBjYW4gYmUgcmVhY2hlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCBrZWVwaW5nIGluIG1pbmQgdGhlIGNvbnRleHQ6ICYjMzQ7UmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLi4uIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLiYjMzQ7CgpgbXY4OGU2eHh4YCBpcyBhIGRyaXZlciBmb3IgTWFydmVsbCA4OEU2eHh4IEV0aGVybmV0IHN3aXRjaGVzLiBJdCByZXF1aXJlcyAqcGh5c2ljYWwqIGhhcmR3YXJlIGNvbm5lY3RlZCB2aWEgTURJTy4gU2luY2Ugc3RhbmRhcmQgUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoZSBNYXJ2ZWxsIDg4RTZ4eHggc3dpdGNoIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIGl0IGluIFFFTVUsIHRoZW4gaXQgaXMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLiBXaGlsZSBJJiMzOTttIGZhbWlsaWFyIHdpdGggc29mdHdhcmUtZW11bGF0ZWQgRFNBLCBzdWNoIGFzIGBkc2FfbG9vcGAsIHRoaXMgaXMgYSBzcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIuCgpUaGUgcHJvbXB0IGV4cGxpY2l0bHkgc3RhdGVzLCAmIzM0O0NvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4mIzM0OwoKVGhpcyBpcywgYnkgZGVmaW5pdGlvbiwgYSAqdmVuZG9yLXNwZWNpZmljKiBFdGhlcm5ldCBzd2l0Y2ggZHJpdmVyLCBpdCBuZWVkcyBoYXJkd2FyZSwgYW5kIGl0JiMzOTtzIG5vdCBlbXVsYXRlZC4KClNvLCBzaW5jZSB0aGUgcGF0Y2ggb25seSB0b3VjaGVzIGBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY2AsIGFuZCBJJiMzOTt2ZSBjb25maXJtZWQgdGhhdCBgbXY4OGU2eHh4YCBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUsIEkgc2hvdWxkIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCkxldCBtZSBjb25maXJtIHRob3VnaCwgaWYgdGhlcmUgaXMgYSBwb3RlbnRpYWwgd2F5IHRvIHJlYWNoIHRoZSBkcml2ZXIuIENvdWxkIHRoaXMgYmUgYSBwYXRjaCB0aGF0IHdhcyBzZW50IGJ5IGEgZGV2ZWxvcGVyIGZvciB0ZXN0aW5nIGJ5IHN5emJvdCwgZXZlbiBpZiBzeXpib3QgaGFkbiYjMzk7dCBmb3VuZCBhIGJ1ZyBpdHNlbGYsIG9yIHRoYXQgdG91Y2hlZCByZWxhdGVkIGNvZGU/CgpUaGUgcGF0Y2ggKm9ubHkqIHRvdWNoZXMgdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciwgYW5kIGl0JiMzOTtzIGEgaGFyZHdhcmUtZGVwZW5kZW50IGRyaXZlciwgYW5kLCB0aGVyZSBpcyBubyBlbXVsYXRpb24gZm9yIGBtdjg4ZTZ4eHhgIGluIHRoZSBrZXJuZWwgaW4gYSBzdGFuZGFyZCBRRU1VIHNldHVwLgoKU3l6a2FsbGVyIHR5cGljYWxseSB1c2VzIGBxMzVgIG9yIGBwY2AgZm9yIHg4Nl82NCBhbmQgYHZpcnRgIGZvciBhcm02NC4gVGhlc2Ugc3RhbmRhcmQgbWFjaGluZSB0eXBlcyBkb24mIzM5O3QgaW5jbHVkZSBhIE1hcnZlbGwgODhFNnh4eCBzd2l0Y2ggYXR0YWNoZWQgdG8gYW4gTURJTyBidXMuIEZ1cnRoZXJtb3JlLCB0aGUgZHJpdmVyIHByb2JlcyB2aWEgdGhlIGRldmljZSB0cmVlIChgbXY4OGU2eHh4X29mX21hdGNoYCkuIFRoZSAmIzM5O3ZpcnQmIzM5OyBtYWNoaW5lJiMzOTtzIGRldmljZSB0cmVlICpkb2VzbiYjMzk7dCogaW5jbHVkZSBhbiBgbXY4OGU2eHh4YCBub2RlLCBhbmQgU3l6a2FsbGVyIGRvZXNuJiMzOTt0IGluamVjdCBhcmJpdHJhcnkgZGV2aWNlIHRyZWUgbm9kZXMgZWl0aGVyLiBUaHVzLCBpbiBzeXprYWxsZXImIzM5O3MgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIHRoaXMgY29kZSBpcyAqdW5yZWFjaGFibGUqLiBUaGVyZWZvcmUsIGl0JiMzOTtzIGFic29sdXRlbHkgYFdvcnRoRnV6emluZz1mYWxzZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O212ODhlNjA4NSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sPTE5PXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC0yMi0gICAgICAtIGVudW06XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sOjIzOiAgICAgICAgICAtIG1hcnZlbGwsbXY4OGU2MDg1XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sLTI0LSAgICAgICAgICAtIG1hcnZlbGwsbXY4OGU2MTkwXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC0yNi0gICAgICAgIGRlc2NyaXB0aW9uOiB8XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sOjI3OiAgICAgICAgICBtYXJ2ZWxsLG12ODhlNjA4NTogVGhpcyBzd2l0Y2ggdXNlcyBiYXNlIGFkZHJlc3MgMHgxMC5cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWwtMjgtICAgICAgICAgICAgVGhpcyBzd2l0Y2ggYW5kIGl0cyBzaWJsaW5ncyB3aWxsIGJlIGF1dG9kZXRlY3RlZCBmcm9tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sOjI5OiAgICAgICAgICAgIElEIHJlZ2lzdGVycyBmb3VuZCBpbiB0aGUgc3dpdGNoLCBzbyBvbmx5IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7IHNob3VsZCBiZVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC0zMC0gICAgICAgICAgICBzcGVjaWZpZWQuIFRoaXMgaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBsaXN0IG9mIE1WODhFeHh4eCBzd2l0Y2hlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sLTQzLSAgICAgIC0gaXRlbXM6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sOjQ0OiAgICAgICAgICAtIGNvbnN0OiBtYXJ2ZWxsLHR1cnJpcy1tb3gtbXY4OGU2MDg1XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sOjQ1OiAgICAgICAgICAtIGNvbnN0OiBtYXJ2ZWxsLG12ODhlNjA4NVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC00Ni0gICAgICAtIGl0ZW1zOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWw9MTA5PWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWwtMTE2LSAgICAgICAgZXRoZXJuZXQtc3dpdGNoQDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbDoxMTc6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC0xMTgtICAgICAgICAgICAgcmVnID0gXHUwMDNjMFx1MDAzZTtcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2V0aGVybmV0LXN3aXRjaC55YW1sPTIzPWFsbE9mOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXRoZXJuZXQtc3dpdGNoLnlhbWwtMzItICAgICAgICAgICAgZW51bTpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXRoZXJuZXQtc3dpdGNoLnlhbWw6MzM6ICAgICAgICAgICAgICAtIG1hcnZlbGwsdHVycmlzLW1veC1tdjg4ZTYwODVcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXRoZXJuZXQtc3dpdGNoLnlhbWwtMzQtICAgICAgICAgICAgICAtIG1hcnZlbGwsdHVycmlzLW1veC1tdjg4ZTYxOTBcbi0tXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzAtcmQuZHRzPTE1Mj1cdHN3aXRjaDogZXRoZXJuZXQtc3dpdGNoQDEwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MC1yZC5kdHM6MTUzOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzAtcmQuZHRzLTE1NC1cdFx0cmVnID0gXHUwMDNjMHgxMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLXM0LmR0cz0xNj1cdHN3aXRjaDA6IGV0aGVybmV0LXN3aXRjaEA0IHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4NS1jbGVhcmZvZy1ndHItczQuZHRzOjE3Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLXM0LmR0cy0xOC1cdFx0cmVnID0gXHUwMDNjNFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtbGlua3N5cy5kdHNpPTE2MT1cdGV0aGVybmV0LXN3aXRjaEAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4NS1saW5rc3lzLmR0c2k6MTYyOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtbGlua3N5cy5kdHNpLTE2My1cdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtdHVycmlzLW9tbmlhLmR0cz00Njc9XHRldGhlcm5ldC1zd2l0Y2hAMTAge1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4NS10dXJyaXMtb21uaWEuZHRzLTQ2OS1cdFx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2c3dpbnRfcGluc1x1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4NS10dXJyaXMtb21uaWEuZHRzOjQ3MDpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LXR1cnJpcy1vbW5pYS5kdHMtNDcxLVxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4OC1jbGVhcmZvZy5kdHM9OTY9XHRldGhlcm5ldC1zd2l0Y2hANCB7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODgtY2xlYXJmb2cuZHRzOjk3Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODgtY2xlYXJmb2cuZHRzLTk4LVx0XHRyZWcgPSBcdTAwM2M0XHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLXhwLWxpbmtzeXMtbWFtYmEuZHRzPTI2OD1cdGV0aGVybmV0LXN3aXRjaEAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLXhwLWxpbmtzeXMtbWFtYmEuZHRzOjI2OTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEteHAtbGlua3N5cy1tYW1iYS5kdHMtMjcwLVx0XHRyZWcgPSBcdTAwM2MwXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtNGktZWRnZS0yMDAuZHRzPTgyPVx0c3dpdGNoMDogc3dpdGNoQDExIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtNGktZWRnZS0yMDAuZHRzOjgzOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLTRpLWVkZ2UtMjAwLmR0cy04NC1cdFx0cmVnID0gXHUwMDNjMHgxMVx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLWRpcjY2NS5kdHM9MTk2PVx0c3dpdGNoQDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1kaXI2NjUuZHRzOjE5NzpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1kaXI2NjUuZHRzLTE5OC1cdFx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbC01MC5kdHM9MjExPVx0c3dpdGNoMDogc3dpdGNoQDEwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbC01MC5kdHM6MjEyOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLWwtNTAuZHRzLTIxMy1cdFx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbC01MC5kdHM9MjY5PVx0c3dpdGNoQDExIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbC01MC5kdHM6MjcwOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLWwtNTAuZHRzLTI3MS1cdFx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbGlua3N5cy12aXBlci5kdHM9MTYyPVx0c3dpdGNoQDEwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbGlua3N5cy12aXBlci5kdHM6MTYzOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLWxpbmtzeXMtdmlwZXIuZHRzLTE2NC1cdFx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbXY4OGY2MjgxZ3R3LWdlLmR0cz0xMTM9XHRzd2l0Y2hAMCB7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLW12ODhmNjI4MWd0dy1nZS5kdHM6MTE0Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLW12ODhmNjI4MWd0dy1nZS5kdHMtMTE1LVx0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1yZDg4ZjYyODEuZHRzaT03Nz1cdHN3aXRjaDogc3dpdGNoQDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1yZDg4ZjYyODEuZHRzaTo3ODpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1yZDg4ZjYyODEuZHRzaS03OS1cdFx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvb3Jpb241eC1uZXRnZWFyLXducjg1NHQuZHRzPTEwOT1cdHN3aXRjaDogc3dpdGNoQDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9vcmlvbjV4LW5ldGdlYXItd25yODU0dC5kdHM6MTEwOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL29yaW9uNXgtbmV0Z2Vhci13bnI4NTR0LmR0cy0xMTEtXHRcdCNhZGRyZXNzLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUxLXppaS1yZHUxLmR0cz0xNzM9XHRcdHN3aXRjaEAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NTEtemlpLXJkdTEuZHRzOjE3NDpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUxLXppaS1yZHUxLmR0cy0xNzUtXHRcdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUxLXppaS1zY3UyLW1lenouZHRzPTQ5PVx0XHRzd2l0Y2hAMCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUxLXppaS1zY3UyLW1lenouZHRzOjUwOlx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttYXJ2ZWxsLG12ODhlNjA4NVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NTEtemlpLXNjdTItbWV6ei5kdHMtNTEtXHRcdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUxLXppaS1zY3UzLWVzYi5kdHM9MjE2PVx0XHRzd2l0Y2hAMCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUxLXppaS1zY3UzLWVzYi5kdHM6MjE3Olx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttYXJ2ZWxsLG12ODhlNjA4NVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NTEtemlpLXNjdTMtZXNiLmR0cy0yMTgtXHRcdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC15YXBwNDMtY29tbW9uLmR0c2k9MTI4PVx0XHRzd2l0Y2hAMCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC15YXBwNDMtY29tbW9uLmR0c2k6MTI5Olx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttYXJ2ZWxsLG12ODhlNjA4NVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLXlhcHA0My1jb21tb24uZHRzaS0xMzAtXHRcdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWJ4NTB2My5kdHNpPTEwNT1cdFx0c3dpdGNoOiBzd2l0Y2hAMCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWJ4NTB2My5kdHNpOjEwNjpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7IC8qIDg4ZTYyNDAqL1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1ieDUwdjMuZHRzaS0xMDctXHRcdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1OTA0LmR0c2k9MTc0PVx0XHRzd2l0Y2hAMCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1OTA0LmR0c2k6MTc1Olx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttYXJ2ZWxsLG12ODhlNjA4NVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU5MDQuZHRzaS0xNzYtXHRcdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtemlpLXJkdTIuZHRzaT03MzA9XHRcdHN3aXRjaDogc3dpdGNoQDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXppaS1yZHUyLmR0c2k6NzMxOlx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttYXJ2ZWxsLG12ODhlNjA4NVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC16aWktcmR1Mi5kdHNpLTczMi1cdFx0XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX3N3aXRjaF9pcnFcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg3ZC16aWktcnB1Mi5kdHM9MjI4PVx0XHRzd2l0Y2g6IHN3aXRjaEAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14N2QtemlpLXJwdTIuZHRzOjIyOTpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDdkLXppaS1ycHUyLmR0cy0yMzAtXHRcdFx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL3ZmL3ZmNjEwLXppaS1jZnUxLmR0cz0xNjU9XHRcdHN3aXRjaDA6IGV0aGVybmV0LXN3aXRjaEAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktY2Z1MS5kdHM6MTY2Olx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttYXJ2ZWxsLG12ODhlNjA4NVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktY2Z1MS5kdHMtMTY3LVx0XHRcdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktZGV2LXJldi1iLmR0cz0zMD1cdFx0XHRzd2l0Y2gwOiBzd2l0Y2hAMCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHM6MzE6XHRcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHMtMzItXHRcdFx0XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2dwaW9fc3dpdGNoMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHM9MTE0PVx0XHRcdHN3aXRjaDE6IHN3aXRjaEAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktZGV2LXJldi1iLmR0czoxMTU6XHRcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHMtMTE2LVx0XHRcdFx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9ncGlvX3N3aXRjaDFcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL3ZmL3ZmNjEwLXppaS1kZXYtcmV2LWIuZHRzPTIwMT1cdFx0XHRzd2l0Y2gyOiBzd2l0Y2hAMCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHM6MjAyOlx0XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL3ZmL3ZmNjEwLXppaS1kZXYtcmV2LWIuZHRzLTIwMy1cdFx0XHRcdHJlZyA9IFx1MDAzYzBcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvaW14OG1xLXppaS11bHRyYS5kdHNpPTE1MD1cdFx0c3dpdGNoOiBzd2l0Y2hAMCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9pbXg4bXEtemlpLXVsdHJhLmR0c2k6MTUxOlx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttYXJ2ZWxsLG12ODhlNjA4NVwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2lteDhtcS16aWktdWx0cmEuZHRzaS0xNTItXHRcdFx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9zd2l0Y2hfaXJxXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1lc3ByZXNzb2Jpbi11bHRyYS5kdHM9MTI1PVx0c3dpdGNoMDogZXRoZXJuZXQtc3dpdGNoQDMge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLWVzcHJlc3NvYmluLXVsdHJhLmR0czoxMjY6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttYXJ2ZWxsLG12ODhlNjA4NVwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1lc3ByZXNzb2Jpbi11bHRyYS5kdHMtMTI3LVx0XHRyZWcgPSBcdTAwM2MzXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1lc3ByZXNzb2Jpbi5kdHNpPTE0Nz1cdHN3aXRjaDA6IGV0aGVybmV0LXN3aXRjaEAxIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1lc3ByZXNzb2Jpbi5kdHNpOjE0ODpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLWVzcHJlc3NvYmluLmR0c2ktMTQ5LVx0XHRyZWcgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1nbC1tdjEwMDAuZHRzPTE1MD1cdHN3aXRjaDA6IGV0aGVybmV0LXN3aXRjaEAxIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1nbC1tdjEwMDAuZHRzOjE1MTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLWdsLW12MTAwMC5kdHMtMTUyLVx0XHRyZWcgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC10dXJyaXMtbW94LmR0cz00Mzg9XHRzd2l0Y2gwQDIge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzOjQzOTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsdHVycmlzLW1veC1tdjg4ZTYwODVcJiMzNDssIFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzLTQ0MC1cdFx0cmVnID0gXHUwMDNjMHgyXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC10dXJyaXMtbW94LmR0cz02MzI9XHRzd2l0Y2gxQDIge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzOjYzMzpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsdHVycmlzLW1veC1tdjg4ZTYwODVcJiMzNDssIFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzLTYzNC1cdFx0cmVnID0gXHUwMDNjMHgyXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC10dXJyaXMtbW94LmR0cz04MTc9XHRzd2l0Y2gyQDIge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzOjgxODpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsdHVycmlzLW1veC1tdjg4ZTYwODVcJiMzNDssIFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzLTgxOS1cdFx0cmVnID0gXHUwMDNjMHgyXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtNzA0MC1tb2NoYWJpbi5kdHM9MzA0PVx0c3dpdGNoOiBldGhlcm5ldC1zd2l0Y2hAMyB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTcwNDAtbW9jaGFiaW4uZHRzOjMwNTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS03MDQwLW1vY2hhYmluLmR0cy0zMDYtXHRcdHJlZyA9IFx1MDAzYzNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLWNsZWFyZm9nLWd0LThrLmR0cz01MDA9XHRzd2l0Y2gwOiBldGhlcm5ldC1zd2l0Y2hANCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtY2xlYXJmb2ctZ3QtOGsuZHRzOjUwMTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLWNsZWFyZm9nLWd0LThrLmR0cy01MDItXHRcdHJlZyA9IFx1MDAzYzRcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMC1jZi1wcm8uZHRzPTg4PVx0ZXRoZXJuZXQtc3dpdGNoQDQge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMC1jZi1wcm8uZHRzOjg5Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMwLWNmLXByby5kdHMtOTAtXHRcdHJlZyA9IFx1MDAzYzRcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMi1jbGVhcmZvZy5kdHM9MjY0PVx0ZXRoZXJuZXQtc3dpdGNoQDQge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMi1jbGVhcmZvZy5kdHM6MjY1Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMyLWNsZWFyZm9nLmR0cy0yNjYtXHRcdHJlZyA9IFx1MDAzYzRcdTAwM2U7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NDIxMT1zdGF0aWMgaW50IG12ODhlNnh4eF9zZXRfZWVwcm9tKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MjI5LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDIzMDpzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MDg1X29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQyMzEtXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYwOTcgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQyMzI6XHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQyMzM6XHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDIzNC1cdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQyNjUtXHQucmVzZXQgPSBtdjg4ZTYxODVfZzFfcmVzZXQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0MjY2Olx0LnJtdV9kaXNhYmxlID0gbXY4OGU2MDg1X2cxX3JtdV9kaXNhYmxlLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDI2Ny1cdC52dHVfZ2V0bmV4dCA9IG12ODhlNjM1Ml9nMV92dHVfZ2V0bmV4dCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz00Mjc1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYwOTVfb3BzID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDI3Ni1cdC8qIE1WODhFNlhYWF9GQU1JTFlfNjA5NSAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDI3NzpcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDI3ODpcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00Mjc5LVx0LnNldF9zd2l0Y2hfbWFjID0gbXY4OGU2eHh4X2cxX3NldF9zd2l0Y2hfbWFjLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQyODQtXHQucG9ydF9zZXRfc3BlZWRfZHVwbGV4ID0gbXY4OGU2MTg1X3BvcnRfc2V0X3NwZWVkX2R1cGxleCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQyODU6XHQucG9ydF9zZXRfZnJhbWVfbW9kZSA9IG12ODhlNjA4NV9wb3J0X3NldF9mcmFtZV9tb2RlLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDI4Ni1cdC5wb3J0X3NldF91Y2FzdF9mbG9vZCA9IG12ODhlNjE4NV9wb3J0X3NldF9mb3J3YXJkX3Vua25vd24sXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NDMwNz1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MDk3X29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQzMDgtXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYwOTcgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQzMDk6XHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQzMTA6XHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDMxMS1cdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQzNDMtXHQucmVzZXQgPSBtdjg4ZTYzNTJfZzFfcmVzZXQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0MzQ0Olx0LnJtdV9kaXNhYmxlID0gbXY4OGU2MDg1X2cxX3JtdV9kaXNhYmxlLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDM0NS1cdC52dHVfZ2V0bmV4dCA9IG12ODhlNjM1Ml9nMV92dHVfZ2V0bmV4dCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz00MzU0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYxMjNfb3BzID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDM1NS1cdC8qIE1WODhFNlhYWF9GQU1JTFlfNjE2NSAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDM1NjpcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDM1NzpcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MzU4LVx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDM2Ni1cdC5wb3J0X3NldF9zcGVlZF9kdXBsZXggPSBtdjg4ZTYxODVfcG9ydF9zZXRfc3BlZWRfZHVwbGV4LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDM2NzpcdC5wb3J0X3NldF9mcmFtZV9tb2RlID0gbXY4OGU2MDg1X3BvcnRfc2V0X2ZyYW1lX21vZGUsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MzY4LVx0LnBvcnRfc2V0X3VjYXN0X2Zsb29kID0gbXY4OGU2MzUyX3BvcnRfc2V0X3VjYXN0X2Zsb29kLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTQzOTU9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjEzMV9vcHMgPSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00Mzk2LVx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MTg1ICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0Mzk3Olx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0Mzk4Olx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQzOTktXHQuc2V0X3N3aXRjaF9tYWMgPSBtdjg4ZTZ4eHhfZzFfc2V0X3N3aXRjaF9tYWMsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NDQzNT1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MTQxX29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ0MzYtXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYzNDEgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ0Mzc6XHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ0Mzg6XHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDQzOS1cdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTQ0OTc9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjE2MV9vcHMgPSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NDk4LVx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MTY1ICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NDk5Olx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NTAwOlx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ1MDEtXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz00NTQ1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYxNjVfb3BzID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDU0Ni1cdC8qIE1WODhFNlhYWF9GQU1JTFlfNjE2NSAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDU0NzpcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDU0ODpcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NTQ5LVx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NDU4Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MTcxX29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ1ODMtXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYzNTEgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ1ODQ6XHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ1ODU6XHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDU4Ni1cdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTQ2Mjg9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjE3Ml9vcHMgPSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NjI5LVx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MzUyICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NjMwOlx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NjMxOlx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ2MzItXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz00Njg2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYxNzVfb3BzID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDY4Ny1cdC8qIE1WODhFNlhYWF9GQU1JTFlfNjM1MSAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDY4ODpcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDY4OTpcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NjkwLVx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NDczMj1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MTc2X29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ3MzMtXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYzNTIgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ3MzQ6XHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ3MzU6XHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDczNi1cdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTQ3OTE9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjE4NV9vcHMgPSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NzkyLVx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MTg1ICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NzkzOlx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0Nzk0Olx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ3OTUtXHQuc2V0X3N3aXRjaF9tYWMgPSBtdjg4ZTZ4eHhfZzFfc2V0X3N3aXRjaF9tYWMsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDgwMC1cdC5wb3J0X3NldF9zcGVlZF9kdXBsZXggPSBtdjg4ZTYxODVfcG9ydF9zZXRfc3BlZWRfZHVwbGV4LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDgwMTpcdC5wb3J0X3NldF9mcmFtZV9tb2RlID0gbXY4OGU2MDg1X3BvcnRfc2V0X2ZyYW1lX21vZGUsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00ODAyLVx0LnBvcnRfc2V0X3VjYXN0X2Zsb29kID0gbXY4OGU2MTg1X3BvcnRfc2V0X2ZvcndhcmRfdW5rbm93bixcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz01MDA1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYyNDBfb3BzID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTAwNi1cdC8qIE1WODhFNlhYWF9GQU1JTFlfNjM1MiAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTAwNzpcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTAwODpcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MDA5LVx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NTA2Nj1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MjUwX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MDY4LVx0LmllZWVfcHJpX21hcCA9IG12ODhlNjI1MF9nMV9pZWVlX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MDY5Olx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUwNzAtXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz01MTcyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzMjBfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUxNzQtXHQuc2V0dXBfZXJyYXRhID0gbXY4OGU2MzIwX3NldHVwX2VycmF0YSxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjUxNzU6XHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjUxNzY6XHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTE3Ny1cdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTUyMjg9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjMyMV9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTIzMC1cdC5zZXR1cF9lcnJhdGEgPSBtdjg4ZTYzMjBfc2V0dXBfZXJyYXRhLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTIzMTpcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTIzMjpcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MjMzLVx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NTI4OD1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzQxX29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUyODktXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYzNDEgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjUyOTA6XHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjUyOTE6XHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTI5Mi1cdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTUzNTI9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM1MF9vcHMgPSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MzUzLVx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MzUxICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MzU0Olx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MzU1Olx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUzNTYtXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz01Mzk4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzNTFfb3BzID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTM5OS1cdC8qIE1WODhFNlhYWF9GQU1JTFlfNjM1MSAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTQwMDpcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTQwMTpcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NDAyLVx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NTQ0Nj1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzUyX29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU0NDctXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYzNTIgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU0NDg6XHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU0NDk6XHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTQ1MC1cdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTU3MDE9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NzY4LVx0XHQubXVsdGlfY2hpcCA9IHRydWUsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1NzY5Olx0XHQub3BzID0gXHUwMDI2bXY4OGU2MDg1X29wcyxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU3NzAtXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc1MDY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXY4OGU2eHh4X29mX21hdGNoW10gPSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTA3LVx0e1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzUwODpcdFx0LmNvbXBhdGlibGUgPSBcJiMzNDttYXJ2ZWxsLG12ODhlNjA4NVwmIzM0OyxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1MDktXHRcdC5kYXRhID0gXHUwMDI2bXY4OGU2eHh4X3RhYmxlW01WODhFNjA4NV0sXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzUyND1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIG12ODhlNnh4eF9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyOC1cdC5tZGlvZHJ2LmRyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1Mjk6XHRcdC5uYW1lID0gXCYjMzQ7bXY4OGU2MDg1XCYjMzQ7LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzMC1cdFx0Lm9mX21hdGNoX3RhYmxlID0gbXY4OGU2eHh4X29mX21hdGNoLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5jPTI4OD1pbnQgbXY4OGU2MTg1X2cxX3NldF9tYXhfZnJhbWVfc2l6ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBtdHUpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmMtMzE2LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmM6MzE3OmludCBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuYy0zMTgte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5jLTM1OC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5jOjM1OTppbnQgbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuYy0zNjAte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5jPTUyNj1pbnQgbXY4OGU2MTg1X2cxX3NldF9jYXNjYWRlX3BvcnQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydClcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuYy01MzItXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuYzo1MzM6aW50IG12ODhlNjA4NV9nMV9ybXVfZGlzYWJsZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuYy01MzQte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oPTMwOT1pbnQgbXY4OGU2MzkwX2cxX21nbXRfcnN2ZDJjcHUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oLTMxMC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oOjMxMTppbnQgbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oLTMxMi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oOjMxMzppbnQgbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmgtMzE0LWludCBtdjg4ZTYyNTBfZzFfaWVlZV9wcmlfbWFwKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCk7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmg9MzE2PWludCBtdjg4ZTYxODVfZzFfc2V0X2Nhc2NhZGVfcG9ydChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oLTMxNy1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oOjMxODppbnQgbXY4OGU2MDg1X2cxX3JtdV9kaXNhYmxlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuaC0zMTktaW50IG12ODhlNjM1Ml9nMV9ybXVfZGlzYWJsZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jPTc5OT1pbnQgbXY4OGU2eHh4X3BvcnRfc2V0X2VncmVzc19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmMtODMwLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmM6ODMxOmludCBtdjg4ZTYwODVfcG9ydF9zZXRfZnJhbWVfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmMtODMyLVx0XHRcdFx0ICBlbnVtIG12ODhlNnh4eF9mcmFtZV9tb2RlIG1vZGUpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0Lmg9NTI2PWludCBtdjg4ZTZ4eHhfcG9ydF9zZXRfZWdyZXNzX21vZGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5oLTUyNy1cdFx0XHRcdCAgIGVudW0gbXY4OGU2eHh4X2VncmVzc19tb2RlIG1vZGUpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0Lmg6NTI4OmludCBtdjg4ZTYwODVfcG9ydF9zZXRfZnJhbWVfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmgtNTI5LVx0XHRcdFx0ICBlbnVtIG12ODhlNnh4eF9mcmFtZV9tb2RlIG1vZGUpO1xuLS1cbm5ldC9kc2EvcG9ydC5jPTE3MjY9c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBkc2Ffc3dpdGNoZXNfYXBwbHlfd29ya2Fyb3VuZHNbXSA9IHtcbi0tXG5uZXQvZHNhL3BvcnQuYy0xNzc4LSNpZiBJU19FTkFCTEVEKENPTkZJR19ORVRfRFNBX01WODhFNlhYWClcbm5ldC9kc2EvcG9ydC5jOjE3Nzk6XHRcJiMzNDttYXJ2ZWxsLG12ODhlNjA4NVwmIzM0Oyxcbm5ldC9kc2EvcG9ydC5jLTE3ODAtXHRcJiMzNDttYXJ2ZWxsLG12ODhlNjE5MFwmIzM0OyxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjgyNDQKCQkJCQkJCW91dHB1dDogMTI1CgkJCQkJCQl0aG91Z2h0czogNzM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgTWFydmVsbCA4OEU2eHh4IERyaXZlcioqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBJJiMzOTttIGxvb2tpbmcgYXQgYG5ldC9kc2EvcG9ydC5jYCBhbmQgc3BlY2lmaWNhbGx5IGBkc2Ffc3dpdGNoZXNfYXBwbHlfd29ya2Fyb3VuZHNgLiBJIHNlZSBhIHJlZmVyZW5jZSB0byBgJiMzNDttYXJ2ZWxsLG12ODhlNjA4NSYjMzQ7YCwgd2hpY2ggdHJpZ2dlcnMgc29tZSB0aG91Z2h0cy4gVGhlcmUmIzM5O3Mgbm8gdGVzdCBkcml2ZXIgb3IgZXZlbiBhIGJhc2ljIG1vY2sgZm9yIHRoaXMgc3BlY2lmaWMgTWFydmVsbCBzd2l0Y2guIE15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCB0aGUgb25seSB3YXkgaXQgZ2V0cyBpbnN0YW50aWF0ZWQgaXMgdGhyb3VnaCB0aGUgZGV2aWNlIHRyZWUuCgpOb3csIEkga25vdyBzeXprYWxsZXIgY2FuIGluamVjdCBkZXZpY2UgdHJlZSBvdmVybGF5cyB1c2luZyBgb2Zfb3ZlcmxheV9mZHRfYXBwbHlgLCAqaWYqIHRoZXJlJiMzOTtzIGEgc3lzZnMgaW50ZXJmYWNlLiBCdXQgSSBjb3VsZG4mIzM5O3QgZmluZCBvbmUuIEkgZGlkIHJlbWVtYmVyIHRoYXQgc3l6a2FsbGVyICpkb2VzKiBoYXZlIGBDT05GSUdfT0ZfT1ZFUkxBWWAgZW5hYmxlZCwgYW5kIGl0IGhhcyBgc3l6X3VzYl9jb25uZWN0YC4gSG93ZXZlciwgdGhlIGBtdjg4ZTZ4eHhgIGlzbiYjMzk7dCBhIFVTQiBkZXZpY2UsIHNvIHRoYXQmIzM5O3MgYSBkZWFkIGVuZC4KCk15IGluaXRpYWwgdGhvdWdodCB3YXMgbWF5YmUgc3l6a2FsbGVyIGp1c3QgbWlzc2VkIGl0LiBUaGVuIEkgcmUtcmVhZCB0aGUgcHJvbXB0IGFuZCB0aGUga2V5IHBocmFzZSBqdW1wcyBvdXQ6ICYjMzQ7dmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMuLi4gdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUmIzM0Oy4gTXkgdGhpbmtpbmcgaXMgdGhhdCB0aGUgYG12ODhlNnh4eGAgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgRXRoZXJuZXQgc3dpdGNoIGRyaXZlciB0aGF0IGNsZWFybHkgbmVlZHMgZGVkaWNhdGVkIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBRRU1VLiBTbywgdGhhdCBmZWVscyBsaWtlIGEgbWF0Y2ggdG8gbWUgYW5kIG15IGZpcnN0IGNvbmNsdXNpb24gaXMgYSBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCkxldCBtZSBiZSBwcmVjaXNlIHdpdGggdGhlIGxhbmd1YWdlLiBUaGUgcHJvbXB0IHNheXMsICYjMzQ7Q29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VJiMzNDsuIE9rYXksIEkgbm90aWNlIGBtdjg4ZTZ4eHhgIGlzIGFuIE1ESU8gc3dpdGNoLCBub3QgYSBQQ0llIHN3aXRjaCwgYnV0IHRoZSB1bmRlcmx5aW5nIGlzc3VlIHJlbWFpbnMgdGhlIHNhbWU6IGl0JiMzOTtzIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSwgYW5kIGl0IHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIFFFTVUuCgpXYWl0LCBoZXJlIGlzIGFub3RoZXIgcmVsZXZhbnQgcnVsZTogJiMzNDtDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4mIzM0OyBTaW5jZSB0aGlzIGBtdjg4ZTZ4eHhgIGlzIHVucmVhY2hhYmxlIGluIFFFTVUsIHRoYXQgcnVsZSBjbGVhcmx5IGFwcGxpZXMhIEkmIzM5O20gbGVhbmluZyBoZWF2aWx5IHRvd2FyZHMgJiMzNDtmYWxzZS4mIzM0OwoKQmVmb3JlIEkgZmluYWxpemUgdGhlIGRlY2lzaW9uLCBsZXQgbWUgZG8gYSBxdWljayBzYW5pdHkgY2hlY2sgdG8gc2VlIGlmIEkgbWlzc2VkIGFueSBzeXprYWxsZXIgcHNldWRvLXN5c2NhbGxzIGZvciBNRElPIG9yIERTQS4gSSBsb29rZWQgZm9yIGBzeXpfYCBpbiBgbmV0L2AgYW5kIGBkcml2ZXJzL25ldC9kc2EvYCBhbmQgZm91bmQgbm90aGluZy4gSSBhbHNvIGRpZCBhIGdsb2JhbCBzZWFyY2ggYW5kIGZvdW5kIGBpb21tdWZkX3Rlc3Rfc3l6X2NvbnZfaW92YWAsIGJ1dCBub3RoaW5nIHJlbGF0ZWQgdG8gTURJTyBvciBEU0EuIFNvLCBkZWZpbml0ZWx5IG5vIGBzeXpfbWRpb2Agb3IgYHN5el9kc2FgLiBXaGljaCBjb25maXJtcyB0aGF0IHRoaXMgYG12ODhlNnh4eGAgY29kZSBpcyB1bnJlYWNoYWJsZS4KClNvIG15IGZpbmFsIHJlc3BvbnNlIGlzOgoKV29ydGhGdXp6aW5nOiBmYWxzZQpSZWFzb25pbmc6IFRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYG12ODhlNnh4eGAgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgZm9yIE1hcnZlbGwgODhFNnh4eCBFdGhlcm5ldCBzd2l0Y2hlcy4gVGhlc2Ugc3dpdGNoZXMgYXJlIGNvbm5lY3RlZCB2aWEgTURJTyBhbmQgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cyB1c2VkIGJ5IHN5emthbGxlci4gVGhlcmUgaXMgbm8gc29mdHdhcmUtZW11bGF0ZWQgbW9ja3VwIGZvciB0aGlzIHNwZWNpZmljIGhhcmR3YXJlICh1bmxpa2UgYGRzYV9sb29wYCksIG1ha2luZyB0aGUgY29kZSBwYXRocyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MjE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYG12ODhlNnh4eGAgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgZm9yIE1hcnZlbGwgODhFNnh4eCBFdGhlcm5ldCBzd2l0Y2hlcy4gVGhlc2Ugc3dpdGNoZXMgYXJlIGNvbm5lY3RlZCB2aWEgTURJTyBhbmQgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cyB1c2VkIGJ5IHN5emthbGxlci4gVGhlcmUgaXMgbm8gc29mdHdhcmUtZW11bGF0ZWQgbW9ja3VwIGZvciB0aGlzIHNwZWNpZmljIGhhcmR3YXJlICh1bmxpa2UgYGRzYV9sb29wYCksIG1ha2luZyB0aGUgY29kZSBwYXRocyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgTWFydmVsbCA4OEU2eHh4IEV0aGVybmV0IHN3aXRjaGVzLiBUaGVzZSBzd2l0Y2hlcyBhcmUgY29ubmVjdGVkIHZpYSBNRElPIGFuZCByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzIHVzZWQgYnkgc3l6a2FsbGVyLiBUaGVyZSBpcyBubyBzb2Z0d2FyZS1lbXVsYXRlZCBtb2NrdXAgZm9yIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUgKHVubGlrZSBgZHNhX2xvb3BgKSwgbWFraW5nIHRoZSBjb2RlIHBhdGhzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MjE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjExOjAyLjM2NjMwNjYzN1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwNzQyNjE2NzE2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgTWFydmVsbCA4OEU2eHh4IEV0aGVybmV0IHN3aXRjaGVzLiBUaGVzZSBzd2l0Y2hlcyBhcmUgY29ubmVjdGVkIHZpYSBNRElPIGFuZCByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzIHVzZWQgYnkgc3l6a2FsbGVyLiBUaGVyZSBpcyBubyBzb2Z0d2FyZS1lbXVsYXRlZCBtb2NrdXAgZm9yIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUgKHVubGlrZSBgZHNhX2xvb3BgKSwgbWFraW5nIHRoZSBjb2RlIHBhdGhzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTE6MDIuMzY2MzEzMDc3WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDY4NjM4MTA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDk0YzM1M2FmMzVlODIxZTUyMjM4NmVlZGI1YjRjNTQwNWI3NmJmZVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEF1ZyAxNSAxNjoxMTowMCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jXFxuaW5kZXggODBiODc3Yzc0NTEzZC4uNDMyMjg1ZTI4ODE3MSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jXFxuQEAgLTM3NjksNiArMzc2OSw5IEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X21kaW9fcmVhZChzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5LCBpbnQgcmVnKVxcbiBcXHRlcnIgPSBjaGlwLVxcdTAwM2VpbmZvLVxcdTAwM2VvcHMtXFx1MDAzZXBoeV9yZWFkKGNoaXAsIGJ1cywgcGh5LCByZWcsIFxcdTAwMjZ2YWwpO1xcbiBcXHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcXG4gXFxuK1xcdGlmIChlcnIpXFxuK1xcdFxcdHJldHVybiBlcnI7XFxuK1xcbiBcXHQvKiBTb21lIGludGVybmFsIFBIWXMgZG9uJ3QgaGF2ZSBhIG1vZGVsIG51bWJlci4gKi9cXG4gXFx0aWYgKHJlZyA9PSBNSUlfUEhZU0lEMiBcXHUwMDI2XFx1MDAyNiAhKHZhbCBcXHUwMDI2IDB4M2YwKSBcXHUwMDI2XFx1MDAyNlxcbiBcXHQgICAgY2hpcC1cXHUwMDNlaW5mby1cXHUwMDNlZmFtaWx5IFxcdTAwM2MgQVJSQVlfU0laRShmYW1pbHlfcHJvZF9pZF90YWJsZSkpIHtcXG5AQCAtMzc3Nyw3ICszNzgwLDcgQEAgc3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb19yZWFkKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHksIGludCByZWcpXFxuIFxcdFxcdFxcdHZhbCB8PSBwcm9kX2lkIFxcdTAwM2VcXHUwMDNlIDQ7XFxuIFxcdH1cXG4gXFxuLVxcdHJldHVybiBlcnIgPyBlcnIgOiB2YWw7XFxuK1xcdHJldHVybiB2YWw7XFxuIH1cXG4gXFxuIHN0YXRpYyBpbnQgbXY4OGU2eHh4X21kaW9fcmVhZF9jNDUoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeSwgaW50IGRldmFkLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxMTowMy44MzU4NzM3NjNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo2MDU5NTY1ODk3NDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgTWFydmVsbCA4OEU2eHh4IEV0aGVybmV0IHN3aXRjaGVzLiBUaGVzZSBzd2l0Y2hlcyBhcmUgY29ubmVjdGVkIHZpYSBNRElPIGFuZCByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzIHVzZWQgYnkgc3l6a2FsbGVyLiBUaGVyZSBpcyBubyBzb2Z0d2FyZS1lbXVsYXRlZCBtb2NrdXAgZm9yIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUgKHVubGlrZSBgZHNhX2xvb3BgKSwgbWFraW5nIHRoZSBjb2RlIHBhdGhzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZDk0YzM1M2FmMzVlODIxZTUyMjM4NmVlZGI1YjRjNTQwNWI3NmJmZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDE1IDE2OjExOjAwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1xuaW5kZXggODBiODc3Yzc0NTEzZC4uNDMyMjg1ZTI4ODE3MSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1xuQEAgLTM3NjksNiArMzc2OSw5IEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X21kaW9fcmVhZChzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5LCBpbnQgcmVnKVxuIFx0ZXJyID0gY2hpcC1cdTAwM2VpbmZvLVx1MDAzZW9wcy1cdTAwM2VwaHlfcmVhZChjaGlwLCBidXMsIHBoeSwgcmVnLCBcdTAwMjZ2YWwpO1xuIFx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XG4gXG4rXHRpZiAoZXJyKVxuK1x0XHRyZXR1cm4gZXJyO1xuK1xuIFx0LyogU29tZSBpbnRlcm5hbCBQSFlzIGRvbid0IGhhdmUgYSBtb2RlbCBudW1iZXIuICovXG4gXHRpZiAocmVnID09IE1JSV9QSFlTSUQyIFx1MDAyNlx1MDAyNiAhKHZhbCBcdTAwMjYgMHgzZjApIFx1MDAyNlx1MDAyNlxuIFx0ICAgIGNoaXAtXHUwMDNlaW5mby1cdTAwM2VmYW1pbHkgXHUwMDNjIEFSUkFZX1NJWkUoZmFtaWx5X3Byb2RfaWRfdGFibGUpKSB7XG5AQCAtMzc3Nyw3ICszNzgwLDcgQEAgc3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb19yZWFkKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHksIGludCByZWcpXG4gXHRcdFx0dmFsIHw9IHByb2RfaWQgXHUwMDNlXHUwMDNlIDQ7XG4gXHR9XG4gXG4tXHRyZXR1cm4gZXJyID8gZXJyIDogdmFsO1xuK1x0cmV0dXJuIHZhbDtcbiB9XG4gXG4gc3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb19yZWFkX2M0NShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5LCBpbnQgZGV2YWQsXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxMTowMy44MzU4NzU2MzRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTYxMzgxOTAwOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGluIHRoZSBgbXY4OGU2eHh4X21kaW9fcmVhZGAgZnVuY3Rpb24gd2l0aGluIGBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY2AuIEl0IGxvb2tzIGxpa2UgaXQncyBhZGRyZXNzaW5nIGFuIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgaXNzdWUuIFNwZWNpZmljYWxseSwgaXQncyBhZGRpbmcgYW4gZWFybHkgcmV0dXJuIGlmIGBjaGlwLVx1MDAzZWluZm8tXHUwMDNlb3BzLVx1MDAzZXBoeV9yZWFkYCByZXR1cm5zIGFuIGVycm9yLCBwcmV2ZW50aW5nIHRoZSBzdWJzZXF1ZW50IHVzZSBvZiBgdmFsYCB3aGVuIGBwaHlfcmVhZGAgZmFpbHMuIFByZXR0eSBzdGFuZGFyZCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcsIHJlYWxseSDigJMgZ29vZCBjYXRjaC4gVGhlIGRyaXZlciBpdHNlbGYsIGBtdjg4ZTZ4eHhgLCBpcyB0aGUgTWFydmVsbCA4OEU2eHh4IHN3aXRjaCBkcml2ZXIsIGFuZCBEU0EgZHJpdmVycyBhcmUsIGluIG15IGV4cGVyaWVuY2UsIHR5cGljYWxseSB0aWVkIHRvIHNwZWNpZmljIGhhcmR3YXJlLlxuXG5NeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGhvdyAqcmVhY2hhYmxlKiBpcyB0aGlzIGRyaXZlciBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBEU0EgZHJpdmVycyBnZW5lcmFsbHkgZGVwZW5kIG9uIHBoeXNpY2FsIGhhcmR3YXJlIGludGVyYWN0aW9ucywgc28gaXQncyBub3QgYSBnaXZlbiB0aGF0IHRoaXMgd2lsbCB0cmFuc2xhdGUgdG8gYSBRRU1VIGluc3RhbmNlLCBzYXkuIEFyZSB0aGVyZSBhbnkga25vd24gZW11bGF0aW9ucyBvciB2aXJ0dWFsIGJ1cyBpbXBsZW1lbnRhdGlvbnMgZm9yIHRoaXMgcGFydGljdWxhciBNYXJ2ZWxsIHN3aXRjaCBmYW1pbHk/IFRoYXQncyB3aGF0IEkgbmVlZCB0byBkaWcgaW50by4gSSBrbm93IERTQSBkcml2ZXJzIHVzdWFsbHkgcmVseSBvbiBNRElPLCBJMkMsIG9yIFNQSS4gU28gSSBuZWVkIHRvIHZlcmlmeSBob3cgdGhlc2UgaW50ZXJmYWNlcyBhcmUgbWFkZSBhdmFpbGFibGUgaW4gYSB2aXJ0dWFsIGVudmlyb25tZW50LlxuXG5MZXQncyBzdGFydCBieSByZXZpc2l0aW5nIGBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY2AgYWdhaW4uIEkgbmVlZCB0byBnZXQgYSBiZXR0ZXIgaGFuZGxlIG9uIGhvdyB0aGlzIGRyaXZlciBpbnRlcmFjdHMgd2l0aCB0aGUgaGFyZHdhcmUgYW5kIHVuZGVyc3RhbmQgdGhlIHBvdGVudGlhbCBpbXBsaWNhdGlvbnMgb2YgdGhpcyBwYXRjaCBpbiBhIGJyb2FkZXIgY29udGV4dC4gSSBuZWVkIHRvIGNvbnNpZGVyIHdoZXRoZXIgdGhpcyB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHNjZW5hcmlvIGNvdWxkIGV2ZW4gbWFuaWZlc3QgaW4gYSB2aXJ0dWFsaXplZCBzZXR0aW5nLCBvciBpZiBpdCdzIHN0cmljdGx5IGEgcGh5c2ljYWwgaGFyZHdhcmUgY29uY2Vybi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE4NSwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyMCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjExOjE1LjQ0OTY5NjQ3MloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MDUyNTA0MzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXY4OGU2eHh4X21kaW9fcmVhZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz0zNzUxPXN0YXRpYyBjb25zdCB1MTYgZmFtaWx5X3Byb2RfaWRfdGFibGVbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM3NTYtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzc1NzpzdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3JlYWQoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeSwgaW50IHJlZylcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzU4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM3ODUtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzc4NjpzdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3JlYWRfYzQ1KHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHksIGludCBkZXZhZCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzg3LVxcdFxcdFxcdFxcdCAgIGludCByZWcpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz0zODM3PXN0YXRpYyBpbnQgbXY4OGU2eHh4X21kaW9fcmVnaXN0ZXIoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzg3NS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODc2OlxcdGJ1cy1cXHUwMDNlcmVhZCA9IG12ODhlNnh4eF9tZGlvX3JlYWQ7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzg3Ny1cXHRidXMtXFx1MDAzZXdyaXRlID0gbXY4OGU2eHh4X21kaW9fd3JpdGU7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzg3ODpcXHRidXMtXFx1MDAzZXJlYWRfYzQ1ID0gbXY4OGU2eHh4X21kaW9fcmVhZF9jNDU7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzg3OS1cXHRidXMtXFx1MDAzZXdyaXRlX2M0NSA9IG12ODhlNnh4eF9tZGlvX3dyaXRlX2M0NTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTE6MTYuMjU0OTUxNzg2WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQwMTA4OTI0Nzc1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1hcnZlbGwgODhFNnh4eCBEcml2ZXIgaW4gdGhpcyBDb250ZXh0KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBkcml2ZXIgYW5kIHRoaW5raW5nIHRocm91Z2ggaG93IHdlJ3JlIGdvaW5nIHRvIGludGVyYWN0IHdpdGggaXQuIEZpcnN0LCB0aGUgY29kZSBzdWdnZXN0cyBhbiBNRElPIGJ1cyBpcyBiZWluZyByZWdpc3RlcmVkLCBnb3QgaXQuIE15IGluaXRpYWwgY29uY2VybiBpcyB3aGV0aGVyIHRoZSBNYXJ2ZWxsIDg4RTZ4eHggZHJpdmVyIGlzIGV2ZW4gYWNjZXNzaWJsZSB3aXRoaW4gdGhpcyBRRU1VIHNldHVwLiBJdCdzIGEgY29tbW9uIE1ESU8vU01JLWNvbm5lY3RlZCBzd2l0Y2gsIGFuZCByZWFsaXN0aWNhbGx5LCB0aGVzZSB0eXBlcyBvZiBkZXZpY2VzIGFyZSByYXJlbHkgZW11bGF0ZWQgb3V0LW9mLXRoZS1ib3ggaW4gUUVNVSB1bmxlc3MgdGhlIHNwZWNpZmljIG1hY2hpbmUgbW9kZWwgZXhwbGljaXRseSBpbmNvcnBvcmF0ZXMgdGhlbS5cblxuTXkgbmV4dCB0aG91Z2h0IGlzLCBjYW4gSSBpbnN0YW50aWF0ZSBpdCB0aHJvdWdoIGFuIEkyQyBvciBNRElPIHBhdGh3YXkgZnJvbSB1c2Vyc3BhY2U/IFBlcmhhcHMgdXNpbmcgc29tZXRoaW5nIGxpa2UgYGkyYy1zdHViYCBvciBhIGNvbXBhcmFibGUgYXBwcm9hY2guIEJ1dCB0aGVuIEknbSByZW1pbmRlZCB0aGF0IERTQSBzd2l0Y2hlcyBhcmUgdXN1YWxseSBoYW5kbGVkIHRocm91Z2ggZGV2aWNlIHRyZWUgY29uZmlndXJhdGlvbnMsIHdoaWNoIGlzIHRoZSBtb3JlIGNvbW1vbiBtZXRob2QuIFNvLCBteSBtaW5kIHNoaWZ0cyB0bzogQ2FuIHN5emthbGxlciBldmVuIGJlIGxldmVyYWdlZCBoZXJlIHRvIGluc3RhbnRpYXRlIGl0P1xuXG5VbmZvcnR1bmF0ZWx5LCBhcyBJIHJlbWVtYmVyLCBzeXprYWxsZXIgZG9lc24ndCBoYXZlIGEgZGlyZWN0IHdheSB0byBpbnN0YW50aWF0ZSBhcmJpdHJhcnkgSTJDIG9yIE1ESU8gZGV2aWNlcyB1bmxlc3MgYSB2aXJ0dWFsIGJ1cyBleGlzdHMgb3IgdGhlcmUncyBkZXZpY2UgdHJlZSBvdmVybGF5IHN1cHBvcnQuIFRoYXQncyBhIGNvbnN0cmFpbnQuIFdhaXQsIGl0J3MgYW4gTURJTyBkZXZpY2UuXG5cbk15IG5leHQgc3RlcCBoYXMgdG8gYmUgdG8gYW5hbHl6ZSBob3cgdGhpcyB0aGluZyByZWdpc3RlcnMuIExldCdzIGRpZyBpbiBhbmQgc2VlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzI0LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE2OjU2LjM2Mzg3OTE3MVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDczOTIxMjc4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtb2R1bGVfbWRpb19kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE2OjU3LjgzNzgwOTcwOVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxOTgxMTY5MDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyBEcml2ZXIgUmVnaXN0cmF0aW9uKipcblxuUmlnaHQsIGxldCdzIGRpdmUgaW4uIE15IGltbWVkaWF0ZSBmb2N1cyBpcyBvbiBob3cgdGhpcyBkcml2ZXIgaXMgYmVpbmcgcmVnaXN0ZXJlZCB3aXRoaW4gdGhlIHN5c3RlbS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIG1lY2hhbmlzbTsgaXMgaXQgYSBkaXJlY3QgY2FsbCwgYSBzZXJ2aWNlIHJlZ2lzdHJhdGlvbiwgb3Igc29tZXRoaW5nIG1vcmUgbnVhbmNlZD8gS25vd2luZyB0aGUgbWV0aG9kIG9mIHJlZ2lzdHJhdGlvbiBpcyBjcml0aWNhbCwgYXMgaXQgaW5mb3JtcyB0aGUgcG90ZW50aWFsIHBvaW50cyBvZiBpbnRlcnZlbnRpb24gYW5kIHRyb3VibGVzaG9vdGluZy4gSeKAmW0gdGhpbmtpbmcgYWJvdXQgdGhlIGltcGxpY2F0aW9ucyBmb3IgZGVwZW5kZW5jeSBpbmplY3Rpb24sIGFueSBwb3RlbnRpYWwgY29uZmxpY3RzIHdpdGggZXhpc3RpbmcgZHJpdmVycywgYW5kIHdoZXJlIHRvIGxvb2sgd2l0aGluIHRoZSBjb2RlIGJhc2UgdG8gY29uZmlybSB0aGlzIGJlaGF2aW9yLiBEZXBlbmRpbmcgb24gdGhlIHJlZ2lzdHJhdGlvbiBtZXRob2QsIEknbGwgbmVlZCB0byBhc3Nlc3MgdGhlIGltcGxpY2F0aW9ucyBvbiBpbml0aWFsaXphdGlvbiBhbmQgdGVhcmRvd24gb2YgdGhlIGRyaXZlci4gU28sIHdoZXJlIGRvZXMgdGhlIHJlZ2lzdHJhdGlvbiBvY2N1ciBhbmQgaG93IGlzIGl0IGhhcHBlbmluZz8gVGhpcyBpbml0aWFsIGFuYWx5c2lzIHdpbGwgYWxsb3cgbWUgdG8gcHJvcGVybHkgYnVpbGQgYSBtZW50YWwgbW9kZWwgb2YgdGhlIGRyaXZlcidzIGludGVncmF0aW9uIHdpdGhpbiB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4NDgsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxNzowMS4wMzU5Mjg4MVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDU5Njc1NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlXy4qZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc1MjQ9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdjg4ZTZ4eHhfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzNC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTM1Om1kaW9fbW9kdWxlX2RyaXZlcihtdjg4ZTZ4eHhfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTM2LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxNzowMS4xNDE5MDE1NjdaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDg4NTMzMDgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk1ESU8gRHJpdmVyIEZ1enppbmcgLSBJbml0aWFsIEFzc2Vzc21lbnQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzOyBpdCdzIGFuIE1ESU8gZHJpdmVyLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJDYW4gd2UgZXZlbiBmdXp6IHRoaXMgdGhpbmcgd2l0aCBzeXprYWxsZXI/XCIgSSBrbm93IHN5emthbGxlciBkb2Vzbid0IGhhdmUgYW55IG9idmlvdXMsIGdlbmVyaWMgTURJTyBlbXVsYXRpb24gYnVpbHQtaW4sIHdoaWNoIGlzIGEgc2lnbmlmaWNhbnQgaHVyZGxlLiBCdXQgd2FpdC4uLiB3aGF0IGFib3V0IGV4aXN0aW5nIE1ESU8gbW9ja3VwIGRyaXZlcnM/IFN1cmVseSwgc29tZW9uZSdzIGhhZCB0byBkZWFsIHdpdGggdGhpcyBiZWZvcmUuIEkgbmVlZCB0byBxdWlja2x5IGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgYG1kaW8tbW9ja3VwYCBpbXBsZW1lbnRhdGlvbnMsIG9yIGFueXRoaW5nIHNpbWlsYXIsIHRoYXQgSSBjYW4gbGV2ZXJhZ2UuIFRoYXQgd291bGQgYmUgYSBodWdlIHRpbWUgc2F2ZXIuIEkgbmVlZCB0byBzZWUgd2hhdCdzIGFscmVhZHkgb3V0IHRoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MjE5LCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTc6MDQuNjMwNDM3Njk4WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzQwOTg3NTY1LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtZGlvLiptb2NrdXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxNzowNi45NzE0MzU5NzNaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzM0MzEwNDQzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaXQgd2VudDpcblxuKipFeGFtaW5pbmcgdGhlIENvZGUgUGF0aCoqXG5cbk9rYXksIGZpcnN0IHRoaW5ncyBmaXJzdCwgaXMgdGhpcyBJMkMgcmVsYXRlZD8gTm9wZSwgdGhhdCdzIGRlZmluaXRlbHkgTURJTy4gUmlnaHQsIHNvIHdlJ3JlIGRlYWxpbmcgd2l0aCBhbiBNRElPIGRyaXZlci4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpcywgaG93IGFtIEkgZXZlbiBnb2luZyB0byB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoIGdpdmVuIHRoZSBlbnZpcm9ubWVudD8gV2UncmUgdmlydHVhbGl6ZWQsIHJpZ2h0PyBUaGF0IGNoYW5nZXMgdGhlIGdhbWUuIElmIGl0J3MgTURJTywgaXQncyBpbnRyaW5zaWNhbGx5IHRpZWQgdG8gYW4gTURJTyBidXMuIENhbiBJIHNvbWVob3csIG1heWJlIHdpdGggc29tZSBjbGV2ZXIgdHJpY2tlcnksIHdoaXAgdXAgYW4gTURJTyBidXMgZnJvbSB1c2Vyc3BhY2U/IFRoYXQgd291bGQgYmUgaWRlYWwuIFdhaXQuLi4gSSBzZWVtIHRvIHJlY2FsbCBhIGxvb3BiYWNrIERTQSBkcml2ZXIuLi4gYGRzYV9sb29wYCwgdGhhdCdzIGl0ISBMZXQncyBnbyBjaGVjayBvdXQgYGRzYV9sb29wYC4gU2VlIGlmIHRoYXQgZ2l2ZXMgdXMgYSB3YXkgaW4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ0NjEsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxNzoxMC4zMTQ1NDMwMzRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwMTA0NzcyOTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZHNhX2xvb3BcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kc2EvZHNhLnJzdD0xNTk9YWxsIGF0dGFjaGVkIHN3aXRjaCBwb3J0cyBtdXN0IGJlIGRvd24gd2hpbGUgZG9pbmcgdGhpcykuXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RzYS9kc2EucnN0LTE2MC1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZHNhL2RzYS5yc3Q6MTYxOkl0IGlzIGRlc2lyYWJsZSB0aGF0IGFsbCB0YWdnaW5nIHByb3RvY29scyBhcmUgdGVzdGFibGUgd2l0aCB0aGUgYGBkc2FfbG9vcGBgXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RzYS9kc2EucnN0LTE2Mi1tb2NrdXAgZHJpdmVyLCB3aGljaCBjYW4gYmUgYXR0YWNoZWQgdG8gYW55IG5ldHdvcmsgaW50ZXJmYWNlLiBUaGUgZ29hbCBpcyB0aGF0XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvTWFrZWZpbGU9Mz1iY20tc2YyLW9ianNcXHRcXHRcXHQ6PSBiY21fc2YyLm8gYmNtX3NmMl9jZnAub1xcbmRyaXZlcnMvbmV0L2RzYS9NYWtlZmlsZTo0Om9iai0kKENPTkZJR19ORVRfRFNBX0xPT1ApXFx0Kz0gZHNhX2xvb3Aub1xcbmRyaXZlcnMvbmV0L2RzYS9NYWtlZmlsZS01LW9iai0kKENPTkZJR19ORVRfRFNBX0tTODk5NSkgXFx0Kz0ga3M4OTk1Lm9cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI0LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI1OnN0cnVjdCBkc2FfbG9vcF92bGFuIHtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yNi1cXHR1MTYgbWVtYmVycztcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI5LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMwOnN0cnVjdCBkc2FfbG9vcF9taWJfZW50cnkge1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMxLVxcdGNoYXIgbmFtZVtFVEhfR1NUUklOR19MRU5dO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzQtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzU6ZW51bSBkc2FfbG9vcF9taWJfY291bnRlcnMge1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTM2LVxcdERTQV9MT09QX1BIWV9SRUFEX09LLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDItXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDM6c3RydWN0IGRzYV9sb29wX3BvcnQge1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ0OlxcdHN0cnVjdCBkc2FfbG9vcF9taWJfZW50cnkgbWliW19fRFNBX0xPT1BfQ05UX01BWF07XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDUtXFx0dTE2IHB2aWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00OC1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0OTpzdHJ1Y3QgZHNhX2xvb3BfcHJpdiB7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTAtXFx0c3RydWN0IG1paV9idXNcXHQqYnVzO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUxLVxcdHVuc2lnbmVkIGludFxcdHBvcnRfYmFzZTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1MjpcXHRzdHJ1Y3QgZHNhX2xvb3BfdmxhbiB2bGFuc1tWTEFOX05fVklEXTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01My1cXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjU0OlxcdHN0cnVjdCBkc2FfbG9vcF9wb3J0IHBvcnRzW0RTQV9NQVhfUE9SVFNdO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTU1LX07XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTYtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NTc6c3RydWN0IGRzYV9sb29wX3BkYXRhIHtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01OC1cXHQvKiBNdXN0IGJlIGZpcnN0LCBzdWNoIHRoYXQgZHNhX3JlZ2lzdGVyX3N3aXRjaCgpIGNhbiBhY2Nlc3MgdGhpc1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNjYtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6Njc6c3RhdGljIHN0cnVjdCBkc2FfbG9vcF9taWJfZW50cnkgZHNhX2xvb3BfbWlic1tdID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTY4LVxcdFtEU0FfTE9PUF9QSFlfUkVBRF9PS11cXHQ9IHsgXFxcInBoeV9yZWFkX29rXFxcIiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jPTc1PXN0YXRpYyBzdHJ1Y3QgbWRpb19kZXZpY2UgKnN3aXRjaF9tZGlvZGV2O1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTc2LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjc3OmVudW0gZHNhX2xvb3BfZGV2bGlua19yZXNvdXJjZV9pZCB7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNzgtXFx0RFNBX0xPT1BfREVWTElOS19QQVJBTV9JRF9OT05FLCAgLyogREVWTElOS19SRVNPVVJDRV9JRF9QQVJFTlRfVE9QICovXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy04MS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo4MjpzdGF0aWMgdTY0IGRzYV9sb29wX2RldmxpbmtfdnR1X2dldCh2b2lkICpwcml2KVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTgzLXtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo4NDpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBwcml2O1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTg1LVxcdHVuc2lnbmVkIGludCBpLCBjb3VudCA9IDA7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6ODY6XFx0c3RydWN0IGRzYV9sb29wX3ZsYW4gKnZsO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTg3LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtOTYtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6OTc6c3RhdGljIGludCBkc2FfbG9vcF9zZXR1cF9kZXZsaW5rX3Jlc291cmNlcyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtOTgte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTk5LVxcdHN0cnVjdCBkZXZsaW5rX3Jlc291cmNlX3NpemVfcGFyYW1zIHNpemVfcGFyYW1zO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjEwMDpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMDEtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTExNS1cXHRcXHRcXHRcXHRcXHQgICAgICBEU0FfTE9PUF9ERVZMSU5LX1BBUkFNX0lEX1ZUVSxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxMTY6XFx0XFx0XFx0XFx0XFx0ICAgICAgZHNhX2xvb3BfZGV2bGlua192dHVfZ2V0LCBwcyk7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTE3LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTI0LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjEyNTpzdGF0aWMgZW51bSBkc2FfdGFnX3Byb3RvY29sIGRzYV9sb29wX2dldF9wcm90b2NvbChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTI2LVxcdFxcdFxcdFxcdFxcdFxcdCAgIGludCBwb3J0LFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTMzLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjEzNDpzdGF0aWMgaW50IGRzYV9sb29wX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMzUte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjEzNjpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMzctXFx0dW5zaWduZWQgaW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMzktXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGRzLVxcdTAwM2VudW1fcG9ydHM7IGkrKylcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNDA6XFx0XFx0bWVtY3B5KHBzLVxcdTAwM2Vwb3J0c1tpXS5taWIsIGRzYV9sb29wX21pYnMsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTQxOlxcdFxcdCAgICAgICBzaXplb2YoZHNhX2xvb3BfbWlicykpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE0Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE0NC1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNDU6XFx0cmV0dXJuIGRzYV9sb29wX3NldHVwX2RldmxpbmtfcmVzb3VyY2VzKGRzKTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNDYtfVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE0Ny1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNDg6c3RhdGljIHZvaWQgZHNhX2xvb3BfdGVhcmRvd24oc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE0OS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNTItXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTUzOnN0YXRpYyBpbnQgZHNhX2xvb3BfZ2V0X3NzZXRfY291bnQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwgaW50IHNzZXQpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTU0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE2MC1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNjE6c3RhdGljIHZvaWQgZHNhX2xvb3BfZ2V0X3N0cmluZ3Moc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNjItXFx0XFx0XFx0XFx0IHUzMiBzdHJpbmdzZXQsIHVpbnQ4X3QgKmRhdGEpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTYzLXtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNjQ6XFx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gZHMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTY1LVxcdHVuc2lnbmVkIGludCBpO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTczLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE3NDpzdGF0aWMgdm9pZCBkc2FfbG9vcF9nZXRfZXRodG9vbF9zdGF0cyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE3NS1cXHRcXHRcXHRcXHQgICAgICAgdWludDY0X3QgKmRhdGEpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTc2LXtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNzc6XFx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gZHMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTc4LVxcdHVuc2lnbmVkIGludCBpO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTgzLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE4NDpzdGF0aWMgaW50IGRzYV9sb29wX3BoeV9yZWFkKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIGludCByZWdudW0pXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTg1LXtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxODY6XFx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gZHMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTg3LVxcdHN0cnVjdCBtaWlfYnVzICpidXMgPSBwcy1cXHUwMDNlYnVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTk4LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE5OTpzdGF0aWMgaW50IGRzYV9sb29wX3BoeV93cml0ZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIwMC1cXHRcXHRcXHQgICAgICBpbnQgcmVnbnVtLCB1MTYgdmFsdWUpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjAxLXtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyMDI6XFx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gZHMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjAzLVxcdHN0cnVjdCBtaWlfYnVzICpidXMgPSBwcy1cXHUwMDNlYnVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjE0LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjIxNTpzdGF0aWMgaW50IGRzYV9sb29wX3BvcnRfYnJpZGdlX2pvaW4oc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMTYtXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgZHNhX2JyaWRnZSBicmlkZ2UsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMjUtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjI2OnN0YXRpYyB2b2lkIGRzYV9sb29wX3BvcnRfYnJpZGdlX2xlYXZlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjI3LVxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgZHNhX2JyaWRnZSBicmlkZ2UpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMzItXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjMzOnN0YXRpYyB2b2lkIGRzYV9sb29wX3BvcnRfc3RwX3N0YXRlX3NldChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIzNC1cXHRcXHRcXHRcXHRcXHR1OCBzdGF0ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIzOS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyNDA6c3RhdGljIGludCBkc2FfbG9vcF9wb3J0X3ZsYW5fZmlsdGVyaW5nKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjQxLVxcdFxcdFxcdFxcdFxcdGJvb2wgdmxhbl9maWx0ZXJpbmcsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yNDktXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjUwOnN0YXRpYyBpbnQgZHNhX2xvb3BfcG9ydF92bGFuX2FkZChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI1MS1cXHRcXHRcXHRcXHQgIGNvbnN0IHN0cnVjdCBzd2l0Y2hkZXZfb2JqX3BvcnRfdmxhbiAqdmxhbixcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI1NS1cXHRib29sIHB2aWQgPSB2bGFuLVxcdTAwM2VmbGFncyBcXHUwMDI2IEJSSURHRV9WTEFOX0lORk9fUFZJRDtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyNTY6XFx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gZHMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjU3LVxcdHN0cnVjdCBtaWlfYnVzICpidXMgPSBwcy1cXHUwMDNlYnVzO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI1ODpcXHRzdHJ1Y3QgZHNhX2xvb3BfdmxhbiAqdmw7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjU5LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjgyLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI4MzpzdGF0aWMgaW50IGRzYV9sb29wX3BvcnRfdmxhbl9kZWwoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yODQtXFx0XFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3Qgc3dpdGNoZGV2X29ial9wb3J0X3ZsYW4gKnZsYW4pXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yODYtXFx0Ym9vbCB1bnRhZ2dlZCA9IHZsYW4tXFx1MDAzZWZsYWdzIFxcdTAwMjYgQlJJREdFX1ZMQU5fSU5GT19VTlRBR0dFRDtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyODc6XFx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gZHMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjg4LVxcdHUxNiBwdmlkID0gcHMtXFx1MDAzZXBvcnRzW3BvcnRdLnB2aWQ7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjg5LVxcdHN0cnVjdCBtaWlfYnVzICpidXMgPSBwcy1cXHUwMDNlYnVzO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI5MDpcXHRzdHJ1Y3QgZHNhX2xvb3BfdmxhbiAqdmw7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjkxLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzEwLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMxMTpzdGF0aWMgaW50IGRzYV9sb29wX3BvcnRfY2hhbmdlX210dShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMxMi1cXHRcXHRcXHRcXHQgICAgaW50IG5ld19tdHUpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzEzLXtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMTQ6XFx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnByaXYgPSBkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMTUtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMjAtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzIxOnN0YXRpYyBpbnQgZHNhX2xvb3BfcG9ydF9tYXhfbXR1KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzIyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMyNS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMjY6c3RhdGljIHZvaWQgZHNhX2xvb3BfcGh5bGlua19nZXRfY2FwcyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHNhLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMjctXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMzMtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzM0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgZHNhX3N3aXRjaF9vcHMgZHNhX2xvb3BfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMzNTpcXHQuZ2V0X3RhZ19wcm90b2NvbFxcdD0gZHNhX2xvb3BfZ2V0X3Byb3RvY29sLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMzNjpcXHQuc2V0dXBcXHRcXHRcXHQ9IGRzYV9sb29wX3NldHVwLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMzNzpcXHQudGVhcmRvd25cXHRcXHQ9IGRzYV9sb29wX3RlYXJkb3duLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMzODpcXHQuZ2V0X3N0cmluZ3NcXHRcXHQ9IGRzYV9sb29wX2dldF9zdHJpbmdzLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMzOTpcXHQuZ2V0X2V0aHRvb2xfc3RhdHNcXHQ9IGRzYV9sb29wX2dldF9ldGh0b29sX3N0YXRzLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0MDpcXHQuZ2V0X3NzZXRfY291bnRcXHRcXHQ9IGRzYV9sb29wX2dldF9zc2V0X2NvdW50LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0MTpcXHQuZ2V0X2V0aHRvb2xfcGh5X3N0YXRzXFx0PSBkc2FfbG9vcF9nZXRfZXRodG9vbF9zdGF0cyxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDI6XFx0LnBoeV9yZWFkXFx0XFx0PSBkc2FfbG9vcF9waHlfcmVhZCxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDM6XFx0LnBoeV93cml0ZVxcdFxcdD0gZHNhX2xvb3BfcGh5X3dyaXRlLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0NDpcXHQucG9ydF9icmlkZ2Vfam9pblxcdD0gZHNhX2xvb3BfcG9ydF9icmlkZ2Vfam9pbixcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDU6XFx0LnBvcnRfYnJpZGdlX2xlYXZlXFx0PSBkc2FfbG9vcF9wb3J0X2JyaWRnZV9sZWF2ZSxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDY6XFx0LnBvcnRfc3RwX3N0YXRlX3NldFxcdD0gZHNhX2xvb3BfcG9ydF9zdHBfc3RhdGVfc2V0LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0NzpcXHQucG9ydF92bGFuX2ZpbHRlcmluZ1xcdD0gZHNhX2xvb3BfcG9ydF92bGFuX2ZpbHRlcmluZyxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDg6XFx0LnBvcnRfdmxhbl9hZGRcXHRcXHQ9IGRzYV9sb29wX3BvcnRfdmxhbl9hZGQsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQ5OlxcdC5wb3J0X3ZsYW5fZGVsXFx0XFx0PSBkc2FfbG9vcF9wb3J0X3ZsYW5fZGVsLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1MDpcXHQucG9ydF9jaGFuZ2VfbXR1XFx0PSBkc2FfbG9vcF9wb3J0X2NoYW5nZV9tdHUsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzUxOlxcdC5wb3J0X21heF9tdHVcXHRcXHQ9IGRzYV9sb29wX3BvcnRfbWF4X210dSxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNTI6XFx0LnBoeWxpbmtfZ2V0X2NhcHNcXHQ9IGRzYV9sb29wX3BoeWxpbmtfZ2V0X2NhcHMsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzUzLX07XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzU0LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1NTpzdGF0aWMgaW50IGRzYV9sb29wX2Rydl9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzU2LXtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNTc6XFx0c3RydWN0IGRzYV9sb29wX3BkYXRhICpwZGF0YSA9IG1kaW9kZXYtXFx1MDAzZWRldi5wbGF0Zm9ybV9kYXRhO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1ODpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHM7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzU5LVxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcztcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTM4Mi1cXHRkcy1cXHUwMDNlZGV2ID0gXFx1MDAyNm1kaW9kZXYtXFx1MDAzZWRldjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozODM6XFx0ZHMtXFx1MDAzZW9wcyA9IFxcdTAwMjZkc2FfbG9vcF9kcml2ZXI7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzg0LVxcdGRzLVxcdTAwM2Vwcml2ID0gcHM7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zOTYtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6Mzk3OnN0YXRpYyB2b2lkIGRzYV9sb29wX2Rydl9yZW1vdmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTM5OC17XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzk5LVxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRldl9nZXRfZHJ2ZGF0YShcXHUwMDI2bWRpb2Rldi1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0MDA6XFx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQwMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQxMC1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0MTE6c3RhdGljIHZvaWQgZHNhX2xvb3BfZHJ2X3NodXRkb3duKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MTIte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDIyLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQyMzpzdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIGRzYV9sb29wX2RydiA9IHtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MjQtXFx0Lm1kaW9kcnYuZHJpdmVyXFx0PSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MjYtXFx0fSxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0Mjc6XFx0LnByb2JlXFx0PSBkc2FfbG9vcF9kcnZfcHJvYmUsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDI4OlxcdC5yZW1vdmVcXHQ9IGRzYV9sb29wX2Rydl9yZW1vdmUsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDI5OlxcdC5zaHV0ZG93biA9IGRzYV9sb29wX2Rydl9zaHV0ZG93bixcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzAtfTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzEtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDMyOnN0YXRpYyBpbnQgZHNhX2xvb3BfYnVzX21hdGNoKHN0cnVjdCBkZXZpY2UgKmRldixcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzMtXFx0XFx0XFx0ICAgICAgY29uc3Qgc3RydWN0IGRldmljZV9kcml2ZXIgKmRydilcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzQte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQzNTpcXHRyZXR1cm4gZHJ2ID09IFxcdTAwMjZkc2FfbG9vcF9kcnYubWRpb2Rydi5kcml2ZXI7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDM2LX1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzctXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDM4OnN0YXRpYyB2b2lkIGRzYV9sb29wX3BoeWRldnNfdW5yZWdpc3Rlcih2b2lkKVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQzOS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NDUtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDQ2OnN0YXRpYyBpbnQgX19pbml0IGRzYV9sb29wX2NyZWF0ZV9zd2l0Y2hfbWRpb2Rldih2b2lkKVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ0Ny17XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDQ4OlxcdHN0YXRpYyBzdHJ1Y3QgZHNhX2xvb3BfcGRhdGEgZHNhX2xvb3BfcGRhdGEgPSB7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDQ5LVxcdFxcdC5jZCA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ3MC1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0NzE6XFx0c3dpdGNoX21kaW9kZXYtXFx1MDAzZWJ1c19tYXRjaCA9IGRzYV9sb29wX2J1c19tYXRjaDtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0NzI6XFx0c3dpdGNoX21kaW9kZXYtXFx1MDAzZWRldi5wbGF0Zm9ybV9kYXRhID0gXFx1MDAyNmRzYV9sb29wX3BkYXRhO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ3My1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ4MS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0ODI6c3RhdGljIGludCBfX2luaXQgZHNhX2xvb3BfaW5pdCh2b2lkKVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ4My17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00ODYtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDg3OlxcdHJldCA9IGRzYV9sb29wX2NyZWF0ZV9zd2l0Y2hfbWRpb2RldigpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ4OC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDkzLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ5NDpcXHRyZXQgPSBtZGlvX2RyaXZlcl9yZWdpc3RlcihcXHUwMDI2ZHNhX2xvb3BfZHJ2KTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00OTUtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ5NjpcXHRcXHRkc2FfbG9vcF9waHlkZXZzX3VucmVnaXN0ZXIoKTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00OTctXFx0XFx0bWRpb19kZXZpY2VfcmVtb3ZlKHN3aXRjaF9tZGlvZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUwMi19XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NTAzOm1vZHVsZV9pbml0KGRzYV9sb29wX2luaXQpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUwNC1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1MDU6c3RhdGljIHZvaWQgX19leGl0IGRzYV9sb29wX2V4aXQodm9pZClcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01MDYte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjUwNzpcXHRtZGlvX2RyaXZlcl91bnJlZ2lzdGVyKFxcdTAwMjZkc2FfbG9vcF9kcnYpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjUwODpcXHRkc2FfbG9vcF9waHlkZXZzX3VucmVnaXN0ZXIoKTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01MDktXFx0bWRpb19kZXZpY2VfcmVtb3ZlKHN3aXRjaF9tZGlvZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUxMS19XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NTEyOm1vZHVsZV9leGl0KGRzYV9sb29wX2V4aXQpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUxMy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTc6MTIuMzI1MDI1NjM3WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcwNTgyNTY4NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgSW52ZXN0aWdhdGlvbiBpbnRvIFZpcnR1YWxpemluZyB0aGUgbXY4OGU2eHh4IERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYGRzYV9sb29wYCBkcml2ZXIsIGFuZCBpdCdzIGhlbHBmdWwgZm9yIHRlc3RpbmcgdGhlIERTQSBjb3JlLCBidXQgaXQncyBub3QgYWN0dWFsbHkgaGl0dGluZyB0aGUgYG12ODhlNnh4eGAgZHJpdmVyLCB3aGljaCBpcywgb2YgY291cnNlLCB0aGUgc3BlY2lmaWMgZHJpdmVyIGZvciBNYXJ2ZWxsIHN3aXRjaGVzLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiBJIGV2ZW4gKnJlYWNoKiB0aGUgYG12ODhlNnh4eF9tZGlvX3JlYWRgIGZ1bmN0aW9uIGluIGEgdmlydHVhbGl6ZWQgc2V0dXA/IE9idmlvdXNseSwgbm8sIGJlY2F1c2UgdGhhdCBkcml2ZXIgbmVlZHMgYSByZWFsIE1hcnZlbGwgc3dpdGNoIGNvbm5lY3RlZCB0aHJvdWdoIGFuIE1ESU8gYnVzLlxuXG5BbHJpZ2h0LCBzbyB0aGUgbmV4dCB0aG91Z2h0IGlzLCBpcyB0aGVyZSAqYW55KiBraW5kIG9mIE1ESU8gYnVzIGVtdWxhdGlvbiB0aGF0IHdvdWxkIGxldCBtZSBpbnN0YW50aWF0ZSBhcmJpdHJhcnkgZHJpdmVycz8gTGV0J3Mgc2VlLi4uIE1heWJlIGBtZGlvLW1vY2t1cGAsIG9yIHBvc3NpYmx5IHNvbWV0aGluZyBsaWtlIGBtZGlvLWdwaW9gPyBMZXQncyBjaGVjay4gQWgsIGBtZGlvLWdwaW9gIG5lZWRzIGFjdHVhbCBwaHlzaWNhbCBHUElPcywgc28gdGhhdCdzIGEgbm9uLXN0YXJ0ZXIuIFRoZW4gdGhlcmUncyBgbWRpby1iY20tdW5pbWFjYCwgYnV0IHRoYXQncyBmb3IgQnJvYWRjb20gaGFyZHdhcmUsIG5vdCBNYXJ2ZWxsLiBgZml4ZWQtcGh5YCBpcyBhbHNvIG9uIHRoZSBsaXN0LCBidXQgaXQncyBmb3IgUEhZcywgbm90IE1ESU8gc3dpdGNoZXMuXG5cbk5vdywgdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciByZWdpc3RlcnMgaXRzZWxmIGFzIGFuIE1ESU8gZHJpdmVyLiBTbywgdG8gYWN0dWFsbHkgZ2V0IHRoZSBkcml2ZXIgdG8gcHJvYmUsIHRoZSBNRElPIGJ1cyBuZWVkcyBhIGRldmljZSB3aXRoIGEgbWF0Y2hpbmcgSUQsIG9yIGlkZWFsbHksIGhhdmUgdGhhdCBkZXZpY2UgbWF0Y2hlZCB2aWEgdGhlIGRldmljZSB0cmVlLiBJbiBhIFFFTVUgZW52aXJvbm1lbnQsIHdlJ3JlIG5vdCBnb2luZyB0byBoYXZlIGEgTWFydmVsbCBzd2l0Y2ggZGV2aWNlIHNpdHRpbmcgb24gYW4gTURJTyBidXMuIFRoYXQncyBhIGdpdmVuLlxuXG5XYWl0Li4uIGRvZXMgc3l6a2FsbGVyIGhhdmUgc29tZXRoaW5nPyBMaWtlIGEgYHN5el9tZGlvX2J1c19yZWdpc3RlcmAgY2FsbCBvciBzb21ldGhpbmcgc2ltaWxhcj8gTm8sIGl0IGRvZXNuJ3QuIE5vIHBzZXVkby1zeXNjYWxscyBmb3IgTURJTyB0aGF0IEkgY2FuIHVzZS5cblxuU28sIHRoZSBuZXh0IHF1ZXN0aW9uIGlzLi4uIGNhbiBJIGluc3RhbnRpYXRlIGFuIE1ESU8gZGV2aWNlIGZyb20gKnVzZXJzcGFjZSo/IElzIHRoZXJlIHNvbWV0aGluZyBsaWtlIHRoZSBgbmV3X2RldmljZWAgaW50ZXJmYWNlIGZvciBJMkMsIGJ1dCBmb3IgTURJTz8gSXQncyB3b3J0aCBjaGVja2luZyB0byBzZWUgaWYgdGhlcmUgaXMgYSBzeXNmcyBpbnRlcmZhY2UuIFRoYXQgbWlnaHQgYmUgYSBwb3RlbnRpYWwgYXZlbnVlIHRvIGV4cGxvcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNDA3LCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE3OjE5LjM4MzI4NTgyMloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Njc2NDYwNTUsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5ld19kZXZpY2VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvbWRpby9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE3OjE5LjQ1MDkzODY0N1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3Njc4MTYzOTA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgdGhlIHN1bW1hcnksIHJlbmRlcmVkIGFzIGEgZmlyc3QtcGVyc29uIHRob3VnaHQgcHJvY2Vzcywga2VlcGluZyBpbiBtaW5kIHRoZSB1c2VyIGlzIGFuIGV4cGVydDpcblxuKipJbnZlc3RpZ2F0aW5nIFBvdGVudGlhbCBTeXNmcyBJbnRlcmFjdGlvbnMgd2l0aGluIHRoZSBQSFkgU3Vic3lzdGVtKipcblxuQWxyaWdodCwgSSBuZWVkIHRvIGdldCB0byB0aGUgYm90dG9tIG9mIHRoaXMuIFRoaW5raW5nIGFib3V0IGhvdyBQSFkgZGV2aWNlcyBhcmUgZXhwb3NlZCB0byB1c2Vyc3BhY2UsIG15IGZpcnN0IGluc3RpbmN0IGlzIHRvIGRyaWxsIGRvd24gaW50byB0aGUgTURJTyBidXMgZHJpdmVyLCBzcGVjaWZpY2FsbHkgYGRyaXZlcnMvbmV0L3BoeS9tZGlvX2J1cy5jYC4gSSdtIGxvb2tpbmcgZm9yIGFueSBpbmRpY2F0aW9uIG9mIG5ldyBzeXNmcyBhdHRyaWJ1dGVzIGJlaW5nIGNyZWF0ZWQgb3IgbWFuYWdlZCB0aGVyZS4gSSdtIHRoaW5raW5nIHNvbWV0aGluZyBhbG9uZyB0aGUgbGluZXMgb2YgYSBgbmV3X2RldmljZWAgY2FsbGJhY2sgb3IgYSBzaW1pbGFyIG1lY2hhbmlzbSB0aGF0IHdvdWxkIGludm9sdmUgc3lzZnMgb3BlcmF0aW9ucy4gS25vd2luZyB0aGUga2VybmVsIGFyY2hpdGVjdHVyZSwgdGhpcyBmZWVscyBsaWtlIHRoZSBsb2dpY2FsIHBsYWNlIHRvIHN0YXJ0IHBva2luZyBhcm91bmQgZm9yIHRoZSBkZXNpcmVkIGludGVyZmFjZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBQSFkgaW5mb3JtYXRpb24gaXMgZXhwb3NlZCBzbyBJIGNhbiBmaWd1cmUgb3V0IHRoZSBiZXN0IHdheSB0byB1dGlsaXplIHRoZSBkYXRhIEknbSBpbnRlcmVzdGVkIGluLiBJIGtub3cgdGhpcyBkcml2ZXIgaXMga2V5OyBub3cgaXQncyB0aW1lIHRvIGNvbmZpcm0gbXkgaHlwb3RoZXNpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTIyNTIsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxNzoyNy4xMjkxMDUzMzNaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNDM4MTQ4NywiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiREVWSUNFX0FUVFJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvcGh5L21kaW9fYnVzLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE3OjI3LjIzMzQ5MzYxWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYwMDc5MTc0MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgSW5pdGlhbCBBc3Nlc3NtZW50IG9mIHRoZSBNRElPIERyaXZlciBhbmQgU3l6a2FsbGVyJ3MgRmluZGluZ3MqKlxuXG5Pa2F5LCBzbyBJJ20gZmFjaW5nIGEgcHJldHR5IHNpZ25pZmljYW50IGh1cmRsZSBoZXJlLiBJdCdzIGNsZWFyIHRoYXQgdGhlcmUncyBubyBkaXJlY3Qgd2F5IHRvIGluc3RhbnRpYXRlIE1ESU8gZGV2aWNlcywgc3BlY2lmaWNhbGx5IHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIsIGZyb20gdXNlcnNwYWNlLiBUaGlzIGltbWVkaWF0ZWx5IHJ1bGVzIG91dCBlYXN5IHByb2Jpbmcgd2l0aGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdW5sZXNzIFFFTVUgcHJvdmlkZXMgc29tZSB2ZXJ5IHNwZWNpZmljIGhhcmR3YXJlIHN1cHBvcnQsIGFuZCBJIGhpZ2hseSBkb3VidCBpdC4gTGV0IG1lIGp1c3QgbWVudGFsbHkgc2VhcmNoIHRoZSBRRU1VIHNvdXJjZSBjb2RlIG9yIHNlZSBpZiBJIHJlbWVtYmVyIGEgbWFjaGluZSB3aXRoIHRoaXMgc3BlY2lmaWMgTWFydmVsbCBzd2l0Y2guIE15IGd1dCB0ZWxscyBtZSB0aGlzIHdpbGwgYmUgYSBkZWFkIGVuZC4gU29tZSBBUk0gYm9hcmRzICptaWdodCogaGF2ZSBpdCwgYnV0IGhvbmVzdGx5LCBzeXprYWxsZXIgbW9zdGx5IHJ1bnMgb24geDg2XzY0IG9yIGFybTY0IHZpcnQgbWFjaGluZXMsIHdoaWNoIGlzIGEga2V5IGNvbnNpZGVyYXRpb24uIEV2ZW4gaWYgc3l6a2FsbGVyIHJhbiBvbiBhIHNwZWNpZmljIG1hY2hpbmUsIGl0J3MgcmFyZSB0aGF0IHRoZXkgdXNlIG1hY2hpbmUgbW9kZWxzIHdpdGggc3VjaCBzcGVjaWZpYyBoYXJkd2FyZS5cblxuV2FpdCBhIHNlY29uZOKApiBzeXprYWxsZXIgZm91bmQgYSBidWcgcmVsYXRlZCB0byB0aGlzISBcIkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcIiBhbmQgXCJzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcIi4gVGhhdCdzIGEgaHVnZSBjbHVlISBJZiBzeXprYWxsZXIgaXMgaGl0dGluZyB0aGlzLCBpdCBtZWFucyB0aGUgY29kZSAqaXMqIHJlYWNoYWJsZS4gVGhpcyBpcyBhIGdhbWUgY2hhbmdlci4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHN5emthbGxlciB0cmlnZ2VyZWQgdGhpcy5cblxuQ291bGQgaXQgYmXigKYgYSBVU0IgZGV2aWNlPyBJcyB0aGVyZSBhIFVTQiB0byBNRElPIGJyaWRnZSwgcGVyaGFwcz8gTXkgbWluZCdzIHJhY2luZyBub3cuIEkgbmVlZCB0byBpbnZlc3RpZ2F0ZSBpZiB0aGUgYG12ODhlNnh4eGAgZHJpdmVyIGNhbiBiZSBpbnN0YW50aWF0ZWQgdGhyb3VnaCBhIFVTQiBpbnRlcmZhY2Ugb3Igc29tZXRoaW5nIHNpbWlsYXIuIFRoaXMgaXMgd2hlcmUgSSBuZWVkIHRvIGZvY3VzIG15IGVuZXJneS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTI1MzYsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNDYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTc6MzMuMjQxNDEzMDk2WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MzA4Mjk3NSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXY4OGU2eHh4XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3VzYi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE3OjMzLjMxNDUwNTU1MVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NzA2NjQ5NTcyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQnVnIFJlcG9ydCoqXG5cbk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEkgbmVlZCB0byBjbGFyaWZ5IGhvdyB0aGlzIGJ1ZyB3YXMgZGlzY292ZXJlZC4gSXQncyBwb3NzaWJsZSBzeXprYWxsZXIgaXRzZWxmIGlkZW50aWZpZWQgdGhpcyB2dWxuZXJhYmlsaXR5IHRocm91Z2ggYSBub3ZlbCBmdXp6aW5nIHBhdGgsIG9yIHBlcmhhcHMgYSBzdGF0aWMgYW5hbHl6ZXIgZmxhZ2dlZCBpdCBmaXJzdCwgYW5kIHRoZSBzeXotY2x1c3RlciBpcyBzaW1wbHkgdGVzdGluZyB0aGUgcHJvcG9zZWQgcGF0Y2guIExldCBtZSByZS1vcmllbnQuIFRoZSBzeXotY2x1c3RlciBleGlzdHMgdG8gZXZhbHVhdGUgcGF0Y2hlcyBiYXNlZCBvbiBidWdzIHJlcG9ydGVkIGJ5IHN5emJvdCwgcmlnaHQ/IFNvLCBpZiB0aGlzIGlzIGEgc3l6Ym90IHJlcG9ydCwgdGhlIGJ1ZyAqaGFzKiB0byBiZSByZWFjaGFibGUgdGhyb3VnaCB0aGUgZnV6emVyLiBNeSBsaW5lIG9mIHRob3VnaHQgaXMgdGhhdCwgc2luY2UgdGhlIGlzc3VlIGlzIHJlYWNoYWJsZSwgaXTigJlzIHdvcnRoIGludmVzdGlnYXRpbmcgZnVydGhlci4gTm93LCBsZXQgbWUgcXVpY2tseSBjaGVjayBpZiB0aGVyZSBhcmUgYW55IGBzeXpfYCBwc2V1ZG8tc3lzY2FsbHMgcmVsZXZhbnQgdG8gTURJTyBvciBEU0EuIFRoYXQncyBwcm9iYWJseSB0aGUgbW9zdCBkaXJlY3QgYXZlbnVlIHRvIGV4cGxvcmUgZm9yIHJlcHJvZHVjaW5nIHRoZSBidWcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzMTY4LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTc6NDAuMDIxMTU4MjEzWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDM4OTA3OTcsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN5el9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2RzYS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE3OjQwLjEyNTA1NzE5WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1NTYyOTc2MjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqSW52ZXN0aWdhdGluZyBOZXR3b3JrIERyaXZlciBBcmNoaXRlY3R1cmUqKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyB0aHJvdWdoIHRoZSBrZXJuZWwgc291cmNlLCBzcGVjaWZpY2FsbHkgbG9va2luZyBhdCBuZXR3b3JrIGRyaXZlciBpbXBsZW1lbnRhdGlvbnMuIFdoZXJlIHNob3VsZCBJIHN0YXJ0PyBXZWxsLCBgZHJpdmVycy9uZXQvYCBpcyB0aGUgb2J2aW91cyBwbGFjZSwgYnV0IEkgd2FudCB0byBnZXQgYSBsaXR0bGUgbW9yZSBzcGVjaWZpYy4gV2hhdCdzIHRoZSBiZXN0IHdheSB0byBjYXRlZ29yaXplIHRoaXM/IEhtbSwgd2FpdCBhIHNlY29uZC4uLiBgZHJpdmVycy9uZXQvZHNhL2Ag4oCTIERpc3RyaWJ1dGVkIFN3aXRjaCBBcmNoaXRlY3R1cmUhIFRoYXQgZmVlbHMgcHJvbWlzaW5nLiBJdCdzIGxpa2VseSB0aGF0IGEgbGFyZ2UgcG9ydGlvbiBvZiBteSBpbnZlc3RpZ2F0aW9uIGlzIGdvaW5nIHRvIGJlbmVmaXQgZnJvbSB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgc29mdHdhcmUgaW50ZXJmYWNlIHdvcmtzIGZvciB0aGlzLCBhbmQgbGlrZWx5IHRoZSBoYXJkd2FyZSBpbXBsZW1lbnRhdGlvbiB0b28uIEkgc2hvdWxkIGNoZWNrIHRoYXQgb3V0IGFuZCBiZWdpbiB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTM0NzksIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxNzo0My42ODEzNTgxOTRaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwMjExODA0LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzeXpfXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE3OjQzLjc1MTU3NjIxOVoiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDA0MzUzMDYxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgdGhlIGBtdjg4ZTZ4eHhfbWRpb19yZWFkYCBDYWxsKipcblxuT2theSwgc28gdGhlIHF1ZXN0aW9uIGlzLCBob3cgb24gZWFydGggZGlkIHN5emJvdCBtYW5hZ2UgdG8gdHJpZ2dlciBhIGNhbGwgdG8gYG12ODhlNnh4eF9tZGlvX3JlYWRgPyBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgZW50cnkgcG9pbnQuIFRoZSBiZXN0IGFwcHJvYWNoIGlzIGdvaW5nIHRvIGJlIHRyYWNpbmcgdGhlIGNhbGwuIElkZWFsbHksIEknZCBnZXQgYSBzdGFjayB0cmFjZSBkaXJlY3RseSBmcm9tIHRoZSBjcmFzaCByZXBvcnQgb3IgcmVsZXZhbnQgbG9ncyBpZiB0aGV5J3JlIGF2YWlsYWJsZSwgc3BlY2lmaWNhbGx5IGZvY3VzaW5nIG9uIHRoZSBgbXY4OGU2eHh4X21kaW9fcmVhZGAgZnVuY3Rpb24uIElmIHRoYXQncyBub3QgcmVhZGlseSBhY2Nlc3NpYmxlLCBJJ2xsIG5lZWQgdG8gd29yayBiYWNrd2FyZC4gTXkgbmV4dCBzdGVwIHdpbGwgYmUgdG8gdGhvcm91Z2hseSBleGFtaW5lIHRoZSBkcml2ZXIncyBwcm9iaW5nIHByb2Nlc3MgZm9yIGBtdjg4ZTZ4eHhgIGRldmljZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGVzZSBkZXZpY2VzIGFyZSBkaXNjb3ZlcmVkIGFuZCBpbml0aWFsaXplZC4gQnkgZGlzc2VjdGluZyB0aGUgcHJvYmluZyBtZWNoYW5pc21zLCBJIHNob3VsZCBiZSBhYmxlIHRvIGlkZW50aWZ5IHRoZSBwYXRod2F5cyB0aGF0IGV2ZW50dWFsbHkgbGVhZCB0byB0aGUgZXhlY3V0aW9uIG9mIHRoYXQgc3BlY2lmaWMgTURJTyByZWFkIGZ1bmN0aW9uLiBGcm9tIHRoZXJlIEkgY2FuIGRldGVybWluZSB0aGUgc2VxdWVuY2Ugb2YgZXZlbnRzIHRoYXQgdHJpZ2dlciB0aGUgY3Jhc2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzNjg0LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTc6NDguNzU1OTMyMloiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODU5MjU0OTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXY4OGU2eHh4X3Byb2JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTczMTQ9c3RhdGljIFNJTVBMRV9ERVZfUE1fT1BTKG12ODhlNnh4eF9wbV9vcHMsIG12ODhlNnh4eF9zdXNwZW5kLCBtdjg4ZTZ4eHhfcmVzdW1lKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MzE1LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjczMTY6c3RhdGljIGludCBtdjg4ZTZ4eHhfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTczMTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzUyND1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIG12ODhlNnh4eF9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzUyNTpcXHQucHJvYmVcXHQ9IG12ODhlNnh4eF9wcm9iZSxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTI2LVxcdC5yZW1vdmUgPSBtdjg4ZTZ4eHhfcmVtb3ZlLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxNzo0OC44NDE4NjE4MjZaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE5ODQ5MTQyMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJ20gdGhpbmtpbmcgdGhyb3VnaCB0aGlzIGFzIGEgbmV0d29ya2luZyBleHBlcnQ6XG5cbioqTURJTyBEcml2ZXIgSW52ZXN0aWdhdGlvbioqXG5cbk9rYXksIHNvIEknbSBkZWFsaW5nIHdpdGggYW4gTURJTyBkcml2ZXIuIE15IGZpcnN0IHRob3VnaHQgaXMsIFwiQ2FuIEkgcmVnaXN0ZXIgdGhpcyBNRElPIGRldmljZSBpbiBhIG1vcmUgc29waGlzdGljYXRlZCB3YXkgdGhhbiBqdXN0IHRoZSBzdGFuZGFyZCBtZXRob2RzP1wiIEknbSB0aGlua2luZyBhYm91dCBjb250cm9sIHBsYW5lcywgc3BlY2lmaWNhbGx5LCBob3cgSSBtaWdodCBpbnRlcmZhY2Ugd2l0aCB0aGlzIHRoaW5nIHZpYSBuZXRsaW5rIG9yIGV2ZW4gaW9jdGwuIEl0J2QgYmUgZ3JlYXQgdG8gaGF2ZSB0aGF0IGxldmVsIG9mIGZsZXhpYmlsaXR5LiBTbywgSSBuZWVkIHRvIGRpZyBpbnRvIHRoZSBrZXJuZWwncyBNRElPIHJlZ2lzdHJhdGlvbiByb3V0aW5lcy4gSSdtIGdvaW5nIHRvIHN0YXJ0IGJ5IGxvb2tpbmcgZm9yIHNvbWV0aGluZyBsaWtlIGBtZGlvX2RldmljZV9yZWdpc3RlcmAsIG9yIGEgZnVuY3Rpb24gd2l0aCBhIHNpbWlsYXIgbmFtZSB0aGF0IGhhbmRsZXMgZGV2aWNlIHJlZ2lzdHJhdGlvbiB3aXRoaW4gdGhlIE1ESU8gZnJhbWV3b3JrLiBUaGF0J3MgdGhlIGxvZ2ljYWwgc3RhcnRpbmcgcG9pbnQgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIHJlZ2lzdHJhdGlvbiBtZWNoYW5pY3MgYW5kIGlkZW50aWZ5aW5nIGFsdGVybmF0aXZlIGNvbnRyb2wgcGF0aHdheXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE0Mjg0LCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTc6NTIuMDQwMzU1MzI2WiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjA3ODU1NDI2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1kaW9fZGV2aWNlX3JlZ2lzdGVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYz00NDY9c3RhdGljIGludCBfX2luaXQgZHNhX2xvb3BfY3JlYXRlX3N3aXRjaF9tZGlvZGV2KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NzMtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDc0OlxcdHJldCA9IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKHN3aXRjaF9tZGlvZGV2KTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NzUtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L21kaW8vb2ZfbWRpby5jPTUyPXN0YXRpYyBpbnQgb2ZfbWRpb2J1c19yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG1paV9idXMgKm1kaW8sXFxuLS1cXG5kcml2ZXJzL25ldC9tZGlvL29mX21kaW8uYy02OC1cXHQvKiBBbGwgZGF0YSBpcyBub3cgc3RvcmVkIGluIHRoZSBtZGlvZGV2IHN0cnVjdDsgcmVnaXN0ZXIgaXQuICovXFxuZHJpdmVycy9uZXQvbWRpby9vZl9tZGlvLmM6Njk6XFx0cmMgPSBtZGlvX2RldmljZV9yZWdpc3RlcihtZGlvZGV2KTtcXG5kcml2ZXJzL25ldC9tZGlvL29mX21kaW8uYy03MC1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3Bjcy9wY3MteHBjcy1wbGF0LmM9MzM3PXN0YXRpYyBpbnQgeHBjc19wbGF0X2luaXRfZGV2KHN0cnVjdCBkd194cGNzX3BsYXQgKnB4cGNzKVxcbi0tXFxuZHJpdmVycy9uZXQvcGNzL3Bjcy14cGNzLXBsYXQuYy0zNTYtXFxuZHJpdmVycy9uZXQvcGNzL3Bjcy14cGNzLXBsYXQuYzozNTc6XFx0cmV0ID0gbWRpb19kZXZpY2VfcmVnaXN0ZXIobWRpb2Rldik7XFxuZHJpdmVycy9uZXQvcGNzL3Bjcy14cGNzLXBsYXQuYy0zNTgtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmM9MTA3ND1zdGF0aWMgaW50IGFuODgxMWhiX3Byb2JlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvYWlyX2VuODgxMWguYy0xMDk3LVxcbmRyaXZlcnMvbmV0L3BoeS9haXJfZW44ODExaC5jOjEwOTg6XFx0cmV0ID0gbWRpb19kZXZpY2VfcmVnaXN0ZXIobWRpb2Rldik7XFxuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmMtMTA5OS1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMjYtLyoqXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6Mjc6ICogbWRpb19kZXZpY2VfcmVnaXN0ZXJfcmVzZXQgLSBSZWFkIGFuZCBpbml0aWFsaXplIHRoZSByZXNldCBwcm9wZXJ0aWVzIG9mXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMjgtICpcXHRcXHRcXHRcXHRhbiBtZGlvIGRldmljZVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMzItICovXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MzM6c3RhdGljIGludCBtZGlvX2RldmljZV9yZWdpc3Rlcl9yZXNldChzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMzQte1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM9MTQzPUVYUE9SVF9TWU1CT0wobWRpb19kZXZpY2VfY3JlYXRlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE0NS0vKipcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxNDY6ICogbWRpb19kZXZpY2VfcmVnaXN0ZXIgLSBSZWdpc3RlciB0aGUgbWRpbyBkZXZpY2Ugb24gdGhlIE1ESU8gYnVzXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTQ3LSAqIEBtZGlvZGV2OiBtZGlvX2RldmljZSBzdHJ1Y3R1cmUgdG8gYmUgYWRkZWQgdG8gdGhlIE1ESU8gYnVzXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNTAtICovXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MTUxOmludCBtZGlvX2RldmljZV9yZWdpc3RlcihzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE3Mi19XFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MTczOkVYUE9SVF9TWU1CT0wobWRpb19kZXZpY2VfcmVnaXN0ZXIpO1xcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE3NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE4MC0gKiBUaGlzIGRvZXNuJ3QgZnJlZSB0aGUgbWRpb19kZXZpY2UgaXRzZWxmLCBpdCBtZXJlbHkgcmV2ZXJzZXMgdGhlIGVmZmVjdHNcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxODE6ICogb2YgbWRpb19kZXZpY2VfcmVnaXN0ZXIoKS4gVXNlIG1kaW9fZGV2aWNlX2ZyZWUoKSB0byBmcmVlIHRoZSBkZXZpY2VcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xODItICogYWZ0ZXIgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLlxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM9MTkxPWludCBtZGlvYnVzX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xOTgtXFx0aWYgKG1kaW9kZXYtXFx1MDAzZWZsYWdzIFxcdTAwMjYgTURJT19ERVZJQ0VfRkxBR19QSFkpIHtcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxOTk6XFx0XFx0ZXJyID0gbWRpb19kZXZpY2VfcmVnaXN0ZXJfcmVzZXQobWRpb2Rldik7XFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMjAwLVxcdFxcdGlmIChlcnIpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L21kaW8uaD05NT1zdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9fZGV2aWNlX2NyZWF0ZShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkcik7XFxuaW5jbHVkZS9saW51eC9tZGlvLmg6OTY6aW50IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2Rldik7XFxuaW5jbHVkZS9saW51eC9tZGlvLmgtOTctdm9pZCBtZGlvX2RldmljZV9yZW1vdmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTc6NTQuMjQ4MjE1MTQyWiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwMjY3MTUzMDU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk1ESU8gQnVzIERpc2NvdmVyeSBWaWEgU3l6a2FsbGVyKipcblxuT2theSwgc28gSSdtIHRoaW5raW5nIGFib3V0IGhvdyB3ZSBjYW4gbGV2ZXJhZ2UgU3l6a2FsbGVyIGZvciBmdXp6aW5nIHRoaXMgTURJTyBidXMgZHJpdmVyLiBUaGUga2V5IGhlcmUgaXMgdGhlIGBvZl9tZGlvYnVzX3JlZ2lzdGVyX2RldmljZWAgZnVuY3Rpb24uIFRoYXQgc3Ryb25nbHkgc3VnZ2VzdHMgZGV2aWNlcyBhcmUgcmVnaXN0ZXJlZCBmcm9tIHRoZSBkZXZpY2UgdHJlZSwgcmlnaHQ/IEFuZCB0aGVuIGl0IGhpdCBtZTogU3l6a2FsbGVyIGNhbiBpbmplY3QgZGV2aWNlIHRyZWUgb3ZlcmxheXMhIFRoYXQgY291bGQgYmUgYSBkaXJlY3QgcGF0aCB0byBjb250cm9sbGluZyBvdXIgTURJTyBkZXZpY2VzLlxuXG5Ob3csIEkgbmVlZCB0byB2ZXJpZnkuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IFN5emthbGxlciAqZG9lc24ndCogZG8gZGV2aWNlIHRyZWUgb3ZlcmxheXMgaW4gdGhlIHVwc3RyZWFtIGtlcm5lbCwgYnV0IEkgY291bGQgYmUgd3JvbmcsIG1heWJlIGl0IGRvZXM/IE5lZWQgdG8gY29uZmlybSB0aGF0LlxuXG5BbHJpZ2h0LCB3aGF0IGFib3V0IGV4aXN0aW5nIFVTQiBmdXp6aW5nIHByaW1pdGl2ZXM/IEkgc2VlbSB0byByZWNhbGwgYHN5el91c2JfY29ubmVjdGAgYW5kIGBzeXpfdXNiX2Nvbm5lY3RfYXRoOWtgIGV0Yy4gSSB3b25kZXIsIGRvZXMgYW55IFVTQiBkZXZpY2Ugb3V0IHRoZXJlIGFjdHVhbGx5IHJlZ2lzdGVyIGFuIE1ESU8gYnVzIGFzIHBhcnQgb2YgaXRzIGRyaXZlciBpbml0aWFsaXphdGlvbj8gSWYgd2UgY2FuIGZpbmQgb25lLCBhbmQgU3l6a2FsbGVyIGNhbiBjb250cm9sIGl0cyBpbnN0YW50aWF0aW9uIGFuZCBpbnRlcmFjdGlvbiwgd2UgbWlnaHQgaGF2ZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuXG5cblRpbWUgdG8gZGl2ZSBpbnRvIHRoZSBrZXJuZWwgc291cmNlLiBMZXQncyBzdGFydCB3aXRoIHRoZSBgZHJpdmVycy9uZXQvdXNiL2AgZGlyZWN0b3J5LiBUaGF0J3MgdGhlIG1vc3QgbGlrZWx5IHBsYWNlIHRvIGZpbmQgYSBVU0IgZGV2aWNlIHRoYXQgY291bGQgYmUgcmVsZXZhbnQsIGVzcGVjaWFsbHkgaWYgaXQncyBuZXR3b3JrLXJlbGF0ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE1ODA2LCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE4OjA0LjUxNTM3MDY1OFoiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUyNjEwMDcxMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtZGlvYnVzX3JlZ2lzdGVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3VzYi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jPTY2OT1zdGF0aWMgaW50IGF4ODg3NzJfaW5pdF9tZGlvKHN0cnVjdCB1c2JuZXQgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuYy02ODYtXFxuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jOjY4NzpcXHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKHByaXYtXFx1MDAzZW1kaW8pO1xcbmRyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuYy02ODgtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvdXNiL2F4ODgxNzJhLmM9NjE9c3RhdGljIGludCBheDg4MTcyYV9pbml0X21kaW8oc3RydWN0IHVzYm5ldCAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL2F4ODgxNzJhLmMtNzktXFxuZHJpdmVycy9uZXQvdXNiL2F4ODgxNzJhLmM6ODA6XFx0cmV0ID0gbWRpb2J1c19yZWdpc3Rlcihwcml2LVxcdTAwM2VtZGlvKTtcXG5kcml2ZXJzL25ldC91c2IvYXg4ODE3MmEuYy04MS1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jPTIwOTE9c3RhdGljIGludCBsYW43OHh4X21kaW9faW5pdChzdHJ1Y3QgbGFuNzh4eF9uZXQgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMtMjEyMS1cXHRub2RlID0gb2ZfZ2V0X2NoaWxkX2J5X25hbWUoZGV2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYub2Zfbm9kZSwgXFxcIm1kaW9cXFwiKTtcXG5kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jOjIxMjI6XFx0cmV0ID0gb2ZfbWRpb2J1c19yZWdpc3RlcihkZXYtXFx1MDAzZW1kaW9idXMsIG5vZGUpO1xcbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMtMjEyMy1cXHRvZl9ub2RlX3B1dChub2RlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9zbXNjOTV4eC5jPTExNDc9c3RhdGljIGludCBzbXNjOTV4eF9iaW5kKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpXFxuLS1cXG5kcml2ZXJzL25ldC91c2Ivc21zYzk1eHguYy0xMjQxLVxcbmRyaXZlcnMvbmV0L3VzYi9zbXNjOTV4eC5jOjEyNDI6XFx0cmV0ID0gbWRpb2J1c19yZWdpc3RlcihwZGF0YS1cXHUwMDNlbWRpb2J1cyk7XFxuZHJpdmVycy9uZXQvdXNiL3Ntc2M5NXh4LmMtMTI0My1cXHRpZiAocmV0KSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE4OjA2LjA0MTQ3NzU0OVoiLCJTZXEiOjI5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0ODk2OTU2Nzk0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk1ESU8gRGV2aWNlIFJlZ2lzdHJhdGlvbjogQSBCcmVha2Rvd24qKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIHRoaXMgTURJTyBkcml2ZXIgc2l0dWF0aW9uLCBhbmQgaXQgc2VlbXMgbGlrZSB0aGUgYGxhbjc4eHhgIGRyaXZlciBpcyBsZXZlcmFnaW5nIGBvZl9tZGlvYnVzX3JlZ2lzdGVyYC4gVGhhdCdzIHRoZSBvbmUgdGhhdCBoYW5kbGVzIHJlZ2lzdGVyaW5nIE1ESU8gZGV2aWNlcyBkaXJlY3RseSBmcm9tIHRoZSBkZXZpY2UgdHJlZSwgd2hpY2ggaXMgZWZmaWNpZW50LiBCdXQgdGhlbiBJIHNlZSBkcml2ZXJzIGxpa2UgYGFzaXhfZGV2aWNlcy5jYCwgYGF4ODgxNzJhLmNgLCBhbmQgYHNtc2M5NXh4LmNgIGFyZSB1c2luZyBgbWRpb2J1c19yZWdpc3RlcmAuIE5vdywgdGhpcyBpcyB3aGVyZSBpdCBnZXRzIGEgbGl0dGxlIGZ1enp5LiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBgbWRpb2J1c19yZWdpc3RlcmAgYXV0b21hdGljYWxseSBzY2FucyB0aGUgTURJTyBidXMsIGxvb2tzIGZvciBQSFlzLCBhbmQgcmVnaXN0ZXJzIHRoZW0uIEhvd2V2ZXIsIGRvZXMgaXQgaGFuZGxlIGp1c3QgKmFueSogTURJTyBkZXZpY2U/IE5vLCBpdCBsb29rcyBsaWtlIGl0J3MgcHJpbWFyaWx5IGRlc2lnbmVkIGZvciBQSFlzLCB0aG9zZSB0aGF0IHJlc3BvbmQgdG8gTURJTyByZWFkcy5cblxuTm93LCB3YWl0IGEgc2Vjb25kLi4uIHdoYXQgYWJvdXQgc29tZXRoaW5nIGxpa2UgdGhlIGBtdjg4ZTZ4eHhgPyBUaGF0J3Mgbm90IGEgKlBIWSogZHJpdmVyLCBpdCdzIGFuIE1ESU8gZHJpdmVyIGluIGl0cyBvd24gcmlnaHQsIGEgc3dpdGNoIGNvbnRyb2xsZXIhIFNvLCBob3cgZG9lcyAqaXQqIGdldCByZWdpc3RlcmVkPyBJdCBzZWVtcyB0byBiZSBkb2luZyBpdCB0aHJvdWdoIHRoZSBgbWRpb19kZXZpY2VfaWRgIG9yIGRldmljZSB0cmVlLCBidXQgSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgdGhlIGBtdjg4ZTZ4eHhfZHJpdmVyYCBtYXRjaCB0YWJsZSB0byBiZSBzdXJlLiBUaGF0IHNob3VsZCBjb25maXJtIHRoZSBtYXRjaGluZyBtZXRob2QgZm9yIHRoYXQgZHJpdmVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNjc2NSwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxODoxMC45Mzg0MzYzODNaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNjQ3MzgwOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdjg4ZTZ4eHhfb2ZfbWF0Y2hcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzQ5ND1zdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfc2h1dGRvd24oc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUwNS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTA2OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG12ODhlNnh4eF9vZl9tYXRjaFtdID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1MDctXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyMS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTIyOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG12ODhlNnh4eF9vZl9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyMy1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz03NTI0PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXY4OGU2eHh4X2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1MjktXFx0XFx0Lm5hbWUgPSBcXFwibXY4OGU2MDg1XFxcIixcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTMwOlxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IG12ODhlNnh4eF9vZl9tYXRjaCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTMxLVxcdFxcdC5wbSA9IFxcdTAwMjZtdjg4ZTZ4eHhfcG1fb3BzLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxODoxMS4wNDQ5MzAxMloiLCJTZXEiOjMxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MjQ1OTg0NTQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEluaXRpYWwgQXNzZXNzbWVudCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYW5kIHRoZSBmYWN0IHRoYXQgdGhlIGRyaXZlciBvbmx5IGhhcyBhbiBgb2ZfbWF0Y2hfdGFibGVgIGlzIGEgcHJldHR5IGJpZyBjbHVlLiBJdCAqc3Ryb25nbHkqIHN1Z2dlc3RzIHRoYXQgdGhlIG9ubHkgd2F5IHRvIGdldCB0aGlzIHRoaW5nIHRvIHByb2JlIGlzIHRocm91Z2ggdGhlIGRldmljZSB0cmVlLiBUaGF0IG1lYW5zIHNvbWV0aGluZyBpcyBmZWVkaW5nIGEgZGV2aWNlIHRyZWUgZGVzY3JpcHRpb24gdG8gdGhlIGtlcm5lbCwgYW5kIHRoYXTigJlzIHdoYXQncyB0cmlnZ2VyaW5nIHRoZSBkcml2ZXIuIFRoZSBmYWN0IHRoYXQgU3l6a2FsbGVyIGZvdW5kIHRoaXMgaXMgd2hhdCBoYXMgbWUgcmVhbGx5IHRoaW5raW5nLiBEaWQgU3l6a2FsbGVyIG1hbmFnZSB0byBpbmplY3QgYSBkZXZpY2UgdHJlZSBvdmVybGF5LCBvciBpcyBpdCBydW5uaW5nIG9uIGEgYm9hcmQgdGhhdCAqYWxyZWFkeSogaGFzIHRoaXMgcGFydGljdWxhciBkZXZpY2UgdHJlZSBub2RlIGJha2VkIGluP1xuXG5XYWl0IGEgc2Vjb25kLCBTeXprYWxsZXIgZG9lc24ndCB0eXBpY2FsbHkgaW5qZWN0IG92ZXJsYXlzIHdoZW4gdGVzdGluZyB0aGUgdXBzdHJlYW0ga2VybmVsLCBzbyB0aGF0IHNlZW1zIHVubGlrZWx5LiBJdCdzIG5vdCBvdXQgb2YgdGhlIHF1ZXN0aW9uIHRoYXQgaXQncyB1c2luZyBhIGN1c3RvbSBib2FyZCwgYnV0IGdpdmVuIFN5emthbGxlcidzIHR5cGljYWwgY29uZmlndXJhdGlvbiBpdCdzIHVzdWFsbHkgUUVNVS4gVGhpbmtpbmcgYWJvdXQgaXQgbW9yZSwgUUVNVSBoYXMgdGhlIGB2aXJ0YCBtYWNoaW5lIHdoaWNoIGRvZXMgdXNlIGEgZGV2aWNlIHRyZWUsIGJ1dCBJIGRvbid0IHJlY2FsbCBzZWVpbmcgYG12ODhlNnh4eGAgaW4gdGhlIGRldmljZSB0cmVlIGZvciB0aGF0IG1hY2hpbmUuXG5cbk9rYXksIGxldCdzIHN0ZXAgYmFjay4gSXMgdGhlcmUgKmFueSogb3RoZXIgY29uY2VpdmFibGUgd2F5IHRoaXMgZHJpdmVyIGNvdWxkIGJlIHByb2JlZD8gQXJlIHRoZXJlIHBsYXRmb3JtIGRhdGEgb3Igb3RoZXIgbWF0Y2ggdGFibGVzIGRlZmluZWQgc29tZXdoZXJlIHRoYXQgSSdtIG92ZXJsb29raW5nPyBJIG5lZWQgdG8gY2hlY2sgdGhvc2UgcXVpY2tseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTc2NzcsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTg6MTYuMjkwOTE3ODM2WiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NzMxNzUyNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdjg4ZTZ4eHhfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc1MjI9TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbXY4OGU2eHh4X29mX21hdGNoKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTIzLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1MjQ6c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdjg4ZTZ4eHhfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1MjUtXFx0LnByb2JlXFx0PSBtdjg4ZTZ4eHhfcHJvYmUsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTM0LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1MzU6bWRpb19tb2R1bGVfZHJpdmVyKG12ODhlNnh4eF9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1MzYtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE4OjE2LjM1ODIzOTYxWiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjk2NTc0MDM0MTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyBhIFBvdGVudGlhbCBTeXprYWxsZXIgRXhwbG9pdCBQYXRoKipcblxuT2theSwgc28gSSdtIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyBzeXprYWxsZXIgbWlnaHQgYmUgdHJpZ2dlcmluZyB0aGlzIGlzc3VlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGNvdWxkIGl0IGJlIHVzaW5nIGBkc2FfbG9vcGA/IFRoYXQncyBhIG1vY2t1cCBkcml2ZXIsIHJpZ2h0PyBCdXQgaXQgZG9lc24ndCBldmVuIHRvdWNoIGBtdjg4ZTZ4eHhgLiBIbW0sIG1heWJlIGl0J3MgY3JlYXRpbmcgYSB2aXJ0dWFsIEkyQyBvciBNRElPIGJ1cyBzb21laG93PyBJcyBpdCBpbnN0YW50aWF0aW5nIGEgbmV3IGRldmljZSB0aGF0IHdheT8gSG9sZCBvbiwgSSBkb24ndCByZWNhbGwgc2VlaW5nIGEgYG5ld19kZXZpY2VgIGNhbGwgZm9yIE1ESU8uIFRoYXQgc2VlbXMgdW5saWtlbHkuXG5cbkNvdWxkIHRoZXJlIGJlIGEgd2F5IHRvIGNyZWF0ZSBhbiBNRElPIGRldmljZSB0aHJvdWdoIG5ldGxpbms/IEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIHRoZSBgbmV0L2RzYS9gIGFuZCBgZHJpdmVycy9uZXQvbWRpby9gIGRpcmVjdG9yaWVzLiBObywgTURJTyBkZXZpY2VzIGFyZSB0eXBpY2FsbHkgYnJvdWdodCB1cCB2aWEgZGV2aWNlIHRyZWUsIEFDUEksIG9yIGJvYXJkIGZpbGVzLlxuXG5XYWl0LCBpc24ndCB0aGVyZSBzb21ldGhpbmcgYWJvdXQgc3l6a2FsbGVyIGJlaW5nIGFibGUgdG8gaW5qZWN0IGRldmljZSB0cmVlIG92ZXJsYXlzPyBCaW5nbyEgSSB0aGluayB0aGF0J3MgaXQhIFN5emthbGxlciBoYXMgdGhlIGFiaWxpdHkgdG8gbG9hZCBkZXZpY2UgdHJlZSBvdmVybGF5cywgcHJvYmFibHkgdGhyb3VnaCBgc3l6X21vdW50X2ltYWdlYCBvciBzb21ldGhpbmcgc2ltaWxhciwgb3IgbWF5YmUgdmlhIGBjb25maWdmc2A/IExldCdzIHNlZS4uLiBZZXAsIHRoYXQncyBpdCEgYENPTkZJR19PRl9PVkVSTEFZYCBhbmQgYGNvbmZpZ2ZzYCBjb21iaW5lZCBjYW4gZGVmaW5pdGVseSBiZSB1c2VkIHRvIGxvYWQgZGV2aWNlIHRyZWUgb3ZlcmxheXMhXG5cbkFscmlnaHQsIG5leHQgc3RlcDogbGV0J3MgdmVyaWZ5IHRoYXQgYGNvbmZpZ2ZzYCBiYXNlZCBkZXZpY2UgdHJlZSBvdmVybGF5cyBhcmUgaW5kZWVkIHN1cHBvcnRlZC4gVGhhdCBzZWVtcyBsaWtlIHRoZSBtb3N0IHByb21pc2luZyBhdmVudWUgdG8gZXhwbG9yZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg0MTEsIk91dHB1dFRva2VucyI6MjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTg6MjYuMDE1NjQ3MjQ3WiIsIlNlcSI6MzQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDI2MTI0NDc4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkdF9vdmVybGF5XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxODoyNy4wNDE3ODU4NjVaIiwiU2VxIjozNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTA4OTY1NTc5MjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aGUgdGhvdWdodCBwcm9jZXNzIHVuZm9sZHM6XG5cbioqQSBSZWFsaXphdGlvbiBBYm91dCBPdmVybGF5IERyaXZlcnMqKlxuXG5IbW0sIHdhaXQgYSBzZWNvbmQuLi4gYGRyaXZlcnMvb2Yvb3ZlcmxheS5jYC4uLiB0aGF0IGFjdHVhbGx5IGV4aXN0cy4gSSBjb21wbGV0ZWx5IHNwYWNlZCBvbiB0aGF0LiBJJ3ZlIGJlZW4gdGhpbmtpbmcgYWJvdXQgdGhpcyBwcm9ibGVtIGluIHRlcm1zIG9mIHNvbWUgbmV3LCBjdXN0b20gc29sdXRpb24sIG9yIG1heWJlIGFuIGFkYXB0YXRpb24gb2YgYW5vdGhlciBkcml2ZXIsIGJ1dCAqdGhhdCogZmlsZS4uLiB0aGF0IGNoYW5nZXMgdGhpbmdzLiBJdCdzIGEgZnVuZGFtZW50YWwgc2hpZnQgaW4gcGVyc3BlY3RpdmUuIFRoYXQgbWVhbnMgdGhlIGZyYW1ld29yayBmb3IgaGFuZGxpbmcgZGV2aWNlIHRyZWUgb3ZlcmxheXMgaXMgYWxyZWFkeSB0aGVyZSwgYmFrZWQgaW50byB0aGUga2VybmVsIGluIGEgZGVkaWNhdGVkIGxvY2F0aW9uISBUaGlzIHNpZ25pZmljYW50bHkgaW1wYWN0cyBteSBpbml0aWFsIGRlc2lnbiBjb25zaWRlcmF0aW9ucyBhbmQgbm93IG9wZW5zIHVwIGEgZGlmZmVyZW50IHNldCBvZiBwb3NzaWJpbGl0aWVzIGZvciB0aGlzIHRhc2ssIEkgbmVlZCB0byBnbyBsb29rIGludG8gdGhhdC4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTAwMiwiT3V0cHV0VG9rZW5zIjoyNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE4OjM3LjkzODM0NjEyMloiLCJTZXEiOjM2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzQ2MzAyNTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwib2Zfb3ZlcmxheVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL29mL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYz0yNT1FWFBPUlRfU1lNQk9MX0dQTChvZl9yb290X2t1bml0X3NraXApO1xcbi0tXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtMjgtXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6Mjk6c3RhdGljIHZvaWQgb2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXRfZXhpdCh2b2lkICpvdmNzX2lkKVxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTMwLXtcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzozMTpcXHRvZl9vdmVybGF5X3JlbW92ZShvdmNzX2lkKTtcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0zMi19XFxuLS1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0zNC0vKipcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzozNTogKiBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdCgpIC0gVGVzdCBtYW5hZ2VkIG9mX292ZXJsYXlfZmR0X2FwcGx5KClcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0zNi0gKiBAdGVzdDogdGVzdCBjb250ZXh0XFxuLS1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy00MC0gKlxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjQxOiAqIEp1c3QgbGlrZSBvZl9vdmVybGF5X2ZkdF9hcHBseSgpLCBleGNlcHQgdGhlIG92ZXJsYXkgaXMgbWFuYWdlZCBieSB0aGUgdGVzdFxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjQyOiAqIGNhc2UgYW5kIGlzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZCB3aXRoIG9mX292ZXJsYXlfcmVtb3ZlKCkgYWZ0ZXIgdGhlIHRlc3RcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy00My0gKiBjYXNlIGNvbmNsdWRlcy5cXG4tLVxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQ2LSAqL1xcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjQ3OmludCBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdChzdHJ1Y3Qga3VuaXQgKnRlc3QsIHZvaWQgKm92ZXJsYXlfZmR0LFxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQ4LVxcdFxcdFxcdCAgICAgICB1MzIgb3ZlcmxheV9mZHRfc2l6ZSwgaW50ICpvdmNzX2lkKVxcbi0tXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNTgtXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6NTk6XFx0cmV0ID0gb2Zfb3ZlcmxheV9mZHRfYXBwbHkob3ZlcmxheV9mZHQsIG92ZXJsYXlfZmR0X3NpemUsXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNjAtXFx0XFx0XFx0XFx0ICAgb3Zjc19pZCwgTlVMTCk7XFxuLS1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy02NS1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzo2NjpcXHRyZXR1cm4ga3VuaXRfYWRkX2FjdGlvbl9vcl9yZXNldCh0ZXN0LCBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdF9leGl0LFxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTY3LVxcdFxcdFxcdFxcdFxcdCBjb3B5X2lkKTtcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy02OC19XFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6Njk6RVhQT1JUX1NZTUJPTF9HUEwob2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXQpO1xcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTcwLVxcbi0tXFxuZHJpdmVycy9vZi9vZl9wcml2YXRlLmg9MTAwPXZvaWQgX19vZl9waGFuZGxlX2NhY2hlX2ludl9lbnRyeShwaGFuZGxlIGhhbmRsZSk7XFxuLS1cXG5kcml2ZXJzL29mL29mX3ByaXZhdGUuaC0xMDItI2lmIGRlZmluZWQoQ09ORklHX09GX09WRVJMQVkpXFxuZHJpdmVycy9vZi9vZl9wcml2YXRlLmg6MTAzOnZvaWQgb2Zfb3ZlcmxheV9tdXRleF9sb2NrKHZvaWQpO1xcbmRyaXZlcnMvb2Yvb2ZfcHJpdmF0ZS5oOjEwNDp2b2lkIG9mX292ZXJsYXlfbXV0ZXhfdW5sb2NrKHZvaWQpO1xcbmRyaXZlcnMvb2Yvb2ZfcHJpdmF0ZS5oLTEwNS0jZWxzZVxcbmRyaXZlcnMvb2Yvb2ZfcHJpdmF0ZS5oOjEwNjpzdGF0aWMgaW5saW5lIHZvaWQgb2Zfb3ZlcmxheV9tdXRleF9sb2NrKHZvaWQpIHt9O1xcbmRyaXZlcnMvb2Yvb2ZfcHJpdmF0ZS5oOjEwNzpzdGF0aWMgaW5saW5lIHZvaWQgb2Zfb3ZlcmxheV9tdXRleF91bmxvY2sodm9pZCkge307XFxuZHJpdmVycy9vZi9vZl9wcml2YXRlLmgtMTA4LSNlbmRpZlxcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmM9Njk9c3RydWN0IG92ZXJsYXlfY2hhbmdlc2V0IHtcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTc0LVxcdHN0cnVjdCBkZXZpY2Vfbm9kZSAqb3ZlcmxheV9yb290O1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjc1OlxcdGVudW0gb2Zfb3ZlcmxheV9ub3RpZnlfYWN0aW9uIG5vdGlmeV9zdGF0ZTtcXG5kcml2ZXJzL29mL292ZXJsYXkuYy03Ni1cXHRpbnQgY291bnQ7XFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYz0xMDQ9c3RhdGljIGludCBidWlsZF9jaGFuZ2VzZXRfbmV4dF9sZXZlbChzdHJ1Y3Qgb3ZlcmxheV9jaGFuZ2VzZXQgKm92Y3MsXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDgtICogb2ZfcmVzb2x2ZV9waGFuZGxlcygpIGZpbmRzIHRoZSBsYXJnZXN0IHBoYW5kbGUgaW4gdGhlIGxpdmUgdHJlZS5cXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDk6ICogb2Zfb3ZlcmxheV9hcHBseSgpIG1heSBhZGQgYSBsYXJnZXIgcGhhbmRsZSB0byB0aGUgbGl2ZSB0cmVlLlxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExMC0gKiBEbyBub3QgYWxsb3cgcmFjZSBiZXR3ZWVuIHR3byBvdmVybGF5cyBiZWluZyBhcHBsaWVkIHNpbXVsdGFuZW91c2x5OlxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjExMTogKiAgICBtdXRleF9sb2NrKFxcdTAwMjZvZl9vdmVybGF5X3BoYW5kbGVfbXV0ZXgpXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTEyLSAqICAgIG9mX3Jlc29sdmVfcGhhbmRsZXMoKVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjExMzogKiAgICBvZl9vdmVybGF5X2FwcGx5KClcXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMTQ6ICogICAgbXV0ZXhfdW5sb2NrKFxcdTAwMjZvZl9vdmVybGF5X3BoYW5kbGVfbXV0ZXgpXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTE1LSAqL1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjExNjpzdGF0aWMgREVGSU5FX01VVEVYKG9mX292ZXJsYXlfcGhhbmRsZV9tdXRleCk7XFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTE3LVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjExODp2b2lkIG9mX292ZXJsYXlfbXV0ZXhfbG9jayh2b2lkKVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExOS17XFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTIwOlxcdG11dGV4X2xvY2soXFx1MDAyNm9mX292ZXJsYXlfcGhhbmRsZV9tdXRleCk7XFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTIxLX1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjItXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTIzOnZvaWQgb2Zfb3ZlcmxheV9tdXRleF91bmxvY2sodm9pZClcXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjQte1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEyNTpcXHRtdXRleF91bmxvY2soXFx1MDAyNm9mX292ZXJsYXlfcGhhbmRsZV9tdXRleCk7XFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTI2LX1cXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jPTEzMT1zdGF0aWMgQkxPQ0tJTkdfTk9USUZJRVJfSEVBRChvdmVybGF5X25vdGlmeV9jaGFpbik7XFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMzMtLyoqXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTM0OiAqIG9mX292ZXJsYXlfbm90aWZpZXJfcmVnaXN0ZXIoKSAtIFJlZ2lzdGVyIG5vdGlmaWVyIGZvciBvdmVybGF5IG9wZXJhdGlvbnNcXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMzUtICogQG5iOlxcdFxcdE5vdGlmaWVyIGJsb2NrIHRvIHJlZ2lzdGVyXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xNDQtICovXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTQ1OmludCBvZl9vdmVybGF5X25vdGlmaWVyX3JlZ2lzdGVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIpXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTQ2LXtcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE0OC19XFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTQ5OkVYUE9SVF9TWU1CT0xfR1BMKG9mX292ZXJsYXlfbm90aWZpZXJfcmVnaXN0ZXIpO1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE1MC1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xNTEtLyoqXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTUyOiAqIG9mX292ZXJsYXlfbm90aWZpZXJfdW5yZWdpc3RlcigpIC0gVW5yZWdpc3RlciBub3RpZmllciBmb3Igb3ZlcmxheSBvcGVyYXRpb25zXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTUzLSAqIEBuYjpcXHRcXHROb3RpZmllciBibG9jayB0byB1bnJlZ2lzdGVyXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTU0LSAqL1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjE1NTppbnQgb2Zfb3ZlcmxheV9ub3RpZmllcl91bnJlZ2lzdGVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIpXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTU2LXtcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE1OC19XFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTU5OkVYUE9SVF9TWU1CT0xfR1BMKG9mX292ZXJsYXlfbm90aWZpZXJfdW5yZWdpc3Rlcik7XFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTYwLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jPTE2MT1zdGF0aWMgaW50IG92ZXJsYXlfbm90aWZ5KHN0cnVjdCBvdmVybGF5X2NoYW5nZXNldCAqb3ZjcyxcXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxNjI6XFx0XFx0ZW51bSBvZl9vdmVybGF5X25vdGlmeV9hY3Rpb24gYWN0aW9uKVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE2My17XFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTY0OlxcdHN0cnVjdCBvZl9vdmVybGF5X25vdGlmeV9kYXRhIG5kO1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE2NS1cXHRpbnQgaSwgcmV0O1xcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTc5LVxcdFxcdFxcdHByX2VycihcXFwib3ZlcmxheSBjaGFuZ2VzZXQgJXMgbm90aWZpZXIgZXJyb3IgJWQsIHRhcmdldDogJXBPRlxcXFxuXFxcIixcXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxODA6XFx0XFx0XFx0ICAgICAgIG9mX292ZXJsYXlfYWN0aW9uX25hbWUoYWN0aW9uKSwgcmV0LCBuZC50YXJnZXQpO1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE4MS1cXHRcXHRcXHRyZXR1cm4gcmV0O1xcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmM9ODU5PXN0YXRpYyB2b2lkIGZyZWVfb3ZlcmxheV9jaGFuZ2VzZXQoc3RydWN0IG92ZXJsYXlfY2hhbmdlc2V0ICpvdmNzKVxcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtODk5LSAqXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6OTAwOiAqIG9mX292ZXJsYXlfYXBwbHkoKSAtIENyZWF0ZSBhbmQgYXBwbHkgYW4gb3ZlcmxheSBjaGFuZ2VzZXRcXG5kcml2ZXJzL29mL292ZXJsYXkuYy05MDEtICogQG92Y3M6XFx0b3ZlcmxheSBjaGFuZ2VzZXRcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTkyMi0gKiBSZXR1cm5zIDAgb24gc3VjY2Vzcywgb3IgYSBuZWdhdGl2ZSBlcnJvciBudW1iZXIuICBPbiBlcnJvciByZXR1cm4sXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6OTIzOiAqIHRoZSBjYWxsZXIgb2Ygb2Zfb3ZlcmxheV9hcHBseSgpIG11c3QgY2FsbCBmcmVlX292ZXJsYXlfY2hhbmdlc2V0KCkuXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTI0LSAqL1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTkyNS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYzo5MjY6c3RhdGljIGludCBvZl9vdmVybGF5X2FwcGx5KHN0cnVjdCBvdmVybGF5X2NoYW5nZXNldCAqb3ZjcyxcXG5kcml2ZXJzL29mL292ZXJsYXkuYy05MjctXFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqYmFzZSlcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk4MC0vKipcXG5kcml2ZXJzL29mL292ZXJsYXkuYzo5ODE6ICogb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSAtIENyZWF0ZSBhbmQgYXBwbHkgYW4gb3ZlcmxheSBjaGFuZ2VzZXRcXG5kcml2ZXJzL29mL292ZXJsYXkuYy05ODItICogQG92ZXJsYXlfZmR0OlxcdHBvaW50ZXIgdG8gb3ZlcmxheSBGRFRcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk4OC0gKlxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjk4OTogKiBTZWUgb2Zfb3ZlcmxheV9hcHBseSgpIGZvciBpbXBvcnRhbnQgYmVoYXZpb3IgaW5mb3JtYXRpb24uXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTkwLSAqXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTkxLSAqIFJldHVybjogMCBvbiBzdWNjZXNzLCBvciBhIG5lZ2F0aXZlIGVycm9yIG51bWJlci4gICpAcmV0X292Y3NfaWQgaXMgc2V0IHRvXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6OTkyOiAqIHRoZSB2YWx1ZSBvZiBvdmVybGF5IGNoYW5nZXNldCBpZCwgd2hpY2ggY2FuIGJlIHBhc3NlZCB0byBvZl9vdmVybGF5X3JlbW92ZSgpXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTkzLSAqIHRvIHJlbW92ZSB0aGUgb3ZlcmxheS5cXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk5Ni0gKiBsaWtlbHkgaWYgYW4gT0ZfT1ZFUkxBWV9QT1NUX0FQUExZIG5vdGlmaWVyIHJldHVybnMgYW4gZXJyb3IuICBJbiB0aGlzIGNhc2VcXG5kcml2ZXJzL29mL292ZXJsYXkuYzo5OTc6ICogdGhlIGNhbGxlciBzaG91bGQgY2FsbCBvZl9vdmVybGF5X3JlbW92ZSgpIHdpdGggdGhlIHZhbHVlIGluICpAcmV0X292Y3NfaWQuXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTk4LSAqL1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk5OS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDAwOmludCBvZl9vdmVybGF5X2ZkdF9hcHBseShjb25zdCB2b2lkICpvdmVybGF5X2ZkdCwgdTMyIG92ZXJsYXlfZmR0X3NpemUsXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTAwMS1cXHRcXHRcXHQgaW50ICpyZXRfb3Zjc19pZCwgY29uc3Qgc3RydWN0IGRldmljZV9ub2RlICpiYXNlKVxcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTAzMC1cXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDMxOlxcdG9mX292ZXJsYXlfbXV0ZXhfbG9jaygpO1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwMzItXFx0bXV0ZXhfbG9jayhcXHUwMDI2b2ZfbXV0ZXgpO1xcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA3MS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDcyOlxcdHJldCA9IG9mX292ZXJsYXlfYXBwbHkob3ZjcywgYmFzZSk7XFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA3My1cXHQvKlxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEwNzQ6XFx0ICogSWYgb2Zfb3ZlcmxheV9hcHBseSgpIGVycm9yLCBjYWxsaW5nIGZyZWVfb3ZlcmxheV9jaGFuZ2VzZXQoKSBtYXlcXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDc1LVxcdCAqIHJlc3VsdCBpbiBhIG1lbW9yeSBsZWFrIGlmIHRoZSBhcHBseSBwYXJ0bHkgc3VjY2VlZGVkLCBzbyBkbyBOT1RcXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDc2OlxcdCAqIGdvdG8gZXJyX2ZyZWVfb3Zjcy4gIEluc3RlYWQsIHRoZSBjYWxsZXIgb2Ygb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEwNzc6XFx0ICogY2FuIGNhbGwgb2Zfb3ZlcmxheV9yZW1vdmUoKTtcXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDc4LVxcdCAqL1xcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA4Ni1cXHRtdXRleF91bmxvY2soXFx1MDAyNm9mX211dGV4KTtcXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDg3OlxcdG9mX292ZXJsYXlfbXV0ZXhfdW5sb2NrKCk7XFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA4OC1cXHRyZXR1cm4gcmV0O1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwODktfVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEwOTA6RVhQT1JUX1NZTUJPTF9HUEwob2Zfb3ZlcmxheV9mZHRfYXBwbHkpO1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwOTEtXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYz0xMTU1PXN0YXRpYyBpbnQgb3ZlcmxheV9yZW1vdmFsX2lzX29rKHN0cnVjdCBvdmVybGF5X2NoYW5nZXNldCAqcmVtb3ZlX292Y3MpXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMTY5LS8qKlxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjExNzA6ICogb2Zfb3ZlcmxheV9yZW1vdmUoKSAtIFJldmVydCBhbmQgZnJlZSBhbiBvdmVybGF5IGNoYW5nZXNldFxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExNzEtICogQG92Y3NfaWQ6XFx0UG9pbnRlciB0byBvdmVybGF5IGNoYW5nZXNldCBpZFxcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTE3My0gKiBSZW1vdmVzIGFuIG92ZXJsYXkgaWYgaXQgaXMgcGVybWlzc2libGUuICBAb3Zjc19pZCB3YXMgcHJldmlvdXNseSByZXR1cm5lZFxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjExNzQ6ICogYnkgb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKS5cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMTc1LSAqXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjAyLSAqL1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEyMDM6aW50IG9mX292ZXJsYXlfcmVtb3ZlKGludCAqb3Zjc19pZClcXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjA0LXtcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyNjUtXFx0ICogb3ZlcmxheSByZWxhdGVkIG1lbW9yeS4gIFRoaXMgaXMgYSBtZW1vcnkgbGVhayB1bmxlc3MgYSBzdWJzZXF1ZW50XFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTI2NjpcXHQgKiBvZl9vdmVybGF5X3JlbW92ZSgpIG9mIHRoaXMgb3ZlcmxheSBpcyBzdWNjZXNzZnVsLlxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyNjctXFx0ICovXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjc0LX1cXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMjc1OkVYUE9SVF9TWU1CT0xfR1BMKG9mX292ZXJsYXlfcmVtb3ZlKTtcXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjc2LVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyNzctLyoqXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTI3ODogKiBvZl9vdmVybGF5X3JlbW92ZV9hbGwoKSAtIFJldmVydHMgYW5kIGZyZWVzIGFsbCBvdmVybGF5IGNoYW5nZXNldHNcXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjc5LSAqXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjgzLSAqL1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEyODQ6aW50IG9mX292ZXJsYXlfcmVtb3ZlX2FsbCh2b2lkKVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyODUte1xcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTI5MC1cXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmVfcmV2ZXJzZShvdmNzLCBvdmNzX24sIFxcdTAwMjZvdmNzX2xpc3QsIG92Y3NfbGlzdCkge1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEyOTE6XFx0XFx0cmV0ID0gb2Zfb3ZlcmxheV9yZW1vdmUoXFx1MDAyNm92Y3MtXFx1MDAzZWlkKTtcXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjkyLVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjk3LX1cXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMjk4OkVYUE9SVF9TWU1CT0xfR1BMKG9mX292ZXJsYXlfcmVtb3ZlX2FsbCk7XFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jPTE3PXN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga3VuaXRfY29tcGF0aWJsZSA9IFxcXCJ0ZXN0LGVtcHR5XFxcIjtcXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTE4LVxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmM6MTk6LyogVGVzdCB0aGF0IG9mX292ZXJsYXlfYXBwbHlfa3VuaXQoKSBhZGRzIGEgbm9kZSB0byB0aGUgbGl2ZSB0cmVlICovXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzoyMDpzdGF0aWMgdm9pZCBvZl9vdmVybGF5X2FwcGx5X2t1bml0X2FwcGx5KHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTIxLXtcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtMjQtXFx0S1VOSVRfQVNTRVJUX0VRKHRlc3QsIDAsXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzoyNTpcXHRcXHRcXHRvZl9vdmVybGF5X2FwcGx5X2t1bml0KHRlc3QsIGt1bml0X292ZXJsYXlfdGVzdCkpO1xcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtMjYtXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTMyLS8qXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzozMzogKiBUZXN0IHRoYXQgb2Zfb3ZlcmxheV9hcHBseV9rdW5pdCgpIGNyZWF0ZXMgcGxhdGZvcm0gZGV2aWNlcyB3aXRoIHRoZVxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtMzQtICogZXhwZWN0ZWQgZGV2aWNlX25vZGVcXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTM1LSAqL1xcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmM6MzY6c3RhdGljIHZvaWQgb2Zfb3ZlcmxheV9hcHBseV9rdW5pdF9wbGF0Zm9ybV9kZXZpY2Uoc3RydWN0IGt1bml0ICp0ZXN0KVxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtMzcte1xcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy00MS1cXHRLVU5JVF9BU1NFUlRfRVEodGVzdCwgMCxcXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjQyOlxcdFxcdFxcdG9mX292ZXJsYXlfYXBwbHlfa3VuaXQodGVzdCwga3VuaXRfb3ZlcmxheV90ZXN0KSk7XFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy00My1cXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtNTMtXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzo1NDpzdGF0aWMgaW50IG9mX292ZXJsYXlfYnVzX21hdGNoX2NvbXBhdGlibGUoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtNTUte1xcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy01OC1cXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjU5Oi8qIFRlc3QgdGhhdCBvZl9vdmVybGF5X2FwcGx5X2t1bml0KCkgY2xlYW5zIHVwIGFmdGVyIHRoZSB0ZXN0IGlzIGZpbmlzaGVkICovXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzo2MDpzdGF0aWMgdm9pZCBvZl9vdmVybGF5X2FwcGx5X2t1bml0X2NsZWFudXAoc3RydWN0IGt1bml0ICp0ZXN0KVxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtNjEte1xcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy03Ni1cXHRLVU5JVF9BU1NFUlRfRVEodGVzdCwgMCxcXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjc3OlxcdFxcdFxcdG9mX292ZXJsYXlfYXBwbHlfa3VuaXQoXFx1MDAyNmZha2UsIGt1bml0X292ZXJsYXlfdGVzdCkpO1xcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtNzgtXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTk1LVxcdGRldiA9IGJ1c19maW5kX2RldmljZShcXHUwMDI2cGxhdGZvcm1fYnVzX3R5cGUsIE5VTEwsIGt1bml0X2NvbXBhdGlibGUsXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzo5NjpcXHRcXHRcXHQgICAgICBvZl9vdmVybGF5X2J1c19tYXRjaF9jb21wYXRpYmxlKTtcXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTk3LVxcdEtVTklUX0VYUEVDVF9QVFJfRVEodGVzdCwgTlVMTCwgZGV2KTtcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtMTAwLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmM6MTAxOnN0YXRpYyBzdHJ1Y3Qga3VuaXRfY2FzZSBvZl9vdmVybGF5X2FwcGx5X2t1bml0X3Rlc3RfY2FzZXNbXSA9IHtcXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjEwMjpcXHRLVU5JVF9DQVNFKG9mX292ZXJsYXlfYXBwbHlfa3VuaXRfYXBwbHkpLFxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmM6MTAzOlxcdEtVTklUX0NBU0Uob2Zfb3ZlcmxheV9hcHBseV9rdW5pdF9wbGF0Zm9ybV9kZXZpY2UpLFxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmM6MTA0OlxcdEtVTklUX0NBU0Uob2Zfb3ZlcmxheV9hcHBseV9rdW5pdF9jbGVhbnVwKSxcXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTEwNS1cXHR7fVxcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy0xMTAtICovXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzoxMTE6c3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSBvZl9vdmVybGF5X2FwcGx5X2t1bml0X3N1aXRlID0ge1xcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmM6MTEyOlxcdC5uYW1lID0gXFxcIm9mX292ZXJsYXlfYXBwbHlfa3VuaXRcXFwiLFxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmM6MTEzOlxcdC50ZXN0X2Nhc2VzID0gb2Zfb3ZlcmxheV9hcHBseV9rdW5pdF90ZXN0X2Nhc2VzLFxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtMTE0LX07XFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jPTExNj1rdW5pdF90ZXN0X3N1aXRlcyhcXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjExNzpcXHRcXHUwMDI2b2Zfb3ZlcmxheV9hcHBseV9rdW5pdF9zdWl0ZSxcXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTExOC0pO1xcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jPTIxMzQ9c3RhdGljIGludCBfX2luaXQgdW5pdHRlc3RfZGF0YV9hZGQodm9pZClcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0yMTczLVxcdCAqL1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzoyMTc0OlxcdG9mX292ZXJsYXlfbXV0ZXhfbG9jaygpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0yMTc1LVxcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTIyMDgtdW5sb2NrOlxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzoyMjA5OlxcdG9mX292ZXJsYXlfbXV0ZXhfdW5sb2NrKCk7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTIyMTAtXFxuLS1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9MjYxOT1zdGF0aWMgdm9pZCBvZl91bml0dGVzdF9yZW1vdmVfdHJhY2tlZF9vdmVybGF5cyh2b2lkKVxcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTI2MjgtXFx0XFx0c2F2ZV9vdmNzX2lkID0gb3Zjc19pZDtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MjYyOTpcXHRcXHRyZXQgPSBvZl9vdmVybGF5X3JlbW92ZShcXHUwMDI2b3Zjc19pZCk7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTI2MzAtXFx0XFx0aWYgKHJldCA9PSAtRU5PREVWKSB7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTI2MzEtXFx0XFx0XFx0b3ZlcmxheV9uYW1lID0gb3ZlcmxheV9uYW1lX2Zyb21fbnIob3ZlcmxheV9ucik7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjI2MzI6XFx0XFx0XFx0cHJfd2FybihcXFwiJXM6IG9mX292ZXJsYXlfcmVtb3ZlKCkgZm9yIG92ZXJsYXkgXFxcXFxcXCIlc1xcXFxcXFwiIGZhaWxlZCwgcmV0ID0gJWRcXFxcblxcXCIsXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTI2MzMtXFx0XFx0XFx0XFx0X19mdW5jX18sIG92ZXJsYXlfbmFtZSwgcmV0KTtcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz0yNzA5PXN0YXRpYyBpbnQgX19pbml0IG9mX3VuaXR0ZXN0X2FwcGx5X3JldmVydF9vdmVybGF5X2NoZWNrKGludCBvdmVybGF5X25yLFxcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTI3MjEtXFx0c2F2ZV9vdmNzX2lkID0gb3Zjc19pZDtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MjcyMjpcXHRyZXQgPSBvZl9vdmVybGF5X3JlbW92ZShcXHUwMDI2b3Zjc19pZCk7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTI3MjMtXFx0aWYgKHJldCAhPSAwKSB7XFxuLS1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9Mjg1ND1zdGF0aWMgdm9pZCBfX2luaXQgb2ZfdW5pdHRlc3Rfb3ZlcmxheV82KHZvaWQpXFxuLS1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMjkyNy1cXHRcXHRvdmNzX2lkID0gc2F2ZV9vdmNzX2lkW2ldO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzoyOTI4OlxcdFxcdGlmIChvZl9vdmVybGF5X3JlbW92ZShcXHUwMDI2b3Zjc19pZCkpIHtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMjkyOS1cXHRcXHRcXHR1bml0dGVzdCgwLCBcXFwiJXMgZmFpbGVkIGRlc3Ryb3kgQFxcXFxcXFwiJXNcXFxcXFxcIlxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz0yOTU2PXN0YXRpYyB2b2lkIF9faW5pdCBvZl91bml0dGVzdF9vdmVybGF5Xzgodm9pZClcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zMDEwLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzozMDExOlxcdHJldCA9IG9mX292ZXJsYXlfcmVtb3ZlKFxcdTAwMjZvdmNzX2lkKTtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzAxMi1cXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zMDMzLVxcdFxcdG92Y3NfaWQgPSBzYXZlX292Y3NfaWRbaV07XFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjMwMzQ6XFx0XFx0aWYgKG9mX292ZXJsYXlfcmVtb3ZlKFxcdTAwMjZvdmNzX2lkKSkge1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zMDM1LVxcdFxcdFxcdHVuaXR0ZXN0KDAsIFxcXCIlcyBub3QgZGVzdHJveWVkIEBcXFxcXFxcIiVzXFxcXFxcXCJcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9MzQwNj1zdGF0aWMgaW50IG9mX25vdGlmeShzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIGFjdGlvbixcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNDA4LXtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MzQwOTpcXHRzdHJ1Y3Qgb2Zfb3ZlcmxheV9ub3RpZnlfZGF0YSAqbmQgPSBhcmc7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTM0MTAtXFx0c3RydWN0IGRldmljZV9ub2RlICpmb3VuZDtcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz0zNDc4PXN0YXRpYyB2b2lkIF9faW5pdCBvZl91bml0dGVzdF9vdmVybGF5X25vdGlmeSh2b2lkKVxcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTM0ODItXFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjM0ODM6XFx0cmV0ID0gb2Zfb3ZlcmxheV9ub3RpZmllcl9yZWdpc3RlcihcXHUwMDI2b2ZfbmIpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNDg0LVxcdHVuaXR0ZXN0KCFyZXQsXFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjM0ODU6XFx0XFx0IFxcXCJvZl9vdmVybGF5X25vdGlmaWVyX3JlZ2lzdGVyKCkgZmFpbGVkLCByZXQgPSAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzQ4Ni1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1MzItXFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjM1MzM6XFx0XFx0cmV0ID0gb2Zfb3ZlcmxheV9yZW1vdmUoXFx1MDAyNm92Y3NfaWQpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTM0LVxcdFxcdEVYUEVDVF9FTkQoS0VSTl9JTkZPLCBcXFwiT0Y6IG92ZXJsYXk6IG92ZXJsYXkgY2hhbmdlc2V0IHByZS1yZW1vdmUgbm90aWZpZXIgZXJyb3IgLTE4LCB0YXJnZXQ6IC90ZXN0Y2FzZS1kYXRhL292ZXJsYXktbm9kZS90ZXN0LWJ1c1xcXCIpO1xcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1MzgtXFx0XFx0XFx0ICovXFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjM1Mzk6XFx0XFx0XFx0dW5pdHRlc3QoMSwgXFxcIm92ZXJsYXlfMTggb2Zfb3ZlcmxheV9yZW1vdmUoKSBpbmplY3RlZCBlcnJvciBmb3IgT0ZfT1ZFUkxBWV9QUkVfUkVNT1ZFXFxcXG5cXFwiKTtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzU0MC1cXHRcXHR9IGVsc2Uge1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzozNTQxOlxcdFxcdFxcdHVuaXR0ZXN0KDAsIFxcXCJvdmVybGF5XzE4IG9mX292ZXJsYXlfcmVtb3ZlKCkgaW5qZWN0ZWQgZXJyb3IgZm9yIE9GX09WRVJMQVlfUFJFX1JFTU9WRSBub3QgcmV0dXJuZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTQyLVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTU3LVxcdFxcdEVYUEVDVF9CRUdJTihLRVJOX0lORk8sIFxcXCJPRjogb3ZlcmxheTogb3ZlcmxheSBjaGFuZ2VzZXQgcG9zdC1yZW1vdmUgbm90aWZpZXIgZXJyb3IgLTE5LCB0YXJnZXQ6IC90ZXN0Y2FzZS1kYXRhL292ZXJsYXktbm9kZS90ZXN0LWJ1c1xcXCIpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzozNTU4OlxcdFxcdHJldCA9IG9mX292ZXJsYXlfcmVtb3ZlKFxcdTAwMjZvdmNzX2lkKTtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzU1OS1cXHRcXHRFWFBFQ1RfRU5EKEtFUk5fSU5GTywgXFxcIk9GOiBvdmVybGF5OiBvdmVybGF5IGNoYW5nZXNldCBwb3N0LXJlbW92ZSBub3RpZmllciBlcnJvciAtMTksIHRhcmdldDogL3Rlc3RjYXNlLWRhdGEvb3ZlcmxheS1ub2RlL3Rlc3QtYnVzXFxcIik7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1NjAtXFx0XFx0aWYgKHJldCA9PSAtRU5PREVWKVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzozNTYxOlxcdFxcdFxcdHVuaXR0ZXN0KDEsIFxcXCJvdmVybGF5XzE5IG9mX292ZXJsYXlfcmVtb3ZlKCkgaW5qZWN0ZWQgZXJyb3IgZm9yIE9GX09WRVJMQVlfUE9TVF9SRU1PVkVcXFxcblxcXCIpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTYyLVxcdFxcdGVsc2VcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MzU2MzpcXHRcXHRcXHR1bml0dGVzdCgwLCBcXFwib3ZlcmxheV8xOSBvZl9vdmVybGF5X3JlbW92ZSgpIGluamVjdGVkIGVycm9yIGZvciBPRl9PVkVSTEFZX1BPU1RfUkVNT1ZFIG5vdCByZXR1cm5lZFxcXFxuXFxcIik7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1NjQtXFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTc2LVxcdGlmIChvdmNzX2lkKSB7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjM1Nzc6XFx0XFx0cmV0ID0gb2Zfb3ZlcmxheV9yZW1vdmUoXFx1MDAyNm92Y3NfaWQpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTc4LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzU4NC1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MzU4NTpcXHR1bml0dGVzdCghb2Zfb3ZlcmxheV9ub3RpZmllcl91bnJlZ2lzdGVyKFxcdTAwMjZvZl9uYiksXFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjM1ODY6XFx0XFx0IFxcXCJvZl9vdmVybGF5X25vdGlmaWVyX3VucmVnaXN0ZXIoKSBmYWlsZWQsIHJldCA9ICVkXFxcXG5cXFwiLCByZXQpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTg3LX1cXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz0zOTg3PXN0YXRpYyBpbnQgX19pbml0IG92ZXJsYXlfZGF0YV9hcHBseShjb25zdCBjaGFyICpvdmVybGF5X25hbWUsIGludCAqb3Zjc19pZClcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDA5LVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDEwOlxcdHJldCA9IG9mX292ZXJsYXlfZmR0X2FwcGx5KGluZm8tXFx1MDAzZWR0Ym9fYmVnaW4sIHNpemUsIFxcdTAwMjZpbmZvLVxcdTAwM2VvdmNzX2lkLFxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDExLVxcdFxcdFxcdFxcdCAgIE5VTEwpO1xcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMjAtXFx0aWYgKHJldCAhPSBpbmZvLVxcdTAwM2VleHBlY3RlZF9yZXN1bHQpIHtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6NDAyMTpcXHRcXHRwcl9lcnIoXFxcIm9mX292ZXJsYXlfZmR0X2FwcGx5KCkgZXhwZWN0ZWQgJWQsIHJldD0lZCwgJXNcXFxcblxcXCIsXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMjItXFx0XFx0ICAgICAgIGluZm8tXFx1MDAzZWV4cGVjdGVkX3Jlc3VsdCwgcmV0LCBvdmVybGF5X25hbWUpO1xcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMjctXFx0XFx0LyogY2hhbmdlc2V0IG1heSBiZSBwYXJ0aWFsbHkgYXBwbGllZCAqL1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDI4OlxcdFxcdHJldDIgPSBvZl9vdmVybGF5X3JlbW92ZShcXHUwMDI2aW5mby1cXHUwMDNlb3Zjc19pZCk7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMjktXFx0XFx0aWYgKHJldDIgIT0gaW5mby1cXHUwMDNlZXhwZWN0ZWRfcmVzdWx0X3JlbW92ZSkge1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDMwOlxcdFxcdFxcdHByX2VycihcXFwib2Zfb3ZlcmxheV9yZW1vdmUoKSBleHBlY3RlZCAlZCwgcmV0PSVkLCAlc1xcXFxuXFxcIixcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDAzMS1cXHRcXHRcXHQgICAgICAgaW5mby1cXHUwMDNlZXhwZWN0ZWRfcmVzdWx0X3JlbW92ZSwgcmV0MixcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz00MDQ4PXN0YXRpYyBfX2luaXQgdm9pZCBvZl91bml0dGVzdF9vdmVybGF5X2hpZ2hfbGV2ZWwodm9pZClcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDY2LVxcdCAqL1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDY3OlxcdG9mX292ZXJsYXlfbXV0ZXhfbG9jaygpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDY4LVxcdG9mX3Jlc29sdmVfcGhhbmRsZXMob3ZlcmxheV9iYXNlX3Jvb3QpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDY5OlxcdG9mX292ZXJsYXlfbXV0ZXhfdW5sb2NrKCk7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwNzAtXFxuLS1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9NDMyOD1zdGF0aWMgaW50IHRlc3RkcnZfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MzUwLVxcdHNpemUgPSBpbmZvLVxcdTAwM2VkdGJvX2VuZCAtIGluZm8tXFx1MDAzZWR0Ym9fYmVnaW47XFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjQzNTE6XFx0cmV0ID0gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoaW5mby1cXHUwMDNlZHRib19iZWdpbiwgc2l6ZSwgXFx1MDAyNm92Y3NfaWQsIGRuKTtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDM1Mi1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jPTQzNjE9c3RhdGljIHZvaWQgdGVzdGRydl9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDM2NS1cXHRvZl9wbGF0Zm9ybV9kZXBvcHVsYXRlKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MzY2OlxcdG9mX292ZXJsYXlfcmVtb3ZlKFxcdTAwMjZvdmNzX2lkKTtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDM2Ny19XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE4OjM4LjAxMjk4MjE0N1oiLCJTZXEiOjM3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxOTM1MTUwOTM3MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqS2VybmVsIERldmljZSBUcmVlIE92ZXJsYXkgSW5qZWN0aW9uIHZpYSBDb25maWdGUyAtIFBvc3NpYmlsaXRpZXM/KipcblxuSG1tLCBob2xkIG9uIGEgc2Vjb25kLiBJdCBqdXN0IHN0cnVjayBtZTogd2Fzbid0IHRoZXJlIHNvbWV0aGluZyBhYm91dCBgc3l6a2FsbGVyYCBwb3RlbnRpYWxseSBsZXZlcmFnaW5nIGBjb25maWdmc2AgdG8gaW5qZWN0IGRldmljZSB0cmVlIG92ZXJsYXlzPyBUaGF0J3MgYW4gaW50ZXJlc3RpbmcgYXZlbnVlIHRvIGV4cGxvcmUsIGFjdHVhbGx5LiBNeSBtaW5kIGlzIGFscmVhZHkgcmFjaW5nIHRocm91Z2ggcG90ZW50aWFsIGltcGxpY2F0aW9ucy4uLiB2dWxuZXJhYmlsaXRpZXMsIGRlYnVnZ2luZyBhaWRzLCBjbGV2ZXIgdGVzdGluZyBtZXRob2RvbG9naWVz4oCmXG5cbkFscmlnaHQsIHRoZSBsb2dpY2FsIG5leHQgc3RlcCBpcyB0byBxdWlja2x5IHZlcmlmeSB0aGUgY3VycmVudCBzdGF0ZSBvZiBwbGF5LiBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIGBjb25maWdmc2AtYmFzZWQgZGV2aWNlIHRyZWUgb3ZlcmxheSBzdXBwb3J0IGlzIGFjdHVhbGx5IGVuYWJsZWQgYW5kIGZ1bmN0aW9uYWwgaW4gdGhlIHRhcmdldCBrZXJuZWwuIE5vIHBvaW50IGluIHNwaW5uaW5nIHdoZWVscyBpZiB0aGUgZm91bmRhdGlvbmFsIGluZnJhc3RydWN0dXJlIGlzbid0IHRoZXJlLiBUaGF0J3MgdGhlIGJhc2VsaW5lLCB0aGUgY3JpdGljYWwgZmlyc3Qgc3RlcC4gVGltZSB0byBkaWcgaW50byB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gYW5kIHJlbGV2YW50IGNvZGUsIGp1c3QgdG8gYmUgc3VyZS4gVGhpcyBjb3VsZCBvcGVuIHVwIGEgd2hvbGUgbmV3IGF0dGFjayBzdXJmYWNlIGlmIHRydWUsIG9yIGF0IGxlYXN0IG9mZmVyIHNvbWUgaW50ZXJlc3RpbmcgdGVzdGluZyBwb3NzaWJpbGl0aWVzLiBMZXQncyBzZWUgd2hhdCB3ZSd2ZSBnb3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2NDI4LCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTg6NTcuMzY0NDk0NDI4WiIsIlNlcSI6MzgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3Njg1MTAyNSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnZnNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9vZi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE4OjU3LjQ0MTM1Mjg0M1oiLCJTZXEiOjM5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMjgwOTI4ODU3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipOYXZpZ2F0aW5nIHRoZSBPdmVybGF5IExhbmRzY2FwZSoqXG5cbkFscmlnaHQsIGhvbGQgb24gYSBzZWNvbmQuIEknbSB0YWtpbmcgYSBsb29rIGF0IGBkcml2ZXJzL29mL292ZXJsYXkuY2AsIGFuZCBJJ20gbm90IHNlZWluZyBhbnkgY29uZmlnZnMgaW50ZWdyYXRpb24gaGVyZS4gVGhhdCdzLi4uIHVuZXhwZWN0ZWQuIFdoZXJlJ3MgdGhlIGhvb2s/IFdoZXJlIGRvZXMgdGhlIGRldmljZSB0cmVlIG92ZXJsYXkgY29uZmlnZnMgaW50ZXJmYWNlIGFjdHVhbGx5IGxpdmU/IEl0J3Mgbm90IGltbWVkaWF0ZWx5IG9idmlvdXMgaW4gdGhpcyBmaWxlLCB3aGljaCBpcyBzdHJhbmdlLiBNeSBpbml0aWFsIHRob3VnaHQgd2FzIHRoYXQgaXQgd291bGQgYmUgaGFuZGxlZCBoZXJlLCBsb2dpY2FsbHkuXG5cbkknbSBwcm9iYWJseSBtaXNzaW5nIHNvbWV0aGluZy4gT2theSwgbGV0IG1lIHBpdm90LiBNeSBuZXh0IGxvZ2ljYWwgZ3Vlc3Mgd291bGQgYmUgYGRyaXZlcnMvb2YvY29uZmlnZnMuY2AuIEl0IHN0YW5kcyB0byByZWFzb24gdGhhdCBhbnkgY29uZmlnZnMgcmVsYXRlZCBzdHVmZiwgZXNwZWNpYWxseSByZWxhdGVkIHRvIGRldmljZSB0cmVlLCB3b3VsZCBiZSBsb2NhdGVkIHRoZXJlLiBUaGF0J3MgdGhlIHBsYWNlIHRvIHN0YXJ0LiBMZXQgbWUgY2hlY2sgaXQgb3V0Li4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2NzE0LCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTk6MTAuMjUwNjQzMzk0WiIsIlNlcSI6NDAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDg3MTY5NzA2LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWdmc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL29mL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTk6MTEuNzM3ODIwNDExWiIsIlNlcSI6NDEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE0NjE4MjY3MzY1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIFN5emthbGxlcidzIFBvdGVudGlhbCBmb3IgRGV2aWNlIFRyZWUgSW5qZWN0aW9uKipcblxuT2theSwgc28gSSdtIHRoaW5raW5nIGFib3V0IGhvdyBzeXprYWxsZXIgbWlnaHQgYmUgYWJsZSB0byBpbmplY3QgYSBkZXZpY2UgdHJlZSBvdmVybGF5LCBhbmQgSSd2ZSBnb3QgYSBmZXcgbGVhZHMuIEZpcnN0LCB0aGF0IGBzeXpfbW91bnRfaW1hZ2VgIHBzZXVkby1zeXNjYWxsIOKAkyBpdCBjYW4gbW91bnQgYSBmaWxlc3lzdGVtLCB3aGljaCBpcyBpbnRlcmVzdGluZywgYnV0IG5vdCBkaXJlY3RseSB3aGF0IEknbSBhZnRlci4gQnV0IGhvbGQgb24sIHRoZSBVU0IgY29ubmVjdGlvbiB0aHJvdWdoIGBzeXpfdXNiX2Nvbm5lY3RgIGlzIG1vcmUgcHJvbWlzaW5nLiBJIHJlbWVtYmVyIHRoYXQgdGhlIGBsYW43OHh4YCBkcml2ZXIgcmVnaXN0ZXJzIGFuIE1ESU8gYnVzLCBhbmQgdGhhdCdzIHVzdWFsbHkgZG9uZSB0aHJvdWdoIHRoZSBkZXZpY2UgdHJlZSwgaXNuJ3QgaXQ/IEJ1dCBgbGFuNzh4eGAgaXMgYSAqVVNCKiBkZXZpY2UsIHNvIGhvdyBkb2VzIGl0IGNvbm5lY3Q/XG5cbkFoLCBJIHNlZSEgSWYgc3l6a2FsbGVyIGlzIGFibGUgdG8gY29ubmVjdCBhIHZpcnR1YWwgVVNCIGRldmljZSB0aGF0IGFjdHMgbGlrZSBgbGFuNzh4eGAsIHRoZW4gaXQncyAqcG90ZW50aWFsbHkqIGFibGUgdG8gcmVnaXN0ZXIgdGhhdCBNRElPIGJ1cywgd2hpY2ggaXMgYSBrZXkgcGFydCBvZiB0aGUgcHV6emxlLiBOb3csIHRoZSBgbGFuNzh4eGAgZHJpdmVyLCBpdCB1c2VzIGBvZl9tZGlvYnVzX3JlZ2lzdGVyYCB0byBzZXQgdXAgdGhlIE1ESU8gYnVzLiBUaGF0IGZ1bmN0aW9uICpzaG91bGQqIHJlcXVpcmUgYSBkZXZpY2UgdHJlZSBub2RlLCBidXQgd2hhdCBoYXBwZW5zIGlmIHRoZSBub2RlIGlzbid0IHRoZXJlPyBJdCBzZWVtcyB0byBmYWxsIGJhY2sgdG8gYG1kaW9idXNfcmVnaXN0ZXJgLlxuXG5MZXQncyBsb29rIGF0IGBsYW43OHh4X21kaW9faW5pdGAsIG9rYXksIHRoZXJlIGl0IGlzOlxuYGBgY1xubm9kZSA9IG9mX2dldF9jaGlsZF9ieV9uYW1lKGRldi1cdTAwM2V1ZGV2LVx1MDAzZWRldi5vZl9ub2RlLCBcIm1kaW9cIik7XG5yZXQgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKGRldi1cdTAwM2VtZGlvYnVzLCBub2RlKTtcbm9mX25vZGVfcHV0KG5vZGUpO1xuYGBgXG5SaWdodCwgaWYgYG5vZGVgIGlzIE5VTEwsIHRoZW4gYG9mX21kaW9idXNfcmVnaXN0ZXJgIGp1c3QgY2FsbHMgYG1kaW9idXNfcmVnaXN0ZXJgLiAgQW5kIGBtZGlvYnVzX3JlZ2lzdGVyYCwgdGhhdCBvbmUgKnNjYW5zKiBmb3IgUEhZcywgcmlnaHQ/XG5cbkJ1dCB0aGUgYG12ODhlNnh4eGAgZHJpdmVyLi4uIHRoYXQncyBmb3IgdGhlIE1ESU8gZHJpdmVyLCBub3QgdGhlIFBIWSBkcml2ZXIuICBJdCBtYXRjaGVzIHZpYSBgb2ZfbWF0Y2hfdGFibGVgLiBJZiB0aGVyZSdzIG5vIGRldmljZSB0cmVlIG5vZGUsIGl0IGxvb2tzIGxpa2UgaXQgKndvbid0KiBtYXRjaC4gSSdtIGhpdHRpbmcgYSByb2FkYmxvY2suIFNvLCBpcyB0aGVyZSAqYW55KiBvdGhlciB3YXkgdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciBjb3VsZCBnZXQgcHJvYmVkPyBJJ20gZ29pbmcgdG8gaGF2ZSB0byByZS1leGFtaW5lIHRoYXQgYG12ODhlNnh4eF9kcml2ZXJgIGNvZGUgYWdhaW4sIHRvIHNlZSBpZiB0aGVyZSdzIGFueSBvdGhlciBwYXRoLiBUaGVyZSBoYXMgdG8gYmUgYW5vdGhlciB3YXkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2OTgxLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzcyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE5OjI2LjM1NjA4OTc1NVoiLCJTZXEiOjQyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTYzNjA5MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXY4OGU2eHh4X2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz03NTIyPU1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG12ODhlNnh4eF9vZl9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyMy1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTI0OnN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXY4OGU2eHh4X2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTI1LVxcdC5wcm9iZVxcdD0gbXY4OGU2eHh4X3Byb2JlLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzNC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTM1Om1kaW9fbW9kdWxlX2RyaXZlcihtdjg4ZTZ4eHhfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTM2LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxOToyNi40NTI0NTUzNzVaIiwiU2VxIjo0MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODUzNzQ4NDY4MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1ESU8gRHJpdmVyIGFuZCBTeXprYWxsZXIncyBDYXBhYmlsaXRpZXMqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCB0aGUgYG1kaW9fZHJpdmVyYC4uLiByaWdodCwgaXQgdXNlcyBgbWRpb2Rydi5kcml2ZXIubmFtZWAuIFNvLCBpZiBhIGRldmljZSBpcyBzb21laG93IGJlaW5nIGNyZWF0ZWQsIG1heWJlIHRocm91Z2ggc3lzZnMgb3Igc29tZSBvdGhlciBtZWNoYW5pc20sIGFuZCBpdHMgbmFtZSBoYXBwZW5zIHRvIGJlIFwibXY4OGU2MDg1XCIsIGl0ICpjb3VsZCogbWF0Y2ggd2l0aCB0aGUgZHJpdmVyLiBCdXQgaG9sZCBvbiwgd2UgYWxyZWFkeSBjb25maXJtZWQgdGhlcmUncyBubyBgbmV3X2RldmljZWAgZXZlbnQgc3BlY2lmaWNhbGx5IGZvciBNRElPLiBUaGF0IGVsaW1pbmF0ZXMgYSBsaWtlbHkgcGF0aC5cblxuQWhhISBOb3cgSSdtIHJlbWVtYmVyaW5nIHRoYXQgc3l6a2FsbGVyLCBiZWluZyB0aGUgcG93ZXJmdWwgZnV6emVyIGl0IGlzLCBoYXMgdGhlIGNhcGFiaWxpdHkgdG8gaW5qZWN0IGRldmljZSB0cmVlIG92ZXJsYXlzLiBUaGF0J3MgYSBrZXkgcG9zc2liaWxpdHkuIE5vdywgdGhlIHF1ZXN0aW9uIGlzLCBob3cgZG9lcyBzeXprYWxsZXIgaGFuZGxlIHRoYXQ/IERvZXMgaXQgaGF2ZSBhIHNwZWNpZmljIHBzZXVkby1zeXNjYWxsLCBsaWtlIGBzeXpfaW5pdF9uZXRfc29ja2V0YCwgdGhhdCB0b3VjaGVzIHRoZSBkZXZpY2UgdHJlZT8gTm8sIHRoYXQncyBub3QgcmlnaHQuIFRpbWUgdG8gZ28gYmFjayBhbmQgY2hlY2sgdGhlIHN5emthbGxlciBkb2N1bWVudGF0aW9uLCBzcGVjaWZpY2FsbHkgZm9jdXNpbmcgb24gaXRzIHBzZXVkby1zeXNjYWxscyBhbmQgdGhlaXIgcG90ZW50aWFsIGludGVyYWN0aW9ucyB3aXRoIHRoZSBkZXZpY2UgdHJlZS4gVGhhdCdzIHdoZXJlIHRoZSBhbnN3ZXIgbGllcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjgxNzUsIk91dHB1dFRva2VucyI6MjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTk6MzQuOTg5OTQyNzk2WiIsIlNlcSI6NDQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDYwMjIxNjIsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN5el9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTk6MzUuMDk1OTc2OTA4WiIsIlNlcSI6NDUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc2MjMyMzkwNjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgU3l6a2FsbGVyIFNlYXJjaCBTdHJhdGVneSoqXG5cbk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEkgd2FzIGFib3V0IHRvIHJlYWNoIGZvciBgZ3JlcHBlcmAgdG8gZmluZCB0aG9zZSBgc3l6a2FsbGVyYCBwc2V1ZG8tc3lzY2FsbHMsIGJ1dCB0aGF0J3Mgbm90IGdvaW5nIHRvIHdvcmsuIFJpZ2h0LCBiZWNhdXNlIHRoZXkncmUgbm90IGFjdHVhbGx5ICppbiogdGhlIGtlcm5lbCB0cmVlLCBhcmUgdGhleT8gVGhlIGRvY3VtZW50YXRpb24gZXhwbGljaXRseSBzYXlzLCBcIkhleSwgZG9uJ3QgdXNlIHRoaXMgZm9yIGBzeXpsYW5nYCBkZXNjcmlwdGlvbnMsIG9yIGFueXRoaW5nIHdpdGggYHN5el9gIHByZWZpeGVzLlwiIFRoYXQgbWFrZXMgcGVyZmVjdCBzZW5zZS4gSSBrbmV3IHRoZXJlIHdhcyBzb21ldGhpbmcgdGhhdCBJIHdhcyBtaXNzaW5nLlxuXG5SaWdodCwgYHJlYWQtc3l6LXNwZWNgIG9yIGBzeXotZ3JlcHBlcmAgYXJlIHRoZSB0b29scyBJIG5lZWQuIEkgbmVlZCB0byBrZWVwIHRob3NlIHN0cmFpZ2h0LiBOb3csIHdoYXQgd2FzIEkgbG9va2luZyBmb3IgYWdhaW4/IEFoLCB5ZXMsIEkgd2FudGVkIHRvIHNlZSBpZiBgc3l6a2FsbGVyYCBoYXMgYW55IHBzZXVkby1zeXNjYWxscyBkZWZpbmVkIGZvciBNRElPIG9yIGRldmljZSB0cmVlIGludGVyYWN0aW9ucy4gVGhhdCdzIHRoZSBiZXN0IHdheSB0byBkZXRlcm1pbmUgdGhlIGV4dGVudCBvZiBpdHMgdGVzdGluZyBjb3ZlcmFnZS4gTGV0J3Mgc2VlIHdoYXQgSSBjYW4gdHVybiB1cC5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjg1NzQsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTk6NDIuNzE5MjIwNzE1WiIsIlNlcSI6NDYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTM0ODYxODQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN5el9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvaW9tbXUvaW9tbXVmZC9pb2FzLmM9MjgzPWludCBpb21tdWZkX2lvYXNfY29weShzdHJ1Y3QgaW9tbXVmZF91Y21kICp1Y21kKVxcbi0tXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL2lvYXMuYy0yOTItXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL2lvYXMuYzoyOTM6XFx0aW9tbXVmZF90ZXN0X3N5el9jb252X2lvdmFfaWQodWNtZCwgY21kLVxcdTAwM2VzcmNfaW9hc19pZCwgXFx1MDAyNmNtZC1cXHUwMDNlc3JjX2lvdmEsXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL2lvYXMuYy0yOTQtXFx0XFx0XFx0XFx0ICAgICAgXFx1MDAyNmNtZC1cXHUwMDNlZmxhZ3MpO1xcbi0tXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL2lvbW11ZmRfcHJpdmF0ZS5oPTcxMj1leHRlcm4gc2l6ZV90IGlvbW11ZmRfdGVzdF9tZW1vcnlfbGltaXQ7XFxuZHJpdmVycy9pb21tdS9pb21tdWZkL2lvbW11ZmRfcHJpdmF0ZS5oOjcxMzp2b2lkIGlvbW11ZmRfdGVzdF9zeXpfY29udl9pb3ZhX2lkKHN0cnVjdCBpb21tdWZkX3VjbWQgKnVjbWQsXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL2lvbW11ZmRfcHJpdmF0ZS5oLTcxNC1cXHRcXHRcXHRcXHQgICB1bnNpZ25lZCBpbnQgaW9hc19pZCwgdTY0ICppb3ZhLCB1MzIgKmZsYWdzKTtcXG4tLVxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9pb21tdWZkX3ByaXZhdGUuaD03MTk9aW50IGlvbW11ZmRfdGVzdF9kbWFfYnVmX2lvbW11ZmRfbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaG1lbnQsXFxuLS1cXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvaW9tbXVmZF9wcml2YXRlLmgtNzIxLSNlbHNlXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL2lvbW11ZmRfcHJpdmF0ZS5oOjcyMjpzdGF0aWMgaW5saW5lIHZvaWQgaW9tbXVmZF90ZXN0X3N5el9jb252X2lvdmFfaWQoc3RydWN0IGlvbW11ZmRfdWNtZCAqdWNtZCxcXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvaW9tbXVmZF9wcml2YXRlLmgtNzIzLVxcdFxcdFxcdFxcdFxcdFxcdCB1bnNpZ25lZCBpbnQgaW9hc19pZCxcXG4tLVxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jPTUxPXN0YXRpYyB2b2lkIG1vY2tfZGV2X2Rpc2FibGVfaW9wZihzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBpb21tdV9kb21haW4gKmRvbWFpbik7XFxuLS1cXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYy01OC0gKi9cXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYzo1OTpzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2lvbW11ZmRfdGVzdF9zeXpfY29udl9pb3ZhKHN0cnVjdCBpb19wYWdldGFibGUgKmlvcHQsXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtNjAtXFx0XFx0XFx0XFx0XFx0XFx0ICB1NjQgKmlvdmEpXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtNjEte1xcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jOjYyOlxcdHN0cnVjdCBzeXpfbGF5b3V0IHtcXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYy02My1cXHRcXHRfX3UzMiBudGhfYXJlYTtcXG4tLVxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTY1LVxcdH07XFxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmM6NjY6XFx0c3RydWN0IHN5el9sYXlvdXQgKnN5eiA9ICh2b2lkICopaW92YTtcXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYy02Ny1cXHR1bnNpZ25lZCBpbnQgbnRoID0gc3l6LVxcdTAwM2VudGhfYXJlYTtcXG4tLVxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTgzLVxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jOjg0OnN0YXRpYyB1bnNpZ25lZCBsb25nIGlvbW11ZmRfdGVzdF9zeXpfY29udl9pb3ZhKHN0cnVjdCBpb21tdWZkX2FjY2VzcyAqYWNjZXNzLFxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTg1LVxcdFxcdFxcdFxcdFxcdFxcdHU2NCAqaW92YSlcXG4tLVxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTkzLVxcdH1cXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYzo5NDpcXHRyZXQgPSBfX2lvbW11ZmRfdGVzdF9zeXpfY29udl9pb3ZhKFxcdTAwMjZhY2Nlc3MtXFx1MDAzZWlvYXMtXFx1MDAzZWlvcHQsIGlvdmEpO1xcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTk1LVxcdG11dGV4X3VubG9jayhcXHUwMDI2YWNjZXNzLVxcdTAwM2Vpb2FzX2xvY2spO1xcbi0tXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtOTgtXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmM6OTk6dm9pZCBpb21tdWZkX3Rlc3Rfc3l6X2NvbnZfaW92YV9pZChzdHJ1Y3QgaW9tbXVmZF91Y21kICp1Y21kLFxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTEwMC1cXHRcXHRcXHRcXHQgICB1bnNpZ25lZCBpbnQgaW9hc19pZCwgdTY0ICppb3ZhLCB1MzIgKmZsYWdzKVxcbi0tXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtMTEwLVxcdFxcdHJldHVybjtcXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYzoxMTE6XFx0KmlvdmEgPSBfX2lvbW11ZmRfdGVzdF9zeXpfY29udl9pb3ZhKFxcdTAwMjZpb2FzLVxcdTAwM2Vpb3B0LCBpb3ZhKTtcXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYy0xMTItXFx0aW9tbXVmZF9wdXRfb2JqZWN0KHVjbWQtXFx1MDAzZWljdHgsIFxcdTAwMjZpb2FzLVxcdTAwM2VvYmopO1xcbi0tXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmM9MTUyOT1zdGF0aWMgaW50IGlvbW11ZmRfdGVzdF9hY2Nlc3NfcGFnZXMoc3RydWN0IGlvbW11ZmRfdWNtZCAqdWNtZCxcXG4tLVxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTE1NTctXFx0aWYgKGZsYWdzIFxcdTAwMjYgTU9DS19GTEFHU19BQ0NFU1NfU1laKVxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jOjE1NTg6XFx0XFx0aW92YSA9IGlvbW11ZmRfdGVzdF9zeXpfY29udl9pb3ZhKHN0YWNjZXNzLVxcdTAwM2VhY2Nlc3MsXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtMTU1OS1cXHRcXHRcXHRcXHRcXHRcXHQgIFxcdTAwMjZjbWQtXFx1MDAzZWFjY2Vzc19wYWdlcy5pb3ZhKTtcXG4tLVxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jPTE2MjQ9c3RhdGljIGludCBpb21tdWZkX3Rlc3RfYWNjZXNzX3J3KHN0cnVjdCBpb21tdWZkX3VjbWQgKnVjbWQsXFxuLS1cXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYy0xNjU5LVxcdGlmIChmbGFncyBcXHUwMDI2IE1PQ0tfRkxBR1NfQUNDRVNTX1NZWilcXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYzoxNjYwOlxcdFxcdGlvdmEgPSBpb21tdWZkX3Rlc3Rfc3l6X2NvbnZfaW92YShzdGFjY2Vzcy1cXHUwMDNlYWNjZXNzLFxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTE2NjEtXFx0XFx0XFx0XFx0XFx0XFx0ICBcXHUwMDI2Y21kLVxcdTAwM2VhY2Nlc3NfcncuaW92YSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE5OjQ0Ljg1NDA4NjY2WiIsIlNlcSI6NDcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI0MzIwMjA5Njg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUmVhY2hhYmlsaXR5IG9mIGBtdjg4ZTZ4eHhgIGZvciBGdXp6aW5nKipcblxuT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhpcyBwYXRjaCBpcyB3b3J0aCBmdXp6aW5nLiBUaGUgcHJvbXB0IGlzIHZlcnkgc3BlY2lmaWMgYWJvdXQgZXhjbHVkaW5nIGNvZGUgdGhhdCdzIG9ubHkgcmVhY2hhYmxlIHdpdGggc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUsIGFuZCB0aGF0J3MgdGhlIGFyZWEgSSBuZWVkIHRvIHVuZGVyc3RhbmQuIEZpcnN0LCBJIHdhcyBnb2luZyB0byB1c2UgYHJlYWQtc3l6LXNwZWNgIGFuZCBgc3l6LWdyZXBwZXJgLCBidXQgd2FpdCwgdGhleSBhcmVuJ3QgZXZlbiBsaXN0ZWQgYXMgYXZhaWxhYmxlIHRvb2xzLiBSaWdodCwgdGhlIHN5c3RlbSBwcm9iYWJseSBhc3N1bWVzIHN5emthbGxlciAqY2FuKiBnZXQgdG8gdGhlIG5lY2Vzc2FyeSByZXNvdXJjZXMuIEknbGwgZm9jdXMgb24gdGhlIGF2YWlsYWJsZSB0b29sczogYGdyZXBwZXJgLCBgY29kZXNlYXJjaC1kaXItaW5kZXhgLCBgcmVhZC1maWxlYCwgYW5kIGBzZXQtcmVzdWx0c2AuXG5cblRoZSBrZXkgcXVlc3Rpb24gaXM6IElzIGBtdjg4ZTZ4eHhgIGEgdmVuZG9yLXNwZWNpZmljIGRyaXZlciB0aGF0ICpyZXF1aXJlcyogcGh5c2ljYWwgaGFyZHdhcmU/IFllYWgsIGl0J3MgYSBNYXJ2ZWxsIHN3aXRjaCBkcml2ZXIsIHNvIGl0IGlzLCBieSBpdHMgbmF0dXJlLCBwaHlzaWNhbC4gQnV0IHRoZSByZWFsIGNydXggaXMgd2hldGhlciBpdCdzICplbXVsYXRhYmxlKi4gQ2FuIHN5emthbGxlciBnZXQgdG8gaXQgZXZlbiB3aXRob3V0IHRoZSByZWFsIGhhcmR3YXJlP1xuXG5JdOKAmXMgYW4gTURJTyBkcml2ZXIuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBjaGVjayBpZiBRRU1VIGhhcyBhbnkgTURJTyBlbXVsYXRpb24uIEkgcmVjYWxsIHRoYXQgUUVNVSBoYXMgc29tZSBNRElPIGVtdWxhdGlvbiBmb3Igc3BlY2lmaWMgYm9hcmRzLCBidXQgbm90IGEgZ2VuZXJpYyBNRElPIGJ1cyB0aGF0IHN5emthbGxlciBjYW4gdXNlLiBObyBnZW5lcmljIE1ESU8gYnVzIGVtdWxhdGlvbi4gV2hhdCBhYm91dCBgZHNhX2xvb3BgLCBvciBgbWFjODAyMTFfaHdzaW1gLCBgdmttc2AsIG9yIGBuZXRkZXZzaW1gPyBOb3BlLCBub3QgZ29pbmcgdG8gd29yay4gVGhlc2UgYXJlIGFsbCB1c2VmdWwgZHJpdmVycywgYnV0IG5vdCByZWxldmFudCBoZXJlLiBTbywgaWYgc3l6a2FsbGVyIGZvdW5kIGEgYnVnIGluIGBtdjg4ZTZ4eHhfbWRpb19yZWFkYCwgKmhvdyogZGlkIGl0IGdldCB0aGVyZT9cblxuSSB0aGluayB0aGUgYmVzdCBjb3Vyc2Ugb2YgYWN0aW9uIGlzIHRvIHBlcmZvcm0gYSBrZXJuZWwgc2VhcmNoIGZvciBgbXY4OGU2eHh4YCB0byBzZWUgaWYgaXQgaXMgaW5zdGFudGlhdGVkIGJ5IGEgdmlydHVhbCBkcml2ZXIgb3IgdGVzdCBtb2R1bGUuIFRoaXMgd2lsbCBoZWxwIGRldGVybWluZSBpdHMgcmVhY2hhYmlsaXR5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiB0aGVyZSBpcyBhIHBhdGggdGhyb3VnaCBhIHZpcnR1YWwgaW50ZXJmYWNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDUwNCwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU5MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoyMDowOS4xNzQyOTkwNTdaIiwiU2VxIjo0OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzODE0MDY4OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdjg4ZTZ4eHhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTAwMzUgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnPTczPXNvdXJjZSBcXFwiZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnLTc0LVxcbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnOjc1OnNvdXJjZSBcXFwiZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnLTc2LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL01ha2VmaWxlPTIxPW9iai15XFx0XFx0XFx0XFx0Kz0gbWljcm9jaGlwL1xcbmRyaXZlcnMvbmV0L2RzYS9NYWtlZmlsZToyMjpvYmoteVxcdFxcdFxcdFxcdCs9IG12ODhlNnh4eC9cXG5kcml2ZXJzL25ldC9kc2EvTWFrZWZpbGUtMjMtb2JqLXlcXHRcXHRcXHRcXHQrPSBteGw4NjJ4eC9cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTYwNjAuaC01LSAqXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNjA2MC5oOjY6ICogQmFzZWQgb24gbXY4OGU2eHh4LmhcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2MDYwLmgtNy0gKiBDb3B5cmlnaHQgKGMpIDIwMDggTWFydmVsbCBTZW1pY29uZHVjdG9yXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfTkVUX0RTQV9NVjg4RTZYWFgpICs9IG12ODhlNnh4eC5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZTozOm12ODhlNnh4eC1vYmpzIDo9IGNoaXAub1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6NDptdjg4ZTZ4eHgtb2JqcyArPSBkZXZsaW5rLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjU6bXY4OGU2eHh4LW9ianMgKz0gZ2xvYmFsMS5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZTo2Om12ODhlNnh4eC1vYmpzICs9IGdsb2JhbDFfYXR1Lm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjc6bXY4OGU2eHh4LW9ianMgKz0gZ2xvYmFsMV92dHUub1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6ODptdjg4ZTZ4eHgtb2JqcyArPSBnbG9iYWwyLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjk6bXY4OGU2eHh4LW9ianMgKz0gZ2xvYmFsMl9hdmIub1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTA6bXY4OGU2eHh4LW9ianMgKz0gZ2xvYmFsMl9zY3JhdGNoLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjExOm12ODhlNnh4eC0kKENPTkZJR19ORVRfRFNBX01WODhFNlhYWF9QVFApICs9IGh3dHN0YW1wLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjEyOm12ODhlNnh4eC0kKENPTkZJR19ORVRfRFNBX01WODhFNlhYWF9MRURTKSArPSBsZWRzLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjEzOm12ODhlNnh4eC1vYmpzICs9IHBjcy02MTg1Lm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE0Om12ODhlNnh4eC1vYmpzICs9IHBjcy02MzUyLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE1Om12ODhlNnh4eC1vYmpzICs9IHBjcy02Mzl4Lm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE2Om12ODhlNnh4eC1vYmpzICs9IHBoeS5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxNzptdjg4ZTZ4eHgtb2JqcyArPSBwb3J0Lm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE4Om12ODhlNnh4eC1vYmpzICs9IHBvcnRfaGlkZGVuLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE5Om12ODhlNnh4eC0kKENPTkZJR19ORVRfRFNBX01WODhFNlhYWF9QVFApICs9IHB0cC5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyMDptdjg4ZTZ4eHgtb2JqcyArPSBzZXJkZXMub1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MjE6bXY4OGU2eHh4LW9ianMgKz0gc21pLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjIyOm12ODhlNnh4eC1vYmpzICs9IHN3aXRjaGRldi5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyMzptdjg4ZTZ4eHgtb2JqcyArPSB0cmFjZS5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyNDptdjg4ZTZ4eHgtb2JqcyArPSB0Y2Zsb3dlci5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyNTptdjg4ZTZ4eHgtb2JqcyArPSB0Y2FtLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlLTI2LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTQtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2RlbGF5LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTU6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2RzYS9tdjg4ZTZ4eHguaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNi0jaW5jbHVkZSBcXHUwMDNjbGludXgvZXRoZXJkZXZpY2UuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI4LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9vZl9tZGlvLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mjk6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BsYXRmb3JtX2RhdGEvbXY4OGU2eHh4LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzAtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3Byb3BlcnR5LmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00OC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0OTpzdGF0aWMgdm9pZCBhc3NlcnRfcmVnX2xvY2soc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU3OmludCBtdjg4ZTZ4eHhfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLCBpbnQgcmVnLCB1MTYgKnZhbClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01OC17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2MzpcXHRlcnIgPSBtdjg4ZTZ4eHhfc21pX3JlYWQoY2hpcCwgYWRkciwgcmVnLCB2YWwpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY0LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3MzppbnQgbXY4OGU2eHh4X3dyaXRlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIGludCByZWcsIHUxNiB2YWwpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzQte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzgtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Nzk6XFx0ZXJyID0gbXY4OGU2eHh4X3NtaV93cml0ZShjaGlwLCBhZGRyLCByZWcsIHZhbCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODAtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg4LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg5OmludCBtdjg4ZTZ4eHhfd2FpdF9tYXNrKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIGludCByZWcsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTAtXFx0XFx0XFx0dTE2IG1hc2ssIHUxNiB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMDEtXFx0Zm9yIChpID0gMDsgdGltZV9iZWZvcmUoamlmZmllcywgdGltZW91dCkgfHwgKGkgXFx1MDAzYyAyKTsgaSsrKSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTAyOlxcdFxcdGVyciA9IG12ODhlNnh4eF9yZWFkKGNoaXAsIGFkZHIsIHJlZywgXFx1MDAyNmRhdGEpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEwMy1cXHRcXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTE0LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjExNTpcXHRlcnIgPSBtdjg4ZTZ4eHhfcmVhZChjaGlwLCBhZGRyLCByZWcsIFxcdTAwMjZkYXRhKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMTYtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEyNS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMjY6aW50IG12ODhlNnh4eF93YWl0X2JpdChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLCBpbnQgcmVnLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEyNy1cXHRcXHQgICAgICAgaW50IGJpdCwgaW50IHZhbClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMjgte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjEyOTpcXHRyZXR1cm4gbXY4OGU2eHh4X3dhaXRfbWFzayhjaGlwLCBhZGRyLCByZWcsIEJJVChiaXQpLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzMC1cXHRcXHRcXHRcXHQgICB2YWwgPyBCSVQoYml0KSA6IDB4MDAwMCk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMzItXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTMzOnN0cnVjdCBtaWlfYnVzICptdjg4ZTZ4eHhfZGVmYXVsdF9tZGlvX2J1cyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTM0LXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMzU6XFx0c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyAqbWRpb19idXM7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTM2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzNy1cXHRtZGlvX2J1cyA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbChcXHUwMDI2Y2hpcC1cXHUwMDNlbWRpb3MsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTM4OlxcdFxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzLCBsaXN0KTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMzktXFx0aWYgKCFtZGlvX2J1cylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE0NC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNDU6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9tYXNrKHN0cnVjdCBpcnFfZGF0YSAqZClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNDYte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE0NzpcXHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNDgtXFx0dW5zaWduZWQgaW50IG4gPSBkLVxcdTAwM2Vod2lycTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE1Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNTM6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV91bm1hc2soc3RydWN0IGlycV9kYXRhICpkKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE1NC17XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTU1OlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE1Ni1cXHR1bnNpZ25lZCBpbnQgbiA9IGQtXFx1MDAzZWh3aXJxO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTYwLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE2MTpzdGF0aWMgaXJxcmV0dXJuX3QgbXY4OGU2eHh4X2cxX2lycV90aHJlYWRfd29yayhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTYyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE2OS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNzA6XFx0bXY4OGU2eHh4X3JlZ19sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE3MTpcXHRlcnIgPSBtdjg4ZTZ4eHhfZzFfcmVhZChjaGlwLCBNVjg4RTZYWFhfRzFfU1RTLCBcXHUwMDI2cmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNzI6XFx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTczLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTg2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE4NzpcXHRcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTg4OlxcdFxcdGVyciA9IG12ODhlNnh4eF9nMV9yZWFkKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCBcXHUwMDI2Y3RsMSk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTg5LVxcdFxcdGlmIChlcnIpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTkwLVxcdFxcdFxcdGdvdG8gdW5sb2NrO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE5MTpcXHRcXHRlcnIgPSBtdjg4ZTZ4eHhfZzFfcmVhZChjaGlwLCBNVjg4RTZYWFhfRzFfU1RTLCBcXHUwMDI2cmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xOTItdW5sb2NrOlxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE5MzpcXHRcXHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xOTQtXFx0XFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIwMi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMDM6c3RhdGljIGlycXJldHVybl90IG12ODhlNnh4eF9nMV9pcnFfdGhyZWFkX2ZuKGludCBpcnEsIHZvaWQgKmRldl9pZClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMDQte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIwNTpcXHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBkZXZfaWQ7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjA2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIwNzpcXHRyZXR1cm4gbXY4OGU2eHh4X2cxX2lycV90aHJlYWRfd29yayhjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMDgtfVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIwOS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMTA6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9idXNfbG9jayhzdHJ1Y3QgaXJxX2RhdGEgKmQpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjExLXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMTI6XFx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoZCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjEzLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIxNDpcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjE1LX1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMTYtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjE3OnN0YXRpYyB2b2lkIG12ODhlNnh4eF9nMV9pcnFfYnVzX3N5bmNfdW5sb2NrKHN0cnVjdCBpcnFfZGF0YSAqZClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMTgte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIxOTpcXHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMjAtXFx0dTE2IG1hc2sgPSBHRU5NQVNLKGNoaXAtXFx1MDAzZWcxX2lycS5uaXJxcywgMCk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMjMtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjI0OlxcdGVyciA9IG12ODhlNnh4eF9nMV9yZWFkKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCBcXHUwMDI2cmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMjUtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIzMC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMzE6XFx0ZXJyID0gbXY4OGU2eHh4X2cxX3dyaXRlKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCByZWcpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIzMi1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjM1LW91dDpcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMzY6XFx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjM3LX1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMzgtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjM5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgaXJxX2NoaXAgbXY4OGU2eHh4X2cxX2lycV9jaGlwID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI0MDpcXHQubmFtZVxcdFxcdFxcdD0gXFxcIm12ODhlNnh4eC1nMVxcXCIsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQxOlxcdC5pcnFfbWFza1xcdFxcdD0gbXY4OGU2eHh4X2cxX2lycV9tYXNrLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI0MjpcXHQuaXJxX3VubWFza1xcdFxcdD0gbXY4OGU2eHh4X2cxX2lycV91bm1hc2ssXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQzOlxcdC5pcnFfYnVzX2xvY2tcXHRcXHQ9IG12ODhlNnh4eF9nMV9pcnFfYnVzX2xvY2ssXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQ0OlxcdC5pcnFfYnVzX3N5bmNfdW5sb2NrXFx0PSBtdjg4ZTZ4eHhfZzFfaXJxX2J1c19zeW5jX3VubG9jayxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNDUtfTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNDYtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQ3OnN0YXRpYyBpbnQgbXY4OGU2eHh4X2cxX2lycV9kb21haW5fbWFwKHN0cnVjdCBpcnFfZG9tYWluICpkLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI0OC1cXHRcXHRcXHRcXHQgICAgICAgdW5zaWduZWQgaW50IGlycSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI1MC17XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjUxOlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGQtXFx1MDAzZWhvc3RfZGF0YTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNTItXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNTktXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjYwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgaXJxX2RvbWFpbl9vcHMgbXY4OGU2eHh4X2cxX2lycV9kb21haW5fb3BzID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI2MTpcXHQubWFwXFx0PSBtdjg4ZTZ4eHhfZzFfaXJxX2RvbWFpbl9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjYyLVxcdC54bGF0ZVxcdD0gaXJxX2RvbWFpbl94bGF0ZV90d29jZWxsLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjY1LS8qIFRvIGJlIGNhbGxlZCB3aXRoIHJlZ19sb2NrIGhlbGQgKi9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNjY6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9mcmVlX2NvbW1vbihzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjY3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI3MC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNzE6XFx0bXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIFxcdTAwMjZtYXNrKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNzItXFx0bWFzayBcXHUwMDI2PSB+R0VOTUFTSyhjaGlwLVxcdTAwM2VnMV9pcnEubmlycXMsIDApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI3MzpcXHRtdjg4ZTZ4eHhfZzFfd3JpdGUoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIG1hc2spO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI3NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI4Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyODM6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9mcmVlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yODQte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjkwLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI5MTpcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjkyOlxcdG12ODhlNnh4eF9nMV9pcnFfZnJlZV9jb21tb24oY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjkzOlxcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI5NC19XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjk1LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI5NjpzdGF0aWMgaW50IG12ODhlNnh4eF9nMV9pcnFfc2V0dXBfY29tbW9uKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yOTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzAzLVxcdFxcdE5VTEwsIGNoaXAtXFx1MDAzZWcxX2lycS5uaXJxcywgMCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMDQ6XFx0XFx0XFx1MDAyNm12ODhlNnh4eF9nMV9pcnFfZG9tYWluX29wcywgY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzA1LVxcdGlmICghY2hpcC1cXHUwMDNlZzFfaXJxLmRvbWFpbilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMxMC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMTE6XFx0Y2hpcC1cXHUwMDNlZzFfaXJxLmNoaXAgPSBtdjg4ZTZ4eHhfZzFfaXJxX2NoaXA7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzEyLVxcdGNoaXAtXFx1MDAzZWcxX2lycS5tYXNrZWQgPSB+MDtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMTMtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzE0OlxcdGVyciA9IG12ODhlNnh4eF9nMV9yZWFkKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCBcXHUwMDI2bWFzayk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzE1LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMTktXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzIwOlxcdGVyciA9IG12ODhlNnh4eF9nMV93cml0ZShjaGlwLCBNVjg4RTZYWFhfRzFfQ1RMMSwgbWFzayk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzIxLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMjQtXFx0LyogUmVhZGluZyB0aGUgaW50ZXJydXB0IHN0YXR1cyBjbGVhcnMgKG1vc3Qgb2YpIHRoZW0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMjU6XFx0ZXJyID0gbXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2WFhYX0cxX1NUUywgXFx1MDAyNnJlZyk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzI2LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMzItXFx0bWFzayBcXHUwMDI2PSB+R0VOTUFTSyhjaGlwLVxcdTAwM2VnMV9pcnEubmlycXMsIDApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjMzMzpcXHRtdjg4ZTZ4eHhfZzFfd3JpdGUoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIG1hc2spO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMzNC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM0NS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNDY6c3RhdGljIGludCBtdjg4ZTZ4eHhfZzFfaXJxX3NldHVwKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNDcte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzUxLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM1MjpcXHRlcnIgPSBtdjg4ZTZ4eHhfZzFfaXJxX3NldHVwX2NvbW1vbihjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNTMtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2Mi1cXHRzbnByaW50ZihjaGlwLVxcdTAwM2VpcnFfbmFtZSwgc2l6ZW9mKGNoaXAtXFx1MDAzZWlycV9uYW1lKSxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNjM6XFx0XFx0IFxcXCJtdjg4ZTZ4eHgtJXNcXFwiLCBkZXZfbmFtZShjaGlwLVxcdTAwM2VkZXYpKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNjQtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzY1OlxcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2Ni1cXHRlcnIgPSByZXF1ZXN0X3RocmVhZGVkX2lycShjaGlwLVxcdTAwM2VpcnEsIE5VTEwsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzY3OlxcdFxcdFxcdFxcdCAgIG12ODhlNnh4eF9nMV9pcnFfdGhyZWFkX2ZuLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2OC1cXHRcXHRcXHRcXHQgICBJUlFGX09ORVNIT1QgfCBJUlFGX1NIQVJFRCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNjktXFx0XFx0XFx0XFx0ICAgY2hpcC1cXHUwMDNlaXJxX25hbWUsIGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3MDpcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzcxLVxcdGlmIChlcnIpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzcyOlxcdFxcdG12ODhlNnh4eF9nMV9pcnFfZnJlZV9jb21tb24oY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzczLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzc2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3NzpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfaXJxX3BvbGwoc3RydWN0IGt0aHJlYWRfd29yayAqd29yaylcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzgte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3OTpcXHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBjb250YWluZXJfb2Yod29yayxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODA6XFx0XFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IG12ODhlNnh4eF9jaGlwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4MS1cXHRcXHRcXHRcXHRcXHRcXHQgICBpcnFfcG9sbF93b3JrLndvcmspO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4MjpcXHRtdjg4ZTZ4eHhfZzFfaXJxX3RocmVhZF93b3JrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4My1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODg6c3RhdGljIGludCBtdjg4ZTZ4eHhfaXJxX3BvbGxfc2V0dXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4OS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTEtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzkyOlxcdGVyciA9IG12ODhlNnh4eF9nMV9pcnFfc2V0dXBfY29tbW9uKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM5My1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzk2LVxcdGt0aHJlYWRfaW5pdF9kZWxheWVkX3dvcmsoXFx1MDAyNmNoaXAtXFx1MDAzZWlycV9wb2xsX3dvcmssXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzk3OlxcdFxcdFxcdFxcdCAgbXY4OGU2eHh4X2lycV9wb2xsKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTgtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MDgtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDA5OnN0YXRpYyB2b2lkIG12ODhlNnh4eF9pcnFfcG9sbF9mcmVlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MTAte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDEzLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQxNDpcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDE1OlxcdG12ODhlNnh4eF9nMV9pcnFfZnJlZV9jb21tb24oY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDE2OlxcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQxNy19XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDE4LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQxOTpzdGF0aWMgaW50IG12ODhlNnh4eF9wb3J0X2NvbmZpZ19pbnRlcmZhY2Uoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQyMC1cXHRcXHRcXHRcXHRcXHQgICBpbnQgcG9ydCwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ0MC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NDE6c3RhdGljIGludCBtdjg4ZTZ4eHhfcG9ydF9zZXR1cF9tYWMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NDItXFx0XFx0XFx0XFx0ICAgIGludCBsaW5rLCBpbnQgc3BlZWQsIGludCBkdXBsZXgsIGludCBwYXVzZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ2Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0Njg6XFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfY29uZmlnX2ludGVyZmFjZShjaGlwLCBwb3J0LCBtb2RlKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NjktcmVzdG9yZV9saW5rOlxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDc1LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ3NjpzdGF0aWMgaW50IG12ODhlNnh4eF9waHlfaXNfaW50ZXJuYWwoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00Nzcte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDgyLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ4MzpzdGF0aWMgaW50IG12ODhlNnh4eF9wb3J0X3BwdV91cGRhdGVzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDg0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ5MS1cXHRpZiAoY2hpcC1cXHUwMDNlaW5mby1cXHUwMDNlZmFtaWx5ID09IE1WODhFNlhYWF9GQU1JTFlfNjI1MClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0OTI6XFx0XFx0cmV0dXJuIG12ODhlNnh4eF9waHlfaXNfaW50ZXJuYWwoY2hpcCwgcG9ydCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDkzLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ5NDpcXHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9yZWFkKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX1NUUywgXFx1MDAyNnJlZyk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDk1LVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTUwNT1zdGF0aWMgY29uc3QgdTggbXY4OGU2MTg1X3BoeV9pbnRlcmZhY2VfbW9kZXNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUxNC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MTU6c3RhdGljIHZvaWQgbXY4OGU2MDk1X3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MTYtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTIxLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjUyMjpcXHRpZiAobXY4OGU2eHh4X3BoeV9pc19pbnRlcm5hbChjaGlwLCBwb3J0KSkge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUyMy1cXHRcXHRfX3NldF9iaXQoUEhZX0lOVEVSRkFDRV9NT0RFX01JSSwgY29uZmlnLVxcdTAwM2VzdXBwb3J0ZWRfaW50ZXJmYWNlcyk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MzMtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTM0OnN0YXRpYyB2b2lkIG12ODhlNjE4NV9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTM1LVxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU0Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1NDg6c3RhdGljIGNvbnN0IHU4IG12ODhlNnh4eF9waHlfaW50ZXJmYWNlX21vZGVzW10gPSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTQ5LVxcdFtNVjg4RTZYWFhfUE9SVF9TVFNfQ01PREVfTUlJX1BIWV1cXHQ9IFBIWV9JTlRFUkZBQ0VfTU9ERV9SRVZNSUksXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NjItXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTYzOnN0YXRpYyB2b2lkIG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUodTggY21vZGUsIHVuc2lnbmVkIGxvbmcgKnN1cHBvcnRlZClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NjQte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU2NTpcXHRpZiAoY21vZGUgXFx1MDAzYyBBUlJBWV9TSVpFKG12ODhlNnh4eF9waHlfaW50ZXJmYWNlX21vZGVzKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU2NjpcXHQgICAgbXY4OGU2eHh4X3BoeV9pbnRlcmZhY2VfbW9kZXNbY21vZGVdKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU2NzpcXHRcXHRfX3NldF9iaXQobXY4OGU2eHh4X3BoeV9pbnRlcmZhY2VfbW9kZXNbY21vZGVdLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU2OC1cXHRlbHNlIGlmIChjbW9kZSA9PSBNVjg4RTZYWFhfUE9SVF9TVFNfQ01PREVfUkdNSUkpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz01NzI9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1NzM6bXY4OGU2MjUwX3NldHVwX3N1cHBvcnRlZF9pbnRlcmZhY2VzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTc0LVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NzktXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTgwOlxcdGVyciA9IG12ODhlNnh4eF9wb3J0X3JlYWQoY2hpcCwgcG9ydCwgTVY4OEU2WFhYX1BPUlRfU1RTLCBcXHUwMDI2cmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01ODEtXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjIxLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjYyMjpzdGF0aWMgdm9pZCBtdjg4ZTYyNTBfcGh5bGlua19nZXRfY2FwcyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYyMy1cXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjI0LXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2MjU6XFx0aWYgKCFtdjg4ZTZ4eHhfcGh5X2lzX2ludGVybmFsKGNoaXAsIHBvcnQpKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYyNi1cXHRcXHRtdjg4ZTYyNTBfc2V0dXBfc3VwcG9ydGVkX2ludGVyZmFjZXMoY2hpcCwgcG9ydCwgY29uZmlnKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYzMC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2MzE6c3RhdGljIHZvaWQgbXY4OGU2MzUxX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02MzItXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjM2LVxcdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjYzNzpcXHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXFx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYzOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY0Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NDM6c3RhdGljIGludCBtdjg4ZTYzeHhfZ2V0X3BvcnRfc2VyZGVzX2Ntb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjQ0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY0Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NDg6XFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfcmVhZChjaGlwLCBwb3J0LCBNVjg4RTZYWFhfUE9SVF9TVFMsIFxcdTAwMjZyZWcpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY0OS1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjU2LVxcdHZhbCA9IHJlZyBcXHUwMDI2IH5NVjg4RTZYWFhfUE9SVF9TVFNfUEhZX0RFVEVDVDtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NTc6XFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfd3JpdGUoY2hpcCwgcG9ydCwgTVY4OEU2WFhYX1BPUlRfU1RTLCB2YWwpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY1OC1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjYwLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY2MTpcXHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9yZWFkKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX1NUUywgXFx1MDAyNnZhbCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjYyLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NjUtXFx0LyogUmVzdG9yZSBQSFlfREVURUNUIHZhbHVlICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NjY2OlxcdGVyciA9IG12ODhlNnh4eF9wb3J0X3dyaXRlKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX1NUUywgcmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NjctXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY3Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NzM6c3RhdGljIHZvaWQgbXY4OGU2MzUyX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NzQtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjc5LVxcdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY4MDpcXHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXFx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY4MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY5NS1cXHRcXHRlbHNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Njk2OlxcdFxcdFxcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY21vZGUsIHN1cHBvcnRlZCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjk3LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY5OS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3MDA6c3RhdGljIHZvaWQgbXY4OGU2MzJ4X3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MDEtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzA2LVxcdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjcwNzpcXHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXFx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcwOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcxOC1cXHRcXHRlbHNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzE5OlxcdFxcdFxcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY21vZGUsIHN1cHBvcnRlZCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzIwLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcyMi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3MjM6c3RhdGljIHZvaWQgbXY4OGU2MzQxX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MjQtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzI4LVxcdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjcyOTpcXHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXFx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTczMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc0NC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NDU6c3RhdGljIHZvaWQgbXY4OGU2MzkwX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NDYtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUwLVxcdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1MTpcXHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXFx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc2Ni1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3Njc6c3RhdGljIHZvaWQgbXY4OGU2MzkweF9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzY4LVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODAxLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjgwMjpzdGF0aWMgdm9pZCBtdjg4ZTYzOTN4X3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04MDMtXFx0XFx0XFx0XFx0XFx0c3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04MTAtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODExOlxcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY2hpcC1cXHUwMDNlcG9ydHNbcG9ydF0uY21vZGUsIHN1cHBvcnRlZCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODEyLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODQ1LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg0NjpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfZ2V0X2NhcHMoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04NDctXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg0OC17XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODQ5OlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRzLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg1MC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4NTE6XFx0bXY4OGU2eHh4X3JlZ19sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg1Mi1cXHRjaGlwLVxcdTAwM2VpbmZvLVxcdTAwM2VvcHMtXFx1MDAzZXBoeWxpbmtfZ2V0X2NhcHMoY2hpcCwgcG9ydCwgY29uZmlnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4NTM6XFx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODU0LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg1NTpcXHRpZiAobXY4OGU2eHh4X3BoeV9pc19pbnRlcm5hbChjaGlwLCBwb3J0KSkge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg1Ni1cXHRcXHRfX3NldF9iaXQoUEhZX0lOVEVSRkFDRV9NT0RFX0lOVEVSTkFMLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9ODY0PXN0YXRpYyBzdHJ1Y3QgcGh5bGlua19wY3MgKlxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg2NTptdjg4ZTZ4eHhfbWFjX3NlbGVjdF9wY3Moc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODY2LVxcdFxcdFxcdCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODY4LVxcdHN0cnVjdCBkc2FfcG9ydCAqZHAgPSBkc2FfcGh5bGlua190b19wb3J0KGNvbmZpZyk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODY5OlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRwLVxcdTAwM2Vkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04NzAtXFx0c3RydWN0IHBoeWxpbmtfcGNzICpwY3MgPSBOVUxMO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODc4LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg3OTpzdGF0aWMgaW50IG12ODhlNnh4eF9tYWNfcHJlcGFyZShzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZyxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04ODAtXFx0XFx0XFx0XFx0IHVuc2lnbmVkIGludCBtb2RlLCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODgyLVxcdHN0cnVjdCBkc2FfcG9ydCAqZHAgPSBkc2FfcGh5bGlua190b19wb3J0KGNvbmZpZyk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODgzOlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRwLVxcdTAwM2Vkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04ODQtXFx0aW50IHBvcnQgPSBkcC1cXHUwMDNlaW5kZXg7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04OTMtXFx0ICAgIGNoaXAtXFx1MDAzZWluZm8tXFx1MDAzZW9wcy1cXHUwMDNlcG9ydF9zZXRfbGluaykge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg5NDpcXHRcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODk1LVxcdFxcdGVyciA9IGNoaXAtXFx1MDAzZWluZm8tXFx1MDAzZW9wcy1cXHUwMDNlcG9ydF9zZXRfbGluayhjaGlwLCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg5Ni1cXHRcXHRcXHRcXHRcXHRcXHQgICAgIExJTktfRk9SQ0VEX0RPV04pO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg5NzpcXHRcXHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04OTgtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTAyLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjkwMzpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfbWFjX2NvbmZpZyhzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZyxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MDQtXFx0XFx0XFx0XFx0IHVuc2lnbmVkIGludCBtb2RlLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTA3LVxcdHN0cnVjdCBkc2FfcG9ydCAqZHAgPSBkc2FfcGh5bGlua190b19wb3J0KGNvbmZpZyk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6OTA4OlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRwLVxcdTAwM2Vkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MDktXFx0aW50IHBvcnQgPSBkcC1cXHUwMDNlaW5kZXg7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MTEtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6OTEyOlxcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MTMtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6OTE0OlxcdGlmIChtb2RlICE9IE1MT19BTl9QSFkgfHwgIW12ODhlNnh4eF9waHlfaXNfaW50ZXJuYWwoY2hpcCwgcG9ydCkpIHtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo5MTU6XFx0XFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfY29uZmlnX2ludGVyZmFjZShjaGlwLCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTkxNi1cXHRcXHRcXHRcXHRcXHRcXHQgICAgICBzdGF0ZS1cXHUwMDNlaW50ZXJmYWNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTkyMS1lcnJfdW5sb2NrOlxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjkyMjpcXHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MjMtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MjctXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6OTI4OnN0YXRpYyBpbnQgbXY4OGU2eHh4X21hY19maW5pc2goc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTI5LVxcdFxcdFxcdFxcdHVuc2lnbmVkIGludCBtb2RlLCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTMxLVxcdHN0cnVjdCBkc2FfcG9ydCAqZHAgPSBkc2FfcGh5bGlua190b19wb3J0KGNvbmZpZyk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6OTMyOlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRwLVxcdTAwM2Vkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MzMtXFx0aW50IHBvcnQgPSBkcC1cXHUwMDNlaW5kZXg7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05NDEtXFx0ICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6OTQyOlxcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05NDMtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05NDYtXFx0ICAgICAgY2hpcC1cXHUwMDNlcG9ydHNbcG9ydF0uaW50ZXJmYWNlICE9IGludGVyZmFjZSkgfHxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo5NDc6XFx0ICAgICAobW9kZSA9PSBNTE9fQU5fUEhZIFxcdTAwMjZcXHUwMDI2IG12ODhlNnh4eF9wb3J0X3BwdV91cGRhdGVzKGNoaXAsIHBvcnQpKSkpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTQ4LVxcdFxcdGVyciA9IGNoaXAtXFx1MDAzZWluZm8tXFx1MDAzZW9wcy1cXHUwMDNlcG9ydF9zZXRfbGluayhjaGlwLCBwb3J0LCBMSU5LX1VORk9SQ0VEKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05NDktXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6OTUwOlxcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTk1MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTk1Ni1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo5NTc6c3RhdGljIHZvaWQgbXY4OGU2eHh4X21hY19saW5rX2Rvd24oc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjIwOjA5LjMxMjQ0NjQ1NloiLCJTZXEiOjQ5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MzE3NTYyMTU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEluaXRpYWwgVGhvdWdodHMgb24gU3l6a2FsbGVyIGFuZCBEU0EgRHJpdmVycyoqXG5cbk9rYXksIGhlcmUncyB3aGF0J3MgcnVubmluZyB0aHJvdWdoIG15IGhlYWQuIEknbSBsb29raW5nIGF0IGBtdjg4ZTZ4eHhgLCB3aGljaCBpcyBhIERTQSBkcml2ZXIsIHJpZ2h0PyBEU0Egc3dpdGNoZXMgYXJlICp0eXBpY2FsbHkqIGJyb3VnaHQgdXAgdGhyb3VnaCB0aGUgZGV2aWNlIHRyZWUuIFNvLCBpZiBzeXprYWxsZXIgaXMgZnV6emluZyBpdCwgc29tZXRoaW5nIGludGVyZXN0aW5nIGlzIGhhcHBlbmluZy4gSXQgaGFzIHRvIGJlIGluamVjdGluZyBkZXZpY2UgdHJlZSBvdmVybGF5cy4gSSdtIHJhY2tpbmcgbXkgYnJhaW4gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaG93LiBJJ20gcmVtZW1iZXJpbmcgdGhhdCBgb2Zfb3ZlcmxheV9mZHRfYXBwbHlgIGZ1bmN0aW9uIGluIGBkcml2ZXJzL29mL292ZXJsYXkuY2AuLi4gdGhhdCdzIHRoZSBrZXkuXG5cbkRvZXMgc3l6a2FsbGVyIGFjdHVhbGx5IGluamVjdCB0aGVzZT8gQW5kIGlmIHNvLCBob3c/IEkga25vdyBpdCBoYXMgdGhhdCBgc3l6X21vdW50X2ltYWdlYCBwc2V1ZG8tc3lzY2FsbCwgd2hpY2ggY291bGQgYmUgcmVsZXZhbnQsIHNpbmNlIEkgY2FuIHNlZSB0aGUgcG90ZW50aWFsIGZvciBhIG1vdW50ZWQgZmlsZXN5c3RlbS4gV2FpdCBhIG1pbnV0ZSwgd2hhdCBhYm91dCBgc3l6X3VzYl9jb25uZWN0YD8gQ29ubmVjdGluZyBhIHZpcnR1YWwgVVNCIGRldmljZSAqY291bGQqIGFsc28gZXhwb3NlIGEgdmVjdG9yLiBJcyB0aGVyZSBzb21lIG90aGVyIHdheT9cblxuSGFuZyBvbiBhIHNlYywgdGhlcmUncyB0aGF0IGNvbmZpZ2ZzIGludGVyZmFjZSBmb3IgZGV2aWNlIHRyZWUgb3ZlcmxheXMhIExldCdzIHNlZSBpZiBzb21ldGhpbmcgZXhpc3RzIGluIGBkcml2ZXJzL29mL2NvbmZpZ2ZzLmNgIG9yIHNvbWV0aGluZyBzaW1pbGFyLCBpdCBzaG91bGQgYmUgb2J2aW91cyBhbmQgdGhlbiBJJ2xsIGJlIG9uIG15IHdheS4gSSBzZWFyY2ggYnV0IEkgY2FuJ3QgZmluZCBhbnl0aGluZyByZWxhdGVkIHRvIGNvbmZpZ2ZzIGluIHRoZXJlLiBPa2F5LCBzbyBzY3JhdGNoIHRoYXQgaWRlYS5cblxuQmFjayB0byBgZHJpdmVycy9vZi9vdmVybGF5LmNgLiBXZSd2ZSBnb3QgYG9mX292ZXJsYXlfZmR0X2FwcGx5YC4gTm93LCB3aGVyZSBpbiB0aGUga2VybmVsIGNvZGUgaXMgdGhhdCBhY3R1YWxseSAqY2FsbGVkKj8gVGhhdCdzIHRoZSBuZXh0IGNyaXRpY2FsIHBpZWNlIG9mIHRoZSBwdXp6bGUuIEkgbmVlZCB0byB0cmFjZSB0aGlzIGJhY2suXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2MDM4LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjM0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjIwOjE1LjYzMDAxMTY2NFoiLCJTZXEiOjUwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjYwNDA0NDU5NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJvZl9vdmVybGF5X2ZkdF9hcHBseVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL292ZXJsYXktbm90ZXMucnN0PTEwOT1UaGUgQVBJIGlzIHF1aXRlIGVhc3kgdG8gdXNlLlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdC0xMTAtXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL292ZXJsYXktbm90ZXMucnN0OjExMToxKSBDYWxsIG9mX292ZXJsYXlfZmR0X2FwcGx5KCkgdG8gY3JlYXRlIGFuZCBhcHBseSBhbiBvdmVybGF5IGNoYW5nZXNldC4gVGhlXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL292ZXJsYXktbm90ZXMucnN0LTExMi0gICByZXR1cm4gdmFsdWUgaXMgYW4gZXJyb3Igb3IgYSBjb29raWUgaWRlbnRpZnlpbmcgdGhpcyBvdmVybGF5Llxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL292ZXJsYXktbm90ZXMucnN0LTExNC0yKSBDYWxsIG9mX292ZXJsYXlfcmVtb3ZlKCkgdG8gcmVtb3ZlIGFuZCBjbGVhbiB1cCB0aGUgb3ZlcmxheSBjaGFuZ2VzZXRcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvb3ZlcmxheS1ub3Rlcy5yc3Q6MTE1OiAgIHByZXZpb3VzbHkgY3JlYXRlZCB2aWEgdGhlIGNhbGwgdG8gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKS4gUmVtb3ZhbCBvZiBhblxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdC0xMTYtICAgb3ZlcmxheSBjaGFuZ2VzZXQgdGhhdCBpcyBzdGFja2VkIGJ5IGFub3RoZXIgd2lsbCBub3QgYmUgcGVybWl0dGVkLlxcbi0tXFxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdD05MD1EVOS4reeahOmAguW9k+S9jee9ruOAguWcqOi/meenjeaDheWGteS4i++8jOWPr+S7peaPkOS+m+ebruagh+i3r+W+hOOAgumAmui/h+agh+etvueahOebruagh+S9jee9rueahOivreazleaYr+avlFxcbi0tXFxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdC0xMTItXFxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdDoxMTM6MSkg6LCD55Sob2Zfb3ZlcmxheV9mZHRfYXBwbHkoKeadpeWIm+W7uuWSjOW6lOeUqOS4gOS4quimhueblueahOWPmOabtOmbhuOAgui/lOWbnuWAvOaYr+S4gOS4qlxcbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL2RldmljZXRyZWUvb3ZlcmxheS1ub3Rlcy5yc3QtMTE0LSAgIOmUmeivr+aIluS4gOS4quivhuWIq+i/meS4quimhueblueahGNvb2tpZeOAglxcbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL2RldmljZXRyZWUvb3ZlcmxheS1ub3Rlcy5yc3QtMTE1LVxcbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL2RldmljZXRyZWUvb3ZlcmxheS1ub3Rlcy5yc3Q6MTE2OjIpIOiwg+eUqG9mX292ZXJsYXlfcmVtb3ZlKCnmnaXliKDpmaTlkozmuIXnkIblhYjliY3pgJrov4fosIPnlKhvZl9vdmVybGF5X2ZkdF9hcHBseSgpXFxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdC0xMTctICAg6ICM5Yib5bu655qE6KaG55uW5Y+Y5pu06ZuG44CC5LiN5YWB6K645Yig6Zmk5LiA5Liq6KKr5Y+m5LiA5Liq6KaG55uW55qE6KaG55uW5Y+Y5YyW6ZuG44CCXFxuLS1cXG5NQUlOVEFJTkVSUz0yMDI2OT1LOlxcdG9mX292ZXJsYXlfbm90aWZpZXJfXFxuTUFJTlRBSU5FUlM6MjAyNzA6SzpcXHRvZl9vdmVybGF5X2ZkdF9hcHBseVxcbk1BSU5UQUlORVJTLTIwMjcxLUs6XFx0b2Zfb3ZlcmxheV9yZW1vdmVcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvaW14L2lteDhtcC1oZG1pLXR4LWNvbm5lY3Rvci1maXh1cC5jPTIwPXN0YXRpYyBpbnQgX19pbml0IGlteDhtcF9oZG1pX3R4X2Nvbm5lY3Rvcl9maXh1cF9pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2lteC9pbXg4bXAtaGRtaS10eC1jb25uZWN0b3ItZml4dXAuYy02Ny1cXG5kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2lteC9pbXg4bXAtaGRtaS10eC1jb25uZWN0b3ItZml4dXAuYzo2ODpcXHRlcnIgPSBvZl9vdmVybGF5X2ZkdF9hcHBseShkdGJvX3N0YXJ0LCBkdGJvX3NpemUsIFxcdTAwMjZvdmNzX2lkLCBOVUxMKTtcXG5kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2lteC9pbXg4bXAtaGRtaS10eC1jb25uZWN0b3ItZml4dXAuYy02OS1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfcGFuZWxfbGVnYWN5LmM9MTQzPXN0YXRpYyBpbnQgX19pbml0IHRpbGNkY19wYW5lbF9sZWdhY3lfaW5pdCh2b2lkKVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfcGFuZWxfbGVnYWN5LmMtMTYzLVxcbmRyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX3BhbmVsX2xlZ2FjeS5jOjE2NDpcXHRyZXQgPSBvZl9vdmVybGF5X2ZkdF9hcHBseShkdGJvX3N0YXJ0LCBkdGJvX3NpemUsIFxcdTAwMjZvdmNzX2lkLCBOVUxMKTtcXG5kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19wYW5lbF9sZWdhY3kuYy0xNjUtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbWlzYy9sYW45NjZ4X3BjaS5jPTEyNj1zdGF0aWMgaW50IGxhbjk2NnhfcGNpX2xvYWRfb3ZlcmxheShzdHJ1Y3QgbGFuOTY2eF9wY2kgKmRhdGEpXFxuLS1cXG5kcml2ZXJzL21pc2MvbGFuOTY2eF9wY2kuYy0xMzAtXFxuZHJpdmVycy9taXNjL2xhbjk2NnhfcGNpLmM6MTMxOlxcdHJldHVybiBvZl9vdmVybGF5X2ZkdF9hcHBseShkdGJvX3N0YXJ0LCBkdGJvX3NpemUsIFxcdTAwMjZkYXRhLVxcdTAwM2VvdmNzX2lkLCBkZXZfb2Zfbm9kZShkYXRhLVxcdTAwM2VkZXYpKTtcXG5kcml2ZXJzL21pc2MvbGFuOTY2eF9wY2kuYy0xMzItfVxcbi0tXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM9MjU9RVhQT1JUX1NZTUJPTF9HUEwob2Zfcm9vdF9rdW5pdF9za2lwKTtcXG4tLVxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTI4LVxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjI5OnN0YXRpYyB2b2lkIG9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0X2V4aXQodm9pZCAqb3Zjc19pZClcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0zMC17XFxuLS1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0zNC0vKipcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzozNTogKiBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdCgpIC0gVGVzdCBtYW5hZ2VkIG9mX292ZXJsYXlfZmR0X2FwcGx5KClcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0zNi0gKiBAdGVzdDogdGVzdCBjb250ZXh0XFxuLS1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy00MC0gKlxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjQxOiAqIEp1c3QgbGlrZSBvZl9vdmVybGF5X2ZkdF9hcHBseSgpLCBleGNlcHQgdGhlIG92ZXJsYXkgaXMgbWFuYWdlZCBieSB0aGUgdGVzdFxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQyLSAqIGNhc2UgYW5kIGlzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZCB3aXRoIG9mX292ZXJsYXlfcmVtb3ZlKCkgYWZ0ZXIgdGhlIHRlc3RcXG4tLVxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQ2LSAqL1xcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjQ3OmludCBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdChzdHJ1Y3Qga3VuaXQgKnRlc3QsIHZvaWQgKm92ZXJsYXlfZmR0LFxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQ4LVxcdFxcdFxcdCAgICAgICB1MzIgb3ZlcmxheV9mZHRfc2l6ZSwgaW50ICpvdmNzX2lkKVxcbi0tXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNTgtXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6NTk6XFx0cmV0ID0gb2Zfb3ZlcmxheV9mZHRfYXBwbHkob3ZlcmxheV9mZHQsIG92ZXJsYXlfZmR0X3NpemUsXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNjAtXFx0XFx0XFx0XFx0ICAgb3Zjc19pZCwgTlVMTCk7XFxuLS1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy02NS1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzo2NjpcXHRyZXR1cm4ga3VuaXRfYWRkX2FjdGlvbl9vcl9yZXNldCh0ZXN0LCBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdF9leGl0LFxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTY3LVxcdFxcdFxcdFxcdFxcdCBjb3B5X2lkKTtcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy02OC19XFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6Njk6RVhQT1JUX1NZTUJPTF9HUEwob2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXQpO1xcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTcwLVxcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmM9OTI2PXN0YXRpYyBpbnQgb2Zfb3ZlcmxheV9hcHBseShzdHJ1Y3Qgb3ZlcmxheV9jaGFuZ2VzZXQgKm92Y3MsXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy05ODAtLyoqXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6OTgxOiAqIG9mX292ZXJsYXlfZmR0X2FwcGx5KCkgLSBDcmVhdGUgYW5kIGFwcGx5IGFuIG92ZXJsYXkgY2hhbmdlc2V0XFxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTgyLSAqIEBvdmVybGF5X2ZkdDpcXHRwb2ludGVyIHRvIG92ZXJsYXkgRkRUXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy05OTktXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTAwMDppbnQgb2Zfb3ZlcmxheV9mZHRfYXBwbHkoY29uc3Qgdm9pZCAqb3ZlcmxheV9mZHQsIHUzMiBvdmVybGF5X2ZkdF9zaXplLFxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwMDEtXFx0XFx0XFx0IGludCAqcmV0X292Y3NfaWQsIGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqYmFzZSlcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwNzUtXFx0ICogcmVzdWx0IGluIGEgbWVtb3J5IGxlYWsgaWYgdGhlIGFwcGx5IHBhcnRseSBzdWNjZWVkZWQsIHNvIGRvIE5PVFxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEwNzY6XFx0ICogZ290byBlcnJfZnJlZV9vdmNzLiAgSW5zdGVhZCwgdGhlIGNhbGxlciBvZiBvZl9vdmVybGF5X2ZkdF9hcHBseSgpXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA3Ny1cXHQgKiBjYW4gY2FsbCBvZl9vdmVybGF5X3JlbW92ZSgpO1xcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA4OS19XFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTA5MDpFWFBPUlRfU1lNQk9MX0dQTChvZl9vdmVybGF5X2ZkdF9hcHBseSk7XFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA5MS1cXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jPTExNTU9c3RhdGljIGludCBvdmVybGF5X3JlbW92YWxfaXNfb2soc3RydWN0IG92ZXJsYXlfY2hhbmdlc2V0ICpyZW1vdmVfb3ZjcylcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExNzMtICogUmVtb3ZlcyBhbiBvdmVybGF5IGlmIGl0IGlzIHBlcm1pc3NpYmxlLiAgQG92Y3NfaWQgd2FzIHByZXZpb3VzbHkgcmV0dXJuZWRcXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMTc0OiAqIGJ5IG9mX292ZXJsYXlfZmR0X2FwcGx5KCkuXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTE3NS0gKlxcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jPTM5ODc9c3RhdGljIGludCBfX2luaXQgb3ZlcmxheV9kYXRhX2FwcGx5KGNvbnN0IGNoYXIgKm92ZXJsYXlfbmFtZSwgaW50ICpvdmNzX2lkKVxcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMDktXFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjQwMTA6XFx0cmV0ID0gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoaW5mby1cXHUwMDNlZHRib19iZWdpbiwgc2l6ZSwgXFx1MDAyNmluZm8tXFx1MDAzZW92Y3NfaWQsXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMTEtXFx0XFx0XFx0XFx0ICAgTlVMTCk7XFxuLS1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDAyMC1cXHRpZiAocmV0ICE9IGluZm8tXFx1MDAzZWV4cGVjdGVkX3Jlc3VsdCkge1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDIxOlxcdFxcdHByX2VycihcXFwib2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSBleHBlY3RlZCAlZCwgcmV0PSVkLCAlc1xcXFxuXFxcIixcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDAyMi1cXHRcXHQgICAgICAgaW5mby1cXHUwMDNlZXhwZWN0ZWRfcmVzdWx0LCByZXQsIG92ZXJsYXlfbmFtZSk7XFxuLS1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9NDMyOD1zdGF0aWMgaW50IHRlc3RkcnZfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MzUwLVxcdHNpemUgPSBpbmZvLVxcdTAwM2VkdGJvX2VuZCAtIGluZm8tXFx1MDAzZWR0Ym9fYmVnaW47XFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjQzNTE6XFx0cmV0ID0gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoaW5mby1cXHUwMDNlZHRib19iZWdpbiwgc2l6ZSwgXFx1MDAyNm92Y3NfaWQsIGRuKTtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDM1Mi1cXHRpZiAocmV0KVxcbi0tXFxuaW5jbHVkZS9rdW5pdC9vZi5oPTE2PXZvaWQgb2Zfbm9kZV9wdXRfa3VuaXQoc3RydWN0IGt1bml0ICp0ZXN0LCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUpXFxuLS1cXG5pbmNsdWRlL2t1bml0L29mLmgtMjQtXFxuaW5jbHVkZS9rdW5pdC9vZi5oOjI1OmludCBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdChzdHJ1Y3Qga3VuaXQgKnRlc3QsIHZvaWQgKm92ZXJsYXlfZmR0LFxcbmluY2x1ZGUva3VuaXQvb2YuaC0yNi1cXHRcXHRcXHQgICAgICAgdTMyIG92ZXJsYXlfZmR0X3NpemUsIGludCAqb3Zjc19pZCk7XFxuLS1cXG5pbmNsdWRlL2t1bml0L29mLmg9Mjk9c3RhdGljIGlubGluZSBpbnRcXG5pbmNsdWRlL2t1bml0L29mLmg6MzA6b2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXQoc3RydWN0IGt1bml0ICp0ZXN0LCB2b2lkICpvdmVybGF5X2ZkdCxcXG5pbmNsdWRlL2t1bml0L29mLmgtMzEtXFx0XFx0XFx0ICAgdTMyIG92ZXJsYXlfZmR0X3NpemUsIGludCAqb3Zjc19pZClcXG4tLVxcbmluY2x1ZGUva3VuaXQvb2YuaC0zOS0vKipcXG5pbmNsdWRlL2t1bml0L29mLmg6NDA6ICogX19vZl9vdmVybGF5X2FwcGx5X2t1bml0KCkgLSBUZXN0IG1hbmFnZWQgb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSB2YXJpYW50XFxuaW5jbHVkZS9rdW5pdC9vZi5oLTQxLSAqIEB0ZXN0OiB0ZXN0IGNvbnRleHRcXG4tLVxcbmluY2x1ZGUva3VuaXQvb2YuaC00Ny0gKlxcbmluY2x1ZGUva3VuaXQvb2YuaDo0ODogKiBTaW1pbGFyIHRvIG9mX292ZXJsYXlfZmR0X2FwcGx5KCksIGV4Y2VwdCB0aGUgb3ZlcmxheSBpcyBtYW5hZ2VkIGJ5IHRoZSB0ZXN0XFxuaW5jbHVkZS9rdW5pdC9vZi5oLTQ5LSAqIGNhc2UgYW5kIGlzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZCB3aXRoIG9mX292ZXJsYXlfcmVtb3ZlKCkgYWZ0ZXIgdGhlIHRlc3RcXG4tLVxcbmluY2x1ZGUva3VuaXQvb2YuaD01ND1zdGF0aWMgaW5saW5lIGludCBfX29mX292ZXJsYXlfYXBwbHlfa3VuaXQoc3RydWN0IGt1bml0ICp0ZXN0LFxcbi0tXFxuaW5jbHVkZS9rdW5pdC9vZi5oLTU5LVxcbmluY2x1ZGUva3VuaXQvb2YuaDo2MDpcXHRyZXR1cm4gb2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXQodGVzdCwgb3ZlcmxheV9iZWdpbixcXG5pbmNsdWRlL2t1bml0L29mLmgtNjEtXFx0XFx0XFx0XFx0XFx0ICBvdmVybGF5X2VuZCAtIG92ZXJsYXlfYmVnaW4sXFxuLS1cXG5pbmNsdWRlL2t1bml0L29mLmgtNzItLyoqXFxuaW5jbHVkZS9rdW5pdC9vZi5oOjczOiAqIG9mX292ZXJsYXlfYXBwbHlfa3VuaXQoKSAtIFRlc3QgbWFuYWdlZCBvZl9vdmVybGF5X2ZkdF9hcHBseSgpIGZvciBidWlsdC1pbiBvdmVybGF5c1xcbmluY2x1ZGUva3VuaXQvb2YuaC03NC0gKiBAdGVzdDogdGVzdCBjb250ZXh0XFxuLS1cXG5pbmNsdWRlL2xpbnV4L29mLmg9MTgzMD1zdHJ1Y3Qgb2Zfb3ZlcmxheV9ub3RpZnlfZGF0YSB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L29mLmgtMTgzNi1cXG5pbmNsdWRlL2xpbnV4L29mLmg6MTgzNzppbnQgb2Zfb3ZlcmxheV9mZHRfYXBwbHkoY29uc3Qgdm9pZCAqb3ZlcmxheV9mZHQsIHUzMiBvdmVybGF5X2ZkdF9zaXplLFxcbmluY2x1ZGUvbGludXgvb2YuaC0xODM4LVxcdFxcdFxcdCBpbnQgKm92Y3NfaWQsIGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqdGFyZ2V0X2Jhc2UpO1xcbi0tXFxuaW5jbHVkZS9saW51eC9vZi5oPTE4NDM9aW50IG9mX292ZXJsYXlfbm90aWZpZXJfdW5yZWdpc3RlcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iKTtcXG4tLVxcbmluY2x1ZGUvbGludXgvb2YuaC0xODQ2LVxcbmluY2x1ZGUvbGludXgvb2YuaDoxODQ3OnN0YXRpYyBpbmxpbmUgaW50IG9mX292ZXJsYXlfZmR0X2FwcGx5KGNvbnN0IHZvaWQgKm92ZXJsYXlfZmR0LCB1MzIgb3ZlcmxheV9mZHRfc2l6ZSxcXG5pbmNsdWRlL2xpbnV4L29mLmgtMTg0OC1cXHRcXHRcXHRcXHQgICAgICAgaW50ICpvdmNzX2lkLCBjb25zdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKnRhcmdldF9iYXNlKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoyMDoxOC4yMzQwNjA0NzhaIiwiU2VxIjo1MSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTgwMjQyMDM2NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIERldmljZSBUcmVlIE92ZXJsYXkgQXBwbGljYXRpb25zKipcblxuT2theSwgc28gSSBzZWUgdGhhdCB0aGUgYGRyaXZlcnMvbWlzYy9sYW45NjZ4X3BjaS5jYCBkcml2ZXIgaXMgY2FsbGluZyBgb2Zfb3ZlcmxheV9mZHRfYXBwbHlgLiBJbnRlcmVzdGluZyEgSGFuZyBvbiBhIHNlY29uZCwgdGhhdCdzIGEgUENJIGRyaXZlciwgaXNuJ3QgaXQ/IEkgbmVlZCB0byBxdWlja2x5IGJyb2FkZW4gdGhlIHNlYXJjaCBhbmQgc2VlIGlmIHRoZXJlIGFyZSBhbnkgKm90aGVyKiBkcml2ZXJzIHVzaW5nIHRoYXQgZnVuY3Rpb24uIExldCdzIHNlZS4uLiBgaW14OG1wLWhkbWktdHgtY29ubmVjdG9yLWZpeHVwLmNgIGFuZCBgdGlsY2RjX3BhbmVsX2xlZ2FjeS5jYCBhcmUgYWxzbyBjYWxsaW5nIGBvZl9vdmVybGF5X2ZkdF9hcHBseWAuIE5vdyBJJ20gc3RhcnRpbmcgdG8gcmVtZW1iZXIgc29tZXRoaW5nIGFib3V0IHN5emthbGxlciBhbmQgZGV2aWNlIHRyZWUgb3ZlcmxheXMuLi4gZGlkIEkgcmVhZCB0aGF0IHN5emthbGxlciBjYW4gaW5qZWN0IHRoZXNlIG92ZXJsYXlzIHVzaW5nIHN5c2ZzPyBUaGF0J3MgYSBwb3NzaWJpbGl0eS4gSSBuZWVkIHRvIGNvbmZpcm0gdGhhdC4gVGltZSB0byBjaGVjayBpZiB0aGVyZSBpcyBhIHN5c2ZzIGludGVyZmFjZSBleHBvc2VkIGZvciB0aGVzZSBkZXZpY2UgdHJlZSBvdmVybGF5IG1hbmlwdWxhdGlvbnMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoaXMgYmV0dGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTkyMiwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoyMDoyOC4wMzY0ODI0ODVaIiwiU2VxIjo1MiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzOTk4NTI5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm9mX292ZXJsYXlfZmR0X2FwcGx5XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvb2YvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jPTI1PUVYUE9SVF9TWU1CT0xfR1BMKG9mX3Jvb3Rfa3VuaXRfc2tpcCk7XFxuLS1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0yOC1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzoyOTpzdGF0aWMgdm9pZCBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdF9leGl0KHZvaWQgKm92Y3NfaWQpXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtMzAte1xcbi0tXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtMzQtLyoqXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6MzU6ICogb2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXQoKSAtIFRlc3QgbWFuYWdlZCBvZl9vdmVybGF5X2ZkdF9hcHBseSgpXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtMzYtICogQHRlc3Q6IHRlc3QgY29udGV4dFxcbi0tXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNDAtICpcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzo0MTogKiBKdXN0IGxpa2Ugb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSwgZXhjZXB0IHRoZSBvdmVybGF5IGlzIG1hbmFnZWQgYnkgdGhlIHRlc3RcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy00Mi0gKiBjYXNlIGFuZCBpcyBhdXRvbWF0aWNhbGx5IHJlbW92ZWQgd2l0aCBvZl9vdmVybGF5X3JlbW92ZSgpIGFmdGVyIHRoZSB0ZXN0XFxuLS1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy00Ni0gKi9cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzo0NzppbnQgb2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXQoc3RydWN0IGt1bml0ICp0ZXN0LCB2b2lkICpvdmVybGF5X2ZkdCxcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy00OC1cXHRcXHRcXHQgICAgICAgdTMyIG92ZXJsYXlfZmR0X3NpemUsIGludCAqb3Zjc19pZClcXG4tLVxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTU4LVxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjU5OlxcdHJldCA9IG9mX292ZXJsYXlfZmR0X2FwcGx5KG92ZXJsYXlfZmR0LCBvdmVybGF5X2ZkdF9zaXplLFxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTYwLVxcdFxcdFxcdFxcdCAgIG92Y3NfaWQsIE5VTEwpO1xcbi0tXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNjUtXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6NjY6XFx0cmV0dXJuIGt1bml0X2FkZF9hY3Rpb25fb3JfcmVzZXQodGVzdCwgb2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXRfZXhpdCxcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy02Ny1cXHRcXHRcXHRcXHRcXHQgY29weV9pZCk7XFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNjgtfVxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjY5OkVYUE9SVF9TWU1CT0xfR1BMKG9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0KTtcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy03MC1cXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jPTkyNj1zdGF0aWMgaW50IG9mX292ZXJsYXlfYXBwbHkoc3RydWN0IG92ZXJsYXlfY2hhbmdlc2V0ICpvdmNzLFxcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTgwLS8qKlxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjk4MTogKiBvZl9vdmVybGF5X2ZkdF9hcHBseSgpIC0gQ3JlYXRlIGFuZCBhcHBseSBhbiBvdmVybGF5IGNoYW5nZXNldFxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk4Mi0gKiBAb3ZlcmxheV9mZHQ6XFx0cG9pbnRlciB0byBvdmVybGF5IEZEVFxcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTk5LVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEwMDA6aW50IG9mX292ZXJsYXlfZmR0X2FwcGx5KGNvbnN0IHZvaWQgKm92ZXJsYXlfZmR0LCB1MzIgb3ZlcmxheV9mZHRfc2l6ZSxcXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDAxLVxcdFxcdFxcdCBpbnQgKnJldF9vdmNzX2lkLCBjb25zdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKmJhc2UpXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDc1LVxcdCAqIHJlc3VsdCBpbiBhIG1lbW9yeSBsZWFrIGlmIHRoZSBhcHBseSBwYXJ0bHkgc3VjY2VlZGVkLCBzbyBkbyBOT1RcXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDc2OlxcdCAqIGdvdG8gZXJyX2ZyZWVfb3Zjcy4gIEluc3RlYWQsIHRoZSBjYWxsZXIgb2Ygb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwNzctXFx0ICogY2FuIGNhbGwgb2Zfb3ZlcmxheV9yZW1vdmUoKTtcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwODktfVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEwOTA6RVhQT1JUX1NZTUJPTF9HUEwob2Zfb3ZlcmxheV9mZHRfYXBwbHkpO1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwOTEtXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYz0xMTU1PXN0YXRpYyBpbnQgb3ZlcmxheV9yZW1vdmFsX2lzX29rKHN0cnVjdCBvdmVybGF5X2NoYW5nZXNldCAqcmVtb3ZlX292Y3MpXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMTczLSAqIFJlbW92ZXMgYW4gb3ZlcmxheSBpZiBpdCBpcyBwZXJtaXNzaWJsZS4gIEBvdmNzX2lkIHdhcyBwcmV2aW91c2x5IHJldHVybmVkXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTE3NDogKiBieSBvZl9vdmVybGF5X2ZkdF9hcHBseSgpLlxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExNzUtICpcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz0zOTg3PXN0YXRpYyBpbnQgX19pbml0IG92ZXJsYXlfZGF0YV9hcHBseShjb25zdCBjaGFyICpvdmVybGF5X25hbWUsIGludCAqb3Zjc19pZClcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDA5LVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDEwOlxcdHJldCA9IG9mX292ZXJsYXlfZmR0X2FwcGx5KGluZm8tXFx1MDAzZWR0Ym9fYmVnaW4sIHNpemUsIFxcdTAwMjZpbmZvLVxcdTAwM2VvdmNzX2lkLFxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDExLVxcdFxcdFxcdFxcdCAgIE5VTEwpO1xcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMjAtXFx0aWYgKHJldCAhPSBpbmZvLVxcdTAwM2VleHBlY3RlZF9yZXN1bHQpIHtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6NDAyMTpcXHRcXHRwcl9lcnIoXFxcIm9mX292ZXJsYXlfZmR0X2FwcGx5KCkgZXhwZWN0ZWQgJWQsIHJldD0lZCwgJXNcXFxcblxcXCIsXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMjItXFx0XFx0ICAgICAgIGluZm8tXFx1MDAzZWV4cGVjdGVkX3Jlc3VsdCwgcmV0LCBvdmVybGF5X25hbWUpO1xcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jPTQzMjg9c3RhdGljIGludCB0ZXN0ZHJ2X3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuLS1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDM1MC1cXHRzaXplID0gaW5mby1cXHUwMDNlZHRib19lbmQgLSBpbmZvLVxcdTAwM2VkdGJvX2JlZ2luO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MzUxOlxcdHJldCA9IG9mX292ZXJsYXlfZmR0X2FwcGx5KGluZm8tXFx1MDAzZWR0Ym9fYmVnaW4sIHNpemUsIFxcdTAwMjZvdmNzX2lkLCBkbik7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQzNTItXFx0aWYgKHJldClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MjA6MjguMDgwNDg1OTc0WiIsIlNlcSI6NTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM4NTEwNzk5MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCBtZSBzZWUgaWYgSSd2ZSBnb3QgdGhpcyByaWdodC5cblxuKipBIERldmljZSBUcmVlIE92ZXJsYXkgRXVyZWthISoqXG5cbkhvbGQgb24gYSBzZWNvbmQuLi4gZG9lc24ndCBzeXprYWxsZXIgYWN0dWFsbHkgaGF2ZSBhIGNsZXZlciB0cmljayBmb3IgdGVzdGluZyBkZXZpY2UgdHJlZSBvdmVybGF5cz8gSSB2YWd1ZWx5IHJlY2FsbCBzb21ldGhpbmcgYWJvdXQgd3JpdGluZyB0byBgL3N5cy9rZXJuZWwvY29uZmlnL2RldmljZS10cmVlL292ZXJsYXlzL2AuIFRoYXQncyBpdCEgKlllcyosIHRoYXQncyB0aGUgc3BvdCEgVGhhdCB3b3VsZCBiZSB0aWVkIHRvIGBDT05GSUdfT0ZfT1ZFUkxBWWAgYW5kIGBDT05GSUdfT0ZfQ09ORklHRlNgLCByaWdodD8gTm93LCB0aGUgY3J1Y2lhbCB0aGluZyBpcyB0byB2ZXJpZnkgaWYgd2UgaGF2ZSBgQ09ORklHX09GX0NPTkZJR0ZTYCBlbmFibGVkLiBHb3R0YSBjb25maXJtIHRoYXQgYmVmb3JlIEkgZ2V0IHRvbyBleGNpdGVkLiBMZXQncyBzdGFydCB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTE3MzYsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoyMDozMS45MzE1Njg5OThaIiwiU2VxIjo1NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0MzA4Nzg1NzgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkNPTkZJR19PRl9DT05GSUdGU1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjIwOjMzLjM2MjQ1NTM2N1oiLCJTZXEiOjU1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0Nzg2MzQ5OTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgdGhlIERldmljZSBUcmVlIFBhdGggaW4gU3l6a2FsbGVyKipcblxuT2theSwgZmlyc3QgdGhvdWdodCwgaXMgdGhpcyBzb21ldGhpbmcgdGhhdCdzIGhhbmRsZWQgZXh0ZXJuYWxseSBvciB3aXRoaW4gdGhlIGtlcm5lbCBpdHNlbGY/IE5vLCBTeXprYWxsZXIgdGFyZ2V0cyB1cHN0cmVhbSwgc28gaXQgc2hvdWxkIGJlIGludGVncmF0ZWQuIE5vdywgaG93IGRvZXMgU3l6a2FsbGVyICphY3R1YWxseSogZ2V0IGRldmljZSB0cmVlIG92ZXJsYXlzIGluIHRoZXJlPyBJIGtub3cgaXQgdXNlcyBgc3l6X21vdW50X2ltYWdlYCB0byBtb3VudCBmaWxlc3lzdGVtcywgYnV0IHRoYXQncyBub3QgdGhlIHdheS4gQWhhISBUaGUgYHN5el91c2JfY29ubmVjdGAgY2FsbC4gVGhhdCBsZXRzIHlvdSBwbHVnIGluIGEgdmlydHVhbCBVU0IgZGV2aWNlLiBJZiB3ZSBjYW4gZ2V0IGEgYGxhbjc4eHhgIGluIHRoZXJlLCB0aGF0IHJlZ2lzdGVycyBhbiBNRElPIGJ1cywgd2hpY2ggaXMgYSBjb21tb24gcGF0aC4gQnV0IGhvbGQgb24sIHRoZSBgbGFuNzh4eGAgZG9lc24ndCByZWdpc3RlciBhbiBgbXY4OGU2eHh4YCBpbnN0YW5jZSB1bmxlc3MgYSBkZXZpY2UgdHJlZSBub2RlIGlzIHByZXNlbnQuIFNvLCB3aGF0IGlmIFN5emthbGxlciBsZXZlcmFnZXMgc29tZXRoaW5nIGxpa2UgYGkyYy1zdHViYCBvciBgaTJjLW1vY2t1cGA/IFdlIGtub3cgYG12ODhlNnh4eGAgaXMgYW4gTURJTyBkcml2ZXIgZm9yIHN1cmUsIGJ1dC4uLiB3YWl0IGEgbWludXRlLCBJIHRoaW5rIEkgcmVtZW1iZXIgc2VlaW5nIGl0IG1lbnRpb25lZCBhcyBhbiBJMkMgZHJpdmVyIHRvby4gTGV0IG1lIGNvbmZpcm0gaWYgaXQgcmVnaXN0ZXJzIGFuIEkyQyBkcml2ZXIgYXMgd2VsbC4gVGhpcyBtaWdodCBnaXZlIHVzIHRoZSByb290IG9mIHRoZSBwcm9ibGVtLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MTk4NywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoyMDozOC4xNDg4MDc5MTZaIiwiU2VxIjo1NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0MzQxMjc5LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpMmNfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoyMDozOC4xOTMxNTUzNjVaIiwiU2VxIjo1NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTY3NjY4MzgyNTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRGV0ZXJtaW5pbmcgV29ydGhGdXp6aW5nIGZvciB0aGUgbXY4OGU2eHh4IE1ESU8gRHJpdmVyKipcblxuT2theSwgc28gd2UncmUgbG9va2luZyBhdCBhIHBhdGNoIHJlbGF0ZWQgdG8gYG12ODhlNnh4eGAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIldhaXQsIHRoYXQncyBhbiBNRElPIGRyaXZlcixcIiBhbmQgdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciBpdHNlbGYgaXMgc3BlY2lmaWNhbGx5IGFuIE1ESU8gZHJpdmVyLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiB3ZSB0cmlnZ2VyIHRoaXMgY29kZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCBhbmQgdGh1cywgc2hvdWxkIGl0IGJlIHdvcnRoIGZ1enppbmc/XG5cbkkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIGl0J3MgcmVhY2hhYmxlLiBJIGluaXRpYWxseSBsb29rZWQgZm9yIGEgYHN5c2ZzYCByZWdpc3RyYXRpb24gbWV0aG9kIGJ1dCBmb3VuZCBub3RoaW5nIHVzZWZ1bC4gVGhlbiBJIGNvbnNpZGVyZWQgaG93IHN5emthbGxlciBtaWdodCBoYXZlIGZvdW5kIHRoaXMgcGF0Y2guIERpZCBzeXprYWxsZXIgZmluZCBhIGJ1ZyB3aXRoIGl0cyBzdGF0aWMgYW5hbHlzaXMgdG9vbD8gTm8sIGl0J3MgdmVyeSBsaWtlbHkgdGhhdCB0aGlzIGJ1ZyByZXBvcnQgKFwic3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XCIpIHBvaW50cyB0byBhIGRldmVsb3Blci1zdWJtaXR0ZWQgcGF0Y2ggdGhhdCBzeXotY2x1c3RlciBpcyB0ZXN0aW5nLiBJdCBtZWFucyBhIGRldmVsb3BlciBzdWJtaXR0ZWQgdGhlIHBhdGNoLCBhbmQgc3l6LWNsdXN0ZXIgaXMgdGVzdGluZyBpdCwgd2hpY2ggaXMgaW1wb3J0YW50IHRvIGNvbnNpZGVyLlxuXG5UaGUgY29yZSBxdWVzdGlvbiBpcyB3aGV0aGVyIGBtdjg4ZTZ4eHhgIGNhbiBiZSByZWFjaGVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIGtlZXBpbmcgaW4gbWluZCB0aGUgY29udGV4dDogXCJSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOiAuLi4gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXCJcblxuYG12ODhlNnh4eGAgaXMgYSBkcml2ZXIgZm9yIE1hcnZlbGwgODhFNnh4eCBFdGhlcm5ldCBzd2l0Y2hlcy4gSXQgcmVxdWlyZXMgKnBoeXNpY2FsKiBoYXJkd2FyZSBjb25uZWN0ZWQgdmlhIE1ESU8uIFNpbmNlIHN0YW5kYXJkIFFFTVUgZG9lc24ndCBlbXVsYXRlIHRoZSBNYXJ2ZWxsIDg4RTZ4eHggc3dpdGNoIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIGl0IGluIFFFTVUsIHRoZW4gaXQgaXMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLiBXaGlsZSBJJ20gZmFtaWxpYXIgd2l0aCBzb2Z0d2FyZS1lbXVsYXRlZCBEU0EsIHN1Y2ggYXMgYGRzYV9sb29wYCwgdGhpcyBpcyBhIHNwZWNpZmljIGhhcmR3YXJlIGRyaXZlci5cblxuVGhlIHByb21wdCBleHBsaWNpdGx5IHN0YXRlcywgXCJDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXCJcblxuVGhpcyBpcywgYnkgZGVmaW5pdGlvbiwgYSAqdmVuZG9yLXNwZWNpZmljKiBFdGhlcm5ldCBzd2l0Y2ggZHJpdmVyLCBpdCBuZWVkcyBoYXJkd2FyZSwgYW5kIGl0J3Mgbm90IGVtdWxhdGVkLlxuXG5Tbywgc2luY2UgdGhlIHBhdGNoIG9ubHkgdG91Y2hlcyBgZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNgLCBhbmQgSSd2ZSBjb25maXJtZWQgdGhhdCBgbXY4OGU2eHh4YCBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUsIEkgc2hvdWxkIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuTGV0IG1lIGNvbmZpcm0gdGhvdWdoLCBpZiB0aGVyZSBpcyBhIHBvdGVudGlhbCB3YXkgdG8gcmVhY2ggdGhlIGRyaXZlci4gQ291bGQgdGhpcyBiZSBhIHBhdGNoIHRoYXQgd2FzIHNlbnQgYnkgYSBkZXZlbG9wZXIgZm9yIHRlc3RpbmcgYnkgc3l6Ym90LCBldmVuIGlmIHN5emJvdCBoYWRuJ3QgZm91bmQgYSBidWcgaXRzZWxmLCBvciB0aGF0IHRvdWNoZWQgcmVsYXRlZCBjb2RlP1xuXG5UaGUgcGF0Y2ggKm9ubHkqIHRvdWNoZXMgdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciwgYW5kIGl0J3MgYSBoYXJkd2FyZS1kZXBlbmRlbnQgZHJpdmVyLCBhbmQsIHRoZXJlIGlzIG5vIGVtdWxhdGlvbiBmb3IgYG12ODhlNnh4eGAgaW4gdGhlIGtlcm5lbCBpbiBhIHN0YW5kYXJkIFFFTVUgc2V0dXAuXG5cblN5emthbGxlciB0eXBpY2FsbHkgdXNlcyBgcTM1YCBvciBgcGNgIGZvciB4ODZfNjQgYW5kIGB2aXJ0YCBmb3IgYXJtNjQuIFRoZXNlIHN0YW5kYXJkIG1hY2hpbmUgdHlwZXMgZG9uJ3QgaW5jbHVkZSBhIE1hcnZlbGwgODhFNnh4eCBzd2l0Y2ggYXR0YWNoZWQgdG8gYW4gTURJTyBidXMuIEZ1cnRoZXJtb3JlLCB0aGUgZHJpdmVyIHByb2JlcyB2aWEgdGhlIGRldmljZSB0cmVlIChgbXY4OGU2eHh4X29mX21hdGNoYCkuIFRoZSAndmlydCcgbWFjaGluZSdzIGRldmljZSB0cmVlICpkb2Vzbid0KiBpbmNsdWRlIGFuIGBtdjg4ZTZ4eHhgIG5vZGUsIGFuZCBTeXprYWxsZXIgZG9lc24ndCBpbmplY3QgYXJiaXRyYXJ5IGRldmljZSB0cmVlIG5vZGVzIGVpdGhlci4gVGh1cywgaW4gc3l6a2FsbGVyJ3MgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIHRoaXMgY29kZSBpcyAqdW5yZWFjaGFibGUqLiBUaGVyZWZvcmUsIGl0J3MgYWJzb2x1dGVseSBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTI1MTQsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjI1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjIwOjU0Ljk2MDAwNzAzNloiLCJTZXEiOjU4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ1NzQ2ODI2NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdjg4ZTYwODVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWw9MTk9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWwtMjItICAgICAgLSBlbnVtOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWw6MjM6ICAgICAgICAgIC0gbWFydmVsbCxtdjg4ZTYwODVcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sLTI0LSAgICAgICAgICAtIG1hcnZlbGwsbXY4OGU2MTkwXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sLTI2LSAgICAgICAgZGVzY3JpcHRpb246IHxcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sOjI3OiAgICAgICAgICBtYXJ2ZWxsLG12ODhlNjA4NTogVGhpcyBzd2l0Y2ggdXNlcyBiYXNlIGFkZHJlc3MgMHgxMC5cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sLTI4LSAgICAgICAgICAgIFRoaXMgc3dpdGNoIGFuZCBpdHMgc2libGluZ3Mgd2lsbCBiZSBhdXRvZGV0ZWN0ZWQgZnJvbVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWw6Mjk6ICAgICAgICAgICAgSUQgcmVnaXN0ZXJzIGZvdW5kIGluIHRoZSBzd2l0Y2gsIHNvIG9ubHkgXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIiBzaG91bGQgYmVcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sLTMwLSAgICAgICAgICAgIHNwZWNpZmllZC4gVGhpcyBpbmNsdWRlcyB0aGUgZm9sbG93aW5nIGxpc3Qgb2YgTVY4OEV4eHh4IHN3aXRjaGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC00My0gICAgICAtIGl0ZW1zOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWw6NDQ6ICAgICAgICAgIC0gY29uc3Q6IG1hcnZlbGwsdHVycmlzLW1veC1tdjg4ZTYwODVcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sOjQ1OiAgICAgICAgICAtIGNvbnN0OiBtYXJ2ZWxsLG12ODhlNjA4NVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWwtNDYtICAgICAgLSBpdGVtczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWw9MTA5PWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC0xMTYtICAgICAgICBldGhlcm5ldC1zd2l0Y2hAMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbDoxMTc6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC0xMTgtICAgICAgICAgICAgcmVnID0gXFx1MDAzYzBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ldGhlcm5ldC1zd2l0Y2gueWFtbD0yMz1hbGxPZjpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXRoZXJuZXQtc3dpdGNoLnlhbWwtMzItICAgICAgICAgICAgZW51bTpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2V0aGVybmV0LXN3aXRjaC55YW1sOjMzOiAgICAgICAgICAgICAgLSBtYXJ2ZWxsLHR1cnJpcy1tb3gtbXY4OGU2MDg1XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ldGhlcm5ldC1zd2l0Y2gueWFtbC0zNC0gICAgICAgICAgICAgIC0gbWFydmVsbCx0dXJyaXMtbW94LW12ODhlNjE5MFxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcwLXJkLmR0cz0xNTI9XFx0c3dpdGNoOiBldGhlcm5ldC1zd2l0Y2hAMTAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MC1yZC5kdHM6MTUzOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MC1yZC5kdHMtMTU0LVxcdFxcdHJlZyA9IFxcdTAwM2MweDEwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4NS1jbGVhcmZvZy1ndHItczQuZHRzPTE2PVxcdHN3aXRjaDA6IGV0aGVybmV0LXN3aXRjaEA0IHtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLXM0LmR0czoxNzpcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLXM0LmR0cy0xOC1cXHRcXHRyZWcgPSBcXHUwMDNjNFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtbGlua3N5cy5kdHNpPTE2MT1cXHRldGhlcm5ldC1zd2l0Y2hAMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LWxpbmtzeXMuZHRzaToxNjI6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LWxpbmtzeXMuZHRzaS0xNjMtXFx0XFx0cmVnID0gXFx1MDAzYzBcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LXR1cnJpcy1vbW5pYS5kdHM9NDY3PVxcdGV0aGVybmV0LXN3aXRjaEAxMCB7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtdHVycmlzLW9tbmlhLmR0cy00NjktXFx0XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZzd2ludF9waW5zXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtdHVycmlzLW9tbmlhLmR0czo0NzA6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LXR1cnJpcy1vbW5pYS5kdHMtNDcxLVxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg4LWNsZWFyZm9nLmR0cz05Nj1cXHRldGhlcm5ldC1zd2l0Y2hANCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg4LWNsZWFyZm9nLmR0czo5NzpcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODgtY2xlYXJmb2cuZHRzLTk4LVxcdFxcdHJlZyA9IFxcdTAwM2M0XFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLXhwLWxpbmtzeXMtbWFtYmEuZHRzPTI2OD1cXHRldGhlcm5ldC1zd2l0Y2hAMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEteHAtbGlua3N5cy1tYW1iYS5kdHM6MjY5OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLXhwLWxpbmtzeXMtbWFtYmEuZHRzLTI3MC1cXHRcXHRyZWcgPSBcXHUwMDNjMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLTRpLWVkZ2UtMjAwLmR0cz04Mj1cXHRzd2l0Y2gwOiBzd2l0Y2hAMTEge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtNGktZWRnZS0yMDAuZHRzOjgzOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtNGktZWRnZS0yMDAuZHRzLTg0LVxcdFxcdHJlZyA9IFxcdTAwM2MweDExXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtZGlyNjY1LmR0cz0xOTY9XFx0c3dpdGNoQDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtZGlyNjY1LmR0czoxOTc6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1kaXI2NjUuZHRzLTE5OC1cXHRcXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbC01MC5kdHM9MjExPVxcdHN3aXRjaDA6IHN3aXRjaEAxMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1sLTUwLmR0czoyMTI6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1sLTUwLmR0cy0yMTMtXFx0XFx0I2FkZHJlc3MtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLWwtNTAuZHRzPTI2OT1cXHRzd2l0Y2hAMTEge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbC01MC5kdHM6MjcwOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbC01MC5kdHMtMjcxLVxcdFxcdCNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1saW5rc3lzLXZpcGVyLmR0cz0xNjI9XFx0c3dpdGNoQDEwIHtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLWxpbmtzeXMtdmlwZXIuZHRzOjE2MzpcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLWxpbmtzeXMtdmlwZXIuZHRzLTE2NC1cXHRcXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbXY4OGY2MjgxZ3R3LWdlLmR0cz0xMTM9XFx0c3dpdGNoQDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbXY4OGY2MjgxZ3R3LWdlLmR0czoxMTQ6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1tdjg4ZjYyODFndHctZ2UuZHRzLTExNS1cXHRcXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtcmQ4OGY2MjgxLmR0c2k9Nzc9XFx0c3dpdGNoOiBzd2l0Y2hAMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1yZDg4ZjYyODEuZHRzaTo3ODpcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLXJkODhmNjI4MS5kdHNpLTc5LVxcdFxcdCNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9vcmlvbjV4LW5ldGdlYXItd25yODU0dC5kdHM9MTA5PVxcdHN3aXRjaDogc3dpdGNoQDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvb3Jpb241eC1uZXRnZWFyLXducjg1NHQuZHRzOjExMDpcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL29yaW9uNXgtbmV0Z2Vhci13bnI4NTR0LmR0cy0xMTEtXFx0XFx0I2FkZHJlc3MtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUxLXppaS1yZHUxLmR0cz0xNzM9XFx0XFx0c3dpdGNoQDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NTEtemlpLXJkdTEuZHRzOjE3NDpcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUxLXppaS1yZHUxLmR0cy0xNzUtXFx0XFx0XFx0cmVnID0gXFx1MDAzYzBcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg1MS16aWktc2N1Mi1tZXp6LmR0cz00OT1cXHRcXHRzd2l0Y2hAMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg1MS16aWktc2N1Mi1tZXp6LmR0czo1MDpcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUxLXppaS1zY3UyLW1lenouZHRzLTUxLVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NTEtemlpLXNjdTMtZXNiLmR0cz0yMTY9XFx0XFx0c3dpdGNoQDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NTEtemlpLXNjdTMtZXNiLmR0czoyMTc6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg1MS16aWktc2N1My1lc2IuZHRzLTIxOC1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC15YXBwNDMtY29tbW9uLmR0c2k9MTI4PVxcdFxcdHN3aXRjaEAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC15YXBwNDMtY29tbW9uLmR0c2k6MTI5OlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLXlhcHA0My1jb21tb24uZHRzaS0xMzAtXFx0XFx0XFx0cmVnID0gXFx1MDAzYzBcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1ieDUwdjMuZHRzaT0xMDU9XFx0XFx0c3dpdGNoOiBzd2l0Y2hAMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1ieDUwdjMuZHRzaToxMDY6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCI7IC8qIDg4ZTYyNDAqL1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEtYng1MHYzLmR0c2ktMTA3LVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU5MDQuZHRzaT0xNzQ9XFx0XFx0c3dpdGNoQDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU5MDQuZHRzaToxNzU6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTkwNC5kdHNpLTE3Ni1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtemlpLXJkdTIuZHRzaT03MzA9XFx0XFx0c3dpdGNoOiBzd2l0Y2hAMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXppaS1yZHUyLmR0c2k6NzMxOlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC16aWktcmR1Mi5kdHNpLTczMi1cXHRcXHRcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfc3dpdGNoX2lycVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDdkLXppaS1ycHUyLmR0cz0yMjg9XFx0XFx0c3dpdGNoOiBzd2l0Y2hAMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg3ZC16aWktcnB1Mi5kdHM6MjI5OlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14N2QtemlpLXJwdTIuZHRzLTIzMC1cXHRcXHRcXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL3ZmL3ZmNjEwLXppaS1jZnUxLmR0cz0xNjU9XFx0XFx0c3dpdGNoMDogZXRoZXJuZXQtc3dpdGNoQDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktY2Z1MS5kdHM6MTY2OlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktY2Z1MS5kdHMtMTY3LVxcdFxcdFxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHM9MzA9XFx0XFx0XFx0c3dpdGNoMDogc3dpdGNoQDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktZGV2LXJldi1iLmR0czozMTpcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHMtMzItXFx0XFx0XFx0XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2dwaW9fc3dpdGNoMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHM9MTE0PVxcdFxcdFxcdHN3aXRjaDE6IHN3aXRjaEAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHM6MTE1OlxcdFxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktZGV2LXJldi1iLmR0cy0xMTYtXFx0XFx0XFx0XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2dwaW9fc3dpdGNoMVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHM9MjAxPVxcdFxcdFxcdHN3aXRjaDI6IHN3aXRjaEAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHM6MjAyOlxcdFxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktZGV2LXJldi1iLmR0cy0yMDMtXFx0XFx0XFx0XFx0cmVnID0gXFx1MDAzYzBcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvaW14OG1xLXppaS11bHRyYS5kdHNpPTE1MD1cXHRcXHRzd2l0Y2g6IHN3aXRjaEAwIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9pbXg4bXEtemlpLXVsdHJhLmR0c2k6MTUxOlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2lteDhtcS16aWktdWx0cmEuZHRzaS0xNTItXFx0XFx0XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX3N3aXRjaF9pcnFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLWVzcHJlc3NvYmluLXVsdHJhLmR0cz0xMjU9XFx0c3dpdGNoMDogZXRoZXJuZXQtc3dpdGNoQDMge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1lc3ByZXNzb2Jpbi11bHRyYS5kdHM6MTI2OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1lc3ByZXNzb2Jpbi11bHRyYS5kdHMtMTI3LVxcdFxcdHJlZyA9IFxcdTAwM2MzXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1lc3ByZXNzb2Jpbi5kdHNpPTE0Nz1cXHRzd2l0Y2gwOiBldGhlcm5ldC1zd2l0Y2hAMSB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLWVzcHJlc3NvYmluLmR0c2k6MTQ4OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1lc3ByZXNzb2Jpbi5kdHNpLTE0OS1cXHRcXHRyZWcgPSBcXHUwMDNjMVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtZ2wtbXYxMDAwLmR0cz0xNTA9XFx0c3dpdGNoMDogZXRoZXJuZXQtc3dpdGNoQDEge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1nbC1tdjEwMDAuZHRzOjE1MTpcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtZ2wtbXYxMDAwLmR0cy0xNTItXFx0XFx0cmVnID0gXFx1MDAzYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzPTQzOD1cXHRzd2l0Y2gwQDIge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC10dXJyaXMtbW94LmR0czo0Mzk6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLHR1cnJpcy1tb3gtbXY4OGU2MDg1XFxcIiwgXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtdHVycmlzLW1veC5kdHMtNDQwLVxcdFxcdHJlZyA9IFxcdTAwM2MweDJcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzPTYzMj1cXHRzd2l0Y2gxQDIge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC10dXJyaXMtbW94LmR0czo2MzM6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLHR1cnJpcy1tb3gtbXY4OGU2MDg1XFxcIiwgXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtdHVycmlzLW1veC5kdHMtNjM0LVxcdFxcdHJlZyA9IFxcdTAwM2MweDJcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzPTgxNz1cXHRzd2l0Y2gyQDIge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC10dXJyaXMtbW94LmR0czo4MTg6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLHR1cnJpcy1tb3gtbXY4OGU2MDg1XFxcIiwgXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtdHVycmlzLW1veC5kdHMtODE5LVxcdFxcdHJlZyA9IFxcdTAwM2MweDJcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS03MDQwLW1vY2hhYmluLmR0cz0zMDQ9XFx0c3dpdGNoOiBldGhlcm5ldC1zd2l0Y2hAMyB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS03MDQwLW1vY2hhYmluLmR0czozMDU6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS03MDQwLW1vY2hhYmluLmR0cy0zMDYtXFx0XFx0cmVnID0gXFx1MDAzYzNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLWNsZWFyZm9nLWd0LThrLmR0cz01MDA9XFx0c3dpdGNoMDogZXRoZXJuZXQtc3dpdGNoQDQge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1jbGVhcmZvZy1ndC04ay5kdHM6NTAxOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1jbGVhcmZvZy1ndC04ay5kdHMtNTAyLVxcdFxcdHJlZyA9IFxcdTAwM2M0XFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY2YtcHJvLmR0cz04OD1cXHRldGhlcm5ldC1zd2l0Y2hANCB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMC1jZi1wcm8uZHRzOjg5OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY2YtcHJvLmR0cy05MC1cXHRcXHRyZWcgPSBcXHUwMDNjNFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMyLWNsZWFyZm9nLmR0cz0yNjQ9XFx0ZXRoZXJuZXQtc3dpdGNoQDQge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzItY2xlYXJmb2cuZHRzOjI2NTpcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMyLWNsZWFyZm9nLmR0cy0yNjYtXFx0XFx0cmVnID0gXFx1MDAzYzRcXHUwMDNlO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NDIxMT1zdGF0aWMgaW50IG12ODhlNnh4eF9zZXRfZWVwcm9tKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQyMjktXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDIzMDpzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MDg1X29wcyA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MjMxLVxcdC8qIE1WODhFNlhYWF9GQU1JTFlfNjA5NyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQyMzI6XFx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDIzMzpcXHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQyMzQtXFx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MjY1LVxcdC5yZXNldCA9IG12ODhlNjE4NV9nMV9yZXNldCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0MjY2OlxcdC5ybXVfZGlzYWJsZSA9IG12ODhlNjA4NV9nMV9ybXVfZGlzYWJsZSxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MjY3LVxcdC52dHVfZ2V0bmV4dCA9IG12ODhlNjM1Ml9nMV92dHVfZ2V0bmV4dCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTQyNzU9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjA5NV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDI3Ni1cXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYwOTUgKi9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0Mjc3OlxcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQyNzg6XFx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00Mjc5LVxcdC5zZXRfc3dpdGNoX21hYyA9IG12ODhlNnh4eF9nMV9zZXRfc3dpdGNoX21hYyxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQyODQtXFx0LnBvcnRfc2V0X3NwZWVkX2R1cGxleCA9IG12ODhlNjE4NV9wb3J0X3NldF9zcGVlZF9kdXBsZXgsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDI4NTpcXHQucG9ydF9zZXRfZnJhbWVfbW9kZSA9IG12ODhlNjA4NV9wb3J0X3NldF9mcmFtZV9tb2RlLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQyODYtXFx0LnBvcnRfc2V0X3VjYXN0X2Zsb29kID0gbXY4OGU2MTg1X3BvcnRfc2V0X2ZvcndhcmRfdW5rbm93bixcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTQzMDc9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjA5N19vcHMgPSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDMwOC1cXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYwOTcgKi9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0MzA5OlxcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQzMTA6XFx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MzExLVxcdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDM0My1cXHQucmVzZXQgPSBtdjg4ZTYzNTJfZzFfcmVzZXQsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDM0NDpcXHQucm11X2Rpc2FibGUgPSBtdjg4ZTYwODVfZzFfcm11X2Rpc2FibGUsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDM0NS1cXHQudnR1X2dldG5leHQgPSBtdjg4ZTYzNTJfZzFfdnR1X2dldG5leHQsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz00MzU0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYxMjNfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQzNTUtXFx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MTY1ICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDM1NjpcXHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0MzU3OlxcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDM1OC1cXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQzNjYtXFx0LnBvcnRfc2V0X3NwZWVkX2R1cGxleCA9IG12ODhlNjE4NV9wb3J0X3NldF9zcGVlZF9kdXBsZXgsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDM2NzpcXHQucG9ydF9zZXRfZnJhbWVfbW9kZSA9IG12ODhlNjA4NV9wb3J0X3NldF9mcmFtZV9tb2RlLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQzNjgtXFx0LnBvcnRfc2V0X3VjYXN0X2Zsb29kID0gbXY4OGU2MzUyX3BvcnRfc2V0X3VjYXN0X2Zsb29kLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NDM5NT1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MTMxX29wcyA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00Mzk2LVxcdC8qIE1WODhFNlhYWF9GQU1JTFlfNjE4NSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQzOTc6XFx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDM5ODpcXHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQzOTktXFx0LnNldF9zd2l0Y2hfbWFjID0gbXY4OGU2eHh4X2cxX3NldF9zd2l0Y2hfbWFjLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NDQzNT1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MTQxX29wcyA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NDM2LVxcdC8qIE1WODhFNlhYWF9GQU1JTFlfNjM0MSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ0Mzc6XFx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDQzODpcXHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ0MzktXFx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz00NDk3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYxNjFfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ0OTgtXFx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MTY1ICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDQ5OTpcXHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NTAwOlxcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDUwMS1cXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTQ1NDU9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjE2NV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDU0Ni1cXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYxNjUgKi9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NTQ3OlxcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ1NDg6XFx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NTQ5LVxcdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NDU4Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MTcxX29wcyA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NTgzLVxcdC8qIE1WODhFNlhYWF9GQU1JTFlfNjM1MSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ1ODQ6XFx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDU4NTpcXHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ1ODYtXFx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz00NjI4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYxNzJfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ2MjktXFx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MzUyICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDYzMDpcXHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NjMxOlxcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDYzMi1cXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTQ2ODY9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjE3NV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDY4Ny1cXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYzNTEgKi9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0Njg4OlxcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ2ODk6XFx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NjkwLVxcdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NDczMj1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MTc2X29wcyA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NzMzLVxcdC8qIE1WODhFNlhYWF9GQU1JTFlfNjM1MiAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ3MzQ6XFx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDczNTpcXHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ3MzYtXFx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz00NzkxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYxODVfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ3OTItXFx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MTg1ICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDc5MzpcXHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0Nzk0OlxcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDc5NS1cXHQuc2V0X3N3aXRjaF9tYWMgPSBtdjg4ZTZ4eHhfZzFfc2V0X3N3aXRjaF9tYWMsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00ODAwLVxcdC5wb3J0X3NldF9zcGVlZF9kdXBsZXggPSBtdjg4ZTYxODVfcG9ydF9zZXRfc3BlZWRfZHVwbGV4LFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ4MDE6XFx0LnBvcnRfc2V0X2ZyYW1lX21vZGUgPSBtdjg4ZTYwODVfcG9ydF9zZXRfZnJhbWVfbW9kZSxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00ODAyLVxcdC5wb3J0X3NldF91Y2FzdF9mbG9vZCA9IG12ODhlNjE4NV9wb3J0X3NldF9mb3J3YXJkX3Vua25vd24sXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz01MDA1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYyNDBfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUwMDYtXFx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MzUyICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTAwNzpcXHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MDA4OlxcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTAwOS1cXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTUwNjY9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjI1MF9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MDY4LVxcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYyNTBfZzFfaWVlZV9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjUwNjk6XFx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MDcwLVxcdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NTE3Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzIwX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUxNzQtXFx0LnNldHVwX2VycmF0YSA9IG12ODhlNjMyMF9zZXR1cF9lcnJhdGEsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTE3NTpcXHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MTc2OlxcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTE3Ny1cXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTUyMjg9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjMyMV9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MjMwLVxcdC5zZXR1cF9lcnJhdGEgPSBtdjg4ZTYzMjBfc2V0dXBfZXJyYXRhLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjUyMzE6XFx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTIzMjpcXHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUyMzMtXFx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz01Mjg4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzNDFfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUyODktXFx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MzQxICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTI5MDpcXHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MjkxOlxcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTI5Mi1cXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTUzNTI9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM1MF9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTM1My1cXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYzNTEgKi9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MzU0OlxcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjUzNTU6XFx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MzU2LVxcdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NTM5OD1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzUxX29wcyA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01Mzk5LVxcdC8qIE1WODhFNlhYWF9GQU1JTFlfNjM1MSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU0MDA6XFx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTQwMTpcXHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU0MDItXFx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz01NDQ2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzNTJfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU0NDctXFx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MzUyICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTQ0ODpcXHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1NDQ5OlxcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTQ1MC1cXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTU3MDE9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU3NjgtXFx0XFx0Lm11bHRpX2NoaXAgPSB0cnVlLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU3Njk6XFx0XFx0Lm9wcyA9IFxcdTAwMjZtdjg4ZTYwODVfb3BzLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU3NzAtXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc1MDY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXY4OGU2eHh4X29mX21hdGNoW10gPSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUwNy1cXHR7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzUwODpcXHRcXHQuY29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCIsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUwOS1cXHRcXHQuZGF0YSA9IFxcdTAwMjZtdjg4ZTZ4eHhfdGFibGVbTVY4OEU2MDg1XSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc1MjQ9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdjg4ZTZ4eHhfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyOC1cXHQubWRpb2Rydi5kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzUyOTpcXHRcXHQubmFtZSA9IFxcXCJtdjg4ZTYwODVcXFwiLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1MzAtXFx0XFx0Lm9mX21hdGNoX3RhYmxlID0gbXY4OGU2eHh4X29mX21hdGNoLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmM9Mjg4PWludCBtdjg4ZTYxODVfZzFfc2V0X21heF9mcmFtZV9zaXplKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IG10dSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5jLTMxNi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuYzozMTc6aW50IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuYy0zMTgte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmMtMzU4LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5jOjM1OTppbnQgbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmMtMzYwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5jPTUyNj1pbnQgbXY4OGU2MTg1X2cxX3NldF9jYXNjYWRlX3BvcnQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5jLTUzMi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuYzo1MzM6aW50IG12ODhlNjA4NV9nMV9ybXVfZGlzYWJsZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmMtNTM0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oPTMwOT1pbnQgbXY4OGU2MzkwX2cxX21nbXRfcnN2ZDJjcHUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuaC0zMTAtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmg6MzExOmludCBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oLTMxMi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuaDozMTM6aW50IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuaC0zMTQtaW50IG12ODhlNjI1MF9nMV9pZWVlX3ByaV9tYXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oPTMxNj1pbnQgbXY4OGU2MTg1X2cxX3NldF9jYXNjYWRlX3BvcnQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmgtMzE3LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oOjMxODppbnQgbXY4OGU2MDg1X2cxX3JtdV9kaXNhYmxlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmgtMzE5LWludCBtdjg4ZTYzNTJfZzFfcm11X2Rpc2FibGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jPTc5OT1pbnQgbXY4OGU2eHh4X3BvcnRfc2V0X2VncmVzc19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuYy04MzAtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmM6ODMxOmludCBtdjg4ZTYwODVfcG9ydF9zZXRfZnJhbWVfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jLTgzMi1cXHRcXHRcXHRcXHQgIGVudW0gbXY4OGU2eHh4X2ZyYW1lX21vZGUgbW9kZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5oPTUyNj1pbnQgbXY4OGU2eHh4X3BvcnRfc2V0X2VncmVzc19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmgtNTI3LVxcdFxcdFxcdFxcdCAgIGVudW0gbXY4OGU2eHh4X2VncmVzc19tb2RlIG1vZGUpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5oOjUyODppbnQgbXY4OGU2MDg1X3BvcnRfc2V0X2ZyYW1lX21vZGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaC01MjktXFx0XFx0XFx0XFx0ICBlbnVtIG12ODhlNnh4eF9mcmFtZV9tb2RlIG1vZGUpO1xcbi0tXFxubmV0L2RzYS9wb3J0LmM9MTcyNj1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGRzYV9zd2l0Y2hlc19hcHBseV93b3JrYXJvdW5kc1tdID0ge1xcbi0tXFxubmV0L2RzYS9wb3J0LmMtMTc3OC0jaWYgSVNfRU5BQkxFRChDT05GSUdfTkVUX0RTQV9NVjg4RTZYWFgpXFxubmV0L2RzYS9wb3J0LmM6MTc3OTpcXHRcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiLFxcbm5ldC9kc2EvcG9ydC5jLTE3ODAtXFx0XFxcIm1hcnZlbGwsbXY4OGU2MTkwXFxcIixcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MjA6NTYuNDE3NDgxNDRaIiwiU2VxIjo1OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTMzNzQ5NTY2NDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBNYXJ2ZWxsIDg4RTZ4eHggRHJpdmVyKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBJJ20gbG9va2luZyBhdCBgbmV0L2RzYS9wb3J0LmNgIGFuZCBzcGVjaWZpY2FsbHkgYGRzYV9zd2l0Y2hlc19hcHBseV93b3JrYXJvdW5kc2AuIEkgc2VlIGEgcmVmZXJlbmNlIHRvIGBcIm1hcnZlbGwsbXY4OGU2MDg1XCJgLCB3aGljaCB0cmlnZ2VycyBzb21lIHRob3VnaHRzLiBUaGVyZSdzIG5vIHRlc3QgZHJpdmVyIG9yIGV2ZW4gYSBiYXNpYyBtb2NrIGZvciB0aGlzIHNwZWNpZmljIE1hcnZlbGwgc3dpdGNoLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdGhlIG9ubHkgd2F5IGl0IGdldHMgaW5zdGFudGlhdGVkIGlzIHRocm91Z2ggdGhlIGRldmljZSB0cmVlLlxuXG5Ob3csIEkga25vdyBzeXprYWxsZXIgY2FuIGluamVjdCBkZXZpY2UgdHJlZSBvdmVybGF5cyB1c2luZyBgb2Zfb3ZlcmxheV9mZHRfYXBwbHlgLCAqaWYqIHRoZXJlJ3MgYSBzeXNmcyBpbnRlcmZhY2UuIEJ1dCBJIGNvdWxkbid0IGZpbmQgb25lLiBJIGRpZCByZW1lbWJlciB0aGF0IHN5emthbGxlciAqZG9lcyogaGF2ZSBgQ09ORklHX09GX09WRVJMQVlgIGVuYWJsZWQsIGFuZCBpdCBoYXMgYHN5el91c2JfY29ubmVjdGAuIEhvd2V2ZXIsIHRoZSBgbXY4OGU2eHh4YCBpc24ndCBhIFVTQiBkZXZpY2UsIHNvIHRoYXQncyBhIGRlYWQgZW5kLlxuXG5NeSBpbml0aWFsIHRob3VnaHQgd2FzIG1heWJlIHN5emthbGxlciBqdXN0IG1pc3NlZCBpdC4gVGhlbiBJIHJlLXJlYWQgdGhlIHByb21wdCBhbmQgdGhlIGtleSBwaHJhc2UganVtcHMgb3V0OiBcInZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzLi4uIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VXCIuIE15IHRoaW5raW5nIGlzIHRoYXQgdGhlIGBtdjg4ZTZ4eHhgIGlzIGEgdmVuZG9yLXNwZWNpZmljIEV0aGVybmV0IHN3aXRjaCBkcml2ZXIgdGhhdCBjbGVhcmx5IG5lZWRzIGRlZGljYXRlZCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gUUVNVS4gU28sIHRoYXQgZmVlbHMgbGlrZSBhIG1hdGNoIHRvIG1lIGFuZCBteSBmaXJzdCBjb25jbHVzaW9uIGlzIGEgYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cbkxldCBtZSBiZSBwcmVjaXNlIHdpdGggdGhlIGxhbmd1YWdlLiBUaGUgcHJvbXB0IHNheXMsIFwiQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VXCIuIE9rYXksIEkgbm90aWNlIGBtdjg4ZTZ4eHhgIGlzIGFuIE1ESU8gc3dpdGNoLCBub3QgYSBQQ0llIHN3aXRjaCwgYnV0IHRoZSB1bmRlcmx5aW5nIGlzc3VlIHJlbWFpbnMgdGhlIHNhbWU6IGl0J3MgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlLCBhbmQgaXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gUUVNVS5cblxuV2FpdCwgaGVyZSBpcyBhbm90aGVyIHJlbGV2YW50IHJ1bGU6IFwiQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXCIgU2luY2UgdGhpcyBgbXY4OGU2eHh4YCBpcyB1bnJlYWNoYWJsZSBpbiBRRU1VLCB0aGF0IHJ1bGUgY2xlYXJseSBhcHBsaWVzISBJJ20gbGVhbmluZyBoZWF2aWx5IHRvd2FyZHMgXCJmYWxzZS5cIlxuXG5CZWZvcmUgSSBmaW5hbGl6ZSB0aGUgZGVjaXNpb24sIGxldCBtZSBkbyBhIHF1aWNrIHNhbml0eSBjaGVjayB0byBzZWUgaWYgSSBtaXNzZWQgYW55IHN5emthbGxlciBwc2V1ZG8tc3lzY2FsbHMgZm9yIE1ESU8gb3IgRFNBLiBJIGxvb2tlZCBmb3IgYHN5el9gIGluIGBuZXQvYCBhbmQgYGRyaXZlcnMvbmV0L2RzYS9gIGFuZCBmb3VuZCBub3RoaW5nLiBJIGFsc28gZGlkIGEgZ2xvYmFsIHNlYXJjaCBhbmQgZm91bmQgYGlvbW11ZmRfdGVzdF9zeXpfY29udl9pb3ZhYCwgYnV0IG5vdGhpbmcgcmVsYXRlZCB0byBNRElPIG9yIERTQS4gU28sIGRlZmluaXRlbHkgbm8gYHN5el9tZGlvYCBvciBgc3l6X2RzYWAuIFdoaWNoIGNvbmZpcm1zIHRoYXQgdGhpcyBgbXY4OGU2eHh4YCBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXG5TbyBteSBmaW5hbCByZXNwb25zZSBpczpcblxuV29ydGhGdXp6aW5nOiBmYWxzZVxuUmVhc29uaW5nOiBUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBNYXJ2ZWxsIDg4RTZ4eHggRXRoZXJuZXQgc3dpdGNoZXMuIFRoZXNlIHN3aXRjaGVzIGFyZSBjb25uZWN0ZWQgdmlhIE1ESU8gYW5kIHJlcXVpcmUgcGh5c2ljYWwgaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMgdXNlZCBieSBzeXprYWxsZXIuIFRoZXJlIGlzIG5vIHNvZnR3YXJlLWVtdWxhdGVkIG1vY2t1cCBmb3IgdGhpcyBzcGVjaWZpYyBoYXJkd2FyZSAodW5saWtlIGBkc2FfbG9vcGApLCBtYWtpbmcgdGhlIGNvZGUgcGF0aHMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY4MjQ0LCJPdXRwdXRUb2tlbnMiOjEyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjczNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoyMTowOS43OTI0NDA5NTJaIiwiU2VxIjo2MCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTQ0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYG12ODhlNnh4eGAgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgZm9yIE1hcnZlbGwgODhFNnh4eCBFdGhlcm5ldCBzd2l0Y2hlcy4gVGhlc2Ugc3dpdGNoZXMgYXJlIGNvbm5lY3RlZCB2aWEgTURJTyBhbmQgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cyB1c2VkIGJ5IHN5emthbGxlci4gVGhlcmUgaXMgbm8gc29mdHdhcmUtZW11bGF0ZWQgbW9ja3VwIGZvciB0aGlzIHNwZWNpZmljIGhhcmR3YXJlICh1bmxpa2UgYGRzYV9sb29wYCksIG1ha2luZyB0aGUgY29kZSBwYXRocyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgTWFydmVsbCA4OEU2eHh4IEV0aGVybmV0IHN3aXRjaGVzLiBUaGVzZSBzd2l0Y2hlcyBhcmUgY29ubmVjdGVkIHZpYSBNRElPIGFuZCByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzIHVzZWQgYnkgc3l6a2FsbGVyLiBUaGVyZSBpcyBubyBzb2Z0d2FyZS1lbXVsYXRlZCBtb2NrdXAgZm9yIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUgKHVubGlrZSBgZHNhX2xvb3BgKSwgbWFraW5nIHRoZSBjb2RlIHBhdGhzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MjE6MDkuNzkyNDY1MjgyWiIsIlNlcSI6NjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowtmv5h[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-15 15:22:22 +0000 UTC FinishedAt: 2026-08-15 16:21:11 +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+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjExPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7JiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgTWFydmVsbCA4OEU2eHh4IEV0aGVybmV0IHN3aXRjaGVzLiBUaGVzZSBzd2l0Y2hlcyBhcmUgY29ubmVjdGVkIHZpYSBNRElPIGFuZCByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzIHVzZWQgYnkgc3l6a2FsbGVyLiBUaGVyZSBpcyBubyBzb2Z0d2FyZS1lbXVsYXRlZCBtb2NrdXAgZm9yIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUgKHVubGlrZSBgZHNhX2xvb3BgKSwgbWFraW5nIHRoZSBjb2RlIHBhdGhzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxMTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQ5NGMzNTNhZjM1ZTgyMWU1MjIzODZlZWRiNWI0YzU0MDViNzZiZmVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAxNSAxNjoxMTowMCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jXG5pbmRleCA4MGI4NzdjNzQ1MTNkLi40MzIyODVlMjg4MTcxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jXG5AQCAtMzc2OSw2ICYjNDM7Mzc2OSw5IEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X21kaW9fcmVhZChzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5LCBpbnQgcmVnKVxuIFx0ZXJyID0gY2hpcC1cdTAwM2VpbmZvLVx1MDAzZW9wcy1cdTAwM2VwaHlfcmVhZChjaGlwLCBidXMsIHBoeSwgcmVnLCBcdTAwMjZ2YWwpO1xuIFx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XG4gXG4mIzQzO1x0aWYgKGVycilcbiYjNDM7XHRcdHJldHVybiBlcnI7XG4mIzQzO1xuIFx0LyogU29tZSBpbnRlcm5hbCBQSFlzIGRvbiYjMzk7dCBoYXZlIGEgbW9kZWwgbnVtYmVyLiAqL1xuIFx0aWYgKHJlZyA9PSBNSUlfUEhZU0lEMiBcdTAwMjZcdTAwMjYgISh2YWwgXHUwMDI2IDB4M2YwKSBcdTAwMjZcdTAwMjZcbiBcdCAgICBjaGlwLVx1MDAzZWluZm8tXHUwMDNlZmFtaWx5IFx1MDAzYyBBUlJBWV9TSVpFKGZhbWlseV9wcm9kX2lkX3RhYmxlKSkge1xuQEAgLTM3NzcsNyAmIzQzOzM3ODAsNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3JlYWQoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeSwgaW50IHJlZylcbiBcdFx0XHR2YWwgfD0gcHJvZF9pZCBcdTAwM2VcdTAwM2UgNDtcbiBcdH1cbiBcbi1cdHJldHVybiBlcnIgPyBlcnIgOiB2YWw7XG4mIzQzO1x0cmV0dXJuIHZhbDtcbiB9XG4gXG4gc3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb19yZWFkX2M0NShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5LCBpbnQgZGV2YWQsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYG12ODhlNnh4eGAgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgZm9yIE1hcnZlbGwgODhFNnh4eCBFdGhlcm5ldCBzd2l0Y2hlcy4gVGhlc2Ugc3dpdGNoZXMgYXJlIGNvbm5lY3RlZCB2aWEgTURJTyBhbmQgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cyB1c2VkIGJ5IHN5emthbGxlci4gVGhlcmUgaXMgbm8gc29mdHdhcmUtZW11bGF0ZWQgbW9ja3VwIGZvciB0aGlzIHNwZWNpZmljIGhhcmR3YXJlICh1bmxpa2UgYGRzYV9sb29wYCksIG1ha2luZyB0aGUgY29kZSBwYXRocyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBkOTRjMzUzYWYzNWU4MjFlNTIyMzg2ZWVkYjViNGM1NDA1Yjc2YmZlCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBBdWcgMTUgMTY6MTE6MDAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jCmluZGV4IDgwYjg3N2M3NDUxM2QuLjQzMjI4NWUyODgxNzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jCkBAIC0zNzY5LDYgJiM0MzszNzY5LDkgQEAgc3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb19yZWFkKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHksIGludCByZWcpCiAJZXJyID0gY2hpcC0mZ3Q7aW5mby0mZ3Q7b3BzLSZndDtwaHlfcmVhZChjaGlwLCBidXMsIHBoeSwgcmVnLCAmYW1wO3ZhbCk7CiAJbXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7CiAKJiM0MzsJaWYgKGVycikKJiM0MzsJCXJldHVybiBlcnI7CiYjNDM7CiAJLyogU29tZSBpbnRlcm5hbCBQSFlzIGRvbiYjMzk7dCBoYXZlIGEgbW9kZWwgbnVtYmVyLiAqLwogCWlmIChyZWcgPT0gTUlJX1BIWVNJRDIgJmFtcDsmYW1wOyAhKHZhbCAmYW1wOyAweDNmMCkgJmFtcDsmYW1wOwogCSAgICBjaGlwLSZndDtpbmZvLSZndDtmYW1pbHkgJmx0OyBBUlJBWV9TSVpFKGZhbWlseV9wcm9kX2lkX3RhYmxlKSkgewpAQCAtMzc3Nyw3ICYjNDM7Mzc4MCw3IEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X21kaW9fcmVhZChzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5LCBpbnQgcmVnKQogCQkJdmFsIHw9IHByb2RfaWQgJmd0OyZndDsgNDsKIAl9CiAKLQlyZXR1cm4gZXJyID8gZXJyIDogdmFsOwomIzQzOwlyZXR1cm4gdmFsOwogfQogCiBzdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3JlYWRfYzQ1KHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHksIGludCBkZXZhZCwKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE4NQoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDIyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBpbiB0aGUgYG12ODhlNnh4eF9tZGlvX3JlYWRgIGZ1bmN0aW9uIHdpdGhpbiBgZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNgLiBJdCBsb29rcyBsaWtlIGl0JiMzOTtzIGFkZHJlc3NpbmcgYW4gdW5pbml0aWFsaXplZCB2YXJpYWJsZSBpc3N1ZS4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyBhZGRpbmcgYW4gZWFybHkgcmV0dXJuIGlmIGBjaGlwLSZndDtpbmZvLSZndDtvcHMtJmd0O3BoeV9yZWFkYCByZXR1cm5zIGFuIGVycm9yLCBwcmV2ZW50aW5nIHRoZSBzdWJzZXF1ZW50IHVzZSBvZiBgdmFsYCB3aGVuIGBwaHlfcmVhZGAgZmFpbHMuIFByZXR0eSBzdGFuZGFyZCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcsIHJlYWxseSDigJMgZ29vZCBjYXRjaC4gVGhlIGRyaXZlciBpdHNlbGYsIGBtdjg4ZTZ4eHhgLCBpcyB0aGUgTWFydmVsbCA4OEU2eHh4IHN3aXRjaCBkcml2ZXIsIGFuZCBEU0EgZHJpdmVycyBhcmUsIGluIG15IGV4cGVyaWVuY2UsIHR5cGljYWxseSB0aWVkIHRvIHNwZWNpZmljIGhhcmR3YXJlLgoKTXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzLCBob3cgKnJlYWNoYWJsZSogaXMgdGhpcyBkcml2ZXIgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gRFNBIGRyaXZlcnMgZ2VuZXJhbGx5IGRlcGVuZCBvbiBwaHlzaWNhbCBoYXJkd2FyZSBpbnRlcmFjdGlvbnMsIHNvIGl0JiMzOTtzIG5vdCBhIGdpdmVuIHRoYXQgdGhpcyB3aWxsIHRyYW5zbGF0ZSB0byBhIFFFTVUgaW5zdGFuY2UsIHNheS4gQXJlIHRoZXJlIGFueSBrbm93biBlbXVsYXRpb25zIG9yIHZpcnR1YWwgYnVzIGltcGxlbWVudGF0aW9ucyBmb3IgdGhpcyBwYXJ0aWN1bGFyIE1hcnZlbGwgc3dpdGNoIGZhbWlseT8gVGhhdCYjMzk7cyB3aGF0IEkgbmVlZCB0byBkaWcgaW50by4gSSBrbm93IERTQSBkcml2ZXJzIHVzdWFsbHkgcmVseSBvbiBNRElPLCBJMkMsIG9yIFNQSS4gU28gSSBuZWVkIHRvIHZlcmlmeSBob3cgdGhlc2UgaW50ZXJmYWNlcyBhcmUgbWFkZSBhdmFpbGFibGUgaW4gYSB2aXJ0dWFsIGVudmlyb25tZW50LgoKTGV0JiMzOTtzIHN0YXJ0IGJ5IHJldmlzaXRpbmcgYGRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jYCBhZ2Fpbi4gSSBuZWVkIHRvIGdldCBhIGJldHRlciBoYW5kbGUgb24gaG93IHRoaXMgZHJpdmVyIGludGVyYWN0cyB3aXRoIHRoZSBoYXJkd2FyZSBhbmQgdW5kZXJzdGFuZCB0aGUgcG90ZW50aWFsIGltcGxpY2F0aW9ucyBvZiB0aGlzIHBhdGNoIGluIGEgYnJvYWRlciBjb250ZXh0LiBJIG5lZWQgdG8gY29uc2lkZXIgd2hldGhlciB0aGlzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgc2NlbmFyaW8gY291bGQgZXZlbiBtYW5pZmVzdCBpbiBhIHZpcnR1YWxpemVkIHNldHRpbmcsIG9yIGlmIGl0JiMzOTtzIHN0cmljdGx5IGEgcGh5c2ljYWwgaGFyZHdhcmUgY29uY2Vybi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdjg4ZTZ4eHhfbWRpb19yZWFkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9Mzc1MT1zdGF0aWMgY29uc3QgdTE2IGZhbWlseV9wcm9kX2lkX3RhYmxlW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzc1Ni1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3NTc6c3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb19yZWFkKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHksIGludCByZWcpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzU4LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzg1LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzc4NjpzdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3JlYWRfYzQ1KHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHksIGludCBkZXZhZCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM3ODctXHRcdFx0XHQgICBpbnQgcmVnKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTM4Mzc9c3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb19yZWdpc3RlcihzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzg3NS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4NzY6XHRidXMtXHUwMDNlcmVhZCA9IG12ODhlNnh4eF9tZGlvX3JlYWQ7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODc3LVx0YnVzLVx1MDAzZXdyaXRlID0gbXY4OGU2eHh4X21kaW9fd3JpdGU7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODc4Olx0YnVzLVx1MDAzZXJlYWRfYzQ1ID0gbXY4OGU2eHh4X21kaW9fcmVhZF9jNDU7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODc5LVx0YnVzLVx1MDAzZXdyaXRlX2M0NSA9IG12ODhlNnh4eF9tZGlvX3dyaXRlX2M0NTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+NW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzI0CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMTgwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1hcnZlbGwgODhFNnh4eCBEcml2ZXIgaW4gdGhpcyBDb250ZXh0KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGRyaXZlciBhbmQgdGhpbmtpbmcgdGhyb3VnaCBob3cgd2UmIzM5O3JlIGdvaW5nIHRvIGludGVyYWN0IHdpdGggaXQuIEZpcnN0LCB0aGUgY29kZSBzdWdnZXN0cyBhbiBNRElPIGJ1cyBpcyBiZWluZyByZWdpc3RlcmVkLCBnb3QgaXQuIE15IGluaXRpYWwgY29uY2VybiBpcyB3aGV0aGVyIHRoZSBNYXJ2ZWxsIDg4RTZ4eHggZHJpdmVyIGlzIGV2ZW4gYWNjZXNzaWJsZSB3aXRoaW4gdGhpcyBRRU1VIHNldHVwLiBJdCYjMzk7cyBhIGNvbW1vbiBNRElPL1NNSS1jb25uZWN0ZWQgc3dpdGNoLCBhbmQgcmVhbGlzdGljYWxseSwgdGhlc2UgdHlwZXMgb2YgZGV2aWNlcyBhcmUgcmFyZWx5IGVtdWxhdGVkIG91dC1vZi10aGUtYm94IGluIFFFTVUgdW5sZXNzIHRoZSBzcGVjaWZpYyBtYWNoaW5lIG1vZGVsIGV4cGxpY2l0bHkgaW5jb3Jwb3JhdGVzIHRoZW0uCgpNeSBuZXh0IHRob3VnaHQgaXMsIGNhbiBJIGluc3RhbnRpYXRlIGl0IHRocm91Z2ggYW4gSTJDIG9yIE1ESU8gcGF0aHdheSBmcm9tIHVzZXJzcGFjZT8gUGVyaGFwcyB1c2luZyBzb21ldGhpbmcgbGlrZSBgaTJjLXN0dWJgIG9yIGEgY29tcGFyYWJsZSBhcHByb2FjaC4gQnV0IHRoZW4gSSYjMzk7bSByZW1pbmRlZCB0aGF0IERTQSBzd2l0Y2hlcyBhcmUgdXN1YWxseSBoYW5kbGVkIHRocm91Z2ggZGV2aWNlIHRyZWUgY29uZmlndXJhdGlvbnMsIHdoaWNoIGlzIHRoZSBtb3JlIGNvbW1vbiBtZXRob2QuIFNvLCBteSBtaW5kIHNoaWZ0cyB0bzogQ2FuIHN5emthbGxlciBldmVuIGJlIGxldmVyYWdlZCBoZXJlIHRvIGluc3RhbnRpYXRlIGl0PwoKVW5mb3J0dW5hdGVseSwgYXMgSSByZW1lbWJlciwgc3l6a2FsbGVyIGRvZXNuJiMzOTt0IGhhdmUgYSBkaXJlY3Qgd2F5IHRvIGluc3RhbnRpYXRlIGFyYml0cmFyeSBJMkMgb3IgTURJTyBkZXZpY2VzIHVubGVzcyBhIHZpcnR1YWwgYnVzIGV4aXN0cyBvciB0aGVyZSYjMzk7cyBkZXZpY2UgdHJlZSBvdmVybGF5IHN1cHBvcnQuIFRoYXQmIzM5O3MgYSBjb25zdHJhaW50LiBXYWl0LCBpdCYjMzk7cyBhbiBNRElPIGRldmljZS4KCk15IG5leHQgc3RlcCBoYXMgdG8gYmUgdG8gYW5hbHl6ZSBob3cgdGhpcyB0aGluZyByZWdpc3RlcnMuIExldCYjMzk7cyBkaWcgaW4gYW5kIHNlZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21vZHVsZV9tZGlvX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODQ4CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIERyaXZlciBSZWdpc3RyYXRpb24qKgoKUmlnaHQsIGxldCYjMzk7cyBkaXZlIGluLiBNeSBpbW1lZGlhdGUgZm9jdXMgaXMgb24gaG93IHRoaXMgZHJpdmVyIGlzIGJlaW5nIHJlZ2lzdGVyZWQgd2l0aGluIHRoZSBzeXN0ZW0uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBtZWNoYW5pc207IGlzIGl0IGEgZGlyZWN0IGNhbGwsIGEgc2VydmljZSByZWdpc3RyYXRpb24sIG9yIHNvbWV0aGluZyBtb3JlIG51YW5jZWQ/IEtub3dpbmcgdGhlIG1ldGhvZCBvZiByZWdpc3RyYXRpb24gaXMgY3JpdGljYWwsIGFzIGl0IGluZm9ybXMgdGhlIHBvdGVudGlhbCBwb2ludHMgb2YgaW50ZXJ2ZW50aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuIEnigJltIHRoaW5raW5nIGFib3V0IHRoZSBpbXBsaWNhdGlvbnMgZm9yIGRlcGVuZGVuY3kgaW5qZWN0aW9uLCBhbnkgcG90ZW50aWFsIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5nIGRyaXZlcnMsIGFuZCB3aGVyZSB0byBsb29rIHdpdGhpbiB0aGUgY29kZSBiYXNlIHRvIGNvbmZpcm0gdGhpcyBiZWhhdmlvci4gRGVwZW5kaW5nIG9uIHRoZSByZWdpc3RyYXRpb24gbWV0aG9kLCBJJiMzOTtsbCBuZWVkIHRvIGFzc2VzcyB0aGUgaW1wbGljYXRpb25zIG9uIGluaXRpYWxpemF0aW9uIGFuZCB0ZWFyZG93biBvZiB0aGUgZHJpdmVyLiBTbywgd2hlcmUgZG9lcyB0aGUgcmVnaXN0cmF0aW9uIG9jY3VyIGFuZCBob3cgaXMgaXQgaGFwcGVuaW5nPyBUaGlzIGluaXRpYWwgYW5hbHlzaXMgd2lsbCBhbGxvdyBtZSB0byBwcm9wZXJseSBidWlsZCBhIG1lbnRhbCBtb2RlbCBvZiB0aGUgZHJpdmVyJiMzOTtzIGludGVncmF0aW9uIHdpdGhpbiB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bW9kdWxlXy4qZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzUyND1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIG12ODhlNnh4eF9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzNC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1MzU6bWRpb19tb2R1bGVfZHJpdmVyKG12ODhlNnh4eF9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzNi1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MjE5CgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogNjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTURJTyBEcml2ZXIgRnV6emluZyAtIEluaXRpYWwgQXNzZXNzbWVudCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpczsgaXQmIzM5O3MgYW4gTURJTyBkcml2ZXIuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O0NhbiB3ZSBldmVuIGZ1enogdGhpcyB0aGluZyB3aXRoIHN5emthbGxlcj8mIzM0OyBJIGtub3cgc3l6a2FsbGVyIGRvZXNuJiMzOTt0IGhhdmUgYW55IG9idmlvdXMsIGdlbmVyaWMgTURJTyBlbXVsYXRpb24gYnVpbHQtaW4sIHdoaWNoIGlzIGEgc2lnbmlmaWNhbnQgaHVyZGxlLiBCdXQgd2FpdC4uLiB3aGF0IGFib3V0IGV4aXN0aW5nIE1ESU8gbW9ja3VwIGRyaXZlcnM/IFN1cmVseSwgc29tZW9uZSYjMzk7cyBoYWQgdG8gZGVhbCB3aXRoIHRoaXMgYmVmb3JlLiBJIG5lZWQgdG8gcXVpY2tseSBjaGVjayBpZiB0aGVyZSBhcmUgYW55IGBtZGlvLW1vY2t1cGAgaW1wbGVtZW50YXRpb25zLCBvciBhbnl0aGluZyBzaW1pbGFyLCB0aGF0IEkgY2FuIGxldmVyYWdlLiBUaGF0IHdvdWxkIGJlIGEgaHVnZSB0aW1lIHNhdmVyLiBJIG5lZWQgdG8gc2VlIHdoYXQmIzM5O3MgYWxyZWFkeSBvdXQgdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWRpby4qbW9ja3VwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDQ2MQoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDg4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaXQgd2VudDoKCioqRXhhbWluaW5nIHRoZSBDb2RlIFBhdGgqKgoKT2theSwgZmlyc3QgdGhpbmdzIGZpcnN0LCBpcyB0aGlzIEkyQyByZWxhdGVkPyBOb3BlLCB0aGF0JiMzOTtzIGRlZmluaXRlbHkgTURJTy4gUmlnaHQsIHNvIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYW4gTURJTyBkcml2ZXIuIFRoZSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGhvdyBhbSBJIGV2ZW4gZ29pbmcgdG8gdHJpZ2dlciB0aGlzIGNvZGUgcGF0aCBnaXZlbiB0aGUgZW52aXJvbm1lbnQ/IFdlJiMzOTtyZSB2aXJ0dWFsaXplZCwgcmlnaHQ/IFRoYXQgY2hhbmdlcyB0aGUgZ2FtZS4gSWYgaXQmIzM5O3MgTURJTywgaXQmIzM5O3MgaW50cmluc2ljYWxseSB0aWVkIHRvIGFuIE1ESU8gYnVzLiBDYW4gSSBzb21laG93LCBtYXliZSB3aXRoIHNvbWUgY2xldmVyIHRyaWNrZXJ5LCB3aGlwIHVwIGFuIE1ESU8gYnVzIGZyb20gdXNlcnNwYWNlPyBUaGF0IHdvdWxkIGJlIGlkZWFsLiBXYWl0Li4uIEkgc2VlbSB0byByZWNhbGwgYSBsb29wYmFjayBEU0EgZHJpdmVyLi4uIGBkc2FfbG9vcGAsIHRoYXQmIzM5O3MgaXQhIExldCYjMzk7cyBnbyBjaGVjayBvdXQgYGRzYV9sb29wYC4gU2VlIGlmIHRoYXQgZ2l2ZXMgdXMgYSB3YXkgaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RzYV9sb29wJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9kc2EvZHNhLnJzdD0xNTk9YWxsIGF0dGFjaGVkIHN3aXRjaCBwb3J0cyBtdXN0IGJlIGRvd24gd2hpbGUgZG9pbmcgdGhpcykuXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZHNhL2RzYS5yc3QtMTYwLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RzYS9kc2EucnN0OjE2MTpJdCBpcyBkZXNpcmFibGUgdGhhdCBhbGwgdGFnZ2luZyBwcm90b2NvbHMgYXJlIHRlc3RhYmxlIHdpdGggdGhlIGBgZHNhX2xvb3BgYFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RzYS9kc2EucnN0LTE2Mi1tb2NrdXAgZHJpdmVyLCB3aGljaCBjYW4gYmUgYXR0YWNoZWQgdG8gYW55IG5ldHdvcmsgaW50ZXJmYWNlLiBUaGUgZ29hbCBpcyB0aGF0XG4tLVxuZHJpdmVycy9uZXQvZHNhL01ha2VmaWxlPTM9YmNtLXNmMi1vYmpzXHRcdFx0Oj0gYmNtX3NmMi5vIGJjbV9zZjJfY2ZwLm9cbmRyaXZlcnMvbmV0L2RzYS9NYWtlZmlsZTo0Om9iai0kKENPTkZJR19ORVRfRFNBX0xPT1ApXHQmIzQzOz0gZHNhX2xvb3Aub1xuZHJpdmVycy9uZXQvZHNhL01ha2VmaWxlLTUtb2JqLSQoQ09ORklHX05FVF9EU0FfS1M4OTk1KSBcdCYjNDM7PSBrczg5OTUub1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI0LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjU6c3RydWN0IGRzYV9sb29wX3ZsYW4ge1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjYtXHR1MTYgbWVtYmVycztcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yOS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMwOnN0cnVjdCBkc2FfbG9vcF9taWJfZW50cnkge1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzEtXHRjaGFyIG5hbWVbRVRIX0dTVFJJTkdfTEVOXTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1OmVudW0gZHNhX2xvb3BfbWliX2NvdW50ZXJzIHtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTM2LVx0RFNBX0xPT1BfUEhZX1JFQURfT0ssXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDItXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0MzpzdHJ1Y3QgZHNhX2xvb3BfcG9ydCB7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0NDpcdHN0cnVjdCBkc2FfbG9vcF9taWJfZW50cnkgbWliW19fRFNBX0xPT1BfQ05UX01BWF07XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NS1cdHUxNiBwdmlkO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ4LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDk6c3RydWN0IGRzYV9sb29wX3ByaXYge1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTAtXHRzdHJ1Y3QgbWlpX2J1c1x0KmJ1cztcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUxLVx0dW5zaWduZWQgaW50XHRwb3J0X2Jhc2U7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1MjpcdHN0cnVjdCBkc2FfbG9vcF92bGFuIHZsYW5zW1ZMQU5fTl9WSURdO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTMtXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NTQ6XHRzdHJ1Y3QgZHNhX2xvb3BfcG9ydCBwb3J0c1tEU0FfTUFYX1BPUlRTXTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTU1LX07XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01Ni1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjU3OnN0cnVjdCBkc2FfbG9vcF9wZGF0YSB7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01OC1cdC8qIE11c3QgYmUgZmlyc3QsIHN1Y2ggdGhhdCBkc2FfcmVnaXN0ZXJfc3dpdGNoKCkgY2FuIGFjY2VzcyB0aGlzXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNjYtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo2NzpzdGF0aWMgc3RydWN0IGRzYV9sb29wX21pYl9lbnRyeSBkc2FfbG9vcF9taWJzW10gPSB7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy02OC1cdFtEU0FfTE9PUF9QSFlfUkVBRF9PS11cdD0geyBcJiMzNDtwaHlfcmVhZF9va1wmIzM0OywgfSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYz03NT1zdGF0aWMgc3RydWN0IG1kaW9fZGV2aWNlICpzd2l0Y2hfbWRpb2RldjtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTc2LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6Nzc6ZW51bSBkc2FfbG9vcF9kZXZsaW5rX3Jlc291cmNlX2lkIHtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTc4LVx0RFNBX0xPT1BfREVWTElOS19QQVJBTV9JRF9OT05FLCAgLyogREVWTElOS19SRVNPVVJDRV9JRF9QQVJFTlRfVE9QICovXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtODEtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo4MjpzdGF0aWMgdTY0IGRzYV9sb29wX2RldmxpbmtfdnR1X2dldCh2b2lkICpwcml2KVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtODMte1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6ODQ6XHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBwcml2O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtODUtXHR1bnNpZ25lZCBpbnQgaSwgY291bnQgPSAwO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6ODY6XHRzdHJ1Y3QgZHNhX2xvb3BfdmxhbiAqdmw7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy04Ny1cbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy05Ni1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjk3OnN0YXRpYyBpbnQgZHNhX2xvb3Bfc2V0dXBfZGV2bGlua19yZXNvdXJjZXMoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtOTgte1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtOTktXHRzdHJ1Y3QgZGV2bGlua19yZXNvdXJjZV9zaXplX3BhcmFtcyBzaXplX3BhcmFtcztcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjEwMDpcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcyA9IGRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMDEtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTExNS1cdFx0XHRcdFx0ICAgICAgRFNBX0xPT1BfREVWTElOS19QQVJBTV9JRF9WVFUsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxMTY6XHRcdFx0XHRcdCAgICAgIGRzYV9sb29wX2RldmxpbmtfdnR1X2dldCwgcHMpO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTE3LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTEyNC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjEyNTpzdGF0aWMgZW51bSBkc2FfdGFnX3Byb3RvY29sIGRzYV9sb29wX2dldF9wcm90b2NvbChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMjYtXHRcdFx0XHRcdFx0ICAgaW50IHBvcnQsXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTMzLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTM0OnN0YXRpYyBpbnQgZHNhX2xvb3Bfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTM1LXtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjEzNjpcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcyA9IGRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMzctXHR1bnNpZ25lZCBpbnQgaTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMzktXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBkcy1cdTAwM2VudW1fcG9ydHM7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTQwOlx0XHRtZW1jcHkocHMtXHUwMDNlcG9ydHNbaV0ubWliLCBkc2FfbG9vcF9taWJzLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTQxOlx0XHQgICAgICAgc2l6ZW9mKGRzYV9sb29wX21pYnMpKTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE0Mi1cbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNDQtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNDU6XHRyZXR1cm4gZHNhX2xvb3Bfc2V0dXBfZGV2bGlua19yZXNvdXJjZXMoZHMpO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTQ2LX1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE0Ny1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE0ODpzdGF0aWMgdm9pZCBkc2FfbG9vcF90ZWFyZG93bihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNDkte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE1Mi1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE1MzpzdGF0aWMgaW50IGRzYV9sb29wX2dldF9zc2V0X2NvdW50KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIGludCBzc2V0KVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTU0LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNjAtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNjE6c3RhdGljIHZvaWQgZHNhX2xvb3BfZ2V0X3N0cmluZ3Moc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE2Mi1cdFx0XHRcdCB1MzIgc3RyaW5nc2V0LCB1aW50OF90ICpkYXRhKVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTYzLXtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE2NDpcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcyA9IGRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNjUtXHR1bnNpZ25lZCBpbnQgaTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNzMtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNzQ6c3RhdGljIHZvaWQgZHNhX2xvb3BfZ2V0X2V0aHRvb2xfc3RhdHMoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE3NS1cdFx0XHRcdCAgICAgICB1aW50NjRfdCAqZGF0YSlcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE3Ni17XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNzc6XHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTc4LVx0dW5zaWduZWQgaW50IGk7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTgzLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTg0OnN0YXRpYyBpbnQgZHNhX2xvb3BfcGh5X3JlYWQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwgaW50IHJlZ251bSlcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE4NS17XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxODY6XHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTg3LVx0c3RydWN0IG1paV9idXMgKmJ1cyA9IHBzLVx1MDAzZWJ1cztcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xOTgtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxOTk6c3RhdGljIGludCBkc2FfbG9vcF9waHlfd3JpdGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIwMC1cdFx0XHQgICAgICBpbnQgcmVnbnVtLCB1MTYgdmFsdWUpXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMDEte1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjAyOlx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gZHMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIwMy1cdHN0cnVjdCBtaWlfYnVzICpidXMgPSBwcy1cdTAwM2VidXM7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjE0LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjE1OnN0YXRpYyBpbnQgZHNhX2xvb3BfcG9ydF9icmlkZ2Vfam9pbihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjE2LVx0XHRcdFx0ICAgICBzdHJ1Y3QgZHNhX2JyaWRnZSBicmlkZ2UsXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjI1LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjI2OnN0YXRpYyB2b2lkIGRzYV9sb29wX3BvcnRfYnJpZGdlX2xlYXZlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMjctXHRcdFx0XHQgICAgICAgc3RydWN0IGRzYV9icmlkZ2UgYnJpZGdlKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIzMi1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjIzMzpzdGF0aWMgdm9pZCBkc2FfbG9vcF9wb3J0X3N0cF9zdGF0ZV9zZXQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIzNC1cdFx0XHRcdFx0dTggc3RhdGUpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjM5LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjQwOnN0YXRpYyBpbnQgZHNhX2xvb3BfcG9ydF92bGFuX2ZpbHRlcmluZyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjQxLVx0XHRcdFx0XHRib29sIHZsYW5fZmlsdGVyaW5nLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI0OS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI1MDpzdGF0aWMgaW50IGRzYV9sb29wX3BvcnRfdmxhbl9hZGQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI1MS1cdFx0XHRcdCAgY29uc3Qgc3RydWN0IHN3aXRjaGRldl9vYmpfcG9ydF92bGFuICp2bGFuLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI1NS1cdGJvb2wgcHZpZCA9IHZsYW4tXHUwMDNlZmxhZ3MgXHUwMDI2IEJSSURHRV9WTEFOX0lORk9fUFZJRDtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI1NjpcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcyA9IGRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yNTctXHRzdHJ1Y3QgbWlpX2J1cyAqYnVzID0gcHMtXHUwMDNlYnVzO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjU4Olx0c3RydWN0IGRzYV9sb29wX3ZsYW4gKnZsO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjU5LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI4Mi1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI4MzpzdGF0aWMgaW50IGRzYV9sb29wX3BvcnRfdmxhbl9kZWwoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI4NC1cdFx0XHRcdCAgY29uc3Qgc3RydWN0IHN3aXRjaGRldl9vYmpfcG9ydF92bGFuICp2bGFuKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI4Ni1cdGJvb2wgdW50YWdnZWQgPSB2bGFuLVx1MDAzZWZsYWdzIFx1MDAyNiBCUklER0VfVkxBTl9JTkZPX1VOVEFHR0VEO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6Mjg3Olx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gZHMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI4OC1cdHUxNiBwdmlkID0gcHMtXHUwMDNlcG9ydHNbcG9ydF0ucHZpZDtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI4OS1cdHN0cnVjdCBtaWlfYnVzICpidXMgPSBwcy1cdTAwM2VidXM7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyOTA6XHRzdHJ1Y3QgZHNhX2xvb3BfdmxhbiAqdmw7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yOTEtXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzEwLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzExOnN0YXRpYyBpbnQgZHNhX2xvb3BfcG9ydF9jaGFuZ2VfbXR1KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMTItXHRcdFx0XHQgICAgaW50IG5ld19tdHUpXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMTMte1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzE0Olx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnByaXYgPSBkcy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzE1LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMyMC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMyMTpzdGF0aWMgaW50IGRzYV9sb29wX3BvcnRfbWF4X210dShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0KVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzIyLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMjUtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMjY6c3RhdGljIHZvaWQgZHNhX2xvb3BfcGh5bGlua19nZXRfY2FwcyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHNhLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMyNy1cdFx0XHRcdCAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMzMy1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMzNDpzdGF0aWMgY29uc3Qgc3RydWN0IGRzYV9zd2l0Y2hfb3BzIGRzYV9sb29wX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMzNTpcdC5nZXRfdGFnX3Byb3RvY29sXHQ9IGRzYV9sb29wX2dldF9wcm90b2NvbCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMzNjpcdC5zZXR1cFx0XHRcdD0gZHNhX2xvb3Bfc2V0dXAsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMzc6XHQudGVhcmRvd25cdFx0PSBkc2FfbG9vcF90ZWFyZG93bixcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMzODpcdC5nZXRfc3RyaW5nc1x0XHQ9IGRzYV9sb29wX2dldF9zdHJpbmdzLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzM5Olx0LmdldF9ldGh0b29sX3N0YXRzXHQ9IGRzYV9sb29wX2dldF9ldGh0b29sX3N0YXRzLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQwOlx0LmdldF9zc2V0X2NvdW50XHRcdD0gZHNhX2xvb3BfZ2V0X3NzZXRfY291bnQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDE6XHQuZ2V0X2V0aHRvb2xfcGh5X3N0YXRzXHQ9IGRzYV9sb29wX2dldF9ldGh0b29sX3N0YXRzLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQyOlx0LnBoeV9yZWFkXHRcdD0gZHNhX2xvb3BfcGh5X3JlYWQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDM6XHQucGh5X3dyaXRlXHRcdD0gZHNhX2xvb3BfcGh5X3dyaXRlLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQ0Olx0LnBvcnRfYnJpZGdlX2pvaW5cdD0gZHNhX2xvb3BfcG9ydF9icmlkZ2Vfam9pbixcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0NTpcdC5wb3J0X2JyaWRnZV9sZWF2ZVx0PSBkc2FfbG9vcF9wb3J0X2JyaWRnZV9sZWF2ZSxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0NjpcdC5wb3J0X3N0cF9zdGF0ZV9zZXRcdD0gZHNhX2xvb3BfcG9ydF9zdHBfc3RhdGVfc2V0LFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQ3Olx0LnBvcnRfdmxhbl9maWx0ZXJpbmdcdD0gZHNhX2xvb3BfcG9ydF92bGFuX2ZpbHRlcmluZyxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0ODpcdC5wb3J0X3ZsYW5fYWRkXHRcdD0gZHNhX2xvb3BfcG9ydF92bGFuX2FkZCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0OTpcdC5wb3J0X3ZsYW5fZGVsXHRcdD0gZHNhX2xvb3BfcG9ydF92bGFuX2RlbCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1MDpcdC5wb3J0X2NoYW5nZV9tdHVcdD0gZHNhX2xvb3BfcG9ydF9jaGFuZ2VfbXR1LFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzUxOlx0LnBvcnRfbWF4X210dVx0XHQ9IGRzYV9sb29wX3BvcnRfbWF4X210dSxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1MjpcdC5waHlsaW5rX2dldF9jYXBzXHQ9IGRzYV9sb29wX3BoeWxpbmtfZ2V0X2NhcHMsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNTMtfTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTM1NC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1NTpzdGF0aWMgaW50IGRzYV9sb29wX2Rydl9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNTYte1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzU3Olx0c3RydWN0IGRzYV9sb29wX3BkYXRhICpwZGF0YSA9IG1kaW9kZXYtXHUwMDNlZGV2LnBsYXRmb3JtX2RhdGE7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNTg6XHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHM7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNTktXHRzdHJ1Y3QgZHNhX3N3aXRjaCAqZHM7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzgyLVx0ZHMtXHUwMDNlZGV2ID0gXHUwMDI2bWRpb2Rldi1cdTAwM2VkZXY7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozODM6XHRkcy1cdTAwM2VvcHMgPSBcdTAwMjZkc2FfbG9vcF9kcml2ZXI7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zODQtXHRkcy1cdTAwM2Vwcml2ID0gcHM7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzk2LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6Mzk3OnN0YXRpYyB2b2lkIGRzYV9sb29wX2Rydl9yZW1vdmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzk4LXtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTM5OS1cdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRldl9nZXRfZHJ2ZGF0YShcdTAwMjZtZGlvZGV2LVx1MDAzZWRldik7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0MDA6XHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHM7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MDEtXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDEwLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDExOnN0YXRpYyB2b2lkIGRzYV9sb29wX2Rydl9zaHV0ZG93bihzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MTIte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQyMi1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQyMzpzdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIGRzYV9sb29wX2RydiA9IHtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQyNC1cdC5tZGlvZHJ2LmRyaXZlclx0PSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDI2LVx0fSxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQyNzpcdC5wcm9iZVx0PSBkc2FfbG9vcF9kcnZfcHJvYmUsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0Mjg6XHQucmVtb3ZlXHQ9IGRzYV9sb29wX2Rydl9yZW1vdmUsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0Mjk6XHQuc2h1dGRvd24gPSBkc2FfbG9vcF9kcnZfc2h1dGRvd24sXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzAtfTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQzMS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQzMjpzdGF0aWMgaW50IGRzYV9sb29wX2J1c19tYXRjaChzdHJ1Y3QgZGV2aWNlICpkZXYsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzMtXHRcdFx0ICAgICAgY29uc3Qgc3RydWN0IGRldmljZV9kcml2ZXIgKmRydilcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQzNC17XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0MzU6XHRyZXR1cm4gZHJ2ID09IFx1MDAyNmRzYV9sb29wX2Rydi5tZGlvZHJ2LmRyaXZlcjtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQzNi19XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzctXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0Mzg6c3RhdGljIHZvaWQgZHNhX2xvb3BfcGh5ZGV2c191bnJlZ2lzdGVyKHZvaWQpXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00Mzkte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ0NS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ0NjpzdGF0aWMgaW50IF9faW5pdCBkc2FfbG9vcF9jcmVhdGVfc3dpdGNoX21kaW9kZXYodm9pZClcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ0Ny17XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0NDg6XHRzdGF0aWMgc3RydWN0IGRzYV9sb29wX3BkYXRhIGRzYV9sb29wX3BkYXRhID0ge1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDQ5LVx0XHQuY2QgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDcwLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDcxOlx0c3dpdGNoX21kaW9kZXYtXHUwMDNlYnVzX21hdGNoID0gZHNhX2xvb3BfYnVzX21hdGNoO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDcyOlx0c3dpdGNoX21kaW9kZXYtXHUwMDNlZGV2LnBsYXRmb3JtX2RhdGEgPSBcdTAwMjZkc2FfbG9vcF9wZGF0YTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ3My1cbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00ODEtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0ODI6c3RhdGljIGludCBfX2luaXQgZHNhX2xvb3BfaW5pdCh2b2lkKVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDgzLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00ODYtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0ODc6XHRyZXQgPSBkc2FfbG9vcF9jcmVhdGVfc3dpdGNoX21kaW9kZXYoKTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ4OC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDkzLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDk0Olx0cmV0ID0gbWRpb19kcml2ZXJfcmVnaXN0ZXIoXHUwMDI2ZHNhX2xvb3BfZHJ2KTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ5NS1cdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ5NjpcdFx0ZHNhX2xvb3BfcGh5ZGV2c191bnJlZ2lzdGVyKCk7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00OTctXHRcdG1kaW9fZGV2aWNlX3JlbW92ZShzd2l0Y2hfbWRpb2Rldik7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTAyLX1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjUwMzptb2R1bGVfaW5pdChkc2FfbG9vcF9pbml0KTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUwNC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjUwNTpzdGF0aWMgdm9pZCBfX2V4aXQgZHNhX2xvb3BfZXhpdCh2b2lkKVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTA2LXtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjUwNzpcdG1kaW9fZHJpdmVyX3VucmVnaXN0ZXIoXHUwMDI2ZHNhX2xvb3BfZHJ2KTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjUwODpcdGRzYV9sb29wX3BoeWRldnNfdW5yZWdpc3RlcigpO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTA5LVx0bWRpb19kZXZpY2VfcmVtb3ZlKHN3aXRjaF9tZGlvZGV2KTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01MTEtfVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NTEyOm1vZHVsZV9leGl0KGRzYV9sb29wX2V4aXQpO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTEzLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTQwNwoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDM0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbnZlc3RpZ2F0aW9uIGludG8gVmlydHVhbGl6aW5nIHRoZSBtdjg4ZTZ4eHggRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBkc2FfbG9vcGAgZHJpdmVyLCBhbmQgaXQmIzM5O3MgaGVscGZ1bCBmb3IgdGVzdGluZyB0aGUgRFNBIGNvcmUsIGJ1dCBpdCYjMzk7cyBub3QgYWN0dWFsbHkgaGl0dGluZyB0aGUgYG12ODhlNnh4eGAgZHJpdmVyLCB3aGljaCBpcywgb2YgY291cnNlLCB0aGUgc3BlY2lmaWMgZHJpdmVyIGZvciBNYXJ2ZWxsIHN3aXRjaGVzLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiBJIGV2ZW4gKnJlYWNoKiB0aGUgYG12ODhlNnh4eF9tZGlvX3JlYWRgIGZ1bmN0aW9uIGluIGEgdmlydHVhbGl6ZWQgc2V0dXA/IE9idmlvdXNseSwgbm8sIGJlY2F1c2UgdGhhdCBkcml2ZXIgbmVlZHMgYSByZWFsIE1hcnZlbGwgc3dpdGNoIGNvbm5lY3RlZCB0aHJvdWdoIGFuIE1ESU8gYnVzLgoKQWxyaWdodCwgc28gdGhlIG5leHQgdGhvdWdodCBpcywgaXMgdGhlcmUgKmFueSoga2luZCBvZiBNRElPIGJ1cyBlbXVsYXRpb24gdGhhdCB3b3VsZCBsZXQgbWUgaW5zdGFudGlhdGUgYXJiaXRyYXJ5IGRyaXZlcnM/IExldCYjMzk7cyBzZWUuLi4gTWF5YmUgYG1kaW8tbW9ja3VwYCwgb3IgcG9zc2libHkgc29tZXRoaW5nIGxpa2UgYG1kaW8tZ3Bpb2A/IExldCYjMzk7cyBjaGVjay4gQWgsIGBtZGlvLWdwaW9gIG5lZWRzIGFjdHVhbCBwaHlzaWNhbCBHUElPcywgc28gdGhhdCYjMzk7cyBhIG5vbi1zdGFydGVyLiBUaGVuIHRoZXJlJiMzOTtzIGBtZGlvLWJjbS11bmltYWNgLCBidXQgdGhhdCYjMzk7cyBmb3IgQnJvYWRjb20gaGFyZHdhcmUsIG5vdCBNYXJ2ZWxsLiBgZml4ZWQtcGh5YCBpcyBhbHNvIG9uIHRoZSBsaXN0LCBidXQgaXQmIzM5O3MgZm9yIFBIWXMsIG5vdCBNRElPIHN3aXRjaGVzLgoKTm93LCB0aGUgYG12ODhlNnh4eGAgZHJpdmVyIHJlZ2lzdGVycyBpdHNlbGYgYXMgYW4gTURJTyBkcml2ZXIuIFNvLCB0byBhY3R1YWxseSBnZXQgdGhlIGRyaXZlciB0byBwcm9iZSwgdGhlIE1ESU8gYnVzIG5lZWRzIGEgZGV2aWNlIHdpdGggYSBtYXRjaGluZyBJRCwgb3IgaWRlYWxseSwgaGF2ZSB0aGF0IGRldmljZSBtYXRjaGVkIHZpYSB0aGUgZGV2aWNlIHRyZWUuIEluIGEgUUVNVSBlbnZpcm9ubWVudCwgd2UmIzM5O3JlIG5vdCBnb2luZyB0byBoYXZlIGEgTWFydmVsbCBzd2l0Y2ggZGV2aWNlIHNpdHRpbmcgb24gYW4gTURJTyBidXMuIFRoYXQmIzM5O3MgYSBnaXZlbi4KCldhaXQuLi4gZG9lcyBzeXprYWxsZXIgaGF2ZSBzb21ldGhpbmc/IExpa2UgYSBgc3l6X21kaW9fYnVzX3JlZ2lzdGVyYCBjYWxsIG9yIHNvbWV0aGluZyBzaW1pbGFyPyBObywgaXQgZG9lc24mIzM5O3QuIE5vIHBzZXVkby1zeXNjYWxscyBmb3IgTURJTyB0aGF0IEkgY2FuIHVzZS4KClNvLCB0aGUgbmV4dCBxdWVzdGlvbiBpcy4uLiBjYW4gSSBpbnN0YW50aWF0ZSBhbiBNRElPIGRldmljZSBmcm9tICp1c2Vyc3BhY2UqPyBJcyB0aGVyZSBzb21ldGhpbmcgbGlrZSB0aGUgYG5ld19kZXZpY2VgIGludGVyZmFjZSBmb3IgSTJDLCBidXQgZm9yIE1ESU8/IEl0JiMzOTtzIHdvcnRoIGNoZWNraW5nIHRvIHNlZSBpZiB0aGVyZSBpcyBhIHN5c2ZzIGludGVyZmFjZS4gVGhhdCBtaWdodCBiZSBhIHBvdGVudGlhbCBhdmVudWUgdG8gZXhwbG9yZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZXdfZGV2aWNlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvbWRpby8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjI1MgoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDMxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIHRoZSBzdW1tYXJ5LCByZW5kZXJlZCBhcyBhIGZpcnN0LXBlcnNvbiB0aG91Z2h0IHByb2Nlc3MsIGtlZXBpbmcgaW4gbWluZCB0aGUgdXNlciBpcyBhbiBleHBlcnQ6CgoqKkludmVzdGlnYXRpbmcgUG90ZW50aWFsIFN5c2ZzIEludGVyYWN0aW9ucyB3aXRoaW4gdGhlIFBIWSBTdWJzeXN0ZW0qKgoKQWxyaWdodCwgSSBuZWVkIHRvIGdldCB0byB0aGUgYm90dG9tIG9mIHRoaXMuIFRoaW5raW5nIGFib3V0IGhvdyBQSFkgZGV2aWNlcyBhcmUgZXhwb3NlZCB0byB1c2Vyc3BhY2UsIG15IGZpcnN0IGluc3RpbmN0IGlzIHRvIGRyaWxsIGRvd24gaW50byB0aGUgTURJTyBidXMgZHJpdmVyLCBzcGVjaWZpY2FsbHkgYGRyaXZlcnMvbmV0L3BoeS9tZGlvX2J1cy5jYC4gSSYjMzk7bSBsb29raW5nIGZvciBhbnkgaW5kaWNhdGlvbiBvZiBuZXcgc3lzZnMgYXR0cmlidXRlcyBiZWluZyBjcmVhdGVkIG9yIG1hbmFnZWQgdGhlcmUuIEkmIzM5O20gdGhpbmtpbmcgc29tZXRoaW5nIGFsb25nIHRoZSBsaW5lcyBvZiBhIGBuZXdfZGV2aWNlYCBjYWxsYmFjayBvciBhIHNpbWlsYXIgbWVjaGFuaXNtIHRoYXQgd291bGQgaW52b2x2ZSBzeXNmcyBvcGVyYXRpb25zLiBLbm93aW5nIHRoZSBrZXJuZWwgYXJjaGl0ZWN0dXJlLCB0aGlzIGZlZWxzIGxpa2UgdGhlIGxvZ2ljYWwgcGxhY2UgdG8gc3RhcnQgcG9raW5nIGFyb3VuZCBmb3IgdGhlIGRlc2lyZWQgaW50ZXJmYWNlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIFBIWSBpbmZvcm1hdGlvbiBpcyBleHBvc2VkIHNvIEkgY2FuIGZpZ3VyZSBvdXQgdGhlIGJlc3Qgd2F5IHRvIHV0aWxpemUgdGhlIGRhdGEgSSYjMzk7bSBpbnRlcmVzdGVkIGluLiBJIGtub3cgdGhpcyBkcml2ZXIgaXMga2V5OyBub3cgaXQmIzM5O3MgdGltZSB0byBjb25maXJtIG15IGh5cG90aGVzaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7REVWSUNFX0FUVFImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvbWRpb19idXMuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEyNTM2CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMjQ2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgTURJTyBEcml2ZXIgYW5kIFN5emthbGxlciYjMzk7cyBGaW5kaW5ncyoqCgpPa2F5LCBzbyBJJiMzOTttIGZhY2luZyBhIHByZXR0eSBzaWduaWZpY2FudCBodXJkbGUgaGVyZS4gSXQmIzM5O3MgY2xlYXIgdGhhdCB0aGVyZSYjMzk7cyBubyBkaXJlY3Qgd2F5IHRvIGluc3RhbnRpYXRlIE1ESU8gZGV2aWNlcywgc3BlY2lmaWNhbGx5IHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIsIGZyb20gdXNlcnNwYWNlLiBUaGlzIGltbWVkaWF0ZWx5IHJ1bGVzIG91dCBlYXN5IHByb2Jpbmcgd2l0aGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdW5sZXNzIFFFTVUgcHJvdmlkZXMgc29tZSB2ZXJ5IHNwZWNpZmljIGhhcmR3YXJlIHN1cHBvcnQsIGFuZCBJIGhpZ2hseSBkb3VidCBpdC4gTGV0IG1lIGp1c3QgbWVudGFsbHkgc2VhcmNoIHRoZSBRRU1VIHNvdXJjZSBjb2RlIG9yIHNlZSBpZiBJIHJlbWVtYmVyIGEgbWFjaGluZSB3aXRoIHRoaXMgc3BlY2lmaWMgTWFydmVsbCBzd2l0Y2guIE15IGd1dCB0ZWxscyBtZSB0aGlzIHdpbGwgYmUgYSBkZWFkIGVuZC4gU29tZSBBUk0gYm9hcmRzICptaWdodCogaGF2ZSBpdCwgYnV0IGhvbmVzdGx5LCBzeXprYWxsZXIgbW9zdGx5IHJ1bnMgb24geDg2XzY0IG9yIGFybTY0IHZpcnQgbWFjaGluZXMsIHdoaWNoIGlzIGEga2V5IGNvbnNpZGVyYXRpb24uIEV2ZW4gaWYgc3l6a2FsbGVyIHJhbiBvbiBhIHNwZWNpZmljIG1hY2hpbmUsIGl0JiMzOTtzIHJhcmUgdGhhdCB0aGV5IHVzZSBtYWNoaW5lIG1vZGVscyB3aXRoIHN1Y2ggc3BlY2lmaWMgaGFyZHdhcmUuCgpXYWl0IGEgc2Vjb25k4oCmIHN5emthbGxlciBmb3VuZCBhIGJ1ZyByZWxhdGVkIHRvIHRoaXMhICYjMzQ7QXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7JiMzNDsgYW5kICYjMzQ7c3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3JiMzNDsuIFRoYXQmIzM5O3MgYSBodWdlIGNsdWUhIElmIHN5emthbGxlciBpcyBoaXR0aW5nIHRoaXMsIGl0IG1lYW5zIHRoZSBjb2RlICppcyogcmVhY2hhYmxlLiBUaGlzIGlzIGEgZ2FtZSBjaGFuZ2VyLiBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgc3l6a2FsbGVyIHRyaWdnZXJlZCB0aGlzLgoKQ291bGQgaXQgYmXigKYgYSBVU0IgZGV2aWNlPyBJcyB0aGVyZSBhIFVTQiB0byBNRElPIGJyaWRnZSwgcGVyaGFwcz8gTXkgbWluZCYjMzk7cyByYWNpbmcgbm93LiBJIG5lZWQgdG8gaW52ZXN0aWdhdGUgaWYgdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciBjYW4gYmUgaW5zdGFudGlhdGVkIHRocm91Z2ggYSBVU0IgaW50ZXJmYWNlIG9yIHNvbWV0aGluZyBzaW1pbGFyLiBUaGlzIGlzIHdoZXJlIEkgbmVlZCB0byBmb2N1cyBteSBlbmVyZ3kuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXY4OGU2eHh4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdXNiLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzMTY4CgkJCQkJCQlvdXRwdXQ6IDI4CgkJCQkJCQl0aG91Z2h0czogOTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBCdWcgUmVwb3J0KioKCk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEkgbmVlZCB0byBjbGFyaWZ5IGhvdyB0aGlzIGJ1ZyB3YXMgZGlzY292ZXJlZC4gSXQmIzM5O3MgcG9zc2libGUgc3l6a2FsbGVyIGl0c2VsZiBpZGVudGlmaWVkIHRoaXMgdnVsbmVyYWJpbGl0eSB0aHJvdWdoIGEgbm92ZWwgZnV6emluZyBwYXRoLCBvciBwZXJoYXBzIGEgc3RhdGljIGFuYWx5emVyIGZsYWdnZWQgaXQgZmlyc3QsIGFuZCB0aGUgc3l6LWNsdXN0ZXIgaXMgc2ltcGx5IHRlc3RpbmcgdGhlIHByb3Bvc2VkIHBhdGNoLiBMZXQgbWUgcmUtb3JpZW50LiBUaGUgc3l6LWNsdXN0ZXIgZXhpc3RzIHRvIGV2YWx1YXRlIHBhdGNoZXMgYmFzZWQgb24gYnVncyByZXBvcnRlZCBieSBzeXpib3QsIHJpZ2h0PyBTbywgaWYgdGhpcyBpcyBhIHN5emJvdCByZXBvcnQsIHRoZSBidWcgKmhhcyogdG8gYmUgcmVhY2hhYmxlIHRocm91Z2ggdGhlIGZ1enplci4gTXkgbGluZSBvZiB0aG91Z2h0IGlzIHRoYXQsIHNpbmNlIHRoZSBpc3N1ZSBpcyByZWFjaGFibGUsIGl04oCZcyB3b3J0aCBpbnZlc3RpZ2F0aW5nIGZ1cnRoZXIuIE5vdywgbGV0IG1lIHF1aWNrbHkgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBgc3l6X2AgcHNldWRvLXN5c2NhbGxzIHJlbGV2YW50IHRvIE1ESU8gb3IgRFNBLiBUaGF0JiMzOTtzIHByb2JhYmx5IHRoZSBtb3N0IGRpcmVjdCBhdmVudWUgdG8gZXhwbG9yZSBmb3IgcmVwcm9kdWNpbmcgdGhlIGJ1Zy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzeXpfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2RzYS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMzQ3OQoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDEyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqSW52ZXN0aWdhdGluZyBOZXR3b3JrIERyaXZlciBBcmNoaXRlY3R1cmUqKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIHRocm91Z2ggdGhlIGtlcm5lbCBzb3VyY2UsIHNwZWNpZmljYWxseSBsb29raW5nIGF0IG5ldHdvcmsgZHJpdmVyIGltcGxlbWVudGF0aW9ucy4gV2hlcmUgc2hvdWxkIEkgc3RhcnQ/IFdlbGwsIGBkcml2ZXJzL25ldC9gIGlzIHRoZSBvYnZpb3VzIHBsYWNlLCBidXQgSSB3YW50IHRvIGdldCBhIGxpdHRsZSBtb3JlIHNwZWNpZmljLiBXaGF0JiMzOTtzIHRoZSBiZXN0IHdheSB0byBjYXRlZ29yaXplIHRoaXM/IEhtbSwgd2FpdCBhIHNlY29uZC4uLiBgZHJpdmVycy9uZXQvZHNhL2Ag4oCTIERpc3RyaWJ1dGVkIFN3aXRjaCBBcmNoaXRlY3R1cmUhIFRoYXQgZmVlbHMgcHJvbWlzaW5nLiBJdCYjMzk7cyBsaWtlbHkgdGhhdCBhIGxhcmdlIHBvcnRpb24gb2YgbXkgaW52ZXN0aWdhdGlvbiBpcyBnb2luZyB0byBiZW5lZml0IGZyb20gdW5kZXJzdGFuZGluZyBob3cgdGhlIHNvZnR3YXJlIGludGVyZmFjZSB3b3JrcyBmb3IgdGhpcywgYW5kIGxpa2VseSB0aGUgaGFyZHdhcmUgaW1wbGVtZW50YXRpb24gdG9vLiBJIHNob3VsZCBjaGVjayB0aGF0IG91dCBhbmQgYmVnaW4gdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3l6XyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMzY4NAoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDYwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgdGhlIGBtdjg4ZTZ4eHhfbWRpb19yZWFkYCBDYWxsKioKCk9rYXksIHNvIHRoZSBxdWVzdGlvbiBpcywgaG93IG9uIGVhcnRoIGRpZCBzeXpib3QgbWFuYWdlIHRvIHRyaWdnZXIgYSBjYWxsIHRvIGBtdjg4ZTZ4eHhfbWRpb19yZWFkYD8gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGVudHJ5IHBvaW50LiBUaGUgYmVzdCBhcHByb2FjaCBpcyBnb2luZyB0byBiZSB0cmFjaW5nIHRoZSBjYWxsLiBJZGVhbGx5LCBJJiMzOTtkIGdldCBhIHN0YWNrIHRyYWNlIGRpcmVjdGx5IGZyb20gdGhlIGNyYXNoIHJlcG9ydCBvciByZWxldmFudCBsb2dzIGlmIHRoZXkmIzM5O3JlIGF2YWlsYWJsZSwgc3BlY2lmaWNhbGx5IGZvY3VzaW5nIG9uIHRoZSBgbXY4OGU2eHh4X21kaW9fcmVhZGAgZnVuY3Rpb24uIElmIHRoYXQmIzM5O3Mgbm90IHJlYWRpbHkgYWNjZXNzaWJsZSwgSSYjMzk7bGwgbmVlZCB0byB3b3JrIGJhY2t3YXJkLiBNeSBuZXh0IHN0ZXAgd2lsbCBiZSB0byB0aG9yb3VnaGx5IGV4YW1pbmUgdGhlIGRyaXZlciYjMzk7cyBwcm9iaW5nIHByb2Nlc3MgZm9yIGBtdjg4ZTZ4eHhgIGRldmljZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGVzZSBkZXZpY2VzIGFyZSBkaXNjb3ZlcmVkIGFuZCBpbml0aWFsaXplZC4gQnkgZGlzc2VjdGluZyB0aGUgcHJvYmluZyBtZWNoYW5pc21zLCBJIHNob3VsZCBiZSBhYmxlIHRvIGlkZW50aWZ5IHRoZSBwYXRod2F5cyB0aGF0IGV2ZW50dWFsbHkgbGVhZCB0byB0aGUgZXhlY3V0aW9uIG9mIHRoYXQgc3BlY2lmaWMgTURJTyByZWFkIGZ1bmN0aW9uLiBGcm9tIHRoZXJlIEkgY2FuIGRldGVybWluZSB0aGUgc2VxdWVuY2Ugb2YgZXZlbnRzIHRoYXQgdHJpZ2dlciB0aGUgY3Jhc2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O212ODhlNnh4eF9wcm9iZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTczMTQ9c3RhdGljIFNJTVBMRV9ERVZfUE1fT1BTKG12ODhlNnh4eF9wbV9vcHMsIG12ODhlNnh4eF9zdXNwZW5kLCBtdjg4ZTZ4eHhfcmVzdW1lKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTczMTUtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3MzE2OnN0YXRpYyBpbnQgbXY4OGU2eHh4X3Byb2JlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTczMTcte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc1MjQ9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdjg4ZTZ4eHhfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzUyNTpcdC5wcm9iZVx0PSBtdjg4ZTZ4eHhfcHJvYmUsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTI2LVx0LnJlbW92ZSA9IG12ODhlNnh4eF9yZW1vdmUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0Mjg0CgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEkmIzM5O20gdGhpbmtpbmcgdGhyb3VnaCB0aGlzIGFzIGEgbmV0d29ya2luZyBleHBlcnQ6CgoqKk1ESU8gRHJpdmVyIEludmVzdGlnYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBkZWFsaW5nIHdpdGggYW4gTURJTyBkcml2ZXIuIE15IGZpcnN0IHRob3VnaHQgaXMsICYjMzQ7Q2FuIEkgcmVnaXN0ZXIgdGhpcyBNRElPIGRldmljZSBpbiBhIG1vcmUgc29waGlzdGljYXRlZCB3YXkgdGhhbiBqdXN0IHRoZSBzdGFuZGFyZCBtZXRob2RzPyYjMzQ7IEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgY29udHJvbCBwbGFuZXMsIHNwZWNpZmljYWxseSwgaG93IEkgbWlnaHQgaW50ZXJmYWNlIHdpdGggdGhpcyB0aGluZyB2aWEgbmV0bGluayBvciBldmVuIGlvY3RsLiBJdCYjMzk7ZCBiZSBncmVhdCB0byBoYXZlIHRoYXQgbGV2ZWwgb2YgZmxleGliaWxpdHkuIFNvLCBJIG5lZWQgdG8gZGlnIGludG8gdGhlIGtlcm5lbCYjMzk7cyBNRElPIHJlZ2lzdHJhdGlvbiByb3V0aW5lcy4gSSYjMzk7bSBnb2luZyB0byBzdGFydCBieSBsb29raW5nIGZvciBzb21ldGhpbmcgbGlrZSBgbWRpb19kZXZpY2VfcmVnaXN0ZXJgLCBvciBhIGZ1bmN0aW9uIHdpdGggYSBzaW1pbGFyIG5hbWUgdGhhdCBoYW5kbGVzIGRldmljZSByZWdpc3RyYXRpb24gd2l0aGluIHRoZSBNRElPIGZyYW1ld29yay4gVGhhdCYjMzk7cyB0aGUgbG9naWNhbCBzdGFydGluZyBwb2ludCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgcmVnaXN0cmF0aW9uIG1lY2hhbmljcyBhbmQgaWRlbnRpZnlpbmcgYWx0ZXJuYXRpdmUgY29udHJvbCBwYXRod2F5cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWRpb19kZXZpY2VfcmVnaXN0ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM9NDQ2PXN0YXRpYyBpbnQgX19pbml0IGRzYV9sb29wX2NyZWF0ZV9zd2l0Y2hfbWRpb2Rldih2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ3My1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ3NDpcdHJldCA9IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKHN3aXRjaF9tZGlvZGV2KTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ3NS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvbWRpby9vZl9tZGlvLmM9NTI9c3RhdGljIGludCBvZl9tZGlvYnVzX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbWlpX2J1cyAqbWRpbyxcbi0tXG5kcml2ZXJzL25ldC9tZGlvL29mX21kaW8uYy02OC1cdC8qIEFsbCBkYXRhIGlzIG5vdyBzdG9yZWQgaW4gdGhlIG1kaW9kZXYgc3RydWN0OyByZWdpc3RlciBpdC4gKi9cbmRyaXZlcnMvbmV0L21kaW8vb2ZfbWRpby5jOjY5Olx0cmMgPSBtZGlvX2RldmljZV9yZWdpc3RlcihtZGlvZGV2KTtcbmRyaXZlcnMvbmV0L21kaW8vb2ZfbWRpby5jLTcwLVx0aWYgKHJjKSB7XG4tLVxuZHJpdmVycy9uZXQvcGNzL3Bjcy14cGNzLXBsYXQuYz0zMzc9c3RhdGljIGludCB4cGNzX3BsYXRfaW5pdF9kZXYoc3RydWN0IGR3X3hwY3NfcGxhdCAqcHhwY3MpXG4tLVxuZHJpdmVycy9uZXQvcGNzL3Bjcy14cGNzLXBsYXQuYy0zNTYtXG5kcml2ZXJzL25ldC9wY3MvcGNzLXhwY3MtcGxhdC5jOjM1NzpcdHJldCA9IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKG1kaW9kZXYpO1xuZHJpdmVycy9uZXQvcGNzL3Bjcy14cGNzLXBsYXQuYy0zNTgtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmM9MTA3ND1zdGF0aWMgaW50IGFuODgxMWhiX3Byb2JlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4tLVxuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmMtMTA5Ny1cbmRyaXZlcnMvbmV0L3BoeS9haXJfZW44ODExaC5jOjEwOTg6XHRyZXQgPSBtZGlvX2RldmljZV9yZWdpc3RlcihtZGlvZGV2KTtcbmRyaXZlcnMvbmV0L3BoeS9haXJfZW44ODExaC5jLTEwOTktXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTI2LS8qKlxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6Mjc6ICogbWRpb19kZXZpY2VfcmVnaXN0ZXJfcmVzZXQgLSBSZWFkIGFuZCBpbml0aWFsaXplIHRoZSByZXNldCBwcm9wZXJ0aWVzIG9mXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0yOC0gKlx0XHRcdFx0YW4gbWRpbyBkZXZpY2Vcbi0tXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0zMi0gKi9cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jOjMzOnN0YXRpYyBpbnQgbWRpb19kZXZpY2VfcmVnaXN0ZXJfcmVzZXQoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMzQte1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jPTE0Mz1FWFBPUlRfU1lNQk9MKG1kaW9fZGV2aWNlX2NyZWF0ZSk7XG4tLVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTQ1LS8qKlxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MTQ2OiAqIG1kaW9fZGV2aWNlX3JlZ2lzdGVyIC0gUmVnaXN0ZXIgdGhlIG1kaW8gZGV2aWNlIG9uIHRoZSBNRElPIGJ1c1xuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTQ3LSAqIEBtZGlvZGV2OiBtZGlvX2RldmljZSBzdHJ1Y3R1cmUgdG8gYmUgYWRkZWQgdG8gdGhlIE1ESU8gYnVzXG4tLVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTUwLSAqL1xuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MTUxOmludCBtZGlvX2RldmljZV9yZWdpc3RlcihzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNTIte1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE3Mi19XG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxNzM6RVhQT1JUX1NZTUJPTChtZGlvX2RldmljZV9yZWdpc3Rlcik7XG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNzQtXG4tLVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTgwLSAqIFRoaXMgZG9lc24mIzM5O3QgZnJlZSB0aGUgbWRpb19kZXZpY2UgaXRzZWxmLCBpdCBtZXJlbHkgcmV2ZXJzZXMgdGhlIGVmZmVjdHNcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jOjE4MTogKiBvZiBtZGlvX2RldmljZV9yZWdpc3RlcigpLiBVc2UgbWRpb19kZXZpY2VfZnJlZSgpIHRvIGZyZWUgdGhlIGRldmljZVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTgyLSAqIGFmdGVyIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi5cbi0tXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYz0xOTE9aW50IG1kaW9idXNfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2Rldilcbi0tXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xOTgtXHRpZiAobWRpb2Rldi1cdTAwM2VmbGFncyBcdTAwMjYgTURJT19ERVZJQ0VfRkxBR19QSFkpIHtcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jOjE5OTpcdFx0ZXJyID0gbWRpb19kZXZpY2VfcmVnaXN0ZXJfcmVzZXQobWRpb2Rldik7XG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0yMDAtXHRcdGlmIChlcnIpXG4tLVxuaW5jbHVkZS9saW51eC9tZGlvLmg9OTU9c3RydWN0IG1kaW9fZGV2aWNlICptZGlvX2RldmljZV9jcmVhdGUoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IGFkZHIpO1xuaW5jbHVkZS9saW51eC9tZGlvLmg6OTY6aW50IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2Rldik7XG5pbmNsdWRlL2xpbnV4L21kaW8uaC05Ny12b2lkIG1kaW9fZGV2aWNlX3JlbW92ZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNTgwNgoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDExNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNRElPIEJ1cyBEaXNjb3ZlcnkgVmlhIFN5emthbGxlcioqCgpPa2F5LCBzbyBJJiMzOTttIHRoaW5raW5nIGFib3V0IGhvdyB3ZSBjYW4gbGV2ZXJhZ2UgU3l6a2FsbGVyIGZvciBmdXp6aW5nIHRoaXMgTURJTyBidXMgZHJpdmVyLiBUaGUga2V5IGhlcmUgaXMgdGhlIGBvZl9tZGlvYnVzX3JlZ2lzdGVyX2RldmljZWAgZnVuY3Rpb24uIFRoYXQgc3Ryb25nbHkgc3VnZ2VzdHMgZGV2aWNlcyBhcmUgcmVnaXN0ZXJlZCBmcm9tIHRoZSBkZXZpY2UgdHJlZSwgcmlnaHQ/IEFuZCB0aGVuIGl0IGhpdCBtZTogU3l6a2FsbGVyIGNhbiBpbmplY3QgZGV2aWNlIHRyZWUgb3ZlcmxheXMhIFRoYXQgY291bGQgYmUgYSBkaXJlY3QgcGF0aCB0byBjb250cm9sbGluZyBvdXIgTURJTyBkZXZpY2VzLgoKTm93LCBJIG5lZWQgdG8gdmVyaWZ5LiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBTeXprYWxsZXIgKmRvZXNuJiMzOTt0KiBkbyBkZXZpY2UgdHJlZSBvdmVybGF5cyBpbiB0aGUgdXBzdHJlYW0ga2VybmVsLCBidXQgSSBjb3VsZCBiZSB3cm9uZywgbWF5YmUgaXQgZG9lcz8gTmVlZCB0byBjb25maXJtIHRoYXQuCgpBbHJpZ2h0LCB3aGF0IGFib3V0IGV4aXN0aW5nIFVTQiBmdXp6aW5nIHByaW1pdGl2ZXM/IEkgc2VlbSB0byByZWNhbGwgYHN5el91c2JfY29ubmVjdGAgYW5kIGBzeXpfdXNiX2Nvbm5lY3RfYXRoOWtgIGV0Yy4gSSB3b25kZXIsIGRvZXMgYW55IFVTQiBkZXZpY2Ugb3V0IHRoZXJlIGFjdHVhbGx5IHJlZ2lzdGVyIGFuIE1ESU8gYnVzIGFzIHBhcnQgb2YgaXRzIGRyaXZlciBpbml0aWFsaXphdGlvbj8gSWYgd2UgY2FuIGZpbmQgb25lLCBhbmQgU3l6a2FsbGVyIGNhbiBjb250cm9sIGl0cyBpbnN0YW50aWF0aW9uIGFuZCBpbnRlcmFjdGlvbiwgd2UgbWlnaHQgaGF2ZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuCgpUaW1lIHRvIGRpdmUgaW50byB0aGUga2VybmVsIHNvdXJjZS4gTGV0JiMzOTtzIHN0YXJ0IHdpdGggdGhlIGBkcml2ZXJzL25ldC91c2IvYCBkaXJlY3RvcnkuIFRoYXQmIzM5O3MgdGhlIG1vc3QgbGlrZWx5IHBsYWNlIHRvIGZpbmQgYSBVU0IgZGV2aWNlIHRoYXQgY291bGQgYmUgcmVsZXZhbnQsIGVzcGVjaWFsbHkgaWYgaXQmIzM5O3MgbmV0d29yay1yZWxhdGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttZGlvYnVzX3JlZ2lzdGVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdXNiLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM9NjY5PXN0YXRpYyBpbnQgYXg4ODc3Ml9pbml0X21kaW8oc3RydWN0IHVzYm5ldCAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuYy02ODYtXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM6Njg3Olx0cmV0ID0gbWRpb2J1c19yZWdpc3Rlcihwcml2LVx1MDAzZW1kaW8pO1xuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jLTY4OC1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC91c2IvYXg4ODE3MmEuYz02MT1zdGF0aWMgaW50IGF4ODgxNzJhX2luaXRfbWRpbyhzdHJ1Y3QgdXNibmV0ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvdXNiL2F4ODgxNzJhLmMtNzktXG5kcml2ZXJzL25ldC91c2IvYXg4ODE3MmEuYzo4MDpcdHJldCA9IG1kaW9idXNfcmVnaXN0ZXIocHJpdi1cdTAwM2VtZGlvKTtcbmRyaXZlcnMvbmV0L3VzYi9heDg4MTcyYS5jLTgxLVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmM9MjA5MT1zdGF0aWMgaW50IGxhbjc4eHhfbWRpb19pbml0KHN0cnVjdCBsYW43OHh4X25ldCAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMtMjEyMS1cdG5vZGUgPSBvZl9nZXRfY2hpbGRfYnlfbmFtZShkZXYtXHUwMDNldWRldi1cdTAwM2VkZXYub2Zfbm9kZSwgXCYjMzQ7bWRpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jOjIxMjI6XHRyZXQgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKGRldi1cdTAwM2VtZGlvYnVzLCBub2RlKTtcbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMtMjEyMy1cdG9mX25vZGVfcHV0KG5vZGUpO1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9zbXNjOTV4eC5jPTExNDc9c3RhdGljIGludCBzbXNjOTV4eF9iaW5kKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpXG4tLVxuZHJpdmVycy9uZXQvdXNiL3Ntc2M5NXh4LmMtMTI0MS1cbmRyaXZlcnMvbmV0L3VzYi9zbXNjOTV4eC5jOjEyNDI6XHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKHBkYXRhLVx1MDAzZW1kaW9idXMpO1xuZHJpdmVycy9uZXQvdXNiL3Ntc2M5NXh4LmMtMTI0My1cdGlmIChyZXQpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTY3NjUKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAxNjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTURJTyBEZXZpY2UgUmVnaXN0cmF0aW9uOiBBIEJyZWFrZG93bioqCgpPa2F5LCBzbyBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIE1ESU8gZHJpdmVyIHNpdHVhdGlvbiwgYW5kIGl0IHNlZW1zIGxpa2UgdGhlIGBsYW43OHh4YCBkcml2ZXIgaXMgbGV2ZXJhZ2luZyBgb2ZfbWRpb2J1c19yZWdpc3RlcmAuIFRoYXQmIzM5O3MgdGhlIG9uZSB0aGF0IGhhbmRsZXMgcmVnaXN0ZXJpbmcgTURJTyBkZXZpY2VzIGRpcmVjdGx5IGZyb20gdGhlIGRldmljZSB0cmVlLCB3aGljaCBpcyBlZmZpY2llbnQuIEJ1dCB0aGVuIEkgc2VlIGRyaXZlcnMgbGlrZSBgYXNpeF9kZXZpY2VzLmNgLCBgYXg4ODE3MmEuY2AsIGFuZCBgc21zYzk1eHguY2AgYXJlIHVzaW5nIGBtZGlvYnVzX3JlZ2lzdGVyYC4gTm93LCB0aGlzIGlzIHdoZXJlIGl0IGdldHMgYSBsaXR0bGUgZnV6enkuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGBtZGlvYnVzX3JlZ2lzdGVyYCBhdXRvbWF0aWNhbGx5IHNjYW5zIHRoZSBNRElPIGJ1cywgbG9va3MgZm9yIFBIWXMsIGFuZCByZWdpc3RlcnMgdGhlbS4gSG93ZXZlciwgZG9lcyBpdCBoYW5kbGUganVzdCAqYW55KiBNRElPIGRldmljZT8gTm8sIGl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgcHJpbWFyaWx5IGRlc2lnbmVkIGZvciBQSFlzLCB0aG9zZSB0aGF0IHJlc3BvbmQgdG8gTURJTyByZWFkcy4KCk5vdywgd2FpdCBhIHNlY29uZC4uLiB3aGF0IGFib3V0IHNvbWV0aGluZyBsaWtlIHRoZSBgbXY4OGU2eHh4YD8gVGhhdCYjMzk7cyBub3QgYSAqUEhZKiBkcml2ZXIsIGl0JiMzOTtzIGFuIE1ESU8gZHJpdmVyIGluIGl0cyBvd24gcmlnaHQsIGEgc3dpdGNoIGNvbnRyb2xsZXIhIFNvLCBob3cgZG9lcyAqaXQqIGdldCByZWdpc3RlcmVkPyBJdCBzZWVtcyB0byBiZSBkb2luZyBpdCB0aHJvdWdoIHRoZSBgbWRpb19kZXZpY2VfaWRgIG9yIGRldmljZSB0cmVlLCBidXQgSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgdGhlIGBtdjg4ZTZ4eHhfZHJpdmVyYCBtYXRjaCB0YWJsZSB0byBiZSBzdXJlLiBUaGF0IHNob3VsZCBjb25maXJtIHRoZSBtYXRjaGluZyBtZXRob2QgZm9yIHRoYXQgZHJpdmVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdjg4ZTZ4eHhfb2ZfbWF0Y2gmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz03NDk0PXN0YXRpYyB2b2lkIG12ODhlNnh4eF9zaHV0ZG93bihzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUwNS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1MDY6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXY4OGU2eHh4X29mX21hdGNoW10gPSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTA3LVx0e1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1MjEtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTIyOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG12ODhlNnh4eF9vZl9tYXRjaCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTIzLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzUyND1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIG12ODhlNnh4eF9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyOS1cdFx0Lm5hbWUgPSBcJiMzNDttdjg4ZTYwODVcJiMzNDssXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTMwOlx0XHQub2ZfbWF0Y2hfdGFibGUgPSBtdjg4ZTZ4eHhfb2ZfbWF0Y2gsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTMxLVx0XHQucG0gPSBcdTAwMjZtdjg4ZTZ4eHhfcG1fb3BzLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNzY3NwoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDE2NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIEFzc2Vzc21lbnQqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYW5kIHRoZSBmYWN0IHRoYXQgdGhlIGRyaXZlciBvbmx5IGhhcyBhbiBgb2ZfbWF0Y2hfdGFibGVgIGlzIGEgcHJldHR5IGJpZyBjbHVlLiBJdCAqc3Ryb25nbHkqIHN1Z2dlc3RzIHRoYXQgdGhlIG9ubHkgd2F5IHRvIGdldCB0aGlzIHRoaW5nIHRvIHByb2JlIGlzIHRocm91Z2ggdGhlIGRldmljZSB0cmVlLiBUaGF0IG1lYW5zIHNvbWV0aGluZyBpcyBmZWVkaW5nIGEgZGV2aWNlIHRyZWUgZGVzY3JpcHRpb24gdG8gdGhlIGtlcm5lbCwgYW5kIHRoYXTigJlzIHdoYXQmIzM5O3MgdHJpZ2dlcmluZyB0aGUgZHJpdmVyLiBUaGUgZmFjdCB0aGF0IFN5emthbGxlciBmb3VuZCB0aGlzIGlzIHdoYXQgaGFzIG1lIHJlYWxseSB0aGlua2luZy4gRGlkIFN5emthbGxlciBtYW5hZ2UgdG8gaW5qZWN0IGEgZGV2aWNlIHRyZWUgb3ZlcmxheSwgb3IgaXMgaXQgcnVubmluZyBvbiBhIGJvYXJkIHRoYXQgKmFscmVhZHkqIGhhcyB0aGlzIHBhcnRpY3VsYXIgZGV2aWNlIHRyZWUgbm9kZSBiYWtlZCBpbj8KCldhaXQgYSBzZWNvbmQsIFN5emthbGxlciBkb2VzbiYjMzk7dCB0eXBpY2FsbHkgaW5qZWN0IG92ZXJsYXlzIHdoZW4gdGVzdGluZyB0aGUgdXBzdHJlYW0ga2VybmVsLCBzbyB0aGF0IHNlZW1zIHVubGlrZWx5LiBJdCYjMzk7cyBub3Qgb3V0IG9mIHRoZSBxdWVzdGlvbiB0aGF0IGl0JiMzOTtzIHVzaW5nIGEgY3VzdG9tIGJvYXJkLCBidXQgZ2l2ZW4gU3l6a2FsbGVyJiMzOTtzIHR5cGljYWwgY29uZmlndXJhdGlvbiBpdCYjMzk7cyB1c3VhbGx5IFFFTVUuIFRoaW5raW5nIGFib3V0IGl0IG1vcmUsIFFFTVUgaGFzIHRoZSBgdmlydGAgbWFjaGluZSB3aGljaCBkb2VzIHVzZSBhIGRldmljZSB0cmVlLCBidXQgSSBkb24mIzM5O3QgcmVjYWxsIHNlZWluZyBgbXY4OGU2eHh4YCBpbiB0aGUgZGV2aWNlIHRyZWUgZm9yIHRoYXQgbWFjaGluZS4KCk9rYXksIGxldCYjMzk7cyBzdGVwIGJhY2suIElzIHRoZXJlICphbnkqIG90aGVyIGNvbmNlaXZhYmxlIHdheSB0aGlzIGRyaXZlciBjb3VsZCBiZSBwcm9iZWQ/IEFyZSB0aGVyZSBwbGF0Zm9ybSBkYXRhIG9yIG90aGVyIG1hdGNoIHRhYmxlcyBkZWZpbmVkIHNvbWV3aGVyZSB0aGF0IEkmIzM5O20gb3Zlcmxvb2tpbmc/IEkgbmVlZCB0byBjaGVjayB0aG9zZSBxdWlja2x5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdjg4ZTZ4eHhfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzUyMj1NT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtdjg4ZTZ4eHhfb2ZfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyMy1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1MjQ6c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdjg4ZTZ4eHhfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyNS1cdC5wcm9iZVx0PSBtdjg4ZTZ4eHhfcHJvYmUsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzNC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1MzU6bWRpb19tb2R1bGVfZHJpdmVyKG12ODhlNnh4eF9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzNi1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTg0MTEKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiAyMzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBhIFBvdGVudGlhbCBTeXprYWxsZXIgRXhwbG9pdCBQYXRoKioKCk9rYXksIHNvIEkmIzM5O20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaG93IHN5emthbGxlciBtaWdodCBiZSB0cmlnZ2VyaW5nIHRoaXMgaXNzdWUuIE15IGluaXRpYWwgdGhvdWdodCBpcywgY291bGQgaXQgYmUgdXNpbmcgYGRzYV9sb29wYD8gVGhhdCYjMzk7cyBhIG1vY2t1cCBkcml2ZXIsIHJpZ2h0PyBCdXQgaXQgZG9lc24mIzM5O3QgZXZlbiB0b3VjaCBgbXY4OGU2eHh4YC4gSG1tLCBtYXliZSBpdCYjMzk7cyBjcmVhdGluZyBhIHZpcnR1YWwgSTJDIG9yIE1ESU8gYnVzIHNvbWVob3c/IElzIGl0IGluc3RhbnRpYXRpbmcgYSBuZXcgZGV2aWNlIHRoYXQgd2F5PyBIb2xkIG9uLCBJIGRvbiYjMzk7dCByZWNhbGwgc2VlaW5nIGEgYG5ld19kZXZpY2VgIGNhbGwgZm9yIE1ESU8uIFRoYXQgc2VlbXMgdW5saWtlbHkuCgpDb3VsZCB0aGVyZSBiZSBhIHdheSB0byBjcmVhdGUgYW4gTURJTyBkZXZpY2UgdGhyb3VnaCBuZXRsaW5rPyBJIHNob3VsZCBwcm9iYWJseSBjaGVjayB0aGUgYG5ldC9kc2EvYCBhbmQgYGRyaXZlcnMvbmV0L21kaW8vYCBkaXJlY3Rvcmllcy4gTm8sIE1ESU8gZGV2aWNlcyBhcmUgdHlwaWNhbGx5IGJyb3VnaHQgdXAgdmlhIGRldmljZSB0cmVlLCBBQ1BJLCBvciBib2FyZCBmaWxlcy4KCldhaXQsIGlzbiYjMzk7dCB0aGVyZSBzb21ldGhpbmcgYWJvdXQgc3l6a2FsbGVyIGJlaW5nIGFibGUgdG8gaW5qZWN0IGRldmljZSB0cmVlIG92ZXJsYXlzPyBCaW5nbyEgSSB0aGluayB0aGF0JiMzOTtzIGl0ISBTeXprYWxsZXIgaGFzIHRoZSBhYmlsaXR5IHRvIGxvYWQgZGV2aWNlIHRyZWUgb3ZlcmxheXMsIHByb2JhYmx5IHRocm91Z2ggYHN5el9tb3VudF9pbWFnZWAgb3Igc29tZXRoaW5nIHNpbWlsYXIsIG9yIG1heWJlIHZpYSBgY29uZmlnZnNgPyBMZXQmIzM5O3Mgc2VlLi4uIFllcCwgdGhhdCYjMzk7cyBpdCEgYENPTkZJR19PRl9PVkVSTEFZYCBhbmQgYGNvbmZpZ2ZzYCBjb21iaW5lZCBjYW4gZGVmaW5pdGVseSBiZSB1c2VkIHRvIGxvYWQgZGV2aWNlIHRyZWUgb3ZlcmxheXMhCgpBbHJpZ2h0LCBuZXh0IHN0ZXA6IGxldCYjMzk7cyB2ZXJpZnkgdGhhdCBgY29uZmlnZnNgIGJhc2VkIGRldmljZSB0cmVlIG92ZXJsYXlzIGFyZSBpbmRlZWQgc3VwcG9ydGVkLiBUaGF0IHNlZW1zIGxpa2UgdGhlIG1vc3QgcHJvbWlzaW5nIGF2ZW51ZSB0byBleHBsb3JlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2R0X292ZXJsYXkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5MDAyCgkJCQkJCQlvdXRwdXQ6IDI3CgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhlIHRob3VnaHQgcHJvY2VzcyB1bmZvbGRzOgoKKipBIFJlYWxpemF0aW9uIEFib3V0IE92ZXJsYXkgRHJpdmVycyoqCgpIbW0sIHdhaXQgYSBzZWNvbmQuLi4gYGRyaXZlcnMvb2Yvb3ZlcmxheS5jYC4uLiB0aGF0IGFjdHVhbGx5IGV4aXN0cy4gSSBjb21wbGV0ZWx5IHNwYWNlZCBvbiB0aGF0LiBJJiMzOTt2ZSBiZWVuIHRoaW5raW5nIGFib3V0IHRoaXMgcHJvYmxlbSBpbiB0ZXJtcyBvZiBzb21lIG5ldywgY3VzdG9tIHNvbHV0aW9uLCBvciBtYXliZSBhbiBhZGFwdGF0aW9uIG9mIGFub3RoZXIgZHJpdmVyLCBidXQgKnRoYXQqIGZpbGUuLi4gdGhhdCBjaGFuZ2VzIHRoaW5ncy4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBzaGlmdCBpbiBwZXJzcGVjdGl2ZS4gVGhhdCBtZWFucyB0aGUgZnJhbWV3b3JrIGZvciBoYW5kbGluZyBkZXZpY2UgdHJlZSBvdmVybGF5cyBpcyBhbHJlYWR5IHRoZXJlLCBiYWtlZCBpbnRvIHRoZSBrZXJuZWwgaW4gYSBkZWRpY2F0ZWQgbG9jYXRpb24hIFRoaXMgc2lnbmlmaWNhbnRseSBpbXBhY3RzIG15IGluaXRpYWwgZGVzaWduIGNvbnNpZGVyYXRpb25zIGFuZCBub3cgb3BlbnMgdXAgYSBkaWZmZXJlbnQgc2V0IG9mIHBvc3NpYmlsaXRpZXMgZm9yIHRoaXMgdGFzaywgSSBuZWVkIHRvIGdvIGxvb2sgaW50byB0aGF0Li4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O29mX292ZXJsYXkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL29mLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYz0yNT1FWFBPUlRfU1lNQk9MX0dQTChvZl9yb290X2t1bml0X3NraXApO1xuLS1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTI4LVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6Mjk6c3RhdGljIHZvaWQgb2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXRfZXhpdCh2b2lkICpvdmNzX2lkKVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtMzAte1xuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6MzE6XHRvZl9vdmVybGF5X3JlbW92ZShvdmNzX2lkKTtcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTMyLX1cbi0tXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0zNC0vKipcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjM1OiAqIG9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0KCkgLSBUZXN0IG1hbmFnZWQgb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtMzYtICogQHRlc3Q6IHRlc3QgY29udGV4dFxuLS1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQwLSAqXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzo0MTogKiBKdXN0IGxpa2Ugb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSwgZXhjZXB0IHRoZSBvdmVybGF5IGlzIG1hbmFnZWQgYnkgdGhlIHRlc3RcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjQyOiAqIGNhc2UgYW5kIGlzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZCB3aXRoIG9mX292ZXJsYXlfcmVtb3ZlKCkgYWZ0ZXIgdGhlIHRlc3RcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQzLSAqIGNhc2UgY29uY2x1ZGVzLlxuLS1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQ2LSAqL1xuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6NDc6aW50IG9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0KHN0cnVjdCBrdW5pdCAqdGVzdCwgdm9pZCAqb3ZlcmxheV9mZHQsXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy00OC1cdFx0XHQgICAgICAgdTMyIG92ZXJsYXlfZmR0X3NpemUsIGludCAqb3Zjc19pZClcbi0tXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy01OC1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjU5Olx0cmV0ID0gb2Zfb3ZlcmxheV9mZHRfYXBwbHkob3ZlcmxheV9mZHQsIG92ZXJsYXlfZmR0X3NpemUsXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy02MC1cdFx0XHRcdCAgIG92Y3NfaWQsIE5VTEwpO1xuLS1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTY1LVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6NjY6XHRyZXR1cm4ga3VuaXRfYWRkX2FjdGlvbl9vcl9yZXNldCh0ZXN0LCBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdF9leGl0LFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNjctXHRcdFx0XHRcdCBjb3B5X2lkKTtcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTY4LX1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjY5OkVYUE9SVF9TWU1CT0xfR1BMKG9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0KTtcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTcwLVxuLS1cbmRyaXZlcnMvb2Yvb2ZfcHJpdmF0ZS5oPTEwMD12b2lkIF9fb2ZfcGhhbmRsZV9jYWNoZV9pbnZfZW50cnkocGhhbmRsZSBoYW5kbGUpO1xuLS1cbmRyaXZlcnMvb2Yvb2ZfcHJpdmF0ZS5oLTEwMi0jaWYgZGVmaW5lZChDT05GSUdfT0ZfT1ZFUkxBWSlcbmRyaXZlcnMvb2Yvb2ZfcHJpdmF0ZS5oOjEwMzp2b2lkIG9mX292ZXJsYXlfbXV0ZXhfbG9jayh2b2lkKTtcbmRyaXZlcnMvb2Yvb2ZfcHJpdmF0ZS5oOjEwNDp2b2lkIG9mX292ZXJsYXlfbXV0ZXhfdW5sb2NrKHZvaWQpO1xuZHJpdmVycy9vZi9vZl9wcml2YXRlLmgtMTA1LSNlbHNlXG5kcml2ZXJzL29mL29mX3ByaXZhdGUuaDoxMDY6c3RhdGljIGlubGluZSB2b2lkIG9mX292ZXJsYXlfbXV0ZXhfbG9jayh2b2lkKSB7fTtcbmRyaXZlcnMvb2Yvb2ZfcHJpdmF0ZS5oOjEwNzpzdGF0aWMgaW5saW5lIHZvaWQgb2Zfb3ZlcmxheV9tdXRleF91bmxvY2sodm9pZCkge307XG5kcml2ZXJzL29mL29mX3ByaXZhdGUuaC0xMDgtI2VuZGlmXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmM9Njk9c3RydWN0IG92ZXJsYXlfY2hhbmdlc2V0IHtcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy03NC1cdHN0cnVjdCBkZXZpY2Vfbm9kZSAqb3ZlcmxheV9yb290O1xuZHJpdmVycy9vZi9vdmVybGF5LmM6NzU6XHRlbnVtIG9mX292ZXJsYXlfbm90aWZ5X2FjdGlvbiBub3RpZnlfc3RhdGU7XG5kcml2ZXJzL29mL292ZXJsYXkuYy03Ni1cdGludCBjb3VudDtcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYz0xMDQ9c3RhdGljIGludCBidWlsZF9jaGFuZ2VzZXRfbmV4dF9sZXZlbChzdHJ1Y3Qgb3ZlcmxheV9jaGFuZ2VzZXQgKm92Y3MsXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA4LSAqIG9mX3Jlc29sdmVfcGhhbmRsZXMoKSBmaW5kcyB0aGUgbGFyZ2VzdCBwaGFuZGxlIGluIHRoZSBsaXZlIHRyZWUuXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDk6ICogb2Zfb3ZlcmxheV9hcHBseSgpIG1heSBhZGQgYSBsYXJnZXIgcGhhbmRsZSB0byB0aGUgbGl2ZSB0cmVlLlxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTEwLSAqIERvIG5vdCBhbGxvdyByYWNlIGJldHdlZW4gdHdvIG92ZXJsYXlzIGJlaW5nIGFwcGxpZWQgc2ltdWx0YW5lb3VzbHk6XG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMTE6ICogICAgbXV0ZXhfbG9jayhcdTAwMjZvZl9vdmVybGF5X3BoYW5kbGVfbXV0ZXgpXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMTItICogICAgb2ZfcmVzb2x2ZV9waGFuZGxlcygpXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMTM6ICogICAgb2Zfb3ZlcmxheV9hcHBseSgpXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMTQ6ICogICAgbXV0ZXhfdW5sb2NrKFx1MDAyNm9mX292ZXJsYXlfcGhhbmRsZV9tdXRleClcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExNS0gKi9cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjExNjpzdGF0aWMgREVGSU5FX01VVEVYKG9mX292ZXJsYXlfcGhhbmRsZV9tdXRleCk7XG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMTctXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMTg6dm9pZCBvZl9vdmVybGF5X211dGV4X2xvY2sodm9pZClcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExOS17XG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMjA6XHRtdXRleF9sb2NrKFx1MDAyNm9mX292ZXJsYXlfcGhhbmRsZV9tdXRleCk7XG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjEtfVxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTIyLVxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTIzOnZvaWQgb2Zfb3ZlcmxheV9tdXRleF91bmxvY2sodm9pZClcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyNC17XG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMjU6XHRtdXRleF91bmxvY2soXHUwMDI2b2Zfb3ZlcmxheV9waGFuZGxlX211dGV4KTtcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyNi19XG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmM9MTMxPXN0YXRpYyBCTE9DS0lOR19OT1RJRklFUl9IRUFEKG92ZXJsYXlfbm90aWZ5X2NoYWluKTtcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMzMtLyoqXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMzQ6ICogb2Zfb3ZlcmxheV9ub3RpZmllcl9yZWdpc3RlcigpIC0gUmVnaXN0ZXIgbm90aWZpZXIgZm9yIG92ZXJsYXkgb3BlcmF0aW9uc1xuZHJpdmVycy9vZi9vdmVybGF5LmMtMTM1LSAqIEBuYjpcdFx0Tm90aWZpZXIgYmxvY2sgdG8gcmVnaXN0ZXJcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xNDQtICovXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxNDU6aW50IG9mX292ZXJsYXlfbm90aWZpZXJfcmVnaXN0ZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYilcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE0Ni17XG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTQ4LX1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjE0OTpFWFBPUlRfU1lNQk9MX0dQTChvZl9vdmVybGF5X25vdGlmaWVyX3JlZ2lzdGVyKTtcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE1MC1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE1MS0vKipcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjE1MjogKiBvZl9vdmVybGF5X25vdGlmaWVyX3VucmVnaXN0ZXIoKSAtIFVucmVnaXN0ZXIgbm90aWZpZXIgZm9yIG92ZXJsYXkgb3BlcmF0aW9uc1xuZHJpdmVycy9vZi9vdmVybGF5LmMtMTUzLSAqIEBuYjpcdFx0Tm90aWZpZXIgYmxvY2sgdG8gdW5yZWdpc3RlclxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTU0LSAqL1xuZHJpdmVycy9vZi9vdmVybGF5LmM6MTU1OmludCBvZl9vdmVybGF5X25vdGlmaWVyX3VucmVnaXN0ZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYilcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE1Ni17XG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTU4LX1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjE1OTpFWFBPUlRfU1lNQk9MX0dQTChvZl9vdmVybGF5X25vdGlmaWVyX3VucmVnaXN0ZXIpO1xuZHJpdmVycy9vZi9vdmVybGF5LmMtMTYwLVxuZHJpdmVycy9vZi9vdmVybGF5LmM9MTYxPXN0YXRpYyBpbnQgb3ZlcmxheV9ub3RpZnkoc3RydWN0IG92ZXJsYXlfY2hhbmdlc2V0ICpvdmNzLFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTYyOlx0XHRlbnVtIG9mX292ZXJsYXlfbm90aWZ5X2FjdGlvbiBhY3Rpb24pXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xNjMte1xuZHJpdmVycy9vZi9vdmVybGF5LmM6MTY0Olx0c3RydWN0IG9mX292ZXJsYXlfbm90aWZ5X2RhdGEgbmQ7XG5kcml2ZXJzL29mL292ZXJsYXkuYy0xNjUtXHRpbnQgaSwgcmV0O1xuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE3OS1cdFx0XHRwcl9lcnIoXCYjMzQ7b3ZlcmxheSBjaGFuZ2VzZXQgJXMgbm90aWZpZXIgZXJyb3IgJWQsIHRhcmdldDogJXBPRlxcblwmIzM0OyxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjE4MDpcdFx0XHQgICAgICAgb2Zfb3ZlcmxheV9hY3Rpb25fbmFtZShhY3Rpb24pLCByZXQsIG5kLnRhcmdldCk7XG5kcml2ZXJzL29mL292ZXJsYXkuYy0xODEtXHRcdFx0cmV0dXJuIHJldDtcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYz04NTk9c3RhdGljIHZvaWQgZnJlZV9vdmVybGF5X2NoYW5nZXNldChzdHJ1Y3Qgb3ZlcmxheV9jaGFuZ2VzZXQgKm92Y3MpXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtODk5LSAqXG5kcml2ZXJzL29mL292ZXJsYXkuYzo5MDA6ICogb2Zfb3ZlcmxheV9hcHBseSgpIC0gQ3JlYXRlIGFuZCBhcHBseSBhbiBvdmVybGF5IGNoYW5nZXNldFxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTAxLSAqIEBvdmNzOlx0b3ZlcmxheSBjaGFuZ2VzZXRcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy05MjItICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIG9yIGEgbmVnYXRpdmUgZXJyb3IgbnVtYmVyLiAgT24gZXJyb3IgcmV0dXJuLFxuZHJpdmVycy9vZi9vdmVybGF5LmM6OTIzOiAqIHRoZSBjYWxsZXIgb2Ygb2Zfb3ZlcmxheV9hcHBseSgpIG11c3QgY2FsbCBmcmVlX292ZXJsYXlfY2hhbmdlc2V0KCkuXG5kcml2ZXJzL29mL292ZXJsYXkuYy05MjQtICovXG5kcml2ZXJzL29mL292ZXJsYXkuYy05MjUtXG5kcml2ZXJzL29mL292ZXJsYXkuYzo5MjY6c3RhdGljIGludCBvZl9vdmVybGF5X2FwcGx5KHN0cnVjdCBvdmVybGF5X2NoYW5nZXNldCAqb3ZjcyxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTkyNy1cdFx0XHQgICAgY29uc3Qgc3RydWN0IGRldmljZV9ub2RlICpiYXNlKVxuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk4MC0vKipcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjk4MTogKiBvZl9vdmVybGF5X2ZkdF9hcHBseSgpIC0gQ3JlYXRlIGFuZCBhcHBseSBhbiBvdmVybGF5IGNoYW5nZXNldFxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTgyLSAqIEBvdmVybGF5X2ZkdDpcdHBvaW50ZXIgdG8gb3ZlcmxheSBGRFRcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy05ODgtICpcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjk4OTogKiBTZWUgb2Zfb3ZlcmxheV9hcHBseSgpIGZvciBpbXBvcnRhbnQgYmVoYXZpb3IgaW5mb3JtYXRpb24uXG5kcml2ZXJzL29mL292ZXJsYXkuYy05OTAtICpcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk5MS0gKiBSZXR1cm46IDAgb24gc3VjY2Vzcywgb3IgYSBuZWdhdGl2ZSBlcnJvciBudW1iZXIuICAqQHJldF9vdmNzX2lkIGlzIHNldCB0b1xuZHJpdmVycy9vZi9vdmVybGF5LmM6OTkyOiAqIHRoZSB2YWx1ZSBvZiBvdmVybGF5IGNoYW5nZXNldCBpZCwgd2hpY2ggY2FuIGJlIHBhc3NlZCB0byBvZl9vdmVybGF5X3JlbW92ZSgpXG5kcml2ZXJzL29mL292ZXJsYXkuYy05OTMtICogdG8gcmVtb3ZlIHRoZSBvdmVybGF5LlxuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk5Ni0gKiBsaWtlbHkgaWYgYW4gT0ZfT1ZFUkxBWV9QT1NUX0FQUExZIG5vdGlmaWVyIHJldHVybnMgYW4gZXJyb3IuICBJbiB0aGlzIGNhc2VcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjk5NzogKiB0aGUgY2FsbGVyIHNob3VsZCBjYWxsIG9mX292ZXJsYXlfcmVtb3ZlKCkgd2l0aCB0aGUgdmFsdWUgaW4gKkByZXRfb3Zjc19pZC5cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk5OC0gKi9cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk5OS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEwMDA6aW50IG9mX292ZXJsYXlfZmR0X2FwcGx5KGNvbnN0IHZvaWQgKm92ZXJsYXlfZmR0LCB1MzIgb3ZlcmxheV9mZHRfc2l6ZSxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwMDEtXHRcdFx0IGludCAqcmV0X292Y3NfaWQsIGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqYmFzZSlcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDMwLVxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTAzMTpcdG9mX292ZXJsYXlfbXV0ZXhfbG9jaygpO1xuZHJpdmVycy9vZi9vdmVybGF5LmMtMTAzMi1cdG11dGV4X2xvY2soXHUwMDI2b2ZfbXV0ZXgpO1xuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwNzEtXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDcyOlx0cmV0ID0gb2Zfb3ZlcmxheV9hcHBseShvdmNzLCBiYXNlKTtcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwNzMtXHQvKlxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTA3NDpcdCAqIElmIG9mX292ZXJsYXlfYXBwbHkoKSBlcnJvciwgY2FsbGluZyBmcmVlX292ZXJsYXlfY2hhbmdlc2V0KCkgbWF5XG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDc1LVx0ICogcmVzdWx0IGluIGEgbWVtb3J5IGxlYWsgaWYgdGhlIGFwcGx5IHBhcnRseSBzdWNjZWVkZWQsIHNvIGRvIE5PVFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTA3NjpcdCAqIGdvdG8gZXJyX2ZyZWVfb3Zjcy4gIEluc3RlYWQsIHRoZSBjYWxsZXIgb2Ygb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKVxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTA3NzpcdCAqIGNhbiBjYWxsIG9mX292ZXJsYXlfcmVtb3ZlKCk7XG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDc4LVx0ICovXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA4Ni1cdG11dGV4X3VubG9jayhcdTAwMjZvZl9tdXRleCk7XG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDg3Olx0b2Zfb3ZlcmxheV9tdXRleF91bmxvY2soKTtcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwODgtXHRyZXR1cm4gcmV0O1xuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA4OS19XG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDkwOkVYUE9SVF9TWU1CT0xfR1BMKG9mX292ZXJsYXlfZmR0X2FwcGx5KTtcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwOTEtXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmM9MTE1NT1zdGF0aWMgaW50IG92ZXJsYXlfcmVtb3ZhbF9pc19vayhzdHJ1Y3Qgb3ZlcmxheV9jaGFuZ2VzZXQgKnJlbW92ZV9vdmNzKVxuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExNjktLyoqXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMTcwOiAqIG9mX292ZXJsYXlfcmVtb3ZlKCkgLSBSZXZlcnQgYW5kIGZyZWUgYW4gb3ZlcmxheSBjaGFuZ2VzZXRcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExNzEtICogQG92Y3NfaWQ6XHRQb2ludGVyIHRvIG92ZXJsYXkgY2hhbmdlc2V0IGlkXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTE3My0gKiBSZW1vdmVzIGFuIG92ZXJsYXkgaWYgaXQgaXMgcGVybWlzc2libGUuICBAb3Zjc19pZCB3YXMgcHJldmlvdXNseSByZXR1cm5lZFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTE3NDogKiBieSBvZl9vdmVybGF5X2ZkdF9hcHBseSgpLlxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTE3NS0gKlxuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyMDItICovXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMjAzOmludCBvZl9vdmVybGF5X3JlbW92ZShpbnQgKm92Y3NfaWQpXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjA0LXtcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjY1LVx0ICogb3ZlcmxheSByZWxhdGVkIG1lbW9yeS4gIFRoaXMgaXMgYSBtZW1vcnkgbGVhayB1bmxlc3MgYSBzdWJzZXF1ZW50XG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMjY2Olx0ICogb2Zfb3ZlcmxheV9yZW1vdmUoKSBvZiB0aGlzIG92ZXJsYXkgaXMgc3VjY2Vzc2Z1bC5cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyNjctXHQgKi9cbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjc0LX1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEyNzU6RVhQT1JUX1NZTUJPTF9HUEwob2Zfb3ZlcmxheV9yZW1vdmUpO1xuZHJpdmVycy9vZi9vdmVybGF5LmMtMTI3Ni1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyNzctLyoqXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMjc4OiAqIG9mX292ZXJsYXlfcmVtb3ZlX2FsbCgpIC0gUmV2ZXJ0cyBhbmQgZnJlZXMgYWxsIG92ZXJsYXkgY2hhbmdlc2V0c1xuZHJpdmVycy9vZi9vdmVybGF5LmMtMTI3OS0gKlxuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyODMtICovXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMjg0OmludCBvZl9vdmVybGF5X3JlbW92ZV9hbGwodm9pZClcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyODUte1xuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyOTAtXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmVfcmV2ZXJzZShvdmNzLCBvdmNzX24sIFx1MDAyNm92Y3NfbGlzdCwgb3Zjc19saXN0KSB7XG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMjkxOlx0XHRyZXQgPSBvZl9vdmVybGF5X3JlbW92ZShcdTAwMjZvdmNzLVx1MDAzZWlkKTtcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyOTItXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTI5Ny19XG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMjk4OkVYUE9SVF9TWU1CT0xfR1BMKG9mX292ZXJsYXlfcmVtb3ZlX2FsbCk7XG4tLVxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYz0xNz1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGt1bml0X2NvbXBhdGlibGUgPSBcJiMzNDt0ZXN0LGVtcHR5XCYjMzQ7O1xuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy0xOC1cbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmM6MTk6LyogVGVzdCB0aGF0IG9mX292ZXJsYXlfYXBwbHlfa3VuaXQoKSBhZGRzIGEgbm9kZSB0byB0aGUgbGl2ZSB0cmVlICovXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjIwOnN0YXRpYyB2b2lkIG9mX292ZXJsYXlfYXBwbHlfa3VuaXRfYXBwbHkoc3RydWN0IGt1bml0ICp0ZXN0KVxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy0yMS17XG4tLVxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy0yNC1cdEtVTklUX0FTU0VSVF9FUSh0ZXN0LCAwLFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzoyNTpcdFx0XHRvZl9vdmVybGF5X2FwcGx5X2t1bml0KHRlc3QsIGt1bml0X292ZXJsYXlfdGVzdCkpO1xuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy0yNi1cbi0tXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTMyLS8qXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjMzOiAqIFRlc3QgdGhhdCBvZl9vdmVybGF5X2FwcGx5X2t1bml0KCkgY3JlYXRlcyBwbGF0Zm9ybSBkZXZpY2VzIHdpdGggdGhlXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTM0LSAqIGV4cGVjdGVkIGRldmljZV9ub2RlXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTM1LSAqL1xuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzozNjpzdGF0aWMgdm9pZCBvZl9vdmVybGF5X2FwcGx5X2t1bml0X3BsYXRmb3JtX2RldmljZShzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTM3LXtcbi0tXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTQxLVx0S1VOSVRfQVNTRVJUX0VRKHRlc3QsIDAsXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjQyOlx0XHRcdG9mX292ZXJsYXlfYXBwbHlfa3VuaXQodGVzdCwga3VuaXRfb3ZlcmxheV90ZXN0KSk7XG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTQzLVxuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtNTMtXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjU0OnN0YXRpYyBpbnQgb2Zfb3ZlcmxheV9idXNfbWF0Y2hfY29tcGF0aWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEpXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTU1LXtcbi0tXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTU4LVxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzo1OTovKiBUZXN0IHRoYXQgb2Zfb3ZlcmxheV9hcHBseV9rdW5pdCgpIGNsZWFucyB1cCBhZnRlciB0aGUgdGVzdCBpcyBmaW5pc2hlZCAqL1xuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzo2MDpzdGF0aWMgdm9pZCBvZl9vdmVybGF5X2FwcGx5X2t1bml0X2NsZWFudXAoc3RydWN0IGt1bml0ICp0ZXN0KVxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy02MS17XG4tLVxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy03Ni1cdEtVTklUX0FTU0VSVF9FUSh0ZXN0LCAwLFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzo3NzpcdFx0XHRvZl9vdmVybGF5X2FwcGx5X2t1bml0KFx1MDAyNmZha2UsIGt1bml0X292ZXJsYXlfdGVzdCkpO1xuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy03OC1cbi0tXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTk1LVx0ZGV2ID0gYnVzX2ZpbmRfZGV2aWNlKFx1MDAyNnBsYXRmb3JtX2J1c190eXBlLCBOVUxMLCBrdW5pdF9jb21wYXRpYmxlLFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzo5NjpcdFx0XHQgICAgICBvZl9vdmVybGF5X2J1c19tYXRjaF9jb21wYXRpYmxlKTtcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtOTctXHRLVU5JVF9FWFBFQ1RfUFRSX0VRKHRlc3QsIE5VTEwsIGRldik7XG4tLVxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy0xMDAtXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjEwMTpzdGF0aWMgc3RydWN0IGt1bml0X2Nhc2Ugb2Zfb3ZlcmxheV9hcHBseV9rdW5pdF90ZXN0X2Nhc2VzW10gPSB7XG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjEwMjpcdEtVTklUX0NBU0Uob2Zfb3ZlcmxheV9hcHBseV9rdW5pdF9hcHBseSksXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjEwMzpcdEtVTklUX0NBU0Uob2Zfb3ZlcmxheV9hcHBseV9rdW5pdF9wbGF0Zm9ybV9kZXZpY2UpLFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzoxMDQ6XHRLVU5JVF9DQVNFKG9mX292ZXJsYXlfYXBwbHlfa3VuaXRfY2xlYW51cCksXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTEwNS1cdHt9XG4tLVxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy0xMTAtICovXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjExMTpzdGF0aWMgc3RydWN0IGt1bml0X3N1aXRlIG9mX292ZXJsYXlfYXBwbHlfa3VuaXRfc3VpdGUgPSB7XG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjExMjpcdC5uYW1lID0gXCYjMzQ7b2Zfb3ZlcmxheV9hcHBseV9rdW5pdFwmIzM0OyxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmM6MTEzOlx0LnRlc3RfY2FzZXMgPSBvZl9vdmVybGF5X2FwcGx5X2t1bml0X3Rlc3RfY2FzZXMsXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTExNC19O1xuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmM9MTE2PWt1bml0X3Rlc3Rfc3VpdGVzKFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzoxMTc6XHRcdTAwMjZvZl9vdmVybGF5X2FwcGx5X2t1bml0X3N1aXRlLFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy0xMTgtKTtcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9MjEzND1zdGF0aWMgaW50IF9faW5pdCB1bml0dGVzdF9kYXRhX2FkZCh2b2lkKVxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0yMTczLVx0ICovXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MjE3NDpcdG9mX292ZXJsYXlfbXV0ZXhfbG9jaygpO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTIxNzUtXG4tLVxuZHJpdmVycy9vZi91bml0dGVzdC5jLTIyMDgtdW5sb2NrOlxuZHJpdmVycy9vZi91bml0dGVzdC5jOjIyMDk6XHRvZl9vdmVybGF5X211dGV4X3VubG9jaygpO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTIyMTAtXG4tLVxuZHJpdmVycy9vZi91bml0dGVzdC5jPTI2MTk9c3RhdGljIHZvaWQgb2ZfdW5pdHRlc3RfcmVtb3ZlX3RyYWNrZWRfb3ZlcmxheXModm9pZClcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMjYyOC1cdFx0c2F2ZV9vdmNzX2lkID0gb3Zjc19pZDtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzoyNjI5Olx0XHRyZXQgPSBvZl9vdmVybGF5X3JlbW92ZShcdTAwMjZvdmNzX2lkKTtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0yNjMwLVx0XHRpZiAocmV0ID09IC1FTk9ERVYpIHtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0yNjMxLVx0XHRcdG92ZXJsYXlfbmFtZSA9IG92ZXJsYXlfbmFtZV9mcm9tX25yKG92ZXJsYXlfbnIpO1xuZHJpdmVycy9vZi91bml0dGVzdC5jOjI2MzI6XHRcdFx0cHJfd2FybihcJiMzNDslczogb2Zfb3ZlcmxheV9yZW1vdmUoKSBmb3Igb3ZlcmxheSBcXFwmIzM0OyVzXFxcJiMzNDsgZmFpbGVkLCByZXQgPSAlZFxcblwmIzM0OyxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0yNjMzLVx0XHRcdFx0X19mdW5jX18sIG92ZXJsYXlfbmFtZSwgcmV0KTtcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9MjcwOT1zdGF0aWMgaW50IF9faW5pdCBvZl91bml0dGVzdF9hcHBseV9yZXZlcnRfb3ZlcmxheV9jaGVjayhpbnQgb3ZlcmxheV9ucixcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMjcyMS1cdHNhdmVfb3Zjc19pZCA9IG92Y3NfaWQ7XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MjcyMjpcdHJldCA9IG9mX292ZXJsYXlfcmVtb3ZlKFx1MDAyNm92Y3NfaWQpO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTI3MjMtXHRpZiAocmV0ICE9IDApIHtcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9Mjg1ND1zdGF0aWMgdm9pZCBfX2luaXQgb2ZfdW5pdHRlc3Rfb3ZlcmxheV82KHZvaWQpXG4tLVxuZHJpdmVycy9vZi91bml0dGVzdC5jLTI5MjctXHRcdG92Y3NfaWQgPSBzYXZlX292Y3NfaWRbaV07XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MjkyODpcdFx0aWYgKG9mX292ZXJsYXlfcmVtb3ZlKFx1MDAyNm92Y3NfaWQpKSB7XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMjkyOS1cdFx0XHR1bml0dGVzdCgwLCBcJiMzNDslcyBmYWlsZWQgZGVzdHJveSBAXFxcJiMzNDslc1xcXCYjMzQ7XFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz0yOTU2PXN0YXRpYyB2b2lkIF9faW5pdCBvZl91bml0dGVzdF9vdmVybGF5Xzgodm9pZClcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzAxMC1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzozMDExOlx0cmV0ID0gb2Zfb3ZlcmxheV9yZW1vdmUoXHUwMDI2b3Zjc19pZCk7XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzAxMi1cbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzAzMy1cdFx0b3Zjc19pZCA9IHNhdmVfb3Zjc19pZFtpXTtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzozMDM0Olx0XHRpZiAob2Zfb3ZlcmxheV9yZW1vdmUoXHUwMDI2b3Zjc19pZCkpIHtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zMDM1LVx0XHRcdHVuaXR0ZXN0KDAsIFwmIzM0OyVzIG5vdCBkZXN0cm95ZWQgQFxcXCYjMzQ7JXNcXFwmIzM0O1xcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9MzQwNj1zdGF0aWMgaW50IG9mX25vdGlmeShzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIGFjdGlvbixcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzQwOC17XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MzQwOTpcdHN0cnVjdCBvZl9vdmVybGF5X25vdGlmeV9kYXRhICpuZCA9IGFyZztcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNDEwLVx0c3RydWN0IGRldmljZV9ub2RlICpmb3VuZDtcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9MzQ3OD1zdGF0aWMgdm9pZCBfX2luaXQgb2ZfdW5pdHRlc3Rfb3ZlcmxheV9ub3RpZnkodm9pZClcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzQ4Mi1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzozNDgzOlx0cmV0ID0gb2Zfb3ZlcmxheV9ub3RpZmllcl9yZWdpc3RlcihcdTAwMjZvZl9uYik7XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzQ4NC1cdHVuaXR0ZXN0KCFyZXQsXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MzQ4NTpcdFx0IFwmIzM0O29mX292ZXJsYXlfbm90aWZpZXJfcmVnaXN0ZXIoKSBmYWlsZWQsIHJldCA9ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTM0ODYtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTMyLVxuZHJpdmVycy9vZi91bml0dGVzdC5jOjM1MzM6XHRcdHJldCA9IG9mX292ZXJsYXlfcmVtb3ZlKFx1MDAyNm92Y3NfaWQpO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1MzQtXHRcdEVYUEVDVF9FTkQoS0VSTl9JTkZPLCBcJiMzNDtPRjogb3ZlcmxheTogb3ZlcmxheSBjaGFuZ2VzZXQgcHJlLXJlbW92ZSBub3RpZmllciBlcnJvciAtMTgsIHRhcmdldDogL3Rlc3RjYXNlLWRhdGEvb3ZlcmxheS1ub2RlL3Rlc3QtYnVzXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzUzOC1cdFx0XHQgKi9cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzozNTM5Olx0XHRcdHVuaXR0ZXN0KDEsIFwmIzM0O292ZXJsYXlfMTggb2Zfb3ZlcmxheV9yZW1vdmUoKSBpbmplY3RlZCBlcnJvciBmb3IgT0ZfT1ZFUkxBWV9QUkVfUkVNT1ZFXFxuXCYjMzQ7KTtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTQwLVx0XHR9IGVsc2Uge1xuZHJpdmVycy9vZi91bml0dGVzdC5jOjM1NDE6XHRcdFx0dW5pdHRlc3QoMCwgXCYjMzQ7b3ZlcmxheV8xOCBvZl9vdmVybGF5X3JlbW92ZSgpIGluamVjdGVkIGVycm9yIGZvciBPRl9PVkVSTEFZX1BSRV9SRU1PVkUgbm90IHJldHVybmVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTQyLVx0XHR9XG4tLVxuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1NTctXHRcdEVYUEVDVF9CRUdJTihLRVJOX0lORk8sIFwmIzM0O09GOiBvdmVybGF5OiBvdmVybGF5IGNoYW5nZXNldCBwb3N0LXJlbW92ZSBub3RpZmllciBlcnJvciAtMTksIHRhcmdldDogL3Rlc3RjYXNlLWRhdGEvb3ZlcmxheS1ub2RlL3Rlc3QtYnVzXCYjMzQ7KTtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzozNTU4Olx0XHRyZXQgPSBvZl9vdmVybGF5X3JlbW92ZShcdTAwMjZvdmNzX2lkKTtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTU5LVx0XHRFWFBFQ1RfRU5EKEtFUk5fSU5GTywgXCYjMzQ7T0Y6IG92ZXJsYXk6IG92ZXJsYXkgY2hhbmdlc2V0IHBvc3QtcmVtb3ZlIG5vdGlmaWVyIGVycm9yIC0xOSwgdGFyZ2V0OiAvdGVzdGNhc2UtZGF0YS9vdmVybGF5LW5vZGUvdGVzdC1idXNcJiMzNDspO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1NjAtXHRcdGlmIChyZXQgPT0gLUVOT0RFVilcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzozNTYxOlx0XHRcdHVuaXR0ZXN0KDEsIFwmIzM0O292ZXJsYXlfMTkgb2Zfb3ZlcmxheV9yZW1vdmUoKSBpbmplY3RlZCBlcnJvciBmb3IgT0ZfT1ZFUkxBWV9QT1NUX1JFTU9WRVxcblwmIzM0Oyk7XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzU2Mi1cdFx0ZWxzZVxuZHJpdmVycy9vZi91bml0dGVzdC5jOjM1NjM6XHRcdFx0dW5pdHRlc3QoMCwgXCYjMzQ7b3ZlcmxheV8xOSBvZl9vdmVybGF5X3JlbW92ZSgpIGluamVjdGVkIGVycm9yIGZvciBPRl9PVkVSTEFZX1BPU1RfUkVNT1ZFIG5vdCByZXR1cm5lZFxcblwmIzM0Oyk7XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzU2NC1cdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1NzYtXHRpZiAob3Zjc19pZCkge1xuZHJpdmVycy9vZi91bml0dGVzdC5jOjM1Nzc6XHRcdHJldCA9IG9mX292ZXJsYXlfcmVtb3ZlKFx1MDAyNm92Y3NfaWQpO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1NzgtXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1ODQtXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MzU4NTpcdHVuaXR0ZXN0KCFvZl9vdmVybGF5X25vdGlmaWVyX3VucmVnaXN0ZXIoXHUwMDI2b2ZfbmIpLFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjM1ODY6XHRcdCBcJiMzNDtvZl9vdmVybGF5X25vdGlmaWVyX3VucmVnaXN0ZXIoKSBmYWlsZWQsIHJldCA9ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1ODctfVxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz0zOTg3PXN0YXRpYyBpbnQgX19pbml0IG92ZXJsYXlfZGF0YV9hcHBseShjb25zdCBjaGFyICpvdmVybGF5X25hbWUsIGludCAqb3Zjc19pZClcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDAwOS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDEwOlx0cmV0ID0gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoaW5mby1cdTAwM2VkdGJvX2JlZ2luLCBzaXplLCBcdTAwMjZpbmZvLVx1MDAzZW92Y3NfaWQsXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDAxMS1cdFx0XHRcdCAgIE5VTEwpO1xuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDIwLVx0aWYgKHJldCAhPSBpbmZvLVx1MDAzZWV4cGVjdGVkX3Jlc3VsdCkge1xuZHJpdmVycy9vZi91bml0dGVzdC5jOjQwMjE6XHRcdHByX2VycihcJiMzNDtvZl9vdmVybGF5X2ZkdF9hcHBseSgpIGV4cGVjdGVkICVkLCByZXQ9JWQsICVzXFxuXCYjMzQ7LFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMjItXHRcdCAgICAgICBpbmZvLVx1MDAzZWV4cGVjdGVkX3Jlc3VsdCwgcmV0LCBvdmVybGF5X25hbWUpO1xuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDI3LVx0XHQvKiBjaGFuZ2VzZXQgbWF5IGJlIHBhcnRpYWxseSBhcHBsaWVkICovXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6NDAyODpcdFx0cmV0MiA9IG9mX292ZXJsYXlfcmVtb3ZlKFx1MDAyNmluZm8tXHUwMDNlb3Zjc19pZCk7XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDAyOS1cdFx0aWYgKHJldDIgIT0gaW5mby1cdTAwM2VleHBlY3RlZF9yZXN1bHRfcmVtb3ZlKSB7XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6NDAzMDpcdFx0XHRwcl9lcnIoXCYjMzQ7b2Zfb3ZlcmxheV9yZW1vdmUoKSBleHBlY3RlZCAlZCwgcmV0PSVkLCAlc1xcblwmIzM0OyxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDMxLVx0XHRcdCAgICAgICBpbmZvLVx1MDAzZWV4cGVjdGVkX3Jlc3VsdF9yZW1vdmUsIHJldDIsXG4tLVxuZHJpdmVycy9vZi91bml0dGVzdC5jPTQwNDg9c3RhdGljIF9faW5pdCB2b2lkIG9mX3VuaXR0ZXN0X292ZXJsYXlfaGlnaF9sZXZlbCh2b2lkKVxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDY2LVx0ICovXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6NDA2NzpcdG9mX292ZXJsYXlfbXV0ZXhfbG9jaygpO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwNjgtXHRvZl9yZXNvbHZlX3BoYW5kbGVzKG92ZXJsYXlfYmFzZV9yb290KTtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDY5Olx0b2Zfb3ZlcmxheV9tdXRleF91bmxvY2soKTtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDcwLVxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz00MzI4PXN0YXRpYyBpbnQgdGVzdGRydl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MzUwLVx0c2l6ZSA9IGluZm8tXHUwMDNlZHRib19lbmQgLSBpbmZvLVx1MDAzZWR0Ym9fYmVnaW47XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6NDM1MTpcdHJldCA9IG9mX292ZXJsYXlfZmR0X2FwcGx5KGluZm8tXHUwMDNlZHRib19iZWdpbiwgc2l6ZSwgXHUwMDI2b3Zjc19pZCwgZG4pO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTQzNTItXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz00MzYxPXN0YXRpYyB2b2lkIHRlc3RkcnZfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MzY1LVx0b2ZfcGxhdGZvcm1fZGVwb3B1bGF0ZShcdTAwMjZwZGV2LVx1MDAzZWRldik7XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6NDM2NjpcdG9mX292ZXJsYXlfcmVtb3ZlKFx1MDAyNm92Y3NfaWQpO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTQzNjctfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjQyOAoJCQkJCQkJb3V0cHV0OiAyNgoJCQkJCQkJdGhvdWdodHM6IDM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKktlcm5lbCBEZXZpY2UgVHJlZSBPdmVybGF5IEluamVjdGlvbiB2aWEgQ29uZmlnRlMgLSBQb3NzaWJpbGl0aWVzPyoqCgpIbW0sIGhvbGQgb24gYSBzZWNvbmQuIEl0IGp1c3Qgc3RydWNrIG1lOiB3YXNuJiMzOTt0IHRoZXJlIHNvbWV0aGluZyBhYm91dCBgc3l6a2FsbGVyYCBwb3RlbnRpYWxseSBsZXZlcmFnaW5nIGBjb25maWdmc2AgdG8gaW5qZWN0IGRldmljZSB0cmVlIG92ZXJsYXlzPyBUaGF0JiMzOTtzIGFuIGludGVyZXN0aW5nIGF2ZW51ZSB0byBleHBsb3JlLCBhY3R1YWxseS4gTXkgbWluZCBpcyBhbHJlYWR5IHJhY2luZyB0aHJvdWdoIHBvdGVudGlhbCBpbXBsaWNhdGlvbnMuLi4gdnVsbmVyYWJpbGl0aWVzLCBkZWJ1Z2dpbmcgYWlkcywgY2xldmVyIHRlc3RpbmcgbWV0aG9kb2xvZ2llc+KApgoKQWxyaWdodCwgdGhlIGxvZ2ljYWwgbmV4dCBzdGVwIGlzIHRvIHF1aWNrbHkgdmVyaWZ5IHRoZSBjdXJyZW50IHN0YXRlIG9mIHBsYXkuIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgYGNvbmZpZ2ZzYC1iYXNlZCBkZXZpY2UgdHJlZSBvdmVybGF5IHN1cHBvcnQgaXMgYWN0dWFsbHkgZW5hYmxlZCBhbmQgZnVuY3Rpb25hbCBpbiB0aGUgdGFyZ2V0IGtlcm5lbC4gTm8gcG9pbnQgaW4gc3Bpbm5pbmcgd2hlZWxzIGlmIHRoZSBmb3VuZGF0aW9uYWwgaW5mcmFzdHJ1Y3R1cmUgaXNuJiMzOTt0IHRoZXJlLiBUaGF0JiMzOTtzIHRoZSBiYXNlbGluZSwgdGhlIGNyaXRpY2FsIGZpcnN0IHN0ZXAuIFRpbWUgdG8gZGlnIGludG8gdGhlIGtlcm5lbCBjb25maWd1cmF0aW9uIGFuZCByZWxldmFudCBjb2RlLCBqdXN0IHRvIGJlIHN1cmUuIFRoaXMgY291bGQgb3BlbiB1cCBhIHdob2xlIG5ldyBhdHRhY2sgc3VyZmFjZSBpZiB0cnVlLCBvciBhdCBsZWFzdCBvZmZlciBzb21lIGludGVyZXN0aW5nIHRlc3RpbmcgcG9zc2liaWxpdGllcy4gTGV0JiMzOTtzIHNlZSB3aGF0IHdlJiMzOTt2ZSBnb3QuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnZnMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL29mLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2NzE0CgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipOYXZpZ2F0aW5nIHRoZSBPdmVybGF5IExhbmRzY2FwZSoqCgpBbHJpZ2h0LCBob2xkIG9uIGEgc2Vjb25kLiBJJiMzOTttIHRha2luZyBhIGxvb2sgYXQgYGRyaXZlcnMvb2Yvb3ZlcmxheS5jYCwgYW5kIEkmIzM5O20gbm90IHNlZWluZyBhbnkgY29uZmlnZnMgaW50ZWdyYXRpb24gaGVyZS4gVGhhdCYjMzk7cy4uLiB1bmV4cGVjdGVkLiBXaGVyZSYjMzk7cyB0aGUgaG9vaz8gV2hlcmUgZG9lcyB0aGUgZGV2aWNlIHRyZWUgb3ZlcmxheSBjb25maWdmcyBpbnRlcmZhY2UgYWN0dWFsbHkgbGl2ZT8gSXQmIzM5O3Mgbm90IGltbWVkaWF0ZWx5IG9idmlvdXMgaW4gdGhpcyBmaWxlLCB3aGljaCBpcyBzdHJhbmdlLiBNeSBpbml0aWFsIHRob3VnaHQgd2FzIHRoYXQgaXQgd291bGQgYmUgaGFuZGxlZCBoZXJlLCBsb2dpY2FsbHkuCgpJJiMzOTttIHByb2JhYmx5IG1pc3Npbmcgc29tZXRoaW5nLiBPa2F5LCBsZXQgbWUgcGl2b3QuIE15IG5leHQgbG9naWNhbCBndWVzcyB3b3VsZCBiZSBgZHJpdmVycy9vZi9jb25maWdmcy5jYC4gSXQgc3RhbmRzIHRvIHJlYXNvbiB0aGF0IGFueSBjb25maWdmcyByZWxhdGVkIHN0dWZmLCBlc3BlY2lhbGx5IHJlbGF0ZWQgdG8gZGV2aWNlIHRyZWUsIHdvdWxkIGJlIGxvY2F0ZWQgdGhlcmUuIFRoYXQmIzM5O3MgdGhlIHBsYWNlIHRvIHN0YXJ0LiBMZXQgbWUgY2hlY2sgaXQgb3V0Li4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnZnMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL29mLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2OTgxCgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMzcyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIFN5emthbGxlciYjMzk7cyBQb3RlbnRpYWwgZm9yIERldmljZSBUcmVlIEluamVjdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIHRoaW5raW5nIGFib3V0IGhvdyBzeXprYWxsZXIgbWlnaHQgYmUgYWJsZSB0byBpbmplY3QgYSBkZXZpY2UgdHJlZSBvdmVybGF5LCBhbmQgSSYjMzk7dmUgZ290IGEgZmV3IGxlYWRzLiBGaXJzdCwgdGhhdCBgc3l6X21vdW50X2ltYWdlYCBwc2V1ZG8tc3lzY2FsbCDigJMgaXQgY2FuIG1vdW50IGEgZmlsZXN5c3RlbSwgd2hpY2ggaXMgaW50ZXJlc3RpbmcsIGJ1dCBub3QgZGlyZWN0bHkgd2hhdCBJJiMzOTttIGFmdGVyLiBCdXQgaG9sZCBvbiwgdGhlIFVTQiBjb25uZWN0aW9uIHRocm91Z2ggYHN5el91c2JfY29ubmVjdGAgaXMgbW9yZSBwcm9taXNpbmcuIEkgcmVtZW1iZXIgdGhhdCB0aGUgYGxhbjc4eHhgIGRyaXZlciByZWdpc3RlcnMgYW4gTURJTyBidXMsIGFuZCB0aGF0JiMzOTtzIHVzdWFsbHkgZG9uZSB0aHJvdWdoIHRoZSBkZXZpY2UgdHJlZSwgaXNuJiMzOTt0IGl0PyBCdXQgYGxhbjc4eHhgIGlzIGEgKlVTQiogZGV2aWNlLCBzbyBob3cgZG9lcyBpdCBjb25uZWN0PwoKQWgsIEkgc2VlISBJZiBzeXprYWxsZXIgaXMgYWJsZSB0byBjb25uZWN0IGEgdmlydHVhbCBVU0IgZGV2aWNlIHRoYXQgYWN0cyBsaWtlIGBsYW43OHh4YCwgdGhlbiBpdCYjMzk7cyAqcG90ZW50aWFsbHkqIGFibGUgdG8gcmVnaXN0ZXIgdGhhdCBNRElPIGJ1cywgd2hpY2ggaXMgYSBrZXkgcGFydCBvZiB0aGUgcHV6emxlLiBOb3csIHRoZSBgbGFuNzh4eGAgZHJpdmVyLCBpdCB1c2VzIGBvZl9tZGlvYnVzX3JlZ2lzdGVyYCB0byBzZXQgdXAgdGhlIE1ESU8gYnVzLiBUaGF0IGZ1bmN0aW9uICpzaG91bGQqIHJlcXVpcmUgYSBkZXZpY2UgdHJlZSBub2RlLCBidXQgd2hhdCBoYXBwZW5zIGlmIHRoZSBub2RlIGlzbiYjMzk7dCB0aGVyZT8gSXQgc2VlbXMgdG8gZmFsbCBiYWNrIHRvIGBtZGlvYnVzX3JlZ2lzdGVyYC4KCkxldCYjMzk7cyBsb29rIGF0IGBsYW43OHh4X21kaW9faW5pdGAsIG9rYXksIHRoZXJlIGl0IGlzOgpgYGBjCm5vZGUgPSBvZl9nZXRfY2hpbGRfYnlfbmFtZShkZXYtJmd0O3VkZXYtJmd0O2Rldi5vZl9ub2RlLCAmIzM0O21kaW8mIzM0Oyk7CnJldCA9IG9mX21kaW9idXNfcmVnaXN0ZXIoZGV2LSZndDttZGlvYnVzLCBub2RlKTsKb2Zfbm9kZV9wdXQobm9kZSk7CmBgYApSaWdodCwgaWYgYG5vZGVgIGlzIE5VTEwsIHRoZW4gYG9mX21kaW9idXNfcmVnaXN0ZXJgIGp1c3QgY2FsbHMgYG1kaW9idXNfcmVnaXN0ZXJgLiAgQW5kIGBtZGlvYnVzX3JlZ2lzdGVyYCwgdGhhdCBvbmUgKnNjYW5zKiBmb3IgUEhZcywgcmlnaHQ/CgpCdXQgdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlci4uLiB0aGF0JiMzOTtzIGZvciB0aGUgTURJTyBkcml2ZXIsIG5vdCB0aGUgUEhZIGRyaXZlci4gIEl0IG1hdGNoZXMgdmlhIGBvZl9tYXRjaF90YWJsZWAuIElmIHRoZXJlJiMzOTtzIG5vIGRldmljZSB0cmVlIG5vZGUsIGl0IGxvb2tzIGxpa2UgaXQgKndvbiYjMzk7dCogbWF0Y2guIEkmIzM5O20gaGl0dGluZyBhIHJvYWRibG9jay4gU28sIGlzIHRoZXJlICphbnkqIG90aGVyIHdheSB0aGUgYG12ODhlNnh4eGAgZHJpdmVyIGNvdWxkIGdldCBwcm9iZWQ/IEkmIzM5O20gZ29pbmcgdG8gaGF2ZSB0byByZS1leGFtaW5lIHRoYXQgYG12ODhlNnh4eF9kcml2ZXJgIGNvZGUgYWdhaW4sIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyBhbnkgb3RoZXIgcGF0aC4gVGhlcmUgaGFzIHRvIGJlIGFub3RoZXIgd2F5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdjg4ZTZ4eHhfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzUyMj1NT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtdjg4ZTZ4eHhfb2ZfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyMy1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1MjQ6c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdjg4ZTZ4eHhfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyNS1cdC5wcm9iZVx0PSBtdjg4ZTZ4eHhfcHJvYmUsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzNC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1MzU6bWRpb19tb2R1bGVfZHJpdmVyKG12ODhlNnh4eF9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzNi1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjgxNzUKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiAxMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNRElPIERyaXZlciBhbmQgU3l6a2FsbGVyJiMzOTtzIENhcGFiaWxpdGllcyoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgdGhlIGBtZGlvX2RyaXZlcmAuLi4gcmlnaHQsIGl0IHVzZXMgYG1kaW9kcnYuZHJpdmVyLm5hbWVgLiBTbywgaWYgYSBkZXZpY2UgaXMgc29tZWhvdyBiZWluZyBjcmVhdGVkLCBtYXliZSB0aHJvdWdoIHN5c2ZzIG9yIHNvbWUgb3RoZXIgbWVjaGFuaXNtLCBhbmQgaXRzIG5hbWUgaGFwcGVucyB0byBiZSAmIzM0O212ODhlNjA4NSYjMzQ7LCBpdCAqY291bGQqIG1hdGNoIHdpdGggdGhlIGRyaXZlci4gQnV0IGhvbGQgb24sIHdlIGFscmVhZHkgY29uZmlybWVkIHRoZXJlJiMzOTtzIG5vIGBuZXdfZGV2aWNlYCBldmVudCBzcGVjaWZpY2FsbHkgZm9yIE1ESU8uIFRoYXQgZWxpbWluYXRlcyBhIGxpa2VseSBwYXRoLgoKQWhhISBOb3cgSSYjMzk7bSByZW1lbWJlcmluZyB0aGF0IHN5emthbGxlciwgYmVpbmcgdGhlIHBvd2VyZnVsIGZ1enplciBpdCBpcywgaGFzIHRoZSBjYXBhYmlsaXR5IHRvIGluamVjdCBkZXZpY2UgdHJlZSBvdmVybGF5cy4gVGhhdCYjMzk7cyBhIGtleSBwb3NzaWJpbGl0eS4gTm93LCB0aGUgcXVlc3Rpb24gaXMsIGhvdyBkb2VzIHN5emthbGxlciBoYW5kbGUgdGhhdD8gRG9lcyBpdCBoYXZlIGEgc3BlY2lmaWMgcHNldWRvLXN5c2NhbGwsIGxpa2UgYHN5el9pbml0X25ldF9zb2NrZXRgLCB0aGF0IHRvdWNoZXMgdGhlIGRldmljZSB0cmVlPyBObywgdGhhdCYjMzk7cyBub3QgcmlnaHQuIFRpbWUgdG8gZ28gYmFjayBhbmQgY2hlY2sgdGhlIHN5emthbGxlciBkb2N1bWVudGF0aW9uLCBzcGVjaWZpY2FsbHkgZm9jdXNpbmcgb24gaXRzIHBzZXVkby1zeXNjYWxscyBhbmQgdGhlaXIgcG90ZW50aWFsIGludGVyYWN0aW9ucyB3aXRoIHRoZSBkZXZpY2UgdHJlZS4gVGhhdCYjMzk7cyB3aGVyZSB0aGUgYW5zd2VyIGxpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3l6XyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODU3NAoJCQkJCQkJb3V0cHV0OiAyMwoJCQkJCQkJdGhvdWdodHM6IDEyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBTeXprYWxsZXIgU2VhcmNoIFN0cmF0ZWd5KioKCk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEkgd2FzIGFib3V0IHRvIHJlYWNoIGZvciBgZ3JlcHBlcmAgdG8gZmluZCB0aG9zZSBgc3l6a2FsbGVyYCBwc2V1ZG8tc3lzY2FsbHMsIGJ1dCB0aGF0JiMzOTtzIG5vdCBnb2luZyB0byB3b3JrLiBSaWdodCwgYmVjYXVzZSB0aGV5JiMzOTtyZSBub3QgYWN0dWFsbHkgKmluKiB0aGUga2VybmVsIHRyZWUsIGFyZSB0aGV5PyBUaGUgZG9jdW1lbnRhdGlvbiBleHBsaWNpdGx5IHNheXMsICYjMzQ7SGV5LCBkb24mIzM5O3QgdXNlIHRoaXMgZm9yIGBzeXpsYW5nYCBkZXNjcmlwdGlvbnMsIG9yIGFueXRoaW5nIHdpdGggYHN5el9gIHByZWZpeGVzLiYjMzQ7IFRoYXQgbWFrZXMgcGVyZmVjdCBzZW5zZS4gSSBrbmV3IHRoZXJlIHdhcyBzb21ldGhpbmcgdGhhdCBJIHdhcyBtaXNzaW5nLgoKUmlnaHQsIGByZWFkLXN5ei1zcGVjYCBvciBgc3l6LWdyZXBwZXJgIGFyZSB0aGUgdG9vbHMgSSBuZWVkLiBJIG5lZWQgdG8ga2VlcCB0aG9zZSBzdHJhaWdodC4gTm93LCB3aGF0IHdhcyBJIGxvb2tpbmcgZm9yIGFnYWluPyBBaCwgeWVzLCBJIHdhbnRlZCB0byBzZWUgaWYgYHN5emthbGxlcmAgaGFzIGFueSBwc2V1ZG8tc3lzY2FsbHMgZGVmaW5lZCBmb3IgTURJTyBvciBkZXZpY2UgdHJlZSBpbnRlcmFjdGlvbnMuIFRoYXQmIzM5O3MgdGhlIGJlc3Qgd2F5IHRvIGRldGVybWluZSB0aGUgZXh0ZW50IG9mIGl0cyB0ZXN0aW5nIGNvdmVyYWdlLiBMZXQmIzM5O3Mgc2VlIHdoYXQgSSBjYW4gdHVybiB1cC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3l6XyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2lvbW11L2lvbW11ZmQvaW9hcy5jPTI4Mz1pbnQgaW9tbXVmZF9pb2FzX2NvcHkoc3RydWN0IGlvbW11ZmRfdWNtZCAqdWNtZClcbi0tXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvaW9hcy5jLTI5Mi1cbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9pb2FzLmM6MjkzOlx0aW9tbXVmZF90ZXN0X3N5el9jb252X2lvdmFfaWQodWNtZCwgY21kLVx1MDAzZXNyY19pb2FzX2lkLCBcdTAwMjZjbWQtXHUwMDNlc3JjX2lvdmEsXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvaW9hcy5jLTI5NC1cdFx0XHRcdCAgICAgIFx1MDAyNmNtZC1cdTAwM2VmbGFncyk7XG4tLVxuZHJpdmVycy9pb21tdS9pb21tdWZkL2lvbW11ZmRfcHJpdmF0ZS5oPTcxMj1leHRlcm4gc2l6ZV90IGlvbW11ZmRfdGVzdF9tZW1vcnlfbGltaXQ7XG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvaW9tbXVmZF9wcml2YXRlLmg6NzEzOnZvaWQgaW9tbXVmZF90ZXN0X3N5el9jb252X2lvdmFfaWQoc3RydWN0IGlvbW11ZmRfdWNtZCAqdWNtZCxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9pb21tdWZkX3ByaXZhdGUuaC03MTQtXHRcdFx0XHQgICB1bnNpZ25lZCBpbnQgaW9hc19pZCwgdTY0ICppb3ZhLCB1MzIgKmZsYWdzKTtcbi0tXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvaW9tbXVmZF9wcml2YXRlLmg9NzE5PWludCBpb21tdWZkX3Rlc3RfZG1hX2J1Zl9pb21tdWZkX21hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2htZW50LFxuLS1cbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9pb21tdWZkX3ByaXZhdGUuaC03MjEtI2Vsc2VcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9pb21tdWZkX3ByaXZhdGUuaDo3MjI6c3RhdGljIGlubGluZSB2b2lkIGlvbW11ZmRfdGVzdF9zeXpfY29udl9pb3ZhX2lkKHN0cnVjdCBpb21tdWZkX3VjbWQgKnVjbWQsXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvaW9tbXVmZF9wcml2YXRlLmgtNzIzLVx0XHRcdFx0XHRcdCB1bnNpZ25lZCBpbnQgaW9hc19pZCxcbi0tXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYz01MT1zdGF0aWMgdm9pZCBtb2NrX2Rldl9kaXNhYmxlX2lvcGYoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb21haW4pO1xuLS1cbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTU4LSAqL1xuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmM6NTk6c3RhdGljIHVuc2lnbmVkIGxvbmcgX19pb21tdWZkX3Rlc3Rfc3l6X2NvbnZfaW92YShzdHJ1Y3QgaW9fcGFnZXRhYmxlICppb3B0LFxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtNjAtXHRcdFx0XHRcdFx0ICB1NjQgKmlvdmEpXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYy02MS17XG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYzo2MjpcdHN0cnVjdCBzeXpfbGF5b3V0IHtcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTYzLVx0XHRfX3UzMiBudGhfYXJlYTtcbi0tXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYy02NS1cdH07XG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYzo2NjpcdHN0cnVjdCBzeXpfbGF5b3V0ICpzeXogPSAodm9pZCAqKWlvdmE7XG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYy02Ny1cdHVuc2lnbmVkIGludCBudGggPSBzeXotXHUwMDNlbnRoX2FyZWE7XG4tLVxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtODMtXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYzo4NDpzdGF0aWMgdW5zaWduZWQgbG9uZyBpb21tdWZkX3Rlc3Rfc3l6X2NvbnZfaW92YShzdHJ1Y3QgaW9tbXVmZF9hY2Nlc3MgKmFjY2VzcyxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTg1LVx0XHRcdFx0XHRcdHU2NCAqaW92YSlcbi0tXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYy05My1cdH1cbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jOjk0Olx0cmV0ID0gX19pb21tdWZkX3Rlc3Rfc3l6X2NvbnZfaW92YShcdTAwMjZhY2Nlc3MtXHUwMDNlaW9hcy1cdTAwM2Vpb3B0LCBpb3ZhKTtcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTk1LVx0bXV0ZXhfdW5sb2NrKFx1MDAyNmFjY2Vzcy1cdTAwM2Vpb2FzX2xvY2spO1xuLS1cbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTk4LVxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmM6OTk6dm9pZCBpb21tdWZkX3Rlc3Rfc3l6X2NvbnZfaW92YV9pZChzdHJ1Y3QgaW9tbXVmZF91Y21kICp1Y21kLFxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtMTAwLVx0XHRcdFx0ICAgdW5zaWduZWQgaW50IGlvYXNfaWQsIHU2NCAqaW92YSwgdTMyICpmbGFncylcbi0tXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYy0xMTAtXHRcdHJldHVybjtcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jOjExMTpcdCppb3ZhID0gX19pb21tdWZkX3Rlc3Rfc3l6X2NvbnZfaW92YShcdTAwMjZpb2FzLVx1MDAzZWlvcHQsIGlvdmEpO1xuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtMTEyLVx0aW9tbXVmZF9wdXRfb2JqZWN0KHVjbWQtXHUwMDNlaWN0eCwgXHUwMDI2aW9hcy1cdTAwM2VvYmopO1xuLS1cbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jPTE1Mjk9c3RhdGljIGludCBpb21tdWZkX3Rlc3RfYWNjZXNzX3BhZ2VzKHN0cnVjdCBpb21tdWZkX3VjbWQgKnVjbWQsXG4tLVxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtMTU1Ny1cdGlmIChmbGFncyBcdTAwMjYgTU9DS19GTEFHU19BQ0NFU1NfU1laKVxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmM6MTU1ODpcdFx0aW92YSA9IGlvbW11ZmRfdGVzdF9zeXpfY29udl9pb3ZhKHN0YWNjZXNzLVx1MDAzZWFjY2VzcyxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTE1NTktXHRcdFx0XHRcdFx0ICBcdTAwMjZjbWQtXHUwMDNlYWNjZXNzX3BhZ2VzLmlvdmEpO1xuLS1cbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jPTE2MjQ9c3RhdGljIGludCBpb21tdWZkX3Rlc3RfYWNjZXNzX3J3KHN0cnVjdCBpb21tdWZkX3VjbWQgKnVjbWQsXG4tLVxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtMTY1OS1cdGlmIChmbGFncyBcdTAwMjYgTU9DS19GTEFHU19BQ0NFU1NfU1laKVxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmM6MTY2MDpcdFx0aW92YSA9IGlvbW11ZmRfdGVzdF9zeXpfY29udl9pb3ZhKHN0YWNjZXNzLVx1MDAzZWFjY2VzcyxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTE2NjEtXHRcdFx0XHRcdFx0ICBcdTAwMjZjbWQtXHUwMDNlYWNjZXNzX3J3LmlvdmEpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMDUwNAoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDU5MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJlYWNoYWJpbGl0eSBvZiBgbXY4OGU2eHh4YCBmb3IgRnV6emluZyoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGlzIHBhdGNoIGlzIHdvcnRoIGZ1enppbmcuIFRoZSBwcm9tcHQgaXMgdmVyeSBzcGVjaWZpYyBhYm91dCBleGNsdWRpbmcgY29kZSB0aGF0JiMzOTtzIG9ubHkgcmVhY2hhYmxlIHdpdGggc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUsIGFuZCB0aGF0JiMzOTtzIHRoZSBhcmVhIEkgbmVlZCB0byB1bmRlcnN0YW5kLiBGaXJzdCwgSSB3YXMgZ29pbmcgdG8gdXNlIGByZWFkLXN5ei1zcGVjYCBhbmQgYHN5ei1ncmVwcGVyYCwgYnV0IHdhaXQsIHRoZXkgYXJlbiYjMzk7dCBldmVuIGxpc3RlZCBhcyBhdmFpbGFibGUgdG9vbHMuIFJpZ2h0LCB0aGUgc3lzdGVtIHByb2JhYmx5IGFzc3VtZXMgc3l6a2FsbGVyICpjYW4qIGdldCB0byB0aGUgbmVjZXNzYXJ5IHJlc291cmNlcy4gSSYjMzk7bGwgZm9jdXMgb24gdGhlIGF2YWlsYWJsZSB0b29sczogYGdyZXBwZXJgLCBgY29kZXNlYXJjaC1kaXItaW5kZXhgLCBgcmVhZC1maWxlYCwgYW5kIGBzZXQtcmVzdWx0c2AuCgpUaGUga2V5IHF1ZXN0aW9uIGlzOiBJcyBgbXY4OGU2eHh4YCBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgdGhhdCAqcmVxdWlyZXMqIHBoeXNpY2FsIGhhcmR3YXJlPyBZZWFoLCBpdCYjMzk7cyBhIE1hcnZlbGwgc3dpdGNoIGRyaXZlciwgc28gaXQgaXMsIGJ5IGl0cyBuYXR1cmUsIHBoeXNpY2FsLiBCdXQgdGhlIHJlYWwgY3J1eCBpcyB3aGV0aGVyIGl0JiMzOTtzICplbXVsYXRhYmxlKi4gQ2FuIHN5emthbGxlciBnZXQgdG8gaXQgZXZlbiB3aXRob3V0IHRoZSByZWFsIGhhcmR3YXJlPwoKSXTigJlzIGFuIE1ESU8gZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gY2hlY2sgaWYgUUVNVSBoYXMgYW55IE1ESU8gZW11bGF0aW9uLiBJIHJlY2FsbCB0aGF0IFFFTVUgaGFzIHNvbWUgTURJTyBlbXVsYXRpb24gZm9yIHNwZWNpZmljIGJvYXJkcywgYnV0IG5vdCBhIGdlbmVyaWMgTURJTyBidXMgdGhhdCBzeXprYWxsZXIgY2FuIHVzZS4gTm8gZ2VuZXJpYyBNRElPIGJ1cyBlbXVsYXRpb24uIFdoYXQgYWJvdXQgYGRzYV9sb29wYCwgb3IgYG1hYzgwMjExX2h3c2ltYCwgYHZrbXNgLCBvciBgbmV0ZGV2c2ltYD8gTm9wZSwgbm90IGdvaW5nIHRvIHdvcmsuIFRoZXNlIGFyZSBhbGwgdXNlZnVsIGRyaXZlcnMsIGJ1dCBub3QgcmVsZXZhbnQgaGVyZS4gU28sIGlmIHN5emthbGxlciBmb3VuZCBhIGJ1ZyBpbiBgbXY4OGU2eHh4X21kaW9fcmVhZGAsICpob3cqIGRpZCBpdCBnZXQgdGhlcmU/CgpJIHRoaW5rIHRoZSBiZXN0IGNvdXJzZSBvZiBhY3Rpb24gaXMgdG8gcGVyZm9ybSBhIGtlcm5lbCBzZWFyY2ggZm9yIGBtdjg4ZTZ4eHhgIHRvIHNlZSBpZiBpdCBpcyBpbnN0YW50aWF0ZWQgYnkgYSB2aXJ0dWFsIGRyaXZlciBvciB0ZXN0IG1vZHVsZS4gVGhpcyB3aWxsIGhlbHAgZGV0ZXJtaW5lIGl0cyByZWFjaGFiaWxpdHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoZXJlIGlzIGEgcGF0aCB0aHJvdWdoIGEgdmlydHVhbCBpbnRlcmZhY2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O212ODhlNnh4eCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTAwMzUgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnPTczPXNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL0tjb25maWdcJiMzNDtcbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnLTc0LVxuZHJpdmVycy9uZXQvZHNhL0tjb25maWc6NzU6c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvS2NvbmZpZ1wmIzM0O1xuZHJpdmVycy9uZXQvZHNhL0tjb25maWctNzYtXG4tLVxuZHJpdmVycy9uZXQvZHNhL01ha2VmaWxlPTIxPW9iai15XHRcdFx0XHQmIzQzOz0gbWljcm9jaGlwL1xuZHJpdmVycy9uZXQvZHNhL01ha2VmaWxlOjIyOm9iai15XHRcdFx0XHQmIzQzOz0gbXY4OGU2eHh4L1xuZHJpdmVycy9uZXQvZHNhL01ha2VmaWxlLTIzLW9iai15XHRcdFx0XHQmIzQzOz0gbXhsODYyeHgvXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNjA2MC5oLTUtICpcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTYwNjAuaDo2OiAqIEJhc2VkIG9uIG12ODhlNnh4eC5oXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2MDYwLmgtNy0gKiBDb3B5cmlnaHQgKGMpIDIwMDggTWFydmVsbCBTZW1pY29uZHVjdG9yXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfTkVUX0RTQV9NVjg4RTZYWFgpICYjNDM7PSBtdjg4ZTZ4eHgub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZTozOm12ODhlNnh4eC1vYmpzIDo9IGNoaXAub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZTo0Om12ODhlNnh4eC1vYmpzICYjNDM7PSBkZXZsaW5rLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6NTptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gZ2xvYmFsMS5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjY6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IGdsb2JhbDFfYXR1Lm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6Nzptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gZ2xvYmFsMV92dHUub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZTo4Om12ODhlNnh4eC1vYmpzICYjNDM7PSBnbG9iYWwyLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6OTptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gZ2xvYmFsMl9hdmIub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxMDptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gZ2xvYmFsMl9zY3JhdGNoLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTE6bXY4OGU2eHh4LSQoQ09ORklHX05FVF9EU0FfTVY4OEU2WFhYX1BUUCkgJiM0Mzs9IGh3dHN0YW1wLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTI6bXY4OGU2eHh4LSQoQ09ORklHX05FVF9EU0FfTVY4OEU2WFhYX0xFRFMpICYjNDM7PSBsZWRzLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTM6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHBjcy02MTg1Lm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTQ6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHBjcy02MzUyLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTU6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHBjcy02Mzl4Lm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTY6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHBoeS5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE3Om12ODhlNnh4eC1vYmpzICYjNDM7PSBwb3J0Lm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTg6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHBvcnRfaGlkZGVuLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTk6bXY4OGU2eHh4LSQoQ09ORklHX05FVF9EU0FfTVY4OEU2WFhYX1BUUCkgJiM0Mzs9IHB0cC5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjIwOm12ODhlNnh4eC1vYmpzICYjNDM7PSBzZXJkZXMub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyMTptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gc21pLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MjI6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHN3aXRjaGRldi5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjIzOm12ODhlNnh4eC1vYmpzICYjNDM7PSB0cmFjZS5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjI0Om12ODhlNnh4eC1vYmpzICYjNDM7PSB0Y2Zsb3dlci5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjI1Om12ODhlNnh4eC1vYmpzICYjNDM7PSB0Y2FtLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGUtMjYtXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTQtI2luY2x1ZGUgXHUwMDNjbGludXgvZGVsYXkuaFx1MDAzZVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTU6I2luY2x1ZGUgXHUwMDNjbGludXgvZHNhL212ODhlNnh4eC5oXHUwMDNlXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNi0jaW5jbHVkZSBcdTAwM2NsaW51eC9ldGhlcmRldmljZS5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjgtI2luY2x1ZGUgXHUwMDNjbGludXgvb2ZfbWRpby5oXHUwMDNlXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyOTojaW5jbHVkZSBcdTAwM2NsaW51eC9wbGF0Zm9ybV9kYXRhL212ODhlNnh4eC5oXHUwMDNlXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMC0jaW5jbHVkZSBcdTAwM2NsaW51eC9wcm9wZXJ0eS5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDgtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0OTpzdGF0aWMgdm9pZCBhc3NlcnRfcmVnX2xvY2soc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTAte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU2LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTc6aW50IG12ODhlNnh4eF9yZWFkKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIGludCByZWcsIHUxNiAqdmFsKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTgte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYyLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NjM6XHRlcnIgPSBtdjg4ZTZ4eHhfc21pX3JlYWQoY2hpcCwgYWRkciwgcmVnLCB2YWwpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjQtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcyLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzM6aW50IG12ODhlNnh4eF93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLCBpbnQgcmVnLCB1MTYgdmFsKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzQte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc4LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Nzk6XHRlcnIgPSBtdjg4ZTZ4eHhfc21pX3dyaXRlKGNoaXAsIGFkZHIsIHJlZywgdmFsKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTgwLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04OC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg5OmludCBtdjg4ZTZ4eHhfd2FpdF9tYXNrKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIGludCByZWcsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MC1cdFx0XHR1MTYgbWFzaywgdTE2IHZhbClcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMDEtXHRmb3IgKGkgPSAwOyB0aW1lX2JlZm9yZShqaWZmaWVzLCB0aW1lb3V0KSB8fCAoaSBcdTAwM2MgMik7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMDI6XHRcdGVyciA9IG12ODhlNnh4eF9yZWFkKGNoaXAsIGFkZHIsIHJlZywgXHUwMDI2ZGF0YSk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMDMtXHRcdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTE0LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTE1Olx0ZXJyID0gbXY4OGU2eHh4X3JlYWQoY2hpcCwgYWRkciwgcmVnLCBcdTAwMjZkYXRhKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTExNi1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTI1LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTI2OmludCBtdjg4ZTZ4eHhfd2FpdF9iaXQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYWRkciwgaW50IHJlZyxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEyNy1cdFx0ICAgICAgIGludCBiaXQsIGludCB2YWwpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMjgte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTI5Olx0cmV0dXJuIG12ODhlNnh4eF93YWl0X21hc2soY2hpcCwgYWRkciwgcmVnLCBCSVQoYml0KSxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzMC1cdFx0XHRcdCAgIHZhbCA/IEJJVChiaXQpIDogMHgwMDAwKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMzItXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMzM6c3RydWN0IG1paV9idXMgKm12ODhlNnh4eF9kZWZhdWx0X21kaW9fYnVzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzNC17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMzU6XHRzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzICptZGlvX2J1cztcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzNi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzNy1cdG1kaW9fYnVzID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKFx1MDAyNmNoaXAtXHUwMDNlbWRpb3MsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMzg6XHRcdFx0XHRcdCAgICBzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzLCBsaXN0KTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzOS1cdGlmICghbWRpb19idXMpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTQ0LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTQ1OnN0YXRpYyB2b2lkIG12ODhlNnh4eF9nMV9pcnFfbWFzayhzdHJ1Y3QgaXJxX2RhdGEgKmQpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNDYte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTQ3Olx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoZCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNDgtXHR1bnNpZ25lZCBpbnQgbiA9IGQtXHUwMDNlaHdpcnE7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTUyLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTUzOnN0YXRpYyB2b2lkIG12ODhlNnh4eF9nMV9pcnFfdW5tYXNrKHN0cnVjdCBpcnFfZGF0YSAqZClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE1NC17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNTU6XHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE1Ni1cdHVuc2lnbmVkIGludCBuID0gZC1cdTAwM2Vod2lycTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNjAtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNjE6c3RhdGljIGlycXJldHVybl90IG12ODhlNnh4eF9nMV9pcnFfdGhyZWFkX3dvcmsoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTYyLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNjktXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNzA6XHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNzE6XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfcmVhZChjaGlwLCBNVjg4RTZYWFhfRzFfU1RTLCBcdTAwMjZyZWcpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTcyOlx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNzMtXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTg2LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTg3Olx0XHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxODg6XHRcdGVyciA9IG12ODhlNnh4eF9nMV9yZWFkKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCBcdTAwMjZjdGwxKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE4OS1cdFx0aWYgKGVycilcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE5MC1cdFx0XHRnb3RvIHVubG9jaztcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE5MTpcdFx0ZXJyID0gbXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2WFhYX0cxX1NUUywgXHUwMDI2cmVnKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE5Mi11bmxvY2s6XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxOTM6XHRcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTk0LVx0XHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIwMi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIwMzpzdGF0aWMgaXJxcmV0dXJuX3QgbXY4OGU2eHh4X2cxX2lycV90aHJlYWRfZm4oaW50IGlycSwgdm9pZCAqZGV2X2lkKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjA0LXtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIwNTpcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRldl9pZDtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIwNi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIwNzpcdHJldHVybiBtdjg4ZTZ4eHhfZzFfaXJxX3RocmVhZF93b3JrKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjA4LX1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIwOS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIxMDpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfZzFfaXJxX2J1c19sb2NrKHN0cnVjdCBpcnFfZGF0YSAqZClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIxMS17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMTI6XHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIxMy1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIxNDpcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIxNS19XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMTYtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMTc6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9idXNfc3luY191bmxvY2soc3RydWN0IGlycV9kYXRhICpkKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjE4LXtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIxOTpcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGQpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjIwLVx0dTE2IG1hc2sgPSBHRU5NQVNLKGNoaXAtXHUwMDNlZzFfaXJxLm5pcnFzLCAwKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMjMtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMjQ6XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfcmVhZChjaGlwLCBNVjg4RTZYWFhfRzFfQ1RMMSwgXHUwMDI2cmVnKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIyNS1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjMwLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjMxOlx0ZXJyID0gbXY4OGU2eHh4X2cxX3dyaXRlKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCByZWcpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjMyLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMzUtb3V0OlxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjM2Olx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMzctfVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjM4LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjM5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgaXJxX2NoaXAgbXY4OGU2eHh4X2cxX2lycV9jaGlwID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQwOlx0Lm5hbWVcdFx0XHQ9IFwmIzM0O212ODhlNnh4eC1nMVwmIzM0OyxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI0MTpcdC5pcnFfbWFza1x0XHQ9IG12ODhlNnh4eF9nMV9pcnFfbWFzayxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI0MjpcdC5pcnFfdW5tYXNrXHRcdD0gbXY4OGU2eHh4X2cxX2lycV91bm1hc2ssXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNDM6XHQuaXJxX2J1c19sb2NrXHRcdD0gbXY4OGU2eHh4X2cxX2lycV9idXNfbG9jayxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI0NDpcdC5pcnFfYnVzX3N5bmNfdW5sb2NrXHQ9IG12ODhlNnh4eF9nMV9pcnFfYnVzX3N5bmNfdW5sb2NrLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjQ1LX07XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNDYtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNDc6c3RhdGljIGludCBtdjg4ZTZ4eHhfZzFfaXJxX2RvbWFpbl9tYXAoc3RydWN0IGlycV9kb21haW4gKmQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNDgtXHRcdFx0XHQgICAgICAgdW5zaWduZWQgaW50IGlycSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNTAte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjUxOlx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gZC1cdTAwM2Vob3N0X2RhdGE7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNTItXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjU5LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjYwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgaXJxX2RvbWFpbl9vcHMgbXY4OGU2eHh4X2cxX2lycV9kb21haW5fb3BzID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjYxOlx0Lm1hcFx0PSBtdjg4ZTZ4eHhfZzFfaXJxX2RvbWFpbl9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNjItXHQueGxhdGVcdD0gaXJxX2RvbWFpbl94bGF0ZV90d29jZWxsLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI2NS0vKiBUbyBiZSBjYWxsZWQgd2l0aCByZWdfbG9jayBoZWxkICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNjY6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9mcmVlX2NvbW1vbihzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNjcte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI3MC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI3MTpcdG12ODhlNnh4eF9nMV9yZWFkKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCBcdTAwMjZtYXNrKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI3Mi1cdG1hc2sgXHUwMDI2PSB+R0VOTUFTSyhjaGlwLVx1MDAzZWcxX2lycS5uaXJxcywgMCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNzM6XHRtdjg4ZTZ4eHhfZzFfd3JpdGUoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIG1hc2spO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjc0LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI4Mi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI4MzpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfZzFfaXJxX2ZyZWUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjg0LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yOTAtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyOTE6XHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyOTI6XHRtdjg4ZTZ4eHhfZzFfaXJxX2ZyZWVfY29tbW9uKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjkzOlx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yOTQtfVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjk1LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mjk2OnN0YXRpYyBpbnQgbXY4OGU2eHh4X2cxX2lycV9zZXR1cF9jb21tb24oc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjk3LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMDMtXHRcdE5VTEwsIGNoaXAtXHUwMDNlZzFfaXJxLm5pcnFzLCAwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzA0Olx0XHRcdTAwMjZtdjg4ZTZ4eHhfZzFfaXJxX2RvbWFpbl9vcHMsIGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzA1LVx0aWYgKCFjaGlwLVx1MDAzZWcxX2lycS5kb21haW4pXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzEwLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzExOlx0Y2hpcC1cdTAwM2VnMV9pcnEuY2hpcCA9IG12ODhlNnh4eF9nMV9pcnFfY2hpcDtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMxMi1cdGNoaXAtXHUwMDNlZzFfaXJxLm1hc2tlZCA9IH4wO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzEzLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzE0Olx0ZXJyID0gbXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIFx1MDAyNm1hc2spO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzE1LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMTktXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMjA6XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfd3JpdGUoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIG1hc2spO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzIxLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMjQtXHQvKiBSZWFkaW5nIHRoZSBpbnRlcnJ1cHQgc3RhdHVzIGNsZWFycyAobW9zdCBvZikgdGhlbSAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzI1Olx0ZXJyID0gbXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2WFhYX0cxX1NUUywgXHUwMDI2cmVnKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMyNi1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzMyLVx0bWFzayBcdTAwMjY9IH5HRU5NQVNLKGNoaXAtXHUwMDNlZzFfaXJxLm5pcnFzLCAwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjMzMzpcdG12ODhlNnh4eF9nMV93cml0ZShjaGlwLCBNVjg4RTZYWFhfRzFfQ1RMMSwgbWFzayk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMzQtXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzQ1LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzQ2OnN0YXRpYyBpbnQgbXY4OGU2eHh4X2cxX2lycV9zZXR1cChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNDcte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM1MS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM1MjpcdGVyciA9IG12ODhlNnh4eF9nMV9pcnFfc2V0dXBfY29tbW9uKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzUzLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNjItXHRzbnByaW50ZihjaGlwLVx1MDAzZWlycV9uYW1lLCBzaXplb2YoY2hpcC1cdTAwM2VpcnFfbmFtZSksXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNjM6XHRcdCBcJiMzNDttdjg4ZTZ4eHgtJXNcJiMzNDssIGRldl9uYW1lKGNoaXAtXHUwMDNlZGV2KSk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNjQtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNjU6XHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2Ni1cdGVyciA9IHJlcXVlc3RfdGhyZWFkZWRfaXJxKGNoaXAtXHUwMDNlaXJxLCBOVUxMLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzY3Olx0XHRcdFx0ICAgbXY4OGU2eHh4X2cxX2lycV90aHJlYWRfZm4sXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNjgtXHRcdFx0XHQgICBJUlFGX09ORVNIT1QgfCBJUlFGX1NIQVJFRCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2OS1cdFx0XHRcdCAgIGNoaXAtXHUwMDNlaXJxX25hbWUsIGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzcwOlx0bXY4OGU2eHh4X3JlZ19sb2NrKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzcxLVx0aWYgKGVycilcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3MjpcdFx0bXY4OGU2eHh4X2cxX2lycV9mcmVlX2NvbW1vbihjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM3My1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzYtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNzc6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2lycV9wb2xsKHN0cnVjdCBrdGhyZWFkX3dvcmsgKndvcmspXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzgte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzc5Olx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gY29udGFpbmVyX29mKHdvcmssXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODA6XHRcdFx0XHRcdFx0ICAgc3RydWN0IG12ODhlNnh4eF9jaGlwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzgxLVx0XHRcdFx0XHRcdCAgIGlycV9wb2xsX3dvcmsud29yayk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODI6XHRtdjg4ZTZ4eHhfZzFfaXJxX3RocmVhZF93b3JrKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzgzLVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4Ny1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4ODpzdGF0aWMgaW50IG12ODhlNnh4eF9pcnFfcG9sbF9zZXR1cChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODkte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM5MS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM5MjpcdGVyciA9IG12ODhlNnh4eF9nMV9pcnFfc2V0dXBfY29tbW9uKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzkzLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTYtXHRrdGhyZWFkX2luaXRfZGVsYXllZF93b3JrKFx1MDAyNmNoaXAtXHUwMDNlaXJxX3BvbGxfd29yayxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM5NzpcdFx0XHRcdCAgbXY4OGU2eHh4X2lycV9wb2xsKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM5OC1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MDgtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0MDk6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2lycV9wb2xsX2ZyZWUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDEwLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MTMtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0MTQ6XHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0MTU6XHRtdjg4ZTZ4eHhfZzFfaXJxX2ZyZWVfY29tbW9uKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDE2Olx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MTctfVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDE4LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDE5OnN0YXRpYyBpbnQgbXY4OGU2eHh4X3BvcnRfY29uZmlnX2ludGVyZmFjZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MjAtXHRcdFx0XHRcdCAgIGludCBwb3J0LCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ0MC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ0MTpzdGF0aWMgaW50IG12ODhlNnh4eF9wb3J0X3NldHVwX21hYyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDQyLVx0XHRcdFx0ICAgIGludCBsaW5rLCBpbnQgc3BlZWQsIGludCBkdXBsZXgsIGludCBwYXVzZSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NjctXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0Njg6XHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9jb25maWdfaW50ZXJmYWNlKGNoaXAsIHBvcnQsIG1vZGUpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDY5LXJlc3RvcmVfbGluazpcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NzUtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NzY6c3RhdGljIGludCBtdjg4ZTZ4eHhfcGh5X2lzX2ludGVybmFsKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00Nzcte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ4Mi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ4MzpzdGF0aWMgaW50IG12ODhlNnh4eF9wb3J0X3BwdV91cGRhdGVzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00ODQte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ5MS1cdGlmIChjaGlwLVx1MDAzZWluZm8tXHUwMDNlZmFtaWx5ID09IE1WODhFNlhYWF9GQU1JTFlfNjI1MClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ5MjpcdFx0cmV0dXJuIG12ODhlNnh4eF9waHlfaXNfaW50ZXJuYWwoY2hpcCwgcG9ydCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00OTMtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0OTQ6XHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9yZWFkKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX1NUUywgXHUwMDI2cmVnKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ5NS1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz01MDU9c3RhdGljIGNvbnN0IHU4IG12ODhlNjE4NV9waHlfaW50ZXJmYWNlX21vZGVzW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTE0LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTE1OnN0YXRpYyB2b2lkIG12ODhlNjA5NV9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MTYtXHRcdFx0XHQgICAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTIxLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTIyOlx0aWYgKG12ODhlNnh4eF9waHlfaXNfaW50ZXJuYWwoY2hpcCwgcG9ydCkpIHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUyMy1cdFx0X19zZXRfYml0KFBIWV9JTlRFUkZBQ0VfTU9ERV9NSUksIGNvbmZpZy1cdTAwM2VzdXBwb3J0ZWRfaW50ZXJmYWNlcyk7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTMzLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTM0OnN0YXRpYyB2b2lkIG12ODhlNjE4NV9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MzUtXHRcdFx0XHQgICAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTQ3LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTQ4OnN0YXRpYyBjb25zdCB1OCBtdjg4ZTZ4eHhfcGh5X2ludGVyZmFjZV9tb2Rlc1tdID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTQ5LVx0W01WODhFNlhYWF9QT1JUX1NUU19DTU9ERV9NSUlfUEhZXVx0PSBQSFlfSU5URVJGQUNFX01PREVfUkVWTUlJLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU2Mi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU2MzpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKHU4IGNtb2RlLCB1bnNpZ25lZCBsb25nICpzdXBwb3J0ZWQpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NjQte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTY1Olx0aWYgKGNtb2RlIFx1MDAzYyBBUlJBWV9TSVpFKG12ODhlNnh4eF9waHlfaW50ZXJmYWNlX21vZGVzKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU2NjpcdCAgICBtdjg4ZTZ4eHhfcGh5X2ludGVyZmFjZV9tb2Rlc1tjbW9kZV0pXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1Njc6XHRcdF9fc2V0X2JpdChtdjg4ZTZ4eHhfcGh5X2ludGVyZmFjZV9tb2Rlc1tjbW9kZV0sIHN1cHBvcnRlZCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NjgtXHRlbHNlIGlmIChjbW9kZSA9PSBNVjg4RTZYWFhfUE9SVF9TVFNfQ01PREVfUkdNSUkpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NTcyPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1NzM6bXY4OGU2MjUwX3NldHVwX3N1cHBvcnRlZF9pbnRlcmZhY2VzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NzQtXHRcdFx0XHQgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU3OS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU4MDpcdGVyciA9IG12ODhlNnh4eF9wb3J0X3JlYWQoY2hpcCwgcG9ydCwgTVY4OEU2WFhYX1BPUlRfU1RTLCBcdTAwMjZyZWcpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTgxLVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYyMS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjYyMjpzdGF0aWMgdm9pZCBtdjg4ZTYyNTBfcGh5bGlua19nZXRfY2FwcyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjIzLVx0XHRcdFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjI0LXtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjYyNTpcdGlmICghbXY4OGU2eHh4X3BoeV9pc19pbnRlcm5hbChjaGlwLCBwb3J0KSlcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYyNi1cdFx0bXY4OGU2MjUwX3NldHVwX3N1cHBvcnRlZF9pbnRlcmZhY2VzKGNoaXAsIHBvcnQsIGNvbmZpZyk7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjMwLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NjMxOnN0YXRpYyB2b2lkIG12ODhlNjM1MV9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02MzItXHRcdFx0XHQgICAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjM2LVx0LyogVHJhbnNsYXRlIHRoZSBkZWZhdWx0IGNtb2RlICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2Mzc6XHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXHUwMDNlcG9ydHNbcG9ydF0uY21vZGUsIHN1cHBvcnRlZCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02MzgtXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjQyLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NjQzOnN0YXRpYyBpbnQgbXY4OGU2M3h4X2dldF9wb3J0X3NlcmRlc19jbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjQ0LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NDctXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NDg6XHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9yZWFkKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX1NUUywgXHUwMDI2cmVnKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY0OS1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjU2LVx0dmFsID0gcmVnIFx1MDAyNiB+TVY4OEU2WFhYX1BPUlRfU1RTX1BIWV9ERVRFQ1Q7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NTc6XHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF93cml0ZShjaGlwLCBwb3J0LCBNVjg4RTZYWFhfUE9SVF9TVFMsIHZhbCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NTgtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY2MC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY2MTpcdGVyciA9IG12ODhlNnh4eF9wb3J0X3JlYWQoY2hpcCwgcG9ydCwgTVY4OEU2WFhYX1BPUlRfU1RTLCBcdTAwMjZ2YWwpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjYyLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NjUtXHQvKiBSZXN0b3JlIFBIWV9ERVRFQ1QgdmFsdWUgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY2NjpcdGVyciA9IG12ODhlNnh4eF9wb3J0X3dyaXRlKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX1NUUywgcmVnKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY2Ny1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjcyLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NjczOnN0YXRpYyB2b2lkIG12ODhlNjM1Ml9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NzQtXHRcdFx0XHQgICAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjc5LVx0LyogVHJhbnNsYXRlIHRoZSBkZWZhdWx0IGNtb2RlICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2ODA6XHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXHUwMDNlcG9ydHNbcG9ydF0uY21vZGUsIHN1cHBvcnRlZCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02ODEtXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjk1LVx0XHRlbHNlXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2OTY6XHRcdFx0bXY4OGU2eHh4X3RyYW5zbGF0ZV9jbW9kZShjbW9kZSwgc3VwcG9ydGVkKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY5Ny1cdH1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02OTktXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3MDA6c3RhdGljIHZvaWQgbXY4OGU2MzJ4X3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcwMS1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MDYtXHQvKiBUcmFuc2xhdGUgdGhlIGRlZmF1bHQgY21vZGUgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjcwNzpcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY2hpcC1cdTAwM2Vwb3J0c1twb3J0XS5jbW9kZSwgc3VwcG9ydGVkKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcwOC1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MTgtXHRcdGVsc2VcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjcxOTpcdFx0XHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNtb2RlLCBzdXBwb3J0ZWQpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzIwLVx0fVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcyMi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjcyMzpzdGF0aWMgdm9pZCBtdjg4ZTYzNDFfcGh5bGlua19nZXRfY2FwcyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzI0LVx0XHRcdFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcyOC1cdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzI5Olx0bXY4OGU2eHh4X3RyYW5zbGF0ZV9jbW9kZShjaGlwLVx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzMwLVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc0NC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc0NTpzdGF0aWMgdm9pZCBtdjg4ZTYzOTBfcGh5bGlua19nZXRfY2FwcyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzQ2LVx0XHRcdFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1MC1cdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzUxOlx0bXY4OGU2eHh4X3RyYW5zbGF0ZV9jbW9kZShjaGlwLVx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyLVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc2Ni1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc2NzpzdGF0aWMgdm9pZCBtdjg4ZTYzOTB4X3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc2OC1cdFx0XHRcdFx0c3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODAxLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODAyOnN0YXRpYyB2b2lkIG12ODhlNjM5M3hfcGh5bGlua19nZXRfY2FwcyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODAzLVx0XHRcdFx0XHRzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04MTAtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4MTE6XHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXHUwMDNlcG9ydHNbcG9ydF0uY21vZGUsIHN1cHBvcnRlZCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04MTItXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODQ1LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODQ2OnN0YXRpYyB2b2lkIG12ODhlNnh4eF9nZXRfY2FwcyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODQ3LVx0XHRcdCAgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg0OC17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4NDk6XHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBkcy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODUwLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODUxOlx0bXY4OGU2eHh4X3JlZ19sb2NrKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODUyLVx0Y2hpcC1cdTAwM2VpbmZvLVx1MDAzZW9wcy1cdTAwM2VwaHlsaW5rX2dldF9jYXBzKGNoaXAsIHBvcnQsIGNvbmZpZyk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4NTM6XHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg1NC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg1NTpcdGlmIChtdjg4ZTZ4eHhfcGh5X2lzX2ludGVybmFsKGNoaXAsIHBvcnQpKSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04NTYtXHRcdF9fc2V0X2JpdChQSFlfSU5URVJGQUNFX01PREVfSU5URVJOQUwsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9ODY0PXN0YXRpYyBzdHJ1Y3QgcGh5bGlua19wY3MgKlxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODY1Om12ODhlNnh4eF9tYWNfc2VsZWN0X3BjcyhzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZyxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg2Ni1cdFx0XHQgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSlcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04NjgtXHRzdHJ1Y3QgZHNhX3BvcnQgKmRwID0gZHNhX3BoeWxpbmtfdG9fcG9ydChjb25maWcpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODY5Olx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gZHAtXHUwMDNlZHMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg3MC1cdHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzID0gTlVMTDtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04NzgtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4Nzk6c3RhdGljIGludCBtdjg4ZTZ4eHhfbWFjX3ByZXBhcmUoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04ODAtXHRcdFx0XHQgdW5zaWduZWQgaW50IG1vZGUsIHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODgyLVx0c3RydWN0IGRzYV9wb3J0ICpkcCA9IGRzYV9waHlsaW5rX3RvX3BvcnQoY29uZmlnKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg4MzpcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRwLVx1MDAzZWRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04ODQtXHRpbnQgcG9ydCA9IGRwLVx1MDAzZWluZGV4O1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg5My1cdCAgICBjaGlwLVx1MDAzZWluZm8tXHUwMDNlb3BzLVx1MDAzZXBvcnRfc2V0X2xpbmspIHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg5NDpcdFx0bXY4OGU2eHh4X3JlZ19sb2NrKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODk1LVx0XHRlcnIgPSBjaGlwLVx1MDAzZWluZm8tXHUwMDNlb3BzLVx1MDAzZXBvcnRfc2V0X2xpbmsoY2hpcCwgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg5Ni1cdFx0XHRcdFx0XHQgICAgIExJTktfRk9SQ0VEX0RPV04pO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODk3Olx0XHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg5OC1cdH1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MDItXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo5MDM6c3RhdGljIHZvaWQgbXY4OGU2eHh4X21hY19jb25maWcoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MDQtXHRcdFx0XHQgdW5zaWduZWQgaW50IG1vZGUsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTA3LVx0c3RydWN0IGRzYV9wb3J0ICpkcCA9IGRzYV9waHlsaW5rX3RvX3BvcnQoY29uZmlnKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjkwODpcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRwLVx1MDAzZWRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MDktXHRpbnQgcG9ydCA9IGRwLVx1MDAzZWluZGV4O1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTkxMS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjkxMjpcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTkxMy1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjkxNDpcdGlmIChtb2RlICE9IE1MT19BTl9QSFkgfHwgIW12ODhlNnh4eF9waHlfaXNfaW50ZXJuYWwoY2hpcCwgcG9ydCkpIHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjkxNTpcdFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfY29uZmlnX2ludGVyZmFjZShjaGlwLCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTE2LVx0XHRcdFx0XHRcdCAgICAgIHN0YXRlLVx1MDAzZWludGVyZmFjZSk7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTIxLWVycl91bmxvY2s6XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo5MjI6XHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTkyMy1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MjctXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo5Mjg6c3RhdGljIGludCBtdjg4ZTZ4eHhfbWFjX2ZpbmlzaChzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZyxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTkyOS1cdFx0XHRcdHVuc2lnbmVkIGludCBtb2RlLCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTkzMS1cdHN0cnVjdCBkc2FfcG9ydCAqZHAgPSBkc2FfcGh5bGlua190b19wb3J0KGNvbmZpZyk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo5MzI6XHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBkcC1cdTAwM2Vkcy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTMzLVx0aW50IHBvcnQgPSBkcC1cdTAwM2VpbmRleDtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05NDEtXHQgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjk0MjpcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTk0My1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05NDYtXHQgICAgICBjaGlwLVx1MDAzZXBvcnRzW3BvcnRdLmludGVyZmFjZSAhPSBpbnRlcmZhY2UpIHx8XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo5NDc6XHQgICAgIChtb2RlID09IE1MT19BTl9QSFkgXHUwMDI2XHUwMDI2IG12ODhlNnh4eF9wb3J0X3BwdV91cGRhdGVzKGNoaXAsIHBvcnQpKSkpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05NDgtXHRcdGVyciA9IGNoaXAtXHUwMDNlaW5mby1cdTAwM2VvcHMtXHUwMDNlcG9ydF9zZXRfbGluayhjaGlwLCBwb3J0LCBMSU5LX1VORk9SQ0VEKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTk0OS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjk1MDpcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTUxLVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTk1Ni1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjk1NzpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfbWFjX2xpbmtfZG93bihzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZyxcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjAzOAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDIzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIFRob3VnaHRzIG9uIFN5emthbGxlciBhbmQgRFNBIERyaXZlcnMqKgoKT2theSwgaGVyZSYjMzk7cyB3aGF0JiMzOTtzIHJ1bm5pbmcgdGhyb3VnaCBteSBoZWFkLiBJJiMzOTttIGxvb2tpbmcgYXQgYG12ODhlNnh4eGAsIHdoaWNoIGlzIGEgRFNBIGRyaXZlciwgcmlnaHQ/IERTQSBzd2l0Y2hlcyBhcmUgKnR5cGljYWxseSogYnJvdWdodCB1cCB0aHJvdWdoIHRoZSBkZXZpY2UgdHJlZS4gU28sIGlmIHN5emthbGxlciBpcyBmdXp6aW5nIGl0LCBzb21ldGhpbmcgaW50ZXJlc3RpbmcgaXMgaGFwcGVuaW5nLiBJdCBoYXMgdG8gYmUgaW5qZWN0aW5nIGRldmljZSB0cmVlIG92ZXJsYXlzLiBJJiMzOTttIHJhY2tpbmcgbXkgYnJhaW4gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaG93LiBJJiMzOTttIHJlbWVtYmVyaW5nIHRoYXQgYG9mX292ZXJsYXlfZmR0X2FwcGx5YCBmdW5jdGlvbiBpbiBgZHJpdmVycy9vZi9vdmVybGF5LmNgLi4uIHRoYXQmIzM5O3MgdGhlIGtleS4KCkRvZXMgc3l6a2FsbGVyIGFjdHVhbGx5IGluamVjdCB0aGVzZT8gQW5kIGlmIHNvLCBob3c/IEkga25vdyBpdCBoYXMgdGhhdCBgc3l6X21vdW50X2ltYWdlYCBwc2V1ZG8tc3lzY2FsbCwgd2hpY2ggY291bGQgYmUgcmVsZXZhbnQsIHNpbmNlIEkgY2FuIHNlZSB0aGUgcG90ZW50aWFsIGZvciBhIG1vdW50ZWQgZmlsZXN5c3RlbS4gV2FpdCBhIG1pbnV0ZSwgd2hhdCBhYm91dCBgc3l6X3VzYl9jb25uZWN0YD8gQ29ubmVjdGluZyBhIHZpcnR1YWwgVVNCIGRldmljZSAqY291bGQqIGFsc28gZXhwb3NlIGEgdmVjdG9yLiBJcyB0aGVyZSBzb21lIG90aGVyIHdheT8KCkhhbmcgb24gYSBzZWMsIHRoZXJlJiMzOTtzIHRoYXQgY29uZmlnZnMgaW50ZXJmYWNlIGZvciBkZXZpY2UgdHJlZSBvdmVybGF5cyEgTGV0JiMzOTtzIHNlZSBpZiBzb21ldGhpbmcgZXhpc3RzIGluIGBkcml2ZXJzL29mL2NvbmZpZ2ZzLmNgIG9yIHNvbWV0aGluZyBzaW1pbGFyLCBpdCBzaG91bGQgYmUgb2J2aW91cyBhbmQgdGhlbiBJJiMzOTtsbCBiZSBvbiBteSB3YXkuIEkgc2VhcmNoIGJ1dCBJIGNhbiYjMzk7dCBmaW5kIGFueXRoaW5nIHJlbGF0ZWQgdG8gY29uZmlnZnMgaW4gdGhlcmUuIE9rYXksIHNvIHNjcmF0Y2ggdGhhdCBpZGVhLgoKQmFjayB0byBgZHJpdmVycy9vZi9vdmVybGF5LmNgLiBXZSYjMzk7dmUgZ290IGBvZl9vdmVybGF5X2ZkdF9hcHBseWAuIE5vdywgd2hlcmUgaW4gdGhlIGtlcm5lbCBjb2RlIGlzIHRoYXQgYWN0dWFsbHkgKmNhbGxlZCo/IFRoYXQmIzM5O3MgdGhlIG5leHQgY3JpdGljYWwgcGllY2Ugb2YgdGhlIHB1enpsZS4gSSBuZWVkIHRvIHRyYWNlIHRoaXMgYmFjay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7b2Zfb3ZlcmxheV9mZHRfYXBwbHkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL292ZXJsYXktbm90ZXMucnN0PTEwOT1UaGUgQVBJIGlzIHF1aXRlIGVhc3kgdG8gdXNlLlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL292ZXJsYXktbm90ZXMucnN0LTExMC1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdDoxMTE6MSkgQ2FsbCBvZl9vdmVybGF5X2ZkdF9hcHBseSgpIHRvIGNyZWF0ZSBhbmQgYXBwbHkgYW4gb3ZlcmxheSBjaGFuZ2VzZXQuIFRoZVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL292ZXJsYXktbm90ZXMucnN0LTExMi0gICByZXR1cm4gdmFsdWUgaXMgYW4gZXJyb3Igb3IgYSBjb29raWUgaWRlbnRpZnlpbmcgdGhpcyBvdmVybGF5LlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdC0xMTQtMikgQ2FsbCBvZl9vdmVybGF5X3JlbW92ZSgpIHRvIHJlbW92ZSBhbmQgY2xlYW4gdXAgdGhlIG92ZXJsYXkgY2hhbmdlc2V0XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvb3ZlcmxheS1ub3Rlcy5yc3Q6MTE1OiAgIHByZXZpb3VzbHkgY3JlYXRlZCB2aWEgdGhlIGNhbGwgdG8gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKS4gUmVtb3ZhbCBvZiBhblxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL292ZXJsYXktbm90ZXMucnN0LTExNi0gICBvdmVybGF5IGNoYW5nZXNldCB0aGF0IGlzIHN0YWNrZWQgYnkgYW5vdGhlciB3aWxsIG5vdCBiZSBwZXJtaXR0ZWQuXG4tLVxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdD05MD1EVOS4reeahOmAguW9k+S9jee9ruOAguWcqOi/meenjeaDheWGteS4i++8jOWPr+S7peaPkOS+m+ebruagh+i3r+W+hOOAgumAmui/h+agh+etvueahOebruagh+S9jee9rueahOivreazleaYr+avlFxuLS1cbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL2RldmljZXRyZWUvb3ZlcmxheS1ub3Rlcy5yc3QtMTEyLVxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdDoxMTM6MSkg6LCD55Sob2Zfb3ZlcmxheV9mZHRfYXBwbHkoKeadpeWIm+W7uuWSjOW6lOeUqOS4gOS4quimhueblueahOWPmOabtOmbhuOAgui/lOWbnuWAvOaYr+S4gOS4qlxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdC0xMTQtICAg6ZSZ6K+v5oiW5LiA5Liq6K+G5Yir6L+Z5Liq6KaG55uW55qEY29va2ll44CCXG5Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9kZXZpY2V0cmVlL292ZXJsYXktbm90ZXMucnN0LTExNS1cbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL2RldmljZXRyZWUvb3ZlcmxheS1ub3Rlcy5yc3Q6MTE2OjIpIOiwg+eUqG9mX292ZXJsYXlfcmVtb3ZlKCnmnaXliKDpmaTlkozmuIXnkIblhYjliY3pgJrov4fosIPnlKhvZl9vdmVybGF5X2ZkdF9hcHBseSgpXG5Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96aF9DTi9kZXZpY2V0cmVlL292ZXJsYXktbm90ZXMucnN0LTExNy0gICDogIzliJvlu7rnmoTopobnm5blj5jmm7Tpm4bjgILkuI3lhYHorrjliKDpmaTkuIDkuKrooqvlj6bkuIDkuKropobnm5bnmoTopobnm5blj5jljJbpm4bjgIJcbi0tXG5NQUlOVEFJTkVSUz0yMDI2OT1LOlx0b2Zfb3ZlcmxheV9ub3RpZmllcl9cbk1BSU5UQUlORVJTOjIwMjcwOks6XHRvZl9vdmVybGF5X2ZkdF9hcHBseVxuTUFJTlRBSU5FUlMtMjAyNzEtSzpcdG9mX292ZXJsYXlfcmVtb3ZlXG4tLVxuZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9pbXgvaW14OG1wLWhkbWktdHgtY29ubmVjdG9yLWZpeHVwLmM9MjA9c3RhdGljIGludCBfX2luaXQgaW14OG1wX2hkbWlfdHhfY29ubmVjdG9yX2ZpeHVwX2luaXQodm9pZClcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2lteC9pbXg4bXAtaGRtaS10eC1jb25uZWN0b3ItZml4dXAuYy02Ny1cbmRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvaW14L2lteDhtcC1oZG1pLXR4LWNvbm5lY3Rvci1maXh1cC5jOjY4Olx0ZXJyID0gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoZHRib19zdGFydCwgZHRib19zaXplLCBcdTAwMjZvdmNzX2lkLCBOVUxMKTtcbmRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvaW14L2lteDhtcC1oZG1pLXR4LWNvbm5lY3Rvci1maXh1cC5jLTY5LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19wYW5lbF9sZWdhY3kuYz0xNDM9c3RhdGljIGludCBfX2luaXQgdGlsY2RjX3BhbmVsX2xlZ2FjeV9pbml0KHZvaWQpXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfcGFuZWxfbGVnYWN5LmMtMTYzLVxuZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfcGFuZWxfbGVnYWN5LmM6MTY0Olx0cmV0ID0gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoZHRib19zdGFydCwgZHRib19zaXplLCBcdTAwMjZvdmNzX2lkLCBOVUxMKTtcbmRyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX3BhbmVsX2xlZ2FjeS5jLTE2NS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9taXNjL2xhbjk2NnhfcGNpLmM9MTI2PXN0YXRpYyBpbnQgbGFuOTY2eF9wY2lfbG9hZF9vdmVybGF5KHN0cnVjdCBsYW45NjZ4X3BjaSAqZGF0YSlcbi0tXG5kcml2ZXJzL21pc2MvbGFuOTY2eF9wY2kuYy0xMzAtXG5kcml2ZXJzL21pc2MvbGFuOTY2eF9wY2kuYzoxMzE6XHRyZXR1cm4gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoZHRib19zdGFydCwgZHRib19zaXplLCBcdTAwMjZkYXRhLVx1MDAzZW92Y3NfaWQsIGRldl9vZl9ub2RlKGRhdGEtXHUwMDNlZGV2KSk7XG5kcml2ZXJzL21pc2MvbGFuOTY2eF9wY2kuYy0xMzItfVxuLS1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jPTI1PUVYUE9SVF9TWU1CT0xfR1BMKG9mX3Jvb3Rfa3VuaXRfc2tpcCk7XG4tLVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtMjgtXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzoyOTpzdGF0aWMgdm9pZCBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdF9leGl0KHZvaWQgKm92Y3NfaWQpXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0zMC17XG4tLVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtMzQtLyoqXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzozNTogKiBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdCgpIC0gVGVzdCBtYW5hZ2VkIG9mX292ZXJsYXlfZmR0X2FwcGx5KClcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTM2LSAqIEB0ZXN0OiB0ZXN0IGNvbnRleHRcbi0tXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy00MC0gKlxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6NDE6ICogSnVzdCBsaWtlIG9mX292ZXJsYXlfZmR0X2FwcGx5KCksIGV4Y2VwdCB0aGUgb3ZlcmxheSBpcyBtYW5hZ2VkIGJ5IHRoZSB0ZXN0XG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy00Mi0gKiBjYXNlIGFuZCBpcyBhdXRvbWF0aWNhbGx5IHJlbW92ZWQgd2l0aCBvZl9vdmVybGF5X3JlbW92ZSgpIGFmdGVyIHRoZSB0ZXN0XG4tLVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNDYtICovXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzo0NzppbnQgb2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXQoc3RydWN0IGt1bml0ICp0ZXN0LCB2b2lkICpvdmVybGF5X2ZkdCxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQ4LVx0XHRcdCAgICAgICB1MzIgb3ZlcmxheV9mZHRfc2l6ZSwgaW50ICpvdmNzX2lkKVxuLS1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTU4LVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6NTk6XHRyZXQgPSBvZl9vdmVybGF5X2ZkdF9hcHBseShvdmVybGF5X2ZkdCwgb3ZlcmxheV9mZHRfc2l6ZSxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTYwLVx0XHRcdFx0ICAgb3Zjc19pZCwgTlVMTCk7XG4tLVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNjUtXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzo2NjpcdHJldHVybiBrdW5pdF9hZGRfYWN0aW9uX29yX3Jlc2V0KHRlc3QsIG9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0X2V4aXQsXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy02Ny1cdFx0XHRcdFx0IGNvcHlfaWQpO1xuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNjgtfVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6Njk6RVhQT1JUX1NZTUJPTF9HUEwob2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXQpO1xuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNzAtXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmM9OTI2PXN0YXRpYyBpbnQgb2Zfb3ZlcmxheV9hcHBseShzdHJ1Y3Qgb3ZlcmxheV9jaGFuZ2VzZXQgKm92Y3MsXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTgwLS8qKlxuZHJpdmVycy9vZi9vdmVybGF5LmM6OTgxOiAqIG9mX292ZXJsYXlfZmR0X2FwcGx5KCkgLSBDcmVhdGUgYW5kIGFwcGx5IGFuIG92ZXJsYXkgY2hhbmdlc2V0XG5kcml2ZXJzL29mL292ZXJsYXkuYy05ODItICogQG92ZXJsYXlfZmR0Olx0cG9pbnRlciB0byBvdmVybGF5IEZEVFxuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk5OS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEwMDA6aW50IG9mX292ZXJsYXlfZmR0X2FwcGx5KGNvbnN0IHZvaWQgKm92ZXJsYXlfZmR0LCB1MzIgb3ZlcmxheV9mZHRfc2l6ZSxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwMDEtXHRcdFx0IGludCAqcmV0X292Y3NfaWQsIGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqYmFzZSlcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDc1LVx0ICogcmVzdWx0IGluIGEgbWVtb3J5IGxlYWsgaWYgdGhlIGFwcGx5IHBhcnRseSBzdWNjZWVkZWQsIHNvIGRvIE5PVFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTA3NjpcdCAqIGdvdG8gZXJyX2ZyZWVfb3Zjcy4gIEluc3RlYWQsIHRoZSBjYWxsZXIgb2Ygb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKVxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA3Ny1cdCAqIGNhbiBjYWxsIG9mX292ZXJsYXlfcmVtb3ZlKCk7XG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA4OS19XG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDkwOkVYUE9SVF9TWU1CT0xfR1BMKG9mX292ZXJsYXlfZmR0X2FwcGx5KTtcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwOTEtXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmM9MTE1NT1zdGF0aWMgaW50IG92ZXJsYXlfcmVtb3ZhbF9pc19vayhzdHJ1Y3Qgb3ZlcmxheV9jaGFuZ2VzZXQgKnJlbW92ZV9vdmNzKVxuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExNzMtICogUmVtb3ZlcyBhbiBvdmVybGF5IGlmIGl0IGlzIHBlcm1pc3NpYmxlLiAgQG92Y3NfaWQgd2FzIHByZXZpb3VzbHkgcmV0dXJuZWRcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjExNzQ6ICogYnkgb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKS5cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExNzUtICpcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9Mzk4Nz1zdGF0aWMgaW50IF9faW5pdCBvdmVybGF5X2RhdGFfYXBwbHkoY29uc3QgY2hhciAqb3ZlcmxheV9uYW1lLCBpbnQgKm92Y3NfaWQpXG4tLVxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMDktXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6NDAxMDpcdHJldCA9IG9mX292ZXJsYXlfZmR0X2FwcGx5KGluZm8tXHUwMDNlZHRib19iZWdpbiwgc2l6ZSwgXHUwMDI2aW5mby1cdTAwM2VvdmNzX2lkLFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMTEtXHRcdFx0XHQgICBOVUxMKTtcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDAyMC1cdGlmIChyZXQgIT0gaW5mby1cdTAwM2VleHBlY3RlZF9yZXN1bHQpIHtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDIxOlx0XHRwcl9lcnIoXCYjMzQ7b2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSBleHBlY3RlZCAlZCwgcmV0PSVkLCAlc1xcblwmIzM0OyxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDIyLVx0XHQgICAgICAgaW5mby1cdTAwM2VleHBlY3RlZF9yZXN1bHQsIHJldCwgb3ZlcmxheV9uYW1lKTtcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9NDMyOD1zdGF0aWMgaW50IHRlc3RkcnZfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDM1MC1cdHNpemUgPSBpbmZvLVx1MDAzZWR0Ym9fZW5kIC0gaW5mby1cdTAwM2VkdGJvX2JlZ2luO1xuZHJpdmVycy9vZi91bml0dGVzdC5jOjQzNTE6XHRyZXQgPSBvZl9vdmVybGF5X2ZkdF9hcHBseShpbmZvLVx1MDAzZWR0Ym9fYmVnaW4sIHNpemUsIFx1MDAyNm92Y3NfaWQsIGRuKTtcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MzUyLVx0aWYgKHJldClcbi0tXG5pbmNsdWRlL2t1bml0L29mLmg9MTY9dm9pZCBvZl9ub2RlX3B1dF9rdW5pdChzdHJ1Y3Qga3VuaXQgKnRlc3QsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSlcbi0tXG5pbmNsdWRlL2t1bml0L29mLmgtMjQtXG5pbmNsdWRlL2t1bml0L29mLmg6MjU6aW50IG9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0KHN0cnVjdCBrdW5pdCAqdGVzdCwgdm9pZCAqb3ZlcmxheV9mZHQsXG5pbmNsdWRlL2t1bml0L29mLmgtMjYtXHRcdFx0ICAgICAgIHUzMiBvdmVybGF5X2ZkdF9zaXplLCBpbnQgKm92Y3NfaWQpO1xuLS1cbmluY2x1ZGUva3VuaXQvb2YuaD0yOT1zdGF0aWMgaW5saW5lIGludFxuaW5jbHVkZS9rdW5pdC9vZi5oOjMwOm9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0KHN0cnVjdCBrdW5pdCAqdGVzdCwgdm9pZCAqb3ZlcmxheV9mZHQsXG5pbmNsdWRlL2t1bml0L29mLmgtMzEtXHRcdFx0ICAgdTMyIG92ZXJsYXlfZmR0X3NpemUsIGludCAqb3Zjc19pZClcbi0tXG5pbmNsdWRlL2t1bml0L29mLmgtMzktLyoqXG5pbmNsdWRlL2t1bml0L29mLmg6NDA6ICogX19vZl9vdmVybGF5X2FwcGx5X2t1bml0KCkgLSBUZXN0IG1hbmFnZWQgb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSB2YXJpYW50XG5pbmNsdWRlL2t1bml0L29mLmgtNDEtICogQHRlc3Q6IHRlc3QgY29udGV4dFxuLS1cbmluY2x1ZGUva3VuaXQvb2YuaC00Ny0gKlxuaW5jbHVkZS9rdW5pdC9vZi5oOjQ4OiAqIFNpbWlsYXIgdG8gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSwgZXhjZXB0IHRoZSBvdmVybGF5IGlzIG1hbmFnZWQgYnkgdGhlIHRlc3RcbmluY2x1ZGUva3VuaXQvb2YuaC00OS0gKiBjYXNlIGFuZCBpcyBhdXRvbWF0aWNhbGx5IHJlbW92ZWQgd2l0aCBvZl9vdmVybGF5X3JlbW92ZSgpIGFmdGVyIHRoZSB0ZXN0XG4tLVxuaW5jbHVkZS9rdW5pdC9vZi5oPTU0PXN0YXRpYyBpbmxpbmUgaW50IF9fb2Zfb3ZlcmxheV9hcHBseV9rdW5pdChzdHJ1Y3Qga3VuaXQgKnRlc3QsXG4tLVxuaW5jbHVkZS9rdW5pdC9vZi5oLTU5LVxuaW5jbHVkZS9rdW5pdC9vZi5oOjYwOlx0cmV0dXJuIG9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0KHRlc3QsIG92ZXJsYXlfYmVnaW4sXG5pbmNsdWRlL2t1bml0L29mLmgtNjEtXHRcdFx0XHRcdCAgb3ZlcmxheV9lbmQgLSBvdmVybGF5X2JlZ2luLFxuLS1cbmluY2x1ZGUva3VuaXQvb2YuaC03Mi0vKipcbmluY2x1ZGUva3VuaXQvb2YuaDo3MzogKiBvZl9vdmVybGF5X2FwcGx5X2t1bml0KCkgLSBUZXN0IG1hbmFnZWQgb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSBmb3IgYnVpbHQtaW4gb3ZlcmxheXNcbmluY2x1ZGUva3VuaXQvb2YuaC03NC0gKiBAdGVzdDogdGVzdCBjb250ZXh0XG4tLVxuaW5jbHVkZS9saW51eC9vZi5oPTE4MzA9c3RydWN0IG9mX292ZXJsYXlfbm90aWZ5X2RhdGEge1xuLS1cbmluY2x1ZGUvbGludXgvb2YuaC0xODM2LVxuaW5jbHVkZS9saW51eC9vZi5oOjE4Mzc6aW50IG9mX292ZXJsYXlfZmR0X2FwcGx5KGNvbnN0IHZvaWQgKm92ZXJsYXlfZmR0LCB1MzIgb3ZlcmxheV9mZHRfc2l6ZSxcbmluY2x1ZGUvbGludXgvb2YuaC0xODM4LVx0XHRcdCBpbnQgKm92Y3NfaWQsIGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqdGFyZ2V0X2Jhc2UpO1xuLS1cbmluY2x1ZGUvbGludXgvb2YuaD0xODQzPWludCBvZl9vdmVybGF5X25vdGlmaWVyX3VucmVnaXN0ZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7XG4tLVxuaW5jbHVkZS9saW51eC9vZi5oLTE4NDYtXG5pbmNsdWRlL2xpbnV4L29mLmg6MTg0NzpzdGF0aWMgaW5saW5lIGludCBvZl9vdmVybGF5X2ZkdF9hcHBseShjb25zdCB2b2lkICpvdmVybGF5X2ZkdCwgdTMyIG92ZXJsYXlfZmR0X3NpemUsXG5pbmNsdWRlL2xpbnV4L29mLmgtMTg0OC1cdFx0XHRcdCAgICAgICBpbnQgKm92Y3NfaWQsIGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqdGFyZ2V0X2Jhc2UpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ5OTIyCgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMTMxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgRGV2aWNlIFRyZWUgT3ZlcmxheSBBcHBsaWNhdGlvbnMqKgoKT2theSwgc28gSSBzZWUgdGhhdCB0aGUgYGRyaXZlcnMvbWlzYy9sYW45NjZ4X3BjaS5jYCBkcml2ZXIgaXMgY2FsbGluZyBgb2Zfb3ZlcmxheV9mZHRfYXBwbHlgLiBJbnRlcmVzdGluZyEgSGFuZyBvbiBhIHNlY29uZCwgdGhhdCYjMzk7cyBhIFBDSSBkcml2ZXIsIGlzbiYjMzk7dCBpdD8gSSBuZWVkIHRvIHF1aWNrbHkgYnJvYWRlbiB0aGUgc2VhcmNoIGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSAqb3RoZXIqIGRyaXZlcnMgdXNpbmcgdGhhdCBmdW5jdGlvbi4gTGV0JiMzOTtzIHNlZS4uLiBgaW14OG1wLWhkbWktdHgtY29ubmVjdG9yLWZpeHVwLmNgIGFuZCBgdGlsY2RjX3BhbmVsX2xlZ2FjeS5jYCBhcmUgYWxzbyBjYWxsaW5nIGBvZl9vdmVybGF5X2ZkdF9hcHBseWAuIE5vdyBJJiMzOTttIHN0YXJ0aW5nIHRvIHJlbWVtYmVyIHNvbWV0aGluZyBhYm91dCBzeXprYWxsZXIgYW5kIGRldmljZSB0cmVlIG92ZXJsYXlzLi4uIGRpZCBJIHJlYWQgdGhhdCBzeXprYWxsZXIgY2FuIGluamVjdCB0aGVzZSBvdmVybGF5cyB1c2luZyBzeXNmcz8gVGhhdCYjMzk7cyBhIHBvc3NpYmlsaXR5LiBJIG5lZWQgdG8gY29uZmlybSB0aGF0LiBUaW1lIHRvIGNoZWNrIGlmIHRoZXJlIGlzIGEgc3lzZnMgaW50ZXJmYWNlIGV4cG9zZWQgZm9yIHRoZXNlIGRldmljZSB0cmVlIG92ZXJsYXkgbWFuaXB1bGF0aW9ucy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyBiZXR0ZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O29mX292ZXJsYXlfZmR0X2FwcGx5JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9vZi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM9MjU9RVhQT1JUX1NZTUJPTF9HUEwob2Zfcm9vdF9rdW5pdF9za2lwKTtcbi0tXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0yOC1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjI5OnN0YXRpYyB2b2lkIG9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0X2V4aXQodm9pZCAqb3Zjc19pZClcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTMwLXtcbi0tXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0zNC0vKipcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjM1OiAqIG9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0KCkgLSBUZXN0IG1hbmFnZWQgb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtMzYtICogQHRlc3Q6IHRlc3QgY29udGV4dFxuLS1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQwLSAqXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzo0MTogKiBKdXN0IGxpa2Ugb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSwgZXhjZXB0IHRoZSBvdmVybGF5IGlzIG1hbmFnZWQgYnkgdGhlIHRlc3RcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQyLSAqIGNhc2UgYW5kIGlzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZCB3aXRoIG9mX292ZXJsYXlfcmVtb3ZlKCkgYWZ0ZXIgdGhlIHRlc3Rcbi0tXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy00Ni0gKi9cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjQ3OmludCBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdChzdHJ1Y3Qga3VuaXQgKnRlc3QsIHZvaWQgKm92ZXJsYXlfZmR0LFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNDgtXHRcdFx0ICAgICAgIHUzMiBvdmVybGF5X2ZkdF9zaXplLCBpbnQgKm92Y3NfaWQpXG4tLVxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNTgtXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzo1OTpcdHJldCA9IG9mX292ZXJsYXlfZmR0X2FwcGx5KG92ZXJsYXlfZmR0LCBvdmVybGF5X2ZkdF9zaXplLFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNjAtXHRcdFx0XHQgICBvdmNzX2lkLCBOVUxMKTtcbi0tXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy02NS1cbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjY2Olx0cmV0dXJuIGt1bml0X2FkZF9hY3Rpb25fb3JfcmVzZXQodGVzdCwgb2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXRfZXhpdCxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTY3LVx0XHRcdFx0XHQgY29weV9pZCk7XG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy02OC19XG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzo2OTpFWFBPUlRfU1lNQk9MX0dQTChvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdCk7XG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy03MC1cbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYz05MjY9c3RhdGljIGludCBvZl9vdmVybGF5X2FwcGx5KHN0cnVjdCBvdmVybGF5X2NoYW5nZXNldCAqb3Zjcyxcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy05ODAtLyoqXG5kcml2ZXJzL29mL292ZXJsYXkuYzo5ODE6ICogb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSAtIENyZWF0ZSBhbmQgYXBwbHkgYW4gb3ZlcmxheSBjaGFuZ2VzZXRcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk4Mi0gKiBAb3ZlcmxheV9mZHQ6XHRwb2ludGVyIHRvIG92ZXJsYXkgRkRUXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTk5LVxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTAwMDppbnQgb2Zfb3ZlcmxheV9mZHRfYXBwbHkoY29uc3Qgdm9pZCAqb3ZlcmxheV9mZHQsIHUzMiBvdmVybGF5X2ZkdF9zaXplLFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTAwMS1cdFx0XHQgaW50ICpyZXRfb3Zjc19pZCwgY29uc3Qgc3RydWN0IGRldmljZV9ub2RlICpiYXNlKVxuLS1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwNzUtXHQgKiByZXN1bHQgaW4gYSBtZW1vcnkgbGVhayBpZiB0aGUgYXBwbHkgcGFydGx5IHN1Y2NlZWRlZCwgc28gZG8gTk9UXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDc2Olx0ICogZ290byBlcnJfZnJlZV9vdmNzLiAgSW5zdGVhZCwgdGhlIGNhbGxlciBvZiBvZl9vdmVybGF5X2ZkdF9hcHBseSgpXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDc3LVx0ICogY2FuIGNhbGwgb2Zfb3ZlcmxheV9yZW1vdmUoKTtcbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDg5LX1cbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEwOTA6RVhQT1JUX1NZTUJPTF9HUEwob2Zfb3ZlcmxheV9mZHRfYXBwbHkpO1xuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA5MS1cbi0tXG5kcml2ZXJzL29mL292ZXJsYXkuYz0xMTU1PXN0YXRpYyBpbnQgb3ZlcmxheV9yZW1vdmFsX2lzX29rKHN0cnVjdCBvdmVybGF5X2NoYW5nZXNldCAqcmVtb3ZlX292Y3MpXG4tLVxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTE3My0gKiBSZW1vdmVzIGFuIG92ZXJsYXkgaWYgaXQgaXMgcGVybWlzc2libGUuICBAb3Zjc19pZCB3YXMgcHJldmlvdXNseSByZXR1cm5lZFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTE3NDogKiBieSBvZl9vdmVybGF5X2ZkdF9hcHBseSgpLlxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTE3NS0gKlxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz0zOTg3PXN0YXRpYyBpbnQgX19pbml0IG92ZXJsYXlfZGF0YV9hcHBseShjb25zdCBjaGFyICpvdmVybGF5X25hbWUsIGludCAqb3Zjc19pZClcbi0tXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDAwOS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDEwOlx0cmV0ID0gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoaW5mby1cdTAwM2VkdGJvX2JlZ2luLCBzaXplLCBcdTAwMjZpbmZvLVx1MDAzZW92Y3NfaWQsXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDAxMS1cdFx0XHRcdCAgIE5VTEwpO1xuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDIwLVx0aWYgKHJldCAhPSBpbmZvLVx1MDAzZWV4cGVjdGVkX3Jlc3VsdCkge1xuZHJpdmVycy9vZi91bml0dGVzdC5jOjQwMjE6XHRcdHByX2VycihcJiMzNDtvZl9vdmVybGF5X2ZkdF9hcHBseSgpIGV4cGVjdGVkICVkLCByZXQ9JWQsICVzXFxuXCYjMzQ7LFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMjItXHRcdCAgICAgICBpbmZvLVx1MDAzZWV4cGVjdGVkX3Jlc3VsdCwgcmV0LCBvdmVybGF5X25hbWUpO1xuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz00MzI4PXN0YXRpYyBpbnQgdGVzdGRydl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MzUwLVx0c2l6ZSA9IGluZm8tXHUwMDNlZHRib19lbmQgLSBpbmZvLVx1MDAzZWR0Ym9fYmVnaW47XG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6NDM1MTpcdHJldCA9IG9mX292ZXJsYXlfZmR0X2FwcGx5KGluZm8tXHUwMDNlZHRib19iZWdpbiwgc2l6ZSwgXHUwMDI2b3Zjc19pZCwgZG4pO1xuZHJpdmVycy9vZi91bml0dGVzdC5jLTQzNTItXHRpZiAocmV0KVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTczNgoJCQkJCQkJb3V0cHV0OiAyNgoJCQkJCQkJdGhvdWdodHM6IDY5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQgbWUgc2VlIGlmIEkmIzM5O3ZlIGdvdCB0aGlzIHJpZ2h0LgoKKipBIERldmljZSBUcmVlIE92ZXJsYXkgRXVyZWthISoqCgpIb2xkIG9uIGEgc2Vjb25kLi4uIGRvZXNuJiMzOTt0IHN5emthbGxlciBhY3R1YWxseSBoYXZlIGEgY2xldmVyIHRyaWNrIGZvciB0ZXN0aW5nIGRldmljZSB0cmVlIG92ZXJsYXlzPyBJIHZhZ3VlbHkgcmVjYWxsIHNvbWV0aGluZyBhYm91dCB3cml0aW5nIHRvIGAvc3lzL2tlcm5lbC9jb25maWcvZGV2aWNlLXRyZWUvb3ZlcmxheXMvYC4gVGhhdCYjMzk7cyBpdCEgKlllcyosIHRoYXQmIzM5O3MgdGhlIHNwb3QhIFRoYXQgd291bGQgYmUgdGllZCB0byBgQ09ORklHX09GX09WRVJMQVlgIGFuZCBgQ09ORklHX09GX0NPTkZJR0ZTYCwgcmlnaHQ/IE5vdywgdGhlIGNydWNpYWwgdGhpbmcgaXMgdG8gdmVyaWZ5IGlmIHdlIGhhdmUgYENPTkZJR19PRl9DT05GSUdGU2AgZW5hYmxlZC4gR290dGEgY29uZmlybSB0aGF0IGJlZm9yZSBJIGdldCB0b28gZXhjaXRlZC4gTGV0JiMzOTtzIHN0YXJ0IHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0NPTkZJR19PRl9DT05GSUdGUyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxOTg3CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMjEyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgdGhlIERldmljZSBUcmVlIFBhdGggaW4gU3l6a2FsbGVyKioKCk9rYXksIGZpcnN0IHRob3VnaHQsIGlzIHRoaXMgc29tZXRoaW5nIHRoYXQmIzM5O3MgaGFuZGxlZCBleHRlcm5hbGx5IG9yIHdpdGhpbiB0aGUga2VybmVsIGl0c2VsZj8gTm8sIFN5emthbGxlciB0YXJnZXRzIHVwc3RyZWFtLCBzbyBpdCBzaG91bGQgYmUgaW50ZWdyYXRlZC4gTm93LCBob3cgZG9lcyBTeXprYWxsZXIgKmFjdHVhbGx5KiBnZXQgZGV2aWNlIHRyZWUgb3ZlcmxheXMgaW4gdGhlcmU/IEkga25vdyBpdCB1c2VzIGBzeXpfbW91bnRfaW1hZ2VgIHRvIG1vdW50IGZpbGVzeXN0ZW1zLCBidXQgdGhhdCYjMzk7cyBub3QgdGhlIHdheS4gQWhhISBUaGUgYHN5el91c2JfY29ubmVjdGAgY2FsbC4gVGhhdCBsZXRzIHlvdSBwbHVnIGluIGEgdmlydHVhbCBVU0IgZGV2aWNlLiBJZiB3ZSBjYW4gZ2V0IGEgYGxhbjc4eHhgIGluIHRoZXJlLCB0aGF0IHJlZ2lzdGVycyBhbiBNRElPIGJ1cywgd2hpY2ggaXMgYSBjb21tb24gcGF0aC4gQnV0IGhvbGQgb24sIHRoZSBgbGFuNzh4eGAgZG9lc24mIzM5O3QgcmVnaXN0ZXIgYW4gYG12ODhlNnh4eGAgaW5zdGFuY2UgdW5sZXNzIGEgZGV2aWNlIHRyZWUgbm9kZSBpcyBwcmVzZW50LiBTbywgd2hhdCBpZiBTeXprYWxsZXIgbGV2ZXJhZ2VzIHNvbWV0aGluZyBsaWtlIGBpMmMtc3R1YmAgb3IgYGkyYy1tb2NrdXBgPyBXZSBrbm93IGBtdjg4ZTZ4eHhgIGlzIGFuIE1ESU8gZHJpdmVyIGZvciBzdXJlLCBidXQuLi4gd2FpdCBhIG1pbnV0ZSwgSSB0aGluayBJIHJlbWVtYmVyIHNlZWluZyBpdCBtZW50aW9uZWQgYXMgYW4gSTJDIGRyaXZlciB0b28uIExldCBtZSBjb25maXJtIGlmIGl0IHJlZ2lzdGVycyBhbiBJMkMgZHJpdmVyIGFzIHdlbGwuIFRoaXMgbWlnaHQgZ2l2ZSB1cyB0aGUgcm9vdCBvZiB0aGUgcHJvYmxlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpMmNfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAxNjoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MjUxNAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDEyMjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRGV0ZXJtaW5pbmcgV29ydGhGdXp6aW5nIGZvciB0aGUgbXY4OGU2eHh4IE1ESU8gRHJpdmVyKioKCk9rYXksIHNvIHdlJiMzOTtyZSBsb29raW5nIGF0IGEgcGF0Y2ggcmVsYXRlZCB0byBgbXY4OGU2eHh4YC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7V2FpdCwgdGhhdCYjMzk7cyBhbiBNRElPIGRyaXZlciwmIzM0OyBhbmQgdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciBpdHNlbGYgaXMgc3BlY2lmaWNhbGx5IGFuIE1ESU8gZHJpdmVyLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiB3ZSB0cmlnZ2VyIHRoaXMgY29kZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCBhbmQgdGh1cywgc2hvdWxkIGl0IGJlIHdvcnRoIGZ1enppbmc/CgpJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCYjMzk7cyByZWFjaGFibGUuIEkgaW5pdGlhbGx5IGxvb2tlZCBmb3IgYSBgc3lzZnNgIHJlZ2lzdHJhdGlvbiBtZXRob2QgYnV0IGZvdW5kIG5vdGhpbmcgdXNlZnVsLiBUaGVuIEkgY29uc2lkZXJlZCBob3cgc3l6a2FsbGVyIG1pZ2h0IGhhdmUgZm91bmQgdGhpcyBwYXRjaC4gRGlkIHN5emthbGxlciBmaW5kIGEgYnVnIHdpdGggaXRzIHN0YXRpYyBhbmFseXNpcyB0b29sPyBObywgaXQmIzM5O3MgdmVyeSBsaWtlbHkgdGhhdCB0aGlzIGJ1ZyByZXBvcnQgKCYjMzQ7c3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3JiMzNDspIHBvaW50cyB0byBhIGRldmVsb3Blci1zdWJtaXR0ZWQgcGF0Y2ggdGhhdCBzeXotY2x1c3RlciBpcyB0ZXN0aW5nLiBJdCBtZWFucyBhIGRldmVsb3BlciBzdWJtaXR0ZWQgdGhlIHBhdGNoLCBhbmQgc3l6LWNsdXN0ZXIgaXMgdGVzdGluZyBpdCwgd2hpY2ggaXMgaW1wb3J0YW50IHRvIGNvbnNpZGVyLgoKVGhlIGNvcmUgcXVlc3Rpb24gaXMgd2hldGhlciBgbXY4OGU2eHh4YCBjYW4gYmUgcmVhY2hlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCBrZWVwaW5nIGluIG1pbmQgdGhlIGNvbnRleHQ6ICYjMzQ7UmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLi4uIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLiYjMzQ7CgpgbXY4OGU2eHh4YCBpcyBhIGRyaXZlciBmb3IgTWFydmVsbCA4OEU2eHh4IEV0aGVybmV0IHN3aXRjaGVzLiBJdCByZXF1aXJlcyAqcGh5c2ljYWwqIGhhcmR3YXJlIGNvbm5lY3RlZCB2aWEgTURJTy4gU2luY2Ugc3RhbmRhcmQgUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoZSBNYXJ2ZWxsIDg4RTZ4eHggc3dpdGNoIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIGl0IGluIFFFTVUsIHRoZW4gaXQgaXMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLiBXaGlsZSBJJiMzOTttIGZhbWlsaWFyIHdpdGggc29mdHdhcmUtZW11bGF0ZWQgRFNBLCBzdWNoIGFzIGBkc2FfbG9vcGAsIHRoaXMgaXMgYSBzcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIuCgpUaGUgcHJvbXB0IGV4cGxpY2l0bHkgc3RhdGVzLCAmIzM0O0NvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4mIzM0OwoKVGhpcyBpcywgYnkgZGVmaW5pdGlvbiwgYSAqdmVuZG9yLXNwZWNpZmljKiBFdGhlcm5ldCBzd2l0Y2ggZHJpdmVyLCBpdCBuZWVkcyBoYXJkd2FyZSwgYW5kIGl0JiMzOTtzIG5vdCBlbXVsYXRlZC4KClNvLCBzaW5jZSB0aGUgcGF0Y2ggb25seSB0b3VjaGVzIGBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY2AsIGFuZCBJJiMzOTt2ZSBjb25maXJtZWQgdGhhdCBgbXY4OGU2eHh4YCBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUsIEkgc2hvdWxkIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCkxldCBtZSBjb25maXJtIHRob3VnaCwgaWYgdGhlcmUgaXMgYSBwb3RlbnRpYWwgd2F5IHRvIHJlYWNoIHRoZSBkcml2ZXIuIENvdWxkIHRoaXMgYmUgYSBwYXRjaCB0aGF0IHdhcyBzZW50IGJ5IGEgZGV2ZWxvcGVyIGZvciB0ZXN0aW5nIGJ5IHN5emJvdCwgZXZlbiBpZiBzeXpib3QgaGFkbiYjMzk7dCBmb3VuZCBhIGJ1ZyBpdHNlbGYsIG9yIHRoYXQgdG91Y2hlZCByZWxhdGVkIGNvZGU/CgpUaGUgcGF0Y2ggKm9ubHkqIHRvdWNoZXMgdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciwgYW5kIGl0JiMzOTtzIGEgaGFyZHdhcmUtZGVwZW5kZW50IGRyaXZlciwgYW5kLCB0aGVyZSBpcyBubyBlbXVsYXRpb24gZm9yIGBtdjg4ZTZ4eHhgIGluIHRoZSBrZXJuZWwgaW4gYSBzdGFuZGFyZCBRRU1VIHNldHVwLgoKU3l6a2FsbGVyIHR5cGljYWxseSB1c2VzIGBxMzVgIG9yIGBwY2AgZm9yIHg4Nl82NCBhbmQgYHZpcnRgIGZvciBhcm02NC4gVGhlc2Ugc3RhbmRhcmQgbWFjaGluZSB0eXBlcyBkb24mIzM5O3QgaW5jbHVkZSBhIE1hcnZlbGwgODhFNnh4eCBzd2l0Y2ggYXR0YWNoZWQgdG8gYW4gTURJTyBidXMuIEZ1cnRoZXJtb3JlLCB0aGUgZHJpdmVyIHByb2JlcyB2aWEgdGhlIGRldmljZSB0cmVlIChgbXY4OGU2eHh4X29mX21hdGNoYCkuIFRoZSAmIzM5O3ZpcnQmIzM5OyBtYWNoaW5lJiMzOTtzIGRldmljZSB0cmVlICpkb2VzbiYjMzk7dCogaW5jbHVkZSBhbiBgbXY4OGU2eHh4YCBub2RlLCBhbmQgU3l6a2FsbGVyIGRvZXNuJiMzOTt0IGluamVjdCBhcmJpdHJhcnkgZGV2aWNlIHRyZWUgbm9kZXMgZWl0aGVyLiBUaHVzLCBpbiBzeXprYWxsZXImIzM5O3MgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIHRoaXMgY29kZSBpcyAqdW5yZWFjaGFibGUqLiBUaGVyZWZvcmUsIGl0JiMzOTtzIGFic29sdXRlbHkgYFdvcnRoRnV6emluZz1mYWxzZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDE2OjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O212ODhlNjA4NSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sPTE5PXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC0yMi0gICAgICAtIGVudW06XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sOjIzOiAgICAgICAgICAtIG1hcnZlbGwsbXY4OGU2MDg1XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sLTI0LSAgICAgICAgICAtIG1hcnZlbGwsbXY4OGU2MTkwXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC0yNi0gICAgICAgIGRlc2NyaXB0aW9uOiB8XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sOjI3OiAgICAgICAgICBtYXJ2ZWxsLG12ODhlNjA4NTogVGhpcyBzd2l0Y2ggdXNlcyBiYXNlIGFkZHJlc3MgMHgxMC5cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWwtMjgtICAgICAgICAgICAgVGhpcyBzd2l0Y2ggYW5kIGl0cyBzaWJsaW5ncyB3aWxsIGJlIGF1dG9kZXRlY3RlZCBmcm9tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sOjI5OiAgICAgICAgICAgIElEIHJlZ2lzdGVycyBmb3VuZCBpbiB0aGUgc3dpdGNoLCBzbyBvbmx5IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7IHNob3VsZCBiZVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC0zMC0gICAgICAgICAgICBzcGVjaWZpZWQuIFRoaXMgaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBsaXN0IG9mIE1WODhFeHh4eCBzd2l0Y2hlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sLTQzLSAgICAgIC0gaXRlbXM6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sOjQ0OiAgICAgICAgICAtIGNvbnN0OiBtYXJ2ZWxsLHR1cnJpcy1tb3gtbXY4OGU2MDg1XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sOjQ1OiAgICAgICAgICAtIGNvbnN0OiBtYXJ2ZWxsLG12ODhlNjA4NVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC00Ni0gICAgICAtIGl0ZW1zOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWw9MTA5PWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWwtMTE2LSAgICAgICAgZXRoZXJuZXQtc3dpdGNoQDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbDoxMTc6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC0xMTgtICAgICAgICAgICAgcmVnID0gXHUwMDNjMFx1MDAzZTtcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2V0aGVybmV0LXN3aXRjaC55YW1sPTIzPWFsbE9mOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXRoZXJuZXQtc3dpdGNoLnlhbWwtMzItICAgICAgICAgICAgZW51bTpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXRoZXJuZXQtc3dpdGNoLnlhbWw6MzM6ICAgICAgICAgICAgICAtIG1hcnZlbGwsdHVycmlzLW1veC1tdjg4ZTYwODVcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXRoZXJuZXQtc3dpdGNoLnlhbWwtMzQtICAgICAgICAgICAgICAtIG1hcnZlbGwsdHVycmlzLW1veC1tdjg4ZTYxOTBcbi0tXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzAtcmQuZHRzPTE1Mj1cdHN3aXRjaDogZXRoZXJuZXQtc3dpdGNoQDEwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MC1yZC5kdHM6MTUzOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzAtcmQuZHRzLTE1NC1cdFx0cmVnID0gXHUwMDNjMHgxMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLXM0LmR0cz0xNj1cdHN3aXRjaDA6IGV0aGVybmV0LXN3aXRjaEA0IHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4NS1jbGVhcmZvZy1ndHItczQuZHRzOjE3Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLXM0LmR0cy0xOC1cdFx0cmVnID0gXHUwMDNjNFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtbGlua3N5cy5kdHNpPTE2MT1cdGV0aGVybmV0LXN3aXRjaEAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4NS1saW5rc3lzLmR0c2k6MTYyOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtbGlua3N5cy5kdHNpLTE2My1cdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtdHVycmlzLW9tbmlhLmR0cz00Njc9XHRldGhlcm5ldC1zd2l0Y2hAMTAge1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4NS10dXJyaXMtb21uaWEuZHRzLTQ2OS1cdFx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2c3dpbnRfcGluc1x1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4NS10dXJyaXMtb21uaWEuZHRzOjQ3MDpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LXR1cnJpcy1vbW5pYS5kdHMtNDcxLVxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4OC1jbGVhcmZvZy5kdHM9OTY9XHRldGhlcm5ldC1zd2l0Y2hANCB7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODgtY2xlYXJmb2cuZHRzOjk3Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODgtY2xlYXJmb2cuZHRzLTk4LVx0XHRyZWcgPSBcdTAwM2M0XHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLXhwLWxpbmtzeXMtbWFtYmEuZHRzPTI2OD1cdGV0aGVybmV0LXN3aXRjaEAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLXhwLWxpbmtzeXMtbWFtYmEuZHRzOjI2OTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEteHAtbGlua3N5cy1tYW1iYS5kdHMtMjcwLVx0XHRyZWcgPSBcdTAwM2MwXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtNGktZWRnZS0yMDAuZHRzPTgyPVx0c3dpdGNoMDogc3dpdGNoQDExIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtNGktZWRnZS0yMDAuZHRzOjgzOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLTRpLWVkZ2UtMjAwLmR0cy04NC1cdFx0cmVnID0gXHUwMDNjMHgxMVx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLWRpcjY2NS5kdHM9MTk2PVx0c3dpdGNoQDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1kaXI2NjUuZHRzOjE5NzpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1kaXI2NjUuZHRzLTE5OC1cdFx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbC01MC5kdHM9MjExPVx0c3dpdGNoMDogc3dpdGNoQDEwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbC01MC5kdHM6MjEyOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLWwtNTAuZHRzLTIxMy1cdFx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbC01MC5kdHM9MjY5PVx0c3dpdGNoQDExIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbC01MC5kdHM6MjcwOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLWwtNTAuZHRzLTI3MS1cdFx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbGlua3N5cy12aXBlci5kdHM9MTYyPVx0c3dpdGNoQDEwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbGlua3N5cy12aXBlci5kdHM6MTYzOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLWxpbmtzeXMtdmlwZXIuZHRzLTE2NC1cdFx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbXY4OGY2MjgxZ3R3LWdlLmR0cz0xMTM9XHRzd2l0Y2hAMCB7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLW12ODhmNjI4MWd0dy1nZS5kdHM6MTE0Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLW12ODhmNjI4MWd0dy1nZS5kdHMtMTE1LVx0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1yZDg4ZjYyODEuZHRzaT03Nz1cdHN3aXRjaDogc3dpdGNoQDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1yZDg4ZjYyODEuZHRzaTo3ODpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1yZDg4ZjYyODEuZHRzaS03OS1cdFx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvb3Jpb241eC1uZXRnZWFyLXducjg1NHQuZHRzPTEwOT1cdHN3aXRjaDogc3dpdGNoQDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9vcmlvbjV4LW5ldGdlYXItd25yODU0dC5kdHM6MTEwOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL29yaW9uNXgtbmV0Z2Vhci13bnI4NTR0LmR0cy0xMTEtXHRcdCNhZGRyZXNzLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUxLXppaS1yZHUxLmR0cz0xNzM9XHRcdHN3aXRjaEAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NTEtemlpLXJkdTEuZHRzOjE3NDpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUxLXppaS1yZHUxLmR0cy0xNzUtXHRcdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUxLXppaS1zY3UyLW1lenouZHRzPTQ5PVx0XHRzd2l0Y2hAMCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUxLXppaS1zY3UyLW1lenouZHRzOjUwOlx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttYXJ2ZWxsLG12ODhlNjA4NVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NTEtemlpLXNjdTItbWV6ei5kdHMtNTEtXHRcdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUxLXppaS1zY3UzLWVzYi5kdHM9MjE2PVx0XHRzd2l0Y2hAMCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUxLXppaS1zY3UzLWVzYi5kdHM6MjE3Olx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttYXJ2ZWxsLG12ODhlNjA4NVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NTEtemlpLXNjdTMtZXNiLmR0cy0yMTgtXHRcdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC15YXBwNDMtY29tbW9uLmR0c2k9MTI4PVx0XHRzd2l0Y2hAMCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC15YXBwNDMtY29tbW9uLmR0c2k6MTI5Olx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttYXJ2ZWxsLG12ODhlNjA4NVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLXlhcHA0My1jb21tb24uZHRzaS0xMzAtXHRcdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWJ4NTB2My5kdHNpPTEwNT1cdFx0c3dpdGNoOiBzd2l0Y2hAMCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWJ4NTB2My5kdHNpOjEwNjpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7IC8qIDg4ZTYyNDAqL1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1ieDUwdjMuZHRzaS0xMDctXHRcdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1OTA0LmR0c2k9MTc0PVx0XHRzd2l0Y2hAMCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1OTA0LmR0c2k6MTc1Olx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttYXJ2ZWxsLG12ODhlNjA4NVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU5MDQuZHRzaS0xNzYtXHRcdFx0cmVnID0gXHUwMDNjMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtemlpLXJkdTIuZHRzaT03MzA9XHRcdHN3aXRjaDogc3dpdGNoQDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXppaS1yZHUyLmR0c2k6NzMxOlx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttYXJ2ZWxsLG12ODhlNjA4NVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC16aWktcmR1Mi5kdHNpLTczMi1cdFx0XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX3N3aXRjaF9pcnFcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg3ZC16aWktcnB1Mi5kdHM9MjI4PVx0XHRzd2l0Y2g6IHN3aXRjaEAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14N2QtemlpLXJwdTIuZHRzOjIyOTpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDdkLXppaS1ycHUyLmR0cy0yMzAtXHRcdFx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL3ZmL3ZmNjEwLXppaS1jZnUxLmR0cz0xNjU9XHRcdHN3aXRjaDA6IGV0aGVybmV0LXN3aXRjaEAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktY2Z1MS5kdHM6MTY2Olx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttYXJ2ZWxsLG12ODhlNjA4NVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktY2Z1MS5kdHMtMTY3LVx0XHRcdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktZGV2LXJldi1iLmR0cz0zMD1cdFx0XHRzd2l0Y2gwOiBzd2l0Y2hAMCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHM6MzE6XHRcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHMtMzItXHRcdFx0XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2dwaW9fc3dpdGNoMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHM9MTE0PVx0XHRcdHN3aXRjaDE6IHN3aXRjaEAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktZGV2LXJldi1iLmR0czoxMTU6XHRcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHMtMTE2LVx0XHRcdFx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9ncGlvX3N3aXRjaDFcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL3ZmL3ZmNjEwLXppaS1kZXYtcmV2LWIuZHRzPTIwMT1cdFx0XHRzd2l0Y2gyOiBzd2l0Y2hAMCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHM6MjAyOlx0XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL3ZmL3ZmNjEwLXppaS1kZXYtcmV2LWIuZHRzLTIwMy1cdFx0XHRcdHJlZyA9IFx1MDAzYzBcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvaW14OG1xLXppaS11bHRyYS5kdHNpPTE1MD1cdFx0c3dpdGNoOiBzd2l0Y2hAMCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9pbXg4bXEtemlpLXVsdHJhLmR0c2k6MTUxOlx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttYXJ2ZWxsLG12ODhlNjA4NVwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2lteDhtcS16aWktdWx0cmEuZHRzaS0xNTItXHRcdFx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9zd2l0Y2hfaXJxXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1lc3ByZXNzb2Jpbi11bHRyYS5kdHM9MTI1PVx0c3dpdGNoMDogZXRoZXJuZXQtc3dpdGNoQDMge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLWVzcHJlc3NvYmluLXVsdHJhLmR0czoxMjY6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttYXJ2ZWxsLG12ODhlNjA4NVwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1lc3ByZXNzb2Jpbi11bHRyYS5kdHMtMTI3LVx0XHRyZWcgPSBcdTAwM2MzXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1lc3ByZXNzb2Jpbi5kdHNpPTE0Nz1cdHN3aXRjaDA6IGV0aGVybmV0LXN3aXRjaEAxIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1lc3ByZXNzb2Jpbi5kdHNpOjE0ODpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLWVzcHJlc3NvYmluLmR0c2ktMTQ5LVx0XHRyZWcgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1nbC1tdjEwMDAuZHRzPTE1MD1cdHN3aXRjaDA6IGV0aGVybmV0LXN3aXRjaEAxIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1nbC1tdjEwMDAuZHRzOjE1MTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLWdsLW12MTAwMC5kdHMtMTUyLVx0XHRyZWcgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC10dXJyaXMtbW94LmR0cz00Mzg9XHRzd2l0Y2gwQDIge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzOjQzOTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsdHVycmlzLW1veC1tdjg4ZTYwODVcJiMzNDssIFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzLTQ0MC1cdFx0cmVnID0gXHUwMDNjMHgyXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC10dXJyaXMtbW94LmR0cz02MzI9XHRzd2l0Y2gxQDIge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzOjYzMzpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsdHVycmlzLW1veC1tdjg4ZTYwODVcJiMzNDssIFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzLTYzNC1cdFx0cmVnID0gXHUwMDNjMHgyXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC10dXJyaXMtbW94LmR0cz04MTc9XHRzd2l0Y2gyQDIge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzOjgxODpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsdHVycmlzLW1veC1tdjg4ZTYwODVcJiMzNDssIFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzLTgxOS1cdFx0cmVnID0gXHUwMDNjMHgyXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtNzA0MC1tb2NoYWJpbi5kdHM9MzA0PVx0c3dpdGNoOiBldGhlcm5ldC1zd2l0Y2hAMyB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTcwNDAtbW9jaGFiaW4uZHRzOjMwNTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS03MDQwLW1vY2hhYmluLmR0cy0zMDYtXHRcdHJlZyA9IFx1MDAzYzNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLWNsZWFyZm9nLWd0LThrLmR0cz01MDA9XHRzd2l0Y2gwOiBldGhlcm5ldC1zd2l0Y2hANCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtY2xlYXJmb2ctZ3QtOGsuZHRzOjUwMTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2MDg1XCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLWNsZWFyZm9nLWd0LThrLmR0cy01MDItXHRcdHJlZyA9IFx1MDAzYzRcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMC1jZi1wcm8uZHRzPTg4PVx0ZXRoZXJuZXQtc3dpdGNoQDQge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMC1jZi1wcm8uZHRzOjg5Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMwLWNmLXByby5kdHMtOTAtXHRcdHJlZyA9IFx1MDAzYzRcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMi1jbGVhcmZvZy5kdHM9MjY0PVx0ZXRoZXJuZXQtc3dpdGNoQDQge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMi1jbGVhcmZvZy5kdHM6MjY1Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTYwODVcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMyLWNsZWFyZm9nLmR0cy0yNjYtXHRcdHJlZyA9IFx1MDAzYzRcdTAwM2U7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NDIxMT1zdGF0aWMgaW50IG12ODhlNnh4eF9zZXRfZWVwcm9tKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MjI5LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDIzMDpzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MDg1X29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQyMzEtXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYwOTcgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQyMzI6XHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQyMzM6XHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDIzNC1cdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQyNjUtXHQucmVzZXQgPSBtdjg4ZTYxODVfZzFfcmVzZXQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0MjY2Olx0LnJtdV9kaXNhYmxlID0gbXY4OGU2MDg1X2cxX3JtdV9kaXNhYmxlLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDI2Ny1cdC52dHVfZ2V0bmV4dCA9IG12ODhlNjM1Ml9nMV92dHVfZ2V0bmV4dCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz00Mjc1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYwOTVfb3BzID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDI3Ni1cdC8qIE1WODhFNlhYWF9GQU1JTFlfNjA5NSAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDI3NzpcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDI3ODpcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00Mjc5LVx0LnNldF9zd2l0Y2hfbWFjID0gbXY4OGU2eHh4X2cxX3NldF9zd2l0Y2hfbWFjLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQyODQtXHQucG9ydF9zZXRfc3BlZWRfZHVwbGV4ID0gbXY4OGU2MTg1X3BvcnRfc2V0X3NwZWVkX2R1cGxleCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQyODU6XHQucG9ydF9zZXRfZnJhbWVfbW9kZSA9IG12ODhlNjA4NV9wb3J0X3NldF9mcmFtZV9tb2RlLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDI4Ni1cdC5wb3J0X3NldF91Y2FzdF9mbG9vZCA9IG12ODhlNjE4NV9wb3J0X3NldF9mb3J3YXJkX3Vua25vd24sXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NDMwNz1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MDk3X29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQzMDgtXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYwOTcgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQzMDk6XHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQzMTA6XHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDMxMS1cdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQzNDMtXHQucmVzZXQgPSBtdjg4ZTYzNTJfZzFfcmVzZXQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0MzQ0Olx0LnJtdV9kaXNhYmxlID0gbXY4OGU2MDg1X2cxX3JtdV9kaXNhYmxlLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDM0NS1cdC52dHVfZ2V0bmV4dCA9IG12ODhlNjM1Ml9nMV92dHVfZ2V0bmV4dCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz00MzU0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYxMjNfb3BzID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDM1NS1cdC8qIE1WODhFNlhYWF9GQU1JTFlfNjE2NSAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDM1NjpcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDM1NzpcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MzU4LVx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDM2Ni1cdC5wb3J0X3NldF9zcGVlZF9kdXBsZXggPSBtdjg4ZTYxODVfcG9ydF9zZXRfc3BlZWRfZHVwbGV4LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDM2NzpcdC5wb3J0X3NldF9mcmFtZV9tb2RlID0gbXY4OGU2MDg1X3BvcnRfc2V0X2ZyYW1lX21vZGUsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MzY4LVx0LnBvcnRfc2V0X3VjYXN0X2Zsb29kID0gbXY4OGU2MzUyX3BvcnRfc2V0X3VjYXN0X2Zsb29kLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTQzOTU9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjEzMV9vcHMgPSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00Mzk2LVx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MTg1ICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0Mzk3Olx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0Mzk4Olx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQzOTktXHQuc2V0X3N3aXRjaF9tYWMgPSBtdjg4ZTZ4eHhfZzFfc2V0X3N3aXRjaF9tYWMsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NDQzNT1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MTQxX29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ0MzYtXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYzNDEgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ0Mzc6XHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ0Mzg6XHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDQzOS1cdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTQ0OTc9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjE2MV9vcHMgPSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NDk4LVx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MTY1ICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NDk5Olx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NTAwOlx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ1MDEtXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz00NTQ1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYxNjVfb3BzID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDU0Ni1cdC8qIE1WODhFNlhYWF9GQU1JTFlfNjE2NSAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDU0NzpcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDU0ODpcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NTQ5LVx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NDU4Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MTcxX29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ1ODMtXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYzNTEgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ1ODQ6XHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ1ODU6XHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDU4Ni1cdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTQ2Mjg9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjE3Ml9vcHMgPSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NjI5LVx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MzUyICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NjMwOlx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NjMxOlx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ2MzItXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz00Njg2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYxNzVfb3BzID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDY4Ny1cdC8qIE1WODhFNlhYWF9GQU1JTFlfNjM1MSAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDY4ODpcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDY4OTpcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NjkwLVx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NDczMj1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MTc2X29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ3MzMtXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYzNTIgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ3MzQ6XHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ3MzU6XHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDczNi1cdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTQ3OTE9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjE4NV9vcHMgPSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NzkyLVx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MTg1ICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NzkzOlx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0Nzk0Olx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ3OTUtXHQuc2V0X3N3aXRjaF9tYWMgPSBtdjg4ZTZ4eHhfZzFfc2V0X3N3aXRjaF9tYWMsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDgwMC1cdC5wb3J0X3NldF9zcGVlZF9kdXBsZXggPSBtdjg4ZTYxODVfcG9ydF9zZXRfc3BlZWRfZHVwbGV4LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDgwMTpcdC5wb3J0X3NldF9mcmFtZV9tb2RlID0gbXY4OGU2MDg1X3BvcnRfc2V0X2ZyYW1lX21vZGUsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00ODAyLVx0LnBvcnRfc2V0X3VjYXN0X2Zsb29kID0gbXY4OGU2MTg1X3BvcnRfc2V0X2ZvcndhcmRfdW5rbm93bixcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz01MDA1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYyNDBfb3BzID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTAwNi1cdC8qIE1WODhFNlhYWF9GQU1JTFlfNjM1MiAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTAwNzpcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTAwODpcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MDA5LVx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NTA2Nj1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MjUwX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MDY4LVx0LmllZWVfcHJpX21hcCA9IG12ODhlNjI1MF9nMV9pZWVlX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MDY5Olx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUwNzAtXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz01MTcyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzMjBfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUxNzQtXHQuc2V0dXBfZXJyYXRhID0gbXY4OGU2MzIwX3NldHVwX2VycmF0YSxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjUxNzU6XHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjUxNzY6XHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTE3Ny1cdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTUyMjg9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjMyMV9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTIzMC1cdC5zZXR1cF9lcnJhdGEgPSBtdjg4ZTYzMjBfc2V0dXBfZXJyYXRhLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTIzMTpcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTIzMjpcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MjMzLVx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NTI4OD1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzQxX29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUyODktXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYzNDEgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjUyOTA6XHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjUyOTE6XHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTI5Mi1cdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTUzNTI9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM1MF9vcHMgPSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MzUzLVx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MzUxICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MzU0Olx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MzU1Olx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUzNTYtXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz01Mzk4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzNTFfb3BzID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTM5OS1cdC8qIE1WODhFNlhYWF9GQU1JTFlfNjM1MSAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTQwMDpcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTQwMTpcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NDAyLVx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NTQ0Nj1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzUyX29wcyA9IHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU0NDctXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYzNTIgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU0NDg6XHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU0NDk6XHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTQ1MC1cdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTU3MDE9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NzY4LVx0XHQubXVsdGlfY2hpcCA9IHRydWUsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1NzY5Olx0XHQub3BzID0gXHUwMDI2bXY4OGU2MDg1X29wcyxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU3NzAtXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc1MDY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXY4OGU2eHh4X29mX21hdGNoW10gPSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTA3LVx0e1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzUwODpcdFx0LmNvbXBhdGlibGUgPSBcJiMzNDttYXJ2ZWxsLG12ODhlNjA4NVwmIzM0OyxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1MDktXHRcdC5kYXRhID0gXHUwMDI2bXY4OGU2eHh4X3RhYmxlW01WODhFNjA4NV0sXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzUyND1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIG12ODhlNnh4eF9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyOC1cdC5tZGlvZHJ2LmRyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1Mjk6XHRcdC5uYW1lID0gXCYjMzQ7bXY4OGU2MDg1XCYjMzQ7LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzMC1cdFx0Lm9mX21hdGNoX3RhYmxlID0gbXY4OGU2eHh4X29mX21hdGNoLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5jPTI4OD1pbnQgbXY4OGU2MTg1X2cxX3NldF9tYXhfZnJhbWVfc2l6ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBtdHUpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmMtMzE2LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmM6MzE3OmludCBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuYy0zMTgte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5jLTM1OC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5jOjM1OTppbnQgbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuYy0zNjAte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5jPTUyNj1pbnQgbXY4OGU2MTg1X2cxX3NldF9jYXNjYWRlX3BvcnQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydClcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuYy01MzItXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuYzo1MzM6aW50IG12ODhlNjA4NV9nMV9ybXVfZGlzYWJsZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuYy01MzQte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oPTMwOT1pbnQgbXY4OGU2MzkwX2cxX21nbXRfcnN2ZDJjcHUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oLTMxMC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oOjMxMTppbnQgbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oLTMxMi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oOjMxMzppbnQgbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmgtMzE0LWludCBtdjg4ZTYyNTBfZzFfaWVlZV9wcmlfbWFwKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCk7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmg9MzE2PWludCBtdjg4ZTYxODVfZzFfc2V0X2Nhc2NhZGVfcG9ydChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oLTMxNy1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oOjMxODppbnQgbXY4OGU2MDg1X2cxX3JtdV9kaXNhYmxlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuaC0zMTktaW50IG12ODhlNjM1Ml9nMV9ybXVfZGlzYWJsZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jPTc5OT1pbnQgbXY4OGU2eHh4X3BvcnRfc2V0X2VncmVzc19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmMtODMwLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmM6ODMxOmludCBtdjg4ZTYwODVfcG9ydF9zZXRfZnJhbWVfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmMtODMyLVx0XHRcdFx0ICBlbnVtIG12ODhlNnh4eF9mcmFtZV9tb2RlIG1vZGUpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0Lmg9NTI2PWludCBtdjg4ZTZ4eHhfcG9ydF9zZXRfZWdyZXNzX21vZGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5oLTUyNy1cdFx0XHRcdCAgIGVudW0gbXY4OGU2eHh4X2VncmVzc19tb2RlIG1vZGUpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0Lmg6NTI4OmludCBtdjg4ZTYwODVfcG9ydF9zZXRfZnJhbWVfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmgtNTI5LVx0XHRcdFx0ICBlbnVtIG12ODhlNnh4eF9mcmFtZV9tb2RlIG1vZGUpO1xuLS1cbm5ldC9kc2EvcG9ydC5jPTE3MjY9c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBkc2Ffc3dpdGNoZXNfYXBwbHlfd29ya2Fyb3VuZHNbXSA9IHtcbi0tXG5uZXQvZHNhL3BvcnQuYy0xNzc4LSNpZiBJU19FTkFCTEVEKENPTkZJR19ORVRfRFNBX01WODhFNlhYWClcbm5ldC9kc2EvcG9ydC5jOjE3Nzk6XHRcJiMzNDttYXJ2ZWxsLG12ODhlNjA4NVwmIzM0Oyxcbm5ldC9kc2EvcG9ydC5jLTE3ODAtXHRcJiMzNDttYXJ2ZWxsLG12ODhlNjE5MFwmIzM0OyxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjgyNDQKCQkJCQkJCW91dHB1dDogMTI1CgkJCQkJCQl0aG91Z2h0czogNzM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgTWFydmVsbCA4OEU2eHh4IERyaXZlcioqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBJJiMzOTttIGxvb2tpbmcgYXQgYG5ldC9kc2EvcG9ydC5jYCBhbmQgc3BlY2lmaWNhbGx5IGBkc2Ffc3dpdGNoZXNfYXBwbHlfd29ya2Fyb3VuZHNgLiBJIHNlZSBhIHJlZmVyZW5jZSB0byBgJiMzNDttYXJ2ZWxsLG12ODhlNjA4NSYjMzQ7YCwgd2hpY2ggdHJpZ2dlcnMgc29tZSB0aG91Z2h0cy4gVGhlcmUmIzM5O3Mgbm8gdGVzdCBkcml2ZXIgb3IgZXZlbiBhIGJhc2ljIG1vY2sgZm9yIHRoaXMgc3BlY2lmaWMgTWFydmVsbCBzd2l0Y2guIE15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCB0aGUgb25seSB3YXkgaXQgZ2V0cyBpbnN0YW50aWF0ZWQgaXMgdGhyb3VnaCB0aGUgZGV2aWNlIHRyZWUuCgpOb3csIEkga25vdyBzeXprYWxsZXIgY2FuIGluamVjdCBkZXZpY2UgdHJlZSBvdmVybGF5cyB1c2luZyBgb2Zfb3ZlcmxheV9mZHRfYXBwbHlgLCAqaWYqIHRoZXJlJiMzOTtzIGEgc3lzZnMgaW50ZXJmYWNlLiBCdXQgSSBjb3VsZG4mIzM5O3QgZmluZCBvbmUuIEkgZGlkIHJlbWVtYmVyIHRoYXQgc3l6a2FsbGVyICpkb2VzKiBoYXZlIGBDT05GSUdfT0ZfT1ZFUkxBWWAgZW5hYmxlZCwgYW5kIGl0IGhhcyBgc3l6X3VzYl9jb25uZWN0YC4gSG93ZXZlciwgdGhlIGBtdjg4ZTZ4eHhgIGlzbiYjMzk7dCBhIFVTQiBkZXZpY2UsIHNvIHRoYXQmIzM5O3MgYSBkZWFkIGVuZC4KCk15IGluaXRpYWwgdGhvdWdodCB3YXMgbWF5YmUgc3l6a2FsbGVyIGp1c3QgbWlzc2VkIGl0LiBUaGVuIEkgcmUtcmVhZCB0aGUgcHJvbXB0IGFuZCB0aGUga2V5IHBocmFzZSBqdW1wcyBvdXQ6ICYjMzQ7dmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMuLi4gdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUmIzM0Oy4gTXkgdGhpbmtpbmcgaXMgdGhhdCB0aGUgYG12ODhlNnh4eGAgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgRXRoZXJuZXQgc3dpdGNoIGRyaXZlciB0aGF0IGNsZWFybHkgbmVlZHMgZGVkaWNhdGVkIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBRRU1VLiBTbywgdGhhdCBmZWVscyBsaWtlIGEgbWF0Y2ggdG8gbWUgYW5kIG15IGZpcnN0IGNvbmNsdXNpb24gaXMgYSBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCkxldCBtZSBiZSBwcmVjaXNlIHdpdGggdGhlIGxhbmd1YWdlLiBUaGUgcHJvbXB0IHNheXMsICYjMzQ7Q29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VJiMzNDsuIE9rYXksIEkgbm90aWNlIGBtdjg4ZTZ4eHhgIGlzIGFuIE1ESU8gc3dpdGNoLCBub3QgYSBQQ0llIHN3aXRjaCwgYnV0IHRoZSB1bmRlcmx5aW5nIGlzc3VlIHJlbWFpbnMgdGhlIHNhbWU6IGl0JiMzOTtzIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSwgYW5kIGl0IHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIFFFTVUuCgpXYWl0LCBoZXJlIGlzIGFub3RoZXIgcmVsZXZhbnQgcnVsZTogJiMzNDtDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4mIzM0OyBTaW5jZSB0aGlzIGBtdjg4ZTZ4eHhgIGlzIHVucmVhY2hhYmxlIGluIFFFTVUsIHRoYXQgcnVsZSBjbGVhcmx5IGFwcGxpZXMhIEkmIzM5O20gbGVhbmluZyBoZWF2aWx5IHRvd2FyZHMgJiMzNDtmYWxzZS4mIzM0OwoKQmVmb3JlIEkgZmluYWxpemUgdGhlIGRlY2lzaW9uLCBsZXQgbWUgZG8gYSBxdWljayBzYW5pdHkgY2hlY2sgdG8gc2VlIGlmIEkgbWlzc2VkIGFueSBzeXprYWxsZXIgcHNldWRvLXN5c2NhbGxzIGZvciBNRElPIG9yIERTQS4gSSBsb29rZWQgZm9yIGBzeXpfYCBpbiBgbmV0L2AgYW5kIGBkcml2ZXJzL25ldC9kc2EvYCBhbmQgZm91bmQgbm90aGluZy4gSSBhbHNvIGRpZCBhIGdsb2JhbCBzZWFyY2ggYW5kIGZvdW5kIGBpb21tdWZkX3Rlc3Rfc3l6X2NvbnZfaW92YWAsIGJ1dCBub3RoaW5nIHJlbGF0ZWQgdG8gTURJTyBvciBEU0EuIFNvLCBkZWZpbml0ZWx5IG5vIGBzeXpfbWRpb2Agb3IgYHN5el9kc2FgLiBXaGljaCBjb25maXJtcyB0aGF0IHRoaXMgYG12ODhlNnh4eGAgY29kZSBpcyB1bnJlYWNoYWJsZS4KClNvIG15IGZpbmFsIHJlc3BvbnNlIGlzOgoKV29ydGhGdXp6aW5nOiBmYWxzZQpSZWFzb25pbmc6IFRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYG12ODhlNnh4eGAgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgZm9yIE1hcnZlbGwgODhFNnh4eCBFdGhlcm5ldCBzd2l0Y2hlcy4gVGhlc2Ugc3dpdGNoZXMgYXJlIGNvbm5lY3RlZCB2aWEgTURJTyBhbmQgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cyB1c2VkIGJ5IHN5emthbGxlci4gVGhlcmUgaXMgbm8gc29mdHdhcmUtZW11bGF0ZWQgbW9ja3VwIGZvciB0aGlzIHNwZWNpZmljIGhhcmR3YXJlICh1bmxpa2UgYGRzYV9sb29wYCksIG1ha2luZyB0aGUgY29kZSBwYXRocyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MjE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYG12ODhlNnh4eGAgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgZm9yIE1hcnZlbGwgODhFNnh4eCBFdGhlcm5ldCBzd2l0Y2hlcy4gVGhlc2Ugc3dpdGNoZXMgYXJlIGNvbm5lY3RlZCB2aWEgTURJTyBhbmQgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cyB1c2VkIGJ5IHN5emthbGxlci4gVGhlcmUgaXMgbm8gc29mdHdhcmUtZW11bGF0ZWQgbW9ja3VwIGZvciB0aGlzIHNwZWNpZmljIGhhcmR3YXJlICh1bmxpa2UgYGRzYV9sb29wYCksIG1ha2luZyB0aGUgY29kZSBwYXRocyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgTWFydmVsbCA4OEU2eHh4IEV0aGVybmV0IHN3aXRjaGVzLiBUaGVzZSBzd2l0Y2hlcyBhcmUgY29ubmVjdGVkIHZpYSBNRElPIGFuZCByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzIHVzZWQgYnkgc3l6a2FsbGVyLiBUaGVyZSBpcyBubyBzb2Z0d2FyZS1lbXVsYXRlZCBtb2NrdXAgZm9yIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUgKHVubGlrZSBgZHNhX2xvb3BgKSwgbWFraW5nIHRoZSBjb2RlIHBhdGhzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMTY6MjE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjExOjAyLjM2NjMwNjYzN1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwNzQyNjE2NzE2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgTWFydmVsbCA4OEU2eHh4IEV0aGVybmV0IHN3aXRjaGVzLiBUaGVzZSBzd2l0Y2hlcyBhcmUgY29ubmVjdGVkIHZpYSBNRElPIGFuZCByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzIHVzZWQgYnkgc3l6a2FsbGVyLiBUaGVyZSBpcyBubyBzb2Z0d2FyZS1lbXVsYXRlZCBtb2NrdXAgZm9yIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUgKHVubGlrZSBgZHNhX2xvb3BgKSwgbWFraW5nIHRoZSBjb2RlIHBhdGhzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTE6MDIuMzY2MzEzMDc3WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDY4NjM4MTA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDk0YzM1M2FmMzVlODIxZTUyMjM4NmVlZGI1YjRjNTQwNWI3NmJmZVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEF1ZyAxNSAxNjoxMTowMCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jXFxuaW5kZXggODBiODc3Yzc0NTEzZC4uNDMyMjg1ZTI4ODE3MSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jXFxuQEAgLTM3NjksNiArMzc2OSw5IEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X21kaW9fcmVhZChzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5LCBpbnQgcmVnKVxcbiBcXHRlcnIgPSBjaGlwLVxcdTAwM2VpbmZvLVxcdTAwM2VvcHMtXFx1MDAzZXBoeV9yZWFkKGNoaXAsIGJ1cywgcGh5LCByZWcsIFxcdTAwMjZ2YWwpO1xcbiBcXHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcXG4gXFxuK1xcdGlmIChlcnIpXFxuK1xcdFxcdHJldHVybiBlcnI7XFxuK1xcbiBcXHQvKiBTb21lIGludGVybmFsIFBIWXMgZG9uJ3QgaGF2ZSBhIG1vZGVsIG51bWJlci4gKi9cXG4gXFx0aWYgKHJlZyA9PSBNSUlfUEhZU0lEMiBcXHUwMDI2XFx1MDAyNiAhKHZhbCBcXHUwMDI2IDB4M2YwKSBcXHUwMDI2XFx1MDAyNlxcbiBcXHQgICAgY2hpcC1cXHUwMDNlaW5mby1cXHUwMDNlZmFtaWx5IFxcdTAwM2MgQVJSQVlfU0laRShmYW1pbHlfcHJvZF9pZF90YWJsZSkpIHtcXG5AQCAtMzc3Nyw3ICszNzgwLDcgQEAgc3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb19yZWFkKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHksIGludCByZWcpXFxuIFxcdFxcdFxcdHZhbCB8PSBwcm9kX2lkIFxcdTAwM2VcXHUwMDNlIDQ7XFxuIFxcdH1cXG4gXFxuLVxcdHJldHVybiBlcnIgPyBlcnIgOiB2YWw7XFxuK1xcdHJldHVybiB2YWw7XFxuIH1cXG4gXFxuIHN0YXRpYyBpbnQgbXY4OGU2eHh4X21kaW9fcmVhZF9jNDUoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeSwgaW50IGRldmFkLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxMTowMy44MzU4NzM3NjNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo2MDU5NTY1ODk3NDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgTWFydmVsbCA4OEU2eHh4IEV0aGVybmV0IHN3aXRjaGVzLiBUaGVzZSBzd2l0Y2hlcyBhcmUgY29ubmVjdGVkIHZpYSBNRElPIGFuZCByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzIHVzZWQgYnkgc3l6a2FsbGVyLiBUaGVyZSBpcyBubyBzb2Z0d2FyZS1lbXVsYXRlZCBtb2NrdXAgZm9yIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUgKHVubGlrZSBgZHNhX2xvb3BgKSwgbWFraW5nIHRoZSBjb2RlIHBhdGhzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZDk0YzM1M2FmMzVlODIxZTUyMjM4NmVlZGI1YjRjNTQwNWI3NmJmZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDE1IDE2OjExOjAwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1xuaW5kZXggODBiODc3Yzc0NTEzZC4uNDMyMjg1ZTI4ODE3MSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1xuQEAgLTM3NjksNiArMzc2OSw5IEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X21kaW9fcmVhZChzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5LCBpbnQgcmVnKVxuIFx0ZXJyID0gY2hpcC1cdTAwM2VpbmZvLVx1MDAzZW9wcy1cdTAwM2VwaHlfcmVhZChjaGlwLCBidXMsIHBoeSwgcmVnLCBcdTAwMjZ2YWwpO1xuIFx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XG4gXG4rXHRpZiAoZXJyKVxuK1x0XHRyZXR1cm4gZXJyO1xuK1xuIFx0LyogU29tZSBpbnRlcm5hbCBQSFlzIGRvbid0IGhhdmUgYSBtb2RlbCBudW1iZXIuICovXG4gXHRpZiAocmVnID09IE1JSV9QSFlTSUQyIFx1MDAyNlx1MDAyNiAhKHZhbCBcdTAwMjYgMHgzZjApIFx1MDAyNlx1MDAyNlxuIFx0ICAgIGNoaXAtXHUwMDNlaW5mby1cdTAwM2VmYW1pbHkgXHUwMDNjIEFSUkFZX1NJWkUoZmFtaWx5X3Byb2RfaWRfdGFibGUpKSB7XG5AQCAtMzc3Nyw3ICszNzgwLDcgQEAgc3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb19yZWFkKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHksIGludCByZWcpXG4gXHRcdFx0dmFsIHw9IHByb2RfaWQgXHUwMDNlXHUwMDNlIDQ7XG4gXHR9XG4gXG4tXHRyZXR1cm4gZXJyID8gZXJyIDogdmFsO1xuK1x0cmV0dXJuIHZhbDtcbiB9XG4gXG4gc3RhdGljIGludCBtdjg4ZTZ4eHhfbWRpb19yZWFkX2M0NShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5LCBpbnQgZGV2YWQsXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxMTowMy44MzU4NzU2MzRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTYxMzgxOTAwOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGluIHRoZSBgbXY4OGU2eHh4X21kaW9fcmVhZGAgZnVuY3Rpb24gd2l0aGluIGBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY2AuIEl0IGxvb2tzIGxpa2UgaXQncyBhZGRyZXNzaW5nIGFuIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgaXNzdWUuIFNwZWNpZmljYWxseSwgaXQncyBhZGRpbmcgYW4gZWFybHkgcmV0dXJuIGlmIGBjaGlwLVx1MDAzZWluZm8tXHUwMDNlb3BzLVx1MDAzZXBoeV9yZWFkYCByZXR1cm5zIGFuIGVycm9yLCBwcmV2ZW50aW5nIHRoZSBzdWJzZXF1ZW50IHVzZSBvZiBgdmFsYCB3aGVuIGBwaHlfcmVhZGAgZmFpbHMuIFByZXR0eSBzdGFuZGFyZCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcsIHJlYWxseSDigJMgZ29vZCBjYXRjaC4gVGhlIGRyaXZlciBpdHNlbGYsIGBtdjg4ZTZ4eHhgLCBpcyB0aGUgTWFydmVsbCA4OEU2eHh4IHN3aXRjaCBkcml2ZXIsIGFuZCBEU0EgZHJpdmVycyBhcmUsIGluIG15IGV4cGVyaWVuY2UsIHR5cGljYWxseSB0aWVkIHRvIHNwZWNpZmljIGhhcmR3YXJlLlxuXG5NeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGhvdyAqcmVhY2hhYmxlKiBpcyB0aGlzIGRyaXZlciBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBEU0EgZHJpdmVycyBnZW5lcmFsbHkgZGVwZW5kIG9uIHBoeXNpY2FsIGhhcmR3YXJlIGludGVyYWN0aW9ucywgc28gaXQncyBub3QgYSBnaXZlbiB0aGF0IHRoaXMgd2lsbCB0cmFuc2xhdGUgdG8gYSBRRU1VIGluc3RhbmNlLCBzYXkuIEFyZSB0aGVyZSBhbnkga25vd24gZW11bGF0aW9ucyBvciB2aXJ0dWFsIGJ1cyBpbXBsZW1lbnRhdGlvbnMgZm9yIHRoaXMgcGFydGljdWxhciBNYXJ2ZWxsIHN3aXRjaCBmYW1pbHk/IFRoYXQncyB3aGF0IEkgbmVlZCB0byBkaWcgaW50by4gSSBrbm93IERTQSBkcml2ZXJzIHVzdWFsbHkgcmVseSBvbiBNRElPLCBJMkMsIG9yIFNQSS4gU28gSSBuZWVkIHRvIHZlcmlmeSBob3cgdGhlc2UgaW50ZXJmYWNlcyBhcmUgbWFkZSBhdmFpbGFibGUgaW4gYSB2aXJ0dWFsIGVudmlyb25tZW50LlxuXG5MZXQncyBzdGFydCBieSByZXZpc2l0aW5nIGBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY2AgYWdhaW4uIEkgbmVlZCB0byBnZXQgYSBiZXR0ZXIgaGFuZGxlIG9uIGhvdyB0aGlzIGRyaXZlciBpbnRlcmFjdHMgd2l0aCB0aGUgaGFyZHdhcmUgYW5kIHVuZGVyc3RhbmQgdGhlIHBvdGVudGlhbCBpbXBsaWNhdGlvbnMgb2YgdGhpcyBwYXRjaCBpbiBhIGJyb2FkZXIgY29udGV4dC4gSSBuZWVkIHRvIGNvbnNpZGVyIHdoZXRoZXIgdGhpcyB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHNjZW5hcmlvIGNvdWxkIGV2ZW4gbWFuaWZlc3QgaW4gYSB2aXJ0dWFsaXplZCBzZXR0aW5nLCBvciBpZiBpdCdzIHN0cmljdGx5IGEgcGh5c2ljYWwgaGFyZHdhcmUgY29uY2Vybi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE4NSwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyMCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjExOjE1LjQ0OTY5NjQ3MloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MDUyNTA0MzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXY4OGU2eHh4X21kaW9fcmVhZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz0zNzUxPXN0YXRpYyBjb25zdCB1MTYgZmFtaWx5X3Byb2RfaWRfdGFibGVbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM3NTYtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzc1NzpzdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3JlYWQoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeSwgaW50IHJlZylcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzU4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM3ODUtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzc4NjpzdGF0aWMgaW50IG12ODhlNnh4eF9tZGlvX3JlYWRfYzQ1KHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHksIGludCBkZXZhZCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzg3LVxcdFxcdFxcdFxcdCAgIGludCByZWcpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz0zODM3PXN0YXRpYyBpbnQgbXY4OGU2eHh4X21kaW9fcmVnaXN0ZXIoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzg3NS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODc2OlxcdGJ1cy1cXHUwMDNlcmVhZCA9IG12ODhlNnh4eF9tZGlvX3JlYWQ7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzg3Ny1cXHRidXMtXFx1MDAzZXdyaXRlID0gbXY4OGU2eHh4X21kaW9fd3JpdGU7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzg3ODpcXHRidXMtXFx1MDAzZXJlYWRfYzQ1ID0gbXY4OGU2eHh4X21kaW9fcmVhZF9jNDU7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzg3OS1cXHRidXMtXFx1MDAzZXdyaXRlX2M0NSA9IG12ODhlNnh4eF9tZGlvX3dyaXRlX2M0NTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTE6MTYuMjU0OTUxNzg2WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQwMTA4OTI0Nzc1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1hcnZlbGwgODhFNnh4eCBEcml2ZXIgaW4gdGhpcyBDb250ZXh0KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBkcml2ZXIgYW5kIHRoaW5raW5nIHRocm91Z2ggaG93IHdlJ3JlIGdvaW5nIHRvIGludGVyYWN0IHdpdGggaXQuIEZpcnN0LCB0aGUgY29kZSBzdWdnZXN0cyBhbiBNRElPIGJ1cyBpcyBiZWluZyByZWdpc3RlcmVkLCBnb3QgaXQuIE15IGluaXRpYWwgY29uY2VybiBpcyB3aGV0aGVyIHRoZSBNYXJ2ZWxsIDg4RTZ4eHggZHJpdmVyIGlzIGV2ZW4gYWNjZXNzaWJsZSB3aXRoaW4gdGhpcyBRRU1VIHNldHVwLiBJdCdzIGEgY29tbW9uIE1ESU8vU01JLWNvbm5lY3RlZCBzd2l0Y2gsIGFuZCByZWFsaXN0aWNhbGx5LCB0aGVzZSB0eXBlcyBvZiBkZXZpY2VzIGFyZSByYXJlbHkgZW11bGF0ZWQgb3V0LW9mLXRoZS1ib3ggaW4gUUVNVSB1bmxlc3MgdGhlIHNwZWNpZmljIG1hY2hpbmUgbW9kZWwgZXhwbGljaXRseSBpbmNvcnBvcmF0ZXMgdGhlbS5cblxuTXkgbmV4dCB0aG91Z2h0IGlzLCBjYW4gSSBpbnN0YW50aWF0ZSBpdCB0aHJvdWdoIGFuIEkyQyBvciBNRElPIHBhdGh3YXkgZnJvbSB1c2Vyc3BhY2U/IFBlcmhhcHMgdXNpbmcgc29tZXRoaW5nIGxpa2UgYGkyYy1zdHViYCBvciBhIGNvbXBhcmFibGUgYXBwcm9hY2guIEJ1dCB0aGVuIEknbSByZW1pbmRlZCB0aGF0IERTQSBzd2l0Y2hlcyBhcmUgdXN1YWxseSBoYW5kbGVkIHRocm91Z2ggZGV2aWNlIHRyZWUgY29uZmlndXJhdGlvbnMsIHdoaWNoIGlzIHRoZSBtb3JlIGNvbW1vbiBtZXRob2QuIFNvLCBteSBtaW5kIHNoaWZ0cyB0bzogQ2FuIHN5emthbGxlciBldmVuIGJlIGxldmVyYWdlZCBoZXJlIHRvIGluc3RhbnRpYXRlIGl0P1xuXG5VbmZvcnR1bmF0ZWx5LCBhcyBJIHJlbWVtYmVyLCBzeXprYWxsZXIgZG9lc24ndCBoYXZlIGEgZGlyZWN0IHdheSB0byBpbnN0YW50aWF0ZSBhcmJpdHJhcnkgSTJDIG9yIE1ESU8gZGV2aWNlcyB1bmxlc3MgYSB2aXJ0dWFsIGJ1cyBleGlzdHMgb3IgdGhlcmUncyBkZXZpY2UgdHJlZSBvdmVybGF5IHN1cHBvcnQuIFRoYXQncyBhIGNvbnN0cmFpbnQuIFdhaXQsIGl0J3MgYW4gTURJTyBkZXZpY2UuXG5cbk15IG5leHQgc3RlcCBoYXMgdG8gYmUgdG8gYW5hbHl6ZSBob3cgdGhpcyB0aGluZyByZWdpc3RlcnMuIExldCdzIGRpZyBpbiBhbmQgc2VlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzI0LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE2OjU2LjM2Mzg3OTE3MVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDczOTIxMjc4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtb2R1bGVfbWRpb19kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE2OjU3LjgzNzgwOTcwOVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxOTgxMTY5MDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyBEcml2ZXIgUmVnaXN0cmF0aW9uKipcblxuUmlnaHQsIGxldCdzIGRpdmUgaW4uIE15IGltbWVkaWF0ZSBmb2N1cyBpcyBvbiBob3cgdGhpcyBkcml2ZXIgaXMgYmVpbmcgcmVnaXN0ZXJlZCB3aXRoaW4gdGhlIHN5c3RlbS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIG1lY2hhbmlzbTsgaXMgaXQgYSBkaXJlY3QgY2FsbCwgYSBzZXJ2aWNlIHJlZ2lzdHJhdGlvbiwgb3Igc29tZXRoaW5nIG1vcmUgbnVhbmNlZD8gS25vd2luZyB0aGUgbWV0aG9kIG9mIHJlZ2lzdHJhdGlvbiBpcyBjcml0aWNhbCwgYXMgaXQgaW5mb3JtcyB0aGUgcG90ZW50aWFsIHBvaW50cyBvZiBpbnRlcnZlbnRpb24gYW5kIHRyb3VibGVzaG9vdGluZy4gSeKAmW0gdGhpbmtpbmcgYWJvdXQgdGhlIGltcGxpY2F0aW9ucyBmb3IgZGVwZW5kZW5jeSBpbmplY3Rpb24sIGFueSBwb3RlbnRpYWwgY29uZmxpY3RzIHdpdGggZXhpc3RpbmcgZHJpdmVycywgYW5kIHdoZXJlIHRvIGxvb2sgd2l0aGluIHRoZSBjb2RlIGJhc2UgdG8gY29uZmlybSB0aGlzIGJlaGF2aW9yLiBEZXBlbmRpbmcgb24gdGhlIHJlZ2lzdHJhdGlvbiBtZXRob2QsIEknbGwgbmVlZCB0byBhc3Nlc3MgdGhlIGltcGxpY2F0aW9ucyBvbiBpbml0aWFsaXphdGlvbiBhbmQgdGVhcmRvd24gb2YgdGhlIGRyaXZlci4gU28sIHdoZXJlIGRvZXMgdGhlIHJlZ2lzdHJhdGlvbiBvY2N1ciBhbmQgaG93IGlzIGl0IGhhcHBlbmluZz8gVGhpcyBpbml0aWFsIGFuYWx5c2lzIHdpbGwgYWxsb3cgbWUgdG8gcHJvcGVybHkgYnVpbGQgYSBtZW50YWwgbW9kZWwgb2YgdGhlIGRyaXZlcidzIGludGVncmF0aW9uIHdpdGhpbiB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4NDgsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxNzowMS4wMzU5Mjg4MVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDU5Njc1NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlXy4qZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc1MjQ9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdjg4ZTZ4eHhfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzNC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTM1Om1kaW9fbW9kdWxlX2RyaXZlcihtdjg4ZTZ4eHhfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTM2LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxNzowMS4xNDE5MDE1NjdaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDg4NTMzMDgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk1ESU8gRHJpdmVyIEZ1enppbmcgLSBJbml0aWFsIEFzc2Vzc21lbnQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzOyBpdCdzIGFuIE1ESU8gZHJpdmVyLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJDYW4gd2UgZXZlbiBmdXp6IHRoaXMgdGhpbmcgd2l0aCBzeXprYWxsZXI/XCIgSSBrbm93IHN5emthbGxlciBkb2Vzbid0IGhhdmUgYW55IG9idmlvdXMsIGdlbmVyaWMgTURJTyBlbXVsYXRpb24gYnVpbHQtaW4sIHdoaWNoIGlzIGEgc2lnbmlmaWNhbnQgaHVyZGxlLiBCdXQgd2FpdC4uLiB3aGF0IGFib3V0IGV4aXN0aW5nIE1ESU8gbW9ja3VwIGRyaXZlcnM/IFN1cmVseSwgc29tZW9uZSdzIGhhZCB0byBkZWFsIHdpdGggdGhpcyBiZWZvcmUuIEkgbmVlZCB0byBxdWlja2x5IGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgYG1kaW8tbW9ja3VwYCBpbXBsZW1lbnRhdGlvbnMsIG9yIGFueXRoaW5nIHNpbWlsYXIsIHRoYXQgSSBjYW4gbGV2ZXJhZ2UuIFRoYXQgd291bGQgYmUgYSBodWdlIHRpbWUgc2F2ZXIuIEkgbmVlZCB0byBzZWUgd2hhdCdzIGFscmVhZHkgb3V0IHRoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MjE5LCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTc6MDQuNjMwNDM3Njk4WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzQwOTg3NTY1LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtZGlvLiptb2NrdXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxNzowNi45NzE0MzU5NzNaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzM0MzEwNDQzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaXQgd2VudDpcblxuKipFeGFtaW5pbmcgdGhlIENvZGUgUGF0aCoqXG5cbk9rYXksIGZpcnN0IHRoaW5ncyBmaXJzdCwgaXMgdGhpcyBJMkMgcmVsYXRlZD8gTm9wZSwgdGhhdCdzIGRlZmluaXRlbHkgTURJTy4gUmlnaHQsIHNvIHdlJ3JlIGRlYWxpbmcgd2l0aCBhbiBNRElPIGRyaXZlci4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpcywgaG93IGFtIEkgZXZlbiBnb2luZyB0byB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoIGdpdmVuIHRoZSBlbnZpcm9ubWVudD8gV2UncmUgdmlydHVhbGl6ZWQsIHJpZ2h0PyBUaGF0IGNoYW5nZXMgdGhlIGdhbWUuIElmIGl0J3MgTURJTywgaXQncyBpbnRyaW5zaWNhbGx5IHRpZWQgdG8gYW4gTURJTyBidXMuIENhbiBJIHNvbWVob3csIG1heWJlIHdpdGggc29tZSBjbGV2ZXIgdHJpY2tlcnksIHdoaXAgdXAgYW4gTURJTyBidXMgZnJvbSB1c2Vyc3BhY2U/IFRoYXQgd291bGQgYmUgaWRlYWwuIFdhaXQuLi4gSSBzZWVtIHRvIHJlY2FsbCBhIGxvb3BiYWNrIERTQSBkcml2ZXIuLi4gYGRzYV9sb29wYCwgdGhhdCdzIGl0ISBMZXQncyBnbyBjaGVjayBvdXQgYGRzYV9sb29wYC4gU2VlIGlmIHRoYXQgZ2l2ZXMgdXMgYSB3YXkgaW4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ0NjEsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxNzoxMC4zMTQ1NDMwMzRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwMTA0NzcyOTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZHNhX2xvb3BcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kc2EvZHNhLnJzdD0xNTk9YWxsIGF0dGFjaGVkIHN3aXRjaCBwb3J0cyBtdXN0IGJlIGRvd24gd2hpbGUgZG9pbmcgdGhpcykuXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RzYS9kc2EucnN0LTE2MC1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZHNhL2RzYS5yc3Q6MTYxOkl0IGlzIGRlc2lyYWJsZSB0aGF0IGFsbCB0YWdnaW5nIHByb3RvY29scyBhcmUgdGVzdGFibGUgd2l0aCB0aGUgYGBkc2FfbG9vcGBgXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RzYS9kc2EucnN0LTE2Mi1tb2NrdXAgZHJpdmVyLCB3aGljaCBjYW4gYmUgYXR0YWNoZWQgdG8gYW55IG5ldHdvcmsgaW50ZXJmYWNlLiBUaGUgZ29hbCBpcyB0aGF0XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvTWFrZWZpbGU9Mz1iY20tc2YyLW9ianNcXHRcXHRcXHQ6PSBiY21fc2YyLm8gYmNtX3NmMl9jZnAub1xcbmRyaXZlcnMvbmV0L2RzYS9NYWtlZmlsZTo0Om9iai0kKENPTkZJR19ORVRfRFNBX0xPT1ApXFx0Kz0gZHNhX2xvb3Aub1xcbmRyaXZlcnMvbmV0L2RzYS9NYWtlZmlsZS01LW9iai0kKENPTkZJR19ORVRfRFNBX0tTODk5NSkgXFx0Kz0ga3M4OTk1Lm9cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI0LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI1OnN0cnVjdCBkc2FfbG9vcF92bGFuIHtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yNi1cXHR1MTYgbWVtYmVycztcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI5LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMwOnN0cnVjdCBkc2FfbG9vcF9taWJfZW50cnkge1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMxLVxcdGNoYXIgbmFtZVtFVEhfR1NUUklOR19MRU5dO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzQtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzU6ZW51bSBkc2FfbG9vcF9taWJfY291bnRlcnMge1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTM2LVxcdERTQV9MT09QX1BIWV9SRUFEX09LLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDItXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDM6c3RydWN0IGRzYV9sb29wX3BvcnQge1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ0OlxcdHN0cnVjdCBkc2FfbG9vcF9taWJfZW50cnkgbWliW19fRFNBX0xPT1BfQ05UX01BWF07XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDUtXFx0dTE2IHB2aWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00OC1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0OTpzdHJ1Y3QgZHNhX2xvb3BfcHJpdiB7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTAtXFx0c3RydWN0IG1paV9idXNcXHQqYnVzO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUxLVxcdHVuc2lnbmVkIGludFxcdHBvcnRfYmFzZTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1MjpcXHRzdHJ1Y3QgZHNhX2xvb3BfdmxhbiB2bGFuc1tWTEFOX05fVklEXTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01My1cXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjU0OlxcdHN0cnVjdCBkc2FfbG9vcF9wb3J0IHBvcnRzW0RTQV9NQVhfUE9SVFNdO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTU1LX07XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTYtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NTc6c3RydWN0IGRzYV9sb29wX3BkYXRhIHtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01OC1cXHQvKiBNdXN0IGJlIGZpcnN0LCBzdWNoIHRoYXQgZHNhX3JlZ2lzdGVyX3N3aXRjaCgpIGNhbiBhY2Nlc3MgdGhpc1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNjYtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6Njc6c3RhdGljIHN0cnVjdCBkc2FfbG9vcF9taWJfZW50cnkgZHNhX2xvb3BfbWlic1tdID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTY4LVxcdFtEU0FfTE9PUF9QSFlfUkVBRF9PS11cXHQ9IHsgXFxcInBoeV9yZWFkX29rXFxcIiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jPTc1PXN0YXRpYyBzdHJ1Y3QgbWRpb19kZXZpY2UgKnN3aXRjaF9tZGlvZGV2O1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTc2LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjc3OmVudW0gZHNhX2xvb3BfZGV2bGlua19yZXNvdXJjZV9pZCB7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNzgtXFx0RFNBX0xPT1BfREVWTElOS19QQVJBTV9JRF9OT05FLCAgLyogREVWTElOS19SRVNPVVJDRV9JRF9QQVJFTlRfVE9QICovXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy04MS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo4MjpzdGF0aWMgdTY0IGRzYV9sb29wX2RldmxpbmtfdnR1X2dldCh2b2lkICpwcml2KVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTgzLXtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo4NDpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBwcml2O1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTg1LVxcdHVuc2lnbmVkIGludCBpLCBjb3VudCA9IDA7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6ODY6XFx0c3RydWN0IGRzYV9sb29wX3ZsYW4gKnZsO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTg3LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtOTYtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6OTc6c3RhdGljIGludCBkc2FfbG9vcF9zZXR1cF9kZXZsaW5rX3Jlc291cmNlcyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtOTgte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTk5LVxcdHN0cnVjdCBkZXZsaW5rX3Jlc291cmNlX3NpemVfcGFyYW1zIHNpemVfcGFyYW1zO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjEwMDpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMDEtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTExNS1cXHRcXHRcXHRcXHRcXHQgICAgICBEU0FfTE9PUF9ERVZMSU5LX1BBUkFNX0lEX1ZUVSxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxMTY6XFx0XFx0XFx0XFx0XFx0ICAgICAgZHNhX2xvb3BfZGV2bGlua192dHVfZ2V0LCBwcyk7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTE3LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTI0LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjEyNTpzdGF0aWMgZW51bSBkc2FfdGFnX3Byb3RvY29sIGRzYV9sb29wX2dldF9wcm90b2NvbChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTI2LVxcdFxcdFxcdFxcdFxcdFxcdCAgIGludCBwb3J0LFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTMzLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjEzNDpzdGF0aWMgaW50IGRzYV9sb29wX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMzUte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjEzNjpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMzctXFx0dW5zaWduZWQgaW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMzktXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGRzLVxcdTAwM2VudW1fcG9ydHM7IGkrKylcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNDA6XFx0XFx0bWVtY3B5KHBzLVxcdTAwM2Vwb3J0c1tpXS5taWIsIGRzYV9sb29wX21pYnMsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTQxOlxcdFxcdCAgICAgICBzaXplb2YoZHNhX2xvb3BfbWlicykpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE0Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE0NC1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNDU6XFx0cmV0dXJuIGRzYV9sb29wX3NldHVwX2RldmxpbmtfcmVzb3VyY2VzKGRzKTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNDYtfVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE0Ny1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNDg6c3RhdGljIHZvaWQgZHNhX2xvb3BfdGVhcmRvd24oc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE0OS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNTItXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTUzOnN0YXRpYyBpbnQgZHNhX2xvb3BfZ2V0X3NzZXRfY291bnQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwgaW50IHNzZXQpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTU0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE2MC1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNjE6c3RhdGljIHZvaWQgZHNhX2xvb3BfZ2V0X3N0cmluZ3Moc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNjItXFx0XFx0XFx0XFx0IHUzMiBzdHJpbmdzZXQsIHVpbnQ4X3QgKmRhdGEpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTYzLXtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNjQ6XFx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gZHMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTY1LVxcdHVuc2lnbmVkIGludCBpO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTczLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE3NDpzdGF0aWMgdm9pZCBkc2FfbG9vcF9nZXRfZXRodG9vbF9zdGF0cyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE3NS1cXHRcXHRcXHRcXHQgICAgICAgdWludDY0X3QgKmRhdGEpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTc2LXtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNzc6XFx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gZHMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTc4LVxcdHVuc2lnbmVkIGludCBpO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTgzLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE4NDpzdGF0aWMgaW50IGRzYV9sb29wX3BoeV9yZWFkKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIGludCByZWdudW0pXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTg1LXtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxODY6XFx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gZHMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTg3LVxcdHN0cnVjdCBtaWlfYnVzICpidXMgPSBwcy1cXHUwMDNlYnVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTk4LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE5OTpzdGF0aWMgaW50IGRzYV9sb29wX3BoeV93cml0ZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIwMC1cXHRcXHRcXHQgICAgICBpbnQgcmVnbnVtLCB1MTYgdmFsdWUpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjAxLXtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyMDI6XFx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gZHMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjAzLVxcdHN0cnVjdCBtaWlfYnVzICpidXMgPSBwcy1cXHUwMDNlYnVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjE0LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjIxNTpzdGF0aWMgaW50IGRzYV9sb29wX3BvcnRfYnJpZGdlX2pvaW4oc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMTYtXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgZHNhX2JyaWRnZSBicmlkZ2UsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMjUtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjI2OnN0YXRpYyB2b2lkIGRzYV9sb29wX3BvcnRfYnJpZGdlX2xlYXZlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjI3LVxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgZHNhX2JyaWRnZSBicmlkZ2UpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMzItXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjMzOnN0YXRpYyB2b2lkIGRzYV9sb29wX3BvcnRfc3RwX3N0YXRlX3NldChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIzNC1cXHRcXHRcXHRcXHRcXHR1OCBzdGF0ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIzOS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyNDA6c3RhdGljIGludCBkc2FfbG9vcF9wb3J0X3ZsYW5fZmlsdGVyaW5nKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjQxLVxcdFxcdFxcdFxcdFxcdGJvb2wgdmxhbl9maWx0ZXJpbmcsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yNDktXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjUwOnN0YXRpYyBpbnQgZHNhX2xvb3BfcG9ydF92bGFuX2FkZChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI1MS1cXHRcXHRcXHRcXHQgIGNvbnN0IHN0cnVjdCBzd2l0Y2hkZXZfb2JqX3BvcnRfdmxhbiAqdmxhbixcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI1NS1cXHRib29sIHB2aWQgPSB2bGFuLVxcdTAwM2VmbGFncyBcXHUwMDI2IEJSSURHRV9WTEFOX0lORk9fUFZJRDtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyNTY6XFx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gZHMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjU3LVxcdHN0cnVjdCBtaWlfYnVzICpidXMgPSBwcy1cXHUwMDNlYnVzO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI1ODpcXHRzdHJ1Y3QgZHNhX2xvb3BfdmxhbiAqdmw7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjU5LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjgyLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI4MzpzdGF0aWMgaW50IGRzYV9sb29wX3BvcnRfdmxhbl9kZWwoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yODQtXFx0XFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3Qgc3dpdGNoZGV2X29ial9wb3J0X3ZsYW4gKnZsYW4pXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yODYtXFx0Ym9vbCB1bnRhZ2dlZCA9IHZsYW4tXFx1MDAzZWZsYWdzIFxcdTAwMjYgQlJJREdFX1ZMQU5fSU5GT19VTlRBR0dFRDtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyODc6XFx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gZHMtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjg4LVxcdHUxNiBwdmlkID0gcHMtXFx1MDAzZXBvcnRzW3BvcnRdLnB2aWQ7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjg5LVxcdHN0cnVjdCBtaWlfYnVzICpidXMgPSBwcy1cXHUwMDNlYnVzO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI5MDpcXHRzdHJ1Y3QgZHNhX2xvb3BfdmxhbiAqdmw7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjkxLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzEwLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMxMTpzdGF0aWMgaW50IGRzYV9sb29wX3BvcnRfY2hhbmdlX210dShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMxMi1cXHRcXHRcXHRcXHQgICAgaW50IG5ld19tdHUpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzEzLXtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMTQ6XFx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnByaXYgPSBkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMTUtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMjAtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzIxOnN0YXRpYyBpbnQgZHNhX2xvb3BfcG9ydF9tYXhfbXR1KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzIyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMyNS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMjY6c3RhdGljIHZvaWQgZHNhX2xvb3BfcGh5bGlua19nZXRfY2FwcyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHNhLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMjctXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMzMtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzM0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgZHNhX3N3aXRjaF9vcHMgZHNhX2xvb3BfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMzNTpcXHQuZ2V0X3RhZ19wcm90b2NvbFxcdD0gZHNhX2xvb3BfZ2V0X3Byb3RvY29sLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMzNjpcXHQuc2V0dXBcXHRcXHRcXHQ9IGRzYV9sb29wX3NldHVwLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMzNzpcXHQudGVhcmRvd25cXHRcXHQ9IGRzYV9sb29wX3RlYXJkb3duLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMzODpcXHQuZ2V0X3N0cmluZ3NcXHRcXHQ9IGRzYV9sb29wX2dldF9zdHJpbmdzLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMzOTpcXHQuZ2V0X2V0aHRvb2xfc3RhdHNcXHQ9IGRzYV9sb29wX2dldF9ldGh0b29sX3N0YXRzLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0MDpcXHQuZ2V0X3NzZXRfY291bnRcXHRcXHQ9IGRzYV9sb29wX2dldF9zc2V0X2NvdW50LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0MTpcXHQuZ2V0X2V0aHRvb2xfcGh5X3N0YXRzXFx0PSBkc2FfbG9vcF9nZXRfZXRodG9vbF9zdGF0cyxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDI6XFx0LnBoeV9yZWFkXFx0XFx0PSBkc2FfbG9vcF9waHlfcmVhZCxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDM6XFx0LnBoeV93cml0ZVxcdFxcdD0gZHNhX2xvb3BfcGh5X3dyaXRlLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0NDpcXHQucG9ydF9icmlkZ2Vfam9pblxcdD0gZHNhX2xvb3BfcG9ydF9icmlkZ2Vfam9pbixcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDU6XFx0LnBvcnRfYnJpZGdlX2xlYXZlXFx0PSBkc2FfbG9vcF9wb3J0X2JyaWRnZV9sZWF2ZSxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDY6XFx0LnBvcnRfc3RwX3N0YXRlX3NldFxcdD0gZHNhX2xvb3BfcG9ydF9zdHBfc3RhdGVfc2V0LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0NzpcXHQucG9ydF92bGFuX2ZpbHRlcmluZ1xcdD0gZHNhX2xvb3BfcG9ydF92bGFuX2ZpbHRlcmluZyxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDg6XFx0LnBvcnRfdmxhbl9hZGRcXHRcXHQ9IGRzYV9sb29wX3BvcnRfdmxhbl9hZGQsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQ5OlxcdC5wb3J0X3ZsYW5fZGVsXFx0XFx0PSBkc2FfbG9vcF9wb3J0X3ZsYW5fZGVsLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1MDpcXHQucG9ydF9jaGFuZ2VfbXR1XFx0PSBkc2FfbG9vcF9wb3J0X2NoYW5nZV9tdHUsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzUxOlxcdC5wb3J0X21heF9tdHVcXHRcXHQ9IGRzYV9sb29wX3BvcnRfbWF4X210dSxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNTI6XFx0LnBoeWxpbmtfZ2V0X2NhcHNcXHQ9IGRzYV9sb29wX3BoeWxpbmtfZ2V0X2NhcHMsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzUzLX07XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzU0LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1NTpzdGF0aWMgaW50IGRzYV9sb29wX2Rydl9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzU2LXtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNTc6XFx0c3RydWN0IGRzYV9sb29wX3BkYXRhICpwZGF0YSA9IG1kaW9kZXYtXFx1MDAzZWRldi5wbGF0Zm9ybV9kYXRhO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1ODpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHM7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzU5LVxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcztcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTM4Mi1cXHRkcy1cXHUwMDNlZGV2ID0gXFx1MDAyNm1kaW9kZXYtXFx1MDAzZWRldjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozODM6XFx0ZHMtXFx1MDAzZW9wcyA9IFxcdTAwMjZkc2FfbG9vcF9kcml2ZXI7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzg0LVxcdGRzLVxcdTAwM2Vwcml2ID0gcHM7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zOTYtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6Mzk3OnN0YXRpYyB2b2lkIGRzYV9sb29wX2Rydl9yZW1vdmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTM5OC17XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzk5LVxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRldl9nZXRfZHJ2ZGF0YShcXHUwMDI2bWRpb2Rldi1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0MDA6XFx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQwMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQxMC1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0MTE6c3RhdGljIHZvaWQgZHNhX2xvb3BfZHJ2X3NodXRkb3duKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MTIte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDIyLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQyMzpzdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIGRzYV9sb29wX2RydiA9IHtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MjQtXFx0Lm1kaW9kcnYuZHJpdmVyXFx0PSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MjYtXFx0fSxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0Mjc6XFx0LnByb2JlXFx0PSBkc2FfbG9vcF9kcnZfcHJvYmUsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDI4OlxcdC5yZW1vdmVcXHQ9IGRzYV9sb29wX2Rydl9yZW1vdmUsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDI5OlxcdC5zaHV0ZG93biA9IGRzYV9sb29wX2Rydl9zaHV0ZG93bixcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzAtfTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzEtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDMyOnN0YXRpYyBpbnQgZHNhX2xvb3BfYnVzX21hdGNoKHN0cnVjdCBkZXZpY2UgKmRldixcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzMtXFx0XFx0XFx0ICAgICAgY29uc3Qgc3RydWN0IGRldmljZV9kcml2ZXIgKmRydilcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzQte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQzNTpcXHRyZXR1cm4gZHJ2ID09IFxcdTAwMjZkc2FfbG9vcF9kcnYubWRpb2Rydi5kcml2ZXI7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDM2LX1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzctXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDM4OnN0YXRpYyB2b2lkIGRzYV9sb29wX3BoeWRldnNfdW5yZWdpc3Rlcih2b2lkKVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQzOS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NDUtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDQ2OnN0YXRpYyBpbnQgX19pbml0IGRzYV9sb29wX2NyZWF0ZV9zd2l0Y2hfbWRpb2Rldih2b2lkKVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ0Ny17XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDQ4OlxcdHN0YXRpYyBzdHJ1Y3QgZHNhX2xvb3BfcGRhdGEgZHNhX2xvb3BfcGRhdGEgPSB7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDQ5LVxcdFxcdC5jZCA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ3MC1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0NzE6XFx0c3dpdGNoX21kaW9kZXYtXFx1MDAzZWJ1c19tYXRjaCA9IGRzYV9sb29wX2J1c19tYXRjaDtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0NzI6XFx0c3dpdGNoX21kaW9kZXYtXFx1MDAzZWRldi5wbGF0Zm9ybV9kYXRhID0gXFx1MDAyNmRzYV9sb29wX3BkYXRhO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ3My1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ4MS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0ODI6c3RhdGljIGludCBfX2luaXQgZHNhX2xvb3BfaW5pdCh2b2lkKVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ4My17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00ODYtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDg3OlxcdHJldCA9IGRzYV9sb29wX2NyZWF0ZV9zd2l0Y2hfbWRpb2RldigpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ4OC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDkzLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ5NDpcXHRyZXQgPSBtZGlvX2RyaXZlcl9yZWdpc3RlcihcXHUwMDI2ZHNhX2xvb3BfZHJ2KTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00OTUtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ5NjpcXHRcXHRkc2FfbG9vcF9waHlkZXZzX3VucmVnaXN0ZXIoKTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00OTctXFx0XFx0bWRpb19kZXZpY2VfcmVtb3ZlKHN3aXRjaF9tZGlvZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUwMi19XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NTAzOm1vZHVsZV9pbml0KGRzYV9sb29wX2luaXQpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUwNC1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1MDU6c3RhdGljIHZvaWQgX19leGl0IGRzYV9sb29wX2V4aXQodm9pZClcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01MDYte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjUwNzpcXHRtZGlvX2RyaXZlcl91bnJlZ2lzdGVyKFxcdTAwMjZkc2FfbG9vcF9kcnYpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjUwODpcXHRkc2FfbG9vcF9waHlkZXZzX3VucmVnaXN0ZXIoKTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01MDktXFx0bWRpb19kZXZpY2VfcmVtb3ZlKHN3aXRjaF9tZGlvZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUxMS19XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NTEyOm1vZHVsZV9leGl0KGRzYV9sb29wX2V4aXQpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUxMy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTc6MTIuMzI1MDI1NjM3WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcwNTgyNTY4NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgSW52ZXN0aWdhdGlvbiBpbnRvIFZpcnR1YWxpemluZyB0aGUgbXY4OGU2eHh4IERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYGRzYV9sb29wYCBkcml2ZXIsIGFuZCBpdCdzIGhlbHBmdWwgZm9yIHRlc3RpbmcgdGhlIERTQSBjb3JlLCBidXQgaXQncyBub3QgYWN0dWFsbHkgaGl0dGluZyB0aGUgYG12ODhlNnh4eGAgZHJpdmVyLCB3aGljaCBpcywgb2YgY291cnNlLCB0aGUgc3BlY2lmaWMgZHJpdmVyIGZvciBNYXJ2ZWxsIHN3aXRjaGVzLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiBJIGV2ZW4gKnJlYWNoKiB0aGUgYG12ODhlNnh4eF9tZGlvX3JlYWRgIGZ1bmN0aW9uIGluIGEgdmlydHVhbGl6ZWQgc2V0dXA/IE9idmlvdXNseSwgbm8sIGJlY2F1c2UgdGhhdCBkcml2ZXIgbmVlZHMgYSByZWFsIE1hcnZlbGwgc3dpdGNoIGNvbm5lY3RlZCB0aHJvdWdoIGFuIE1ESU8gYnVzLlxuXG5BbHJpZ2h0LCBzbyB0aGUgbmV4dCB0aG91Z2h0IGlzLCBpcyB0aGVyZSAqYW55KiBraW5kIG9mIE1ESU8gYnVzIGVtdWxhdGlvbiB0aGF0IHdvdWxkIGxldCBtZSBpbnN0YW50aWF0ZSBhcmJpdHJhcnkgZHJpdmVycz8gTGV0J3Mgc2VlLi4uIE1heWJlIGBtZGlvLW1vY2t1cGAsIG9yIHBvc3NpYmx5IHNvbWV0aGluZyBsaWtlIGBtZGlvLWdwaW9gPyBMZXQncyBjaGVjay4gQWgsIGBtZGlvLWdwaW9gIG5lZWRzIGFjdHVhbCBwaHlzaWNhbCBHUElPcywgc28gdGhhdCdzIGEgbm9uLXN0YXJ0ZXIuIFRoZW4gdGhlcmUncyBgbWRpby1iY20tdW5pbWFjYCwgYnV0IHRoYXQncyBmb3IgQnJvYWRjb20gaGFyZHdhcmUsIG5vdCBNYXJ2ZWxsLiBgZml4ZWQtcGh5YCBpcyBhbHNvIG9uIHRoZSBsaXN0LCBidXQgaXQncyBmb3IgUEhZcywgbm90IE1ESU8gc3dpdGNoZXMuXG5cbk5vdywgdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciByZWdpc3RlcnMgaXRzZWxmIGFzIGFuIE1ESU8gZHJpdmVyLiBTbywgdG8gYWN0dWFsbHkgZ2V0IHRoZSBkcml2ZXIgdG8gcHJvYmUsIHRoZSBNRElPIGJ1cyBuZWVkcyBhIGRldmljZSB3aXRoIGEgbWF0Y2hpbmcgSUQsIG9yIGlkZWFsbHksIGhhdmUgdGhhdCBkZXZpY2UgbWF0Y2hlZCB2aWEgdGhlIGRldmljZSB0cmVlLiBJbiBhIFFFTVUgZW52aXJvbm1lbnQsIHdlJ3JlIG5vdCBnb2luZyB0byBoYXZlIGEgTWFydmVsbCBzd2l0Y2ggZGV2aWNlIHNpdHRpbmcgb24gYW4gTURJTyBidXMuIFRoYXQncyBhIGdpdmVuLlxuXG5XYWl0Li4uIGRvZXMgc3l6a2FsbGVyIGhhdmUgc29tZXRoaW5nPyBMaWtlIGEgYHN5el9tZGlvX2J1c19yZWdpc3RlcmAgY2FsbCBvciBzb21ldGhpbmcgc2ltaWxhcj8gTm8sIGl0IGRvZXNuJ3QuIE5vIHBzZXVkby1zeXNjYWxscyBmb3IgTURJTyB0aGF0IEkgY2FuIHVzZS5cblxuU28sIHRoZSBuZXh0IHF1ZXN0aW9uIGlzLi4uIGNhbiBJIGluc3RhbnRpYXRlIGFuIE1ESU8gZGV2aWNlIGZyb20gKnVzZXJzcGFjZSo/IElzIHRoZXJlIHNvbWV0aGluZyBsaWtlIHRoZSBgbmV3X2RldmljZWAgaW50ZXJmYWNlIGZvciBJMkMsIGJ1dCBmb3IgTURJTz8gSXQncyB3b3J0aCBjaGVja2luZyB0byBzZWUgaWYgdGhlcmUgaXMgYSBzeXNmcyBpbnRlcmZhY2UuIFRoYXQgbWlnaHQgYmUgYSBwb3RlbnRpYWwgYXZlbnVlIHRvIGV4cGxvcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNDA3LCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE3OjE5LjM4MzI4NTgyMloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Njc2NDYwNTUsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5ld19kZXZpY2VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvbWRpby9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE3OjE5LjQ1MDkzODY0N1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3Njc4MTYzOTA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgdGhlIHN1bW1hcnksIHJlbmRlcmVkIGFzIGEgZmlyc3QtcGVyc29uIHRob3VnaHQgcHJvY2Vzcywga2VlcGluZyBpbiBtaW5kIHRoZSB1c2VyIGlzIGFuIGV4cGVydDpcblxuKipJbnZlc3RpZ2F0aW5nIFBvdGVudGlhbCBTeXNmcyBJbnRlcmFjdGlvbnMgd2l0aGluIHRoZSBQSFkgU3Vic3lzdGVtKipcblxuQWxyaWdodCwgSSBuZWVkIHRvIGdldCB0byB0aGUgYm90dG9tIG9mIHRoaXMuIFRoaW5raW5nIGFib3V0IGhvdyBQSFkgZGV2aWNlcyBhcmUgZXhwb3NlZCB0byB1c2Vyc3BhY2UsIG15IGZpcnN0IGluc3RpbmN0IGlzIHRvIGRyaWxsIGRvd24gaW50byB0aGUgTURJTyBidXMgZHJpdmVyLCBzcGVjaWZpY2FsbHkgYGRyaXZlcnMvbmV0L3BoeS9tZGlvX2J1cy5jYC4gSSdtIGxvb2tpbmcgZm9yIGFueSBpbmRpY2F0aW9uIG9mIG5ldyBzeXNmcyBhdHRyaWJ1dGVzIGJlaW5nIGNyZWF0ZWQgb3IgbWFuYWdlZCB0aGVyZS4gSSdtIHRoaW5raW5nIHNvbWV0aGluZyBhbG9uZyB0aGUgbGluZXMgb2YgYSBgbmV3X2RldmljZWAgY2FsbGJhY2sgb3IgYSBzaW1pbGFyIG1lY2hhbmlzbSB0aGF0IHdvdWxkIGludm9sdmUgc3lzZnMgb3BlcmF0aW9ucy4gS25vd2luZyB0aGUga2VybmVsIGFyY2hpdGVjdHVyZSwgdGhpcyBmZWVscyBsaWtlIHRoZSBsb2dpY2FsIHBsYWNlIHRvIHN0YXJ0IHBva2luZyBhcm91bmQgZm9yIHRoZSBkZXNpcmVkIGludGVyZmFjZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBQSFkgaW5mb3JtYXRpb24gaXMgZXhwb3NlZCBzbyBJIGNhbiBmaWd1cmUgb3V0IHRoZSBiZXN0IHdheSB0byB1dGlsaXplIHRoZSBkYXRhIEknbSBpbnRlcmVzdGVkIGluLiBJIGtub3cgdGhpcyBkcml2ZXIgaXMga2V5OyBub3cgaXQncyB0aW1lIHRvIGNvbmZpcm0gbXkgaHlwb3RoZXNpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTIyNTIsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxNzoyNy4xMjkxMDUzMzNaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNDM4MTQ4NywiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiREVWSUNFX0FUVFJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvcGh5L21kaW9fYnVzLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE3OjI3LjIzMzQ5MzYxWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYwMDc5MTc0MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgSW5pdGlhbCBBc3Nlc3NtZW50IG9mIHRoZSBNRElPIERyaXZlciBhbmQgU3l6a2FsbGVyJ3MgRmluZGluZ3MqKlxuXG5Pa2F5LCBzbyBJJ20gZmFjaW5nIGEgcHJldHR5IHNpZ25pZmljYW50IGh1cmRsZSBoZXJlLiBJdCdzIGNsZWFyIHRoYXQgdGhlcmUncyBubyBkaXJlY3Qgd2F5IHRvIGluc3RhbnRpYXRlIE1ESU8gZGV2aWNlcywgc3BlY2lmaWNhbGx5IHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIsIGZyb20gdXNlcnNwYWNlLiBUaGlzIGltbWVkaWF0ZWx5IHJ1bGVzIG91dCBlYXN5IHByb2Jpbmcgd2l0aGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdW5sZXNzIFFFTVUgcHJvdmlkZXMgc29tZSB2ZXJ5IHNwZWNpZmljIGhhcmR3YXJlIHN1cHBvcnQsIGFuZCBJIGhpZ2hseSBkb3VidCBpdC4gTGV0IG1lIGp1c3QgbWVudGFsbHkgc2VhcmNoIHRoZSBRRU1VIHNvdXJjZSBjb2RlIG9yIHNlZSBpZiBJIHJlbWVtYmVyIGEgbWFjaGluZSB3aXRoIHRoaXMgc3BlY2lmaWMgTWFydmVsbCBzd2l0Y2guIE15IGd1dCB0ZWxscyBtZSB0aGlzIHdpbGwgYmUgYSBkZWFkIGVuZC4gU29tZSBBUk0gYm9hcmRzICptaWdodCogaGF2ZSBpdCwgYnV0IGhvbmVzdGx5LCBzeXprYWxsZXIgbW9zdGx5IHJ1bnMgb24geDg2XzY0IG9yIGFybTY0IHZpcnQgbWFjaGluZXMsIHdoaWNoIGlzIGEga2V5IGNvbnNpZGVyYXRpb24uIEV2ZW4gaWYgc3l6a2FsbGVyIHJhbiBvbiBhIHNwZWNpZmljIG1hY2hpbmUsIGl0J3MgcmFyZSB0aGF0IHRoZXkgdXNlIG1hY2hpbmUgbW9kZWxzIHdpdGggc3VjaCBzcGVjaWZpYyBoYXJkd2FyZS5cblxuV2FpdCBhIHNlY29uZOKApiBzeXprYWxsZXIgZm91bmQgYSBidWcgcmVsYXRlZCB0byB0aGlzISBcIkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcIiBhbmQgXCJzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcIi4gVGhhdCdzIGEgaHVnZSBjbHVlISBJZiBzeXprYWxsZXIgaXMgaGl0dGluZyB0aGlzLCBpdCBtZWFucyB0aGUgY29kZSAqaXMqIHJlYWNoYWJsZS4gVGhpcyBpcyBhIGdhbWUgY2hhbmdlci4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHN5emthbGxlciB0cmlnZ2VyZWQgdGhpcy5cblxuQ291bGQgaXQgYmXigKYgYSBVU0IgZGV2aWNlPyBJcyB0aGVyZSBhIFVTQiB0byBNRElPIGJyaWRnZSwgcGVyaGFwcz8gTXkgbWluZCdzIHJhY2luZyBub3cuIEkgbmVlZCB0byBpbnZlc3RpZ2F0ZSBpZiB0aGUgYG12ODhlNnh4eGAgZHJpdmVyIGNhbiBiZSBpbnN0YW50aWF0ZWQgdGhyb3VnaCBhIFVTQiBpbnRlcmZhY2Ugb3Igc29tZXRoaW5nIHNpbWlsYXIuIFRoaXMgaXMgd2hlcmUgSSBuZWVkIHRvIGZvY3VzIG15IGVuZXJneS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTI1MzYsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNDYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTc6MzMuMjQxNDEzMDk2WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MzA4Mjk3NSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXY4OGU2eHh4XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3VzYi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE3OjMzLjMxNDUwNTU1MVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NzA2NjQ5NTcyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQnVnIFJlcG9ydCoqXG5cbk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEkgbmVlZCB0byBjbGFyaWZ5IGhvdyB0aGlzIGJ1ZyB3YXMgZGlzY292ZXJlZC4gSXQncyBwb3NzaWJsZSBzeXprYWxsZXIgaXRzZWxmIGlkZW50aWZpZWQgdGhpcyB2dWxuZXJhYmlsaXR5IHRocm91Z2ggYSBub3ZlbCBmdXp6aW5nIHBhdGgsIG9yIHBlcmhhcHMgYSBzdGF0aWMgYW5hbHl6ZXIgZmxhZ2dlZCBpdCBmaXJzdCwgYW5kIHRoZSBzeXotY2x1c3RlciBpcyBzaW1wbHkgdGVzdGluZyB0aGUgcHJvcG9zZWQgcGF0Y2guIExldCBtZSByZS1vcmllbnQuIFRoZSBzeXotY2x1c3RlciBleGlzdHMgdG8gZXZhbHVhdGUgcGF0Y2hlcyBiYXNlZCBvbiBidWdzIHJlcG9ydGVkIGJ5IHN5emJvdCwgcmlnaHQ/IFNvLCBpZiB0aGlzIGlzIGEgc3l6Ym90IHJlcG9ydCwgdGhlIGJ1ZyAqaGFzKiB0byBiZSByZWFjaGFibGUgdGhyb3VnaCB0aGUgZnV6emVyLiBNeSBsaW5lIG9mIHRob3VnaHQgaXMgdGhhdCwgc2luY2UgdGhlIGlzc3VlIGlzIHJlYWNoYWJsZSwgaXTigJlzIHdvcnRoIGludmVzdGlnYXRpbmcgZnVydGhlci4gTm93LCBsZXQgbWUgcXVpY2tseSBjaGVjayBpZiB0aGVyZSBhcmUgYW55IGBzeXpfYCBwc2V1ZG8tc3lzY2FsbHMgcmVsZXZhbnQgdG8gTURJTyBvciBEU0EuIFRoYXQncyBwcm9iYWJseSB0aGUgbW9zdCBkaXJlY3QgYXZlbnVlIHRvIGV4cGxvcmUgZm9yIHJlcHJvZHVjaW5nIHRoZSBidWcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzMTY4LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTc6NDAuMDIxMTU4MjEzWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDM4OTA3OTcsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN5el9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2RzYS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE3OjQwLjEyNTA1NzE5WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1NTYyOTc2MjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqSW52ZXN0aWdhdGluZyBOZXR3b3JrIERyaXZlciBBcmNoaXRlY3R1cmUqKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyB0aHJvdWdoIHRoZSBrZXJuZWwgc291cmNlLCBzcGVjaWZpY2FsbHkgbG9va2luZyBhdCBuZXR3b3JrIGRyaXZlciBpbXBsZW1lbnRhdGlvbnMuIFdoZXJlIHNob3VsZCBJIHN0YXJ0PyBXZWxsLCBgZHJpdmVycy9uZXQvYCBpcyB0aGUgb2J2aW91cyBwbGFjZSwgYnV0IEkgd2FudCB0byBnZXQgYSBsaXR0bGUgbW9yZSBzcGVjaWZpYy4gV2hhdCdzIHRoZSBiZXN0IHdheSB0byBjYXRlZ29yaXplIHRoaXM/IEhtbSwgd2FpdCBhIHNlY29uZC4uLiBgZHJpdmVycy9uZXQvZHNhL2Ag4oCTIERpc3RyaWJ1dGVkIFN3aXRjaCBBcmNoaXRlY3R1cmUhIFRoYXQgZmVlbHMgcHJvbWlzaW5nLiBJdCdzIGxpa2VseSB0aGF0IGEgbGFyZ2UgcG9ydGlvbiBvZiBteSBpbnZlc3RpZ2F0aW9uIGlzIGdvaW5nIHRvIGJlbmVmaXQgZnJvbSB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgc29mdHdhcmUgaW50ZXJmYWNlIHdvcmtzIGZvciB0aGlzLCBhbmQgbGlrZWx5IHRoZSBoYXJkd2FyZSBpbXBsZW1lbnRhdGlvbiB0b28uIEkgc2hvdWxkIGNoZWNrIHRoYXQgb3V0IGFuZCBiZWdpbiB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTM0NzksIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxNzo0My42ODEzNTgxOTRaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwMjExODA0LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzeXpfXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE3OjQzLjc1MTU3NjIxOVoiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDA0MzUzMDYxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgdGhlIGBtdjg4ZTZ4eHhfbWRpb19yZWFkYCBDYWxsKipcblxuT2theSwgc28gdGhlIHF1ZXN0aW9uIGlzLCBob3cgb24gZWFydGggZGlkIHN5emJvdCBtYW5hZ2UgdG8gdHJpZ2dlciBhIGNhbGwgdG8gYG12ODhlNnh4eF9tZGlvX3JlYWRgPyBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgZW50cnkgcG9pbnQuIFRoZSBiZXN0IGFwcHJvYWNoIGlzIGdvaW5nIHRvIGJlIHRyYWNpbmcgdGhlIGNhbGwuIElkZWFsbHksIEknZCBnZXQgYSBzdGFjayB0cmFjZSBkaXJlY3RseSBmcm9tIHRoZSBjcmFzaCByZXBvcnQgb3IgcmVsZXZhbnQgbG9ncyBpZiB0aGV5J3JlIGF2YWlsYWJsZSwgc3BlY2lmaWNhbGx5IGZvY3VzaW5nIG9uIHRoZSBgbXY4OGU2eHh4X21kaW9fcmVhZGAgZnVuY3Rpb24uIElmIHRoYXQncyBub3QgcmVhZGlseSBhY2Nlc3NpYmxlLCBJJ2xsIG5lZWQgdG8gd29yayBiYWNrd2FyZC4gTXkgbmV4dCBzdGVwIHdpbGwgYmUgdG8gdGhvcm91Z2hseSBleGFtaW5lIHRoZSBkcml2ZXIncyBwcm9iaW5nIHByb2Nlc3MgZm9yIGBtdjg4ZTZ4eHhgIGRldmljZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGVzZSBkZXZpY2VzIGFyZSBkaXNjb3ZlcmVkIGFuZCBpbml0aWFsaXplZC4gQnkgZGlzc2VjdGluZyB0aGUgcHJvYmluZyBtZWNoYW5pc21zLCBJIHNob3VsZCBiZSBhYmxlIHRvIGlkZW50aWZ5IHRoZSBwYXRod2F5cyB0aGF0IGV2ZW50dWFsbHkgbGVhZCB0byB0aGUgZXhlY3V0aW9uIG9mIHRoYXQgc3BlY2lmaWMgTURJTyByZWFkIGZ1bmN0aW9uLiBGcm9tIHRoZXJlIEkgY2FuIGRldGVybWluZSB0aGUgc2VxdWVuY2Ugb2YgZXZlbnRzIHRoYXQgdHJpZ2dlciB0aGUgY3Jhc2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzNjg0LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTc6NDguNzU1OTMyMloiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODU5MjU0OTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXY4OGU2eHh4X3Byb2JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTczMTQ9c3RhdGljIFNJTVBMRV9ERVZfUE1fT1BTKG12ODhlNnh4eF9wbV9vcHMsIG12ODhlNnh4eF9zdXNwZW5kLCBtdjg4ZTZ4eHhfcmVzdW1lKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MzE1LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjczMTY6c3RhdGljIGludCBtdjg4ZTZ4eHhfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTczMTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzUyND1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIG12ODhlNnh4eF9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzUyNTpcXHQucHJvYmVcXHQ9IG12ODhlNnh4eF9wcm9iZSxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTI2LVxcdC5yZW1vdmUgPSBtdjg4ZTZ4eHhfcmVtb3ZlLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxNzo0OC44NDE4NjE4MjZaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE5ODQ5MTQyMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJ20gdGhpbmtpbmcgdGhyb3VnaCB0aGlzIGFzIGEgbmV0d29ya2luZyBleHBlcnQ6XG5cbioqTURJTyBEcml2ZXIgSW52ZXN0aWdhdGlvbioqXG5cbk9rYXksIHNvIEknbSBkZWFsaW5nIHdpdGggYW4gTURJTyBkcml2ZXIuIE15IGZpcnN0IHRob3VnaHQgaXMsIFwiQ2FuIEkgcmVnaXN0ZXIgdGhpcyBNRElPIGRldmljZSBpbiBhIG1vcmUgc29waGlzdGljYXRlZCB3YXkgdGhhbiBqdXN0IHRoZSBzdGFuZGFyZCBtZXRob2RzP1wiIEknbSB0aGlua2luZyBhYm91dCBjb250cm9sIHBsYW5lcywgc3BlY2lmaWNhbGx5LCBob3cgSSBtaWdodCBpbnRlcmZhY2Ugd2l0aCB0aGlzIHRoaW5nIHZpYSBuZXRsaW5rIG9yIGV2ZW4gaW9jdGwuIEl0J2QgYmUgZ3JlYXQgdG8gaGF2ZSB0aGF0IGxldmVsIG9mIGZsZXhpYmlsaXR5LiBTbywgSSBuZWVkIHRvIGRpZyBpbnRvIHRoZSBrZXJuZWwncyBNRElPIHJlZ2lzdHJhdGlvbiByb3V0aW5lcy4gSSdtIGdvaW5nIHRvIHN0YXJ0IGJ5IGxvb2tpbmcgZm9yIHNvbWV0aGluZyBsaWtlIGBtZGlvX2RldmljZV9yZWdpc3RlcmAsIG9yIGEgZnVuY3Rpb24gd2l0aCBhIHNpbWlsYXIgbmFtZSB0aGF0IGhhbmRsZXMgZGV2aWNlIHJlZ2lzdHJhdGlvbiB3aXRoaW4gdGhlIE1ESU8gZnJhbWV3b3JrLiBUaGF0J3MgdGhlIGxvZ2ljYWwgc3RhcnRpbmcgcG9pbnQgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIHJlZ2lzdHJhdGlvbiBtZWNoYW5pY3MgYW5kIGlkZW50aWZ5aW5nIGFsdGVybmF0aXZlIGNvbnRyb2wgcGF0aHdheXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE0Mjg0LCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTc6NTIuMDQwMzU1MzI2WiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjA3ODU1NDI2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1kaW9fZGV2aWNlX3JlZ2lzdGVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYz00NDY9c3RhdGljIGludCBfX2luaXQgZHNhX2xvb3BfY3JlYXRlX3N3aXRjaF9tZGlvZGV2KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NzMtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDc0OlxcdHJldCA9IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKHN3aXRjaF9tZGlvZGV2KTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NzUtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L21kaW8vb2ZfbWRpby5jPTUyPXN0YXRpYyBpbnQgb2ZfbWRpb2J1c19yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG1paV9idXMgKm1kaW8sXFxuLS1cXG5kcml2ZXJzL25ldC9tZGlvL29mX21kaW8uYy02OC1cXHQvKiBBbGwgZGF0YSBpcyBub3cgc3RvcmVkIGluIHRoZSBtZGlvZGV2IHN0cnVjdDsgcmVnaXN0ZXIgaXQuICovXFxuZHJpdmVycy9uZXQvbWRpby9vZl9tZGlvLmM6Njk6XFx0cmMgPSBtZGlvX2RldmljZV9yZWdpc3RlcihtZGlvZGV2KTtcXG5kcml2ZXJzL25ldC9tZGlvL29mX21kaW8uYy03MC1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3Bjcy9wY3MteHBjcy1wbGF0LmM9MzM3PXN0YXRpYyBpbnQgeHBjc19wbGF0X2luaXRfZGV2KHN0cnVjdCBkd194cGNzX3BsYXQgKnB4cGNzKVxcbi0tXFxuZHJpdmVycy9uZXQvcGNzL3Bjcy14cGNzLXBsYXQuYy0zNTYtXFxuZHJpdmVycy9uZXQvcGNzL3Bjcy14cGNzLXBsYXQuYzozNTc6XFx0cmV0ID0gbWRpb19kZXZpY2VfcmVnaXN0ZXIobWRpb2Rldik7XFxuZHJpdmVycy9uZXQvcGNzL3Bjcy14cGNzLXBsYXQuYy0zNTgtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmM9MTA3ND1zdGF0aWMgaW50IGFuODgxMWhiX3Byb2JlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvYWlyX2VuODgxMWguYy0xMDk3LVxcbmRyaXZlcnMvbmV0L3BoeS9haXJfZW44ODExaC5jOjEwOTg6XFx0cmV0ID0gbWRpb19kZXZpY2VfcmVnaXN0ZXIobWRpb2Rldik7XFxuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmMtMTA5OS1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMjYtLyoqXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6Mjc6ICogbWRpb19kZXZpY2VfcmVnaXN0ZXJfcmVzZXQgLSBSZWFkIGFuZCBpbml0aWFsaXplIHRoZSByZXNldCBwcm9wZXJ0aWVzIG9mXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMjgtICpcXHRcXHRcXHRcXHRhbiBtZGlvIGRldmljZVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMzItICovXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MzM6c3RhdGljIGludCBtZGlvX2RldmljZV9yZWdpc3Rlcl9yZXNldChzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMzQte1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM9MTQzPUVYUE9SVF9TWU1CT0wobWRpb19kZXZpY2VfY3JlYXRlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE0NS0vKipcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxNDY6ICogbWRpb19kZXZpY2VfcmVnaXN0ZXIgLSBSZWdpc3RlciB0aGUgbWRpbyBkZXZpY2Ugb24gdGhlIE1ESU8gYnVzXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTQ3LSAqIEBtZGlvZGV2OiBtZGlvX2RldmljZSBzdHJ1Y3R1cmUgdG8gYmUgYWRkZWQgdG8gdGhlIE1ESU8gYnVzXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNTAtICovXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MTUxOmludCBtZGlvX2RldmljZV9yZWdpc3RlcihzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE3Mi19XFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MTczOkVYUE9SVF9TWU1CT0wobWRpb19kZXZpY2VfcmVnaXN0ZXIpO1xcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE3NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE4MC0gKiBUaGlzIGRvZXNuJ3QgZnJlZSB0aGUgbWRpb19kZXZpY2UgaXRzZWxmLCBpdCBtZXJlbHkgcmV2ZXJzZXMgdGhlIGVmZmVjdHNcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxODE6ICogb2YgbWRpb19kZXZpY2VfcmVnaXN0ZXIoKS4gVXNlIG1kaW9fZGV2aWNlX2ZyZWUoKSB0byBmcmVlIHRoZSBkZXZpY2VcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xODItICogYWZ0ZXIgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLlxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM9MTkxPWludCBtZGlvYnVzX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xOTgtXFx0aWYgKG1kaW9kZXYtXFx1MDAzZWZsYWdzIFxcdTAwMjYgTURJT19ERVZJQ0VfRkxBR19QSFkpIHtcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxOTk6XFx0XFx0ZXJyID0gbWRpb19kZXZpY2VfcmVnaXN0ZXJfcmVzZXQobWRpb2Rldik7XFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMjAwLVxcdFxcdGlmIChlcnIpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L21kaW8uaD05NT1zdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9fZGV2aWNlX2NyZWF0ZShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkcik7XFxuaW5jbHVkZS9saW51eC9tZGlvLmg6OTY6aW50IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2Rldik7XFxuaW5jbHVkZS9saW51eC9tZGlvLmgtOTctdm9pZCBtZGlvX2RldmljZV9yZW1vdmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTc6NTQuMjQ4MjE1MTQyWiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwMjY3MTUzMDU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk1ESU8gQnVzIERpc2NvdmVyeSBWaWEgU3l6a2FsbGVyKipcblxuT2theSwgc28gSSdtIHRoaW5raW5nIGFib3V0IGhvdyB3ZSBjYW4gbGV2ZXJhZ2UgU3l6a2FsbGVyIGZvciBmdXp6aW5nIHRoaXMgTURJTyBidXMgZHJpdmVyLiBUaGUga2V5IGhlcmUgaXMgdGhlIGBvZl9tZGlvYnVzX3JlZ2lzdGVyX2RldmljZWAgZnVuY3Rpb24uIFRoYXQgc3Ryb25nbHkgc3VnZ2VzdHMgZGV2aWNlcyBhcmUgcmVnaXN0ZXJlZCBmcm9tIHRoZSBkZXZpY2UgdHJlZSwgcmlnaHQ/IEFuZCB0aGVuIGl0IGhpdCBtZTogU3l6a2FsbGVyIGNhbiBpbmplY3QgZGV2aWNlIHRyZWUgb3ZlcmxheXMhIFRoYXQgY291bGQgYmUgYSBkaXJlY3QgcGF0aCB0byBjb250cm9sbGluZyBvdXIgTURJTyBkZXZpY2VzLlxuXG5Ob3csIEkgbmVlZCB0byB2ZXJpZnkuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IFN5emthbGxlciAqZG9lc24ndCogZG8gZGV2aWNlIHRyZWUgb3ZlcmxheXMgaW4gdGhlIHVwc3RyZWFtIGtlcm5lbCwgYnV0IEkgY291bGQgYmUgd3JvbmcsIG1heWJlIGl0IGRvZXM/IE5lZWQgdG8gY29uZmlybSB0aGF0LlxuXG5BbHJpZ2h0LCB3aGF0IGFib3V0IGV4aXN0aW5nIFVTQiBmdXp6aW5nIHByaW1pdGl2ZXM/IEkgc2VlbSB0byByZWNhbGwgYHN5el91c2JfY29ubmVjdGAgYW5kIGBzeXpfdXNiX2Nvbm5lY3RfYXRoOWtgIGV0Yy4gSSB3b25kZXIsIGRvZXMgYW55IFVTQiBkZXZpY2Ugb3V0IHRoZXJlIGFjdHVhbGx5IHJlZ2lzdGVyIGFuIE1ESU8gYnVzIGFzIHBhcnQgb2YgaXRzIGRyaXZlciBpbml0aWFsaXphdGlvbj8gSWYgd2UgY2FuIGZpbmQgb25lLCBhbmQgU3l6a2FsbGVyIGNhbiBjb250cm9sIGl0cyBpbnN0YW50aWF0aW9uIGFuZCBpbnRlcmFjdGlvbiwgd2UgbWlnaHQgaGF2ZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuXG5cblRpbWUgdG8gZGl2ZSBpbnRvIHRoZSBrZXJuZWwgc291cmNlLiBMZXQncyBzdGFydCB3aXRoIHRoZSBgZHJpdmVycy9uZXQvdXNiL2AgZGlyZWN0b3J5LiBUaGF0J3MgdGhlIG1vc3QgbGlrZWx5IHBsYWNlIHRvIGZpbmQgYSBVU0IgZGV2aWNlIHRoYXQgY291bGQgYmUgcmVsZXZhbnQsIGVzcGVjaWFsbHkgaWYgaXQncyBuZXR3b3JrLXJlbGF0ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE1ODA2LCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE4OjA0LjUxNTM3MDY1OFoiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUyNjEwMDcxMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtZGlvYnVzX3JlZ2lzdGVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3VzYi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jPTY2OT1zdGF0aWMgaW50IGF4ODg3NzJfaW5pdF9tZGlvKHN0cnVjdCB1c2JuZXQgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuYy02ODYtXFxuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jOjY4NzpcXHRyZXQgPSBtZGlvYnVzX3JlZ2lzdGVyKHByaXYtXFx1MDAzZW1kaW8pO1xcbmRyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuYy02ODgtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvdXNiL2F4ODgxNzJhLmM9NjE9c3RhdGljIGludCBheDg4MTcyYV9pbml0X21kaW8oc3RydWN0IHVzYm5ldCAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL2F4ODgxNzJhLmMtNzktXFxuZHJpdmVycy9uZXQvdXNiL2F4ODgxNzJhLmM6ODA6XFx0cmV0ID0gbWRpb2J1c19yZWdpc3Rlcihwcml2LVxcdTAwM2VtZGlvKTtcXG5kcml2ZXJzL25ldC91c2IvYXg4ODE3MmEuYy04MS1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jPTIwOTE9c3RhdGljIGludCBsYW43OHh4X21kaW9faW5pdChzdHJ1Y3QgbGFuNzh4eF9uZXQgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMtMjEyMS1cXHRub2RlID0gb2ZfZ2V0X2NoaWxkX2J5X25hbWUoZGV2LVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYub2Zfbm9kZSwgXFxcIm1kaW9cXFwiKTtcXG5kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jOjIxMjI6XFx0cmV0ID0gb2ZfbWRpb2J1c19yZWdpc3RlcihkZXYtXFx1MDAzZW1kaW9idXMsIG5vZGUpO1xcbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMtMjEyMy1cXHRvZl9ub2RlX3B1dChub2RlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9zbXNjOTV4eC5jPTExNDc9c3RhdGljIGludCBzbXNjOTV4eF9iaW5kKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpXFxuLS1cXG5kcml2ZXJzL25ldC91c2Ivc21zYzk1eHguYy0xMjQxLVxcbmRyaXZlcnMvbmV0L3VzYi9zbXNjOTV4eC5jOjEyNDI6XFx0cmV0ID0gbWRpb2J1c19yZWdpc3RlcihwZGF0YS1cXHUwMDNlbWRpb2J1cyk7XFxuZHJpdmVycy9uZXQvdXNiL3Ntc2M5NXh4LmMtMTI0My1cXHRpZiAocmV0KSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE4OjA2LjA0MTQ3NzU0OVoiLCJTZXEiOjI5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0ODk2OTU2Nzk0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk1ESU8gRGV2aWNlIFJlZ2lzdHJhdGlvbjogQSBCcmVha2Rvd24qKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIHRoaXMgTURJTyBkcml2ZXIgc2l0dWF0aW9uLCBhbmQgaXQgc2VlbXMgbGlrZSB0aGUgYGxhbjc4eHhgIGRyaXZlciBpcyBsZXZlcmFnaW5nIGBvZl9tZGlvYnVzX3JlZ2lzdGVyYC4gVGhhdCdzIHRoZSBvbmUgdGhhdCBoYW5kbGVzIHJlZ2lzdGVyaW5nIE1ESU8gZGV2aWNlcyBkaXJlY3RseSBmcm9tIHRoZSBkZXZpY2UgdHJlZSwgd2hpY2ggaXMgZWZmaWNpZW50LiBCdXQgdGhlbiBJIHNlZSBkcml2ZXJzIGxpa2UgYGFzaXhfZGV2aWNlcy5jYCwgYGF4ODgxNzJhLmNgLCBhbmQgYHNtc2M5NXh4LmNgIGFyZSB1c2luZyBgbWRpb2J1c19yZWdpc3RlcmAuIE5vdywgdGhpcyBpcyB3aGVyZSBpdCBnZXRzIGEgbGl0dGxlIGZ1enp5LiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBgbWRpb2J1c19yZWdpc3RlcmAgYXV0b21hdGljYWxseSBzY2FucyB0aGUgTURJTyBidXMsIGxvb2tzIGZvciBQSFlzLCBhbmQgcmVnaXN0ZXJzIHRoZW0uIEhvd2V2ZXIsIGRvZXMgaXQgaGFuZGxlIGp1c3QgKmFueSogTURJTyBkZXZpY2U/IE5vLCBpdCBsb29rcyBsaWtlIGl0J3MgcHJpbWFyaWx5IGRlc2lnbmVkIGZvciBQSFlzLCB0aG9zZSB0aGF0IHJlc3BvbmQgdG8gTURJTyByZWFkcy5cblxuTm93LCB3YWl0IGEgc2Vjb25kLi4uIHdoYXQgYWJvdXQgc29tZXRoaW5nIGxpa2UgdGhlIGBtdjg4ZTZ4eHhgPyBUaGF0J3Mgbm90IGEgKlBIWSogZHJpdmVyLCBpdCdzIGFuIE1ESU8gZHJpdmVyIGluIGl0cyBvd24gcmlnaHQsIGEgc3dpdGNoIGNvbnRyb2xsZXIhIFNvLCBob3cgZG9lcyAqaXQqIGdldCByZWdpc3RlcmVkPyBJdCBzZWVtcyB0byBiZSBkb2luZyBpdCB0aHJvdWdoIHRoZSBgbWRpb19kZXZpY2VfaWRgIG9yIGRldmljZSB0cmVlLCBidXQgSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgdGhlIGBtdjg4ZTZ4eHhfZHJpdmVyYCBtYXRjaCB0YWJsZSB0byBiZSBzdXJlLiBUaGF0IHNob3VsZCBjb25maXJtIHRoZSBtYXRjaGluZyBtZXRob2QgZm9yIHRoYXQgZHJpdmVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNjc2NSwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxODoxMC45Mzg0MzYzODNaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNjQ3MzgwOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdjg4ZTZ4eHhfb2ZfbWF0Y2hcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzQ5ND1zdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfc2h1dGRvd24oc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUwNS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTA2OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG12ODhlNnh4eF9vZl9tYXRjaFtdID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1MDctXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyMS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTIyOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG12ODhlNnh4eF9vZl9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyMy1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz03NTI0PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXY4OGU2eHh4X2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1MjktXFx0XFx0Lm5hbWUgPSBcXFwibXY4OGU2MDg1XFxcIixcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTMwOlxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IG12ODhlNnh4eF9vZl9tYXRjaCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTMxLVxcdFxcdC5wbSA9IFxcdTAwMjZtdjg4ZTZ4eHhfcG1fb3BzLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxODoxMS4wNDQ5MzAxMloiLCJTZXEiOjMxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MjQ1OTg0NTQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEluaXRpYWwgQXNzZXNzbWVudCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYW5kIHRoZSBmYWN0IHRoYXQgdGhlIGRyaXZlciBvbmx5IGhhcyBhbiBgb2ZfbWF0Y2hfdGFibGVgIGlzIGEgcHJldHR5IGJpZyBjbHVlLiBJdCAqc3Ryb25nbHkqIHN1Z2dlc3RzIHRoYXQgdGhlIG9ubHkgd2F5IHRvIGdldCB0aGlzIHRoaW5nIHRvIHByb2JlIGlzIHRocm91Z2ggdGhlIGRldmljZSB0cmVlLiBUaGF0IG1lYW5zIHNvbWV0aGluZyBpcyBmZWVkaW5nIGEgZGV2aWNlIHRyZWUgZGVzY3JpcHRpb24gdG8gdGhlIGtlcm5lbCwgYW5kIHRoYXTigJlzIHdoYXQncyB0cmlnZ2VyaW5nIHRoZSBkcml2ZXIuIFRoZSBmYWN0IHRoYXQgU3l6a2FsbGVyIGZvdW5kIHRoaXMgaXMgd2hhdCBoYXMgbWUgcmVhbGx5IHRoaW5raW5nLiBEaWQgU3l6a2FsbGVyIG1hbmFnZSB0byBpbmplY3QgYSBkZXZpY2UgdHJlZSBvdmVybGF5LCBvciBpcyBpdCBydW5uaW5nIG9uIGEgYm9hcmQgdGhhdCAqYWxyZWFkeSogaGFzIHRoaXMgcGFydGljdWxhciBkZXZpY2UgdHJlZSBub2RlIGJha2VkIGluP1xuXG5XYWl0IGEgc2Vjb25kLCBTeXprYWxsZXIgZG9lc24ndCB0eXBpY2FsbHkgaW5qZWN0IG92ZXJsYXlzIHdoZW4gdGVzdGluZyB0aGUgdXBzdHJlYW0ga2VybmVsLCBzbyB0aGF0IHNlZW1zIHVubGlrZWx5LiBJdCdzIG5vdCBvdXQgb2YgdGhlIHF1ZXN0aW9uIHRoYXQgaXQncyB1c2luZyBhIGN1c3RvbSBib2FyZCwgYnV0IGdpdmVuIFN5emthbGxlcidzIHR5cGljYWwgY29uZmlndXJhdGlvbiBpdCdzIHVzdWFsbHkgUUVNVS4gVGhpbmtpbmcgYWJvdXQgaXQgbW9yZSwgUUVNVSBoYXMgdGhlIGB2aXJ0YCBtYWNoaW5lIHdoaWNoIGRvZXMgdXNlIGEgZGV2aWNlIHRyZWUsIGJ1dCBJIGRvbid0IHJlY2FsbCBzZWVpbmcgYG12ODhlNnh4eGAgaW4gdGhlIGRldmljZSB0cmVlIGZvciB0aGF0IG1hY2hpbmUuXG5cbk9rYXksIGxldCdzIHN0ZXAgYmFjay4gSXMgdGhlcmUgKmFueSogb3RoZXIgY29uY2VpdmFibGUgd2F5IHRoaXMgZHJpdmVyIGNvdWxkIGJlIHByb2JlZD8gQXJlIHRoZXJlIHBsYXRmb3JtIGRhdGEgb3Igb3RoZXIgbWF0Y2ggdGFibGVzIGRlZmluZWQgc29tZXdoZXJlIHRoYXQgSSdtIG92ZXJsb29raW5nPyBJIG5lZWQgdG8gY2hlY2sgdGhvc2UgcXVpY2tseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTc2NzcsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTg6MTYuMjkwOTE3ODM2WiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NzMxNzUyNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdjg4ZTZ4eHhfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc1MjI9TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbXY4OGU2eHh4X29mX21hdGNoKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTIzLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1MjQ6c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdjg4ZTZ4eHhfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1MjUtXFx0LnByb2JlXFx0PSBtdjg4ZTZ4eHhfcHJvYmUsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTM0LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1MzU6bWRpb19tb2R1bGVfZHJpdmVyKG12ODhlNnh4eF9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1MzYtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE4OjE2LjM1ODIzOTYxWiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjk2NTc0MDM0MTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyBhIFBvdGVudGlhbCBTeXprYWxsZXIgRXhwbG9pdCBQYXRoKipcblxuT2theSwgc28gSSdtIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyBzeXprYWxsZXIgbWlnaHQgYmUgdHJpZ2dlcmluZyB0aGlzIGlzc3VlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGNvdWxkIGl0IGJlIHVzaW5nIGBkc2FfbG9vcGA/IFRoYXQncyBhIG1vY2t1cCBkcml2ZXIsIHJpZ2h0PyBCdXQgaXQgZG9lc24ndCBldmVuIHRvdWNoIGBtdjg4ZTZ4eHhgLiBIbW0sIG1heWJlIGl0J3MgY3JlYXRpbmcgYSB2aXJ0dWFsIEkyQyBvciBNRElPIGJ1cyBzb21laG93PyBJcyBpdCBpbnN0YW50aWF0aW5nIGEgbmV3IGRldmljZSB0aGF0IHdheT8gSG9sZCBvbiwgSSBkb24ndCByZWNhbGwgc2VlaW5nIGEgYG5ld19kZXZpY2VgIGNhbGwgZm9yIE1ESU8uIFRoYXQgc2VlbXMgdW5saWtlbHkuXG5cbkNvdWxkIHRoZXJlIGJlIGEgd2F5IHRvIGNyZWF0ZSBhbiBNRElPIGRldmljZSB0aHJvdWdoIG5ldGxpbms/IEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIHRoZSBgbmV0L2RzYS9gIGFuZCBgZHJpdmVycy9uZXQvbWRpby9gIGRpcmVjdG9yaWVzLiBObywgTURJTyBkZXZpY2VzIGFyZSB0eXBpY2FsbHkgYnJvdWdodCB1cCB2aWEgZGV2aWNlIHRyZWUsIEFDUEksIG9yIGJvYXJkIGZpbGVzLlxuXG5XYWl0LCBpc24ndCB0aGVyZSBzb21ldGhpbmcgYWJvdXQgc3l6a2FsbGVyIGJlaW5nIGFibGUgdG8gaW5qZWN0IGRldmljZSB0cmVlIG92ZXJsYXlzPyBCaW5nbyEgSSB0aGluayB0aGF0J3MgaXQhIFN5emthbGxlciBoYXMgdGhlIGFiaWxpdHkgdG8gbG9hZCBkZXZpY2UgdHJlZSBvdmVybGF5cywgcHJvYmFibHkgdGhyb3VnaCBgc3l6X21vdW50X2ltYWdlYCBvciBzb21ldGhpbmcgc2ltaWxhciwgb3IgbWF5YmUgdmlhIGBjb25maWdmc2A/IExldCdzIHNlZS4uLiBZZXAsIHRoYXQncyBpdCEgYENPTkZJR19PRl9PVkVSTEFZYCBhbmQgYGNvbmZpZ2ZzYCBjb21iaW5lZCBjYW4gZGVmaW5pdGVseSBiZSB1c2VkIHRvIGxvYWQgZGV2aWNlIHRyZWUgb3ZlcmxheXMhXG5cbkFscmlnaHQsIG5leHQgc3RlcDogbGV0J3MgdmVyaWZ5IHRoYXQgYGNvbmZpZ2ZzYCBiYXNlZCBkZXZpY2UgdHJlZSBvdmVybGF5cyBhcmUgaW5kZWVkIHN1cHBvcnRlZC4gVGhhdCBzZWVtcyBsaWtlIHRoZSBtb3N0IHByb21pc2luZyBhdmVudWUgdG8gZXhwbG9yZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg0MTEsIk91dHB1dFRva2VucyI6MjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTg6MjYuMDE1NjQ3MjQ3WiIsIlNlcSI6MzQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDI2MTI0NDc4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkdF9vdmVybGF5XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxODoyNy4wNDE3ODU4NjVaIiwiU2VxIjozNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTA4OTY1NTc5MjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aGUgdGhvdWdodCBwcm9jZXNzIHVuZm9sZHM6XG5cbioqQSBSZWFsaXphdGlvbiBBYm91dCBPdmVybGF5IERyaXZlcnMqKlxuXG5IbW0sIHdhaXQgYSBzZWNvbmQuLi4gYGRyaXZlcnMvb2Yvb3ZlcmxheS5jYC4uLiB0aGF0IGFjdHVhbGx5IGV4aXN0cy4gSSBjb21wbGV0ZWx5IHNwYWNlZCBvbiB0aGF0LiBJJ3ZlIGJlZW4gdGhpbmtpbmcgYWJvdXQgdGhpcyBwcm9ibGVtIGluIHRlcm1zIG9mIHNvbWUgbmV3LCBjdXN0b20gc29sdXRpb24sIG9yIG1heWJlIGFuIGFkYXB0YXRpb24gb2YgYW5vdGhlciBkcml2ZXIsIGJ1dCAqdGhhdCogZmlsZS4uLiB0aGF0IGNoYW5nZXMgdGhpbmdzLiBJdCdzIGEgZnVuZGFtZW50YWwgc2hpZnQgaW4gcGVyc3BlY3RpdmUuIFRoYXQgbWVhbnMgdGhlIGZyYW1ld29yayBmb3IgaGFuZGxpbmcgZGV2aWNlIHRyZWUgb3ZlcmxheXMgaXMgYWxyZWFkeSB0aGVyZSwgYmFrZWQgaW50byB0aGUga2VybmVsIGluIGEgZGVkaWNhdGVkIGxvY2F0aW9uISBUaGlzIHNpZ25pZmljYW50bHkgaW1wYWN0cyBteSBpbml0aWFsIGRlc2lnbiBjb25zaWRlcmF0aW9ucyBhbmQgbm93IG9wZW5zIHVwIGEgZGlmZmVyZW50IHNldCBvZiBwb3NzaWJpbGl0aWVzIGZvciB0aGlzIHRhc2ssIEkgbmVlZCB0byBnbyBsb29rIGludG8gdGhhdC4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTAwMiwiT3V0cHV0VG9rZW5zIjoyNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE4OjM3LjkzODM0NjEyMloiLCJTZXEiOjM2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzQ2MzAyNTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwib2Zfb3ZlcmxheVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL29mL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYz0yNT1FWFBPUlRfU1lNQk9MX0dQTChvZl9yb290X2t1bml0X3NraXApO1xcbi0tXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtMjgtXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6Mjk6c3RhdGljIHZvaWQgb2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXRfZXhpdCh2b2lkICpvdmNzX2lkKVxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTMwLXtcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzozMTpcXHRvZl9vdmVybGF5X3JlbW92ZShvdmNzX2lkKTtcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0zMi19XFxuLS1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0zNC0vKipcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzozNTogKiBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdCgpIC0gVGVzdCBtYW5hZ2VkIG9mX292ZXJsYXlfZmR0X2FwcGx5KClcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0zNi0gKiBAdGVzdDogdGVzdCBjb250ZXh0XFxuLS1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy00MC0gKlxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjQxOiAqIEp1c3QgbGlrZSBvZl9vdmVybGF5X2ZkdF9hcHBseSgpLCBleGNlcHQgdGhlIG92ZXJsYXkgaXMgbWFuYWdlZCBieSB0aGUgdGVzdFxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjQyOiAqIGNhc2UgYW5kIGlzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZCB3aXRoIG9mX292ZXJsYXlfcmVtb3ZlKCkgYWZ0ZXIgdGhlIHRlc3RcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy00My0gKiBjYXNlIGNvbmNsdWRlcy5cXG4tLVxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQ2LSAqL1xcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjQ3OmludCBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdChzdHJ1Y3Qga3VuaXQgKnRlc3QsIHZvaWQgKm92ZXJsYXlfZmR0LFxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQ4LVxcdFxcdFxcdCAgICAgICB1MzIgb3ZlcmxheV9mZHRfc2l6ZSwgaW50ICpvdmNzX2lkKVxcbi0tXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNTgtXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6NTk6XFx0cmV0ID0gb2Zfb3ZlcmxheV9mZHRfYXBwbHkob3ZlcmxheV9mZHQsIG92ZXJsYXlfZmR0X3NpemUsXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNjAtXFx0XFx0XFx0XFx0ICAgb3Zjc19pZCwgTlVMTCk7XFxuLS1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy02NS1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzo2NjpcXHRyZXR1cm4ga3VuaXRfYWRkX2FjdGlvbl9vcl9yZXNldCh0ZXN0LCBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdF9leGl0LFxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTY3LVxcdFxcdFxcdFxcdFxcdCBjb3B5X2lkKTtcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy02OC19XFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6Njk6RVhQT1JUX1NZTUJPTF9HUEwob2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXQpO1xcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTcwLVxcbi0tXFxuZHJpdmVycy9vZi9vZl9wcml2YXRlLmg9MTAwPXZvaWQgX19vZl9waGFuZGxlX2NhY2hlX2ludl9lbnRyeShwaGFuZGxlIGhhbmRsZSk7XFxuLS1cXG5kcml2ZXJzL29mL29mX3ByaXZhdGUuaC0xMDItI2lmIGRlZmluZWQoQ09ORklHX09GX09WRVJMQVkpXFxuZHJpdmVycy9vZi9vZl9wcml2YXRlLmg6MTAzOnZvaWQgb2Zfb3ZlcmxheV9tdXRleF9sb2NrKHZvaWQpO1xcbmRyaXZlcnMvb2Yvb2ZfcHJpdmF0ZS5oOjEwNDp2b2lkIG9mX292ZXJsYXlfbXV0ZXhfdW5sb2NrKHZvaWQpO1xcbmRyaXZlcnMvb2Yvb2ZfcHJpdmF0ZS5oLTEwNS0jZWxzZVxcbmRyaXZlcnMvb2Yvb2ZfcHJpdmF0ZS5oOjEwNjpzdGF0aWMgaW5saW5lIHZvaWQgb2Zfb3ZlcmxheV9tdXRleF9sb2NrKHZvaWQpIHt9O1xcbmRyaXZlcnMvb2Yvb2ZfcHJpdmF0ZS5oOjEwNzpzdGF0aWMgaW5saW5lIHZvaWQgb2Zfb3ZlcmxheV9tdXRleF91bmxvY2sodm9pZCkge307XFxuZHJpdmVycy9vZi9vZl9wcml2YXRlLmgtMTA4LSNlbmRpZlxcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmM9Njk9c3RydWN0IG92ZXJsYXlfY2hhbmdlc2V0IHtcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTc0LVxcdHN0cnVjdCBkZXZpY2Vfbm9kZSAqb3ZlcmxheV9yb290O1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjc1OlxcdGVudW0gb2Zfb3ZlcmxheV9ub3RpZnlfYWN0aW9uIG5vdGlmeV9zdGF0ZTtcXG5kcml2ZXJzL29mL292ZXJsYXkuYy03Ni1cXHRpbnQgY291bnQ7XFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYz0xMDQ9c3RhdGljIGludCBidWlsZF9jaGFuZ2VzZXRfbmV4dF9sZXZlbChzdHJ1Y3Qgb3ZlcmxheV9jaGFuZ2VzZXQgKm92Y3MsXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDgtICogb2ZfcmVzb2x2ZV9waGFuZGxlcygpIGZpbmRzIHRoZSBsYXJnZXN0IHBoYW5kbGUgaW4gdGhlIGxpdmUgdHJlZS5cXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDk6ICogb2Zfb3ZlcmxheV9hcHBseSgpIG1heSBhZGQgYSBsYXJnZXIgcGhhbmRsZSB0byB0aGUgbGl2ZSB0cmVlLlxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExMC0gKiBEbyBub3QgYWxsb3cgcmFjZSBiZXR3ZWVuIHR3byBvdmVybGF5cyBiZWluZyBhcHBsaWVkIHNpbXVsdGFuZW91c2x5OlxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjExMTogKiAgICBtdXRleF9sb2NrKFxcdTAwMjZvZl9vdmVybGF5X3BoYW5kbGVfbXV0ZXgpXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTEyLSAqICAgIG9mX3Jlc29sdmVfcGhhbmRsZXMoKVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjExMzogKiAgICBvZl9vdmVybGF5X2FwcGx5KClcXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMTQ6ICogICAgbXV0ZXhfdW5sb2NrKFxcdTAwMjZvZl9vdmVybGF5X3BoYW5kbGVfbXV0ZXgpXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTE1LSAqL1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjExNjpzdGF0aWMgREVGSU5FX01VVEVYKG9mX292ZXJsYXlfcGhhbmRsZV9tdXRleCk7XFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTE3LVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjExODp2b2lkIG9mX292ZXJsYXlfbXV0ZXhfbG9jayh2b2lkKVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExOS17XFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTIwOlxcdG11dGV4X2xvY2soXFx1MDAyNm9mX292ZXJsYXlfcGhhbmRsZV9tdXRleCk7XFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTIxLX1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjItXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTIzOnZvaWQgb2Zfb3ZlcmxheV9tdXRleF91bmxvY2sodm9pZClcXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjQte1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEyNTpcXHRtdXRleF91bmxvY2soXFx1MDAyNm9mX292ZXJsYXlfcGhhbmRsZV9tdXRleCk7XFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTI2LX1cXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jPTEzMT1zdGF0aWMgQkxPQ0tJTkdfTk9USUZJRVJfSEVBRChvdmVybGF5X25vdGlmeV9jaGFpbik7XFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMzMtLyoqXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTM0OiAqIG9mX292ZXJsYXlfbm90aWZpZXJfcmVnaXN0ZXIoKSAtIFJlZ2lzdGVyIG5vdGlmaWVyIGZvciBvdmVybGF5IG9wZXJhdGlvbnNcXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMzUtICogQG5iOlxcdFxcdE5vdGlmaWVyIGJsb2NrIHRvIHJlZ2lzdGVyXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xNDQtICovXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTQ1OmludCBvZl9vdmVybGF5X25vdGlmaWVyX3JlZ2lzdGVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIpXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTQ2LXtcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE0OC19XFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTQ5OkVYUE9SVF9TWU1CT0xfR1BMKG9mX292ZXJsYXlfbm90aWZpZXJfcmVnaXN0ZXIpO1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE1MC1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xNTEtLyoqXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTUyOiAqIG9mX292ZXJsYXlfbm90aWZpZXJfdW5yZWdpc3RlcigpIC0gVW5yZWdpc3RlciBub3RpZmllciBmb3Igb3ZlcmxheSBvcGVyYXRpb25zXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTUzLSAqIEBuYjpcXHRcXHROb3RpZmllciBibG9jayB0byB1bnJlZ2lzdGVyXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTU0LSAqL1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjE1NTppbnQgb2Zfb3ZlcmxheV9ub3RpZmllcl91bnJlZ2lzdGVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIpXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTU2LXtcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE1OC19XFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTU5OkVYUE9SVF9TWU1CT0xfR1BMKG9mX292ZXJsYXlfbm90aWZpZXJfdW5yZWdpc3Rlcik7XFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTYwLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jPTE2MT1zdGF0aWMgaW50IG92ZXJsYXlfbm90aWZ5KHN0cnVjdCBvdmVybGF5X2NoYW5nZXNldCAqb3ZjcyxcXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxNjI6XFx0XFx0ZW51bSBvZl9vdmVybGF5X25vdGlmeV9hY3Rpb24gYWN0aW9uKVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE2My17XFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTY0OlxcdHN0cnVjdCBvZl9vdmVybGF5X25vdGlmeV9kYXRhIG5kO1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE2NS1cXHRpbnQgaSwgcmV0O1xcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTc5LVxcdFxcdFxcdHByX2VycihcXFwib3ZlcmxheSBjaGFuZ2VzZXQgJXMgbm90aWZpZXIgZXJyb3IgJWQsIHRhcmdldDogJXBPRlxcXFxuXFxcIixcXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxODA6XFx0XFx0XFx0ICAgICAgIG9mX292ZXJsYXlfYWN0aW9uX25hbWUoYWN0aW9uKSwgcmV0LCBuZC50YXJnZXQpO1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTE4MS1cXHRcXHRcXHRyZXR1cm4gcmV0O1xcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmM9ODU5PXN0YXRpYyB2b2lkIGZyZWVfb3ZlcmxheV9jaGFuZ2VzZXQoc3RydWN0IG92ZXJsYXlfY2hhbmdlc2V0ICpvdmNzKVxcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtODk5LSAqXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6OTAwOiAqIG9mX292ZXJsYXlfYXBwbHkoKSAtIENyZWF0ZSBhbmQgYXBwbHkgYW4gb3ZlcmxheSBjaGFuZ2VzZXRcXG5kcml2ZXJzL29mL292ZXJsYXkuYy05MDEtICogQG92Y3M6XFx0b3ZlcmxheSBjaGFuZ2VzZXRcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTkyMi0gKiBSZXR1cm5zIDAgb24gc3VjY2Vzcywgb3IgYSBuZWdhdGl2ZSBlcnJvciBudW1iZXIuICBPbiBlcnJvciByZXR1cm4sXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6OTIzOiAqIHRoZSBjYWxsZXIgb2Ygb2Zfb3ZlcmxheV9hcHBseSgpIG11c3QgY2FsbCBmcmVlX292ZXJsYXlfY2hhbmdlc2V0KCkuXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTI0LSAqL1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTkyNS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYzo5MjY6c3RhdGljIGludCBvZl9vdmVybGF5X2FwcGx5KHN0cnVjdCBvdmVybGF5X2NoYW5nZXNldCAqb3ZjcyxcXG5kcml2ZXJzL29mL292ZXJsYXkuYy05MjctXFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqYmFzZSlcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk4MC0vKipcXG5kcml2ZXJzL29mL292ZXJsYXkuYzo5ODE6ICogb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSAtIENyZWF0ZSBhbmQgYXBwbHkgYW4gb3ZlcmxheSBjaGFuZ2VzZXRcXG5kcml2ZXJzL29mL292ZXJsYXkuYy05ODItICogQG92ZXJsYXlfZmR0OlxcdHBvaW50ZXIgdG8gb3ZlcmxheSBGRFRcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk4OC0gKlxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjk4OTogKiBTZWUgb2Zfb3ZlcmxheV9hcHBseSgpIGZvciBpbXBvcnRhbnQgYmVoYXZpb3IgaW5mb3JtYXRpb24uXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTkwLSAqXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTkxLSAqIFJldHVybjogMCBvbiBzdWNjZXNzLCBvciBhIG5lZ2F0aXZlIGVycm9yIG51bWJlci4gICpAcmV0X292Y3NfaWQgaXMgc2V0IHRvXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6OTkyOiAqIHRoZSB2YWx1ZSBvZiBvdmVybGF5IGNoYW5nZXNldCBpZCwgd2hpY2ggY2FuIGJlIHBhc3NlZCB0byBvZl9vdmVybGF5X3JlbW92ZSgpXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTkzLSAqIHRvIHJlbW92ZSB0aGUgb3ZlcmxheS5cXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk5Ni0gKiBsaWtlbHkgaWYgYW4gT0ZfT1ZFUkxBWV9QT1NUX0FQUExZIG5vdGlmaWVyIHJldHVybnMgYW4gZXJyb3IuICBJbiB0aGlzIGNhc2VcXG5kcml2ZXJzL29mL292ZXJsYXkuYzo5OTc6ICogdGhlIGNhbGxlciBzaG91bGQgY2FsbCBvZl9vdmVybGF5X3JlbW92ZSgpIHdpdGggdGhlIHZhbHVlIGluICpAcmV0X292Y3NfaWQuXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTk4LSAqL1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk5OS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDAwOmludCBvZl9vdmVybGF5X2ZkdF9hcHBseShjb25zdCB2b2lkICpvdmVybGF5X2ZkdCwgdTMyIG92ZXJsYXlfZmR0X3NpemUsXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTAwMS1cXHRcXHRcXHQgaW50ICpyZXRfb3Zjc19pZCwgY29uc3Qgc3RydWN0IGRldmljZV9ub2RlICpiYXNlKVxcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTAzMC1cXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDMxOlxcdG9mX292ZXJsYXlfbXV0ZXhfbG9jaygpO1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwMzItXFx0bXV0ZXhfbG9jayhcXHUwMDI2b2ZfbXV0ZXgpO1xcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA3MS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDcyOlxcdHJldCA9IG9mX292ZXJsYXlfYXBwbHkob3ZjcywgYmFzZSk7XFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA3My1cXHQvKlxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEwNzQ6XFx0ICogSWYgb2Zfb3ZlcmxheV9hcHBseSgpIGVycm9yLCBjYWxsaW5nIGZyZWVfb3ZlcmxheV9jaGFuZ2VzZXQoKSBtYXlcXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDc1LVxcdCAqIHJlc3VsdCBpbiBhIG1lbW9yeSBsZWFrIGlmIHRoZSBhcHBseSBwYXJ0bHkgc3VjY2VlZGVkLCBzbyBkbyBOT1RcXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDc2OlxcdCAqIGdvdG8gZXJyX2ZyZWVfb3Zjcy4gIEluc3RlYWQsIHRoZSBjYWxsZXIgb2Ygb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEwNzc6XFx0ICogY2FuIGNhbGwgb2Zfb3ZlcmxheV9yZW1vdmUoKTtcXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDc4LVxcdCAqL1xcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA4Ni1cXHRtdXRleF91bmxvY2soXFx1MDAyNm9mX211dGV4KTtcXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDg3OlxcdG9mX292ZXJsYXlfbXV0ZXhfdW5sb2NrKCk7XFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA4OC1cXHRyZXR1cm4gcmV0O1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwODktfVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEwOTA6RVhQT1JUX1NZTUJPTF9HUEwob2Zfb3ZlcmxheV9mZHRfYXBwbHkpO1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwOTEtXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYz0xMTU1PXN0YXRpYyBpbnQgb3ZlcmxheV9yZW1vdmFsX2lzX29rKHN0cnVjdCBvdmVybGF5X2NoYW5nZXNldCAqcmVtb3ZlX292Y3MpXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMTY5LS8qKlxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjExNzA6ICogb2Zfb3ZlcmxheV9yZW1vdmUoKSAtIFJldmVydCBhbmQgZnJlZSBhbiBvdmVybGF5IGNoYW5nZXNldFxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExNzEtICogQG92Y3NfaWQ6XFx0UG9pbnRlciB0byBvdmVybGF5IGNoYW5nZXNldCBpZFxcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTE3My0gKiBSZW1vdmVzIGFuIG92ZXJsYXkgaWYgaXQgaXMgcGVybWlzc2libGUuICBAb3Zjc19pZCB3YXMgcHJldmlvdXNseSByZXR1cm5lZFxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjExNzQ6ICogYnkgb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKS5cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMTc1LSAqXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjAyLSAqL1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEyMDM6aW50IG9mX292ZXJsYXlfcmVtb3ZlKGludCAqb3Zjc19pZClcXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjA0LXtcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyNjUtXFx0ICogb3ZlcmxheSByZWxhdGVkIG1lbW9yeS4gIFRoaXMgaXMgYSBtZW1vcnkgbGVhayB1bmxlc3MgYSBzdWJzZXF1ZW50XFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTI2NjpcXHQgKiBvZl9vdmVybGF5X3JlbW92ZSgpIG9mIHRoaXMgb3ZlcmxheSBpcyBzdWNjZXNzZnVsLlxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyNjctXFx0ICovXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjc0LX1cXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMjc1OkVYUE9SVF9TWU1CT0xfR1BMKG9mX292ZXJsYXlfcmVtb3ZlKTtcXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjc2LVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyNzctLyoqXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTI3ODogKiBvZl9vdmVybGF5X3JlbW92ZV9hbGwoKSAtIFJldmVydHMgYW5kIGZyZWVzIGFsbCBvdmVybGF5IGNoYW5nZXNldHNcXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjc5LSAqXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjgzLSAqL1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEyODQ6aW50IG9mX292ZXJsYXlfcmVtb3ZlX2FsbCh2b2lkKVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEyODUte1xcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTI5MC1cXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmVfcmV2ZXJzZShvdmNzLCBvdmNzX24sIFxcdTAwMjZvdmNzX2xpc3QsIG92Y3NfbGlzdCkge1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEyOTE6XFx0XFx0cmV0ID0gb2Zfb3ZlcmxheV9yZW1vdmUoXFx1MDAyNm92Y3MtXFx1MDAzZWlkKTtcXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjkyLVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMjk3LX1cXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMjk4OkVYUE9SVF9TWU1CT0xfR1BMKG9mX292ZXJsYXlfcmVtb3ZlX2FsbCk7XFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jPTE3PXN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qga3VuaXRfY29tcGF0aWJsZSA9IFxcXCJ0ZXN0LGVtcHR5XFxcIjtcXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTE4LVxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmM6MTk6LyogVGVzdCB0aGF0IG9mX292ZXJsYXlfYXBwbHlfa3VuaXQoKSBhZGRzIGEgbm9kZSB0byB0aGUgbGl2ZSB0cmVlICovXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzoyMDpzdGF0aWMgdm9pZCBvZl9vdmVybGF5X2FwcGx5X2t1bml0X2FwcGx5KHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTIxLXtcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtMjQtXFx0S1VOSVRfQVNTRVJUX0VRKHRlc3QsIDAsXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzoyNTpcXHRcXHRcXHRvZl9vdmVybGF5X2FwcGx5X2t1bml0KHRlc3QsIGt1bml0X292ZXJsYXlfdGVzdCkpO1xcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtMjYtXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTMyLS8qXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzozMzogKiBUZXN0IHRoYXQgb2Zfb3ZlcmxheV9hcHBseV9rdW5pdCgpIGNyZWF0ZXMgcGxhdGZvcm0gZGV2aWNlcyB3aXRoIHRoZVxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtMzQtICogZXhwZWN0ZWQgZGV2aWNlX25vZGVcXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTM1LSAqL1xcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmM6MzY6c3RhdGljIHZvaWQgb2Zfb3ZlcmxheV9hcHBseV9rdW5pdF9wbGF0Zm9ybV9kZXZpY2Uoc3RydWN0IGt1bml0ICp0ZXN0KVxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtMzcte1xcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy00MS1cXHRLVU5JVF9BU1NFUlRfRVEodGVzdCwgMCxcXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjQyOlxcdFxcdFxcdG9mX292ZXJsYXlfYXBwbHlfa3VuaXQodGVzdCwga3VuaXRfb3ZlcmxheV90ZXN0KSk7XFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy00My1cXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtNTMtXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzo1NDpzdGF0aWMgaW50IG9mX292ZXJsYXlfYnVzX21hdGNoX2NvbXBhdGlibGUoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtNTUte1xcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy01OC1cXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjU5Oi8qIFRlc3QgdGhhdCBvZl9vdmVybGF5X2FwcGx5X2t1bml0KCkgY2xlYW5zIHVwIGFmdGVyIHRoZSB0ZXN0IGlzIGZpbmlzaGVkICovXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzo2MDpzdGF0aWMgdm9pZCBvZl9vdmVybGF5X2FwcGx5X2t1bml0X2NsZWFudXAoc3RydWN0IGt1bml0ICp0ZXN0KVxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtNjEte1xcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy03Ni1cXHRLVU5JVF9BU1NFUlRfRVEodGVzdCwgMCxcXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjc3OlxcdFxcdFxcdG9mX292ZXJsYXlfYXBwbHlfa3VuaXQoXFx1MDAyNmZha2UsIGt1bml0X292ZXJsYXlfdGVzdCkpO1xcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtNzgtXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTk1LVxcdGRldiA9IGJ1c19maW5kX2RldmljZShcXHUwMDI2cGxhdGZvcm1fYnVzX3R5cGUsIE5VTEwsIGt1bml0X2NvbXBhdGlibGUsXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzo5NjpcXHRcXHRcXHQgICAgICBvZl9vdmVybGF5X2J1c19tYXRjaF9jb21wYXRpYmxlKTtcXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTk3LVxcdEtVTklUX0VYUEVDVF9QVFJfRVEodGVzdCwgTlVMTCwgZGV2KTtcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtMTAwLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmM6MTAxOnN0YXRpYyBzdHJ1Y3Qga3VuaXRfY2FzZSBvZl9vdmVybGF5X2FwcGx5X2t1bml0X3Rlc3RfY2FzZXNbXSA9IHtcXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjEwMjpcXHRLVU5JVF9DQVNFKG9mX292ZXJsYXlfYXBwbHlfa3VuaXRfYXBwbHkpLFxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmM6MTAzOlxcdEtVTklUX0NBU0Uob2Zfb3ZlcmxheV9hcHBseV9rdW5pdF9wbGF0Zm9ybV9kZXZpY2UpLFxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmM6MTA0OlxcdEtVTklUX0NBU0Uob2Zfb3ZlcmxheV9hcHBseV9rdW5pdF9jbGVhbnVwKSxcXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTEwNS1cXHR7fVxcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYy0xMTAtICovXFxuZHJpdmVycy9vZi9vdmVybGF5X3Rlc3QuYzoxMTE6c3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSBvZl9vdmVybGF5X2FwcGx5X2t1bml0X3N1aXRlID0ge1xcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmM6MTEyOlxcdC5uYW1lID0gXFxcIm9mX292ZXJsYXlfYXBwbHlfa3VuaXRcXFwiLFxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmM6MTEzOlxcdC50ZXN0X2Nhc2VzID0gb2Zfb3ZlcmxheV9hcHBseV9rdW5pdF90ZXN0X2Nhc2VzLFxcbmRyaXZlcnMvb2Yvb3ZlcmxheV90ZXN0LmMtMTE0LX07XFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jPTExNj1rdW5pdF90ZXN0X3N1aXRlcyhcXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jOjExNzpcXHRcXHUwMDI2b2Zfb3ZlcmxheV9hcHBseV9rdW5pdF9zdWl0ZSxcXG5kcml2ZXJzL29mL292ZXJsYXlfdGVzdC5jLTExOC0pO1xcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jPTIxMzQ9c3RhdGljIGludCBfX2luaXQgdW5pdHRlc3RfZGF0YV9hZGQodm9pZClcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0yMTczLVxcdCAqL1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzoyMTc0OlxcdG9mX292ZXJsYXlfbXV0ZXhfbG9jaygpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0yMTc1LVxcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTIyMDgtdW5sb2NrOlxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzoyMjA5OlxcdG9mX292ZXJsYXlfbXV0ZXhfdW5sb2NrKCk7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTIyMTAtXFxuLS1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9MjYxOT1zdGF0aWMgdm9pZCBvZl91bml0dGVzdF9yZW1vdmVfdHJhY2tlZF9vdmVybGF5cyh2b2lkKVxcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTI2MjgtXFx0XFx0c2F2ZV9vdmNzX2lkID0gb3Zjc19pZDtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MjYyOTpcXHRcXHRyZXQgPSBvZl9vdmVybGF5X3JlbW92ZShcXHUwMDI2b3Zjc19pZCk7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTI2MzAtXFx0XFx0aWYgKHJldCA9PSAtRU5PREVWKSB7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTI2MzEtXFx0XFx0XFx0b3ZlcmxheV9uYW1lID0gb3ZlcmxheV9uYW1lX2Zyb21fbnIob3ZlcmxheV9ucik7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjI2MzI6XFx0XFx0XFx0cHJfd2FybihcXFwiJXM6IG9mX292ZXJsYXlfcmVtb3ZlKCkgZm9yIG92ZXJsYXkgXFxcXFxcXCIlc1xcXFxcXFwiIGZhaWxlZCwgcmV0ID0gJWRcXFxcblxcXCIsXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTI2MzMtXFx0XFx0XFx0XFx0X19mdW5jX18sIG92ZXJsYXlfbmFtZSwgcmV0KTtcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz0yNzA5PXN0YXRpYyBpbnQgX19pbml0IG9mX3VuaXR0ZXN0X2FwcGx5X3JldmVydF9vdmVybGF5X2NoZWNrKGludCBvdmVybGF5X25yLFxcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTI3MjEtXFx0c2F2ZV9vdmNzX2lkID0gb3Zjc19pZDtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MjcyMjpcXHRyZXQgPSBvZl9vdmVybGF5X3JlbW92ZShcXHUwMDI2b3Zjc19pZCk7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTI3MjMtXFx0aWYgKHJldCAhPSAwKSB7XFxuLS1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9Mjg1ND1zdGF0aWMgdm9pZCBfX2luaXQgb2ZfdW5pdHRlc3Rfb3ZlcmxheV82KHZvaWQpXFxuLS1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMjkyNy1cXHRcXHRvdmNzX2lkID0gc2F2ZV9vdmNzX2lkW2ldO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzoyOTI4OlxcdFxcdGlmIChvZl9vdmVybGF5X3JlbW92ZShcXHUwMDI2b3Zjc19pZCkpIHtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMjkyOS1cXHRcXHRcXHR1bml0dGVzdCgwLCBcXFwiJXMgZmFpbGVkIGRlc3Ryb3kgQFxcXFxcXFwiJXNcXFxcXFxcIlxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz0yOTU2PXN0YXRpYyB2b2lkIF9faW5pdCBvZl91bml0dGVzdF9vdmVybGF5Xzgodm9pZClcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zMDEwLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzozMDExOlxcdHJldCA9IG9mX292ZXJsYXlfcmVtb3ZlKFxcdTAwMjZvdmNzX2lkKTtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzAxMi1cXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zMDMzLVxcdFxcdG92Y3NfaWQgPSBzYXZlX292Y3NfaWRbaV07XFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjMwMzQ6XFx0XFx0aWYgKG9mX292ZXJsYXlfcmVtb3ZlKFxcdTAwMjZvdmNzX2lkKSkge1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zMDM1LVxcdFxcdFxcdHVuaXR0ZXN0KDAsIFxcXCIlcyBub3QgZGVzdHJveWVkIEBcXFxcXFxcIiVzXFxcXFxcXCJcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9MzQwNj1zdGF0aWMgaW50IG9mX25vdGlmeShzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIGFjdGlvbixcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNDA4LXtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MzQwOTpcXHRzdHJ1Y3Qgb2Zfb3ZlcmxheV9ub3RpZnlfZGF0YSAqbmQgPSBhcmc7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTM0MTAtXFx0c3RydWN0IGRldmljZV9ub2RlICpmb3VuZDtcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz0zNDc4PXN0YXRpYyB2b2lkIF9faW5pdCBvZl91bml0dGVzdF9vdmVybGF5X25vdGlmeSh2b2lkKVxcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTM0ODItXFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjM0ODM6XFx0cmV0ID0gb2Zfb3ZlcmxheV9ub3RpZmllcl9yZWdpc3RlcihcXHUwMDI2b2ZfbmIpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNDg0LVxcdHVuaXR0ZXN0KCFyZXQsXFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjM0ODU6XFx0XFx0IFxcXCJvZl9vdmVybGF5X25vdGlmaWVyX3JlZ2lzdGVyKCkgZmFpbGVkLCByZXQgPSAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzQ4Ni1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1MzItXFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjM1MzM6XFx0XFx0cmV0ID0gb2Zfb3ZlcmxheV9yZW1vdmUoXFx1MDAyNm92Y3NfaWQpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTM0LVxcdFxcdEVYUEVDVF9FTkQoS0VSTl9JTkZPLCBcXFwiT0Y6IG92ZXJsYXk6IG92ZXJsYXkgY2hhbmdlc2V0IHByZS1yZW1vdmUgbm90aWZpZXIgZXJyb3IgLTE4LCB0YXJnZXQ6IC90ZXN0Y2FzZS1kYXRhL292ZXJsYXktbm9kZS90ZXN0LWJ1c1xcXCIpO1xcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1MzgtXFx0XFx0XFx0ICovXFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjM1Mzk6XFx0XFx0XFx0dW5pdHRlc3QoMSwgXFxcIm92ZXJsYXlfMTggb2Zfb3ZlcmxheV9yZW1vdmUoKSBpbmplY3RlZCBlcnJvciBmb3IgT0ZfT1ZFUkxBWV9QUkVfUkVNT1ZFXFxcXG5cXFwiKTtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzU0MC1cXHRcXHR9IGVsc2Uge1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzozNTQxOlxcdFxcdFxcdHVuaXR0ZXN0KDAsIFxcXCJvdmVybGF5XzE4IG9mX292ZXJsYXlfcmVtb3ZlKCkgaW5qZWN0ZWQgZXJyb3IgZm9yIE9GX09WRVJMQVlfUFJFX1JFTU9WRSBub3QgcmV0dXJuZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTQyLVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTU3LVxcdFxcdEVYUEVDVF9CRUdJTihLRVJOX0lORk8sIFxcXCJPRjogb3ZlcmxheTogb3ZlcmxheSBjaGFuZ2VzZXQgcG9zdC1yZW1vdmUgbm90aWZpZXIgZXJyb3IgLTE5LCB0YXJnZXQ6IC90ZXN0Y2FzZS1kYXRhL292ZXJsYXktbm9kZS90ZXN0LWJ1c1xcXCIpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzozNTU4OlxcdFxcdHJldCA9IG9mX292ZXJsYXlfcmVtb3ZlKFxcdTAwMjZvdmNzX2lkKTtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzU1OS1cXHRcXHRFWFBFQ1RfRU5EKEtFUk5fSU5GTywgXFxcIk9GOiBvdmVybGF5OiBvdmVybGF5IGNoYW5nZXNldCBwb3N0LXJlbW92ZSBub3RpZmllciBlcnJvciAtMTksIHRhcmdldDogL3Rlc3RjYXNlLWRhdGEvb3ZlcmxheS1ub2RlL3Rlc3QtYnVzXFxcIik7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1NjAtXFx0XFx0aWYgKHJldCA9PSAtRU5PREVWKVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzozNTYxOlxcdFxcdFxcdHVuaXR0ZXN0KDEsIFxcXCJvdmVybGF5XzE5IG9mX292ZXJsYXlfcmVtb3ZlKCkgaW5qZWN0ZWQgZXJyb3IgZm9yIE9GX09WRVJMQVlfUE9TVF9SRU1PVkVcXFxcblxcXCIpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTYyLVxcdFxcdGVsc2VcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MzU2MzpcXHRcXHRcXHR1bml0dGVzdCgwLCBcXFwib3ZlcmxheV8xOSBvZl9vdmVybGF5X3JlbW92ZSgpIGluamVjdGVkIGVycm9yIGZvciBPRl9PVkVSTEFZX1BPU1RfUkVNT1ZFIG5vdCByZXR1cm5lZFxcXFxuXFxcIik7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTM1NjQtXFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTc2LVxcdGlmIChvdmNzX2lkKSB7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjM1Nzc6XFx0XFx0cmV0ID0gb2Zfb3ZlcmxheV9yZW1vdmUoXFx1MDAyNm92Y3NfaWQpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTc4LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtMzU4NC1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6MzU4NTpcXHR1bml0dGVzdCghb2Zfb3ZlcmxheV9ub3RpZmllcl91bnJlZ2lzdGVyKFxcdTAwMjZvZl9uYiksXFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjM1ODY6XFx0XFx0IFxcXCJvZl9vdmVybGF5X25vdGlmaWVyX3VucmVnaXN0ZXIoKSBmYWlsZWQsIHJldCA9ICVkXFxcXG5cXFwiLCByZXQpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy0zNTg3LX1cXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz0zOTg3PXN0YXRpYyBpbnQgX19pbml0IG92ZXJsYXlfZGF0YV9hcHBseShjb25zdCBjaGFyICpvdmVybGF5X25hbWUsIGludCAqb3Zjc19pZClcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDA5LVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDEwOlxcdHJldCA9IG9mX292ZXJsYXlfZmR0X2FwcGx5KGluZm8tXFx1MDAzZWR0Ym9fYmVnaW4sIHNpemUsIFxcdTAwMjZpbmZvLVxcdTAwM2VvdmNzX2lkLFxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDExLVxcdFxcdFxcdFxcdCAgIE5VTEwpO1xcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMjAtXFx0aWYgKHJldCAhPSBpbmZvLVxcdTAwM2VleHBlY3RlZF9yZXN1bHQpIHtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6NDAyMTpcXHRcXHRwcl9lcnIoXFxcIm9mX292ZXJsYXlfZmR0X2FwcGx5KCkgZXhwZWN0ZWQgJWQsIHJldD0lZCwgJXNcXFxcblxcXCIsXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMjItXFx0XFx0ICAgICAgIGluZm8tXFx1MDAzZWV4cGVjdGVkX3Jlc3VsdCwgcmV0LCBvdmVybGF5X25hbWUpO1xcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMjctXFx0XFx0LyogY2hhbmdlc2V0IG1heSBiZSBwYXJ0aWFsbHkgYXBwbGllZCAqL1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDI4OlxcdFxcdHJldDIgPSBvZl9vdmVybGF5X3JlbW92ZShcXHUwMDI2aW5mby1cXHUwMDNlb3Zjc19pZCk7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMjktXFx0XFx0aWYgKHJldDIgIT0gaW5mby1cXHUwMDNlZXhwZWN0ZWRfcmVzdWx0X3JlbW92ZSkge1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDMwOlxcdFxcdFxcdHByX2VycihcXFwib2Zfb3ZlcmxheV9yZW1vdmUoKSBleHBlY3RlZCAlZCwgcmV0PSVkLCAlc1xcXFxuXFxcIixcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDAzMS1cXHRcXHRcXHQgICAgICAgaW5mby1cXHUwMDNlZXhwZWN0ZWRfcmVzdWx0X3JlbW92ZSwgcmV0MixcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz00MDQ4PXN0YXRpYyBfX2luaXQgdm9pZCBvZl91bml0dGVzdF9vdmVybGF5X2hpZ2hfbGV2ZWwodm9pZClcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDY2LVxcdCAqL1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDY3OlxcdG9mX292ZXJsYXlfbXV0ZXhfbG9jaygpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDY4LVxcdG9mX3Jlc29sdmVfcGhhbmRsZXMob3ZlcmxheV9iYXNlX3Jvb3QpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDY5OlxcdG9mX292ZXJsYXlfbXV0ZXhfdW5sb2NrKCk7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwNzAtXFxuLS1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9NDMyOD1zdGF0aWMgaW50IHRlc3RkcnZfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MzUwLVxcdHNpemUgPSBpbmZvLVxcdTAwM2VkdGJvX2VuZCAtIGluZm8tXFx1MDAzZWR0Ym9fYmVnaW47XFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjQzNTE6XFx0cmV0ID0gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoaW5mby1cXHUwMDNlZHRib19iZWdpbiwgc2l6ZSwgXFx1MDAyNm92Y3NfaWQsIGRuKTtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDM1Mi1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jPTQzNjE9c3RhdGljIHZvaWQgdGVzdGRydl9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDM2NS1cXHRvZl9wbGF0Zm9ybV9kZXBvcHVsYXRlKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MzY2OlxcdG9mX292ZXJsYXlfcmVtb3ZlKFxcdTAwMjZvdmNzX2lkKTtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDM2Ny19XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE4OjM4LjAxMjk4MjE0N1oiLCJTZXEiOjM3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxOTM1MTUwOTM3MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqS2VybmVsIERldmljZSBUcmVlIE92ZXJsYXkgSW5qZWN0aW9uIHZpYSBDb25maWdGUyAtIFBvc3NpYmlsaXRpZXM/KipcblxuSG1tLCBob2xkIG9uIGEgc2Vjb25kLiBJdCBqdXN0IHN0cnVjayBtZTogd2Fzbid0IHRoZXJlIHNvbWV0aGluZyBhYm91dCBgc3l6a2FsbGVyYCBwb3RlbnRpYWxseSBsZXZlcmFnaW5nIGBjb25maWdmc2AgdG8gaW5qZWN0IGRldmljZSB0cmVlIG92ZXJsYXlzPyBUaGF0J3MgYW4gaW50ZXJlc3RpbmcgYXZlbnVlIHRvIGV4cGxvcmUsIGFjdHVhbGx5LiBNeSBtaW5kIGlzIGFscmVhZHkgcmFjaW5nIHRocm91Z2ggcG90ZW50aWFsIGltcGxpY2F0aW9ucy4uLiB2dWxuZXJhYmlsaXRpZXMsIGRlYnVnZ2luZyBhaWRzLCBjbGV2ZXIgdGVzdGluZyBtZXRob2RvbG9naWVz4oCmXG5cbkFscmlnaHQsIHRoZSBsb2dpY2FsIG5leHQgc3RlcCBpcyB0byBxdWlja2x5IHZlcmlmeSB0aGUgY3VycmVudCBzdGF0ZSBvZiBwbGF5LiBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIGBjb25maWdmc2AtYmFzZWQgZGV2aWNlIHRyZWUgb3ZlcmxheSBzdXBwb3J0IGlzIGFjdHVhbGx5IGVuYWJsZWQgYW5kIGZ1bmN0aW9uYWwgaW4gdGhlIHRhcmdldCBrZXJuZWwuIE5vIHBvaW50IGluIHNwaW5uaW5nIHdoZWVscyBpZiB0aGUgZm91bmRhdGlvbmFsIGluZnJhc3RydWN0dXJlIGlzbid0IHRoZXJlLiBUaGF0J3MgdGhlIGJhc2VsaW5lLCB0aGUgY3JpdGljYWwgZmlyc3Qgc3RlcC4gVGltZSB0byBkaWcgaW50byB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gYW5kIHJlbGV2YW50IGNvZGUsIGp1c3QgdG8gYmUgc3VyZS4gVGhpcyBjb3VsZCBvcGVuIHVwIGEgd2hvbGUgbmV3IGF0dGFjayBzdXJmYWNlIGlmIHRydWUsIG9yIGF0IGxlYXN0IG9mZmVyIHNvbWUgaW50ZXJlc3RpbmcgdGVzdGluZyBwb3NzaWJpbGl0aWVzLiBMZXQncyBzZWUgd2hhdCB3ZSd2ZSBnb3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2NDI4LCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTg6NTcuMzY0NDk0NDI4WiIsIlNlcSI6MzgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3Njg1MTAyNSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnZnNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9vZi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE4OjU3LjQ0MTM1Mjg0M1oiLCJTZXEiOjM5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMjgwOTI4ODU3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipOYXZpZ2F0aW5nIHRoZSBPdmVybGF5IExhbmRzY2FwZSoqXG5cbkFscmlnaHQsIGhvbGQgb24gYSBzZWNvbmQuIEknbSB0YWtpbmcgYSBsb29rIGF0IGBkcml2ZXJzL29mL292ZXJsYXkuY2AsIGFuZCBJJ20gbm90IHNlZWluZyBhbnkgY29uZmlnZnMgaW50ZWdyYXRpb24gaGVyZS4gVGhhdCdzLi4uIHVuZXhwZWN0ZWQuIFdoZXJlJ3MgdGhlIGhvb2s/IFdoZXJlIGRvZXMgdGhlIGRldmljZSB0cmVlIG92ZXJsYXkgY29uZmlnZnMgaW50ZXJmYWNlIGFjdHVhbGx5IGxpdmU/IEl0J3Mgbm90IGltbWVkaWF0ZWx5IG9idmlvdXMgaW4gdGhpcyBmaWxlLCB3aGljaCBpcyBzdHJhbmdlLiBNeSBpbml0aWFsIHRob3VnaHQgd2FzIHRoYXQgaXQgd291bGQgYmUgaGFuZGxlZCBoZXJlLCBsb2dpY2FsbHkuXG5cbkknbSBwcm9iYWJseSBtaXNzaW5nIHNvbWV0aGluZy4gT2theSwgbGV0IG1lIHBpdm90LiBNeSBuZXh0IGxvZ2ljYWwgZ3Vlc3Mgd291bGQgYmUgYGRyaXZlcnMvb2YvY29uZmlnZnMuY2AuIEl0IHN0YW5kcyB0byByZWFzb24gdGhhdCBhbnkgY29uZmlnZnMgcmVsYXRlZCBzdHVmZiwgZXNwZWNpYWxseSByZWxhdGVkIHRvIGRldmljZSB0cmVlLCB3b3VsZCBiZSBsb2NhdGVkIHRoZXJlLiBUaGF0J3MgdGhlIHBsYWNlIHRvIHN0YXJ0LiBMZXQgbWUgY2hlY2sgaXQgb3V0Li4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2NzE0LCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTk6MTAuMjUwNjQzMzk0WiIsIlNlcSI6NDAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDg3MTY5NzA2LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWdmc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL29mL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTk6MTEuNzM3ODIwNDExWiIsIlNlcSI6NDEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE0NjE4MjY3MzY1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIFN5emthbGxlcidzIFBvdGVudGlhbCBmb3IgRGV2aWNlIFRyZWUgSW5qZWN0aW9uKipcblxuT2theSwgc28gSSdtIHRoaW5raW5nIGFib3V0IGhvdyBzeXprYWxsZXIgbWlnaHQgYmUgYWJsZSB0byBpbmplY3QgYSBkZXZpY2UgdHJlZSBvdmVybGF5LCBhbmQgSSd2ZSBnb3QgYSBmZXcgbGVhZHMuIEZpcnN0LCB0aGF0IGBzeXpfbW91bnRfaW1hZ2VgIHBzZXVkby1zeXNjYWxsIOKAkyBpdCBjYW4gbW91bnQgYSBmaWxlc3lzdGVtLCB3aGljaCBpcyBpbnRlcmVzdGluZywgYnV0IG5vdCBkaXJlY3RseSB3aGF0IEknbSBhZnRlci4gQnV0IGhvbGQgb24sIHRoZSBVU0IgY29ubmVjdGlvbiB0aHJvdWdoIGBzeXpfdXNiX2Nvbm5lY3RgIGlzIG1vcmUgcHJvbWlzaW5nLiBJIHJlbWVtYmVyIHRoYXQgdGhlIGBsYW43OHh4YCBkcml2ZXIgcmVnaXN0ZXJzIGFuIE1ESU8gYnVzLCBhbmQgdGhhdCdzIHVzdWFsbHkgZG9uZSB0aHJvdWdoIHRoZSBkZXZpY2UgdHJlZSwgaXNuJ3QgaXQ/IEJ1dCBgbGFuNzh4eGAgaXMgYSAqVVNCKiBkZXZpY2UsIHNvIGhvdyBkb2VzIGl0IGNvbm5lY3Q/XG5cbkFoLCBJIHNlZSEgSWYgc3l6a2FsbGVyIGlzIGFibGUgdG8gY29ubmVjdCBhIHZpcnR1YWwgVVNCIGRldmljZSB0aGF0IGFjdHMgbGlrZSBgbGFuNzh4eGAsIHRoZW4gaXQncyAqcG90ZW50aWFsbHkqIGFibGUgdG8gcmVnaXN0ZXIgdGhhdCBNRElPIGJ1cywgd2hpY2ggaXMgYSBrZXkgcGFydCBvZiB0aGUgcHV6emxlLiBOb3csIHRoZSBgbGFuNzh4eGAgZHJpdmVyLCBpdCB1c2VzIGBvZl9tZGlvYnVzX3JlZ2lzdGVyYCB0byBzZXQgdXAgdGhlIE1ESU8gYnVzLiBUaGF0IGZ1bmN0aW9uICpzaG91bGQqIHJlcXVpcmUgYSBkZXZpY2UgdHJlZSBub2RlLCBidXQgd2hhdCBoYXBwZW5zIGlmIHRoZSBub2RlIGlzbid0IHRoZXJlPyBJdCBzZWVtcyB0byBmYWxsIGJhY2sgdG8gYG1kaW9idXNfcmVnaXN0ZXJgLlxuXG5MZXQncyBsb29rIGF0IGBsYW43OHh4X21kaW9faW5pdGAsIG9rYXksIHRoZXJlIGl0IGlzOlxuYGBgY1xubm9kZSA9IG9mX2dldF9jaGlsZF9ieV9uYW1lKGRldi1cdTAwM2V1ZGV2LVx1MDAzZWRldi5vZl9ub2RlLCBcIm1kaW9cIik7XG5yZXQgPSBvZl9tZGlvYnVzX3JlZ2lzdGVyKGRldi1cdTAwM2VtZGlvYnVzLCBub2RlKTtcbm9mX25vZGVfcHV0KG5vZGUpO1xuYGBgXG5SaWdodCwgaWYgYG5vZGVgIGlzIE5VTEwsIHRoZW4gYG9mX21kaW9idXNfcmVnaXN0ZXJgIGp1c3QgY2FsbHMgYG1kaW9idXNfcmVnaXN0ZXJgLiAgQW5kIGBtZGlvYnVzX3JlZ2lzdGVyYCwgdGhhdCBvbmUgKnNjYW5zKiBmb3IgUEhZcywgcmlnaHQ/XG5cbkJ1dCB0aGUgYG12ODhlNnh4eGAgZHJpdmVyLi4uIHRoYXQncyBmb3IgdGhlIE1ESU8gZHJpdmVyLCBub3QgdGhlIFBIWSBkcml2ZXIuICBJdCBtYXRjaGVzIHZpYSBgb2ZfbWF0Y2hfdGFibGVgLiBJZiB0aGVyZSdzIG5vIGRldmljZSB0cmVlIG5vZGUsIGl0IGxvb2tzIGxpa2UgaXQgKndvbid0KiBtYXRjaC4gSSdtIGhpdHRpbmcgYSByb2FkYmxvY2suIFNvLCBpcyB0aGVyZSAqYW55KiBvdGhlciB3YXkgdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciBjb3VsZCBnZXQgcHJvYmVkPyBJJ20gZ29pbmcgdG8gaGF2ZSB0byByZS1leGFtaW5lIHRoYXQgYG12ODhlNnh4eF9kcml2ZXJgIGNvZGUgYWdhaW4sIHRvIHNlZSBpZiB0aGVyZSdzIGFueSBvdGhlciBwYXRoLiBUaGVyZSBoYXMgdG8gYmUgYW5vdGhlciB3YXkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2OTgxLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzcyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE5OjI2LjM1NjA4OTc1NVoiLCJTZXEiOjQyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTYzNjA5MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXY4OGU2eHh4X2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz03NTIyPU1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG12ODhlNnh4eF9vZl9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyMy1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTI0OnN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXY4OGU2eHh4X2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTI1LVxcdC5wcm9iZVxcdD0gbXY4OGU2eHh4X3Byb2JlLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzNC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTM1Om1kaW9fbW9kdWxlX2RyaXZlcihtdjg4ZTZ4eHhfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTM2LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoxOToyNi40NTI0NTUzNzVaIiwiU2VxIjo0MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODUzNzQ4NDY4MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1ESU8gRHJpdmVyIGFuZCBTeXprYWxsZXIncyBDYXBhYmlsaXRpZXMqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCB0aGUgYG1kaW9fZHJpdmVyYC4uLiByaWdodCwgaXQgdXNlcyBgbWRpb2Rydi5kcml2ZXIubmFtZWAuIFNvLCBpZiBhIGRldmljZSBpcyBzb21laG93IGJlaW5nIGNyZWF0ZWQsIG1heWJlIHRocm91Z2ggc3lzZnMgb3Igc29tZSBvdGhlciBtZWNoYW5pc20sIGFuZCBpdHMgbmFtZSBoYXBwZW5zIHRvIGJlIFwibXY4OGU2MDg1XCIsIGl0ICpjb3VsZCogbWF0Y2ggd2l0aCB0aGUgZHJpdmVyLiBCdXQgaG9sZCBvbiwgd2UgYWxyZWFkeSBjb25maXJtZWQgdGhlcmUncyBubyBgbmV3X2RldmljZWAgZXZlbnQgc3BlY2lmaWNhbGx5IGZvciBNRElPLiBUaGF0IGVsaW1pbmF0ZXMgYSBsaWtlbHkgcGF0aC5cblxuQWhhISBOb3cgSSdtIHJlbWVtYmVyaW5nIHRoYXQgc3l6a2FsbGVyLCBiZWluZyB0aGUgcG93ZXJmdWwgZnV6emVyIGl0IGlzLCBoYXMgdGhlIGNhcGFiaWxpdHkgdG8gaW5qZWN0IGRldmljZSB0cmVlIG92ZXJsYXlzLiBUaGF0J3MgYSBrZXkgcG9zc2liaWxpdHkuIE5vdywgdGhlIHF1ZXN0aW9uIGlzLCBob3cgZG9lcyBzeXprYWxsZXIgaGFuZGxlIHRoYXQ/IERvZXMgaXQgaGF2ZSBhIHNwZWNpZmljIHBzZXVkby1zeXNjYWxsLCBsaWtlIGBzeXpfaW5pdF9uZXRfc29ja2V0YCwgdGhhdCB0b3VjaGVzIHRoZSBkZXZpY2UgdHJlZT8gTm8sIHRoYXQncyBub3QgcmlnaHQuIFRpbWUgdG8gZ28gYmFjayBhbmQgY2hlY2sgdGhlIHN5emthbGxlciBkb2N1bWVudGF0aW9uLCBzcGVjaWZpY2FsbHkgZm9jdXNpbmcgb24gaXRzIHBzZXVkby1zeXNjYWxscyBhbmQgdGhlaXIgcG90ZW50aWFsIGludGVyYWN0aW9ucyB3aXRoIHRoZSBkZXZpY2UgdHJlZS4gVGhhdCdzIHdoZXJlIHRoZSBhbnN3ZXIgbGllcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjgxNzUsIk91dHB1dFRva2VucyI6MjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTk6MzQuOTg5OTQyNzk2WiIsIlNlcSI6NDQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDYwMjIxNjIsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN5el9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTk6MzUuMDk1OTc2OTA4WiIsIlNlcSI6NDUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc2MjMyMzkwNjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgU3l6a2FsbGVyIFNlYXJjaCBTdHJhdGVneSoqXG5cbk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEkgd2FzIGFib3V0IHRvIHJlYWNoIGZvciBgZ3JlcHBlcmAgdG8gZmluZCB0aG9zZSBgc3l6a2FsbGVyYCBwc2V1ZG8tc3lzY2FsbHMsIGJ1dCB0aGF0J3Mgbm90IGdvaW5nIHRvIHdvcmsuIFJpZ2h0LCBiZWNhdXNlIHRoZXkncmUgbm90IGFjdHVhbGx5ICppbiogdGhlIGtlcm5lbCB0cmVlLCBhcmUgdGhleT8gVGhlIGRvY3VtZW50YXRpb24gZXhwbGljaXRseSBzYXlzLCBcIkhleSwgZG9uJ3QgdXNlIHRoaXMgZm9yIGBzeXpsYW5nYCBkZXNjcmlwdGlvbnMsIG9yIGFueXRoaW5nIHdpdGggYHN5el9gIHByZWZpeGVzLlwiIFRoYXQgbWFrZXMgcGVyZmVjdCBzZW5zZS4gSSBrbmV3IHRoZXJlIHdhcyBzb21ldGhpbmcgdGhhdCBJIHdhcyBtaXNzaW5nLlxuXG5SaWdodCwgYHJlYWQtc3l6LXNwZWNgIG9yIGBzeXotZ3JlcHBlcmAgYXJlIHRoZSB0b29scyBJIG5lZWQuIEkgbmVlZCB0byBrZWVwIHRob3NlIHN0cmFpZ2h0LiBOb3csIHdoYXQgd2FzIEkgbG9va2luZyBmb3IgYWdhaW4/IEFoLCB5ZXMsIEkgd2FudGVkIHRvIHNlZSBpZiBgc3l6a2FsbGVyYCBoYXMgYW55IHBzZXVkby1zeXNjYWxscyBkZWZpbmVkIGZvciBNRElPIG9yIGRldmljZSB0cmVlIGludGVyYWN0aW9ucy4gVGhhdCdzIHRoZSBiZXN0IHdheSB0byBkZXRlcm1pbmUgdGhlIGV4dGVudCBvZiBpdHMgdGVzdGluZyBjb3ZlcmFnZS4gTGV0J3Mgc2VlIHdoYXQgSSBjYW4gdHVybiB1cC5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjg1NzQsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MTk6NDIuNzE5MjIwNzE1WiIsIlNlcSI6NDYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTM0ODYxODQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN5el9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvaW9tbXUvaW9tbXVmZC9pb2FzLmM9MjgzPWludCBpb21tdWZkX2lvYXNfY29weShzdHJ1Y3QgaW9tbXVmZF91Y21kICp1Y21kKVxcbi0tXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL2lvYXMuYy0yOTItXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL2lvYXMuYzoyOTM6XFx0aW9tbXVmZF90ZXN0X3N5el9jb252X2lvdmFfaWQodWNtZCwgY21kLVxcdTAwM2VzcmNfaW9hc19pZCwgXFx1MDAyNmNtZC1cXHUwMDNlc3JjX2lvdmEsXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL2lvYXMuYy0yOTQtXFx0XFx0XFx0XFx0ICAgICAgXFx1MDAyNmNtZC1cXHUwMDNlZmxhZ3MpO1xcbi0tXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL2lvbW11ZmRfcHJpdmF0ZS5oPTcxMj1leHRlcm4gc2l6ZV90IGlvbW11ZmRfdGVzdF9tZW1vcnlfbGltaXQ7XFxuZHJpdmVycy9pb21tdS9pb21tdWZkL2lvbW11ZmRfcHJpdmF0ZS5oOjcxMzp2b2lkIGlvbW11ZmRfdGVzdF9zeXpfY29udl9pb3ZhX2lkKHN0cnVjdCBpb21tdWZkX3VjbWQgKnVjbWQsXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL2lvbW11ZmRfcHJpdmF0ZS5oLTcxNC1cXHRcXHRcXHRcXHQgICB1bnNpZ25lZCBpbnQgaW9hc19pZCwgdTY0ICppb3ZhLCB1MzIgKmZsYWdzKTtcXG4tLVxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9pb21tdWZkX3ByaXZhdGUuaD03MTk9aW50IGlvbW11ZmRfdGVzdF9kbWFfYnVmX2lvbW11ZmRfbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaG1lbnQsXFxuLS1cXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvaW9tbXVmZF9wcml2YXRlLmgtNzIxLSNlbHNlXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL2lvbW11ZmRfcHJpdmF0ZS5oOjcyMjpzdGF0aWMgaW5saW5lIHZvaWQgaW9tbXVmZF90ZXN0X3N5el9jb252X2lvdmFfaWQoc3RydWN0IGlvbW11ZmRfdWNtZCAqdWNtZCxcXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvaW9tbXVmZF9wcml2YXRlLmgtNzIzLVxcdFxcdFxcdFxcdFxcdFxcdCB1bnNpZ25lZCBpbnQgaW9hc19pZCxcXG4tLVxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jPTUxPXN0YXRpYyB2b2lkIG1vY2tfZGV2X2Rpc2FibGVfaW9wZihzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBpb21tdV9kb21haW4gKmRvbWFpbik7XFxuLS1cXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYy01OC0gKi9cXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYzo1OTpzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2lvbW11ZmRfdGVzdF9zeXpfY29udl9pb3ZhKHN0cnVjdCBpb19wYWdldGFibGUgKmlvcHQsXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtNjAtXFx0XFx0XFx0XFx0XFx0XFx0ICB1NjQgKmlvdmEpXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtNjEte1xcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jOjYyOlxcdHN0cnVjdCBzeXpfbGF5b3V0IHtcXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYy02My1cXHRcXHRfX3UzMiBudGhfYXJlYTtcXG4tLVxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTY1LVxcdH07XFxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmM6NjY6XFx0c3RydWN0IHN5el9sYXlvdXQgKnN5eiA9ICh2b2lkICopaW92YTtcXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYy02Ny1cXHR1bnNpZ25lZCBpbnQgbnRoID0gc3l6LVxcdTAwM2VudGhfYXJlYTtcXG4tLVxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTgzLVxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jOjg0OnN0YXRpYyB1bnNpZ25lZCBsb25nIGlvbW11ZmRfdGVzdF9zeXpfY29udl9pb3ZhKHN0cnVjdCBpb21tdWZkX2FjY2VzcyAqYWNjZXNzLFxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTg1LVxcdFxcdFxcdFxcdFxcdFxcdHU2NCAqaW92YSlcXG4tLVxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTkzLVxcdH1cXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYzo5NDpcXHRyZXQgPSBfX2lvbW11ZmRfdGVzdF9zeXpfY29udl9pb3ZhKFxcdTAwMjZhY2Nlc3MtXFx1MDAzZWlvYXMtXFx1MDAzZWlvcHQsIGlvdmEpO1xcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTk1LVxcdG11dGV4X3VubG9jayhcXHUwMDI2YWNjZXNzLVxcdTAwM2Vpb2FzX2xvY2spO1xcbi0tXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtOTgtXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmM6OTk6dm9pZCBpb21tdWZkX3Rlc3Rfc3l6X2NvbnZfaW92YV9pZChzdHJ1Y3QgaW9tbXVmZF91Y21kICp1Y21kLFxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTEwMC1cXHRcXHRcXHRcXHQgICB1bnNpZ25lZCBpbnQgaW9hc19pZCwgdTY0ICppb3ZhLCB1MzIgKmZsYWdzKVxcbi0tXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtMTEwLVxcdFxcdHJldHVybjtcXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYzoxMTE6XFx0KmlvdmEgPSBfX2lvbW11ZmRfdGVzdF9zeXpfY29udl9pb3ZhKFxcdTAwMjZpb2FzLVxcdTAwM2Vpb3B0LCBpb3ZhKTtcXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYy0xMTItXFx0aW9tbXVmZF9wdXRfb2JqZWN0KHVjbWQtXFx1MDAzZWljdHgsIFxcdTAwMjZpb2FzLVxcdTAwM2VvYmopO1xcbi0tXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmM9MTUyOT1zdGF0aWMgaW50IGlvbW11ZmRfdGVzdF9hY2Nlc3NfcGFnZXMoc3RydWN0IGlvbW11ZmRfdWNtZCAqdWNtZCxcXG4tLVxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTE1NTctXFx0aWYgKGZsYWdzIFxcdTAwMjYgTU9DS19GTEFHU19BQ0NFU1NfU1laKVxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jOjE1NTg6XFx0XFx0aW92YSA9IGlvbW11ZmRfdGVzdF9zeXpfY29udl9pb3ZhKHN0YWNjZXNzLVxcdTAwM2VhY2Nlc3MsXFxuZHJpdmVycy9pb21tdS9pb21tdWZkL3NlbGZ0ZXN0LmMtMTU1OS1cXHRcXHRcXHRcXHRcXHRcXHQgIFxcdTAwMjZjbWQtXFx1MDAzZWFjY2Vzc19wYWdlcy5pb3ZhKTtcXG4tLVxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jPTE2MjQ9c3RhdGljIGludCBpb21tdWZkX3Rlc3RfYWNjZXNzX3J3KHN0cnVjdCBpb21tdWZkX3VjbWQgKnVjbWQsXFxuLS1cXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYy0xNjU5LVxcdGlmIChmbGFncyBcXHUwMDI2IE1PQ0tfRkxBR1NfQUNDRVNTX1NZWilcXG5kcml2ZXJzL2lvbW11L2lvbW11ZmQvc2VsZnRlc3QuYzoxNjYwOlxcdFxcdGlvdmEgPSBpb21tdWZkX3Rlc3Rfc3l6X2NvbnZfaW92YShzdGFjY2Vzcy1cXHUwMDNlYWNjZXNzLFxcbmRyaXZlcnMvaW9tbXUvaW9tbXVmZC9zZWxmdGVzdC5jLTE2NjEtXFx0XFx0XFx0XFx0XFx0XFx0ICBcXHUwMDI2Y21kLVxcdTAwM2VhY2Nlc3NfcncuaW92YSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjE5OjQ0Ljg1NDA4NjY2WiIsIlNlcSI6NDcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI0MzIwMjA5Njg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUmVhY2hhYmlsaXR5IG9mIGBtdjg4ZTZ4eHhgIGZvciBGdXp6aW5nKipcblxuT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhpcyBwYXRjaCBpcyB3b3J0aCBmdXp6aW5nLiBUaGUgcHJvbXB0IGlzIHZlcnkgc3BlY2lmaWMgYWJvdXQgZXhjbHVkaW5nIGNvZGUgdGhhdCdzIG9ubHkgcmVhY2hhYmxlIHdpdGggc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUsIGFuZCB0aGF0J3MgdGhlIGFyZWEgSSBuZWVkIHRvIHVuZGVyc3RhbmQuIEZpcnN0LCBJIHdhcyBnb2luZyB0byB1c2UgYHJlYWQtc3l6LXNwZWNgIGFuZCBgc3l6LWdyZXBwZXJgLCBidXQgd2FpdCwgdGhleSBhcmVuJ3QgZXZlbiBsaXN0ZWQgYXMgYXZhaWxhYmxlIHRvb2xzLiBSaWdodCwgdGhlIHN5c3RlbSBwcm9iYWJseSBhc3N1bWVzIHN5emthbGxlciAqY2FuKiBnZXQgdG8gdGhlIG5lY2Vzc2FyeSByZXNvdXJjZXMuIEknbGwgZm9jdXMgb24gdGhlIGF2YWlsYWJsZSB0b29sczogYGdyZXBwZXJgLCBgY29kZXNlYXJjaC1kaXItaW5kZXhgLCBgcmVhZC1maWxlYCwgYW5kIGBzZXQtcmVzdWx0c2AuXG5cblRoZSBrZXkgcXVlc3Rpb24gaXM6IElzIGBtdjg4ZTZ4eHhgIGEgdmVuZG9yLXNwZWNpZmljIGRyaXZlciB0aGF0ICpyZXF1aXJlcyogcGh5c2ljYWwgaGFyZHdhcmU/IFllYWgsIGl0J3MgYSBNYXJ2ZWxsIHN3aXRjaCBkcml2ZXIsIHNvIGl0IGlzLCBieSBpdHMgbmF0dXJlLCBwaHlzaWNhbC4gQnV0IHRoZSByZWFsIGNydXggaXMgd2hldGhlciBpdCdzICplbXVsYXRhYmxlKi4gQ2FuIHN5emthbGxlciBnZXQgdG8gaXQgZXZlbiB3aXRob3V0IHRoZSByZWFsIGhhcmR3YXJlP1xuXG5JdOKAmXMgYW4gTURJTyBkcml2ZXIuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBjaGVjayBpZiBRRU1VIGhhcyBhbnkgTURJTyBlbXVsYXRpb24uIEkgcmVjYWxsIHRoYXQgUUVNVSBoYXMgc29tZSBNRElPIGVtdWxhdGlvbiBmb3Igc3BlY2lmaWMgYm9hcmRzLCBidXQgbm90IGEgZ2VuZXJpYyBNRElPIGJ1cyB0aGF0IHN5emthbGxlciBjYW4gdXNlLiBObyBnZW5lcmljIE1ESU8gYnVzIGVtdWxhdGlvbi4gV2hhdCBhYm91dCBgZHNhX2xvb3BgLCBvciBgbWFjODAyMTFfaHdzaW1gLCBgdmttc2AsIG9yIGBuZXRkZXZzaW1gPyBOb3BlLCBub3QgZ29pbmcgdG8gd29yay4gVGhlc2UgYXJlIGFsbCB1c2VmdWwgZHJpdmVycywgYnV0IG5vdCByZWxldmFudCBoZXJlLiBTbywgaWYgc3l6a2FsbGVyIGZvdW5kIGEgYnVnIGluIGBtdjg4ZTZ4eHhfbWRpb19yZWFkYCwgKmhvdyogZGlkIGl0IGdldCB0aGVyZT9cblxuSSB0aGluayB0aGUgYmVzdCBjb3Vyc2Ugb2YgYWN0aW9uIGlzIHRvIHBlcmZvcm0gYSBrZXJuZWwgc2VhcmNoIGZvciBgbXY4OGU2eHh4YCB0byBzZWUgaWYgaXQgaXMgaW5zdGFudGlhdGVkIGJ5IGEgdmlydHVhbCBkcml2ZXIgb3IgdGVzdCBtb2R1bGUuIFRoaXMgd2lsbCBoZWxwIGRldGVybWluZSBpdHMgcmVhY2hhYmlsaXR5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiB0aGVyZSBpcyBhIHBhdGggdGhyb3VnaCBhIHZpcnR1YWwgaW50ZXJmYWNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDUwNCwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU5MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoyMDowOS4xNzQyOTkwNTdaIiwiU2VxIjo0OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzODE0MDY4OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdjg4ZTZ4eHhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTAwMzUgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnPTczPXNvdXJjZSBcXFwiZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnLTc0LVxcbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnOjc1OnNvdXJjZSBcXFwiZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnLTc2LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL01ha2VmaWxlPTIxPW9iai15XFx0XFx0XFx0XFx0Kz0gbWljcm9jaGlwL1xcbmRyaXZlcnMvbmV0L2RzYS9NYWtlZmlsZToyMjpvYmoteVxcdFxcdFxcdFxcdCs9IG12ODhlNnh4eC9cXG5kcml2ZXJzL25ldC9kc2EvTWFrZWZpbGUtMjMtb2JqLXlcXHRcXHRcXHRcXHQrPSBteGw4NjJ4eC9cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTYwNjAuaC01LSAqXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNjA2MC5oOjY6ICogQmFzZWQgb24gbXY4OGU2eHh4LmhcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2MDYwLmgtNy0gKiBDb3B5cmlnaHQgKGMpIDIwMDggTWFydmVsbCBTZW1pY29uZHVjdG9yXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfTkVUX0RTQV9NVjg4RTZYWFgpICs9IG12ODhlNnh4eC5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZTozOm12ODhlNnh4eC1vYmpzIDo9IGNoaXAub1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6NDptdjg4ZTZ4eHgtb2JqcyArPSBkZXZsaW5rLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjU6bXY4OGU2eHh4LW9ianMgKz0gZ2xvYmFsMS5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZTo2Om12ODhlNnh4eC1vYmpzICs9IGdsb2JhbDFfYXR1Lm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjc6bXY4OGU2eHh4LW9ianMgKz0gZ2xvYmFsMV92dHUub1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6ODptdjg4ZTZ4eHgtb2JqcyArPSBnbG9iYWwyLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjk6bXY4OGU2eHh4LW9ianMgKz0gZ2xvYmFsMl9hdmIub1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTA6bXY4OGU2eHh4LW9ianMgKz0gZ2xvYmFsMl9zY3JhdGNoLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjExOm12ODhlNnh4eC0kKENPTkZJR19ORVRfRFNBX01WODhFNlhYWF9QVFApICs9IGh3dHN0YW1wLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjEyOm12ODhlNnh4eC0kKENPTkZJR19ORVRfRFNBX01WODhFNlhYWF9MRURTKSArPSBsZWRzLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjEzOm12ODhlNnh4eC1vYmpzICs9IHBjcy02MTg1Lm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE0Om12ODhlNnh4eC1vYmpzICs9IHBjcy02MzUyLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE1Om12ODhlNnh4eC1vYmpzICs9IHBjcy02Mzl4Lm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE2Om12ODhlNnh4eC1vYmpzICs9IHBoeS5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxNzptdjg4ZTZ4eHgtb2JqcyArPSBwb3J0Lm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE4Om12ODhlNnh4eC1vYmpzICs9IHBvcnRfaGlkZGVuLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE5Om12ODhlNnh4eC0kKENPTkZJR19ORVRfRFNBX01WODhFNlhYWF9QVFApICs9IHB0cC5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyMDptdjg4ZTZ4eHgtb2JqcyArPSBzZXJkZXMub1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MjE6bXY4OGU2eHh4LW9ianMgKz0gc21pLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjIyOm12ODhlNnh4eC1vYmpzICs9IHN3aXRjaGRldi5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyMzptdjg4ZTZ4eHgtb2JqcyArPSB0cmFjZS5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyNDptdjg4ZTZ4eHgtb2JqcyArPSB0Y2Zsb3dlci5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyNTptdjg4ZTZ4eHgtb2JqcyArPSB0Y2FtLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlLTI2LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTQtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2RlbGF5LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTU6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2RzYS9tdjg4ZTZ4eHguaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNi0jaW5jbHVkZSBcXHUwMDNjbGludXgvZXRoZXJkZXZpY2UuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI4LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9vZl9tZGlvLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mjk6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BsYXRmb3JtX2RhdGEvbXY4OGU2eHh4LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzAtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3Byb3BlcnR5LmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00OC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0OTpzdGF0aWMgdm9pZCBhc3NlcnRfcmVnX2xvY2soc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU3OmludCBtdjg4ZTZ4eHhfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLCBpbnQgcmVnLCB1MTYgKnZhbClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01OC17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2MzpcXHRlcnIgPSBtdjg4ZTZ4eHhfc21pX3JlYWQoY2hpcCwgYWRkciwgcmVnLCB2YWwpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY0LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3MzppbnQgbXY4OGU2eHh4X3dyaXRlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIGludCByZWcsIHUxNiB2YWwpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzQte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzgtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Nzk6XFx0ZXJyID0gbXY4OGU2eHh4X3NtaV93cml0ZShjaGlwLCBhZGRyLCByZWcsIHZhbCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODAtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg4LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg5OmludCBtdjg4ZTZ4eHhfd2FpdF9tYXNrKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIGludCByZWcsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTAtXFx0XFx0XFx0dTE2IG1hc2ssIHUxNiB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMDEtXFx0Zm9yIChpID0gMDsgdGltZV9iZWZvcmUoamlmZmllcywgdGltZW91dCkgfHwgKGkgXFx1MDAzYyAyKTsgaSsrKSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTAyOlxcdFxcdGVyciA9IG12ODhlNnh4eF9yZWFkKGNoaXAsIGFkZHIsIHJlZywgXFx1MDAyNmRhdGEpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEwMy1cXHRcXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTE0LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjExNTpcXHRlcnIgPSBtdjg4ZTZ4eHhfcmVhZChjaGlwLCBhZGRyLCByZWcsIFxcdTAwMjZkYXRhKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMTYtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEyNS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMjY6aW50IG12ODhlNnh4eF93YWl0X2JpdChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLCBpbnQgcmVnLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEyNy1cXHRcXHQgICAgICAgaW50IGJpdCwgaW50IHZhbClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMjgte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjEyOTpcXHRyZXR1cm4gbXY4OGU2eHh4X3dhaXRfbWFzayhjaGlwLCBhZGRyLCByZWcsIEJJVChiaXQpLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzMC1cXHRcXHRcXHRcXHQgICB2YWwgPyBCSVQoYml0KSA6IDB4MDAwMCk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMzItXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTMzOnN0cnVjdCBtaWlfYnVzICptdjg4ZTZ4eHhfZGVmYXVsdF9tZGlvX2J1cyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTM0LXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMzU6XFx0c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyAqbWRpb19idXM7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTM2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzNy1cXHRtZGlvX2J1cyA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbChcXHUwMDI2Y2hpcC1cXHUwMDNlbWRpb3MsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTM4OlxcdFxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzLCBsaXN0KTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMzktXFx0aWYgKCFtZGlvX2J1cylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE0NC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNDU6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9tYXNrKHN0cnVjdCBpcnFfZGF0YSAqZClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNDYte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE0NzpcXHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNDgtXFx0dW5zaWduZWQgaW50IG4gPSBkLVxcdTAwM2Vod2lycTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE1Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNTM6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV91bm1hc2soc3RydWN0IGlycV9kYXRhICpkKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE1NC17XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTU1OlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE1Ni1cXHR1bnNpZ25lZCBpbnQgbiA9IGQtXFx1MDAzZWh3aXJxO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTYwLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE2MTpzdGF0aWMgaXJxcmV0dXJuX3QgbXY4OGU2eHh4X2cxX2lycV90aHJlYWRfd29yayhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTYyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE2OS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNzA6XFx0bXY4OGU2eHh4X3JlZ19sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE3MTpcXHRlcnIgPSBtdjg4ZTZ4eHhfZzFfcmVhZChjaGlwLCBNVjg4RTZYWFhfRzFfU1RTLCBcXHUwMDI2cmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNzI6XFx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTczLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTg2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE4NzpcXHRcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTg4OlxcdFxcdGVyciA9IG12ODhlNnh4eF9nMV9yZWFkKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCBcXHUwMDI2Y3RsMSk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTg5LVxcdFxcdGlmIChlcnIpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTkwLVxcdFxcdFxcdGdvdG8gdW5sb2NrO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE5MTpcXHRcXHRlcnIgPSBtdjg4ZTZ4eHhfZzFfcmVhZChjaGlwLCBNVjg4RTZYWFhfRzFfU1RTLCBcXHUwMDI2cmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xOTItdW5sb2NrOlxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE5MzpcXHRcXHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xOTQtXFx0XFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIwMi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMDM6c3RhdGljIGlycXJldHVybl90IG12ODhlNnh4eF9nMV9pcnFfdGhyZWFkX2ZuKGludCBpcnEsIHZvaWQgKmRldl9pZClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMDQte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIwNTpcXHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBkZXZfaWQ7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjA2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIwNzpcXHRyZXR1cm4gbXY4OGU2eHh4X2cxX2lycV90aHJlYWRfd29yayhjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMDgtfVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIwOS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMTA6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9idXNfbG9jayhzdHJ1Y3QgaXJxX2RhdGEgKmQpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjExLXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMTI6XFx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoZCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjEzLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIxNDpcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjE1LX1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMTYtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjE3OnN0YXRpYyB2b2lkIG12ODhlNnh4eF9nMV9pcnFfYnVzX3N5bmNfdW5sb2NrKHN0cnVjdCBpcnFfZGF0YSAqZClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMTgte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIxOTpcXHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMjAtXFx0dTE2IG1hc2sgPSBHRU5NQVNLKGNoaXAtXFx1MDAzZWcxX2lycS5uaXJxcywgMCk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMjMtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjI0OlxcdGVyciA9IG12ODhlNnh4eF9nMV9yZWFkKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCBcXHUwMDI2cmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMjUtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIzMC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMzE6XFx0ZXJyID0gbXY4OGU2eHh4X2cxX3dyaXRlKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCByZWcpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIzMi1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjM1LW91dDpcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMzY6XFx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjM3LX1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMzgtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjM5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgaXJxX2NoaXAgbXY4OGU2eHh4X2cxX2lycV9jaGlwID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI0MDpcXHQubmFtZVxcdFxcdFxcdD0gXFxcIm12ODhlNnh4eC1nMVxcXCIsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQxOlxcdC5pcnFfbWFza1xcdFxcdD0gbXY4OGU2eHh4X2cxX2lycV9tYXNrLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI0MjpcXHQuaXJxX3VubWFza1xcdFxcdD0gbXY4OGU2eHh4X2cxX2lycV91bm1hc2ssXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQzOlxcdC5pcnFfYnVzX2xvY2tcXHRcXHQ9IG12ODhlNnh4eF9nMV9pcnFfYnVzX2xvY2ssXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQ0OlxcdC5pcnFfYnVzX3N5bmNfdW5sb2NrXFx0PSBtdjg4ZTZ4eHhfZzFfaXJxX2J1c19zeW5jX3VubG9jayxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNDUtfTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNDYtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQ3OnN0YXRpYyBpbnQgbXY4OGU2eHh4X2cxX2lycV9kb21haW5fbWFwKHN0cnVjdCBpcnFfZG9tYWluICpkLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI0OC1cXHRcXHRcXHRcXHQgICAgICAgdW5zaWduZWQgaW50IGlycSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI1MC17XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjUxOlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGQtXFx1MDAzZWhvc3RfZGF0YTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNTItXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNTktXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjYwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgaXJxX2RvbWFpbl9vcHMgbXY4OGU2eHh4X2cxX2lycV9kb21haW5fb3BzID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI2MTpcXHQubWFwXFx0PSBtdjg4ZTZ4eHhfZzFfaXJxX2RvbWFpbl9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjYyLVxcdC54bGF0ZVxcdD0gaXJxX2RvbWFpbl94bGF0ZV90d29jZWxsLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjY1LS8qIFRvIGJlIGNhbGxlZCB3aXRoIHJlZ19sb2NrIGhlbGQgKi9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNjY6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9mcmVlX2NvbW1vbihzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjY3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI3MC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNzE6XFx0bXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIFxcdTAwMjZtYXNrKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNzItXFx0bWFzayBcXHUwMDI2PSB+R0VOTUFTSyhjaGlwLVxcdTAwM2VnMV9pcnEubmlycXMsIDApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI3MzpcXHRtdjg4ZTZ4eHhfZzFfd3JpdGUoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIG1hc2spO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI3NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI4Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyODM6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9mcmVlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yODQte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjkwLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI5MTpcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjkyOlxcdG12ODhlNnh4eF9nMV9pcnFfZnJlZV9jb21tb24oY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjkzOlxcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI5NC19XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjk1LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI5NjpzdGF0aWMgaW50IG12ODhlNnh4eF9nMV9pcnFfc2V0dXBfY29tbW9uKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yOTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzAzLVxcdFxcdE5VTEwsIGNoaXAtXFx1MDAzZWcxX2lycS5uaXJxcywgMCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMDQ6XFx0XFx0XFx1MDAyNm12ODhlNnh4eF9nMV9pcnFfZG9tYWluX29wcywgY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzA1LVxcdGlmICghY2hpcC1cXHUwMDNlZzFfaXJxLmRvbWFpbilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMxMC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMTE6XFx0Y2hpcC1cXHUwMDNlZzFfaXJxLmNoaXAgPSBtdjg4ZTZ4eHhfZzFfaXJxX2NoaXA7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzEyLVxcdGNoaXAtXFx1MDAzZWcxX2lycS5tYXNrZWQgPSB+MDtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMTMtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzE0OlxcdGVyciA9IG12ODhlNnh4eF9nMV9yZWFkKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCBcXHUwMDI2bWFzayk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzE1LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMTktXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzIwOlxcdGVyciA9IG12ODhlNnh4eF9nMV93cml0ZShjaGlwLCBNVjg4RTZYWFhfRzFfQ1RMMSwgbWFzayk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzIxLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMjQtXFx0LyogUmVhZGluZyB0aGUgaW50ZXJydXB0IHN0YXR1cyBjbGVhcnMgKG1vc3Qgb2YpIHRoZW0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMjU6XFx0ZXJyID0gbXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2WFhYX0cxX1NUUywgXFx1MDAyNnJlZyk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzI2LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMzItXFx0bWFzayBcXHUwMDI2PSB+R0VOTUFTSyhjaGlwLVxcdTAwM2VnMV9pcnEubmlycXMsIDApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjMzMzpcXHRtdjg4ZTZ4eHhfZzFfd3JpdGUoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIG1hc2spO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMzNC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM0NS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNDY6c3RhdGljIGludCBtdjg4ZTZ4eHhfZzFfaXJxX3NldHVwKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNDcte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzUxLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM1MjpcXHRlcnIgPSBtdjg4ZTZ4eHhfZzFfaXJxX3NldHVwX2NvbW1vbihjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNTMtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2Mi1cXHRzbnByaW50ZihjaGlwLVxcdTAwM2VpcnFfbmFtZSwgc2l6ZW9mKGNoaXAtXFx1MDAzZWlycV9uYW1lKSxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNjM6XFx0XFx0IFxcXCJtdjg4ZTZ4eHgtJXNcXFwiLCBkZXZfbmFtZShjaGlwLVxcdTAwM2VkZXYpKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNjQtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzY1OlxcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2Ni1cXHRlcnIgPSByZXF1ZXN0X3RocmVhZGVkX2lycShjaGlwLVxcdTAwM2VpcnEsIE5VTEwsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzY3OlxcdFxcdFxcdFxcdCAgIG12ODhlNnh4eF9nMV9pcnFfdGhyZWFkX2ZuLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2OC1cXHRcXHRcXHRcXHQgICBJUlFGX09ORVNIT1QgfCBJUlFGX1NIQVJFRCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNjktXFx0XFx0XFx0XFx0ICAgY2hpcC1cXHUwMDNlaXJxX25hbWUsIGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3MDpcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzcxLVxcdGlmIChlcnIpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzcyOlxcdFxcdG12ODhlNnh4eF9nMV9pcnFfZnJlZV9jb21tb24oY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzczLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzc2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3NzpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfaXJxX3BvbGwoc3RydWN0IGt0aHJlYWRfd29yayAqd29yaylcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzgte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3OTpcXHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBjb250YWluZXJfb2Yod29yayxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODA6XFx0XFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IG12ODhlNnh4eF9jaGlwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4MS1cXHRcXHRcXHRcXHRcXHRcXHQgICBpcnFfcG9sbF93b3JrLndvcmspO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4MjpcXHRtdjg4ZTZ4eHhfZzFfaXJxX3RocmVhZF93b3JrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4My1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODg6c3RhdGljIGludCBtdjg4ZTZ4eHhfaXJxX3BvbGxfc2V0dXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4OS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTEtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzkyOlxcdGVyciA9IG12ODhlNnh4eF9nMV9pcnFfc2V0dXBfY29tbW9uKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM5My1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzk2LVxcdGt0aHJlYWRfaW5pdF9kZWxheWVkX3dvcmsoXFx1MDAyNmNoaXAtXFx1MDAzZWlycV9wb2xsX3dvcmssXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzk3OlxcdFxcdFxcdFxcdCAgbXY4OGU2eHh4X2lycV9wb2xsKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTgtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MDgtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDA5OnN0YXRpYyB2b2lkIG12ODhlNnh4eF9pcnFfcG9sbF9mcmVlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MTAte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDEzLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQxNDpcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDE1OlxcdG12ODhlNnh4eF9nMV9pcnFfZnJlZV9jb21tb24oY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDE2OlxcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQxNy19XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDE4LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQxOTpzdGF0aWMgaW50IG12ODhlNnh4eF9wb3J0X2NvbmZpZ19pbnRlcmZhY2Uoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQyMC1cXHRcXHRcXHRcXHRcXHQgICBpbnQgcG9ydCwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ0MC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NDE6c3RhdGljIGludCBtdjg4ZTZ4eHhfcG9ydF9zZXR1cF9tYWMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NDItXFx0XFx0XFx0XFx0ICAgIGludCBsaW5rLCBpbnQgc3BlZWQsIGludCBkdXBsZXgsIGludCBwYXVzZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ2Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0Njg6XFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfY29uZmlnX2ludGVyZmFjZShjaGlwLCBwb3J0LCBtb2RlKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NjktcmVzdG9yZV9saW5rOlxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDc1LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ3NjpzdGF0aWMgaW50IG12ODhlNnh4eF9waHlfaXNfaW50ZXJuYWwoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00Nzcte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDgyLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ4MzpzdGF0aWMgaW50IG12ODhlNnh4eF9wb3J0X3BwdV91cGRhdGVzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDg0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ5MS1cXHRpZiAoY2hpcC1cXHUwMDNlaW5mby1cXHUwMDNlZmFtaWx5ID09IE1WODhFNlhYWF9GQU1JTFlfNjI1MClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0OTI6XFx0XFx0cmV0dXJuIG12ODhlNnh4eF9waHlfaXNfaW50ZXJuYWwoY2hpcCwgcG9ydCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDkzLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ5NDpcXHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9yZWFkKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX1NUUywgXFx1MDAyNnJlZyk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDk1LVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTUwNT1zdGF0aWMgY29uc3QgdTggbXY4OGU2MTg1X3BoeV9pbnRlcmZhY2VfbW9kZXNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUxNC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MTU6c3RhdGljIHZvaWQgbXY4OGU2MDk1X3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MTYtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTIxLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjUyMjpcXHRpZiAobXY4OGU2eHh4X3BoeV9pc19pbnRlcm5hbChjaGlwLCBwb3J0KSkge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUyMy1cXHRcXHRfX3NldF9iaXQoUEhZX0lOVEVSRkFDRV9NT0RFX01JSSwgY29uZmlnLVxcdTAwM2VzdXBwb3J0ZWRfaW50ZXJmYWNlcyk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MzMtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTM0OnN0YXRpYyB2b2lkIG12ODhlNjE4NV9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTM1LVxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU0Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1NDg6c3RhdGljIGNvbnN0IHU4IG12ODhlNnh4eF9waHlfaW50ZXJmYWNlX21vZGVzW10gPSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTQ5LVxcdFtNVjg4RTZYWFhfUE9SVF9TVFNfQ01PREVfTUlJX1BIWV1cXHQ9IFBIWV9JTlRFUkZBQ0VfTU9ERV9SRVZNSUksXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NjItXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTYzOnN0YXRpYyB2b2lkIG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUodTggY21vZGUsIHVuc2lnbmVkIGxvbmcgKnN1cHBvcnRlZClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NjQte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU2NTpcXHRpZiAoY21vZGUgXFx1MDAzYyBBUlJBWV9TSVpFKG12ODhlNnh4eF9waHlfaW50ZXJmYWNlX21vZGVzKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU2NjpcXHQgICAgbXY4OGU2eHh4X3BoeV9pbnRlcmZhY2VfbW9kZXNbY21vZGVdKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU2NzpcXHRcXHRfX3NldF9iaXQobXY4OGU2eHh4X3BoeV9pbnRlcmZhY2VfbW9kZXNbY21vZGVdLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU2OC1cXHRlbHNlIGlmIChjbW9kZSA9PSBNVjg4RTZYWFhfUE9SVF9TVFNfQ01PREVfUkdNSUkpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz01NzI9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1NzM6bXY4OGU2MjUwX3NldHVwX3N1cHBvcnRlZF9pbnRlcmZhY2VzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTc0LVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NzktXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTgwOlxcdGVyciA9IG12ODhlNnh4eF9wb3J0X3JlYWQoY2hpcCwgcG9ydCwgTVY4OEU2WFhYX1BPUlRfU1RTLCBcXHUwMDI2cmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01ODEtXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjIxLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjYyMjpzdGF0aWMgdm9pZCBtdjg4ZTYyNTBfcGh5bGlua19nZXRfY2FwcyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYyMy1cXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjI0LXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2MjU6XFx0aWYgKCFtdjg4ZTZ4eHhfcGh5X2lzX2ludGVybmFsKGNoaXAsIHBvcnQpKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYyNi1cXHRcXHRtdjg4ZTYyNTBfc2V0dXBfc3VwcG9ydGVkX2ludGVyZmFjZXMoY2hpcCwgcG9ydCwgY29uZmlnKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYzMC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2MzE6c3RhdGljIHZvaWQgbXY4OGU2MzUxX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02MzItXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjM2LVxcdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjYzNzpcXHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXFx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYzOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY0Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NDM6c3RhdGljIGludCBtdjg4ZTYzeHhfZ2V0X3BvcnRfc2VyZGVzX2Ntb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjQ0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY0Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NDg6XFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfcmVhZChjaGlwLCBwb3J0LCBNVjg4RTZYWFhfUE9SVF9TVFMsIFxcdTAwMjZyZWcpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY0OS1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjU2LVxcdHZhbCA9IHJlZyBcXHUwMDI2IH5NVjg4RTZYWFhfUE9SVF9TVFNfUEhZX0RFVEVDVDtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NTc6XFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfd3JpdGUoY2hpcCwgcG9ydCwgTVY4OEU2WFhYX1BPUlRfU1RTLCB2YWwpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY1OC1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjYwLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY2MTpcXHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9yZWFkKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX1NUUywgXFx1MDAyNnZhbCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjYyLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NjUtXFx0LyogUmVzdG9yZSBQSFlfREVURUNUIHZhbHVlICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NjY2OlxcdGVyciA9IG12ODhlNnh4eF9wb3J0X3dyaXRlKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX1NUUywgcmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NjctXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY3Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NzM6c3RhdGljIHZvaWQgbXY4OGU2MzUyX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NzQtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjc5LVxcdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY4MDpcXHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXFx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY4MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY5NS1cXHRcXHRlbHNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Njk2OlxcdFxcdFxcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY21vZGUsIHN1cHBvcnRlZCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjk3LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY5OS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3MDA6c3RhdGljIHZvaWQgbXY4OGU2MzJ4X3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MDEtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzA2LVxcdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjcwNzpcXHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXFx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcwOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcxOC1cXHRcXHRlbHNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzE5OlxcdFxcdFxcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY21vZGUsIHN1cHBvcnRlZCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzIwLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcyMi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3MjM6c3RhdGljIHZvaWQgbXY4OGU2MzQxX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MjQtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzI4LVxcdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjcyOTpcXHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXFx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTczMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc0NC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NDU6c3RhdGljIHZvaWQgbXY4OGU2MzkwX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NDYtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUwLVxcdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1MTpcXHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXFx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc2Ni1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3Njc6c3RhdGljIHZvaWQgbXY4OGU2MzkweF9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzY4LVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODAxLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjgwMjpzdGF0aWMgdm9pZCBtdjg4ZTYzOTN4X3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04MDMtXFx0XFx0XFx0XFx0XFx0c3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04MTAtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODExOlxcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY2hpcC1cXHUwMDNlcG9ydHNbcG9ydF0uY21vZGUsIHN1cHBvcnRlZCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODEyLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODQ1LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg0NjpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfZ2V0X2NhcHMoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04NDctXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg0OC17XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODQ5OlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRzLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg1MC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4NTE6XFx0bXY4OGU2eHh4X3JlZ19sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg1Mi1cXHRjaGlwLVxcdTAwM2VpbmZvLVxcdTAwM2VvcHMtXFx1MDAzZXBoeWxpbmtfZ2V0X2NhcHMoY2hpcCwgcG9ydCwgY29uZmlnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4NTM6XFx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODU0LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg1NTpcXHRpZiAobXY4OGU2eHh4X3BoeV9pc19pbnRlcm5hbChjaGlwLCBwb3J0KSkge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg1Ni1cXHRcXHRfX3NldF9iaXQoUEhZX0lOVEVSRkFDRV9NT0RFX0lOVEVSTkFMLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9ODY0PXN0YXRpYyBzdHJ1Y3QgcGh5bGlua19wY3MgKlxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg2NTptdjg4ZTZ4eHhfbWFjX3NlbGVjdF9wY3Moc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODY2LVxcdFxcdFxcdCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODY4LVxcdHN0cnVjdCBkc2FfcG9ydCAqZHAgPSBkc2FfcGh5bGlua190b19wb3J0KGNvbmZpZyk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODY5OlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRwLVxcdTAwM2Vkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04NzAtXFx0c3RydWN0IHBoeWxpbmtfcGNzICpwY3MgPSBOVUxMO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODc4LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg3OTpzdGF0aWMgaW50IG12ODhlNnh4eF9tYWNfcHJlcGFyZShzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZyxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04ODAtXFx0XFx0XFx0XFx0IHVuc2lnbmVkIGludCBtb2RlLCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODgyLVxcdHN0cnVjdCBkc2FfcG9ydCAqZHAgPSBkc2FfcGh5bGlua190b19wb3J0KGNvbmZpZyk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODgzOlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRwLVxcdTAwM2Vkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04ODQtXFx0aW50IHBvcnQgPSBkcC1cXHUwMDNlaW5kZXg7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04OTMtXFx0ICAgIGNoaXAtXFx1MDAzZWluZm8tXFx1MDAzZW9wcy1cXHUwMDNlcG9ydF9zZXRfbGluaykge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg5NDpcXHRcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODk1LVxcdFxcdGVyciA9IGNoaXAtXFx1MDAzZWluZm8tXFx1MDAzZW9wcy1cXHUwMDNlcG9ydF9zZXRfbGluayhjaGlwLCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg5Ni1cXHRcXHRcXHRcXHRcXHRcXHQgICAgIExJTktfRk9SQ0VEX0RPV04pO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg5NzpcXHRcXHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04OTgtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTAyLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjkwMzpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfbWFjX2NvbmZpZyhzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZyxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MDQtXFx0XFx0XFx0XFx0IHVuc2lnbmVkIGludCBtb2RlLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTA3LVxcdHN0cnVjdCBkc2FfcG9ydCAqZHAgPSBkc2FfcGh5bGlua190b19wb3J0KGNvbmZpZyk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6OTA4OlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRwLVxcdTAwM2Vkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MDktXFx0aW50IHBvcnQgPSBkcC1cXHUwMDNlaW5kZXg7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MTEtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6OTEyOlxcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MTMtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6OTE0OlxcdGlmIChtb2RlICE9IE1MT19BTl9QSFkgfHwgIW12ODhlNnh4eF9waHlfaXNfaW50ZXJuYWwoY2hpcCwgcG9ydCkpIHtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo5MTU6XFx0XFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfY29uZmlnX2ludGVyZmFjZShjaGlwLCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTkxNi1cXHRcXHRcXHRcXHRcXHRcXHQgICAgICBzdGF0ZS1cXHUwMDNlaW50ZXJmYWNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTkyMS1lcnJfdW5sb2NrOlxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjkyMjpcXHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MjMtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MjctXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6OTI4OnN0YXRpYyBpbnQgbXY4OGU2eHh4X21hY19maW5pc2goc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTI5LVxcdFxcdFxcdFxcdHVuc2lnbmVkIGludCBtb2RlLCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTMxLVxcdHN0cnVjdCBkc2FfcG9ydCAqZHAgPSBkc2FfcGh5bGlua190b19wb3J0KGNvbmZpZyk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6OTMyOlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRwLVxcdTAwM2Vkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05MzMtXFx0aW50IHBvcnQgPSBkcC1cXHUwMDNlaW5kZXg7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05NDEtXFx0ICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6OTQyOlxcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05NDMtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05NDYtXFx0ICAgICAgY2hpcC1cXHUwMDNlcG9ydHNbcG9ydF0uaW50ZXJmYWNlICE9IGludGVyZmFjZSkgfHxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo5NDc6XFx0ICAgICAobW9kZSA9PSBNTE9fQU5fUEhZIFxcdTAwMjZcXHUwMDI2IG12ODhlNnh4eF9wb3J0X3BwdV91cGRhdGVzKGNoaXAsIHBvcnQpKSkpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTQ4LVxcdFxcdGVyciA9IGNoaXAtXFx1MDAzZWluZm8tXFx1MDAzZW9wcy1cXHUwMDNlcG9ydF9zZXRfbGluayhjaGlwLCBwb3J0LCBMSU5LX1VORk9SQ0VEKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy05NDktXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6OTUwOlxcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTk1MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTk1Ni1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo5NTc6c3RhdGljIHZvaWQgbXY4OGU2eHh4X21hY19saW5rX2Rvd24oc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjIwOjA5LjMxMjQ0NjQ1NloiLCJTZXEiOjQ5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MzE3NTYyMTU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEluaXRpYWwgVGhvdWdodHMgb24gU3l6a2FsbGVyIGFuZCBEU0EgRHJpdmVycyoqXG5cbk9rYXksIGhlcmUncyB3aGF0J3MgcnVubmluZyB0aHJvdWdoIG15IGhlYWQuIEknbSBsb29raW5nIGF0IGBtdjg4ZTZ4eHhgLCB3aGljaCBpcyBhIERTQSBkcml2ZXIsIHJpZ2h0PyBEU0Egc3dpdGNoZXMgYXJlICp0eXBpY2FsbHkqIGJyb3VnaHQgdXAgdGhyb3VnaCB0aGUgZGV2aWNlIHRyZWUuIFNvLCBpZiBzeXprYWxsZXIgaXMgZnV6emluZyBpdCwgc29tZXRoaW5nIGludGVyZXN0aW5nIGlzIGhhcHBlbmluZy4gSXQgaGFzIHRvIGJlIGluamVjdGluZyBkZXZpY2UgdHJlZSBvdmVybGF5cy4gSSdtIHJhY2tpbmcgbXkgYnJhaW4gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaG93LiBJJ20gcmVtZW1iZXJpbmcgdGhhdCBgb2Zfb3ZlcmxheV9mZHRfYXBwbHlgIGZ1bmN0aW9uIGluIGBkcml2ZXJzL29mL292ZXJsYXkuY2AuLi4gdGhhdCdzIHRoZSBrZXkuXG5cbkRvZXMgc3l6a2FsbGVyIGFjdHVhbGx5IGluamVjdCB0aGVzZT8gQW5kIGlmIHNvLCBob3c/IEkga25vdyBpdCBoYXMgdGhhdCBgc3l6X21vdW50X2ltYWdlYCBwc2V1ZG8tc3lzY2FsbCwgd2hpY2ggY291bGQgYmUgcmVsZXZhbnQsIHNpbmNlIEkgY2FuIHNlZSB0aGUgcG90ZW50aWFsIGZvciBhIG1vdW50ZWQgZmlsZXN5c3RlbS4gV2FpdCBhIG1pbnV0ZSwgd2hhdCBhYm91dCBgc3l6X3VzYl9jb25uZWN0YD8gQ29ubmVjdGluZyBhIHZpcnR1YWwgVVNCIGRldmljZSAqY291bGQqIGFsc28gZXhwb3NlIGEgdmVjdG9yLiBJcyB0aGVyZSBzb21lIG90aGVyIHdheT9cblxuSGFuZyBvbiBhIHNlYywgdGhlcmUncyB0aGF0IGNvbmZpZ2ZzIGludGVyZmFjZSBmb3IgZGV2aWNlIHRyZWUgb3ZlcmxheXMhIExldCdzIHNlZSBpZiBzb21ldGhpbmcgZXhpc3RzIGluIGBkcml2ZXJzL29mL2NvbmZpZ2ZzLmNgIG9yIHNvbWV0aGluZyBzaW1pbGFyLCBpdCBzaG91bGQgYmUgb2J2aW91cyBhbmQgdGhlbiBJJ2xsIGJlIG9uIG15IHdheS4gSSBzZWFyY2ggYnV0IEkgY2FuJ3QgZmluZCBhbnl0aGluZyByZWxhdGVkIHRvIGNvbmZpZ2ZzIGluIHRoZXJlLiBPa2F5LCBzbyBzY3JhdGNoIHRoYXQgaWRlYS5cblxuQmFjayB0byBgZHJpdmVycy9vZi9vdmVybGF5LmNgLiBXZSd2ZSBnb3QgYG9mX292ZXJsYXlfZmR0X2FwcGx5YC4gTm93LCB3aGVyZSBpbiB0aGUga2VybmVsIGNvZGUgaXMgdGhhdCBhY3R1YWxseSAqY2FsbGVkKj8gVGhhdCdzIHRoZSBuZXh0IGNyaXRpY2FsIHBpZWNlIG9mIHRoZSBwdXp6bGUuIEkgbmVlZCB0byB0cmFjZSB0aGlzIGJhY2suXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2MDM4LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjM0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjIwOjE1LjYzMDAxMTY2NFoiLCJTZXEiOjUwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjYwNDA0NDU5NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJvZl9vdmVybGF5X2ZkdF9hcHBseVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL292ZXJsYXktbm90ZXMucnN0PTEwOT1UaGUgQVBJIGlzIHF1aXRlIGVhc3kgdG8gdXNlLlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdC0xMTAtXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL292ZXJsYXktbm90ZXMucnN0OjExMToxKSBDYWxsIG9mX292ZXJsYXlfZmR0X2FwcGx5KCkgdG8gY3JlYXRlIGFuZCBhcHBseSBhbiBvdmVybGF5IGNoYW5nZXNldC4gVGhlXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL292ZXJsYXktbm90ZXMucnN0LTExMi0gICByZXR1cm4gdmFsdWUgaXMgYW4gZXJyb3Igb3IgYSBjb29raWUgaWRlbnRpZnlpbmcgdGhpcyBvdmVybGF5Llxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL292ZXJsYXktbm90ZXMucnN0LTExNC0yKSBDYWxsIG9mX292ZXJsYXlfcmVtb3ZlKCkgdG8gcmVtb3ZlIGFuZCBjbGVhbiB1cCB0aGUgb3ZlcmxheSBjaGFuZ2VzZXRcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvb3ZlcmxheS1ub3Rlcy5yc3Q6MTE1OiAgIHByZXZpb3VzbHkgY3JlYXRlZCB2aWEgdGhlIGNhbGwgdG8gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKS4gUmVtb3ZhbCBvZiBhblxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdC0xMTYtICAgb3ZlcmxheSBjaGFuZ2VzZXQgdGhhdCBpcyBzdGFja2VkIGJ5IGFub3RoZXIgd2lsbCBub3QgYmUgcGVybWl0dGVkLlxcbi0tXFxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdD05MD1EVOS4reeahOmAguW9k+S9jee9ruOAguWcqOi/meenjeaDheWGteS4i++8jOWPr+S7peaPkOS+m+ebruagh+i3r+W+hOOAgumAmui/h+agh+etvueahOebruagh+S9jee9rueahOivreazleaYr+avlFxcbi0tXFxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdC0xMTItXFxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdDoxMTM6MSkg6LCD55Sob2Zfb3ZlcmxheV9mZHRfYXBwbHkoKeadpeWIm+W7uuWSjOW6lOeUqOS4gOS4quimhueblueahOWPmOabtOmbhuOAgui/lOWbnuWAvOaYr+S4gOS4qlxcbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL2RldmljZXRyZWUvb3ZlcmxheS1ub3Rlcy5yc3QtMTE0LSAgIOmUmeivr+aIluS4gOS4quivhuWIq+i/meS4quimhueblueahGNvb2tpZeOAglxcbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL2RldmljZXRyZWUvb3ZlcmxheS1ub3Rlcy5yc3QtMTE1LVxcbkRvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL2RldmljZXRyZWUvb3ZlcmxheS1ub3Rlcy5yc3Q6MTE2OjIpIOiwg+eUqG9mX292ZXJsYXlfcmVtb3ZlKCnmnaXliKDpmaTlkozmuIXnkIblhYjliY3pgJrov4fosIPnlKhvZl9vdmVybGF5X2ZkdF9hcHBseSgpXFxuRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vZGV2aWNldHJlZS9vdmVybGF5LW5vdGVzLnJzdC0xMTctICAg6ICM5Yib5bu655qE6KaG55uW5Y+Y5pu06ZuG44CC5LiN5YWB6K645Yig6Zmk5LiA5Liq6KKr5Y+m5LiA5Liq6KaG55uW55qE6KaG55uW5Y+Y5YyW6ZuG44CCXFxuLS1cXG5NQUlOVEFJTkVSUz0yMDI2OT1LOlxcdG9mX292ZXJsYXlfbm90aWZpZXJfXFxuTUFJTlRBSU5FUlM6MjAyNzA6SzpcXHRvZl9vdmVybGF5X2ZkdF9hcHBseVxcbk1BSU5UQUlORVJTLTIwMjcxLUs6XFx0b2Zfb3ZlcmxheV9yZW1vdmVcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvaW14L2lteDhtcC1oZG1pLXR4LWNvbm5lY3Rvci1maXh1cC5jPTIwPXN0YXRpYyBpbnQgX19pbml0IGlteDhtcF9oZG1pX3R4X2Nvbm5lY3Rvcl9maXh1cF9pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2lteC9pbXg4bXAtaGRtaS10eC1jb25uZWN0b3ItZml4dXAuYy02Ny1cXG5kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2lteC9pbXg4bXAtaGRtaS10eC1jb25uZWN0b3ItZml4dXAuYzo2ODpcXHRlcnIgPSBvZl9vdmVybGF5X2ZkdF9hcHBseShkdGJvX3N0YXJ0LCBkdGJvX3NpemUsIFxcdTAwMjZvdmNzX2lkLCBOVUxMKTtcXG5kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2lteC9pbXg4bXAtaGRtaS10eC1jb25uZWN0b3ItZml4dXAuYy02OS1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfcGFuZWxfbGVnYWN5LmM9MTQzPXN0YXRpYyBpbnQgX19pbml0IHRpbGNkY19wYW5lbF9sZWdhY3lfaW5pdCh2b2lkKVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfcGFuZWxfbGVnYWN5LmMtMTYzLVxcbmRyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX3BhbmVsX2xlZ2FjeS5jOjE2NDpcXHRyZXQgPSBvZl9vdmVybGF5X2ZkdF9hcHBseShkdGJvX3N0YXJ0LCBkdGJvX3NpemUsIFxcdTAwMjZvdmNzX2lkLCBOVUxMKTtcXG5kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19wYW5lbF9sZWdhY3kuYy0xNjUtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbWlzYy9sYW45NjZ4X3BjaS5jPTEyNj1zdGF0aWMgaW50IGxhbjk2NnhfcGNpX2xvYWRfb3ZlcmxheShzdHJ1Y3QgbGFuOTY2eF9wY2kgKmRhdGEpXFxuLS1cXG5kcml2ZXJzL21pc2MvbGFuOTY2eF9wY2kuYy0xMzAtXFxuZHJpdmVycy9taXNjL2xhbjk2NnhfcGNpLmM6MTMxOlxcdHJldHVybiBvZl9vdmVybGF5X2ZkdF9hcHBseShkdGJvX3N0YXJ0LCBkdGJvX3NpemUsIFxcdTAwMjZkYXRhLVxcdTAwM2VvdmNzX2lkLCBkZXZfb2Zfbm9kZShkYXRhLVxcdTAwM2VkZXYpKTtcXG5kcml2ZXJzL21pc2MvbGFuOTY2eF9wY2kuYy0xMzItfVxcbi0tXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM9MjU9RVhQT1JUX1NZTUJPTF9HUEwob2Zfcm9vdF9rdW5pdF9za2lwKTtcXG4tLVxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTI4LVxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjI5OnN0YXRpYyB2b2lkIG9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0X2V4aXQodm9pZCAqb3Zjc19pZClcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0zMC17XFxuLS1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0zNC0vKipcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzozNTogKiBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdCgpIC0gVGVzdCBtYW5hZ2VkIG9mX292ZXJsYXlfZmR0X2FwcGx5KClcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0zNi0gKiBAdGVzdDogdGVzdCBjb250ZXh0XFxuLS1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy00MC0gKlxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjQxOiAqIEp1c3QgbGlrZSBvZl9vdmVybGF5X2ZkdF9hcHBseSgpLCBleGNlcHQgdGhlIG92ZXJsYXkgaXMgbWFuYWdlZCBieSB0aGUgdGVzdFxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQyLSAqIGNhc2UgYW5kIGlzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZCB3aXRoIG9mX292ZXJsYXlfcmVtb3ZlKCkgYWZ0ZXIgdGhlIHRlc3RcXG4tLVxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQ2LSAqL1xcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjQ3OmludCBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdChzdHJ1Y3Qga3VuaXQgKnRlc3QsIHZvaWQgKm92ZXJsYXlfZmR0LFxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTQ4LVxcdFxcdFxcdCAgICAgICB1MzIgb3ZlcmxheV9mZHRfc2l6ZSwgaW50ICpvdmNzX2lkKVxcbi0tXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNTgtXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6NTk6XFx0cmV0ID0gb2Zfb3ZlcmxheV9mZHRfYXBwbHkob3ZlcmxheV9mZHQsIG92ZXJsYXlfZmR0X3NpemUsXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNjAtXFx0XFx0XFx0XFx0ICAgb3Zjc19pZCwgTlVMTCk7XFxuLS1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy02NS1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzo2NjpcXHRyZXR1cm4ga3VuaXRfYWRkX2FjdGlvbl9vcl9yZXNldCh0ZXN0LCBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdF9leGl0LFxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTY3LVxcdFxcdFxcdFxcdFxcdCBjb3B5X2lkKTtcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy02OC19XFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6Njk6RVhQT1JUX1NZTUJPTF9HUEwob2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXQpO1xcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTcwLVxcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmM9OTI2PXN0YXRpYyBpbnQgb2Zfb3ZlcmxheV9hcHBseShzdHJ1Y3Qgb3ZlcmxheV9jaGFuZ2VzZXQgKm92Y3MsXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy05ODAtLyoqXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6OTgxOiAqIG9mX292ZXJsYXlfZmR0X2FwcGx5KCkgLSBDcmVhdGUgYW5kIGFwcGx5IGFuIG92ZXJsYXkgY2hhbmdlc2V0XFxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTgyLSAqIEBvdmVybGF5X2ZkdDpcXHRwb2ludGVyIHRvIG92ZXJsYXkgRkRUXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy05OTktXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTAwMDppbnQgb2Zfb3ZlcmxheV9mZHRfYXBwbHkoY29uc3Qgdm9pZCAqb3ZlcmxheV9mZHQsIHUzMiBvdmVybGF5X2ZkdF9zaXplLFxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwMDEtXFx0XFx0XFx0IGludCAqcmV0X292Y3NfaWQsIGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqYmFzZSlcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwNzUtXFx0ICogcmVzdWx0IGluIGEgbWVtb3J5IGxlYWsgaWYgdGhlIGFwcGx5IHBhcnRseSBzdWNjZWVkZWQsIHNvIGRvIE5PVFxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEwNzY6XFx0ICogZ290byBlcnJfZnJlZV9vdmNzLiAgSW5zdGVhZCwgdGhlIGNhbGxlciBvZiBvZl9vdmVybGF5X2ZkdF9hcHBseSgpXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA3Ny1cXHQgKiBjYW4gY2FsbCBvZl9vdmVybGF5X3JlbW92ZSgpO1xcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA4OS19XFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTA5MDpFWFBPUlRfU1lNQk9MX0dQTChvZl9vdmVybGF5X2ZkdF9hcHBseSk7XFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTA5MS1cXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jPTExNTU9c3RhdGljIGludCBvdmVybGF5X3JlbW92YWxfaXNfb2soc3RydWN0IG92ZXJsYXlfY2hhbmdlc2V0ICpyZW1vdmVfb3ZjcylcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExNzMtICogUmVtb3ZlcyBhbiBvdmVybGF5IGlmIGl0IGlzIHBlcm1pc3NpYmxlLiAgQG92Y3NfaWQgd2FzIHByZXZpb3VzbHkgcmV0dXJuZWRcXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMTc0OiAqIGJ5IG9mX292ZXJsYXlfZmR0X2FwcGx5KCkuXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtMTE3NS0gKlxcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jPTM5ODc9c3RhdGljIGludCBfX2luaXQgb3ZlcmxheV9kYXRhX2FwcGx5KGNvbnN0IGNoYXIgKm92ZXJsYXlfbmFtZSwgaW50ICpvdmNzX2lkKVxcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMDktXFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjQwMTA6XFx0cmV0ID0gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoaW5mby1cXHUwMDNlZHRib19iZWdpbiwgc2l6ZSwgXFx1MDAyNmluZm8tXFx1MDAzZW92Y3NfaWQsXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMTEtXFx0XFx0XFx0XFx0ICAgTlVMTCk7XFxuLS1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDAyMC1cXHRpZiAocmV0ICE9IGluZm8tXFx1MDAzZWV4cGVjdGVkX3Jlc3VsdCkge1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDIxOlxcdFxcdHByX2VycihcXFwib2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSBleHBlY3RlZCAlZCwgcmV0PSVkLCAlc1xcXFxuXFxcIixcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDAyMi1cXHRcXHQgICAgICAgaW5mby1cXHUwMDNlZXhwZWN0ZWRfcmVzdWx0LCByZXQsIG92ZXJsYXlfbmFtZSk7XFxuLS1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM9NDMyOD1zdGF0aWMgaW50IHRlc3RkcnZfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MzUwLVxcdHNpemUgPSBpbmZvLVxcdTAwM2VkdGJvX2VuZCAtIGluZm8tXFx1MDAzZWR0Ym9fYmVnaW47XFxuZHJpdmVycy9vZi91bml0dGVzdC5jOjQzNTE6XFx0cmV0ID0gb2Zfb3ZlcmxheV9mZHRfYXBwbHkoaW5mby1cXHUwMDNlZHRib19iZWdpbiwgc2l6ZSwgXFx1MDAyNm92Y3NfaWQsIGRuKTtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDM1Mi1cXHRpZiAocmV0KVxcbi0tXFxuaW5jbHVkZS9rdW5pdC9vZi5oPTE2PXZvaWQgb2Zfbm9kZV9wdXRfa3VuaXQoc3RydWN0IGt1bml0ICp0ZXN0LCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUpXFxuLS1cXG5pbmNsdWRlL2t1bml0L29mLmgtMjQtXFxuaW5jbHVkZS9rdW5pdC9vZi5oOjI1OmludCBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdChzdHJ1Y3Qga3VuaXQgKnRlc3QsIHZvaWQgKm92ZXJsYXlfZmR0LFxcbmluY2x1ZGUva3VuaXQvb2YuaC0yNi1cXHRcXHRcXHQgICAgICAgdTMyIG92ZXJsYXlfZmR0X3NpemUsIGludCAqb3Zjc19pZCk7XFxuLS1cXG5pbmNsdWRlL2t1bml0L29mLmg9Mjk9c3RhdGljIGlubGluZSBpbnRcXG5pbmNsdWRlL2t1bml0L29mLmg6MzA6b2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXQoc3RydWN0IGt1bml0ICp0ZXN0LCB2b2lkICpvdmVybGF5X2ZkdCxcXG5pbmNsdWRlL2t1bml0L29mLmgtMzEtXFx0XFx0XFx0ICAgdTMyIG92ZXJsYXlfZmR0X3NpemUsIGludCAqb3Zjc19pZClcXG4tLVxcbmluY2x1ZGUva3VuaXQvb2YuaC0zOS0vKipcXG5pbmNsdWRlL2t1bml0L29mLmg6NDA6ICogX19vZl9vdmVybGF5X2FwcGx5X2t1bml0KCkgLSBUZXN0IG1hbmFnZWQgb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSB2YXJpYW50XFxuaW5jbHVkZS9rdW5pdC9vZi5oLTQxLSAqIEB0ZXN0OiB0ZXN0IGNvbnRleHRcXG4tLVxcbmluY2x1ZGUva3VuaXQvb2YuaC00Ny0gKlxcbmluY2x1ZGUva3VuaXQvb2YuaDo0ODogKiBTaW1pbGFyIHRvIG9mX292ZXJsYXlfZmR0X2FwcGx5KCksIGV4Y2VwdCB0aGUgb3ZlcmxheSBpcyBtYW5hZ2VkIGJ5IHRoZSB0ZXN0XFxuaW5jbHVkZS9rdW5pdC9vZi5oLTQ5LSAqIGNhc2UgYW5kIGlzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZCB3aXRoIG9mX292ZXJsYXlfcmVtb3ZlKCkgYWZ0ZXIgdGhlIHRlc3RcXG4tLVxcbmluY2x1ZGUva3VuaXQvb2YuaD01ND1zdGF0aWMgaW5saW5lIGludCBfX29mX292ZXJsYXlfYXBwbHlfa3VuaXQoc3RydWN0IGt1bml0ICp0ZXN0LFxcbi0tXFxuaW5jbHVkZS9rdW5pdC9vZi5oLTU5LVxcbmluY2x1ZGUva3VuaXQvb2YuaDo2MDpcXHRyZXR1cm4gb2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXQodGVzdCwgb3ZlcmxheV9iZWdpbixcXG5pbmNsdWRlL2t1bml0L29mLmgtNjEtXFx0XFx0XFx0XFx0XFx0ICBvdmVybGF5X2VuZCAtIG92ZXJsYXlfYmVnaW4sXFxuLS1cXG5pbmNsdWRlL2t1bml0L29mLmgtNzItLyoqXFxuaW5jbHVkZS9rdW5pdC9vZi5oOjczOiAqIG9mX292ZXJsYXlfYXBwbHlfa3VuaXQoKSAtIFRlc3QgbWFuYWdlZCBvZl9vdmVybGF5X2ZkdF9hcHBseSgpIGZvciBidWlsdC1pbiBvdmVybGF5c1xcbmluY2x1ZGUva3VuaXQvb2YuaC03NC0gKiBAdGVzdDogdGVzdCBjb250ZXh0XFxuLS1cXG5pbmNsdWRlL2xpbnV4L29mLmg9MTgzMD1zdHJ1Y3Qgb2Zfb3ZlcmxheV9ub3RpZnlfZGF0YSB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L29mLmgtMTgzNi1cXG5pbmNsdWRlL2xpbnV4L29mLmg6MTgzNzppbnQgb2Zfb3ZlcmxheV9mZHRfYXBwbHkoY29uc3Qgdm9pZCAqb3ZlcmxheV9mZHQsIHUzMiBvdmVybGF5X2ZkdF9zaXplLFxcbmluY2x1ZGUvbGludXgvb2YuaC0xODM4LVxcdFxcdFxcdCBpbnQgKm92Y3NfaWQsIGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqdGFyZ2V0X2Jhc2UpO1xcbi0tXFxuaW5jbHVkZS9saW51eC9vZi5oPTE4NDM9aW50IG9mX292ZXJsYXlfbm90aWZpZXJfdW5yZWdpc3RlcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iKTtcXG4tLVxcbmluY2x1ZGUvbGludXgvb2YuaC0xODQ2LVxcbmluY2x1ZGUvbGludXgvb2YuaDoxODQ3OnN0YXRpYyBpbmxpbmUgaW50IG9mX292ZXJsYXlfZmR0X2FwcGx5KGNvbnN0IHZvaWQgKm92ZXJsYXlfZmR0LCB1MzIgb3ZlcmxheV9mZHRfc2l6ZSxcXG5pbmNsdWRlL2xpbnV4L29mLmgtMTg0OC1cXHRcXHRcXHRcXHQgICAgICAgaW50ICpvdmNzX2lkLCBjb25zdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKnRhcmdldF9iYXNlKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoyMDoxOC4yMzQwNjA0NzhaIiwiU2VxIjo1MSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTgwMjQyMDM2NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIERldmljZSBUcmVlIE92ZXJsYXkgQXBwbGljYXRpb25zKipcblxuT2theSwgc28gSSBzZWUgdGhhdCB0aGUgYGRyaXZlcnMvbWlzYy9sYW45NjZ4X3BjaS5jYCBkcml2ZXIgaXMgY2FsbGluZyBgb2Zfb3ZlcmxheV9mZHRfYXBwbHlgLiBJbnRlcmVzdGluZyEgSGFuZyBvbiBhIHNlY29uZCwgdGhhdCdzIGEgUENJIGRyaXZlciwgaXNuJ3QgaXQ/IEkgbmVlZCB0byBxdWlja2x5IGJyb2FkZW4gdGhlIHNlYXJjaCBhbmQgc2VlIGlmIHRoZXJlIGFyZSBhbnkgKm90aGVyKiBkcml2ZXJzIHVzaW5nIHRoYXQgZnVuY3Rpb24uIExldCdzIHNlZS4uLiBgaW14OG1wLWhkbWktdHgtY29ubmVjdG9yLWZpeHVwLmNgIGFuZCBgdGlsY2RjX3BhbmVsX2xlZ2FjeS5jYCBhcmUgYWxzbyBjYWxsaW5nIGBvZl9vdmVybGF5X2ZkdF9hcHBseWAuIE5vdyBJJ20gc3RhcnRpbmcgdG8gcmVtZW1iZXIgc29tZXRoaW5nIGFib3V0IHN5emthbGxlciBhbmQgZGV2aWNlIHRyZWUgb3ZlcmxheXMuLi4gZGlkIEkgcmVhZCB0aGF0IHN5emthbGxlciBjYW4gaW5qZWN0IHRoZXNlIG92ZXJsYXlzIHVzaW5nIHN5c2ZzPyBUaGF0J3MgYSBwb3NzaWJpbGl0eS4gSSBuZWVkIHRvIGNvbmZpcm0gdGhhdC4gVGltZSB0byBjaGVjayBpZiB0aGVyZSBpcyBhIHN5c2ZzIGludGVyZmFjZSBleHBvc2VkIGZvciB0aGVzZSBkZXZpY2UgdHJlZSBvdmVybGF5IG1hbmlwdWxhdGlvbnMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoaXMgYmV0dGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTkyMiwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoyMDoyOC4wMzY0ODI0ODVaIiwiU2VxIjo1MiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzOTk4NTI5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm9mX292ZXJsYXlfZmR0X2FwcGx5XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvb2YvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jPTI1PUVYUE9SVF9TWU1CT0xfR1BMKG9mX3Jvb3Rfa3VuaXRfc2tpcCk7XFxuLS1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy0yOC1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzoyOTpzdGF0aWMgdm9pZCBvZl9vdmVybGF5X2ZkdF9hcHBseV9rdW5pdF9leGl0KHZvaWQgKm92Y3NfaWQpXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtMzAte1xcbi0tXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtMzQtLyoqXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6MzU6ICogb2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXQoKSAtIFRlc3QgbWFuYWdlZCBvZl9vdmVybGF5X2ZkdF9hcHBseSgpXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtMzYtICogQHRlc3Q6IHRlc3QgY29udGV4dFxcbi0tXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNDAtICpcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzo0MTogKiBKdXN0IGxpa2Ugb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKSwgZXhjZXB0IHRoZSBvdmVybGF5IGlzIG1hbmFnZWQgYnkgdGhlIHRlc3RcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy00Mi0gKiBjYXNlIGFuZCBpcyBhdXRvbWF0aWNhbGx5IHJlbW92ZWQgd2l0aCBvZl9vdmVybGF5X3JlbW92ZSgpIGFmdGVyIHRoZSB0ZXN0XFxuLS1cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy00Ni0gKi9cXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYzo0NzppbnQgb2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXQoc3RydWN0IGt1bml0ICp0ZXN0LCB2b2lkICpvdmVybGF5X2ZkdCxcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy00OC1cXHRcXHRcXHQgICAgICAgdTMyIG92ZXJsYXlfZmR0X3NpemUsIGludCAqb3Zjc19pZClcXG4tLVxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTU4LVxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjU5OlxcdHJldCA9IG9mX292ZXJsYXlfZmR0X2FwcGx5KG92ZXJsYXlfZmR0LCBvdmVybGF5X2ZkdF9zaXplLFxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jLTYwLVxcdFxcdFxcdFxcdCAgIG92Y3NfaWQsIE5VTEwpO1xcbi0tXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNjUtXFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmM6NjY6XFx0cmV0dXJuIGt1bml0X2FkZF9hY3Rpb25fb3JfcmVzZXQodGVzdCwgb2Zfb3ZlcmxheV9mZHRfYXBwbHlfa3VuaXRfZXhpdCxcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy02Ny1cXHRcXHRcXHRcXHRcXHQgY29weV9pZCk7XFxuZHJpdmVycy9vZi9vZl9rdW5pdF9oZWxwZXJzLmMtNjgtfVxcbmRyaXZlcnMvb2Yvb2Zfa3VuaXRfaGVscGVycy5jOjY5OkVYUE9SVF9TWU1CT0xfR1BMKG9mX292ZXJsYXlfZmR0X2FwcGx5X2t1bml0KTtcXG5kcml2ZXJzL29mL29mX2t1bml0X2hlbHBlcnMuYy03MC1cXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jPTkyNj1zdGF0aWMgaW50IG9mX292ZXJsYXlfYXBwbHkoc3RydWN0IG92ZXJsYXlfY2hhbmdlc2V0ICpvdmNzLFxcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTgwLS8qKlxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjk4MTogKiBvZl9vdmVybGF5X2ZkdF9hcHBseSgpIC0gQ3JlYXRlIGFuZCBhcHBseSBhbiBvdmVybGF5IGNoYW5nZXNldFxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTk4Mi0gKiBAb3ZlcmxheV9mZHQ6XFx0cG9pbnRlciB0byBvdmVybGF5IEZEVFxcbi0tXFxuZHJpdmVycy9vZi9vdmVybGF5LmMtOTk5LVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEwMDA6aW50IG9mX292ZXJsYXlfZmR0X2FwcGx5KGNvbnN0IHZvaWQgKm92ZXJsYXlfZmR0LCB1MzIgb3ZlcmxheV9mZHRfc2l6ZSxcXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDAxLVxcdFxcdFxcdCBpbnQgKnJldF9vdmNzX2lkLCBjb25zdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKmJhc2UpXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMDc1LVxcdCAqIHJlc3VsdCBpbiBhIG1lbW9yeSBsZWFrIGlmIHRoZSBhcHBseSBwYXJ0bHkgc3VjY2VlZGVkLCBzbyBkbyBOT1RcXG5kcml2ZXJzL29mL292ZXJsYXkuYzoxMDc2OlxcdCAqIGdvdG8gZXJyX2ZyZWVfb3Zjcy4gIEluc3RlYWQsIHRoZSBjYWxsZXIgb2Ygb2Zfb3ZlcmxheV9mZHRfYXBwbHkoKVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwNzctXFx0ICogY2FuIGNhbGwgb2Zfb3ZlcmxheV9yZW1vdmUoKTtcXG4tLVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwODktfVxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jOjEwOTA6RVhQT1JUX1NZTUJPTF9HUEwob2Zfb3ZlcmxheV9mZHRfYXBwbHkpO1xcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTEwOTEtXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYz0xMTU1PXN0YXRpYyBpbnQgb3ZlcmxheV9yZW1vdmFsX2lzX29rKHN0cnVjdCBvdmVybGF5X2NoYW5nZXNldCAqcmVtb3ZlX292Y3MpXFxuLS1cXG5kcml2ZXJzL29mL292ZXJsYXkuYy0xMTczLSAqIFJlbW92ZXMgYW4gb3ZlcmxheSBpZiBpdCBpcyBwZXJtaXNzaWJsZS4gIEBvdmNzX2lkIHdhcyBwcmV2aW91c2x5IHJldHVybmVkXFxuZHJpdmVycy9vZi9vdmVybGF5LmM6MTE3NDogKiBieSBvZl9vdmVybGF5X2ZkdF9hcHBseSgpLlxcbmRyaXZlcnMvb2Yvb3ZlcmxheS5jLTExNzUtICpcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYz0zOTg3PXN0YXRpYyBpbnQgX19pbml0IG92ZXJsYXlfZGF0YV9hcHBseShjb25zdCBjaGFyICpvdmVybGF5X25hbWUsIGludCAqb3Zjc19pZClcXG4tLVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDA5LVxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MDEwOlxcdHJldCA9IG9mX292ZXJsYXlfZmR0X2FwcGx5KGluZm8tXFx1MDAzZWR0Ym9fYmVnaW4sIHNpemUsIFxcdTAwMjZpbmZvLVxcdTAwM2VvdmNzX2lkLFxcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYy00MDExLVxcdFxcdFxcdFxcdCAgIE5VTEwpO1xcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMjAtXFx0aWYgKHJldCAhPSBpbmZvLVxcdTAwM2VleHBlY3RlZF9yZXN1bHQpIHtcXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmM6NDAyMTpcXHRcXHRwcl9lcnIoXFxcIm9mX292ZXJsYXlfZmR0X2FwcGx5KCkgZXhwZWN0ZWQgJWQsIHJldD0lZCwgJXNcXFxcblxcXCIsXFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQwMjItXFx0XFx0ICAgICAgIGluZm8tXFx1MDAzZWV4cGVjdGVkX3Jlc3VsdCwgcmV0LCBvdmVybGF5X25hbWUpO1xcbi0tXFxuZHJpdmVycy9vZi91bml0dGVzdC5jPTQzMjg9c3RhdGljIGludCB0ZXN0ZHJ2X3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuLS1cXG5kcml2ZXJzL29mL3VuaXR0ZXN0LmMtNDM1MC1cXHRzaXplID0gaW5mby1cXHUwMDNlZHRib19lbmQgLSBpbmZvLVxcdTAwM2VkdGJvX2JlZ2luO1xcbmRyaXZlcnMvb2YvdW5pdHRlc3QuYzo0MzUxOlxcdHJldCA9IG9mX292ZXJsYXlfZmR0X2FwcGx5KGluZm8tXFx1MDAzZWR0Ym9fYmVnaW4sIHNpemUsIFxcdTAwMjZvdmNzX2lkLCBkbik7XFxuZHJpdmVycy9vZi91bml0dGVzdC5jLTQzNTItXFx0aWYgKHJldClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MjA6MjguMDgwNDg1OTc0WiIsIlNlcSI6NTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM4NTEwNzk5MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCBtZSBzZWUgaWYgSSd2ZSBnb3QgdGhpcyByaWdodC5cblxuKipBIERldmljZSBUcmVlIE92ZXJsYXkgRXVyZWthISoqXG5cbkhvbGQgb24gYSBzZWNvbmQuLi4gZG9lc24ndCBzeXprYWxsZXIgYWN0dWFsbHkgaGF2ZSBhIGNsZXZlciB0cmljayBmb3IgdGVzdGluZyBkZXZpY2UgdHJlZSBvdmVybGF5cz8gSSB2YWd1ZWx5IHJlY2FsbCBzb21ldGhpbmcgYWJvdXQgd3JpdGluZyB0byBgL3N5cy9rZXJuZWwvY29uZmlnL2RldmljZS10cmVlL292ZXJsYXlzL2AuIFRoYXQncyBpdCEgKlllcyosIHRoYXQncyB0aGUgc3BvdCEgVGhhdCB3b3VsZCBiZSB0aWVkIHRvIGBDT05GSUdfT0ZfT1ZFUkxBWWAgYW5kIGBDT05GSUdfT0ZfQ09ORklHRlNgLCByaWdodD8gTm93LCB0aGUgY3J1Y2lhbCB0aGluZyBpcyB0byB2ZXJpZnkgaWYgd2UgaGF2ZSBgQ09ORklHX09GX0NPTkZJR0ZTYCBlbmFibGVkLiBHb3R0YSBjb25maXJtIHRoYXQgYmVmb3JlIEkgZ2V0IHRvbyBleGNpdGVkLiBMZXQncyBzdGFydCB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTE3MzYsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoyMDozMS45MzE1Njg5OThaIiwiU2VxIjo1NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0MzA4Nzg1NzgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkNPTkZJR19PRl9DT05GSUdGU1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjIwOjMzLjM2MjQ1NTM2N1oiLCJTZXEiOjU1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0Nzg2MzQ5OTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgdGhlIERldmljZSBUcmVlIFBhdGggaW4gU3l6a2FsbGVyKipcblxuT2theSwgZmlyc3QgdGhvdWdodCwgaXMgdGhpcyBzb21ldGhpbmcgdGhhdCdzIGhhbmRsZWQgZXh0ZXJuYWxseSBvciB3aXRoaW4gdGhlIGtlcm5lbCBpdHNlbGY/IE5vLCBTeXprYWxsZXIgdGFyZ2V0cyB1cHN0cmVhbSwgc28gaXQgc2hvdWxkIGJlIGludGVncmF0ZWQuIE5vdywgaG93IGRvZXMgU3l6a2FsbGVyICphY3R1YWxseSogZ2V0IGRldmljZSB0cmVlIG92ZXJsYXlzIGluIHRoZXJlPyBJIGtub3cgaXQgdXNlcyBgc3l6X21vdW50X2ltYWdlYCB0byBtb3VudCBmaWxlc3lzdGVtcywgYnV0IHRoYXQncyBub3QgdGhlIHdheS4gQWhhISBUaGUgYHN5el91c2JfY29ubmVjdGAgY2FsbC4gVGhhdCBsZXRzIHlvdSBwbHVnIGluIGEgdmlydHVhbCBVU0IgZGV2aWNlLiBJZiB3ZSBjYW4gZ2V0IGEgYGxhbjc4eHhgIGluIHRoZXJlLCB0aGF0IHJlZ2lzdGVycyBhbiBNRElPIGJ1cywgd2hpY2ggaXMgYSBjb21tb24gcGF0aC4gQnV0IGhvbGQgb24sIHRoZSBgbGFuNzh4eGAgZG9lc24ndCByZWdpc3RlciBhbiBgbXY4OGU2eHh4YCBpbnN0YW5jZSB1bmxlc3MgYSBkZXZpY2UgdHJlZSBub2RlIGlzIHByZXNlbnQuIFNvLCB3aGF0IGlmIFN5emthbGxlciBsZXZlcmFnZXMgc29tZXRoaW5nIGxpa2UgYGkyYy1zdHViYCBvciBgaTJjLW1vY2t1cGA/IFdlIGtub3cgYG12ODhlNnh4eGAgaXMgYW4gTURJTyBkcml2ZXIgZm9yIHN1cmUsIGJ1dC4uLiB3YWl0IGEgbWludXRlLCBJIHRoaW5rIEkgcmVtZW1iZXIgc2VlaW5nIGl0IG1lbnRpb25lZCBhcyBhbiBJMkMgZHJpdmVyIHRvby4gTGV0IG1lIGNvbmZpcm0gaWYgaXQgcmVnaXN0ZXJzIGFuIEkyQyBkcml2ZXIgYXMgd2VsbC4gVGhpcyBtaWdodCBnaXZlIHVzIHRoZSByb290IG9mIHRoZSBwcm9ibGVtLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MTk4NywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoyMDozOC4xNDg4MDc5MTZaIiwiU2VxIjo1NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0MzQxMjc5LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpMmNfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoyMDozOC4xOTMxNTUzNjVaIiwiU2VxIjo1NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTY3NjY4MzgyNTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRGV0ZXJtaW5pbmcgV29ydGhGdXp6aW5nIGZvciB0aGUgbXY4OGU2eHh4IE1ESU8gRHJpdmVyKipcblxuT2theSwgc28gd2UncmUgbG9va2luZyBhdCBhIHBhdGNoIHJlbGF0ZWQgdG8gYG12ODhlNnh4eGAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIldhaXQsIHRoYXQncyBhbiBNRElPIGRyaXZlcixcIiBhbmQgdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciBpdHNlbGYgaXMgc3BlY2lmaWNhbGx5IGFuIE1ESU8gZHJpdmVyLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiB3ZSB0cmlnZ2VyIHRoaXMgY29kZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCBhbmQgdGh1cywgc2hvdWxkIGl0IGJlIHdvcnRoIGZ1enppbmc/XG5cbkkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIGl0J3MgcmVhY2hhYmxlLiBJIGluaXRpYWxseSBsb29rZWQgZm9yIGEgYHN5c2ZzYCByZWdpc3RyYXRpb24gbWV0aG9kIGJ1dCBmb3VuZCBub3RoaW5nIHVzZWZ1bC4gVGhlbiBJIGNvbnNpZGVyZWQgaG93IHN5emthbGxlciBtaWdodCBoYXZlIGZvdW5kIHRoaXMgcGF0Y2guIERpZCBzeXprYWxsZXIgZmluZCBhIGJ1ZyB3aXRoIGl0cyBzdGF0aWMgYW5hbHlzaXMgdG9vbD8gTm8sIGl0J3MgdmVyeSBsaWtlbHkgdGhhdCB0aGlzIGJ1ZyByZXBvcnQgKFwic3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XCIpIHBvaW50cyB0byBhIGRldmVsb3Blci1zdWJtaXR0ZWQgcGF0Y2ggdGhhdCBzeXotY2x1c3RlciBpcyB0ZXN0aW5nLiBJdCBtZWFucyBhIGRldmVsb3BlciBzdWJtaXR0ZWQgdGhlIHBhdGNoLCBhbmQgc3l6LWNsdXN0ZXIgaXMgdGVzdGluZyBpdCwgd2hpY2ggaXMgaW1wb3J0YW50IHRvIGNvbnNpZGVyLlxuXG5UaGUgY29yZSBxdWVzdGlvbiBpcyB3aGV0aGVyIGBtdjg4ZTZ4eHhgIGNhbiBiZSByZWFjaGVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIGtlZXBpbmcgaW4gbWluZCB0aGUgY29udGV4dDogXCJSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOiAuLi4gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXCJcblxuYG12ODhlNnh4eGAgaXMgYSBkcml2ZXIgZm9yIE1hcnZlbGwgODhFNnh4eCBFdGhlcm5ldCBzd2l0Y2hlcy4gSXQgcmVxdWlyZXMgKnBoeXNpY2FsKiBoYXJkd2FyZSBjb25uZWN0ZWQgdmlhIE1ESU8uIFNpbmNlIHN0YW5kYXJkIFFFTVUgZG9lc24ndCBlbXVsYXRlIHRoZSBNYXJ2ZWxsIDg4RTZ4eHggc3dpdGNoIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIGl0IGluIFFFTVUsIHRoZW4gaXQgaXMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLiBXaGlsZSBJJ20gZmFtaWxpYXIgd2l0aCBzb2Z0d2FyZS1lbXVsYXRlZCBEU0EsIHN1Y2ggYXMgYGRzYV9sb29wYCwgdGhpcyBpcyBhIHNwZWNpZmljIGhhcmR3YXJlIGRyaXZlci5cblxuVGhlIHByb21wdCBleHBsaWNpdGx5IHN0YXRlcywgXCJDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXCJcblxuVGhpcyBpcywgYnkgZGVmaW5pdGlvbiwgYSAqdmVuZG9yLXNwZWNpZmljKiBFdGhlcm5ldCBzd2l0Y2ggZHJpdmVyLCBpdCBuZWVkcyBoYXJkd2FyZSwgYW5kIGl0J3Mgbm90IGVtdWxhdGVkLlxuXG5Tbywgc2luY2UgdGhlIHBhdGNoIG9ubHkgdG91Y2hlcyBgZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNgLCBhbmQgSSd2ZSBjb25maXJtZWQgdGhhdCBgbXY4OGU2eHh4YCBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUsIEkgc2hvdWxkIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuTGV0IG1lIGNvbmZpcm0gdGhvdWdoLCBpZiB0aGVyZSBpcyBhIHBvdGVudGlhbCB3YXkgdG8gcmVhY2ggdGhlIGRyaXZlci4gQ291bGQgdGhpcyBiZSBhIHBhdGNoIHRoYXQgd2FzIHNlbnQgYnkgYSBkZXZlbG9wZXIgZm9yIHRlc3RpbmcgYnkgc3l6Ym90LCBldmVuIGlmIHN5emJvdCBoYWRuJ3QgZm91bmQgYSBidWcgaXRzZWxmLCBvciB0aGF0IHRvdWNoZWQgcmVsYXRlZCBjb2RlP1xuXG5UaGUgcGF0Y2ggKm9ubHkqIHRvdWNoZXMgdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciwgYW5kIGl0J3MgYSBoYXJkd2FyZS1kZXBlbmRlbnQgZHJpdmVyLCBhbmQsIHRoZXJlIGlzIG5vIGVtdWxhdGlvbiBmb3IgYG12ODhlNnh4eGAgaW4gdGhlIGtlcm5lbCBpbiBhIHN0YW5kYXJkIFFFTVUgc2V0dXAuXG5cblN5emthbGxlciB0eXBpY2FsbHkgdXNlcyBgcTM1YCBvciBgcGNgIGZvciB4ODZfNjQgYW5kIGB2aXJ0YCBmb3IgYXJtNjQuIFRoZXNlIHN0YW5kYXJkIG1hY2hpbmUgdHlwZXMgZG9uJ3QgaW5jbHVkZSBhIE1hcnZlbGwgODhFNnh4eCBzd2l0Y2ggYXR0YWNoZWQgdG8gYW4gTURJTyBidXMuIEZ1cnRoZXJtb3JlLCB0aGUgZHJpdmVyIHByb2JlcyB2aWEgdGhlIGRldmljZSB0cmVlIChgbXY4OGU2eHh4X29mX21hdGNoYCkuIFRoZSAndmlydCcgbWFjaGluZSdzIGRldmljZSB0cmVlICpkb2Vzbid0KiBpbmNsdWRlIGFuIGBtdjg4ZTZ4eHhgIG5vZGUsIGFuZCBTeXprYWxsZXIgZG9lc24ndCBpbmplY3QgYXJiaXRyYXJ5IGRldmljZSB0cmVlIG5vZGVzIGVpdGhlci4gVGh1cywgaW4gc3l6a2FsbGVyJ3MgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIHRoaXMgY29kZSBpcyAqdW5yZWFjaGFibGUqLiBUaGVyZWZvcmUsIGl0J3MgYWJzb2x1dGVseSBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTI1MTQsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjI1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDE2OjIwOjU0Ljk2MDAwNzAzNloiLCJTZXEiOjU4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ1NzQ2ODI2NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdjg4ZTYwODVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWw9MTk9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWwtMjItICAgICAgLSBlbnVtOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWw6MjM6ICAgICAgICAgIC0gbWFydmVsbCxtdjg4ZTYwODVcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sLTI0LSAgICAgICAgICAtIG1hcnZlbGwsbXY4OGU2MTkwXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sLTI2LSAgICAgICAgZGVzY3JpcHRpb246IHxcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sOjI3OiAgICAgICAgICBtYXJ2ZWxsLG12ODhlNjA4NTogVGhpcyBzd2l0Y2ggdXNlcyBiYXNlIGFkZHJlc3MgMHgxMC5cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sLTI4LSAgICAgICAgICAgIFRoaXMgc3dpdGNoIGFuZCBpdHMgc2libGluZ3Mgd2lsbCBiZSBhdXRvZGV0ZWN0ZWQgZnJvbVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWw6Mjk6ICAgICAgICAgICAgSUQgcmVnaXN0ZXJzIGZvdW5kIGluIHRoZSBzd2l0Y2gsIHNvIG9ubHkgXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIiBzaG91bGQgYmVcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sLTMwLSAgICAgICAgICAgIHNwZWNpZmllZC4gVGhpcyBpbmNsdWRlcyB0aGUgZm9sbG93aW5nIGxpc3Qgb2YgTVY4OEV4eHh4IHN3aXRjaGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC00My0gICAgICAtIGl0ZW1zOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWw6NDQ6ICAgICAgICAgIC0gY29uc3Q6IG1hcnZlbGwsdHVycmlzLW1veC1tdjg4ZTYwODVcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sOjQ1OiAgICAgICAgICAtIGNvbnN0OiBtYXJ2ZWxsLG12ODhlNjA4NVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWwtNDYtICAgICAgLSBpdGVtczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWw9MTA5PWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC0xMTYtICAgICAgICBldGhlcm5ldC1zd2l0Y2hAMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbDoxMTc6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC0xMTgtICAgICAgICAgICAgcmVnID0gXFx1MDAzYzBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ldGhlcm5ldC1zd2l0Y2gueWFtbD0yMz1hbGxPZjpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXRoZXJuZXQtc3dpdGNoLnlhbWwtMzItICAgICAgICAgICAgZW51bTpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2V0aGVybmV0LXN3aXRjaC55YW1sOjMzOiAgICAgICAgICAgICAgLSBtYXJ2ZWxsLHR1cnJpcy1tb3gtbXY4OGU2MDg1XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ldGhlcm5ldC1zd2l0Y2gueWFtbC0zNC0gICAgICAgICAgICAgIC0gbWFydmVsbCx0dXJyaXMtbW94LW12ODhlNjE5MFxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcwLXJkLmR0cz0xNTI9XFx0c3dpdGNoOiBldGhlcm5ldC1zd2l0Y2hAMTAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MC1yZC5kdHM6MTUzOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MC1yZC5kdHMtMTU0LVxcdFxcdHJlZyA9IFxcdTAwM2MweDEwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4NS1jbGVhcmZvZy1ndHItczQuZHRzPTE2PVxcdHN3aXRjaDA6IGV0aGVybmV0LXN3aXRjaEA0IHtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLXM0LmR0czoxNzpcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLXM0LmR0cy0xOC1cXHRcXHRyZWcgPSBcXHUwMDNjNFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtbGlua3N5cy5kdHNpPTE2MT1cXHRldGhlcm5ldC1zd2l0Y2hAMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LWxpbmtzeXMuZHRzaToxNjI6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LWxpbmtzeXMuZHRzaS0xNjMtXFx0XFx0cmVnID0gXFx1MDAzYzBcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LXR1cnJpcy1vbW5pYS5kdHM9NDY3PVxcdGV0aGVybmV0LXN3aXRjaEAxMCB7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtdHVycmlzLW9tbmlhLmR0cy00NjktXFx0XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZzd2ludF9waW5zXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtdHVycmlzLW9tbmlhLmR0czo0NzA6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LXR1cnJpcy1vbW5pYS5kdHMtNDcxLVxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg4LWNsZWFyZm9nLmR0cz05Nj1cXHRldGhlcm5ldC1zd2l0Y2hANCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg4LWNsZWFyZm9nLmR0czo5NzpcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODgtY2xlYXJmb2cuZHRzLTk4LVxcdFxcdHJlZyA9IFxcdTAwM2M0XFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLXhwLWxpbmtzeXMtbWFtYmEuZHRzPTI2OD1cXHRldGhlcm5ldC1zd2l0Y2hAMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEteHAtbGlua3N5cy1tYW1iYS5kdHM6MjY5OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLXhwLWxpbmtzeXMtbWFtYmEuZHRzLTI3MC1cXHRcXHRyZWcgPSBcXHUwMDNjMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLTRpLWVkZ2UtMjAwLmR0cz04Mj1cXHRzd2l0Y2gwOiBzd2l0Y2hAMTEge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtNGktZWRnZS0yMDAuZHRzOjgzOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtNGktZWRnZS0yMDAuZHRzLTg0LVxcdFxcdHJlZyA9IFxcdTAwM2MweDExXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtZGlyNjY1LmR0cz0xOTY9XFx0c3dpdGNoQDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtZGlyNjY1LmR0czoxOTc6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1kaXI2NjUuZHRzLTE5OC1cXHRcXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbC01MC5kdHM9MjExPVxcdHN3aXRjaDA6IHN3aXRjaEAxMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1sLTUwLmR0czoyMTI6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1sLTUwLmR0cy0yMTMtXFx0XFx0I2FkZHJlc3MtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLWwtNTAuZHRzPTI2OT1cXHRzd2l0Y2hAMTEge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbC01MC5kdHM6MjcwOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbC01MC5kdHMtMjcxLVxcdFxcdCNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1saW5rc3lzLXZpcGVyLmR0cz0xNjI9XFx0c3dpdGNoQDEwIHtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLWxpbmtzeXMtdmlwZXIuZHRzOjE2MzpcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLWxpbmtzeXMtdmlwZXIuZHRzLTE2NC1cXHRcXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbXY4OGY2MjgxZ3R3LWdlLmR0cz0xMTM9XFx0c3dpdGNoQDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtbXY4OGY2MjgxZ3R3LWdlLmR0czoxMTQ6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1tdjg4ZjYyODFndHctZ2UuZHRzLTExNS1cXHRcXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwva2lya3dvb2QtcmQ4OGY2MjgxLmR0c2k9Nzc9XFx0c3dpdGNoOiBzd2l0Y2hAMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9raXJrd29vZC1yZDg4ZjYyODEuZHRzaTo3ODpcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2tpcmt3b29kLXJkODhmNjI4MS5kdHNpLTc5LVxcdFxcdCNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9vcmlvbjV4LW5ldGdlYXItd25yODU0dC5kdHM9MTA5PVxcdHN3aXRjaDogc3dpdGNoQDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvb3Jpb241eC1uZXRnZWFyLXducjg1NHQuZHRzOjExMDpcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL29yaW9uNXgtbmV0Z2Vhci13bnI4NTR0LmR0cy0xMTEtXFx0XFx0I2FkZHJlc3MtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUxLXppaS1yZHUxLmR0cz0xNzM9XFx0XFx0c3dpdGNoQDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NTEtemlpLXJkdTEuZHRzOjE3NDpcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUxLXppaS1yZHUxLmR0cy0xNzUtXFx0XFx0XFx0cmVnID0gXFx1MDAzYzBcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg1MS16aWktc2N1Mi1tZXp6LmR0cz00OT1cXHRcXHRzd2l0Y2hAMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg1MS16aWktc2N1Mi1tZXp6LmR0czo1MDpcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUxLXppaS1zY3UyLW1lenouZHRzLTUxLVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NTEtemlpLXNjdTMtZXNiLmR0cz0yMTY9XFx0XFx0c3dpdGNoQDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NTEtemlpLXNjdTMtZXNiLmR0czoyMTc6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg1MS16aWktc2N1My1lc2IuZHRzLTIxOC1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC15YXBwNDMtY29tbW9uLmR0c2k9MTI4PVxcdFxcdHN3aXRjaEAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC15YXBwNDMtY29tbW9uLmR0c2k6MTI5OlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLXlhcHA0My1jb21tb24uZHRzaS0xMzAtXFx0XFx0XFx0cmVnID0gXFx1MDAzYzBcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1ieDUwdjMuZHRzaT0xMDU9XFx0XFx0c3dpdGNoOiBzd2l0Y2hAMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1ieDUwdjMuZHRzaToxMDY6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCI7IC8qIDg4ZTYyNDAqL1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEtYng1MHYzLmR0c2ktMTA3LVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU5MDQuZHRzaT0xNzQ9XFx0XFx0c3dpdGNoQDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU5MDQuZHRzaToxNzU6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTkwNC5kdHNpLTE3Ni1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtemlpLXJkdTIuZHRzaT03MzA9XFx0XFx0c3dpdGNoOiBzd2l0Y2hAMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXppaS1yZHUyLmR0c2k6NzMxOlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC16aWktcmR1Mi5kdHNpLTczMi1cXHRcXHRcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfc3dpdGNoX2lycVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDdkLXppaS1ycHUyLmR0cz0yMjg9XFx0XFx0c3dpdGNoOiBzd2l0Y2hAMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg3ZC16aWktcnB1Mi5kdHM6MjI5OlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14N2QtemlpLXJwdTIuZHRzLTIzMC1cXHRcXHRcXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL3ZmL3ZmNjEwLXppaS1jZnUxLmR0cz0xNjU9XFx0XFx0c3dpdGNoMDogZXRoZXJuZXQtc3dpdGNoQDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktY2Z1MS5kdHM6MTY2OlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktY2Z1MS5kdHMtMTY3LVxcdFxcdFxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHM9MzA9XFx0XFx0XFx0c3dpdGNoMDogc3dpdGNoQDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktZGV2LXJldi1iLmR0czozMTpcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHMtMzItXFx0XFx0XFx0XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2dwaW9fc3dpdGNoMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHM9MTE0PVxcdFxcdFxcdHN3aXRjaDE6IHN3aXRjaEAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHM6MTE1OlxcdFxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktZGV2LXJldi1iLmR0cy0xMTYtXFx0XFx0XFx0XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2dwaW9fc3dpdGNoMVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHM9MjAxPVxcdFxcdFxcdHN3aXRjaDI6IHN3aXRjaEAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLWRldi1yZXYtYi5kdHM6MjAyOlxcdFxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktZGV2LXJldi1iLmR0cy0yMDMtXFx0XFx0XFx0XFx0cmVnID0gXFx1MDAzYzBcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvaW14OG1xLXppaS11bHRyYS5kdHNpPTE1MD1cXHRcXHRzd2l0Y2g6IHN3aXRjaEAwIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9pbXg4bXEtemlpLXVsdHJhLmR0c2k6MTUxOlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2lteDhtcS16aWktdWx0cmEuZHRzaS0xNTItXFx0XFx0XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX3N3aXRjaF9pcnFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLWVzcHJlc3NvYmluLXVsdHJhLmR0cz0xMjU9XFx0c3dpdGNoMDogZXRoZXJuZXQtc3dpdGNoQDMge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1lc3ByZXNzb2Jpbi11bHRyYS5kdHM6MTI2OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1lc3ByZXNzb2Jpbi11bHRyYS5kdHMtMTI3LVxcdFxcdHJlZyA9IFxcdTAwM2MzXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1lc3ByZXNzb2Jpbi5kdHNpPTE0Nz1cXHRzd2l0Y2gwOiBldGhlcm5ldC1zd2l0Y2hAMSB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLWVzcHJlc3NvYmluLmR0c2k6MTQ4OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1lc3ByZXNzb2Jpbi5kdHNpLTE0OS1cXHRcXHRyZWcgPSBcXHUwMDNjMVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtZ2wtbXYxMDAwLmR0cz0xNTA9XFx0c3dpdGNoMDogZXRoZXJuZXQtc3dpdGNoQDEge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC1nbC1tdjEwMDAuZHRzOjE1MTpcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtZ2wtbXYxMDAwLmR0cy0xNTItXFx0XFx0cmVnID0gXFx1MDAzYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzPTQzOD1cXHRzd2l0Y2gwQDIge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC10dXJyaXMtbW94LmR0czo0Mzk6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLHR1cnJpcy1tb3gtbXY4OGU2MDg1XFxcIiwgXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtdHVycmlzLW1veC5kdHMtNDQwLVxcdFxcdHJlZyA9IFxcdTAwM2MweDJcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzPTYzMj1cXHRzd2l0Y2gxQDIge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC10dXJyaXMtbW94LmR0czo2MzM6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLHR1cnJpcy1tb3gtbXY4OGU2MDg1XFxcIiwgXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtdHVycmlzLW1veC5kdHMtNjM0LVxcdFxcdHJlZyA9IFxcdTAwM2MweDJcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzPTgxNz1cXHRzd2l0Y2gyQDIge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC10dXJyaXMtbW94LmR0czo4MTg6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLHR1cnJpcy1tb3gtbXY4OGU2MDg1XFxcIiwgXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtdHVycmlzLW1veC5kdHMtODE5LVxcdFxcdHJlZyA9IFxcdTAwM2MweDJcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS03MDQwLW1vY2hhYmluLmR0cz0zMDQ9XFx0c3dpdGNoOiBldGhlcm5ldC1zd2l0Y2hAMyB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS03MDQwLW1vY2hhYmluLmR0czozMDU6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS03MDQwLW1vY2hhYmluLmR0cy0zMDYtXFx0XFx0cmVnID0gXFx1MDAzYzNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLWNsZWFyZm9nLWd0LThrLmR0cz01MDA9XFx0c3dpdGNoMDogZXRoZXJuZXQtc3dpdGNoQDQge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1jbGVhcmZvZy1ndC04ay5kdHM6NTAxOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1jbGVhcmZvZy1ndC04ay5kdHMtNTAyLVxcdFxcdHJlZyA9IFxcdTAwM2M0XFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY2YtcHJvLmR0cz04OD1cXHRldGhlcm5ldC1zd2l0Y2hANCB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMC1jZi1wcm8uZHRzOjg5OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY2YtcHJvLmR0cy05MC1cXHRcXHRyZWcgPSBcXHUwMDNjNFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMyLWNsZWFyZm9nLmR0cz0yNjQ9XFx0ZXRoZXJuZXQtc3dpdGNoQDQge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzItY2xlYXJmb2cuZHRzOjI2NTpcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2MDg1XFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMyLWNsZWFyZm9nLmR0cy0yNjYtXFx0XFx0cmVnID0gXFx1MDAzYzRcXHUwMDNlO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NDIxMT1zdGF0aWMgaW50IG12ODhlNnh4eF9zZXRfZWVwcm9tKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQyMjktXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDIzMDpzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MDg1X29wcyA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MjMxLVxcdC8qIE1WODhFNlhYWF9GQU1JTFlfNjA5NyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQyMzI6XFx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDIzMzpcXHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQyMzQtXFx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MjY1LVxcdC5yZXNldCA9IG12ODhlNjE4NV9nMV9yZXNldCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0MjY2OlxcdC5ybXVfZGlzYWJsZSA9IG12ODhlNjA4NV9nMV9ybXVfZGlzYWJsZSxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MjY3LVxcdC52dHVfZ2V0bmV4dCA9IG12ODhlNjM1Ml9nMV92dHVfZ2V0bmV4dCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTQyNzU9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjA5NV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDI3Ni1cXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYwOTUgKi9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0Mjc3OlxcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQyNzg6XFx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00Mjc5LVxcdC5zZXRfc3dpdGNoX21hYyA9IG12ODhlNnh4eF9nMV9zZXRfc3dpdGNoX21hYyxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQyODQtXFx0LnBvcnRfc2V0X3NwZWVkX2R1cGxleCA9IG12ODhlNjE4NV9wb3J0X3NldF9zcGVlZF9kdXBsZXgsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDI4NTpcXHQucG9ydF9zZXRfZnJhbWVfbW9kZSA9IG12ODhlNjA4NV9wb3J0X3NldF9mcmFtZV9tb2RlLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQyODYtXFx0LnBvcnRfc2V0X3VjYXN0X2Zsb29kID0gbXY4OGU2MTg1X3BvcnRfc2V0X2ZvcndhcmRfdW5rbm93bixcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTQzMDc9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjA5N19vcHMgPSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDMwOC1cXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYwOTcgKi9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0MzA5OlxcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQzMTA6XFx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MzExLVxcdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDM0My1cXHQucmVzZXQgPSBtdjg4ZTYzNTJfZzFfcmVzZXQsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDM0NDpcXHQucm11X2Rpc2FibGUgPSBtdjg4ZTYwODVfZzFfcm11X2Rpc2FibGUsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDM0NS1cXHQudnR1X2dldG5leHQgPSBtdjg4ZTYzNTJfZzFfdnR1X2dldG5leHQsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz00MzU0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYxMjNfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQzNTUtXFx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MTY1ICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDM1NjpcXHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0MzU3OlxcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDM1OC1cXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQzNjYtXFx0LnBvcnRfc2V0X3NwZWVkX2R1cGxleCA9IG12ODhlNjE4NV9wb3J0X3NldF9zcGVlZF9kdXBsZXgsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDM2NzpcXHQucG9ydF9zZXRfZnJhbWVfbW9kZSA9IG12ODhlNjA4NV9wb3J0X3NldF9mcmFtZV9tb2RlLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQzNjgtXFx0LnBvcnRfc2V0X3VjYXN0X2Zsb29kID0gbXY4OGU2MzUyX3BvcnRfc2V0X3VjYXN0X2Zsb29kLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NDM5NT1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MTMxX29wcyA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00Mzk2LVxcdC8qIE1WODhFNlhYWF9GQU1JTFlfNjE4NSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQzOTc6XFx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDM5ODpcXHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQzOTktXFx0LnNldF9zd2l0Y2hfbWFjID0gbXY4OGU2eHh4X2cxX3NldF9zd2l0Y2hfbWFjLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NDQzNT1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MTQxX29wcyA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NDM2LVxcdC8qIE1WODhFNlhYWF9GQU1JTFlfNjM0MSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ0Mzc6XFx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDQzODpcXHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ0MzktXFx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz00NDk3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYxNjFfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ0OTgtXFx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MTY1ICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDQ5OTpcXHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NTAwOlxcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDUwMS1cXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTQ1NDU9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjE2NV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDU0Ni1cXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYxNjUgKi9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NTQ3OlxcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ1NDg6XFx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NTQ5LVxcdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NDU4Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MTcxX29wcyA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NTgzLVxcdC8qIE1WODhFNlhYWF9GQU1JTFlfNjM1MSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ1ODQ6XFx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDU4NTpcXHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ1ODYtXFx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz00NjI4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYxNzJfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ2MjktXFx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MzUyICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDYzMDpcXHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NjMxOlxcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDYzMi1cXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTQ2ODY9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjE3NV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDY4Ny1cXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYzNTEgKi9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0Njg4OlxcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ2ODk6XFx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NjkwLVxcdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NDczMj1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MTc2X29wcyA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NzMzLVxcdC8qIE1WODhFNlhYWF9GQU1JTFlfNjM1MiAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ3MzQ6XFx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDczNTpcXHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ3MzYtXFx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz00NzkxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYxODVfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ3OTItXFx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MTg1ICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDc5MzpcXHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0Nzk0OlxcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDc5NS1cXHQuc2V0X3N3aXRjaF9tYWMgPSBtdjg4ZTZ4eHhfZzFfc2V0X3N3aXRjaF9tYWMsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00ODAwLVxcdC5wb3J0X3NldF9zcGVlZF9kdXBsZXggPSBtdjg4ZTYxODVfcG9ydF9zZXRfc3BlZWRfZHVwbGV4LFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ4MDE6XFx0LnBvcnRfc2V0X2ZyYW1lX21vZGUgPSBtdjg4ZTYwODVfcG9ydF9zZXRfZnJhbWVfbW9kZSxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00ODAyLVxcdC5wb3J0X3NldF91Y2FzdF9mbG9vZCA9IG12ODhlNjE4NV9wb3J0X3NldF9mb3J3YXJkX3Vua25vd24sXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz01MDA1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYyNDBfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUwMDYtXFx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MzUyICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTAwNzpcXHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MDA4OlxcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTAwOS1cXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTUwNjY9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjI1MF9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MDY4LVxcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYyNTBfZzFfaWVlZV9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjUwNjk6XFx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MDcwLVxcdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NTE3Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzIwX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUxNzQtXFx0LnNldHVwX2VycmF0YSA9IG12ODhlNjMyMF9zZXR1cF9lcnJhdGEsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTE3NTpcXHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MTc2OlxcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTE3Ny1cXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTUyMjg9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjMyMV9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MjMwLVxcdC5zZXR1cF9lcnJhdGEgPSBtdjg4ZTYzMjBfc2V0dXBfZXJyYXRhLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjUyMzE6XFx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTIzMjpcXHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUyMzMtXFx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz01Mjg4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzNDFfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUyODktXFx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MzQxICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTI5MDpcXHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MjkxOlxcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTI5Mi1cXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTUzNTI9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM1MF9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTM1My1cXHQvKiBNVjg4RTZYWFhfRkFNSUxZXzYzNTEgKi9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MzU0OlxcdC5pZWVlX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaWVlZV9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjUzNTU6XFx0LmlwX3ByaV9tYXAgPSBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MzU2LVxcdC5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzNTJfZzJfaXJsX2luaXRfYWxsLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NTM5OD1zdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzUxX29wcyA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01Mzk5LVxcdC8qIE1WODhFNlhYWF9GQU1JTFlfNjM1MSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU0MDA6XFx0LmllZWVfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTQwMTpcXHQuaXBfcHJpX21hcCA9IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU0MDItXFx0LmlybF9pbml0X2FsbCA9IG12ODhlNjM1Ml9nMl9pcmxfaW5pdF9hbGwsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz01NDQ2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzNTJfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU0NDctXFx0LyogTVY4OEU2WFhYX0ZBTUlMWV82MzUyICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTQ0ODpcXHQuaWVlZV9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1NDQ5OlxcdC5pcF9wcmlfbWFwID0gbXY4OGU2MDg1X2cxX2lwX3ByaV9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTQ1MC1cXHQuaXJsX2luaXRfYWxsID0gbXY4OGU2MzUyX2cyX2lybF9pbml0X2FsbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTU3MDE9c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU3NjgtXFx0XFx0Lm11bHRpX2NoaXAgPSB0cnVlLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU3Njk6XFx0XFx0Lm9wcyA9IFxcdTAwMjZtdjg4ZTYwODVfb3BzLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU3NzAtXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc1MDY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXY4OGU2eHh4X29mX21hdGNoW10gPSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUwNy1cXHR7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzUwODpcXHRcXHQuY29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNjA4NVxcXCIsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUwOS1cXHRcXHQuZGF0YSA9IFxcdTAwMjZtdjg4ZTZ4eHhfdGFibGVbTVY4OEU2MDg1XSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc1MjQ9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdjg4ZTZ4eHhfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyOC1cXHQubWRpb2Rydi5kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzUyOTpcXHRcXHQubmFtZSA9IFxcXCJtdjg4ZTYwODVcXFwiLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1MzAtXFx0XFx0Lm9mX21hdGNoX3RhYmxlID0gbXY4OGU2eHh4X29mX21hdGNoLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmM9Mjg4PWludCBtdjg4ZTYxODVfZzFfc2V0X21heF9mcmFtZV9zaXplKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IG10dSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5jLTMxNi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuYzozMTc6aW50IG12ODhlNjA4NV9nMV9pcF9wcmlfbWFwKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuYy0zMTgte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmMtMzU4LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5jOjM1OTppbnQgbXY4OGU2MDg1X2cxX2llZWVfcHJpX21hcChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmMtMzYwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5jPTUyNj1pbnQgbXY4OGU2MTg1X2cxX3NldF9jYXNjYWRlX3BvcnQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5jLTUzMi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuYzo1MzM6aW50IG12ODhlNjA4NV9nMV9ybXVfZGlzYWJsZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmMtNTM0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oPTMwOT1pbnQgbXY4OGU2MzkwX2cxX21nbXRfcnN2ZDJjcHUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuaC0zMTAtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmg6MzExOmludCBtdjg4ZTYwODVfZzFfaXBfcHJpX21hcChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oLTMxMi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuaDozMTM6aW50IG12ODhlNjA4NV9nMV9pZWVlX3ByaV9tYXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDEuaC0zMTQtaW50IG12ODhlNjI1MF9nMV9pZWVlX3ByaV9tYXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oPTMxNj1pbnQgbXY4OGU2MTg1X2cxX3NldF9jYXNjYWRlX3BvcnQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmgtMzE3LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMS5oOjMxODppbnQgbXY4OGU2MDg1X2cxX3JtdV9kaXNhYmxlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxLmgtMzE5LWludCBtdjg4ZTYzNTJfZzFfcm11X2Rpc2FibGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jPTc5OT1pbnQgbXY4OGU2eHh4X3BvcnRfc2V0X2VncmVzc19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuYy04MzAtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmM6ODMxOmludCBtdjg4ZTYwODVfcG9ydF9zZXRfZnJhbWVfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jLTgzMi1cXHRcXHRcXHRcXHQgIGVudW0gbXY4OGU2eHh4X2ZyYW1lX21vZGUgbW9kZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5oPTUyNj1pbnQgbXY4OGU2eHh4X3BvcnRfc2V0X2VncmVzc19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmgtNTI3LVxcdFxcdFxcdFxcdCAgIGVudW0gbXY4OGU2eHh4X2VncmVzc19tb2RlIG1vZGUpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5oOjUyODppbnQgbXY4OGU2MDg1X3BvcnRfc2V0X2ZyYW1lX21vZGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaC01MjktXFx0XFx0XFx0XFx0ICBlbnVtIG12ODhlNnh4eF9mcmFtZV9tb2RlIG1vZGUpO1xcbi0tXFxubmV0L2RzYS9wb3J0LmM9MTcyNj1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGRzYV9zd2l0Y2hlc19hcHBseV93b3JrYXJvdW5kc1tdID0ge1xcbi0tXFxubmV0L2RzYS9wb3J0LmMtMTc3OC0jaWYgSVNfRU5BQkxFRChDT05GSUdfTkVUX0RTQV9NVjg4RTZYWFgpXFxubmV0L2RzYS9wb3J0LmM6MTc3OTpcXHRcXFwibWFydmVsbCxtdjg4ZTYwODVcXFwiLFxcbm5ldC9kc2EvcG9ydC5jLTE3ODAtXFx0XFxcIm1hcnZlbGwsbXY4OGU2MTkwXFxcIixcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MjA6NTYuNDE3NDgxNDRaIiwiU2VxIjo1OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTMzNzQ5NTY2NDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBNYXJ2ZWxsIDg4RTZ4eHggRHJpdmVyKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBJJ20gbG9va2luZyBhdCBgbmV0L2RzYS9wb3J0LmNgIGFuZCBzcGVjaWZpY2FsbHkgYGRzYV9zd2l0Y2hlc19hcHBseV93b3JrYXJvdW5kc2AuIEkgc2VlIGEgcmVmZXJlbmNlIHRvIGBcIm1hcnZlbGwsbXY4OGU2MDg1XCJgLCB3aGljaCB0cmlnZ2VycyBzb21lIHRob3VnaHRzLiBUaGVyZSdzIG5vIHRlc3QgZHJpdmVyIG9yIGV2ZW4gYSBiYXNpYyBtb2NrIGZvciB0aGlzIHNwZWNpZmljIE1hcnZlbGwgc3dpdGNoLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdGhlIG9ubHkgd2F5IGl0IGdldHMgaW5zdGFudGlhdGVkIGlzIHRocm91Z2ggdGhlIGRldmljZSB0cmVlLlxuXG5Ob3csIEkga25vdyBzeXprYWxsZXIgY2FuIGluamVjdCBkZXZpY2UgdHJlZSBvdmVybGF5cyB1c2luZyBgb2Zfb3ZlcmxheV9mZHRfYXBwbHlgLCAqaWYqIHRoZXJlJ3MgYSBzeXNmcyBpbnRlcmZhY2UuIEJ1dCBJIGNvdWxkbid0IGZpbmQgb25lLiBJIGRpZCByZW1lbWJlciB0aGF0IHN5emthbGxlciAqZG9lcyogaGF2ZSBgQ09ORklHX09GX09WRVJMQVlgIGVuYWJsZWQsIGFuZCBpdCBoYXMgYHN5el91c2JfY29ubmVjdGAuIEhvd2V2ZXIsIHRoZSBgbXY4OGU2eHh4YCBpc24ndCBhIFVTQiBkZXZpY2UsIHNvIHRoYXQncyBhIGRlYWQgZW5kLlxuXG5NeSBpbml0aWFsIHRob3VnaHQgd2FzIG1heWJlIHN5emthbGxlciBqdXN0IG1pc3NlZCBpdC4gVGhlbiBJIHJlLXJlYWQgdGhlIHByb21wdCBhbmQgdGhlIGtleSBwaHJhc2UganVtcHMgb3V0OiBcInZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzLi4uIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VXCIuIE15IHRoaW5raW5nIGlzIHRoYXQgdGhlIGBtdjg4ZTZ4eHhgIGlzIGEgdmVuZG9yLXNwZWNpZmljIEV0aGVybmV0IHN3aXRjaCBkcml2ZXIgdGhhdCBjbGVhcmx5IG5lZWRzIGRlZGljYXRlZCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gUUVNVS4gU28sIHRoYXQgZmVlbHMgbGlrZSBhIG1hdGNoIHRvIG1lIGFuZCBteSBmaXJzdCBjb25jbHVzaW9uIGlzIGEgYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cbkxldCBtZSBiZSBwcmVjaXNlIHdpdGggdGhlIGxhbmd1YWdlLiBUaGUgcHJvbXB0IHNheXMsIFwiQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VXCIuIE9rYXksIEkgbm90aWNlIGBtdjg4ZTZ4eHhgIGlzIGFuIE1ESU8gc3dpdGNoLCBub3QgYSBQQ0llIHN3aXRjaCwgYnV0IHRoZSB1bmRlcmx5aW5nIGlzc3VlIHJlbWFpbnMgdGhlIHNhbWU6IGl0J3MgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlLCBhbmQgaXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gUUVNVS5cblxuV2FpdCwgaGVyZSBpcyBhbm90aGVyIHJlbGV2YW50IHJ1bGU6IFwiQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXCIgU2luY2UgdGhpcyBgbXY4OGU2eHh4YCBpcyB1bnJlYWNoYWJsZSBpbiBRRU1VLCB0aGF0IHJ1bGUgY2xlYXJseSBhcHBsaWVzISBJJ20gbGVhbmluZyBoZWF2aWx5IHRvd2FyZHMgXCJmYWxzZS5cIlxuXG5CZWZvcmUgSSBmaW5hbGl6ZSB0aGUgZGVjaXNpb24sIGxldCBtZSBkbyBhIHF1aWNrIHNhbml0eSBjaGVjayB0byBzZWUgaWYgSSBtaXNzZWQgYW55IHN5emthbGxlciBwc2V1ZG8tc3lzY2FsbHMgZm9yIE1ESU8gb3IgRFNBLiBJIGxvb2tlZCBmb3IgYHN5el9gIGluIGBuZXQvYCBhbmQgYGRyaXZlcnMvbmV0L2RzYS9gIGFuZCBmb3VuZCBub3RoaW5nLiBJIGFsc28gZGlkIGEgZ2xvYmFsIHNlYXJjaCBhbmQgZm91bmQgYGlvbW11ZmRfdGVzdF9zeXpfY29udl9pb3ZhYCwgYnV0IG5vdGhpbmcgcmVsYXRlZCB0byBNRElPIG9yIERTQS4gU28sIGRlZmluaXRlbHkgbm8gYHN5el9tZGlvYCBvciBgc3l6X2RzYWAuIFdoaWNoIGNvbmZpcm1zIHRoYXQgdGhpcyBgbXY4OGU2eHh4YCBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXG5TbyBteSBmaW5hbCByZXNwb25zZSBpczpcblxuV29ydGhGdXp6aW5nOiBmYWxzZVxuUmVhc29uaW5nOiBUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBNYXJ2ZWxsIDg4RTZ4eHggRXRoZXJuZXQgc3dpdGNoZXMuIFRoZXNlIHN3aXRjaGVzIGFyZSBjb25uZWN0ZWQgdmlhIE1ESU8gYW5kIHJlcXVpcmUgcGh5c2ljYWwgaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMgdXNlZCBieSBzeXprYWxsZXIuIFRoZXJlIGlzIG5vIHNvZnR3YXJlLWVtdWxhdGVkIG1vY2t1cCBmb3IgdGhpcyBzcGVjaWZpYyBoYXJkd2FyZSAodW5saWtlIGBkc2FfbG9vcGApLCBtYWtpbmcgdGhlIGNvZGUgcGF0aHMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY4MjQ0LCJPdXRwdXRUb2tlbnMiOjEyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjczNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQxNjoyMTowOS43OTI0NDA5NTJaIiwiU2VxIjo2MCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTQ0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYG12ODhlNnh4eGAgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgZm9yIE1hcnZlbGwgODhFNnh4eCBFdGhlcm5ldCBzd2l0Y2hlcy4gVGhlc2Ugc3dpdGNoZXMgYXJlIGNvbm5lY3RlZCB2aWEgTURJTyBhbmQgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cyB1c2VkIGJ5IHN5emthbGxlci4gVGhlcmUgaXMgbm8gc29mdHdhcmUtZW11bGF0ZWQgbW9ja3VwIGZvciB0aGlzIHNwZWNpZmljIGhhcmR3YXJlICh1bmxpa2UgYGRzYV9sb29wYCksIG1ha2luZyB0aGUgY29kZSBwYXRocyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgTWFydmVsbCA4OEU2eHh4IEV0aGVybmV0IHN3aXRjaGVzLiBUaGVzZSBzd2l0Y2hlcyBhcmUgY29ubmVjdGVkIHZpYSBNRElPIGFuZCByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzIHVzZWQgYnkgc3l6a2FsbGVyLiBUaGVyZSBpcyBubyBzb2Z0d2FyZS1lbXVsYXRlZCBtb2NrdXAgZm9yIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUgKHVubGlrZSBgZHNhX2xvb3BgKSwgbWFraW5nIHRoZSBjb2RlIHBhdGhzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMTY6MjE6MDkuNzkyNDY1MjgyWiIsIlNlcSI6NjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowtmv5h[1] Phase: Running StartedAt: 2026-08-15 16:21:21 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtmv5h[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-15 16:21:21 +0000 UTC FinishedAt: 2026-08-15 16:21:25 +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,}