Name: series-workflow6kqrc Phase: Failed StartedAt: 2026-08-02 00:09:47 +0000 UTC FinishedAt: 2026-08-02 00:12:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6kqrc[0] Phase: Succeeded StartedAt: 2026-08-02 00:09:47 +0000 UTC FinishedAt: 2026-08-02 00:11:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6kqrc[0].run-triage Phase: Succeeded StartedAt: 2026-08-02 00:09:47 +0000 UTC FinishedAt: 2026-08-02 00:11:52 +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+CgkJCTx0ZD4yMDI2LzA4LzAyIDAwOjExPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlcGxhY2VzIEFSUkFZX1NJWkUoZGV2LVx1MDAzZXR4cV9sb2NrKSB3aXRoIHRoZSBtYWNybyBBSVJPSEFfTlVNX05FVERFVl9UWF9SSU5HUyB1c2VkIHRvIGRlZmluZSB0aGUgYXJyYXkgc2l6ZS4gVGhpcyBpcyBhIHB1cmVseSBjb3NtZXRpYyBjaGFuZ2UgdGhhdCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAwOjExPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNjg2NmMzZTljYjY3ZGMwY2M0ODVhZTlkOGRmNDVhYWYzZGVmNmI1N1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gQXVnIDIgMDA6MTE6MTkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmNcbmluZGV4IGRiYTdjNTJjMDg5NjkuLjY0NjE5ZTlhNzA0ZGQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXG5AQCAtMzQ2Nyw3ICYjNDM7MzQ2Nyw3IEBAIHN0YXRpYyBpbnQgYWlyb2hhX2FsbG9jX2dkbV9kZXZpY2Uoc3RydWN0IGFpcm9oYV9ldGggKmV0aCxcbiBcdG5ldGRldi1cdTAwM2VkZXYub2Zfbm9kZSA9IG9mX25vZGVfZ2V0KG5wKTtcbiBcdGRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG4gXHR1NjRfc3RhdHNfaW5pdChcdTAwMjZkZXYtXHUwMDNlc3RhdHMuc3luY3ApO1xuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShkZXYtXHUwMDNldHhxX2xvY2spOyBpJiM0MzsmIzQzOylcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBSVJPSEFfTlVNX05FVERFVl9UWF9SSU5HUzsgaSYjNDM7JiM0MzspXG4gXHRcdHNwaW5fbG9ja19pbml0KFx1MDAyNmRldi1cdTAwM2V0eHFfbG9ja1tpXSk7XG4gXHRkZXYtXHUwMDNlcG9ydCA9IHBvcnQ7XG4gXHRkZXYtXHUwMDNlZXRoID0gZXRoO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAwOjExPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZXBsYWNlcyBBUlJBWV9TSVpFKGRldi1cdTAwM2V0eHFfbG9jaykgd2l0aCB0aGUgbWFjcm8gQUlST0hBX05VTV9ORVRERVZfVFhfUklOR1MgdXNlZCB0byBkZWZpbmUgdGhlIGFycmF5IHNpemUuIFRoaXMgaXMgYSBwdXJlbHkgY29zbWV0aWMgY2hhbmdlIHRoYXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDY4NjZjM2U5Y2I2N2RjMGNjNDg1YWU5ZDhkZjQ1YWFmM2RlZjZiNTcKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU3VuIEF1ZyAyIDAwOjExOjE5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMKaW5kZXggZGJhN2M1MmMwODk2OS4uNjQ2MTllOWE3MDRkZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jCkBAIC0zNDY3LDcgJiM0MzszNDY3LDcgQEAgc3RhdGljIGludCBhaXJvaGFfYWxsb2NfZ2RtX2RldmljZShzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLAogCW5ldGRldi0mZ3Q7ZGV2Lm9mX25vZGUgPSBvZl9ub2RlX2dldChucCk7CiAJZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTsKIAl1NjRfc3RhdHNfaW5pdCgmYW1wO2Rldi0mZ3Q7c3RhdHMuc3luY3ApOwotCWZvciAoaSA9IDA7IGkgJmx0OyBBUlJBWV9TSVpFKGRldi0mZ3Q7dHhxX2xvY2spOyBpJiM0MzsmIzQzOykKJiM0MzsJZm9yIChpID0gMDsgaSAmbHQ7IEFJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTOyBpJiM0MzsmIzQzOykKIAkJc3Bpbl9sb2NrX2luaXQoJmFtcDtkZXYtJmd0O3R4cV9sb2NrW2ldKTsKIAlkZXYtJmd0O3BvcnQgPSBwb3J0OwogCWRldi0mZ3Q7ZXRoID0gZXRoOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMDoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTMzCgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogODkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhlIGV4cGVydDoKCioqSW52ZXN0aWdhdGluZyBhIE5ldHdvcmsgRHJpdmVyIFBhdGNoKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXNzZWN0IHRoaXMgcGF0Y2guIEl0IGxvb2tzIGxpa2Ugd2UmIzM5O3JlIHplcm9pbmcgaW4gb24gYSBjaGFuZ2UgaW4gdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jYCBmaWxlLiBTcGVjaWZpY2FsbHksIHRoZSBtb2RpZmljYXRpb24gY2F1Z2h0IG15IGV5ZTogdGhlIGBBUlJBWV9TSVpFKGRldi0mZ3Q7dHhxX2xvY2spYCBpcyBiZWluZyBzd2FwcGVkIG91dCBmb3IgYEFJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTYCB3aXRoaW4gdGhlIGBhaXJvaGFfYWxsb2NfZ2RtX2RldmljZWAgZnVuY3Rpb24uIEkgaW1tZWRpYXRlbHkgd2FudCB0byB1bmRlcnN0YW5kIHRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXMsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQmIzM5O3MgZ29pbmcgb24gd2l0aGluIHRoZXNlIHJvdXRpbmVzLiBGaXJzdCwgSSBuZWVkIHRvIGNoZWNrIHRoZSBmdW5jdGlvbiwgYGFpcm9oYV9hbGxvY19nZG1fZGV2aWNlYCBpdHNlbGYuIEkgbmVlZCB0byBzZWUgaG93IHRoZSBjaGFuZ2UgaW1wYWN0cyB0aGUgYGRldi0mZ3Q7dHhxX2xvY2tgIHZhcmlhYmxlLCBpdHMgaW5pdGlhbGl6YXRpb24sIGFuZCB1c2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDA6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dHhxX2xvY2smIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9OTcxPXN0YXRpYyBpbnQgYWlyb2hhX3FkbWFfdHhfbmFwaV9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTEwNDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjEwNDc6XHRcdFx0c3Bpbl9sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2V0eHFfbG9ja1txaWR4XSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTEwNDgtXHRcdFx0bmV0ZGV2X3R4X2NvbXBsZXRlZF9xdWV1ZSh0eHEsIDEsIHNrYi1cdTAwM2VsZW4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxMDQ5Olx0XHRcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2V0eHFfbG9ja1txaWR4XSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTEwNTAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zNDEyPXN0YXRpYyBpbnQgYWlyb2hhX2FsbG9jX2dkbV9kZXZpY2Uoc3RydWN0IGFpcm9oYV9ldGggKmV0aCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0NzAtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBSVJPSEFfTlVNX05FVERFVl9UWF9SSU5HUzsgaSYjNDM7JiM0MzspXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM0NzE6XHRcdHNwaW5fbG9ja19pbml0KFx1MDAyNmRldi1cdTAwM2V0eHFfbG9ja1tpXSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0NzItXHRkZXYtXHUwMDNlcG9ydCA9IHBvcnQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDA6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg1MwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIGlmIEkgd2VyZSB0aGlua2luZyB0aGVzZSB0aG91Z2h0czoKCioqQW5hbHl6aW5nIHRoZSBBaXJvaGEgR0RNIFBvcnQgU3RydWN0dXJlKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGluLiBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIEFpcm9oYSBFdGhlcm5ldCBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgR0RNIHBvcnQgc3RydWN0dXJlLiBJIGJlbGlldmUgSSYjMzk7bGwgZmluZCB0aGUgZGVmaW5pdGlvbiBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaGAsIG9yIHNvbWV0aGluZyB2ZXJ5IHNpbWlsYXIgd2l0aGluIHRoZSBkcml2ZXImIzM5O3Mgc291cmNlIHRyZWUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgYGFpcm9oYV9nZG1fcG9ydGAgc3RydWN0IGlzIGRlZmluZWQ7IEkmIzM5O2xsIHN0YXJ0IGJ5IGxvb2tpbmcgYXQgdGhpcy4gVGltZSB0byBnZXQgbXkgYmVhcmluZ3MgYW5kIHNlZSB3aGF0IHdlJiMzOTtyZSB3b3JraW5nIHdpdGggaGVyZS4gSSYjMzk7bSBhZnRlciB0aGUgZGV0YWlscy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMDoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTc0PXN0YXRpYyBpbnQgYWlyb2hhX3NldF9tYWNhZGRyKHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2LCBjb25zdCB1OCAqYWRkcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTg1LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShldGgtXHUwMDNlcG9ydHMpOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo4NjpcdFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGV0aC1cdTAwM2Vwb3J0c1tpXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtODctXHRcdGludCBqO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MTU5PXN0YXRpYyBpbnQgYWlyb2hhX3NldF92aXBfZm9yX2dkbV9wb3J0KHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2LCBib29sIGVuYWJsZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTYwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTYxOlx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cdTAwM2Vwb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNjItXHRzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoID0gZGV2LVx1MDAzZWV0aDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTYzOT1haXJvaGFfcWRtYV9nZXRfZ2RtX2RldihzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLCBzdHJ1Y3QgYWlyb2hhX3FkbWFfZGVzYyAqZGVzYylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjQwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjQxOlx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjQyLVx0dTE2IHAsIGQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz02NjA9c3RhdGljIGludCBhaXJvaGFfcWRtYV9yeF9wcm9jZXNzKHN0cnVjdCBhaXJvaGFfcXVldWUgKnEsIGludCBidWRnZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy03MjgtXHRcdGlmIChuZXRkZXZfdXNlc19kc2EobmV0ZGV2KSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo3Mjk6XHRcdFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cdTAwM2Vwb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy03MzAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz05MTY9c3RhdGljIHZvaWQgYWlyb2hhX3FkbWFfd2FrZV9uZXRkZXZfdHhxcyhzdHJ1Y3QgYWlyb2hhX3F1ZXVlICpxKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtOTIyLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShldGgtXHUwMDNlcG9ydHMpOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo5MjM6XHRcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBldGgtXHUwMDNlcG9ydHNbaV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTkyNC1cdFx0aW50IGQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xNjk1PXN0YXRpYyB2b2lkIGFpcm9oYV91cGRhdGVfaHdfc3RhdHMoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE2OTYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNjk3Olx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cdTAwM2Vwb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNjk4LVx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IGRldi1cdTAwM2VldGg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xOTEwPXN0YXRpYyBpbnQgYWlyb2hhX2Rldl9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTEyLVx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxOTEzOlx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cdTAwM2Vwb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTE0LVx0dTMyIHBzZV9wb3J0ID0gRkVfUFNFX1BPUlRfUFBFMTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTE5NDM9c3RhdGljIGludCBhaXJvaGFfZGV2X3N0b3Aoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5NDUtXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE5NDY6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVx1MDAzZXBvcnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5NDctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xOTc5PXN0YXRpYyBpbnQgYWlyb2hhX2VuYWJsZV9nZG0yX2xvb3BiYWNrKHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTgwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTk4MTpcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXHUwMDNlcG9ydDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTk4Mi1cdHN0cnVjdCBhaXJvaGFfZXRoICpldGggPSBkZXYtXHUwMDNlZXRoO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjAzNz1zdGF0aWMgaW50IGFpcm9oYV9kaXNhYmxlX2dkbTJfbG9vcGJhY2soc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwMzgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMDM5Olx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cdTAwM2Vwb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMDQwLVx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IGRldi1cdTAwM2VldGg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0yMDg1PWFpcm9oYV9nZXRfd2FuX2dkbV9kZXYoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwODktXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKGV0aC1cdTAwM2Vwb3J0cyk7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIwOTA6XHRcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBldGgtXHUwMDNlcG9ydHNbaV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwOTEtXHRcdGludCBqO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjE0Mz1zdGF0aWMgaW50IGFpcm9oYV9kZXZfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjE0NS1cdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjE0NjpcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXHUwMDNlcG9ydDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjE0Ny1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTIxOTk9c3RhdGljIGludCBhaXJvaGFfZGV2X2NoYW5nZV9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgaW50IG10dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMDEtXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIyMDI6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVx1MDAzZXBvcnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMDMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0yMjExPXN0YXRpYyB1MTYgYWlyb2hhX2Rldl9zZWxlY3RfcXVldWUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMTUtXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIyMTY6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVx1MDAzZXBvcnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMTctXHRpbnQgcXVldWUsIGNoYW5uZWw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0yMjc1PWludCBhaXJvaGFfZ2V0X2ZlX3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyNzYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMjc3Olx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cdTAwM2Vwb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMjc4LVx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IGRldi1cdTAwM2VldGg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zMTY5PXN0YXRpYyB2b2lkIGFpcm9oYV9kaXNhYmxlX3Fvc19mb3JfZ2RtMzQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxNzEtXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMxNzI6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVx1MDAzZXBvcnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxNzMtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzE5Nj1zdGF0aWMgaW50IGFpcm9oYV9lbmFibGVfcW9zX2Zvcl9nZG0zNChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzE5OS1cdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqd2FuX2RldiwgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMyMDA6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVx1MDAzZXBvcnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMyMDEtXHRzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoID0gZGV2LVx1MDAzZWV0aDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTMzNTI9c3RhdGljIGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyBhaXJvaGFfZXRodG9vbF9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMzU5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMzYwOnN0YXRpYyBpbnQgYWlyb2hhX21ldGFkYXRhX2RzdF9hbGxvYyhzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMzYxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMzNzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMzNzk6c3RhdGljIHZvaWQgYWlyb2hhX21ldGFkYXRhX2RzdF9mcmVlKHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMzODAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzM5MT1ib29sIGFpcm9oYV9pc192YWxpZF9nZG1fZGV2KHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMzk2LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShldGgtXHUwMDNlcG9ydHMpOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMzk3Olx0XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZXRoLVx1MDAzZXBvcnRzW2ldO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMzk4LVx0XHRpbnQgajtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTM0MTI9c3RhdGljIGludCBhaXJvaGFfYWxsb2NfZ2RtX2RldmljZShzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNDEzOlx0XHRcdFx0ICAgc3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzQxNC1cdFx0XHRcdCAgIGludCBuYnEsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zNDgwPXN0YXRpYyBpbnQgYWlyb2hhX2FsbG9jX2dkbV9wb3J0KHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNDgzLVx0Y29uc3QgX19iZTMyICppZF9wdHIgPSBvZl9nZXRfcHJvcGVydHkobnAsIFwmIzM0O3JlZ1wmIzM0OywgTlVMTCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM0ODQ6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNDg1LVx0c3RydWN0IGRldmljZV9ub2RlICpub2RlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzU2MD1zdGF0aWMgaW50IGFpcm9oYV9yZWdpc3Rlcl9nZG1fZGV2aWNlcyhzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzU2NC1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoZXRoLVx1MDAzZXBvcnRzKTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzU2NTpcdFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGV0aC1cdTAwM2Vwb3J0c1tpXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzU2Ni1cdFx0aW50IGo7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zNTg5PXN0YXRpYyBpbnQgYWlyb2hhX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNjkyLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShldGgtXHUwMDNlcG9ydHMpOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNjkzOlx0XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZXRoLVx1MDAzZXBvcnRzW2ldO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNjk0LVx0XHRpbnQgajtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTM3MjE9c3RhdGljIHZvaWQgYWlyb2hhX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzczMS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoZXRoLVx1MDAzZXBvcnRzKTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzczMjpcdFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGV0aC1cdTAwM2Vwb3J0c1tpXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzczMy1cdFx0aW50IGo7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zNzU3PXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZW43NTgxX3hzaV9yc3RzX25hbWVzW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNzY1OnN0YXRpYyBpbnQgYWlyb2hhX2VuNzU4MV9nZXRfc3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCwgaW50IG5icSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzc2Ni17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzg4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNzg5OnN0YXRpYyB1MzIgYWlyb2hhX2VuNzU4MV9nZXRfdmlwX3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCwgaW50IG5icSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzc5MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zODQ0PXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYW43NTgzX3hzaV9yc3RzX25hbWVzW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zODUwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozODUxOnN0YXRpYyBpbnQgYWlyb2hhX2FuNzU4M19nZXRfc3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCwgaW50IG5icSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzg1Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zODcyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozODczOnN0YXRpYyB1MzIgYWlyb2hhX2FuNzU4M19nZXRfdmlwX3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCwgaW50IG5icSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzg3NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaD01Nzg9c3RydWN0IGFpcm9oYV9nZG1fZGV2IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNTc5LVx0c3RydWN0IGFpcm9oYV9xZG1hIF9fcmN1ICpxZG1hO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo1ODA6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC01ODEtXHRzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNTk5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo2MDA6c3RydWN0IGFpcm9oYV9nZG1fcG9ydCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTYwMS1cdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2c1tBSVJPSEFfTUFYX05VTV9HRE1fREVWU107XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaD02MzI9c3RydWN0IGFpcm9oYV9ldGhfc29jX2RhdGEge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNjM3LVx0c3RydWN0IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NjM4Olx0XHRpbnQgKCpnZXRfc3BvcnQpKHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQsIGludCBuYnEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo2Mzk6XHRcdHUzMiAoKmdldF92aXBfcG9ydCkoc3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCwgaW50IG5icSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTY0MC1cdFx0aW50ICgqZ2V0X2Rldl9mcm9tX3Nwb3J0KShzdHJ1Y3QgYWlyb2hhX3FkbWFfZGVzYyAqZGVzYyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oPTY0NT1zdHJ1Y3QgYWlyb2hhX2V0aCB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC02NjMtXHRzdHJ1Y3QgYWlyb2hhX3FkbWEgcWRtYVtBSVJPSEFfTUFYX05VTV9RRE1BXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NjY0Olx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydHNbQUlST0hBX01BWF9OVU1fR0RNX1BPUlRTXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNjY1LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0xMDM9dm9pZCBhaXJvaGFfcHBlX3NldF94bWl0X2ZyYW1lX3NpemUoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTEwNC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjEwNTpcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXHUwMDNlcG9ydDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTA2LVx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IGRldi1cdTAwM2VldGg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0xMzA9c3RhdGljIHZvaWQgYWlyb2hhX3BwZV9od19pbml0KHN0cnVjdCBhaXJvaGFfcHBlICpwcGUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xOTktXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKGV0aC1cdTAwM2Vwb3J0cyk7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjIwMDpcdFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGV0aC1cdTAwM2Vwb3J0c1tpXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMjAxLVx0XHRpbnQgajtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jPTMzMz1zdGF0aWMgaW50IGFpcm9oYV9wcGVfZm9lX2VudHJ5X3ByZXBhcmUoc3RydWN0IGFpcm9oYV9ldGggKmV0aCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTM3MC1cdFx0XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjM3MTpcdFx0XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0zNzItXHRcdFx0dTggcHNlX3BvcnQsIGNoYW5uZWw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0xNTEyPXZvaWQgYWlyb2hhX3BwZV9pbml0X3VwZF9tZW0oc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYsIGNvbnN0IHU4ICphZGRyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xNTEzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MTUxNDpcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXHUwMDNlcG9ydDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTUxNS1cdHN0cnVjdCBhaXJvaGFfZXRoICpldGggPSBkZXYtXHUwMDNlZXRoO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAwOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDg2MzEKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiA1MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLgoKKipFeGFtaW5pbmcgdGhlIEFpcm9oYSBFdGhlcm5ldCBEcml2ZXIgSGVhZGVyKioKClJpZ2h0LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgYXJjaGl0ZWN0dXJlIG9mIHRoaXMgQWlyb2hhIEV0aGVybmV0IGRyaXZlci4gTGV0JiMzOTtzIHN0YXJ0IGJ5IGxvb2tpbmcgZGlyZWN0bHkgYXQgdGhlIGhlYWRlciBmaWxlLCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaGAuIEkmIzM5O20gc3BlY2lmaWNhbGx5IGludGVyZXN0ZWQgaW4gdW5kZXJzdGFuZGluZyB0aGUgZGV2aWNlIHN0cnVjdHVyZSBhbmQgdGhlIG51bWJlciBvZiB0cmFuc21pdCByaW5ncy4gSSYjMzk7bGwgbmVlZCB0byBsb2NhdGUgYHN0cnVjdCBhaXJvaGFfZ2RtX2RldmAg4oCTIHRoYXQgbGlrZWx5IGhvbGRzIHRoZSBjb3JlIGRldmljZSBpbmZvcm1hdGlvbiBhbmQgaGFuZGxlcyB0aGUgbG93LWxldmVsIGludGVyYWN0aW9ucy4gQW5kIHRoZW4sIGVxdWFsbHkgaW1wb3J0YW50LCBJJiMzOTttIGdvaW5nIHRvIGxvb2sgZm9yIGBBSVJPSEFfTlVNX05FVERFVl9UWF9SSU5HU2AuIFRoaXMgY29uc3RhbnQgd2lsbCB0ZWxsIG1lIGhvdyBtYW55IHRyYW5zbWl0IHF1ZXVlcyBhcmUgc3VwcG9ydGVkLiBLbm93aW5nIHRoaXMgaW5mb3JtYXRpb24gaXMgY3JpdGljYWwgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGNvbmN1cnJlbmN5IGFuZCByZXNvdXJjZSBhbGxvY2F0aW9uIHdpdGhpbiB0aGUgZHJpdmVyLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGdyZWF0IG92ZXJ2aWV3IG9mIHRoZSBkcml2ZXImIzM5O3Mgc2V0dXAgYW5kIGNhcGFiaWxpdGllcy4gTGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIGluIHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAwOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N0cnVjdCBhaXJvaGFfZ2RtX2RldiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz02OD1zdGF0aWMgdm9pZCBhaXJvaGFfcWRtYV9pcnFfZGlzYWJsZShzdHJ1Y3QgYWlyb2hhX2lycV9iYW5rICppcnFfYmFuayxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTczLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo3NDpzdGF0aWMgaW50IGFpcm9oYV9zZXRfbWFjYWRkcihzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiwgY29uc3QgdTggKmFkZHIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTc1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTkyLVx0XHRmb3IgKGogPSAwOyBqIFx1MDAzYyBBUlJBWV9TSVpFKHBvcnQtXHUwMDNlZGV2cyk7IGomIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjkzOlx0XHRcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqaXRlcl9kZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTk0LVx0XHRcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xNDY9c3RhdGljIHZvaWQgYWlyb2hhX3NldF9nZG1fcG9ydF9md2RfY2ZnKHN0cnVjdCBhaXJvaGFfZXRoICpldGgsIHUzMiBhZGRyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTU4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNTk6c3RhdGljIGludCBhaXJvaGFfc2V0X3ZpcF9mb3JfZ2RtX3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYsIGJvb2wgZW5hYmxlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNjAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9NTkyPXN0YXRpYyBpbnQgYWlyb2hhX3FkbWFfZmlsbF9yeF9xdWV1ZShzdHJ1Y3QgYWlyb2hhX3F1ZXVlICpxKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo2Mzg6c3RhdGljIHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTYzOS1haXJvaGFfcWRtYV9nZXRfZ2RtX2RldihzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLCBzdHJ1Y3QgYWlyb2hhX3FkbWFfZGVzYyAqZGVzYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTY2MD1zdGF0aWMgaW50IGFpcm9oYV9xZG1hX3J4X3Byb2Nlc3Moc3RydWN0IGFpcm9oYV9xdWV1ZSAqcSwgaW50IGJ1ZGdldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTY3MS1cdFx0dTMyIGhhc2gsIHJlYXNvbiwgbXNnMSwgZGVzY19jdHJsO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo2NzI6XHRcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NzMtXHRcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz05MTY9c3RhdGljIHZvaWQgYWlyb2hhX3FkbWFfd2FrZV9uZXRkZXZfdHhxcyhzdHJ1Y3QgYWlyb2hhX3F1ZXVlICpxKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtOTI5LVx0XHRmb3IgKGQgPSAwOyBkIFx1MDAzYyBBUlJBWV9TSVpFKHBvcnQtXHUwMDNlZGV2cyk7IGQmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjkzMDpcdFx0XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IHBvcnQtXHUwMDNlZGV2c1tkXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtOTMxLVx0XHRcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz05NzE9c3RhdGljIGludCBhaXJvaGFfcWRtYV90eF9uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTA0MC1cdFx0aWYgKHNrYikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxMDQxOlx0XHRcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYoc2tiLVx1MDAzZWRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTEwNDItXHRcdFx0dTE2IHFpZHggPSBza2JfZ2V0X3F1ZXVlX21hcHBpbmcoc2tiKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTE2ODA9c3RhdGljIHZvaWQgYWlyb2hhX3FkbWFfc3RvcF9uYXBpKHN0cnVjdCBhaXJvaGFfcWRtYSAqcWRtYSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE2OTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE2OTU6c3RhdGljIHZvaWQgYWlyb2hhX3VwZGF0ZV9od19zdGF0cyhzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTY5Ni17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xODk5PXN0YXRpYyB2b2lkIGFpcm9oYV9kZXZfc2V0X3htaXRfZnJhbWVfc2l6ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTAwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTkwMTpcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTkwMi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTE5MTA9c3RhdGljIGludCBhaXJvaGFfZGV2X29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTkxMS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE5MTI6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5MTMtXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVx1MDAzZXBvcnQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xOTQzPXN0YXRpYyBpbnQgYWlyb2hhX2Rldl9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5NDQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxOTQ1Olx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTQ2LVx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cdTAwM2Vwb3J0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MTk2MD1zdGF0aWMgaW50IGFpcm9oYV9kZXZfc2V0X21hY2FkZHIoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgdm9pZCAqcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTk2MS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE5NjI6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5NjMtXHRzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIgPSBwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTk3OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTk3OTpzdGF0aWMgaW50IGFpcm9oYV9lbmFibGVfZ2RtMl9sb29wYmFjayhzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTk4MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMDM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMDM3OnN0YXRpYyBpbnQgYWlyb2hhX2Rpc2FibGVfZ2RtMl9sb29wYmFjayhzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjAzOC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMDgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMDg0OnN0YXRpYyBzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMDg1LWFpcm9oYV9nZXRfd2FuX2dkbV9kZXYoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwOTYtXHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIEFSUkFZX1NJWkUocG9ydC1cdTAwM2VkZXZzKTsgaiYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjA5NzpcdFx0XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IHBvcnQtXHUwMDNlZGV2c1tqXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjA5OC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxMDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIxMDc6c3RhdGljIHZvaWQgYWlyb2hhX2Rldl9zZXRfcWRtYShzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjEwOC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0yMTQzPXN0YXRpYyBpbnQgYWlyb2hhX2Rldl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxNDQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMTQ1Olx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMTQ2LVx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cdTAwM2Vwb3J0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjE3Nz1zdGF0aWMgdm9pZCBhaXJvaGFfZGV2X2dldF9zdGF0czY0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMTc5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjE4MDpcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjE4MS1cdHVuc2lnbmVkIGludCBzdGFydDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTIxOTk9c3RhdGljIGludCBhaXJvaGFfZGV2X2NoYW5nZV9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgaW50IG10dSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjIwMC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIyMDE6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMDItXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVx1MDAzZXBvcnQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0yMjExPXN0YXRpYyB1MTYgYWlyb2hhX2Rldl9zZWxlY3RfcXVldWUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMTQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMjE1Olx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMjE2LVx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cdTAwM2Vwb3J0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjIzMT1zdGF0aWMgdTMyIGFpcm9oYV9nZXRfZHNhX3RhZyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjI3NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjI3NTppbnQgYWlyb2hhX2dldF9mZV9wb3J0KHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMjc2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTIyOTE9c3RhdGljIG5ldGRldl90eF90IGFpcm9oYV9kZXZfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjI5My17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIyOTQ6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyOTUtXHR1MzIgbnJfZnJhZ3MsIHRhZywgbXNnMCwgbXNnMSwgbGVuO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjQ0Mj1zdGF0aWMgdm9pZCBhaXJvaGFfZXRodG9vbF9nZXRfZHJ2aW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjQ0NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI0NDU6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI0NDYtXHRzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoID0gZGV2LVx1MDAzZWV0aDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTI0NTI9c3RhdGljIHZvaWQgYWlyb2hhX2V0aHRvb2xfZ2V0X21hY19zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjQ1NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI0NTU6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI0NTYtXHR1bnNpZ25lZCBpbnQgc3RhcnQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0yNDgzPWFpcm9oYV9ldGh0b29sX2dldF9ybW9uX3N0YXRzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNDg2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjQ4NzpcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjQ4OC1cdHN0cnVjdCBhaXJvaGFfaHdfc3RhdHMgKmh3X3N0YXRzID0gXHUwMDI2ZGV2LVx1MDAzZXN0YXRzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjUxMj1zdGF0aWMgaW50IGFpcm9oYV9xZG1hX3NldF9jaGFuX3R4X3NjaGVkKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNTE1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjUxNjpcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjUxNy1cdHN0cnVjdCBhaXJvaGFfcWRtYSAqcWRtYTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTI2MDI9c3RhdGljIGludCBhaXJvaGFfcWRtYV9nZXRfdHhfZXRzX3N0YXRzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBjaGFubmVsLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjYwNC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI2MDU6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI2MDYtXHR1MzIgY3B1X3R4X3BhY2tldHMsIGZ3ZF90eF9wYWNrZXRzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9Mjg3MT1zdGF0aWMgaW50IGFpcm9oYV9xZG1hX3NldF90eF9yYXRlX2xpbWl0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yODc0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mjg3NTpcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjg3Ni1cdHN0cnVjdCBhaXJvaGFfcWRtYSAqcWRtYTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTI5MTc9c3RhdGljIGludCBhaXJvaGFfdGNfaHRiX2FsbG9jX2xlYWZfcXVldWUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5MjEtXHRpbnQgZXJyLCBudW1fdHhfcXVldWVzID0gQUlST0hBX05VTV9UWF9SSU5HICYjNDM7IGNoYW5uZWwgJiM0MzsgMTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjkyMjpcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjkyMy1cdHN0cnVjdCBhaXJvaGFfcWRtYSAqcWRtYTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5NTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI5NjA6c3RhdGljIGludCBhaXJvaGFfcWRtYV9zZXRfcnhfbWV0ZXIoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5NjEtXHRcdFx0XHQgICAgdTMyIHJhdGUsIHUzMiBidWNrZXRfc2l6ZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTMwMzg9c3RhdGljIGludCBhaXJvaGFfZGV2X3RjX21hdGNoYWxsKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMDQxLVx0ZW51bSB0cnRjbV91bml0X3R5cGUgdW5pdF90eXBlID0gVFJUQ01fQllURV9VTklUO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMDQyOlx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMDQzLVx0dTMyIHJhdGUgPSAwLCBidWNrZXRfc2l6ZSA9IDA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zMDc0PXN0YXRpYyBpbnQgYWlyb2hhX2Rldl9zZXR1cF90Y19ibG9ja19jYihlbnVtIHRjX3NldHVwX3R5cGUgdHlwZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMwNzctXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2ID0gY2JfcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzA3ODpcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzA3OS1cdHN0cnVjdCBhaXJvaGFfZXRoICpldGggPSBkZXYtXHUwMDNlZXRoO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzEzNT1zdGF0aWMgdm9pZCBhaXJvaGFfdGNfcmVtb3ZlX2h0Yl9xdWV1ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBpbnQgcXVldWUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxMzYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMTM3Olx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMTM4LVx0aW50IG51bV90eF9xdWV1ZXMgPSBBSVJPSEFfTlVNX1RYX1JJTkc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zMTUzPXN0YXRpYyBpbnQgYWlyb2hhX3RjX2h0Yl9kZWxldGVfbGVhZl9xdWV1ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzE1Ni1cdHUzMiBjaGFubmVsID0gVENfSF9NSU4ob3B0LVx1MDAzZWNsYXNzaWQpICUgQUlST0hBX05VTV9RT1NfQ0hBTk5FTFM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMxNTc6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxNTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zMTY5PXN0YXRpYyB2b2lkIGFpcm9oYV9kaXNhYmxlX3Fvc19mb3JfZ2RtMzQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzE3MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMxNzE6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxNzItXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVx1MDAzZXBvcnQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zMTk2PXN0YXRpYyBpbnQgYWlyb2hhX2VuYWJsZV9xb3NfZm9yX2dkbTM0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMTk4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzE5OTpcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqd2FuX2RldiwgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMyMDAtXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVx1MDAzZXBvcnQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zMjYxPXN0YXRpYyBpbnQgYWlyb2hhX3RjX2h0Yl9kZXN0cm95KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMyNjIte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMjYzOlx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMjY0LVx0aW50IHE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zMjc0PXN0YXRpYyBpbnQgYWlyb2hhX3RjX2dldF9odGJfZ2V0X2xlYWZfcXVldWUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMyNzctXHR1MzIgY2hhbm5lbCA9IFRDX0hfTUlOKG9wdC1cdTAwM2VjbGFzc2lkKSAlIEFJUk9IQV9OVU1fUU9TX0NIQU5ORUxTO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMjc4Olx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMjc5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzI5MD1zdGF0aWMgaW50IGFpcm9oYV90Y19zZXR1cF9xZGlzY19odGIoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMyOTQtXHRjYXNlIFRDX0hUQl9DUkVBVEU6IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzI5NTpcdFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMjk2LVx0XHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzM5MT1ib29sIGFpcm9oYV9pc192YWxpZF9nZG1fZGV2KHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMzOTI6XHRcdFx0ICAgICBzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzM5My17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zNDEyPXN0YXRpYyBpbnQgYWlyb2hhX2FsbG9jX2dkbV9kZXZpY2Uoc3RydWN0IGFpcm9oYV9ldGggKmV0aCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0MTYtXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNDE3Olx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0MTgtXHRpbnQgZXJyLCBpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzU2MD1zdGF0aWMgaW50IGFpcm9oYV9yZWdpc3Rlcl9nZG1fZGV2aWNlcyhzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzU3MS1cdFx0Zm9yIChqID0gMDsgaiBcdTAwM2MgQVJSQVlfU0laRShwb3J0LVx1MDAzZWRldnMpOyBqJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNTcyOlx0XHRcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gcG9ydC1cdTAwM2VkZXZzW2pdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNTczLVx0XHRcdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zNTg5PXN0YXRpYyBpbnQgYWlyb2hhX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNjk5LVx0XHRmb3IgKGogPSAwOyBqIFx1MDAzYyBBUlJBWV9TSVpFKHBvcnQtXHUwMDNlZGV2cyk7IGomIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM3MDA6XHRcdFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBwb3J0LVx1MDAzZWRldnNbal07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM3MDEtXHRcdFx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTM3MjE9c3RhdGljIHZvaWQgYWlyb2hhX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzczOC1cdFx0Zm9yIChqID0gMDsgaiBcdTAwM2MgQVJSQVlfU0laRShwb3J0LVx1MDAzZWRldnMpOyBqJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNzM5Olx0XHRcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gcG9ydC1cdTAwM2VkZXZzW2pdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzQwLVx0XHRcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaD01NzM9ZW51bSBhaXJvaGFfZGV2X2ZsYWdzIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTU3Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NTc4OnN0cnVjdCBhaXJvaGFfZ2RtX2RldiB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTU3OS1cdHN0cnVjdCBhaXJvaGFfcWRtYSBfX3JjdSAqcWRtYTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oPTYwMD1zdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NjAxOlx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXZzW0FJUk9IQV9NQVhfTlVNX0dETV9ERVZTXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNjAyLVx0aW50IGlkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg9Njk3PXN0YXRpYyBpbmxpbmUgdTE2IGFpcm9oYV9xZG1hX2dldF90eHEoc3RydWN0IGFpcm9oYV9xZG1hICpxZG1hLCB1MTYgcWlkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNzAxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo3MDI6c3RhdGljIGlubGluZSBib29sIGFpcm9oYV9pc19sYW5fZ2RtX2RldihzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNzAzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oPTcxMj1zdGF0aWMgaW5saW5lIGJvb2wgYWlyb2hhX2lzXzc1ODMoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTcxNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NzE3OmludCBhaXJvaGFfZ2V0X2ZlX3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC03MTgtYm9vbCBhaXJvaGFfaXNfdmFsaWRfZ2RtX2RldihzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo3MTk6XHRcdFx0ICAgICBzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTcyMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oPTcyMz1zdGF0aWMgaW5saW5lIHN0cnVjdCBhaXJvaGFfcWRtYSAqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oOjcyNDphaXJvaGFfcWRtYV9kZXJlZihzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNzI1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTczMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NzMxOnZvaWQgYWlyb2hhX3BwZV9zZXRfeG1pdF9mcmFtZV9zaXplKHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NzMyOnZvaWQgYWlyb2hhX3BwZV9zZXRfY3B1X3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYsIHU4IHBwZV9pZCwgdTggZnBvcnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC03MzMtYm9vbCBhaXJvaGFfcHBlX2lzX2VuYWJsZWQoc3RydWN0IGFpcm9oYV9ldGggKmV0aCwgaW50IGluZGV4KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oPTczOD12b2lkIGFpcm9oYV9wcGVfZGVpbml0KHN0cnVjdCBhaXJvaGFfZXRoICpldGgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo3Mzk6dm9pZCBhaXJvaGFfcHBlX2luaXRfdXBkX21lbShzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiwgY29uc3QgdTggKmFkZHIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC03NDAtdTMyIGFpcm9oYV9wcGVfZ2V0X3RvdGFsX251bV9lbnRyaWVzKHN0cnVjdCBhaXJvaGFfcHBlICpwcGUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM9ODQ9c3RhdGljIHUzMiBhaXJvaGFfcHBlX2dldF90aW1lc3RhbXAoc3RydWN0IGFpcm9oYV9wcGUgKnBwZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTg5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzo5MDp2b2lkIGFpcm9oYV9wcGVfc2V0X2NwdV9wb3J0KHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2LCB1OCBwcGVfaWQsIHU4IGZwb3J0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy05MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xMDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjEwMzp2b2lkIGFpcm9oYV9wcGVfc2V0X3htaXRfZnJhbWVfc2l6ZShzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTA0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTExMC1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUocG9ydC1cdTAwM2VkZXZzKTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MTExOlx0XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmQgPSBwb3J0LVx1MDAzZWRldnNbaV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTExMi1cdFx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jPTEzMD1zdGF0aWMgdm9pZCBhaXJvaGFfcHBlX2h3X2luaXQoc3RydWN0IGFpcm9oYV9wcGUgKnBwZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTIwNi1cdFx0Zm9yIChqID0gMDsgaiBcdTAwM2MgQVJSQVlfU0laRShwb3J0LVx1MDAzZWRldnMpOyBqJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzoyMDc6XHRcdFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBwb3J0LVx1MDAzZWRldnNbal07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTIwOC1cdFx0XHRpbnQgcHBlX2lkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM9MzMzPXN0YXRpYyBpbnQgYWlyb2hhX3BwZV9mb2VfZW50cnlfcHJlcGFyZShzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMzY5LVx0XHR9IGVsc2Uge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzozNzA6XHRcdFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0zNzEtXHRcdFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jPTE0OTM9dm9pZCBhaXJvaGFfcHBlX2NoZWNrX3NrYihzdHJ1Y3QgYWlyb2hhX3BwZV9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTE1MTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjE1MTI6dm9pZCBhaXJvaGFfcHBlX2luaXRfdXBkX21lbShzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiwgY29uc3QgdTggKmFkZHIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTE1MTMte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAwOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3NDUwCgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYW5hbHlzaXMgb2YgdGhlIHByb3ZpZGVkIHRleHQsIHJlbmRlcmVkIGFzIGEgZmlyc3QtcGVyc29uIGV4cGVydCBzdW1tYXJ5OgoKKipEaXZpbmcgaW50byB0aGUgQWlyb2hhIEV0aGVybmV0IERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGZvY3VzaW5nIGluIG9uIHRoZSBBaXJvaGEgRXRoZXJuZXQgZHJpdmVyLCBzcGVjaWZpY2FsbHkgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmhgLiBMZXQmIzM5O3MgYXNzdW1lIHRoaXMgaXMgYSByZWxldmFudCBjb2RlYmFzZSBmb3IgdGhlIGhhcmR3YXJlIEkmIzM5O20gY3VycmVudGx5IGFzc2Vzc2luZy4gTXkgZ29hbCBoZXJlIGlzIHRvIHplcm8gaW4gb24gYSBwYXJ0aWN1bGFyIGFzcGVjdCwgcHJvYmFibHkgYSBmdW5jdGlvbiBkZWZpbml0aW9uLCBzdHJ1Y3R1cmUsIG9yIG1hY3JvLiBUaGUgZGlyZWN0aW9uIHByb3ZpZGVkIHN1Z2dlc3RzIHRoYXQgdGhlIHRhcmdldCBpcyBhcm91bmQgbGluZSA1Nzggb2YgdGhhdCBoZWFkZXIgZmlsZS4gVGhhdCYjMzk7cyB1c3VhbGx5IHRoZSBzaWduIG9mIGEgc3BlY2lmaWMgc3RydWN0dXJlIGRlY2xhcmF0aW9uLCBhbiBlbnVtZXJhdGlvbiwgb3IgYSBmdW5jdGlvbiBwcm90b3R5cGUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQmIzM5O3MgdGhlcmUgYW5kIHdoYXQgaXQgZG9lcy4gSSYjMzk7bSBnb2luZyB0byBzdGFydCBieSBwdWxsaW5nIHVwIHRoYXQgZmlsZSBhbmQgdGhhdCBsaW5lIGRpcmVjdGx5IHRvIGZpbmQgd2hhdCYjMzk7cyB3aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMDoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA1NjAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDU2MDpcdFx0c3RydWN0IGFpcm9oYV9ldGggKmV0aDtcbiA1NjE6XHRcdHZvaWQgX19pb21lbSAqcmVncztcbiA1NjI6XHRcbiA1NjM6XHRcdHN0cnVjdCBhaXJvaGFfaXJxX2JhbmsgaXJxX2JhbmtzW0FJUk9IQV9NQVhfTlVNX0lSUV9CQU5LU107XG4gNTY0Olx0XG4gNTY1Olx0XHRzdHJ1Y3QgYWlyb2hhX3R4X2lycV9xdWV1ZSBxX3R4X2lycVtBSVJPSEFfTlVNX1RYX0lSUV07XG4gNTY2Olx0XG4gNTY3Olx0XHRzdHJ1Y3QgYWlyb2hhX3F1ZXVlIHFfdHhbQUlST0hBX05VTV9UWF9SSU5HXTtcbiA1Njg6XHRcdHN0cnVjdCBhaXJvaGFfcXVldWUgcV9yeFtBSVJPSEFfTlVNX1JYX1JJTkddO1xuIDU2OTpcdFxuIDU3MDpcdFx0REVDTEFSRV9CSVRNQVAocW9zX2NoYW5uZWxfbWFwLCBBSVJPSEFfTlVNX1FPU19DSEFOTkVMUyk7XG4gNTcxOlx0fTtcbiA1NzI6XHRcbiA1NzM6XHRlbnVtIGFpcm9oYV9kZXZfZmxhZ3Mge1xuIDU3NDpcdFx0QUlST0hBX0RFVl9GX1dBTixcbiA1NzU6XHRcdEFJUk9IQV9ERVZfRl9UWF9RT1MsXG4gNTc2Olx0fTtcbiA1Nzc6XHRcbiA1Nzg6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYge1xuIDU3OTpcdFx0c3RydWN0IGFpcm9oYV9xZG1hIF9fcmN1ICpxZG1hO1xuIDU4MDpcdFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydDtcbiA1ODE6XHRcdHN0cnVjdCBhaXJvaGFfZXRoICpldGg7XG4gNTgyOlx0XG4gNTgzOlx0XHRERUNMQVJFX0JJVE1BUChxb3Nfc3FfYm1hcCwgQUlST0hBX05VTV9RT1NfQ0hBTk5FTFMpO1xuIDU4NDpcdFx0c3RydWN0IHtcbiA1ODU6XHRcdFx0dTMyIGNwdV90eF9wYWNrZXRzO1xuIDU4NjpcdFx0XHR1MzIgZndkX3R4X3BhY2tldHM7XG4gNTg3Olx0XHR9IHFvc19zdGF0c1tBSVJPSEFfTlVNX1FPU19DSEFOTkVMU107XG4gNTg4Olx0XG4gNTg5Olx0XHR1bnNpZ25lZCBsb25nIGZsYWdzO1xuIDU5MDpcdFx0aW50IG5icTtcbiA1OTE6XHRcbiA1OTI6XHRcdHN0cnVjdCBhaXJvaGFfaHdfc3RhdHMgc3RhdHM7XG4gNTkzOlx0XG4gNTk0Olx0XHQvKiBTZXJpYWxpemUgbmV0ZGV2X3R4X2NvbXBsZXRlZF9xdWV1ZSgpIGNhbGxzIHBlciBUWCBxdWV1ZSBkdXJpbmdcbiA1OTU6XHRcdCAqIFFETUEgbWlncmF0aW9uLlxuIDU5NjpcdFx0ICovXG4gNTk3Olx0XHRzcGlubG9ja190IHR4cV9sb2NrW0FJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTXTtcbiA1OTg6XHR9O1xuIDU5OTpcdFxuIDYwMDpcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQge1xuIDYwMTpcdFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXZzW0FJUk9IQV9NQVhfTlVNX0dETV9ERVZTXTtcbiA2MDI6XHRcdGludCBpZDtcbiA2MDM6XHRcdGludCB1c2VycztcbiA2MDQ6XHRcbiA2MDU6XHRcdC8qIHByb3RlY3QgY29uY3VycmVudCBod19zdGF0cyBhY2Nlc3NlcyAqL1xuIDYwNjpcdFx0c3BpbmxvY2tfdCBzdGF0c19sb2NrO1xuIDYwNzpcdFxuIDYwODpcdFx0c3RydWN0IG1ldGFkYXRhX2RzdCAqZHNhX21ldGFbQUlST0hBX01BWF9EU0FfUE9SVFNdO1xuIDYwOTpcdH07XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAwOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4NDg5CgkJCQkJCQlvdXRwdXQ6IDgyCgkJCQkJCQl0aG91Z2h0czogNTczCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIENvc21ldGljIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFRoZSBwYXRjaCBpbiBgYWlyb2hhX2FsbG9jX2dkbV9kZXZpY2VgIGlzIGNoYW5naW5nIGhvdyB3ZSBkZXRlcm1pbmUgdGhlIGxvb3AmIzM5O3MgdXBwZXIgYm91bmQgaW4gdGhlIGluaXRpYWxpemF0aW9uIG9mIGBkZXYtJmd0O3R4cV9sb2NrYC4gIEluaXRpYWxseSwgd2UgdXNlZCBgQVJSQVlfU0laRShkZXYtJmd0O3R4cV9sb2NrKWAuICBOb3csIGl0JiMzOTtzIGJlaW5nIHJlcGxhY2VkIHdpdGggYEFJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgdGhpcyBpcyBzaW1wbHkgYSBjb3NtZXRpYyBjaGFuZ2UsIGEgcmVmYWN0b3JpbmcgdG8gaW1wcm92ZSByZWFkYWJpbGl0eSwgcGVyaGFwcy4KCkxldCYjMzk7cyBjb25maXJtLiBgZGV2LSZndDt0eHFfbG9ja2AgaXMgKmRlY2xhcmVkKiBhcyBhbiBhcnJheSBvZiBzcGlubG9ja3M6IGBzcGlubG9ja190IHR4cV9sb2NrW0FJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTXTtgLiBUaGlzIG1lYW5zIGBBUlJBWV9TSVpFKGRldi0mZ3Q7dHhxX2xvY2spYCAqZXhhY3RseSogZXZhbHVhdGVzIHRvIHRoZSBzYW1lIHZhbHVlIGFzIGBBSVJPSEFfTlVNX05FVERFVl9UWF9SSU5HU2AuIFRoZXJlJiMzOTtzIG5vIHBvc3NpYmxlIGNoYW5jZSB0aGlzIGludHJvZHVjZXMgYSBidWcgb3IgYWx0ZXJzIGV4ZWN1dGlvbiBpbiBhbnkgd2F5LiBJIHF1aWNrbHkgY2hlY2tlZCB0byBtYWtlIHN1cmUgdGhlcmUgYXJlIG5vIG90aGVyIGNoYW5nZXMgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGNvZGUuIENvbmZpcm1lZC4KClRoZXJlZm9yZSwgdGhpcyBjaGFuZ2UgaXMgcHVyZWx5IHZpc3VhbCBhbmQgaGFzIG5vIGZ1bmN0aW9uYWwgaW1wYWN0LiBUaGlzIGNoYW5nZSBpcyBub3Qgd29ydGggZnV6emluZy4gVGhlIGBXb3J0aEZ1enppbmdgIHByb3BlcnR5IHNob3VsZCBiZSBgZmFsc2VgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMDoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlcGxhY2VzIEFSUkFZX1NJWkUoZGV2LVx1MDAzZXR4cV9sb2NrKSB3aXRoIHRoZSBtYWNybyBBSVJPSEFfTlVNX05FVERFVl9UWF9SSU5HUyB1c2VkIHRvIGRlZmluZSB0aGUgYXJyYXkgc2l6ZS4gVGhpcyBpcyBhIHB1cmVseSBjb3NtZXRpYyBjaGFuZ2UgdGhhdCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZXBsYWNlcyBBUlJBWV9TSVpFKGRldi1cdTAwM2V0eHFfbG9jaykgd2l0aCB0aGUgbWFjcm8gQUlST0hBX05VTV9ORVRERVZfVFhfUklOR1MgdXNlZCB0byBkZWZpbmUgdGhlIGFycmF5IHNpemUuIFRoaXMgaXMgYSBwdXJlbHkgY29zbWV0aWMgY2hhbmdlIHRoYXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAwOjExOjIwLjY0NDcxODYzOVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5NzQxMTY5OTA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZXBsYWNlcyBBUlJBWV9TSVpFKGRldi1cXHUwMDNldHhxX2xvY2spIHdpdGggdGhlIG1hY3JvIEFJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTIHVzZWQgdG8gZGVmaW5lIHRoZSBhcnJheSBzaXplLiBUaGlzIGlzIGEgcHVyZWx5IGNvc21ldGljIGNoYW5nZSB0aGF0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAwOjExOjIwLjY0NDcyNTY0OVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDM0NjA1OTM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNjg2NmMzZTljYjY3ZGMwY2M0ODVhZTlkOGRmNDVhYWYzZGVmNmI1N1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEF1ZyAyIDAwOjExOjE5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXFxuaW5kZXggZGJhN2M1MmMwODk2OS4uNjQ2MTllOWE3MDRkZCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguY1xcbkBAIC0zNDY3LDcgKzM0NjcsNyBAQCBzdGF0aWMgaW50IGFpcm9oYV9hbGxvY19nZG1fZGV2aWNlKHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXFxuIFxcdG5ldGRldi1cXHUwMDNlZGV2Lm9mX25vZGUgPSBvZl9ub2RlX2dldChucCk7XFxuIFxcdGRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuIFxcdHU2NF9zdGF0c19pbml0KFxcdTAwMjZkZXYtXFx1MDAzZXN0YXRzLnN5bmNwKTtcXG4tXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUoZGV2LVxcdTAwM2V0eHFfbG9jayk7IGkrKylcXG4rXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTOyBpKyspXFxuIFxcdFxcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZkZXYtXFx1MDAzZXR4cV9sb2NrW2ldKTtcXG4gXFx0ZGV2LVxcdTAwM2Vwb3J0ID0gcG9ydDtcXG4gXFx0ZGV2LVxcdTAwM2VldGggPSBldGg7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAwOjExOjIxLjA3OTg5ODI4M1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjE5MzA1OTg0NDcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZXBsYWNlcyBBUlJBWV9TSVpFKGRldi1cXHUwMDNldHhxX2xvY2spIHdpdGggdGhlIG1hY3JvIEFJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTIHVzZWQgdG8gZGVmaW5lIHRoZSBhcnJheSBzaXplLiBUaGlzIGlzIGEgcHVyZWx5IGNvc21ldGljIGNoYW5nZSB0aGF0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDY4NjZjM2U5Y2I2N2RjMGNjNDg1YWU5ZDhkZjQ1YWFmM2RlZjZiNTdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEF1ZyAyIDAwOjExOjE5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmNcbmluZGV4IGRiYTdjNTJjMDg5NjkuLjY0NjE5ZTlhNzA0ZGQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXG5AQCAtMzQ2Nyw3ICszNDY3LDcgQEAgc3RhdGljIGludCBhaXJvaGFfYWxsb2NfZ2RtX2RldmljZShzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLFxuIFx0bmV0ZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQobnApO1xuIFx0ZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbiBcdHU2NF9zdGF0c19pbml0KFx1MDAyNmRldi1cdTAwM2VzdGF0cy5zeW5jcCk7XG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKGRldi1cdTAwM2V0eHFfbG9jayk7IGkrKylcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTOyBpKyspXG4gXHRcdHNwaW5fbG9ja19pbml0KFx1MDAyNmRldi1cdTAwM2V0eHFfbG9ja1tpXSk7XG4gXHRkZXYtXHUwMDNlcG9ydCA9IHBvcnQ7XG4gXHRkZXYtXHUwMDNlZXRoID0gZXRoO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDA6MTE6MjEuMDc5ODk5NDUzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI5NDA0MDUxNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIHRoZSBleHBlcnQ6XG5cbioqSW52ZXN0aWdhdGluZyBhIE5ldHdvcmsgRHJpdmVyIFBhdGNoKipcblxuQWxyaWdodCwgbGV0J3MgZGlzc2VjdCB0aGlzIHBhdGNoLiBJdCBsb29rcyBsaWtlIHdlJ3JlIHplcm9pbmcgaW4gb24gYSBjaGFuZ2UgaW4gdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jYCBmaWxlLiBTcGVjaWZpY2FsbHksIHRoZSBtb2RpZmljYXRpb24gY2F1Z2h0IG15IGV5ZTogdGhlIGBBUlJBWV9TSVpFKGRldi1cdTAwM2V0eHFfbG9jaylgIGlzIGJlaW5nIHN3YXBwZWQgb3V0IGZvciBgQUlST0hBX05VTV9ORVRERVZfVFhfUklOR1NgIHdpdGhpbiB0aGUgYGFpcm9oYV9hbGxvY19nZG1fZGV2aWNlYCBmdW5jdGlvbi4gSSBpbW1lZGlhdGVseSB3YW50IHRvIHVuZGVyc3RhbmQgdGhlIHJlYXNvbmluZyBiZWhpbmQgdGhpcywgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCdzIGdvaW5nIG9uIHdpdGhpbiB0aGVzZSByb3V0aW5lcy4gRmlyc3QsIEkgbmVlZCB0byBjaGVjayB0aGUgZnVuY3Rpb24sIGBhaXJvaGFfYWxsb2NfZ2RtX2RldmljZWAgaXRzZWxmLiBJIG5lZWQgdG8gc2VlIGhvdyB0aGUgY2hhbmdlIGltcGFjdHMgdGhlIGBkZXYtXHUwMDNldHhxX2xvY2tgIHZhcmlhYmxlLCBpdHMgaW5pdGlhbGl6YXRpb24sIGFuZCB1c2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMzMsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4OSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAwOjExOjI0LjM3Mzk0Mjc2N1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MDc3NzYyOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0eHFfbG9ja1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9OTcxPXN0YXRpYyBpbnQgYWlyb2hhX3FkbWFfdHhfbmFwaV9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTA0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjEwNDc6XFx0XFx0XFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZkZXYtXFx1MDAzZXR4cV9sb2NrW3FpZHhdKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTEwNDgtXFx0XFx0XFx0bmV0ZGV2X3R4X2NvbXBsZXRlZF9xdWV1ZSh0eHEsIDEsIHNrYi1cXHUwMDNlbGVuKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjEwNDk6XFx0XFx0XFx0c3Bpbl91bmxvY2tfYmgoXFx1MDAyNmRldi1cXHUwMDNldHhxX2xvY2tbcWlkeF0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTA1MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzQxMj1zdGF0aWMgaW50IGFpcm9oYV9hbGxvY19nZG1fZGV2aWNlKHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0NzAtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTOyBpKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNDcxOlxcdFxcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZkZXYtXFx1MDAzZXR4cV9sb2NrW2ldKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0NzItXFx0ZGV2LVxcdTAwM2Vwb3J0ID0gcG9ydDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDA6MTE6MjQuNDY0NzI0NjA2WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjczNjEyMDI3MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIGlmIEkgd2VyZSB0aGlua2luZyB0aGVzZSB0aG91Z2h0czpcblxuKipBbmFseXppbmcgdGhlIEFpcm9oYSBHRE0gUG9ydCBTdHJ1Y3R1cmUqKlxuXG5Pa2F5LCBsZXQncyBkaXZlIGluLiBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIEFpcm9oYSBFdGhlcm5ldCBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgR0RNIHBvcnQgc3RydWN0dXJlLiBJIGJlbGlldmUgSSdsbCBmaW5kIHRoZSBkZWZpbml0aW9uIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oYCwgb3Igc29tZXRoaW5nIHZlcnkgc2ltaWxhciB3aXRoaW4gdGhlIGRyaXZlcidzIHNvdXJjZSB0cmVlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIGBhaXJvaGFfZ2RtX3BvcnRgIHN0cnVjdCBpcyBkZWZpbmVkOyBJJ2xsIHN0YXJ0IGJ5IGxvb2tpbmcgYXQgdGhpcy4gVGltZSB0byBnZXQgbXkgYmVhcmluZ3MgYW5kIHNlZSB3aGF0IHdlJ3JlIHdvcmtpbmcgd2l0aCBoZXJlLiBJJ20gYWZ0ZXIgdGhlIGRldGFpbHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4NTMsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMDoxMToyNy4yMDA4NDcyMjdaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzQyMzQ1NzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RydWN0IGFpcm9oYV9nZG1fcG9ydFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9NzQ9c3RhdGljIGludCBhaXJvaGFfc2V0X21hY2FkZHIoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYsIGNvbnN0IHU4ICphZGRyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy04NS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShldGgtXFx1MDAzZXBvcnRzKTsgaSsrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo4NjpcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZXRoLVxcdTAwM2Vwb3J0c1tpXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTg3LVxcdFxcdGludCBqO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xNTk9c3RhdGljIGludCBhaXJvaGFfc2V0X3ZpcF9mb3JfZ2RtX3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYsIGJvb2wgZW5hYmxlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTYwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE2MTpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVxcdTAwM2Vwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTYyLVxcdHN0cnVjdCBhaXJvaGFfZXRoICpldGggPSBkZXYtXFx1MDAzZWV0aDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9NjM5PWFpcm9oYV9xZG1hX2dldF9nZG1fZGV2KHN0cnVjdCBhaXJvaGFfZXRoICpldGgsIHN0cnVjdCBhaXJvaGFfcWRtYV9kZXNjICpkZXNjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjQwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjY0MTpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjQyLVxcdHUxNiBwLCBkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz02NjA9c3RhdGljIGludCBhaXJvaGFfcWRtYV9yeF9wcm9jZXNzKHN0cnVjdCBhaXJvaGFfcXVldWUgKnEsIGludCBidWRnZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTcyOC1cXHRcXHRpZiAobmV0ZGV2X3VzZXNfZHNhKG5ldGRldikpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjcyOTpcXHRcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVxcdTAwM2Vwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNzMwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz05MTY9c3RhdGljIHZvaWQgYWlyb2hhX3FkbWFfd2FrZV9uZXRkZXZfdHhxcyhzdHJ1Y3QgYWlyb2hhX3F1ZXVlICpxKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy05MjItXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUoZXRoLVxcdTAwM2Vwb3J0cyk7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6OTIzOlxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBldGgtXFx1MDAzZXBvcnRzW2ldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtOTI0LVxcdFxcdGludCBkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xNjk1PXN0YXRpYyB2b2lkIGFpcm9oYV91cGRhdGVfaHdfc3RhdHMoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNjk2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE2OTc6XFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cXHUwMDNlcG9ydDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE2OTgtXFx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IGRldi1cXHUwMDNlZXRoO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xOTEwPXN0YXRpYyBpbnQgYWlyb2hhX2Rldl9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5MTItXFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTkxMzpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVxcdTAwM2Vwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTkxNC1cXHR1MzIgcHNlX3BvcnQgPSBGRV9QU0VfUE9SVF9QUEUxO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xOTQzPXN0YXRpYyBpbnQgYWlyb2hhX2Rldl9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5NDUtXFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTk0NjpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVxcdTAwM2Vwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTk0Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MTk3OT1zdGF0aWMgaW50IGFpcm9oYV9lbmFibGVfZ2RtMl9sb29wYmFjayhzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5ODAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTk4MTpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVxcdTAwM2Vwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTk4Mi1cXHRzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoID0gZGV2LVxcdTAwM2VldGg7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTIwMzc9c3RhdGljIGludCBhaXJvaGFfZGlzYWJsZV9nZG0yX2xvb3BiYWNrKHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjAzOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMDM5OlxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXFx1MDAzZXBvcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMDQwLVxcdHN0cnVjdCBhaXJvaGFfZXRoICpldGggPSBkZXYtXFx1MDAzZWV0aDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjA4NT1haXJvaGFfZ2V0X3dhbl9nZG1fZGV2KHN0cnVjdCBhaXJvaGFfZXRoICpldGgpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwODktXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUoZXRoLVxcdTAwM2Vwb3J0cyk7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjA5MDpcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZXRoLVxcdTAwM2Vwb3J0c1tpXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwOTEtXFx0XFx0aW50IGo7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTIxNDM9c3RhdGljIGludCBhaXJvaGFfZGV2X2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjE0NS1cXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMTQ2OlxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXFx1MDAzZXBvcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMTQ3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0yMTk5PXN0YXRpYyBpbnQgYWlyb2hhX2Rldl9jaGFuZ2VfbXR1KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBtdHUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMDEtXFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjIwMjpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVxcdTAwM2Vwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjIwMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjIxMT1zdGF0aWMgdTE2IGFpcm9oYV9kZXZfc2VsZWN0X3F1ZXVlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMTUtXFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjIxNjpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVxcdTAwM2Vwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjIxNy1cXHRpbnQgcXVldWUsIGNoYW5uZWw7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTIyNzU9aW50IGFpcm9oYV9nZXRfZmVfcG9ydChzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyNzYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjI3NzpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVxcdTAwM2Vwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjI3OC1cXHRzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoID0gZGV2LVxcdTAwM2VldGg7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTMxNjk9c3RhdGljIHZvaWQgYWlyb2hhX2Rpc2FibGVfcW9zX2Zvcl9nZG0zNChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMTcxLVxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMxNzI6XFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cXHUwMDNlcG9ydDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxNzMtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzE5Nj1zdGF0aWMgaW50IGFpcm9oYV9lbmFibGVfcW9zX2Zvcl9nZG0zNChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMTk5LVxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqd2FuX2RldiwgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMjAwOlxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXFx1MDAzZXBvcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMjAxLVxcdHN0cnVjdCBhaXJvaGFfZXRoICpldGggPSBkZXYtXFx1MDAzZWV0aDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzM1Mj1zdGF0aWMgY29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzIGFpcm9oYV9ldGh0b29sX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzM1OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMzNjA6c3RhdGljIGludCBhaXJvaGFfbWV0YWRhdGFfZHN0X2FsbG9jKHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMzYxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzM3OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMzNzk6c3RhdGljIHZvaWQgYWlyb2hhX21ldGFkYXRhX2RzdF9mcmVlKHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMzgwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzM5MT1ib29sIGFpcm9oYV9pc192YWxpZF9nZG1fZGV2KHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMzOTYtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUoZXRoLVxcdTAwM2Vwb3J0cyk7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzM5NzpcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZXRoLVxcdTAwM2Vwb3J0c1tpXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMzOTgtXFx0XFx0aW50IGo7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTM0MTI9c3RhdGljIGludCBhaXJvaGFfYWxsb2NfZ2RtX2RldmljZShzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzQxMzpcXHRcXHRcXHRcXHQgICBzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzQxNC1cXHRcXHRcXHRcXHQgICBpbnQgbmJxLCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zNDgwPXN0YXRpYyBpbnQgYWlyb2hhX2FsbG9jX2dkbV9wb3J0KHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0ODMtXFx0Y29uc3QgX19iZTMyICppZF9wdHIgPSBvZl9nZXRfcHJvcGVydHkobnAsIFxcXCJyZWdcXFwiLCBOVUxMKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM0ODQ6XFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0ODUtXFx0c3RydWN0IGRldmljZV9ub2RlICpub2RlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zNTYwPXN0YXRpYyBpbnQgYWlyb2hhX3JlZ2lzdGVyX2dkbV9kZXZpY2VzKHN0cnVjdCBhaXJvaGFfZXRoICpldGgpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM1NjQtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUoZXRoLVxcdTAwM2Vwb3J0cyk7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzU2NTpcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZXRoLVxcdTAwM2Vwb3J0c1tpXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM1NjYtXFx0XFx0aW50IGo7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTM1ODk9c3RhdGljIGludCBhaXJvaGFfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzY5Mi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShldGgtXFx1MDAzZXBvcnRzKTsgaSsrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNjkzOlxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBldGgtXFx1MDAzZXBvcnRzW2ldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzY5NC1cXHRcXHRpbnQgajtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzcyMT1zdGF0aWMgdm9pZCBhaXJvaGFfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM3MzEtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUoZXRoLVxcdTAwM2Vwb3J0cyk7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzczMjpcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZXRoLVxcdTAwM2Vwb3J0c1tpXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM3MzMtXFx0XFx0aW50IGo7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTM3NTc9c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBlbjc1ODFfeHNpX3JzdHNfbmFtZXNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzc2NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM3NjU6c3RhdGljIGludCBhaXJvaGFfZW43NTgxX2dldF9zcG9ydChzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0LCBpbnQgbmJxKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzc2Ni17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM3ODgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNzg5OnN0YXRpYyB1MzIgYWlyb2hhX2VuNzU4MV9nZXRfdmlwX3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCwgaW50IG5icSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM3OTAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zODQ0PXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYW43NTgzX3hzaV9yc3RzX25hbWVzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM4NTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozODUxOnN0YXRpYyBpbnQgYWlyb2hhX2FuNzU4M19nZXRfc3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCwgaW50IG5icSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM4NTIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zODcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mzg3MzpzdGF0aWMgdTMyIGFpcm9oYV9hbjc1ODNfZ2V0X3ZpcF9wb3J0KHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQsIGludCBuYnEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zODc0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg9NTc4PXN0cnVjdCBhaXJvaGFfZ2RtX2RldiB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC01NzktXFx0c3RydWN0IGFpcm9oYV9xZG1hIF9fcmN1ICpxZG1hO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NTgwOlxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC01ODEtXFx0c3RydWN0IGFpcm9oYV9ldGggKmV0aDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNTk5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NjAwOnN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNjAxLVxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2c1tBSVJPSEFfTUFYX05VTV9HRE1fREVWU107XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oPTYzMj1zdHJ1Y3QgYWlyb2hhX2V0aF9zb2NfZGF0YSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTYzNy1cXHRzdHJ1Y3Qge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NjM4OlxcdFxcdGludCAoKmdldF9zcG9ydCkoc3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCwgaW50IG5icSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo2Mzk6XFx0XFx0dTMyICgqZ2V0X3ZpcF9wb3J0KShzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0LCBpbnQgbmJxKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTY0MC1cXHRcXHRpbnQgKCpnZXRfZGV2X2Zyb21fc3BvcnQpKHN0cnVjdCBhaXJvaGFfcWRtYV9kZXNjICpkZXNjLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaD02NDU9c3RydWN0IGFpcm9oYV9ldGgge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC02NjMtXFx0c3RydWN0IGFpcm9oYV9xZG1hIHFkbWFbQUlST0hBX01BWF9OVU1fUURNQV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo2NjQ6XFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydHNbQUlST0hBX01BWF9OVU1fR0RNX1BPUlRTXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTY2NS19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0xMDM9dm9pZCBhaXJvaGFfcHBlX3NldF94bWl0X2ZyYW1lX3NpemUoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xMDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MTA1OlxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXFx1MDAzZXBvcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xMDYtXFx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IGRldi1cXHUwMDNlZXRoO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0xMzA9c3RhdGljIHZvaWQgYWlyb2hhX3BwZV9od19pbml0KHN0cnVjdCBhaXJvaGFfcHBlICpwcGUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTE5OS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShldGgtXFx1MDAzZXBvcnRzKTsgaSsrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzoyMDA6XFx0XFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGV0aC1cXHUwMDNlcG9ydHNbaV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0yMDEtXFx0XFx0aW50IGo7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jPTMzMz1zdGF0aWMgaW50IGFpcm9oYV9wcGVfZm9lX2VudHJ5X3ByZXBhcmUoc3RydWN0IGFpcm9oYV9ldGggKmV0aCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMzcwLVxcdFxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjM3MTpcXHRcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMzcyLVxcdFxcdFxcdHU4IHBzZV9wb3J0LCBjaGFubmVsO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0xNTEyPXZvaWQgYWlyb2hhX3BwZV9pbml0X3VwZF9tZW0oc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYsIGNvbnN0IHU4ICphZGRyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTUxMy17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzoxNTE0OlxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXFx1MDAzZXBvcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xNTE1LVxcdHN0cnVjdCBhaXJvaGFfZXRoICpldGggPSBkZXYtXFx1MDAzZWV0aDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDA6MTE6MjcuMjc1MDg2NDU2WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzIxNDAxNTExNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuXG5cbioqRXhhbWluaW5nIHRoZSBBaXJvaGEgRXRoZXJuZXQgRHJpdmVyIEhlYWRlcioqXG5cblJpZ2h0LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgYXJjaGl0ZWN0dXJlIG9mIHRoaXMgQWlyb2hhIEV0aGVybmV0IGRyaXZlci4gTGV0J3Mgc3RhcnQgYnkgbG9va2luZyBkaXJlY3RseSBhdCB0aGUgaGVhZGVyIGZpbGUsIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oYC4gSSdtIHNwZWNpZmljYWxseSBpbnRlcmVzdGVkIGluIHVuZGVyc3RhbmRpbmcgdGhlIGRldmljZSBzdHJ1Y3R1cmUgYW5kIHRoZSBudW1iZXIgb2YgdHJhbnNtaXQgcmluZ3MuIEknbGwgbmVlZCB0byBsb2NhdGUgYHN0cnVjdCBhaXJvaGFfZ2RtX2RldmAg4oCTIHRoYXQgbGlrZWx5IGhvbGRzIHRoZSBjb3JlIGRldmljZSBpbmZvcm1hdGlvbiBhbmQgaGFuZGxlcyB0aGUgbG93LWxldmVsIGludGVyYWN0aW9ucy4gQW5kIHRoZW4sIGVxdWFsbHkgaW1wb3J0YW50LCBJJ20gZ29pbmcgdG8gbG9vayBmb3IgYEFJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTYC4gVGhpcyBjb25zdGFudCB3aWxsIHRlbGwgbWUgaG93IG1hbnkgdHJhbnNtaXQgcXVldWVzIGFyZSBzdXBwb3J0ZWQuIEtub3dpbmcgdGhpcyBpbmZvcm1hdGlvbiBpcyBjcml0aWNhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgY29uY3VycmVuY3kgYW5kIHJlc291cmNlIGFsbG9jYXRpb24gd2l0aGluIHRoZSBkcml2ZXIuIFRoaXMgd2lsbCBnaXZlIG1lIGEgZ3JlYXQgb3ZlcnZpZXcgb2YgdGhlIGRyaXZlcidzIHNldHVwIGFuZCBjYXBhYmlsaXRpZXMuIExldCdzIHNlZSB3aGF0J3MgaW4gdGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjg2MzEsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMDoxMTozMC40ODkxMDYxMTFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzIxODc3MDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RydWN0IGFpcm9oYV9nZG1fZGV2XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz02OD1zdGF0aWMgdm9pZCBhaXJvaGFfcWRtYV9pcnFfZGlzYWJsZShzdHJ1Y3QgYWlyb2hhX2lycV9iYW5rICppcnFfYmFuayxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo3NDpzdGF0aWMgaW50IGFpcm9oYV9zZXRfbWFjYWRkcihzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiwgY29uc3QgdTggKmFkZHIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy03NS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTkyLVxcdFxcdGZvciAoaiA9IDA7IGogXFx1MDAzYyBBUlJBWV9TSVpFKHBvcnQtXFx1MDAzZWRldnMpOyBqKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjkzOlxcdFxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqaXRlcl9kZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy05NC1cXHRcXHRcXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xNDY9c3RhdGljIHZvaWQgYWlyb2hhX3NldF9nZG1fcG9ydF9md2RfY2ZnKHN0cnVjdCBhaXJvaGFfZXRoICpldGgsIHUzMiBhZGRyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNTk6c3RhdGljIGludCBhaXJvaGFfc2V0X3ZpcF9mb3JfZ2RtX3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYsIGJvb2wgZW5hYmxlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTYwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9NTkyPXN0YXRpYyBpbnQgYWlyb2hhX3FkbWFfZmlsbF9yeF9xdWV1ZShzdHJ1Y3QgYWlyb2hhX3F1ZXVlICpxKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02MzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo2Mzg6c3RhdGljIHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02MzktYWlyb2hhX3FkbWFfZ2V0X2dkbV9kZXYoc3RydWN0IGFpcm9oYV9ldGggKmV0aCwgc3RydWN0IGFpcm9oYV9xZG1hX2Rlc2MgKmRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTY2MD1zdGF0aWMgaW50IGFpcm9oYV9xZG1hX3J4X3Byb2Nlc3Moc3RydWN0IGFpcm9oYV9xdWV1ZSAqcSwgaW50IGJ1ZGdldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjcxLVxcdFxcdHUzMiBoYXNoLCByZWFzb24sIG1zZzEsIGRlc2NfY3RybDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjY3MjpcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTY3My1cXHRcXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz05MTY9c3RhdGljIHZvaWQgYWlyb2hhX3FkbWFfd2FrZV9uZXRkZXZfdHhxcyhzdHJ1Y3QgYWlyb2hhX3F1ZXVlICpxKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy05MjktXFx0XFx0Zm9yIChkID0gMDsgZCBcXHUwMDNjIEFSUkFZX1NJWkUocG9ydC1cXHUwMDNlZGV2cyk7IGQrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6OTMwOlxcdFxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gcG9ydC1cXHUwMDNlZGV2c1tkXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTkzMS1cXHRcXHRcXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz05NzE9c3RhdGljIGludCBhaXJvaGFfcWRtYV90eF9uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xMDQwLVxcdFxcdGlmIChza2IpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjEwNDE6XFx0XFx0XFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihza2ItXFx1MDAzZWRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xMDQyLVxcdFxcdFxcdHUxNiBxaWR4ID0gc2tiX2dldF9xdWV1ZV9tYXBwaW5nKHNrYik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTE2ODA9c3RhdGljIHZvaWQgYWlyb2hhX3FkbWFfc3RvcF9uYXBpKHN0cnVjdCBhaXJvaGFfcWRtYSAqcWRtYSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTY5NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE2OTU6c3RhdGljIHZvaWQgYWlyb2hhX3VwZGF0ZV9od19zdGF0cyhzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE2OTYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xODk5PXN0YXRpYyB2b2lkIGFpcm9oYV9kZXZfc2V0X3htaXRfZnJhbWVfc2l6ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTkwMC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxOTAxOlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5MDItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTE5MTA9c3RhdGljIGludCBhaXJvaGFfZGV2X29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5MTEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTkxMjpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTEzLVxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXFx1MDAzZXBvcnQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTE5NDM9c3RhdGljIGludCBhaXJvaGFfZGV2X3N0b3Aoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5NDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTk0NTpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTQ2LVxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXFx1MDAzZXBvcnQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTE5NjA9c3RhdGljIGludCBhaXJvaGFfZGV2X3NldF9tYWNhZGRyKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHZvaWQgKnApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTYxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE5NjI6XFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTk2My1cXHRzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIgPSBwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTc4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTk3OTpzdGF0aWMgaW50IGFpcm9oYV9lbmFibGVfZ2RtMl9sb29wYmFjayhzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5ODAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMDM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjAzNzpzdGF0aWMgaW50IGFpcm9oYV9kaXNhYmxlX2dkbTJfbG9vcGJhY2soc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMDM4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjA4My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIwODQ6c3RhdGljIHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMDg1LWFpcm9oYV9nZXRfd2FuX2dkbV9kZXYoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjA5Ni1cXHRcXHRmb3IgKGogPSAwOyBqIFxcdTAwM2MgQVJSQVlfU0laRShwb3J0LVxcdTAwM2VkZXZzKTsgaisrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMDk3OlxcdFxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gcG9ydC1cXHUwMDNlZGV2c1tqXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwOTgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxMDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMTA3OnN0YXRpYyB2b2lkIGFpcm9oYV9kZXZfc2V0X3FkbWEoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMTA4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjE0Mz1zdGF0aWMgaW50IGFpcm9oYV9kZXZfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjE0NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMTQ1OlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxNDYtXFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cXHUwMDNlcG9ydDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjE3Nz1zdGF0aWMgdm9pZCBhaXJvaGFfZGV2X2dldF9zdGF0czY0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxNzkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjE4MDpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMTgxLVxcdHVuc2lnbmVkIGludCBzdGFydDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjE5OT1zdGF0aWMgaW50IGFpcm9oYV9kZXZfY2hhbmdlX210dShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBpbnQgbXR1KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjIwMC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMjAxOlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMDItXFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cXHUwMDNlcG9ydDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjIxMT1zdGF0aWMgdTE2IGFpcm9oYV9kZXZfc2VsZWN0X3F1ZXVlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMTQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjIxNTpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMjE2LVxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXFx1MDAzZXBvcnQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTIyMzE9c3RhdGljIHUzMiBhaXJvaGFfZ2V0X2RzYV90YWcoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjI3NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIyNzU6aW50IGFpcm9oYV9nZXRfZmVfcG9ydChzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyNzYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0yMjkxPXN0YXRpYyBuZXRkZXZfdHhfdCBhaXJvaGFfZGV2X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjI5My17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMjk0OlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyOTUtXFx0dTMyIG5yX2ZyYWdzLCB0YWcsIG1zZzAsIG1zZzEsIGxlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjQ0Mj1zdGF0aWMgdm9pZCBhaXJvaGFfZXRodG9vbF9nZXRfZHJ2aW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNDQ0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI0NDU6XFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjQ0Ni1cXHRzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoID0gZGV2LVxcdTAwM2VldGg7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTI0NTI9c3RhdGljIHZvaWQgYWlyb2hhX2V0aHRvb2xfZ2V0X21hY19zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNDU0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI0NTU6XFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjQ1Ni1cXHR1bnNpZ25lZCBpbnQgc3RhcnQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTI0ODM9YWlyb2hhX2V0aHRvb2xfZ2V0X3Jtb25fc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjQ4Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyNDg3OlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI0ODgtXFx0c3RydWN0IGFpcm9oYV9od19zdGF0cyAqaHdfc3RhdHMgPSBcXHUwMDI2ZGV2LVxcdTAwM2VzdGF0cztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjUxMj1zdGF0aWMgaW50IGFpcm9oYV9xZG1hX3NldF9jaGFuX3R4X3NjaGVkKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI1MTUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjUxNjpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNTE3LVxcdHN0cnVjdCBhaXJvaGFfcWRtYSAqcWRtYTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjYwMj1zdGF0aWMgaW50IGFpcm9oYV9xZG1hX2dldF90eF9ldHNfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgaW50IGNoYW5uZWwsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI2MDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjYwNTpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNjA2LVxcdHUzMiBjcHVfdHhfcGFja2V0cywgZndkX3R4X3BhY2tldHM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTI4NzE9c3RhdGljIGludCBhaXJvaGFfcWRtYV9zZXRfdHhfcmF0ZV9saW1pdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yODc0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI4NzU6XFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjg3Ni1cXHRzdHJ1Y3QgYWlyb2hhX3FkbWEgKnFkbWE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTI5MTc9c3RhdGljIGludCBhaXJvaGFfdGNfaHRiX2FsbG9jX2xlYWZfcXVldWUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjkyMS1cXHRpbnQgZXJyLCBudW1fdHhfcXVldWVzID0gQUlST0hBX05VTV9UWF9SSU5HICsgY2hhbm5lbCArIDE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyOTIyOlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5MjMtXFx0c3RydWN0IGFpcm9oYV9xZG1hICpxZG1hO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yOTU5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mjk2MDpzdGF0aWMgaW50IGFpcm9oYV9xZG1hX3NldF9yeF9tZXRlcihzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5NjEtXFx0XFx0XFx0XFx0ICAgIHUzMiByYXRlLCB1MzIgYnVja2V0X3NpemUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTMwMzg9c3RhdGljIGludCBhaXJvaGFfZGV2X3RjX21hdGNoYWxsKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMwNDEtXFx0ZW51bSB0cnRjbV91bml0X3R5cGUgdW5pdF90eXBlID0gVFJUQ01fQllURV9VTklUO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzA0MjpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMDQzLVxcdHUzMiByYXRlID0gMCwgYnVja2V0X3NpemUgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zMDc0PXN0YXRpYyBpbnQgYWlyb2hhX2Rldl9zZXR1cF90Y19ibG9ja19jYihlbnVtIHRjX3NldHVwX3R5cGUgdHlwZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzA3Ny1cXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2ID0gY2JfcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMwNzg6XFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzA3OS1cXHRzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoID0gZGV2LVxcdTAwM2VldGg7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTMxMzU9c3RhdGljIHZvaWQgYWlyb2hhX3RjX3JlbW92ZV9odGJfcXVldWUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgaW50IHF1ZXVlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzEzNi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMTM3OlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxMzgtXFx0aW50IG51bV90eF9xdWV1ZXMgPSBBSVJPSEFfTlVNX1RYX1JJTkc7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTMxNTM9c3RhdGljIGludCBhaXJvaGFfdGNfaHRiX2RlbGV0ZV9sZWFmX3F1ZXVlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxNTYtXFx0dTMyIGNoYW5uZWwgPSBUQ19IX01JTihvcHQtXFx1MDAzZWNsYXNzaWQpICUgQUlST0hBX05VTV9RT1NfQ0hBTk5FTFM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMTU3OlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxNTgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTMxNjk9c3RhdGljIHZvaWQgYWlyb2hhX2Rpc2FibGVfcW9zX2Zvcl9nZG0zNChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzE3MC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMTcxOlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxNzItXFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cXHUwMDNlcG9ydDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzE5Nj1zdGF0aWMgaW50IGFpcm9oYV9lbmFibGVfcW9zX2Zvcl9nZG0zNChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMTk4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMxOTk6XFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICp3YW5fZGV2LCAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMyMDAtXFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cXHUwMDNlcG9ydDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzI2MT1zdGF0aWMgaW50IGFpcm9oYV90Y19odGJfZGVzdHJveShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzI2Mi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMjYzOlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMyNjQtXFx0aW50IHE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTMyNzQ9c3RhdGljIGludCBhaXJvaGFfdGNfZ2V0X2h0Yl9nZXRfbGVhZl9xdWV1ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMjc3LVxcdHUzMiBjaGFubmVsID0gVENfSF9NSU4ob3B0LVxcdTAwM2VjbGFzc2lkKSAlIEFJUk9IQV9OVU1fUU9TX0NIQU5ORUxTO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzI3ODpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMjc5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zMjkwPXN0YXRpYyBpbnQgYWlyb2hhX3RjX3NldHVwX3FkaXNjX2h0YihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMjk0LVxcdGNhc2UgVENfSFRCX0NSRUFURToge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzI5NTpcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMjk2LVxcdFxcdGludCBlcnI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTMzOTE9Ym9vbCBhaXJvaGFfaXNfdmFsaWRfZ2RtX2RldihzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzM5MjpcXHRcXHRcXHQgICAgIHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzM5My17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTM0MTI9c3RhdGljIGludCBhaXJvaGFfYWxsb2NfZ2RtX2RldmljZShzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNDE2LVxcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNDE3OlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzQxOC1cXHRpbnQgZXJyLCBpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zNTYwPXN0YXRpYyBpbnQgYWlyb2hhX3JlZ2lzdGVyX2dkbV9kZXZpY2VzKHN0cnVjdCBhaXJvaGFfZXRoICpldGgpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM1NzEtXFx0XFx0Zm9yIChqID0gMDsgaiBcXHUwMDNjIEFSUkFZX1NJWkUocG9ydC1cXHUwMDNlZGV2cyk7IGorKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzU3MjpcXHRcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IHBvcnQtXFx1MDAzZWRldnNbal07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNTczLVxcdFxcdFxcdGludCBlcnI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTM1ODk9c3RhdGljIGludCBhaXJvaGFfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzY5OS1cXHRcXHRmb3IgKGogPSAwOyBqIFxcdTAwM2MgQVJSQVlfU0laRShwb3J0LVxcdTAwM2VkZXZzKTsgaisrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNzAwOlxcdFxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gcG9ydC1cXHUwMDNlZGV2c1tqXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM3MDEtXFx0XFx0XFx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzcyMT1zdGF0aWMgdm9pZCBhaXJvaGFfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM3MzgtXFx0XFx0Zm9yIChqID0gMDsgaiBcXHUwMDNjIEFSUkFZX1NJWkUocG9ydC1cXHUwMDNlZGV2cyk7IGorKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzczOTpcXHRcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IHBvcnQtXFx1MDAzZWRldnNbal07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzQwLVxcdFxcdFxcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oPTU3Mz1lbnVtIGFpcm9oYV9kZXZfZmxhZ3Mge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC01NzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo1Nzg6c3RydWN0IGFpcm9oYV9nZG1fZGV2IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTU3OS1cXHRzdHJ1Y3QgYWlyb2hhX3FkbWEgX19yY3UgKnFkbWE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oPTYwMD1zdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oOjYwMTpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldnNbQUlST0hBX01BWF9OVU1fR0RNX0RFVlNdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNjAyLVxcdGludCBpZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg9Njk3PXN0YXRpYyBpbmxpbmUgdTE2IGFpcm9oYV9xZG1hX2dldF90eHEoc3RydWN0IGFpcm9oYV9xZG1hICpxZG1hLCB1MTYgcWlkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC03MDEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo3MDI6c3RhdGljIGlubGluZSBib29sIGFpcm9oYV9pc19sYW5fZ2RtX2RldihzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTcwMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oPTcxMj1zdGF0aWMgaW5saW5lIGJvb2wgYWlyb2hhX2lzXzc1ODMoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNzE2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NzE3OmludCBhaXJvaGFfZ2V0X2ZlX3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNzE4LWJvb2wgYWlyb2hhX2lzX3ZhbGlkX2dkbV9kZXYoc3RydWN0IGFpcm9oYV9ldGggKmV0aCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oOjcxOTpcXHRcXHRcXHQgICAgIHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTcyMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg9NzIzPXN0YXRpYyBpbmxpbmUgc3RydWN0IGFpcm9oYV9xZG1hICpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oOjcyNDphaXJvaGFfcWRtYV9kZXJlZihzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTcyNS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTczMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oOjczMTp2b2lkIGFpcm9oYV9wcGVfc2V0X3htaXRfZnJhbWVfc2l6ZShzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo3MzI6dm9pZCBhaXJvaGFfcHBlX3NldF9jcHVfcG9ydChzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiwgdTggcHBlX2lkLCB1OCBmcG9ydCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC03MzMtYm9vbCBhaXJvaGFfcHBlX2lzX2VuYWJsZWQoc3RydWN0IGFpcm9oYV9ldGggKmV0aCwgaW50IGluZGV4KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg9NzM4PXZvaWQgYWlyb2hhX3BwZV9kZWluaXQoc3RydWN0IGFpcm9oYV9ldGggKmV0aCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo3Mzk6dm9pZCBhaXJvaGFfcHBlX2luaXRfdXBkX21lbShzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiwgY29uc3QgdTggKmFkZHIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNzQwLXUzMiBhaXJvaGFfcHBlX2dldF90b3RhbF9udW1fZW50cmllcyhzdHJ1Y3QgYWlyb2hhX3BwZSAqcHBlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM9ODQ9c3RhdGljIHUzMiBhaXJvaGFfcHBlX2dldF90aW1lc3RhbXAoc3RydWN0IGFpcm9oYV9wcGUgKnBwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzo5MDp2b2lkIGFpcm9oYV9wcGVfc2V0X2NwdV9wb3J0KHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2LCB1OCBwcGVfaWQsIHU4IGZwb3J0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtOTEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xMDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzoxMDM6dm9pZCBhaXJvaGFfcHBlX3NldF94bWl0X2ZyYW1lX3NpemUoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xMDQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xMTAtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUocG9ydC1cXHUwMDNlZGV2cyk7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MTExOlxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZCA9IHBvcnQtXFx1MDAzZWRldnNbaV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xMTItXFx0XFx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM9MTMwPXN0YXRpYyB2b2lkIGFpcm9oYV9wcGVfaHdfaW5pdChzdHJ1Y3QgYWlyb2hhX3BwZSAqcHBlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0yMDYtXFx0XFx0Zm9yIChqID0gMDsgaiBcXHUwMDNjIEFSUkFZX1NJWkUocG9ydC1cXHUwMDNlZGV2cyk7IGorKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MjA3OlxcdFxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gcG9ydC1cXHUwMDNlZGV2c1tqXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTIwOC1cXHRcXHRcXHRpbnQgcHBlX2lkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0zMzM9c3RhdGljIGludCBhaXJvaGFfcHBlX2ZvZV9lbnRyeV9wcmVwYXJlKHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTM2OS1cXHRcXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MzcwOlxcdFxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTM3MS1cXHRcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0xNDkzPXZvaWQgYWlyb2hhX3BwZV9jaGVja19za2Ioc3RydWN0IGFpcm9oYV9wcGVfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTE1MTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzoxNTEyOnZvaWQgYWlyb2hhX3BwZV9pbml0X3VwZF9tZW0oc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYsIGNvbnN0IHU4ICphZGRyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTUxMy17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAwOjExOjMwLjU2MTMwMTQyWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjk2NjEyOTU5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGFuYWx5c2lzIG9mIHRoZSBwcm92aWRlZCB0ZXh0LCByZW5kZXJlZCBhcyBhIGZpcnN0LXBlcnNvbiBleHBlcnQgc3VtbWFyeTpcblxuKipEaXZpbmcgaW50byB0aGUgQWlyb2hhIEV0aGVybmV0IERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBmb2N1c2luZyBpbiBvbiB0aGUgQWlyb2hhIEV0aGVybmV0IGRyaXZlciwgc3BlY2lmaWNhbGx5IGBkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oYC4gTGV0J3MgYXNzdW1lIHRoaXMgaXMgYSByZWxldmFudCBjb2RlYmFzZSBmb3IgdGhlIGhhcmR3YXJlIEknbSBjdXJyZW50bHkgYXNzZXNzaW5nLiBNeSBnb2FsIGhlcmUgaXMgdG8gemVybyBpbiBvbiBhIHBhcnRpY3VsYXIgYXNwZWN0LCBwcm9iYWJseSBhIGZ1bmN0aW9uIGRlZmluaXRpb24sIHN0cnVjdHVyZSwgb3IgbWFjcm8uIFRoZSBkaXJlY3Rpb24gcHJvdmlkZWQgc3VnZ2VzdHMgdGhhdCB0aGUgdGFyZ2V0IGlzIGFyb3VuZCBsaW5lIDU3OCBvZiB0aGF0IGhlYWRlciBmaWxlLiBUaGF0J3MgdXN1YWxseSB0aGUgc2lnbiBvZiBhIHNwZWNpZmljIHN0cnVjdHVyZSBkZWNsYXJhdGlvbiwgYW4gZW51bWVyYXRpb24sIG9yIGEgZnVuY3Rpb24gcHJvdG90eXBlLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0J3MgdGhlcmUgYW5kIHdoYXQgaXQgZG9lcy4gSSdtIGdvaW5nIHRvIHN0YXJ0IGJ5IHB1bGxpbmcgdXAgdGhhdCBmaWxlIGFuZCB0aGF0IGxpbmUgZGlyZWN0bHkgdG8gZmluZCB3aGF0J3Mgd2hhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTc0NTAsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMDoxMTozMy41Mjc0MzQ3MjlaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQzNDIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmhcIixcbiAgXCJGaXJzdExpbmVcIjogNTYwLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgNTYwOlxcdFxcdHN0cnVjdCBhaXJvaGFfZXRoICpldGg7XFxuIDU2MTpcXHRcXHR2b2lkIF9faW9tZW0gKnJlZ3M7XFxuIDU2MjpcXHRcXG4gNTYzOlxcdFxcdHN0cnVjdCBhaXJvaGFfaXJxX2JhbmsgaXJxX2JhbmtzW0FJUk9IQV9NQVhfTlVNX0lSUV9CQU5LU107XFxuIDU2NDpcXHRcXG4gNTY1OlxcdFxcdHN0cnVjdCBhaXJvaGFfdHhfaXJxX3F1ZXVlIHFfdHhfaXJxW0FJUk9IQV9OVU1fVFhfSVJRXTtcXG4gNTY2OlxcdFxcbiA1Njc6XFx0XFx0c3RydWN0IGFpcm9oYV9xdWV1ZSBxX3R4W0FJUk9IQV9OVU1fVFhfUklOR107XFxuIDU2ODpcXHRcXHRzdHJ1Y3QgYWlyb2hhX3F1ZXVlIHFfcnhbQUlST0hBX05VTV9SWF9SSU5HXTtcXG4gNTY5OlxcdFxcbiA1NzA6XFx0XFx0REVDTEFSRV9CSVRNQVAocW9zX2NoYW5uZWxfbWFwLCBBSVJPSEFfTlVNX1FPU19DSEFOTkVMUyk7XFxuIDU3MTpcXHR9O1xcbiA1NzI6XFx0XFxuIDU3MzpcXHRlbnVtIGFpcm9oYV9kZXZfZmxhZ3Mge1xcbiA1NzQ6XFx0XFx0QUlST0hBX0RFVl9GX1dBTixcXG4gNTc1OlxcdFxcdEFJUk9IQV9ERVZfRl9UWF9RT1MsXFxuIDU3NjpcXHR9O1xcbiA1Nzc6XFx0XFxuIDU3ODpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYge1xcbiA1Nzk6XFx0XFx0c3RydWN0IGFpcm9oYV9xZG1hIF9fcmN1ICpxZG1hO1xcbiA1ODA6XFx0XFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydDtcXG4gNTgxOlxcdFxcdHN0cnVjdCBhaXJvaGFfZXRoICpldGg7XFxuIDU4MjpcXHRcXG4gNTgzOlxcdFxcdERFQ0xBUkVfQklUTUFQKHFvc19zcV9ibWFwLCBBSVJPSEFfTlVNX1FPU19DSEFOTkVMUyk7XFxuIDU4NDpcXHRcXHRzdHJ1Y3Qge1xcbiA1ODU6XFx0XFx0XFx0dTMyIGNwdV90eF9wYWNrZXRzO1xcbiA1ODY6XFx0XFx0XFx0dTMyIGZ3ZF90eF9wYWNrZXRzO1xcbiA1ODc6XFx0XFx0fSBxb3Nfc3RhdHNbQUlST0hBX05VTV9RT1NfQ0hBTk5FTFNdO1xcbiA1ODg6XFx0XFxuIDU4OTpcXHRcXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xcbiA1OTA6XFx0XFx0aW50IG5icTtcXG4gNTkxOlxcdFxcbiA1OTI6XFx0XFx0c3RydWN0IGFpcm9oYV9od19zdGF0cyBzdGF0cztcXG4gNTkzOlxcdFxcbiA1OTQ6XFx0XFx0LyogU2VyaWFsaXplIG5ldGRldl90eF9jb21wbGV0ZWRfcXVldWUoKSBjYWxscyBwZXIgVFggcXVldWUgZHVyaW5nXFxuIDU5NTpcXHRcXHQgKiBRRE1BIG1pZ3JhdGlvbi5cXG4gNTk2OlxcdFxcdCAqL1xcbiA1OTc6XFx0XFx0c3BpbmxvY2tfdCB0eHFfbG9ja1tBSVJPSEFfTlVNX05FVERFVl9UWF9SSU5HU107XFxuIDU5ODpcXHR9O1xcbiA1OTk6XFx0XFxuIDYwMDpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0IHtcXG4gNjAxOlxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2c1tBSVJPSEFfTUFYX05VTV9HRE1fREVWU107XFxuIDYwMjpcXHRcXHRpbnQgaWQ7XFxuIDYwMzpcXHRcXHRpbnQgdXNlcnM7XFxuIDYwNDpcXHRcXG4gNjA1OlxcdFxcdC8qIHByb3RlY3QgY29uY3VycmVudCBod19zdGF0cyBhY2Nlc3NlcyAqL1xcbiA2MDY6XFx0XFx0c3BpbmxvY2tfdCBzdGF0c19sb2NrO1xcbiA2MDc6XFx0XFxuIDYwODpcXHRcXHRzdHJ1Y3QgbWV0YWRhdGFfZHN0ICpkc2FfbWV0YVtBSVJPSEFfTUFYX0RTQV9QT1JUU107XFxuIDYwOTpcXHR9O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMDoxMTozMy41Mjc1ODE2NTlaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njg1ODI3NzA1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBDb3NtZXRpYyBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gVGhlIHBhdGNoIGluIGBhaXJvaGFfYWxsb2NfZ2RtX2RldmljZWAgaXMgY2hhbmdpbmcgaG93IHdlIGRldGVybWluZSB0aGUgbG9vcCdzIHVwcGVyIGJvdW5kIGluIHRoZSBpbml0aWFsaXphdGlvbiBvZiBgZGV2LVx1MDAzZXR4cV9sb2NrYC4gIEluaXRpYWxseSwgd2UgdXNlZCBgQVJSQVlfU0laRShkZXYtXHUwMDNldHhxX2xvY2spYC4gIE5vdywgaXQncyBiZWluZyByZXBsYWNlZCB3aXRoIGBBSVJPSEFfTlVNX05FVERFVl9UWF9SSU5HU2AuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoaXMgaXMgc2ltcGx5IGEgY29zbWV0aWMgY2hhbmdlLCBhIHJlZmFjdG9yaW5nIHRvIGltcHJvdmUgcmVhZGFiaWxpdHksIHBlcmhhcHMuXG5cbkxldCdzIGNvbmZpcm0uIGBkZXYtXHUwMDNldHhxX2xvY2tgIGlzICpkZWNsYXJlZCogYXMgYW4gYXJyYXkgb2Ygc3BpbmxvY2tzOiBgc3BpbmxvY2tfdCB0eHFfbG9ja1tBSVJPSEFfTlVNX05FVERFVl9UWF9SSU5HU107YC4gVGhpcyBtZWFucyBgQVJSQVlfU0laRShkZXYtXHUwMDNldHhxX2xvY2spYCAqZXhhY3RseSogZXZhbHVhdGVzIHRvIHRoZSBzYW1lIHZhbHVlIGFzIGBBSVJPSEFfTlVNX05FVERFVl9UWF9SSU5HU2AuIFRoZXJlJ3Mgbm8gcG9zc2libGUgY2hhbmNlIHRoaXMgaW50cm9kdWNlcyBhIGJ1ZyBvciBhbHRlcnMgZXhlY3V0aW9uIGluIGFueSB3YXkuIEkgcXVpY2tseSBjaGVja2VkIHRvIG1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gb3RoZXIgY2hhbmdlcyBpbiB0aGUgY29udGV4dCBvZiB0aGUgY29kZS4gQ29uZmlybWVkLlxuXG5UaGVyZWZvcmUsIHRoaXMgY2hhbmdlIGlzIHB1cmVseSB2aXN1YWwgYW5kIGhhcyBubyBmdW5jdGlvbmFsIGltcGFjdC4gVGhpcyBjaGFuZ2UgaXMgbm90IHdvcnRoIGZ1enppbmcuIFRoZSBgV29ydGhGdXp6aW5nYCBwcm9wZXJ0eSBzaG91bGQgYmUgYGZhbHNlYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg0ODksIk91dHB1dFRva2VucyI6ODIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NzMsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMDoxMTo0MC4zODU4NjE0ODNaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDE5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZXBsYWNlcyBBUlJBWV9TSVpFKGRldi1cXHUwMDNldHhxX2xvY2spIHdpdGggdGhlIG1hY3JvIEFJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTIHVzZWQgdG8gZGVmaW5lIHRoZSBhcnJheSBzaXplLiBUaGlzIGlzIGEgcHVyZWx5IGNvc21ldGljIGNoYW5nZSB0aGF0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlcGxhY2VzIEFSUkFZX1NJWkUoZGV2LVxcdTAwM2V0eHFfbG9jaykgd2l0aCB0aGUgbWFjcm8gQUlST0hBX05VTV9ORVRERVZfVFhfUklOR1MgdXNlZCB0byBkZWZpbmUgdGhlIGFycmF5IHNpemUuIFRoaXMgaXMgYSBwdXJlbHkgY29zbWV0aWMgY2hhbmdlIHRoYXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow6kqrc[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-02 00:09:47 +0000 UTC FinishedAt: 2026-08-02 00:11:42 +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+CgkJCTx0ZD4yMDI2LzA4LzAyIDAwOjExPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlcGxhY2VzIEFSUkFZX1NJWkUoZGV2LVx1MDAzZXR4cV9sb2NrKSB3aXRoIHRoZSBtYWNybyBBSVJPSEFfTlVNX05FVERFVl9UWF9SSU5HUyB1c2VkIHRvIGRlZmluZSB0aGUgYXJyYXkgc2l6ZS4gVGhpcyBpcyBhIHB1cmVseSBjb3NtZXRpYyBjaGFuZ2UgdGhhdCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAwOjExPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNjg2NmMzZTljYjY3ZGMwY2M0ODVhZTlkOGRmNDVhYWYzZGVmNmI1N1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gQXVnIDIgMDA6MTE6MTkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmNcbmluZGV4IGRiYTdjNTJjMDg5NjkuLjY0NjE5ZTlhNzA0ZGQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXG5AQCAtMzQ2Nyw3ICYjNDM7MzQ2Nyw3IEBAIHN0YXRpYyBpbnQgYWlyb2hhX2FsbG9jX2dkbV9kZXZpY2Uoc3RydWN0IGFpcm9oYV9ldGggKmV0aCxcbiBcdG5ldGRldi1cdTAwM2VkZXYub2Zfbm9kZSA9IG9mX25vZGVfZ2V0KG5wKTtcbiBcdGRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG4gXHR1NjRfc3RhdHNfaW5pdChcdTAwMjZkZXYtXHUwMDNlc3RhdHMuc3luY3ApO1xuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShkZXYtXHUwMDNldHhxX2xvY2spOyBpJiM0MzsmIzQzOylcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBSVJPSEFfTlVNX05FVERFVl9UWF9SSU5HUzsgaSYjNDM7JiM0MzspXG4gXHRcdHNwaW5fbG9ja19pbml0KFx1MDAyNmRldi1cdTAwM2V0eHFfbG9ja1tpXSk7XG4gXHRkZXYtXHUwMDNlcG9ydCA9IHBvcnQ7XG4gXHRkZXYtXHUwMDNlZXRoID0gZXRoO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAwOjExPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZXBsYWNlcyBBUlJBWV9TSVpFKGRldi1cdTAwM2V0eHFfbG9jaykgd2l0aCB0aGUgbWFjcm8gQUlST0hBX05VTV9ORVRERVZfVFhfUklOR1MgdXNlZCB0byBkZWZpbmUgdGhlIGFycmF5IHNpemUuIFRoaXMgaXMgYSBwdXJlbHkgY29zbWV0aWMgY2hhbmdlIHRoYXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDY4NjZjM2U5Y2I2N2RjMGNjNDg1YWU5ZDhkZjQ1YWFmM2RlZjZiNTcKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU3VuIEF1ZyAyIDAwOjExOjE5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMKaW5kZXggZGJhN2M1MmMwODk2OS4uNjQ2MTllOWE3MDRkZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jCkBAIC0zNDY3LDcgJiM0MzszNDY3LDcgQEAgc3RhdGljIGludCBhaXJvaGFfYWxsb2NfZ2RtX2RldmljZShzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLAogCW5ldGRldi0mZ3Q7ZGV2Lm9mX25vZGUgPSBvZl9ub2RlX2dldChucCk7CiAJZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTsKIAl1NjRfc3RhdHNfaW5pdCgmYW1wO2Rldi0mZ3Q7c3RhdHMuc3luY3ApOwotCWZvciAoaSA9IDA7IGkgJmx0OyBBUlJBWV9TSVpFKGRldi0mZ3Q7dHhxX2xvY2spOyBpJiM0MzsmIzQzOykKJiM0MzsJZm9yIChpID0gMDsgaSAmbHQ7IEFJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTOyBpJiM0MzsmIzQzOykKIAkJc3Bpbl9sb2NrX2luaXQoJmFtcDtkZXYtJmd0O3R4cV9sb2NrW2ldKTsKIAlkZXYtJmd0O3BvcnQgPSBwb3J0OwogCWRldi0mZ3Q7ZXRoID0gZXRoOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMDoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTMzCgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogODkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhlIGV4cGVydDoKCioqSW52ZXN0aWdhdGluZyBhIE5ldHdvcmsgRHJpdmVyIFBhdGNoKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXNzZWN0IHRoaXMgcGF0Y2guIEl0IGxvb2tzIGxpa2Ugd2UmIzM5O3JlIHplcm9pbmcgaW4gb24gYSBjaGFuZ2UgaW4gdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jYCBmaWxlLiBTcGVjaWZpY2FsbHksIHRoZSBtb2RpZmljYXRpb24gY2F1Z2h0IG15IGV5ZTogdGhlIGBBUlJBWV9TSVpFKGRldi0mZ3Q7dHhxX2xvY2spYCBpcyBiZWluZyBzd2FwcGVkIG91dCBmb3IgYEFJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTYCB3aXRoaW4gdGhlIGBhaXJvaGFfYWxsb2NfZ2RtX2RldmljZWAgZnVuY3Rpb24uIEkgaW1tZWRpYXRlbHkgd2FudCB0byB1bmRlcnN0YW5kIHRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXMsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQmIzM5O3MgZ29pbmcgb24gd2l0aGluIHRoZXNlIHJvdXRpbmVzLiBGaXJzdCwgSSBuZWVkIHRvIGNoZWNrIHRoZSBmdW5jdGlvbiwgYGFpcm9oYV9hbGxvY19nZG1fZGV2aWNlYCBpdHNlbGYuIEkgbmVlZCB0byBzZWUgaG93IHRoZSBjaGFuZ2UgaW1wYWN0cyB0aGUgYGRldi0mZ3Q7dHhxX2xvY2tgIHZhcmlhYmxlLCBpdHMgaW5pdGlhbGl6YXRpb24sIGFuZCB1c2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDA6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dHhxX2xvY2smIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9OTcxPXN0YXRpYyBpbnQgYWlyb2hhX3FkbWFfdHhfbmFwaV9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTEwNDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjEwNDc6XHRcdFx0c3Bpbl9sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2V0eHFfbG9ja1txaWR4XSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTEwNDgtXHRcdFx0bmV0ZGV2X3R4X2NvbXBsZXRlZF9xdWV1ZSh0eHEsIDEsIHNrYi1cdTAwM2VsZW4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxMDQ5Olx0XHRcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2V0eHFfbG9ja1txaWR4XSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTEwNTAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zNDEyPXN0YXRpYyBpbnQgYWlyb2hhX2FsbG9jX2dkbV9kZXZpY2Uoc3RydWN0IGFpcm9oYV9ldGggKmV0aCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0NzAtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBSVJPSEFfTlVNX05FVERFVl9UWF9SSU5HUzsgaSYjNDM7JiM0MzspXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM0NzE6XHRcdHNwaW5fbG9ja19pbml0KFx1MDAyNmRldi1cdTAwM2V0eHFfbG9ja1tpXSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0NzItXHRkZXYtXHUwMDNlcG9ydCA9IHBvcnQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDA6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg1MwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIGlmIEkgd2VyZSB0aGlua2luZyB0aGVzZSB0aG91Z2h0czoKCioqQW5hbHl6aW5nIHRoZSBBaXJvaGEgR0RNIFBvcnQgU3RydWN0dXJlKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGluLiBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIEFpcm9oYSBFdGhlcm5ldCBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgR0RNIHBvcnQgc3RydWN0dXJlLiBJIGJlbGlldmUgSSYjMzk7bGwgZmluZCB0aGUgZGVmaW5pdGlvbiBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaGAsIG9yIHNvbWV0aGluZyB2ZXJ5IHNpbWlsYXIgd2l0aGluIHRoZSBkcml2ZXImIzM5O3Mgc291cmNlIHRyZWUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgYGFpcm9oYV9nZG1fcG9ydGAgc3RydWN0IGlzIGRlZmluZWQ7IEkmIzM5O2xsIHN0YXJ0IGJ5IGxvb2tpbmcgYXQgdGhpcy4gVGltZSB0byBnZXQgbXkgYmVhcmluZ3MgYW5kIHNlZSB3aGF0IHdlJiMzOTtyZSB3b3JraW5nIHdpdGggaGVyZS4gSSYjMzk7bSBhZnRlciB0aGUgZGV0YWlscy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMDoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTc0PXN0YXRpYyBpbnQgYWlyb2hhX3NldF9tYWNhZGRyKHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2LCBjb25zdCB1OCAqYWRkcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTg1LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShldGgtXHUwMDNlcG9ydHMpOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo4NjpcdFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGV0aC1cdTAwM2Vwb3J0c1tpXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtODctXHRcdGludCBqO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MTU5PXN0YXRpYyBpbnQgYWlyb2hhX3NldF92aXBfZm9yX2dkbV9wb3J0KHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2LCBib29sIGVuYWJsZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTYwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTYxOlx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cdTAwM2Vwb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNjItXHRzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoID0gZGV2LVx1MDAzZWV0aDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTYzOT1haXJvaGFfcWRtYV9nZXRfZ2RtX2RldihzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLCBzdHJ1Y3QgYWlyb2hhX3FkbWFfZGVzYyAqZGVzYylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjQwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6NjQxOlx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjQyLVx0dTE2IHAsIGQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz02NjA9c3RhdGljIGludCBhaXJvaGFfcWRtYV9yeF9wcm9jZXNzKHN0cnVjdCBhaXJvaGFfcXVldWUgKnEsIGludCBidWRnZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy03MjgtXHRcdGlmIChuZXRkZXZfdXNlc19kc2EobmV0ZGV2KSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo3Mjk6XHRcdFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cdTAwM2Vwb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy03MzAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz05MTY9c3RhdGljIHZvaWQgYWlyb2hhX3FkbWFfd2FrZV9uZXRkZXZfdHhxcyhzdHJ1Y3QgYWlyb2hhX3F1ZXVlICpxKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtOTIyLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShldGgtXHUwMDNlcG9ydHMpOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo5MjM6XHRcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBldGgtXHUwMDNlcG9ydHNbaV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTkyNC1cdFx0aW50IGQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xNjk1PXN0YXRpYyB2b2lkIGFpcm9oYV91cGRhdGVfaHdfc3RhdHMoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE2OTYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNjk3Olx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cdTAwM2Vwb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNjk4LVx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IGRldi1cdTAwM2VldGg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xOTEwPXN0YXRpYyBpbnQgYWlyb2hhX2Rldl9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTEyLVx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxOTEzOlx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cdTAwM2Vwb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTE0LVx0dTMyIHBzZV9wb3J0ID0gRkVfUFNFX1BPUlRfUFBFMTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTE5NDM9c3RhdGljIGludCBhaXJvaGFfZGV2X3N0b3Aoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5NDUtXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE5NDY6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVx1MDAzZXBvcnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5NDctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xOTc5PXN0YXRpYyBpbnQgYWlyb2hhX2VuYWJsZV9nZG0yX2xvb3BiYWNrKHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTgwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTk4MTpcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXHUwMDNlcG9ydDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTk4Mi1cdHN0cnVjdCBhaXJvaGFfZXRoICpldGggPSBkZXYtXHUwMDNlZXRoO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjAzNz1zdGF0aWMgaW50IGFpcm9oYV9kaXNhYmxlX2dkbTJfbG9vcGJhY2soc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwMzgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMDM5Olx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cdTAwM2Vwb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMDQwLVx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IGRldi1cdTAwM2VldGg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0yMDg1PWFpcm9oYV9nZXRfd2FuX2dkbV9kZXYoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwODktXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKGV0aC1cdTAwM2Vwb3J0cyk7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIwOTA6XHRcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBldGgtXHUwMDNlcG9ydHNbaV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwOTEtXHRcdGludCBqO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjE0Mz1zdGF0aWMgaW50IGFpcm9oYV9kZXZfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjE0NS1cdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjE0NjpcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXHUwMDNlcG9ydDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjE0Ny1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTIxOTk9c3RhdGljIGludCBhaXJvaGFfZGV2X2NoYW5nZV9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgaW50IG10dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMDEtXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIyMDI6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVx1MDAzZXBvcnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMDMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0yMjExPXN0YXRpYyB1MTYgYWlyb2hhX2Rldl9zZWxlY3RfcXVldWUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMTUtXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIyMTY6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVx1MDAzZXBvcnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMTctXHRpbnQgcXVldWUsIGNoYW5uZWw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0yMjc1PWludCBhaXJvaGFfZ2V0X2ZlX3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyNzYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMjc3Olx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cdTAwM2Vwb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMjc4LVx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IGRldi1cdTAwM2VldGg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zMTY5PXN0YXRpYyB2b2lkIGFpcm9oYV9kaXNhYmxlX3Fvc19mb3JfZ2RtMzQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxNzEtXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMxNzI6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVx1MDAzZXBvcnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxNzMtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzE5Nj1zdGF0aWMgaW50IGFpcm9oYV9lbmFibGVfcW9zX2Zvcl9nZG0zNChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzE5OS1cdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqd2FuX2RldiwgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMyMDA6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVx1MDAzZXBvcnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMyMDEtXHRzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoID0gZGV2LVx1MDAzZWV0aDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTMzNTI9c3RhdGljIGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyBhaXJvaGFfZXRodG9vbF9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMzU5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMzYwOnN0YXRpYyBpbnQgYWlyb2hhX21ldGFkYXRhX2RzdF9hbGxvYyhzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMzYxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMzNzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMzNzk6c3RhdGljIHZvaWQgYWlyb2hhX21ldGFkYXRhX2RzdF9mcmVlKHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMzODAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzM5MT1ib29sIGFpcm9oYV9pc192YWxpZF9nZG1fZGV2KHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMzk2LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShldGgtXHUwMDNlcG9ydHMpOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMzk3Olx0XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZXRoLVx1MDAzZXBvcnRzW2ldO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMzk4LVx0XHRpbnQgajtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTM0MTI9c3RhdGljIGludCBhaXJvaGFfYWxsb2NfZ2RtX2RldmljZShzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNDEzOlx0XHRcdFx0ICAgc3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzQxNC1cdFx0XHRcdCAgIGludCBuYnEsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zNDgwPXN0YXRpYyBpbnQgYWlyb2hhX2FsbG9jX2dkbV9wb3J0KHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNDgzLVx0Y29uc3QgX19iZTMyICppZF9wdHIgPSBvZl9nZXRfcHJvcGVydHkobnAsIFwmIzM0O3JlZ1wmIzM0OywgTlVMTCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM0ODQ6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNDg1LVx0c3RydWN0IGRldmljZV9ub2RlICpub2RlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzU2MD1zdGF0aWMgaW50IGFpcm9oYV9yZWdpc3Rlcl9nZG1fZGV2aWNlcyhzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzU2NC1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoZXRoLVx1MDAzZXBvcnRzKTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzU2NTpcdFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGV0aC1cdTAwM2Vwb3J0c1tpXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzU2Ni1cdFx0aW50IGo7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zNTg5PXN0YXRpYyBpbnQgYWlyb2hhX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNjkyLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShldGgtXHUwMDNlcG9ydHMpOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNjkzOlx0XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZXRoLVx1MDAzZXBvcnRzW2ldO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNjk0LVx0XHRpbnQgajtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTM3MjE9c3RhdGljIHZvaWQgYWlyb2hhX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzczMS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoZXRoLVx1MDAzZXBvcnRzKTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzczMjpcdFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGV0aC1cdTAwM2Vwb3J0c1tpXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzczMy1cdFx0aW50IGo7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zNzU3PXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZW43NTgxX3hzaV9yc3RzX25hbWVzW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNzY1OnN0YXRpYyBpbnQgYWlyb2hhX2VuNzU4MV9nZXRfc3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCwgaW50IG5icSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzc2Ni17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzg4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNzg5OnN0YXRpYyB1MzIgYWlyb2hhX2VuNzU4MV9nZXRfdmlwX3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCwgaW50IG5icSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzc5MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zODQ0PXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYW43NTgzX3hzaV9yc3RzX25hbWVzW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zODUwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozODUxOnN0YXRpYyBpbnQgYWlyb2hhX2FuNzU4M19nZXRfc3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCwgaW50IG5icSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzg1Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zODcyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozODczOnN0YXRpYyB1MzIgYWlyb2hhX2FuNzU4M19nZXRfdmlwX3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCwgaW50IG5icSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzg3NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaD01Nzg9c3RydWN0IGFpcm9oYV9nZG1fZGV2IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNTc5LVx0c3RydWN0IGFpcm9oYV9xZG1hIF9fcmN1ICpxZG1hO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo1ODA6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC01ODEtXHRzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNTk5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo2MDA6c3RydWN0IGFpcm9oYV9nZG1fcG9ydCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTYwMS1cdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2c1tBSVJPSEFfTUFYX05VTV9HRE1fREVWU107XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaD02MzI9c3RydWN0IGFpcm9oYV9ldGhfc29jX2RhdGEge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNjM3LVx0c3RydWN0IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NjM4Olx0XHRpbnQgKCpnZXRfc3BvcnQpKHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQsIGludCBuYnEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo2Mzk6XHRcdHUzMiAoKmdldF92aXBfcG9ydCkoc3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCwgaW50IG5icSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTY0MC1cdFx0aW50ICgqZ2V0X2Rldl9mcm9tX3Nwb3J0KShzdHJ1Y3QgYWlyb2hhX3FkbWFfZGVzYyAqZGVzYyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oPTY0NT1zdHJ1Y3QgYWlyb2hhX2V0aCB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC02NjMtXHRzdHJ1Y3QgYWlyb2hhX3FkbWEgcWRtYVtBSVJPSEFfTUFYX05VTV9RRE1BXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NjY0Olx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydHNbQUlST0hBX01BWF9OVU1fR0RNX1BPUlRTXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNjY1LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0xMDM9dm9pZCBhaXJvaGFfcHBlX3NldF94bWl0X2ZyYW1lX3NpemUoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTEwNC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjEwNTpcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXHUwMDNlcG9ydDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTA2LVx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IGRldi1cdTAwM2VldGg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0xMzA9c3RhdGljIHZvaWQgYWlyb2hhX3BwZV9od19pbml0KHN0cnVjdCBhaXJvaGFfcHBlICpwcGUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xOTktXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKGV0aC1cdTAwM2Vwb3J0cyk7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjIwMDpcdFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGV0aC1cdTAwM2Vwb3J0c1tpXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMjAxLVx0XHRpbnQgajtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jPTMzMz1zdGF0aWMgaW50IGFpcm9oYV9wcGVfZm9lX2VudHJ5X3ByZXBhcmUoc3RydWN0IGFpcm9oYV9ldGggKmV0aCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTM3MC1cdFx0XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjM3MTpcdFx0XHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0zNzItXHRcdFx0dTggcHNlX3BvcnQsIGNoYW5uZWw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0xNTEyPXZvaWQgYWlyb2hhX3BwZV9pbml0X3VwZF9tZW0oc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYsIGNvbnN0IHU4ICphZGRyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xNTEzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MTUxNDpcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXHUwMDNlcG9ydDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTUxNS1cdHN0cnVjdCBhaXJvaGFfZXRoICpldGggPSBkZXYtXHUwMDNlZXRoO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAwOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDg2MzEKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiA1MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLgoKKipFeGFtaW5pbmcgdGhlIEFpcm9oYSBFdGhlcm5ldCBEcml2ZXIgSGVhZGVyKioKClJpZ2h0LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgYXJjaGl0ZWN0dXJlIG9mIHRoaXMgQWlyb2hhIEV0aGVybmV0IGRyaXZlci4gTGV0JiMzOTtzIHN0YXJ0IGJ5IGxvb2tpbmcgZGlyZWN0bHkgYXQgdGhlIGhlYWRlciBmaWxlLCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaGAuIEkmIzM5O20gc3BlY2lmaWNhbGx5IGludGVyZXN0ZWQgaW4gdW5kZXJzdGFuZGluZyB0aGUgZGV2aWNlIHN0cnVjdHVyZSBhbmQgdGhlIG51bWJlciBvZiB0cmFuc21pdCByaW5ncy4gSSYjMzk7bGwgbmVlZCB0byBsb2NhdGUgYHN0cnVjdCBhaXJvaGFfZ2RtX2RldmAg4oCTIHRoYXQgbGlrZWx5IGhvbGRzIHRoZSBjb3JlIGRldmljZSBpbmZvcm1hdGlvbiBhbmQgaGFuZGxlcyB0aGUgbG93LWxldmVsIGludGVyYWN0aW9ucy4gQW5kIHRoZW4sIGVxdWFsbHkgaW1wb3J0YW50LCBJJiMzOTttIGdvaW5nIHRvIGxvb2sgZm9yIGBBSVJPSEFfTlVNX05FVERFVl9UWF9SSU5HU2AuIFRoaXMgY29uc3RhbnQgd2lsbCB0ZWxsIG1lIGhvdyBtYW55IHRyYW5zbWl0IHF1ZXVlcyBhcmUgc3VwcG9ydGVkLiBLbm93aW5nIHRoaXMgaW5mb3JtYXRpb24gaXMgY3JpdGljYWwgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGNvbmN1cnJlbmN5IGFuZCByZXNvdXJjZSBhbGxvY2F0aW9uIHdpdGhpbiB0aGUgZHJpdmVyLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGdyZWF0IG92ZXJ2aWV3IG9mIHRoZSBkcml2ZXImIzM5O3Mgc2V0dXAgYW5kIGNhcGFiaWxpdGllcy4gTGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIGluIHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAwOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N0cnVjdCBhaXJvaGFfZ2RtX2RldiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz02OD1zdGF0aWMgdm9pZCBhaXJvaGFfcWRtYV9pcnFfZGlzYWJsZShzdHJ1Y3QgYWlyb2hhX2lycV9iYW5rICppcnFfYmFuayxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTczLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo3NDpzdGF0aWMgaW50IGFpcm9oYV9zZXRfbWFjYWRkcihzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiwgY29uc3QgdTggKmFkZHIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTc1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTkyLVx0XHRmb3IgKGogPSAwOyBqIFx1MDAzYyBBUlJBWV9TSVpFKHBvcnQtXHUwMDNlZGV2cyk7IGomIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjkzOlx0XHRcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqaXRlcl9kZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTk0LVx0XHRcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xNDY9c3RhdGljIHZvaWQgYWlyb2hhX3NldF9nZG1fcG9ydF9md2RfY2ZnKHN0cnVjdCBhaXJvaGFfZXRoICpldGgsIHUzMiBhZGRyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTU4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNTk6c3RhdGljIGludCBhaXJvaGFfc2V0X3ZpcF9mb3JfZ2RtX3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYsIGJvb2wgZW5hYmxlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNjAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9NTkyPXN0YXRpYyBpbnQgYWlyb2hhX3FkbWFfZmlsbF9yeF9xdWV1ZShzdHJ1Y3QgYWlyb2hhX3F1ZXVlICpxKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo2Mzg6c3RhdGljIHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTYzOS1haXJvaGFfcWRtYV9nZXRfZ2RtX2RldihzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLCBzdHJ1Y3QgYWlyb2hhX3FkbWFfZGVzYyAqZGVzYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTY2MD1zdGF0aWMgaW50IGFpcm9oYV9xZG1hX3J4X3Byb2Nlc3Moc3RydWN0IGFpcm9oYV9xdWV1ZSAqcSwgaW50IGJ1ZGdldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTY3MS1cdFx0dTMyIGhhc2gsIHJlYXNvbiwgbXNnMSwgZGVzY19jdHJsO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo2NzI6XHRcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02NzMtXHRcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz05MTY9c3RhdGljIHZvaWQgYWlyb2hhX3FkbWFfd2FrZV9uZXRkZXZfdHhxcyhzdHJ1Y3QgYWlyb2hhX3F1ZXVlICpxKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtOTI5LVx0XHRmb3IgKGQgPSAwOyBkIFx1MDAzYyBBUlJBWV9TSVpFKHBvcnQtXHUwMDNlZGV2cyk7IGQmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjkzMDpcdFx0XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IHBvcnQtXHUwMDNlZGV2c1tkXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtOTMxLVx0XHRcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz05NzE9c3RhdGljIGludCBhaXJvaGFfcWRtYV90eF9uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTA0MC1cdFx0aWYgKHNrYikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxMDQxOlx0XHRcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYoc2tiLVx1MDAzZWRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTEwNDItXHRcdFx0dTE2IHFpZHggPSBza2JfZ2V0X3F1ZXVlX21hcHBpbmcoc2tiKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTE2ODA9c3RhdGljIHZvaWQgYWlyb2hhX3FkbWFfc3RvcF9uYXBpKHN0cnVjdCBhaXJvaGFfcWRtYSAqcWRtYSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE2OTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE2OTU6c3RhdGljIHZvaWQgYWlyb2hhX3VwZGF0ZV9od19zdGF0cyhzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTY5Ni17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xODk5PXN0YXRpYyB2b2lkIGFpcm9oYV9kZXZfc2V0X3htaXRfZnJhbWVfc2l6ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTAwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTkwMTpcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTkwMi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTE5MTA9c3RhdGljIGludCBhaXJvaGFfZGV2X29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTkxMS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE5MTI6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5MTMtXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVx1MDAzZXBvcnQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xOTQzPXN0YXRpYyBpbnQgYWlyb2hhX2Rldl9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5NDQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxOTQ1Olx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTQ2LVx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cdTAwM2Vwb3J0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MTk2MD1zdGF0aWMgaW50IGFpcm9oYV9kZXZfc2V0X21hY2FkZHIoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgdm9pZCAqcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTk2MS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE5NjI6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5NjMtXHRzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIgPSBwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTk3OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTk3OTpzdGF0aWMgaW50IGFpcm9oYV9lbmFibGVfZ2RtMl9sb29wYmFjayhzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTk4MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMDM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMDM3OnN0YXRpYyBpbnQgYWlyb2hhX2Rpc2FibGVfZ2RtMl9sb29wYmFjayhzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjAzOC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMDgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMDg0OnN0YXRpYyBzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMDg1LWFpcm9oYV9nZXRfd2FuX2dkbV9kZXYoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwOTYtXHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIEFSUkFZX1NJWkUocG9ydC1cdTAwM2VkZXZzKTsgaiYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjA5NzpcdFx0XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IHBvcnQtXHUwMDNlZGV2c1tqXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjA5OC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxMDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIxMDc6c3RhdGljIHZvaWQgYWlyb2hhX2Rldl9zZXRfcWRtYShzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjEwOC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0yMTQzPXN0YXRpYyBpbnQgYWlyb2hhX2Rldl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxNDQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMTQ1Olx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMTQ2LVx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cdTAwM2Vwb3J0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjE3Nz1zdGF0aWMgdm9pZCBhaXJvaGFfZGV2X2dldF9zdGF0czY0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMTc5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjE4MDpcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjE4MS1cdHVuc2lnbmVkIGludCBzdGFydDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTIxOTk9c3RhdGljIGludCBhaXJvaGFfZGV2X2NoYW5nZV9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgaW50IG10dSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjIwMC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIyMDE6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMDItXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVx1MDAzZXBvcnQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0yMjExPXN0YXRpYyB1MTYgYWlyb2hhX2Rldl9zZWxlY3RfcXVldWUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMTQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMjE1Olx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMjE2LVx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cdTAwM2Vwb3J0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjIzMT1zdGF0aWMgdTMyIGFpcm9oYV9nZXRfZHNhX3RhZyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjI3NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjI3NTppbnQgYWlyb2hhX2dldF9mZV9wb3J0KHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMjc2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTIyOTE9c3RhdGljIG5ldGRldl90eF90IGFpcm9oYV9kZXZfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjI5My17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIyOTQ6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyOTUtXHR1MzIgbnJfZnJhZ3MsIHRhZywgbXNnMCwgbXNnMSwgbGVuO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjQ0Mj1zdGF0aWMgdm9pZCBhaXJvaGFfZXRodG9vbF9nZXRfZHJ2aW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjQ0NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI0NDU6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI0NDYtXHRzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoID0gZGV2LVx1MDAzZWV0aDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTI0NTI9c3RhdGljIHZvaWQgYWlyb2hhX2V0aHRvb2xfZ2V0X21hY19zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjQ1NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI0NTU6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI0NTYtXHR1bnNpZ25lZCBpbnQgc3RhcnQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0yNDgzPWFpcm9oYV9ldGh0b29sX2dldF9ybW9uX3N0YXRzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNDg2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjQ4NzpcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjQ4OC1cdHN0cnVjdCBhaXJvaGFfaHdfc3RhdHMgKmh3X3N0YXRzID0gXHUwMDI2ZGV2LVx1MDAzZXN0YXRzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjUxMj1zdGF0aWMgaW50IGFpcm9oYV9xZG1hX3NldF9jaGFuX3R4X3NjaGVkKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNTE1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjUxNjpcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjUxNy1cdHN0cnVjdCBhaXJvaGFfcWRtYSAqcWRtYTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTI2MDI9c3RhdGljIGludCBhaXJvaGFfcWRtYV9nZXRfdHhfZXRzX3N0YXRzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBjaGFubmVsLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjYwNC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI2MDU6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI2MDYtXHR1MzIgY3B1X3R4X3BhY2tldHMsIGZ3ZF90eF9wYWNrZXRzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9Mjg3MT1zdGF0aWMgaW50IGFpcm9oYV9xZG1hX3NldF90eF9yYXRlX2xpbWl0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yODc0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mjg3NTpcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjg3Ni1cdHN0cnVjdCBhaXJvaGFfcWRtYSAqcWRtYTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTI5MTc9c3RhdGljIGludCBhaXJvaGFfdGNfaHRiX2FsbG9jX2xlYWZfcXVldWUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5MjEtXHRpbnQgZXJyLCBudW1fdHhfcXVldWVzID0gQUlST0hBX05VTV9UWF9SSU5HICYjNDM7IGNoYW5uZWwgJiM0MzsgMTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjkyMjpcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjkyMy1cdHN0cnVjdCBhaXJvaGFfcWRtYSAqcWRtYTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5NTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI5NjA6c3RhdGljIGludCBhaXJvaGFfcWRtYV9zZXRfcnhfbWV0ZXIoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5NjEtXHRcdFx0XHQgICAgdTMyIHJhdGUsIHUzMiBidWNrZXRfc2l6ZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTMwMzg9c3RhdGljIGludCBhaXJvaGFfZGV2X3RjX21hdGNoYWxsKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMDQxLVx0ZW51bSB0cnRjbV91bml0X3R5cGUgdW5pdF90eXBlID0gVFJUQ01fQllURV9VTklUO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMDQyOlx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMDQzLVx0dTMyIHJhdGUgPSAwLCBidWNrZXRfc2l6ZSA9IDA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zMDc0PXN0YXRpYyBpbnQgYWlyb2hhX2Rldl9zZXR1cF90Y19ibG9ja19jYihlbnVtIHRjX3NldHVwX3R5cGUgdHlwZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMwNzctXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2ID0gY2JfcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzA3ODpcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzA3OS1cdHN0cnVjdCBhaXJvaGFfZXRoICpldGggPSBkZXYtXHUwMDNlZXRoO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzEzNT1zdGF0aWMgdm9pZCBhaXJvaGFfdGNfcmVtb3ZlX2h0Yl9xdWV1ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBpbnQgcXVldWUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxMzYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMTM3Olx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMTM4LVx0aW50IG51bV90eF9xdWV1ZXMgPSBBSVJPSEFfTlVNX1RYX1JJTkc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zMTUzPXN0YXRpYyBpbnQgYWlyb2hhX3RjX2h0Yl9kZWxldGVfbGVhZl9xdWV1ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzE1Ni1cdHUzMiBjaGFubmVsID0gVENfSF9NSU4ob3B0LVx1MDAzZWNsYXNzaWQpICUgQUlST0hBX05VTV9RT1NfQ0hBTk5FTFM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMxNTc6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxNTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zMTY5PXN0YXRpYyB2b2lkIGFpcm9oYV9kaXNhYmxlX3Fvc19mb3JfZ2RtMzQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzE3MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMxNzE6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxNzItXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVx1MDAzZXBvcnQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zMTk2PXN0YXRpYyBpbnQgYWlyb2hhX2VuYWJsZV9xb3NfZm9yX2dkbTM0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMTk4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzE5OTpcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqd2FuX2RldiwgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMyMDAtXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVx1MDAzZXBvcnQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zMjYxPXN0YXRpYyBpbnQgYWlyb2hhX3RjX2h0Yl9kZXN0cm95KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMyNjIte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMjYzOlx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMjY0LVx0aW50IHE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zMjc0PXN0YXRpYyBpbnQgYWlyb2hhX3RjX2dldF9odGJfZ2V0X2xlYWZfcXVldWUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMyNzctXHR1MzIgY2hhbm5lbCA9IFRDX0hfTUlOKG9wdC1cdTAwM2VjbGFzc2lkKSAlIEFJUk9IQV9OVU1fUU9TX0NIQU5ORUxTO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMjc4Olx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMjc5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzI5MD1zdGF0aWMgaW50IGFpcm9oYV90Y19zZXR1cF9xZGlzY19odGIoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMyOTQtXHRjYXNlIFRDX0hUQl9DUkVBVEU6IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzI5NTpcdFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMjk2LVx0XHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzM5MT1ib29sIGFpcm9oYV9pc192YWxpZF9nZG1fZGV2KHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMzOTI6XHRcdFx0ICAgICBzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzM5My17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zNDEyPXN0YXRpYyBpbnQgYWlyb2hhX2FsbG9jX2dkbV9kZXZpY2Uoc3RydWN0IGFpcm9oYV9ldGggKmV0aCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0MTYtXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNDE3Olx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0MTgtXHRpbnQgZXJyLCBpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzU2MD1zdGF0aWMgaW50IGFpcm9oYV9yZWdpc3Rlcl9nZG1fZGV2aWNlcyhzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzU3MS1cdFx0Zm9yIChqID0gMDsgaiBcdTAwM2MgQVJSQVlfU0laRShwb3J0LVx1MDAzZWRldnMpOyBqJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNTcyOlx0XHRcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gcG9ydC1cdTAwM2VkZXZzW2pdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNTczLVx0XHRcdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zNTg5PXN0YXRpYyBpbnQgYWlyb2hhX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNjk5LVx0XHRmb3IgKGogPSAwOyBqIFx1MDAzYyBBUlJBWV9TSVpFKHBvcnQtXHUwMDNlZGV2cyk7IGomIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM3MDA6XHRcdFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBwb3J0LVx1MDAzZWRldnNbal07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM3MDEtXHRcdFx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTM3MjE9c3RhdGljIHZvaWQgYWlyb2hhX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzczOC1cdFx0Zm9yIChqID0gMDsgaiBcdTAwM2MgQVJSQVlfU0laRShwb3J0LVx1MDAzZWRldnMpOyBqJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNzM5Olx0XHRcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gcG9ydC1cdTAwM2VkZXZzW2pdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzQwLVx0XHRcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaD01NzM9ZW51bSBhaXJvaGFfZGV2X2ZsYWdzIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTU3Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NTc4OnN0cnVjdCBhaXJvaGFfZ2RtX2RldiB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTU3OS1cdHN0cnVjdCBhaXJvaGFfcWRtYSBfX3JjdSAqcWRtYTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oPTYwMD1zdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NjAxOlx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXZzW0FJUk9IQV9NQVhfTlVNX0dETV9ERVZTXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNjAyLVx0aW50IGlkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg9Njk3PXN0YXRpYyBpbmxpbmUgdTE2IGFpcm9oYV9xZG1hX2dldF90eHEoc3RydWN0IGFpcm9oYV9xZG1hICpxZG1hLCB1MTYgcWlkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNzAxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo3MDI6c3RhdGljIGlubGluZSBib29sIGFpcm9oYV9pc19sYW5fZ2RtX2RldihzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNzAzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oPTcxMj1zdGF0aWMgaW5saW5lIGJvb2wgYWlyb2hhX2lzXzc1ODMoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTcxNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NzE3OmludCBhaXJvaGFfZ2V0X2ZlX3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC03MTgtYm9vbCBhaXJvaGFfaXNfdmFsaWRfZ2RtX2RldihzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo3MTk6XHRcdFx0ICAgICBzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTcyMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oPTcyMz1zdGF0aWMgaW5saW5lIHN0cnVjdCBhaXJvaGFfcWRtYSAqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oOjcyNDphaXJvaGFfcWRtYV9kZXJlZihzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNzI1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTczMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NzMxOnZvaWQgYWlyb2hhX3BwZV9zZXRfeG1pdF9mcmFtZV9zaXplKHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NzMyOnZvaWQgYWlyb2hhX3BwZV9zZXRfY3B1X3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYsIHU4IHBwZV9pZCwgdTggZnBvcnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC03MzMtYm9vbCBhaXJvaGFfcHBlX2lzX2VuYWJsZWQoc3RydWN0IGFpcm9oYV9ldGggKmV0aCwgaW50IGluZGV4KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oPTczOD12b2lkIGFpcm9oYV9wcGVfZGVpbml0KHN0cnVjdCBhaXJvaGFfZXRoICpldGgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo3Mzk6dm9pZCBhaXJvaGFfcHBlX2luaXRfdXBkX21lbShzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiwgY29uc3QgdTggKmFkZHIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC03NDAtdTMyIGFpcm9oYV9wcGVfZ2V0X3RvdGFsX251bV9lbnRyaWVzKHN0cnVjdCBhaXJvaGFfcHBlICpwcGUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM9ODQ9c3RhdGljIHUzMiBhaXJvaGFfcHBlX2dldF90aW1lc3RhbXAoc3RydWN0IGFpcm9oYV9wcGUgKnBwZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTg5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzo5MDp2b2lkIGFpcm9oYV9wcGVfc2V0X2NwdV9wb3J0KHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2LCB1OCBwcGVfaWQsIHU4IGZwb3J0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy05MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xMDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjEwMzp2b2lkIGFpcm9oYV9wcGVfc2V0X3htaXRfZnJhbWVfc2l6ZShzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTA0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTExMC1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUocG9ydC1cdTAwM2VkZXZzKTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MTExOlx0XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmQgPSBwb3J0LVx1MDAzZWRldnNbaV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTExMi1cdFx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jPTEzMD1zdGF0aWMgdm9pZCBhaXJvaGFfcHBlX2h3X2luaXQoc3RydWN0IGFpcm9oYV9wcGUgKnBwZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTIwNi1cdFx0Zm9yIChqID0gMDsgaiBcdTAwM2MgQVJSQVlfU0laRShwb3J0LVx1MDAzZWRldnMpOyBqJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzoyMDc6XHRcdFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBwb3J0LVx1MDAzZWRldnNbal07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTIwOC1cdFx0XHRpbnQgcHBlX2lkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM9MzMzPXN0YXRpYyBpbnQgYWlyb2hhX3BwZV9mb2VfZW50cnlfcHJlcGFyZShzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMzY5LVx0XHR9IGVsc2Uge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzozNzA6XHRcdFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0zNzEtXHRcdFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jPTE0OTM9dm9pZCBhaXJvaGFfcHBlX2NoZWNrX3NrYihzdHJ1Y3QgYWlyb2hhX3BwZV9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTE1MTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjE1MTI6dm9pZCBhaXJvaGFfcHBlX2luaXRfdXBkX21lbShzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiwgY29uc3QgdTggKmFkZHIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTE1MTMte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAwOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3NDUwCgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYW5hbHlzaXMgb2YgdGhlIHByb3ZpZGVkIHRleHQsIHJlbmRlcmVkIGFzIGEgZmlyc3QtcGVyc29uIGV4cGVydCBzdW1tYXJ5OgoKKipEaXZpbmcgaW50byB0aGUgQWlyb2hhIEV0aGVybmV0IERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGZvY3VzaW5nIGluIG9uIHRoZSBBaXJvaGEgRXRoZXJuZXQgZHJpdmVyLCBzcGVjaWZpY2FsbHkgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmhgLiBMZXQmIzM5O3MgYXNzdW1lIHRoaXMgaXMgYSByZWxldmFudCBjb2RlYmFzZSBmb3IgdGhlIGhhcmR3YXJlIEkmIzM5O20gY3VycmVudGx5IGFzc2Vzc2luZy4gTXkgZ29hbCBoZXJlIGlzIHRvIHplcm8gaW4gb24gYSBwYXJ0aWN1bGFyIGFzcGVjdCwgcHJvYmFibHkgYSBmdW5jdGlvbiBkZWZpbml0aW9uLCBzdHJ1Y3R1cmUsIG9yIG1hY3JvLiBUaGUgZGlyZWN0aW9uIHByb3ZpZGVkIHN1Z2dlc3RzIHRoYXQgdGhlIHRhcmdldCBpcyBhcm91bmQgbGluZSA1Nzggb2YgdGhhdCBoZWFkZXIgZmlsZS4gVGhhdCYjMzk7cyB1c3VhbGx5IHRoZSBzaWduIG9mIGEgc3BlY2lmaWMgc3RydWN0dXJlIGRlY2xhcmF0aW9uLCBhbiBlbnVtZXJhdGlvbiwgb3IgYSBmdW5jdGlvbiBwcm90b3R5cGUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQmIzM5O3MgdGhlcmUgYW5kIHdoYXQgaXQgZG9lcy4gSSYjMzk7bSBnb2luZyB0byBzdGFydCBieSBwdWxsaW5nIHVwIHRoYXQgZmlsZSBhbmQgdGhhdCBsaW5lIGRpcmVjdGx5IHRvIGZpbmQgd2hhdCYjMzk7cyB3aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMDoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA1NjAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDU2MDpcdFx0c3RydWN0IGFpcm9oYV9ldGggKmV0aDtcbiA1NjE6XHRcdHZvaWQgX19pb21lbSAqcmVncztcbiA1NjI6XHRcbiA1NjM6XHRcdHN0cnVjdCBhaXJvaGFfaXJxX2JhbmsgaXJxX2JhbmtzW0FJUk9IQV9NQVhfTlVNX0lSUV9CQU5LU107XG4gNTY0Olx0XG4gNTY1Olx0XHRzdHJ1Y3QgYWlyb2hhX3R4X2lycV9xdWV1ZSBxX3R4X2lycVtBSVJPSEFfTlVNX1RYX0lSUV07XG4gNTY2Olx0XG4gNTY3Olx0XHRzdHJ1Y3QgYWlyb2hhX3F1ZXVlIHFfdHhbQUlST0hBX05VTV9UWF9SSU5HXTtcbiA1Njg6XHRcdHN0cnVjdCBhaXJvaGFfcXVldWUgcV9yeFtBSVJPSEFfTlVNX1JYX1JJTkddO1xuIDU2OTpcdFxuIDU3MDpcdFx0REVDTEFSRV9CSVRNQVAocW9zX2NoYW5uZWxfbWFwLCBBSVJPSEFfTlVNX1FPU19DSEFOTkVMUyk7XG4gNTcxOlx0fTtcbiA1NzI6XHRcbiA1NzM6XHRlbnVtIGFpcm9oYV9kZXZfZmxhZ3Mge1xuIDU3NDpcdFx0QUlST0hBX0RFVl9GX1dBTixcbiA1NzU6XHRcdEFJUk9IQV9ERVZfRl9UWF9RT1MsXG4gNTc2Olx0fTtcbiA1Nzc6XHRcbiA1Nzg6XHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYge1xuIDU3OTpcdFx0c3RydWN0IGFpcm9oYV9xZG1hIF9fcmN1ICpxZG1hO1xuIDU4MDpcdFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydDtcbiA1ODE6XHRcdHN0cnVjdCBhaXJvaGFfZXRoICpldGg7XG4gNTgyOlx0XG4gNTgzOlx0XHRERUNMQVJFX0JJVE1BUChxb3Nfc3FfYm1hcCwgQUlST0hBX05VTV9RT1NfQ0hBTk5FTFMpO1xuIDU4NDpcdFx0c3RydWN0IHtcbiA1ODU6XHRcdFx0dTMyIGNwdV90eF9wYWNrZXRzO1xuIDU4NjpcdFx0XHR1MzIgZndkX3R4X3BhY2tldHM7XG4gNTg3Olx0XHR9IHFvc19zdGF0c1tBSVJPSEFfTlVNX1FPU19DSEFOTkVMU107XG4gNTg4Olx0XG4gNTg5Olx0XHR1bnNpZ25lZCBsb25nIGZsYWdzO1xuIDU5MDpcdFx0aW50IG5icTtcbiA1OTE6XHRcbiA1OTI6XHRcdHN0cnVjdCBhaXJvaGFfaHdfc3RhdHMgc3RhdHM7XG4gNTkzOlx0XG4gNTk0Olx0XHQvKiBTZXJpYWxpemUgbmV0ZGV2X3R4X2NvbXBsZXRlZF9xdWV1ZSgpIGNhbGxzIHBlciBUWCBxdWV1ZSBkdXJpbmdcbiA1OTU6XHRcdCAqIFFETUEgbWlncmF0aW9uLlxuIDU5NjpcdFx0ICovXG4gNTk3Olx0XHRzcGlubG9ja190IHR4cV9sb2NrW0FJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTXTtcbiA1OTg6XHR9O1xuIDU5OTpcdFxuIDYwMDpcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQge1xuIDYwMTpcdFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXZzW0FJUk9IQV9NQVhfTlVNX0dETV9ERVZTXTtcbiA2MDI6XHRcdGludCBpZDtcbiA2MDM6XHRcdGludCB1c2VycztcbiA2MDQ6XHRcbiA2MDU6XHRcdC8qIHByb3RlY3QgY29uY3VycmVudCBod19zdGF0cyBhY2Nlc3NlcyAqL1xuIDYwNjpcdFx0c3BpbmxvY2tfdCBzdGF0c19sb2NrO1xuIDYwNzpcdFxuIDYwODpcdFx0c3RydWN0IG1ldGFkYXRhX2RzdCAqZHNhX21ldGFbQUlST0hBX01BWF9EU0FfUE9SVFNdO1xuIDYwOTpcdH07XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAwOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4NDg5CgkJCQkJCQlvdXRwdXQ6IDgyCgkJCQkJCQl0aG91Z2h0czogNTczCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIENvc21ldGljIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFRoZSBwYXRjaCBpbiBgYWlyb2hhX2FsbG9jX2dkbV9kZXZpY2VgIGlzIGNoYW5naW5nIGhvdyB3ZSBkZXRlcm1pbmUgdGhlIGxvb3AmIzM5O3MgdXBwZXIgYm91bmQgaW4gdGhlIGluaXRpYWxpemF0aW9uIG9mIGBkZXYtJmd0O3R4cV9sb2NrYC4gIEluaXRpYWxseSwgd2UgdXNlZCBgQVJSQVlfU0laRShkZXYtJmd0O3R4cV9sb2NrKWAuICBOb3csIGl0JiMzOTtzIGJlaW5nIHJlcGxhY2VkIHdpdGggYEFJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgdGhpcyBpcyBzaW1wbHkgYSBjb3NtZXRpYyBjaGFuZ2UsIGEgcmVmYWN0b3JpbmcgdG8gaW1wcm92ZSByZWFkYWJpbGl0eSwgcGVyaGFwcy4KCkxldCYjMzk7cyBjb25maXJtLiBgZGV2LSZndDt0eHFfbG9ja2AgaXMgKmRlY2xhcmVkKiBhcyBhbiBhcnJheSBvZiBzcGlubG9ja3M6IGBzcGlubG9ja190IHR4cV9sb2NrW0FJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTXTtgLiBUaGlzIG1lYW5zIGBBUlJBWV9TSVpFKGRldi0mZ3Q7dHhxX2xvY2spYCAqZXhhY3RseSogZXZhbHVhdGVzIHRvIHRoZSBzYW1lIHZhbHVlIGFzIGBBSVJPSEFfTlVNX05FVERFVl9UWF9SSU5HU2AuIFRoZXJlJiMzOTtzIG5vIHBvc3NpYmxlIGNoYW5jZSB0aGlzIGludHJvZHVjZXMgYSBidWcgb3IgYWx0ZXJzIGV4ZWN1dGlvbiBpbiBhbnkgd2F5LiBJIHF1aWNrbHkgY2hlY2tlZCB0byBtYWtlIHN1cmUgdGhlcmUgYXJlIG5vIG90aGVyIGNoYW5nZXMgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGNvZGUuIENvbmZpcm1lZC4KClRoZXJlZm9yZSwgdGhpcyBjaGFuZ2UgaXMgcHVyZWx5IHZpc3VhbCBhbmQgaGFzIG5vIGZ1bmN0aW9uYWwgaW1wYWN0LiBUaGlzIGNoYW5nZSBpcyBub3Qgd29ydGggZnV6emluZy4gVGhlIGBXb3J0aEZ1enppbmdgIHByb3BlcnR5IHNob3VsZCBiZSBgZmFsc2VgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMDoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlcGxhY2VzIEFSUkFZX1NJWkUoZGV2LVx1MDAzZXR4cV9sb2NrKSB3aXRoIHRoZSBtYWNybyBBSVJPSEFfTlVNX05FVERFVl9UWF9SSU5HUyB1c2VkIHRvIGRlZmluZSB0aGUgYXJyYXkgc2l6ZS4gVGhpcyBpcyBhIHB1cmVseSBjb3NtZXRpYyBjaGFuZ2UgdGhhdCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZXBsYWNlcyBBUlJBWV9TSVpFKGRldi1cdTAwM2V0eHFfbG9jaykgd2l0aCB0aGUgbWFjcm8gQUlST0hBX05VTV9ORVRERVZfVFhfUklOR1MgdXNlZCB0byBkZWZpbmUgdGhlIGFycmF5IHNpemUuIFRoaXMgaXMgYSBwdXJlbHkgY29zbWV0aWMgY2hhbmdlIHRoYXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAwOjExOjIwLjY0NDcxODYzOVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5NzQxMTY5OTA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZXBsYWNlcyBBUlJBWV9TSVpFKGRldi1cXHUwMDNldHhxX2xvY2spIHdpdGggdGhlIG1hY3JvIEFJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTIHVzZWQgdG8gZGVmaW5lIHRoZSBhcnJheSBzaXplLiBUaGlzIGlzIGEgcHVyZWx5IGNvc21ldGljIGNoYW5nZSB0aGF0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAwOjExOjIwLjY0NDcyNTY0OVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDM0NjA1OTM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNjg2NmMzZTljYjY3ZGMwY2M0ODVhZTlkOGRmNDVhYWYzZGVmNmI1N1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEF1ZyAyIDAwOjExOjE5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXFxuaW5kZXggZGJhN2M1MmMwODk2OS4uNjQ2MTllOWE3MDRkZCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguY1xcbkBAIC0zNDY3LDcgKzM0NjcsNyBAQCBzdGF0aWMgaW50IGFpcm9oYV9hbGxvY19nZG1fZGV2aWNlKHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXFxuIFxcdG5ldGRldi1cXHUwMDNlZGV2Lm9mX25vZGUgPSBvZl9ub2RlX2dldChucCk7XFxuIFxcdGRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuIFxcdHU2NF9zdGF0c19pbml0KFxcdTAwMjZkZXYtXFx1MDAzZXN0YXRzLnN5bmNwKTtcXG4tXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUoZGV2LVxcdTAwM2V0eHFfbG9jayk7IGkrKylcXG4rXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTOyBpKyspXFxuIFxcdFxcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZkZXYtXFx1MDAzZXR4cV9sb2NrW2ldKTtcXG4gXFx0ZGV2LVxcdTAwM2Vwb3J0ID0gcG9ydDtcXG4gXFx0ZGV2LVxcdTAwM2VldGggPSBldGg7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAwOjExOjIxLjA3OTg5ODI4M1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjE5MzA1OTg0NDcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZXBsYWNlcyBBUlJBWV9TSVpFKGRldi1cXHUwMDNldHhxX2xvY2spIHdpdGggdGhlIG1hY3JvIEFJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTIHVzZWQgdG8gZGVmaW5lIHRoZSBhcnJheSBzaXplLiBUaGlzIGlzIGEgcHVyZWx5IGNvc21ldGljIGNoYW5nZSB0aGF0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDY4NjZjM2U5Y2I2N2RjMGNjNDg1YWU5ZDhkZjQ1YWFmM2RlZjZiNTdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEF1ZyAyIDAwOjExOjE5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmNcbmluZGV4IGRiYTdjNTJjMDg5NjkuLjY0NjE5ZTlhNzA0ZGQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXG5AQCAtMzQ2Nyw3ICszNDY3LDcgQEAgc3RhdGljIGludCBhaXJvaGFfYWxsb2NfZ2RtX2RldmljZShzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLFxuIFx0bmV0ZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQobnApO1xuIFx0ZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbiBcdHU2NF9zdGF0c19pbml0KFx1MDAyNmRldi1cdTAwM2VzdGF0cy5zeW5jcCk7XG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKGRldi1cdTAwM2V0eHFfbG9jayk7IGkrKylcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTOyBpKyspXG4gXHRcdHNwaW5fbG9ja19pbml0KFx1MDAyNmRldi1cdTAwM2V0eHFfbG9ja1tpXSk7XG4gXHRkZXYtXHUwMDNlcG9ydCA9IHBvcnQ7XG4gXHRkZXYtXHUwMDNlZXRoID0gZXRoO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDA6MTE6MjEuMDc5ODk5NDUzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI5NDA0MDUxNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIHRoZSBleHBlcnQ6XG5cbioqSW52ZXN0aWdhdGluZyBhIE5ldHdvcmsgRHJpdmVyIFBhdGNoKipcblxuQWxyaWdodCwgbGV0J3MgZGlzc2VjdCB0aGlzIHBhdGNoLiBJdCBsb29rcyBsaWtlIHdlJ3JlIHplcm9pbmcgaW4gb24gYSBjaGFuZ2UgaW4gdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jYCBmaWxlLiBTcGVjaWZpY2FsbHksIHRoZSBtb2RpZmljYXRpb24gY2F1Z2h0IG15IGV5ZTogdGhlIGBBUlJBWV9TSVpFKGRldi1cdTAwM2V0eHFfbG9jaylgIGlzIGJlaW5nIHN3YXBwZWQgb3V0IGZvciBgQUlST0hBX05VTV9ORVRERVZfVFhfUklOR1NgIHdpdGhpbiB0aGUgYGFpcm9oYV9hbGxvY19nZG1fZGV2aWNlYCBmdW5jdGlvbi4gSSBpbW1lZGlhdGVseSB3YW50IHRvIHVuZGVyc3RhbmQgdGhlIHJlYXNvbmluZyBiZWhpbmQgdGhpcywgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCdzIGdvaW5nIG9uIHdpdGhpbiB0aGVzZSByb3V0aW5lcy4gRmlyc3QsIEkgbmVlZCB0byBjaGVjayB0aGUgZnVuY3Rpb24sIGBhaXJvaGFfYWxsb2NfZ2RtX2RldmljZWAgaXRzZWxmLiBJIG5lZWQgdG8gc2VlIGhvdyB0aGUgY2hhbmdlIGltcGFjdHMgdGhlIGBkZXYtXHUwMDNldHhxX2xvY2tgIHZhcmlhYmxlLCBpdHMgaW5pdGlhbGl6YXRpb24sIGFuZCB1c2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMzMsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4OSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAwOjExOjI0LjM3Mzk0Mjc2N1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MDc3NzYyOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0eHFfbG9ja1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9OTcxPXN0YXRpYyBpbnQgYWlyb2hhX3FkbWFfdHhfbmFwaV9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTA0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjEwNDc6XFx0XFx0XFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZkZXYtXFx1MDAzZXR4cV9sb2NrW3FpZHhdKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTEwNDgtXFx0XFx0XFx0bmV0ZGV2X3R4X2NvbXBsZXRlZF9xdWV1ZSh0eHEsIDEsIHNrYi1cXHUwMDNlbGVuKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjEwNDk6XFx0XFx0XFx0c3Bpbl91bmxvY2tfYmgoXFx1MDAyNmRldi1cXHUwMDNldHhxX2xvY2tbcWlkeF0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTA1MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzQxMj1zdGF0aWMgaW50IGFpcm9oYV9hbGxvY19nZG1fZGV2aWNlKHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0NzAtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTOyBpKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNDcxOlxcdFxcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZkZXYtXFx1MDAzZXR4cV9sb2NrW2ldKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0NzItXFx0ZGV2LVxcdTAwM2Vwb3J0ID0gcG9ydDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDA6MTE6MjQuNDY0NzI0NjA2WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjczNjEyMDI3MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIGlmIEkgd2VyZSB0aGlua2luZyB0aGVzZSB0aG91Z2h0czpcblxuKipBbmFseXppbmcgdGhlIEFpcm9oYSBHRE0gUG9ydCBTdHJ1Y3R1cmUqKlxuXG5Pa2F5LCBsZXQncyBkaXZlIGluLiBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIEFpcm9oYSBFdGhlcm5ldCBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgR0RNIHBvcnQgc3RydWN0dXJlLiBJIGJlbGlldmUgSSdsbCBmaW5kIHRoZSBkZWZpbml0aW9uIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oYCwgb3Igc29tZXRoaW5nIHZlcnkgc2ltaWxhciB3aXRoaW4gdGhlIGRyaXZlcidzIHNvdXJjZSB0cmVlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIGBhaXJvaGFfZ2RtX3BvcnRgIHN0cnVjdCBpcyBkZWZpbmVkOyBJJ2xsIHN0YXJ0IGJ5IGxvb2tpbmcgYXQgdGhpcy4gVGltZSB0byBnZXQgbXkgYmVhcmluZ3MgYW5kIHNlZSB3aGF0IHdlJ3JlIHdvcmtpbmcgd2l0aCBoZXJlLiBJJ20gYWZ0ZXIgdGhlIGRldGFpbHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4NTMsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMDoxMToyNy4yMDA4NDcyMjdaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzQyMzQ1NzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RydWN0IGFpcm9oYV9nZG1fcG9ydFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9NzQ9c3RhdGljIGludCBhaXJvaGFfc2V0X21hY2FkZHIoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYsIGNvbnN0IHU4ICphZGRyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy04NS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShldGgtXFx1MDAzZXBvcnRzKTsgaSsrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo4NjpcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZXRoLVxcdTAwM2Vwb3J0c1tpXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTg3LVxcdFxcdGludCBqO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xNTk9c3RhdGljIGludCBhaXJvaGFfc2V0X3ZpcF9mb3JfZ2RtX3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYsIGJvb2wgZW5hYmxlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTYwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE2MTpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVxcdTAwM2Vwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTYyLVxcdHN0cnVjdCBhaXJvaGFfZXRoICpldGggPSBkZXYtXFx1MDAzZWV0aDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9NjM5PWFpcm9oYV9xZG1hX2dldF9nZG1fZGV2KHN0cnVjdCBhaXJvaGFfZXRoICpldGgsIHN0cnVjdCBhaXJvaGFfcWRtYV9kZXNjICpkZXNjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjQwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjY0MTpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjQyLVxcdHUxNiBwLCBkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz02NjA9c3RhdGljIGludCBhaXJvaGFfcWRtYV9yeF9wcm9jZXNzKHN0cnVjdCBhaXJvaGFfcXVldWUgKnEsIGludCBidWRnZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTcyOC1cXHRcXHRpZiAobmV0ZGV2X3VzZXNfZHNhKG5ldGRldikpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjcyOTpcXHRcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVxcdTAwM2Vwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNzMwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz05MTY9c3RhdGljIHZvaWQgYWlyb2hhX3FkbWFfd2FrZV9uZXRkZXZfdHhxcyhzdHJ1Y3QgYWlyb2hhX3F1ZXVlICpxKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy05MjItXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUoZXRoLVxcdTAwM2Vwb3J0cyk7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6OTIzOlxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBldGgtXFx1MDAzZXBvcnRzW2ldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtOTI0LVxcdFxcdGludCBkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xNjk1PXN0YXRpYyB2b2lkIGFpcm9oYV91cGRhdGVfaHdfc3RhdHMoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNjk2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE2OTc6XFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cXHUwMDNlcG9ydDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE2OTgtXFx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IGRldi1cXHUwMDNlZXRoO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xOTEwPXN0YXRpYyBpbnQgYWlyb2hhX2Rldl9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5MTItXFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTkxMzpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVxcdTAwM2Vwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTkxNC1cXHR1MzIgcHNlX3BvcnQgPSBGRV9QU0VfUE9SVF9QUEUxO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xOTQzPXN0YXRpYyBpbnQgYWlyb2hhX2Rldl9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5NDUtXFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTk0NjpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVxcdTAwM2Vwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTk0Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MTk3OT1zdGF0aWMgaW50IGFpcm9oYV9lbmFibGVfZ2RtMl9sb29wYmFjayhzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5ODAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTk4MTpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVxcdTAwM2Vwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTk4Mi1cXHRzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoID0gZGV2LVxcdTAwM2VldGg7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTIwMzc9c3RhdGljIGludCBhaXJvaGFfZGlzYWJsZV9nZG0yX2xvb3BiYWNrKHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjAzOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMDM5OlxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXFx1MDAzZXBvcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMDQwLVxcdHN0cnVjdCBhaXJvaGFfZXRoICpldGggPSBkZXYtXFx1MDAzZWV0aDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjA4NT1haXJvaGFfZ2V0X3dhbl9nZG1fZGV2KHN0cnVjdCBhaXJvaGFfZXRoICpldGgpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwODktXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUoZXRoLVxcdTAwM2Vwb3J0cyk7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjA5MDpcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZXRoLVxcdTAwM2Vwb3J0c1tpXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwOTEtXFx0XFx0aW50IGo7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTIxNDM9c3RhdGljIGludCBhaXJvaGFfZGV2X2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjE0NS1cXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMTQ2OlxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXFx1MDAzZXBvcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMTQ3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0yMTk5PXN0YXRpYyBpbnQgYWlyb2hhX2Rldl9jaGFuZ2VfbXR1KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBtdHUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMDEtXFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjIwMjpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVxcdTAwM2Vwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjIwMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjIxMT1zdGF0aWMgdTE2IGFpcm9oYV9kZXZfc2VsZWN0X3F1ZXVlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMTUtXFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjIxNjpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVxcdTAwM2Vwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjIxNy1cXHRpbnQgcXVldWUsIGNoYW5uZWw7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTIyNzU9aW50IGFpcm9oYV9nZXRfZmVfcG9ydChzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyNzYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjI3NzpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZGV2LVxcdTAwM2Vwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjI3OC1cXHRzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoID0gZGV2LVxcdTAwM2VldGg7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTMxNjk9c3RhdGljIHZvaWQgYWlyb2hhX2Rpc2FibGVfcW9zX2Zvcl9nZG0zNChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMTcxLVxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMxNzI6XFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cXHUwMDNlcG9ydDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxNzMtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzE5Nj1zdGF0aWMgaW50IGFpcm9oYV9lbmFibGVfcW9zX2Zvcl9nZG0zNChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMTk5LVxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqd2FuX2RldiwgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMjAwOlxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXFx1MDAzZXBvcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMjAxLVxcdHN0cnVjdCBhaXJvaGFfZXRoICpldGggPSBkZXYtXFx1MDAzZWV0aDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzM1Mj1zdGF0aWMgY29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzIGFpcm9oYV9ldGh0b29sX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzM1OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMzNjA6c3RhdGljIGludCBhaXJvaGFfbWV0YWRhdGFfZHN0X2FsbG9jKHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMzYxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzM3OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMzNzk6c3RhdGljIHZvaWQgYWlyb2hhX21ldGFkYXRhX2RzdF9mcmVlKHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMzgwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzM5MT1ib29sIGFpcm9oYV9pc192YWxpZF9nZG1fZGV2KHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMzOTYtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUoZXRoLVxcdTAwM2Vwb3J0cyk7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzM5NzpcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZXRoLVxcdTAwM2Vwb3J0c1tpXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMzOTgtXFx0XFx0aW50IGo7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTM0MTI9c3RhdGljIGludCBhaXJvaGFfYWxsb2NfZ2RtX2RldmljZShzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzQxMzpcXHRcXHRcXHRcXHQgICBzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzQxNC1cXHRcXHRcXHRcXHQgICBpbnQgbmJxLCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zNDgwPXN0YXRpYyBpbnQgYWlyb2hhX2FsbG9jX2dkbV9wb3J0KHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0ODMtXFx0Y29uc3QgX19iZTMyICppZF9wdHIgPSBvZl9nZXRfcHJvcGVydHkobnAsIFxcXCJyZWdcXFwiLCBOVUxMKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM0ODQ6XFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM0ODUtXFx0c3RydWN0IGRldmljZV9ub2RlICpub2RlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zNTYwPXN0YXRpYyBpbnQgYWlyb2hhX3JlZ2lzdGVyX2dkbV9kZXZpY2VzKHN0cnVjdCBhaXJvaGFfZXRoICpldGgpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM1NjQtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUoZXRoLVxcdTAwM2Vwb3J0cyk7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzU2NTpcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZXRoLVxcdTAwM2Vwb3J0c1tpXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM1NjYtXFx0XFx0aW50IGo7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTM1ODk9c3RhdGljIGludCBhaXJvaGFfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzY5Mi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShldGgtXFx1MDAzZXBvcnRzKTsgaSsrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNjkzOlxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBldGgtXFx1MDAzZXBvcnRzW2ldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzY5NC1cXHRcXHRpbnQgajtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzcyMT1zdGF0aWMgdm9pZCBhaXJvaGFfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM3MzEtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUoZXRoLVxcdTAwM2Vwb3J0cyk7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzczMjpcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0ID0gZXRoLVxcdTAwM2Vwb3J0c1tpXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM3MzMtXFx0XFx0aW50IGo7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTM3NTc9c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBlbjc1ODFfeHNpX3JzdHNfbmFtZXNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzc2NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjM3NjU6c3RhdGljIGludCBhaXJvaGFfZW43NTgxX2dldF9zcG9ydChzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0LCBpbnQgbmJxKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzc2Ni17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM3ODgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNzg5OnN0YXRpYyB1MzIgYWlyb2hhX2VuNzU4MV9nZXRfdmlwX3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCwgaW50IG5icSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM3OTAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zODQ0PXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYW43NTgzX3hzaV9yc3RzX25hbWVzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM4NTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozODUxOnN0YXRpYyBpbnQgYWlyb2hhX2FuNzU4M19nZXRfc3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCwgaW50IG5icSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM4NTIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zODcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mzg3MzpzdGF0aWMgdTMyIGFpcm9oYV9hbjc1ODNfZ2V0X3ZpcF9wb3J0KHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQsIGludCBuYnEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zODc0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg9NTc4PXN0cnVjdCBhaXJvaGFfZ2RtX2RldiB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC01NzktXFx0c3RydWN0IGFpcm9oYV9xZG1hIF9fcmN1ICpxZG1hO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NTgwOlxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC01ODEtXFx0c3RydWN0IGFpcm9oYV9ldGggKmV0aDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNTk5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NjAwOnN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNjAxLVxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2c1tBSVJPSEFfTUFYX05VTV9HRE1fREVWU107XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oPTYzMj1zdHJ1Y3QgYWlyb2hhX2V0aF9zb2NfZGF0YSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTYzNy1cXHRzdHJ1Y3Qge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NjM4OlxcdFxcdGludCAoKmdldF9zcG9ydCkoc3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCwgaW50IG5icSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo2Mzk6XFx0XFx0dTMyICgqZ2V0X3ZpcF9wb3J0KShzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0LCBpbnQgbmJxKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTY0MC1cXHRcXHRpbnQgKCpnZXRfZGV2X2Zyb21fc3BvcnQpKHN0cnVjdCBhaXJvaGFfcWRtYV9kZXNjICpkZXNjLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaD02NDU9c3RydWN0IGFpcm9oYV9ldGgge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC02NjMtXFx0c3RydWN0IGFpcm9oYV9xZG1hIHFkbWFbQUlST0hBX01BWF9OVU1fUURNQV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo2NjQ6XFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydHNbQUlST0hBX01BWF9OVU1fR0RNX1BPUlRTXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTY2NS19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0xMDM9dm9pZCBhaXJvaGFfcHBlX3NldF94bWl0X2ZyYW1lX3NpemUoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xMDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MTA1OlxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXFx1MDAzZXBvcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xMDYtXFx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IGRldi1cXHUwMDNlZXRoO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0xMzA9c3RhdGljIHZvaWQgYWlyb2hhX3BwZV9od19pbml0KHN0cnVjdCBhaXJvaGFfcHBlICpwcGUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTE5OS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShldGgtXFx1MDAzZXBvcnRzKTsgaSsrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzoyMDA6XFx0XFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGV0aC1cXHUwMDNlcG9ydHNbaV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0yMDEtXFx0XFx0aW50IGo7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jPTMzMz1zdGF0aWMgaW50IGFpcm9oYV9wcGVfZm9lX2VudHJ5X3ByZXBhcmUoc3RydWN0IGFpcm9oYV9ldGggKmV0aCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMzcwLVxcdFxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjM3MTpcXHRcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMzcyLVxcdFxcdFxcdHU4IHBzZV9wb3J0LCBjaGFubmVsO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0xNTEyPXZvaWQgYWlyb2hhX3BwZV9pbml0X3VwZF9tZW0oc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYsIGNvbnN0IHU4ICphZGRyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTUxMy17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzoxNTE0OlxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXFx1MDAzZXBvcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xNTE1LVxcdHN0cnVjdCBhaXJvaGFfZXRoICpldGggPSBkZXYtXFx1MDAzZWV0aDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDA6MTE6MjcuMjc1MDg2NDU2WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzIxNDAxNTExNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuXG5cbioqRXhhbWluaW5nIHRoZSBBaXJvaGEgRXRoZXJuZXQgRHJpdmVyIEhlYWRlcioqXG5cblJpZ2h0LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgYXJjaGl0ZWN0dXJlIG9mIHRoaXMgQWlyb2hhIEV0aGVybmV0IGRyaXZlci4gTGV0J3Mgc3RhcnQgYnkgbG9va2luZyBkaXJlY3RseSBhdCB0aGUgaGVhZGVyIGZpbGUsIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oYC4gSSdtIHNwZWNpZmljYWxseSBpbnRlcmVzdGVkIGluIHVuZGVyc3RhbmRpbmcgdGhlIGRldmljZSBzdHJ1Y3R1cmUgYW5kIHRoZSBudW1iZXIgb2YgdHJhbnNtaXQgcmluZ3MuIEknbGwgbmVlZCB0byBsb2NhdGUgYHN0cnVjdCBhaXJvaGFfZ2RtX2RldmAg4oCTIHRoYXQgbGlrZWx5IGhvbGRzIHRoZSBjb3JlIGRldmljZSBpbmZvcm1hdGlvbiBhbmQgaGFuZGxlcyB0aGUgbG93LWxldmVsIGludGVyYWN0aW9ucy4gQW5kIHRoZW4sIGVxdWFsbHkgaW1wb3J0YW50LCBJJ20gZ29pbmcgdG8gbG9vayBmb3IgYEFJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTYC4gVGhpcyBjb25zdGFudCB3aWxsIHRlbGwgbWUgaG93IG1hbnkgdHJhbnNtaXQgcXVldWVzIGFyZSBzdXBwb3J0ZWQuIEtub3dpbmcgdGhpcyBpbmZvcm1hdGlvbiBpcyBjcml0aWNhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgY29uY3VycmVuY3kgYW5kIHJlc291cmNlIGFsbG9jYXRpb24gd2l0aGluIHRoZSBkcml2ZXIuIFRoaXMgd2lsbCBnaXZlIG1lIGEgZ3JlYXQgb3ZlcnZpZXcgb2YgdGhlIGRyaXZlcidzIHNldHVwIGFuZCBjYXBhYmlsaXRpZXMuIExldCdzIHNlZSB3aGF0J3MgaW4gdGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjg2MzEsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMDoxMTozMC40ODkxMDYxMTFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzIxODc3MDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RydWN0IGFpcm9oYV9nZG1fZGV2XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz02OD1zdGF0aWMgdm9pZCBhaXJvaGFfcWRtYV9pcnFfZGlzYWJsZShzdHJ1Y3QgYWlyb2hhX2lycV9iYW5rICppcnFfYmFuayxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo3NDpzdGF0aWMgaW50IGFpcm9oYV9zZXRfbWFjYWRkcihzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiwgY29uc3QgdTggKmFkZHIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy03NS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTkyLVxcdFxcdGZvciAoaiA9IDA7IGogXFx1MDAzYyBBUlJBWV9TSVpFKHBvcnQtXFx1MDAzZWRldnMpOyBqKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjkzOlxcdFxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqaXRlcl9kZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy05NC1cXHRcXHRcXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xNDY9c3RhdGljIHZvaWQgYWlyb2hhX3NldF9nZG1fcG9ydF9md2RfY2ZnKHN0cnVjdCBhaXJvaGFfZXRoICpldGgsIHUzMiBhZGRyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xNTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxNTk6c3RhdGljIGludCBhaXJvaGFfc2V0X3ZpcF9mb3JfZ2RtX3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYsIGJvb2wgZW5hYmxlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTYwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9NTkyPXN0YXRpYyBpbnQgYWlyb2hhX3FkbWFfZmlsbF9yeF9xdWV1ZShzdHJ1Y3QgYWlyb2hhX3F1ZXVlICpxKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02MzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzo2Mzg6c3RhdGljIHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy02MzktYWlyb2hhX3FkbWFfZ2V0X2dkbV9kZXYoc3RydWN0IGFpcm9oYV9ldGggKmV0aCwgc3RydWN0IGFpcm9oYV9xZG1hX2Rlc2MgKmRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTY2MD1zdGF0aWMgaW50IGFpcm9oYV9xZG1hX3J4X3Byb2Nlc3Moc3RydWN0IGFpcm9oYV9xdWV1ZSAqcSwgaW50IGJ1ZGdldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtNjcxLVxcdFxcdHUzMiBoYXNoLCByZWFzb24sIG1zZzEsIGRlc2NfY3RybDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjY3MjpcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTY3My1cXHRcXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz05MTY9c3RhdGljIHZvaWQgYWlyb2hhX3FkbWFfd2FrZV9uZXRkZXZfdHhxcyhzdHJ1Y3QgYWlyb2hhX3F1ZXVlICpxKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy05MjktXFx0XFx0Zm9yIChkID0gMDsgZCBcXHUwMDNjIEFSUkFZX1NJWkUocG9ydC1cXHUwMDNlZGV2cyk7IGQrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6OTMwOlxcdFxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gcG9ydC1cXHUwMDNlZGV2c1tkXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTkzMS1cXHRcXHRcXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz05NzE9c3RhdGljIGludCBhaXJvaGFfcWRtYV90eF9uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xMDQwLVxcdFxcdGlmIChza2IpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjEwNDE6XFx0XFx0XFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihza2ItXFx1MDAzZWRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xMDQyLVxcdFxcdFxcdHUxNiBxaWR4ID0gc2tiX2dldF9xdWV1ZV9tYXBwaW5nKHNrYik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTE2ODA9c3RhdGljIHZvaWQgYWlyb2hhX3FkbWFfc3RvcF9uYXBpKHN0cnVjdCBhaXJvaGFfcWRtYSAqcWRtYSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTY5NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE2OTU6c3RhdGljIHZvaWQgYWlyb2hhX3VwZGF0ZV9od19zdGF0cyhzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE2OTYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0xODk5PXN0YXRpYyB2b2lkIGFpcm9oYV9kZXZfc2V0X3htaXRfZnJhbWVfc2l6ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTkwMC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoxOTAxOlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5MDItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTE5MTA9c3RhdGljIGludCBhaXJvaGFfZGV2X29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5MTEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTkxMjpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTEzLVxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXFx1MDAzZXBvcnQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTE5NDM9c3RhdGljIGludCBhaXJvaGFfZGV2X3N0b3Aoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5NDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTk0NTpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTQ2LVxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXFx1MDAzZXBvcnQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTE5NjA9c3RhdGljIGludCBhaXJvaGFfZGV2X3NldF9tYWNhZGRyKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHZvaWQgKnApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTYxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjE5NjI6XFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMTk2My1cXHRzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIgPSBwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0xOTc4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MTk3OTpzdGF0aWMgaW50IGFpcm9oYV9lbmFibGVfZ2RtMl9sb29wYmFjayhzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTE5ODAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMDM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjAzNzpzdGF0aWMgaW50IGFpcm9oYV9kaXNhYmxlX2dkbTJfbG9vcGJhY2soc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMDM4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjA4My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIwODQ6c3RhdGljIHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMDg1LWFpcm9oYV9nZXRfd2FuX2dkbV9kZXYoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjA5Ni1cXHRcXHRmb3IgKGogPSAwOyBqIFxcdTAwM2MgQVJSQVlfU0laRShwb3J0LVxcdTAwM2VkZXZzKTsgaisrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMDk3OlxcdFxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gcG9ydC1cXHUwMDNlZGV2c1tqXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIwOTgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxMDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMTA3OnN0YXRpYyB2b2lkIGFpcm9oYV9kZXZfc2V0X3FkbWEoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMTA4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjE0Mz1zdGF0aWMgaW50IGFpcm9oYV9kZXZfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjE0NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMTQ1OlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxNDYtXFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cXHUwMDNlcG9ydDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjE3Nz1zdGF0aWMgdm9pZCBhaXJvaGFfZGV2X2dldF9zdGF0czY0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIxNzkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjE4MDpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMTgxLVxcdHVuc2lnbmVkIGludCBzdGFydDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjE5OT1zdGF0aWMgaW50IGFpcm9oYV9kZXZfY2hhbmdlX210dShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBpbnQgbXR1KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjIwMC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMjAxOlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMDItXFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cXHUwMDNlcG9ydDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjIxMT1zdGF0aWMgdTE2IGFpcm9oYV9kZXZfc2VsZWN0X3F1ZXVlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyMTQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjIxNTpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yMjE2LVxcdHN0cnVjdCBhaXJvaGFfZ2RtX3BvcnQgKnBvcnQgPSBkZXYtXFx1MDAzZXBvcnQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTIyMzE9c3RhdGljIHUzMiBhaXJvaGFfZ2V0X2RzYV90YWcoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjI3NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjIyNzU6aW50IGFpcm9oYV9nZXRfZmVfcG9ydChzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyNzYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0yMjkxPXN0YXRpYyBuZXRkZXZfdHhfdCBhaXJvaGFfZGV2X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjI5My17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyMjk0OlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTIyOTUtXFx0dTMyIG5yX2ZyYWdzLCB0YWcsIG1zZzAsIG1zZzEsIGxlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjQ0Mj1zdGF0aWMgdm9pZCBhaXJvaGFfZXRodG9vbF9nZXRfZHJ2aW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNDQ0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI0NDU6XFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjQ0Ni1cXHRzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoID0gZGV2LVxcdTAwM2VldGg7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTI0NTI9c3RhdGljIHZvaWQgYWlyb2hhX2V0aHRvb2xfZ2V0X21hY19zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNDU0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI0NTU6XFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjQ1Ni1cXHR1bnNpZ25lZCBpbnQgc3RhcnQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTI0ODM9YWlyb2hhX2V0aHRvb2xfZ2V0X3Jtb25fc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjQ4Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyNDg3OlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI0ODgtXFx0c3RydWN0IGFpcm9oYV9od19zdGF0cyAqaHdfc3RhdHMgPSBcXHUwMDI2ZGV2LVxcdTAwM2VzdGF0cztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjUxMj1zdGF0aWMgaW50IGFpcm9oYV9xZG1hX3NldF9jaGFuX3R4X3NjaGVkKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI1MTUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjUxNjpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNTE3LVxcdHN0cnVjdCBhaXJvaGFfcWRtYSAqcWRtYTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MjYwMj1zdGF0aWMgaW50IGFpcm9oYV9xZG1hX2dldF90eF9ldHNfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgaW50IGNoYW5uZWwsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI2MDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MjYwNTpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yNjA2LVxcdHUzMiBjcHVfdHhfcGFja2V0cywgZndkX3R4X3BhY2tldHM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTI4NzE9c3RhdGljIGludCBhaXJvaGFfcWRtYV9zZXRfdHhfcmF0ZV9saW1pdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yODc0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjI4NzU6XFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjg3Ni1cXHRzdHJ1Y3QgYWlyb2hhX3FkbWEgKnFkbWE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTI5MTc9c3RhdGljIGludCBhaXJvaGFfdGNfaHRiX2FsbG9jX2xlYWZfcXVldWUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMjkyMS1cXHRpbnQgZXJyLCBudW1fdHhfcXVldWVzID0gQUlST0hBX05VTV9UWF9SSU5HICsgY2hhbm5lbCArIDE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzoyOTIyOlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5MjMtXFx0c3RydWN0IGFpcm9oYV9xZG1hICpxZG1hO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0yOTU5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6Mjk2MDpzdGF0aWMgaW50IGFpcm9oYV9xZG1hX3NldF9yeF9tZXRlcihzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTI5NjEtXFx0XFx0XFx0XFx0ICAgIHUzMiByYXRlLCB1MzIgYnVja2V0X3NpemUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTMwMzg9c3RhdGljIGludCBhaXJvaGFfZGV2X3RjX21hdGNoYWxsKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMwNDEtXFx0ZW51bSB0cnRjbV91bml0X3R5cGUgdW5pdF90eXBlID0gVFJUQ01fQllURV9VTklUO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzA0MjpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMDQzLVxcdHUzMiByYXRlID0gMCwgYnVja2V0X3NpemUgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zMDc0PXN0YXRpYyBpbnQgYWlyb2hhX2Rldl9zZXR1cF90Y19ibG9ja19jYihlbnVtIHRjX3NldHVwX3R5cGUgdHlwZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzA3Ny1cXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2ID0gY2JfcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMwNzg6XFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzA3OS1cXHRzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoID0gZGV2LVxcdTAwM2VldGg7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTMxMzU9c3RhdGljIHZvaWQgYWlyb2hhX3RjX3JlbW92ZV9odGJfcXVldWUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgaW50IHF1ZXVlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzEzNi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMTM3OlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxMzgtXFx0aW50IG51bV90eF9xdWV1ZXMgPSBBSVJPSEFfTlVNX1RYX1JJTkc7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTMxNTM9c3RhdGljIGludCBhaXJvaGFfdGNfaHRiX2RlbGV0ZV9sZWFmX3F1ZXVlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxNTYtXFx0dTMyIGNoYW5uZWwgPSBUQ19IX01JTihvcHQtXFx1MDAzZWNsYXNzaWQpICUgQUlST0hBX05VTV9RT1NfQ0hBTk5FTFM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMTU3OlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxNTgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTMxNjk9c3RhdGljIHZvaWQgYWlyb2hhX2Rpc2FibGVfcW9zX2Zvcl9nZG0zNChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzE3MC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMTcxOlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMxNzItXFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cXHUwMDNlcG9ydDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzE5Nj1zdGF0aWMgaW50IGFpcm9oYV9lbmFibGVfcW9zX2Zvcl9nZG0zNChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMTk4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jOjMxOTk6XFx0c3RydWN0IGFpcm9oYV9nZG1fZGV2ICp3YW5fZGV2LCAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMyMDAtXFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydCA9IGRldi1cXHUwMDNlcG9ydDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzI2MT1zdGF0aWMgaW50IGFpcm9oYV90Y19odGJfZGVzdHJveShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzI2Mi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozMjYzOlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTMyNjQtXFx0aW50IHE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTMyNzQ9c3RhdGljIGludCBhaXJvaGFfdGNfZ2V0X2h0Yl9nZXRfbGVhZl9xdWV1ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMjc3LVxcdHUzMiBjaGFubmVsID0gVENfSF9NSU4ob3B0LVxcdTAwM2VjbGFzc2lkKSAlIEFJUk9IQV9OVU1fUU9TX0NIQU5ORUxTO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzI3ODpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMjc5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zMjkwPXN0YXRpYyBpbnQgYWlyb2hhX3RjX3NldHVwX3FkaXNjX2h0YihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMjk0LVxcdGNhc2UgVENfSFRCX0NSRUFURToge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzI5NTpcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zMjk2LVxcdFxcdGludCBlcnI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTMzOTE9Ym9vbCBhaXJvaGFfaXNfdmFsaWRfZ2RtX2RldihzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzM5MjpcXHRcXHRcXHQgICAgIHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzM5My17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTM0MTI9c3RhdGljIGludCBhaXJvaGFfYWxsb2NfZ2RtX2RldmljZShzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNDE2LVxcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNDE3OlxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzQxOC1cXHRpbnQgZXJyLCBpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYz0zNTYwPXN0YXRpYyBpbnQgYWlyb2hhX3JlZ2lzdGVyX2dkbV9kZXZpY2VzKHN0cnVjdCBhaXJvaGFfZXRoICpldGgpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM1NzEtXFx0XFx0Zm9yIChqID0gMDsgaiBcXHUwMDNjIEFSUkFZX1NJWkUocG9ydC1cXHUwMDNlZGV2cyk7IGorKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzU3MjpcXHRcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IHBvcnQtXFx1MDAzZWRldnNbal07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNTczLVxcdFxcdFxcdGludCBlcnI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jPTM1ODk9c3RhdGljIGludCBhaXJvaGFfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmMtMzY5OS1cXHRcXHRmb3IgKGogPSAwOyBqIFxcdTAwM2MgQVJSQVlfU0laRShwb3J0LVxcdTAwM2VkZXZzKTsgaisrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYzozNzAwOlxcdFxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gcG9ydC1cXHUwMDNlZGV2c1tqXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM3MDEtXFx0XFx0XFx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM9MzcyMT1zdGF0aWMgdm9pZCBhaXJvaGFfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5jLTM3MzgtXFx0XFx0Zm9yIChqID0gMDsgaiBcXHUwMDNjIEFSUkFZX1NJWkUocG9ydC1cXHUwMDNlZGV2cyk7IGorKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmM6MzczOTpcXHRcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiA9IHBvcnQtXFx1MDAzZWRldnNbal07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguYy0zNzQwLVxcdFxcdFxcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oPTU3Mz1lbnVtIGFpcm9oYV9kZXZfZmxhZ3Mge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC01NzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo1Nzg6c3RydWN0IGFpcm9oYV9nZG1fZGV2IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTU3OS1cXHRzdHJ1Y3QgYWlyb2hhX3FkbWEgX19yY3UgKnFkbWE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oPTYwMD1zdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oOjYwMTpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldnNbQUlST0hBX01BWF9OVU1fR0RNX0RFVlNdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNjAyLVxcdGludCBpZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg9Njk3PXN0YXRpYyBpbmxpbmUgdTE2IGFpcm9oYV9xZG1hX2dldF90eHEoc3RydWN0IGFpcm9oYV9xZG1hICpxZG1hLCB1MTYgcWlkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC03MDEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo3MDI6c3RhdGljIGlubGluZSBib29sIGFpcm9oYV9pc19sYW5fZ2RtX2RldihzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTcwMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oPTcxMj1zdGF0aWMgaW5saW5lIGJvb2wgYWlyb2hhX2lzXzc1ODMoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNzE2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NzE3OmludCBhaXJvaGFfZ2V0X2ZlX3BvcnQoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNzE4LWJvb2wgYWlyb2hhX2lzX3ZhbGlkX2dkbV9kZXYoc3RydWN0IGFpcm9oYV9ldGggKmV0aCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oOjcxOTpcXHRcXHRcXHQgICAgIHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTcyMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg9NzIzPXN0YXRpYyBpbmxpbmUgc3RydWN0IGFpcm9oYV9xZG1hICpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oOjcyNDphaXJvaGFfcWRtYV9kZXJlZihzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTcyNS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTczMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oOjczMTp2b2lkIGFpcm9oYV9wcGVfc2V0X3htaXRfZnJhbWVfc2l6ZShzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo3MzI6dm9pZCBhaXJvaGFfcHBlX3NldF9jcHVfcG9ydChzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiwgdTggcHBlX2lkLCB1OCBmcG9ydCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC03MzMtYm9vbCBhaXJvaGFfcHBlX2lzX2VuYWJsZWQoc3RydWN0IGFpcm9oYV9ldGggKmV0aCwgaW50IGluZGV4KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg9NzM4PXZvaWQgYWlyb2hhX3BwZV9kZWluaXQoc3RydWN0IGFpcm9oYV9ldGggKmV0aCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaDo3Mzk6dm9pZCBhaXJvaGFfcHBlX2luaXRfdXBkX21lbShzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYgKmRldiwgY29uc3QgdTggKmFkZHIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNzQwLXUzMiBhaXJvaGFfcHBlX2dldF90b3RhbF9udW1fZW50cmllcyhzdHJ1Y3QgYWlyb2hhX3BwZSAqcHBlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM9ODQ9c3RhdGljIHUzMiBhaXJvaGFfcHBlX2dldF90aW1lc3RhbXAoc3RydWN0IGFpcm9oYV9wcGUgKnBwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzo5MDp2b2lkIGFpcm9oYV9wcGVfc2V0X2NwdV9wb3J0KHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2LCB1OCBwcGVfaWQsIHU4IGZwb3J0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtOTEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xMDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzoxMDM6dm9pZCBhaXJvaGFfcHBlX3NldF94bWl0X2ZyYW1lX3NpemUoc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xMDQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xMTAtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUocG9ydC1cXHUwMDNlZGV2cyk7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MTExOlxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZCA9IHBvcnQtXFx1MDAzZWRldnNbaV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xMTItXFx0XFx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM9MTMwPXN0YXRpYyB2b2lkIGFpcm9oYV9wcGVfaHdfaW5pdChzdHJ1Y3QgYWlyb2hhX3BwZSAqcHBlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0yMDYtXFx0XFx0Zm9yIChqID0gMDsgaiBcXHUwMDNjIEFSUkFZX1NJWkUocG9ydC1cXHUwMDNlZGV2cyk7IGorKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MjA3OlxcdFxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gcG9ydC1cXHUwMDNlZGV2c1tqXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTIwOC1cXHRcXHRcXHRpbnQgcHBlX2lkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0zMzM9c3RhdGljIGludCBhaXJvaGFfcHBlX2ZvZV9lbnRyeV9wcmVwYXJlKHN0cnVjdCBhaXJvaGFfZXRoICpldGgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTM2OS1cXHRcXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MzcwOlxcdFxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTM3MS1cXHRcXHRcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0ICpwb3J0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0xNDkzPXZvaWQgYWlyb2hhX3BwZV9jaGVja19za2Ioc3RydWN0IGFpcm9oYV9wcGVfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTE1MTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzoxNTEyOnZvaWQgYWlyb2hhX3BwZV9pbml0X3VwZF9tZW0oc3RydWN0IGFpcm9oYV9nZG1fZGV2ICpkZXYsIGNvbnN0IHU4ICphZGRyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTUxMy17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAwOjExOjMwLjU2MTMwMTQyWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjk2NjEyOTU5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGFuYWx5c2lzIG9mIHRoZSBwcm92aWRlZCB0ZXh0LCByZW5kZXJlZCBhcyBhIGZpcnN0LXBlcnNvbiBleHBlcnQgc3VtbWFyeTpcblxuKipEaXZpbmcgaW50byB0aGUgQWlyb2hhIEV0aGVybmV0IERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBmb2N1c2luZyBpbiBvbiB0aGUgQWlyb2hhIEV0aGVybmV0IGRyaXZlciwgc3BlY2lmaWNhbGx5IGBkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oYC4gTGV0J3MgYXNzdW1lIHRoaXMgaXMgYSByZWxldmFudCBjb2RlYmFzZSBmb3IgdGhlIGhhcmR3YXJlIEknbSBjdXJyZW50bHkgYXNzZXNzaW5nLiBNeSBnb2FsIGhlcmUgaXMgdG8gemVybyBpbiBvbiBhIHBhcnRpY3VsYXIgYXNwZWN0LCBwcm9iYWJseSBhIGZ1bmN0aW9uIGRlZmluaXRpb24sIHN0cnVjdHVyZSwgb3IgbWFjcm8uIFRoZSBkaXJlY3Rpb24gcHJvdmlkZWQgc3VnZ2VzdHMgdGhhdCB0aGUgdGFyZ2V0IGlzIGFyb3VuZCBsaW5lIDU3OCBvZiB0aGF0IGhlYWRlciBmaWxlLiBUaGF0J3MgdXN1YWxseSB0aGUgc2lnbiBvZiBhIHNwZWNpZmljIHN0cnVjdHVyZSBkZWNsYXJhdGlvbiwgYW4gZW51bWVyYXRpb24sIG9yIGEgZnVuY3Rpb24gcHJvdG90eXBlLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0J3MgdGhlcmUgYW5kIHdoYXQgaXQgZG9lcy4gSSdtIGdvaW5nIHRvIHN0YXJ0IGJ5IHB1bGxpbmcgdXAgdGhhdCBmaWxlIGFuZCB0aGF0IGxpbmUgZGlyZWN0bHkgdG8gZmluZCB3aGF0J3Mgd2hhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTc0NTAsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMDoxMTozMy41Mjc0MzQ3MjlaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQzNDIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmhcIixcbiAgXCJGaXJzdExpbmVcIjogNTYwLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgNTYwOlxcdFxcdHN0cnVjdCBhaXJvaGFfZXRoICpldGg7XFxuIDU2MTpcXHRcXHR2b2lkIF9faW9tZW0gKnJlZ3M7XFxuIDU2MjpcXHRcXG4gNTYzOlxcdFxcdHN0cnVjdCBhaXJvaGFfaXJxX2JhbmsgaXJxX2JhbmtzW0FJUk9IQV9NQVhfTlVNX0lSUV9CQU5LU107XFxuIDU2NDpcXHRcXG4gNTY1OlxcdFxcdHN0cnVjdCBhaXJvaGFfdHhfaXJxX3F1ZXVlIHFfdHhfaXJxW0FJUk9IQV9OVU1fVFhfSVJRXTtcXG4gNTY2OlxcdFxcbiA1Njc6XFx0XFx0c3RydWN0IGFpcm9oYV9xdWV1ZSBxX3R4W0FJUk9IQV9OVU1fVFhfUklOR107XFxuIDU2ODpcXHRcXHRzdHJ1Y3QgYWlyb2hhX3F1ZXVlIHFfcnhbQUlST0hBX05VTV9SWF9SSU5HXTtcXG4gNTY5OlxcdFxcbiA1NzA6XFx0XFx0REVDTEFSRV9CSVRNQVAocW9zX2NoYW5uZWxfbWFwLCBBSVJPSEFfTlVNX1FPU19DSEFOTkVMUyk7XFxuIDU3MTpcXHR9O1xcbiA1NzI6XFx0XFxuIDU3MzpcXHRlbnVtIGFpcm9oYV9kZXZfZmxhZ3Mge1xcbiA1NzQ6XFx0XFx0QUlST0hBX0RFVl9GX1dBTixcXG4gNTc1OlxcdFxcdEFJUk9IQV9ERVZfRl9UWF9RT1MsXFxuIDU3NjpcXHR9O1xcbiA1Nzc6XFx0XFxuIDU3ODpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9kZXYge1xcbiA1Nzk6XFx0XFx0c3RydWN0IGFpcm9oYV9xZG1hIF9fcmN1ICpxZG1hO1xcbiA1ODA6XFx0XFx0c3RydWN0IGFpcm9oYV9nZG1fcG9ydCAqcG9ydDtcXG4gNTgxOlxcdFxcdHN0cnVjdCBhaXJvaGFfZXRoICpldGg7XFxuIDU4MjpcXHRcXG4gNTgzOlxcdFxcdERFQ0xBUkVfQklUTUFQKHFvc19zcV9ibWFwLCBBSVJPSEFfTlVNX1FPU19DSEFOTkVMUyk7XFxuIDU4NDpcXHRcXHRzdHJ1Y3Qge1xcbiA1ODU6XFx0XFx0XFx0dTMyIGNwdV90eF9wYWNrZXRzO1xcbiA1ODY6XFx0XFx0XFx0dTMyIGZ3ZF90eF9wYWNrZXRzO1xcbiA1ODc6XFx0XFx0fSBxb3Nfc3RhdHNbQUlST0hBX05VTV9RT1NfQ0hBTk5FTFNdO1xcbiA1ODg6XFx0XFxuIDU4OTpcXHRcXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xcbiA1OTA6XFx0XFx0aW50IG5icTtcXG4gNTkxOlxcdFxcbiA1OTI6XFx0XFx0c3RydWN0IGFpcm9oYV9od19zdGF0cyBzdGF0cztcXG4gNTkzOlxcdFxcbiA1OTQ6XFx0XFx0LyogU2VyaWFsaXplIG5ldGRldl90eF9jb21wbGV0ZWRfcXVldWUoKSBjYWxscyBwZXIgVFggcXVldWUgZHVyaW5nXFxuIDU5NTpcXHRcXHQgKiBRRE1BIG1pZ3JhdGlvbi5cXG4gNTk2OlxcdFxcdCAqL1xcbiA1OTc6XFx0XFx0c3BpbmxvY2tfdCB0eHFfbG9ja1tBSVJPSEFfTlVNX05FVERFVl9UWF9SSU5HU107XFxuIDU5ODpcXHR9O1xcbiA1OTk6XFx0XFxuIDYwMDpcXHRzdHJ1Y3QgYWlyb2hhX2dkbV9wb3J0IHtcXG4gNjAxOlxcdFxcdHN0cnVjdCBhaXJvaGFfZ2RtX2RldiAqZGV2c1tBSVJPSEFfTUFYX05VTV9HRE1fREVWU107XFxuIDYwMjpcXHRcXHRpbnQgaWQ7XFxuIDYwMzpcXHRcXHRpbnQgdXNlcnM7XFxuIDYwNDpcXHRcXG4gNjA1OlxcdFxcdC8qIHByb3RlY3QgY29uY3VycmVudCBod19zdGF0cyBhY2Nlc3NlcyAqL1xcbiA2MDY6XFx0XFx0c3BpbmxvY2tfdCBzdGF0c19sb2NrO1xcbiA2MDc6XFx0XFxuIDYwODpcXHRcXHRzdHJ1Y3QgbWV0YWRhdGFfZHN0ICpkc2FfbWV0YVtBSVJPSEFfTUFYX0RTQV9QT1JUU107XFxuIDYwOTpcXHR9O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMDoxMTozMy41Mjc1ODE2NTlaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njg1ODI3NzA1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBDb3NtZXRpYyBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gVGhlIHBhdGNoIGluIGBhaXJvaGFfYWxsb2NfZ2RtX2RldmljZWAgaXMgY2hhbmdpbmcgaG93IHdlIGRldGVybWluZSB0aGUgbG9vcCdzIHVwcGVyIGJvdW5kIGluIHRoZSBpbml0aWFsaXphdGlvbiBvZiBgZGV2LVx1MDAzZXR4cV9sb2NrYC4gIEluaXRpYWxseSwgd2UgdXNlZCBgQVJSQVlfU0laRShkZXYtXHUwMDNldHhxX2xvY2spYC4gIE5vdywgaXQncyBiZWluZyByZXBsYWNlZCB3aXRoIGBBSVJPSEFfTlVNX05FVERFVl9UWF9SSU5HU2AuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoaXMgaXMgc2ltcGx5IGEgY29zbWV0aWMgY2hhbmdlLCBhIHJlZmFjdG9yaW5nIHRvIGltcHJvdmUgcmVhZGFiaWxpdHksIHBlcmhhcHMuXG5cbkxldCdzIGNvbmZpcm0uIGBkZXYtXHUwMDNldHhxX2xvY2tgIGlzICpkZWNsYXJlZCogYXMgYW4gYXJyYXkgb2Ygc3BpbmxvY2tzOiBgc3BpbmxvY2tfdCB0eHFfbG9ja1tBSVJPSEFfTlVNX05FVERFVl9UWF9SSU5HU107YC4gVGhpcyBtZWFucyBgQVJSQVlfU0laRShkZXYtXHUwMDNldHhxX2xvY2spYCAqZXhhY3RseSogZXZhbHVhdGVzIHRvIHRoZSBzYW1lIHZhbHVlIGFzIGBBSVJPSEFfTlVNX05FVERFVl9UWF9SSU5HU2AuIFRoZXJlJ3Mgbm8gcG9zc2libGUgY2hhbmNlIHRoaXMgaW50cm9kdWNlcyBhIGJ1ZyBvciBhbHRlcnMgZXhlY3V0aW9uIGluIGFueSB3YXkuIEkgcXVpY2tseSBjaGVja2VkIHRvIG1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gb3RoZXIgY2hhbmdlcyBpbiB0aGUgY29udGV4dCBvZiB0aGUgY29kZS4gQ29uZmlybWVkLlxuXG5UaGVyZWZvcmUsIHRoaXMgY2hhbmdlIGlzIHB1cmVseSB2aXN1YWwgYW5kIGhhcyBubyBmdW5jdGlvbmFsIGltcGFjdC4gVGhpcyBjaGFuZ2UgaXMgbm90IHdvcnRoIGZ1enppbmcuIFRoZSBgV29ydGhGdXp6aW5nYCBwcm9wZXJ0eSBzaG91bGQgYmUgYGZhbHNlYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg0ODksIk91dHB1dFRva2VucyI6ODIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NzMsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMDoxMTo0MC4zODU4NjE0ODNaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDE5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZXBsYWNlcyBBUlJBWV9TSVpFKGRldi1cXHUwMDNldHhxX2xvY2spIHdpdGggdGhlIG1hY3JvIEFJUk9IQV9OVU1fTkVUREVWX1RYX1JJTkdTIHVzZWQgdG8gZGVmaW5lIHRoZSBhcnJheSBzaXplLiBUaGlzIGlzIGEgcHVyZWx5IGNvc21ldGljIGNoYW5nZSB0aGF0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlcGxhY2VzIEFSUkFZX1NJWkUoZGV2LVxcdTAwM2V0eHFfbG9jaykgd2l0aCB0aGUgbWFjcm8gQUlST0hBX05VTV9ORVRERVZfVFhfUklOR1MgdXNlZCB0byBkZWZpbmUgdGhlIGFycmF5IHNpemUuIFRoaXMgaXMgYSBwdXJlbHkgY29zbWV0aWMgY2hhbmdlIHRoYXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow6kqrc[1] Phase: Running StartedAt: 2026-08-02 00:11:52 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6kqrc[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-02 00:11:52 +0000 UTC FinishedAt: 2026-08-02 00:11:58 +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,}