Name: series-workflowrwx57 Phase: Succeeded StartedAt: 2026-06-29 09:19:26 +0000 UTC FinishedAt: 2026-06-29 11:14:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[0] Phase: Succeeded StartedAt: 2026-06-29 09:19:26 +0000 UTC FinishedAt: 2026-06-29 09:26:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[0].run-triage Phase: Succeeded StartedAt: 2026-06-29 09:19:26 +0000 UTC FinishedAt: 2026-06-29 09:26:53 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "dc59e4fea9d83f03bad6bddf3fa2e52491777482", "config_name": "upstream-apparmor-kasan.config", "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "dc59e4fea9d83f03bad6bddf3fa2e52491777482", "config_name": "upstream-apparmor-kasan.config", "series_id": "accbc655-91ac-40e2-8223-001a4d6ea5dd" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "platform_device_set_of_node", "platform_device_set_fwnode", "platform_device_set_of_node_from_dev", "platform_device_release" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjI2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlJiMzNDssCiAgICAmIzM0O3BsYXRmb3JtX2RldmljZV9zZXRfZndub2RlJiMzNDssCiAgICAmIzM0O3BsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldiYjMzQ7LAogICAgJiMzNDtwbGF0Zm9ybV9kZXZpY2VfcmVsZWFzZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBoZWxwZXIgZnVuY3Rpb25zIGZvciBhc3NpZ25pbmcgb2Zfbm9kZSBhbmQgZndub2RlIHRvIHBsYXRmb3JtIGRldmljZXMsIHdoaWNoIGludGVybmFsbHkgbWFuYWdlIHJlZmVyZW5jZSBjb3VudGluZy4gSXQgYWxzbyB1cGRhdGVzIHBsYXRmb3JtX2RldmljZV9yZWxlYXNlIHRvIHByb3Blcmx5IHJlbGVhc2UgdGhlIGZ3bm9kZSByZWZlcmVuY2UuIFRoZXNlIGFyZSBjb3JlIGRldmljZSBtb2RlbCBjaGFuZ2VzIHRoYXQgY291bGQgbGVhZCB0byBtZW1vcnkgbGVha3Mgb3IgdXNlLWFmdGVyLWZyZWUgaWYgcmVmZXJlbmNlIGNvdW50aW5nIGlzIGluY29ycmVjdC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOToyNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDBiZDVkNDA4MDEwOWM2NTFhOWU0NWU1ZTY2NjNhMTMyM2RjZDVhMDhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1biAyOSAwOToyNjowMCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJtYWMvbG93X2kyYy5jXG5pbmRleCBkYTcyYTMwYWI4NjU3ZS4uYTE3NWEzMmEyMjJiYWIgMTAwNjQ0XG4tLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm1hYy9sb3dfaTJjLmNcbkBAIC0xNDcxLDcgJiM0MzsxNDcxLDcgQEAgc3RhdGljIGludCBfX2luaXQgcG1hY19pMmNfY3JlYXRlX3BsYXRmb3JtX2RldmljZXModm9pZClcbiBcdFx0aWYgKGJ1cy1cdTAwM2VwbGF0Zm9ybV9kZXYgPT0gTlVMTClcbiBcdFx0XHRyZXR1cm4gLUVOT01FTTtcbiBcdFx0YnVzLVx1MDAzZXBsYXRmb3JtX2Rldi1cdTAwM2VkZXYucGxhdGZvcm1fZGF0YSA9IGJ1cztcbi1cdFx0YnVzLVx1MDAzZXBsYXRmb3JtX2Rldi1cdTAwM2VkZXYub2Zfbm9kZSA9IGJ1cy1cdTAwM2VidXNub2RlO1xuJiM0MztcdFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKGJ1cy1cdTAwM2VwbGF0Zm9ybV9kZXYsIGJ1cy1cdTAwM2VidXNub2RlKTtcbiBcdFx0cGxhdGZvcm1fZGV2aWNlX2FkZChidXMtXHUwMDNlcGxhdGZvcm1fZGV2KTtcbiBcdH1cbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYyBiL2RyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jXG5pbmRleCBmYjkxMjBiMGJjZmUwZS4uYmI1ZjViZGRkMDQ3ZDQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9iYXNlL3BsYXRmb3JtLmNcbkBAIC01OTksNyAmIzQzOzU5OSw3IEBAIHN0YXRpYyB2b2lkIHBsYXRmb3JtX2RldmljZV9yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldilcbiBcdHN0cnVjdCBwbGF0Zm9ybV9vYmplY3QgKnBhID0gY29udGFpbmVyX29mKGRldiwgc3RydWN0IHBsYXRmb3JtX29iamVjdCxcbiBcdFx0XHRcdFx0XHQgIHBkZXYuZGV2KTtcbiBcbi1cdG9mX25vZGVfcHV0KHBhLVx1MDAzZXBkZXYuZGV2Lm9mX25vZGUpO1xuJiM0MztcdGZ3bm9kZV9oYW5kbGVfcHV0KHBhLVx1MDAzZXBkZXYuZGV2LmZ3bm9kZSk7XG4gXHRrZnJlZShwYS1cdTAwM2VwZGV2LmRldi5wbGF0Zm9ybV9kYXRhKTtcbiBcdGtmcmVlKHBhLVx1MDAzZXBkZXYubWZkX2NlbGwpO1xuIFx0a2ZyZWUocGEtXHUwMDNlcGRldi5yZXNvdXJjZSk7XG5AQCAtNjkzLDYgJiM0Mzs2OTMsNTYgQEAgaW50IHBsYXRmb3JtX2RldmljZV9hZGRfZGF0YShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBjb25zdCB2b2lkICpkYXRhLFxuIH1cbiBFWFBPUlRfU1lNQk9MX0dQTChwbGF0Zm9ybV9kZXZpY2VfYWRkX2RhdGEpO1xuIFxuJiM0MzsvKipcbiYjNDM7ICogcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlIC0gYXNzaWduIGFuIE9GIG5vZGUgdG8gZGV2aWNlXG4mIzQzOyAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2UgdG8gYWRkIHRoZSBub2RlIGZvclxuJiM0MzsgKiBAbnA6IG5ldyBkZXZpY2Ugbm9kZVxuJiM0MzsgKlxuJiM0MzsgKiBBc3NpZ24gYW4gT0Ygbm9kZSB0byB0aGlzIHBsYXRmb3JtIGRldmljZS4gSW50ZXJuYWxseSBrZWVwIHRyYWNrIG9mIHRoZVxuJiM0MzsgKiByZWZlcmVuY2UgY291bnQuIERldmljZXMgY3JlYXRlZCB3aXRoIHBsYXRmb3JtX2RldmljZV9hbGxvYygpIG11c3QgdXNlIHRoaXNcbiYjNDM7ICogZnVuY3Rpb24gaW5zdGVhZCBvZiBhc3NpZ25pbmcgdGhlIG5vZGUgbWFudWFsbHkuXG4mIzQzOyAqL1xuJiM0Mzt2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuJiM0MztcdFx0XHRcdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKVxuJiM0Mzt7XG4mIzQzO1x0cGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUocGRldiwgb2ZfZndub2RlX2hhbmRsZShucCkpO1xuJiM0Mzt9XG4mIzQzO0VYUE9SVF9TWU1CT0xfR1BMKHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZSk7XG4mIzQzO1xuJiM0MzsvKipcbiYjNDM7ICogcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUgLSBhc3NpZ24gYSBmaXJtd2FyZSBub2RlIHRvIGRldmljZVxuJiM0MzsgKiBAcGRldjogcGxhdGZvcm0gZGV2aWNlIHRvIHNldCB0aGUgbm9kZSBmb3JcbiYjNDM7ICogQGZ3bm9kZTogbmV3IGZpcm13YXJlIG5vZGVcbiYjNDM7ICpcbiYjNDM7ICogQXNzaWduIGEgZmlybXdhcmUgbm9kZSB0byB0aGlzIHBsYXRmb3JtIGRldmljZS4gSW50ZXJuYWxseSBrZWVwIHRyYWNrIG9mIHRoZVxuJiM0MzsgKiByZWZlcmVuY2UgY291bnQuIERldmljZXMgY3JlYXRlZCB3aXRoIHBsYXRmb3JtX2RldmljZV9hbGxvYygpIG11c3QgdXNlIHRoaXNcbiYjNDM7ICogZnVuY3Rpb24gaW5zdGVhZCBvZiBhc3NpZ25pbmcgdGhlIG5vZGUgbWFudWFsbHkuXG4mIzQzOyAqL1xuJiM0Mzt2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG4mIzQzO1x0XHRcdFx0c3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSlcbiYjNDM7e1xuJiM0MztcdGZ3bm9kZV9oYW5kbGVfcHV0KHBkZXYtXHUwMDNlZGV2LmZ3bm9kZSk7XG4mIzQzO1x0cGRldi1cdTAwM2VkZXYuZndub2RlID0gZndub2RlX2hhbmRsZV9nZXQoZndub2RlKTtcbiYjNDM7XHRwZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gdG9fb2Zfbm9kZShmd25vZGUpO1xuJiM0Mzt9XG4mIzQzO0VYUE9SVF9TWU1CT0xfR1BMKHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKTtcbiYjNDM7XG4mIzQzOy8qKlxuJiM0MzsgKiBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYgLSByZXVzZSBPRiBub2RlIG9mIGFub3RoZXIgZGV2aWNlXG4mIzQzOyAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2UgdG8gc2V0IHRoZSBub2RlIGZvclxuJiM0MzsgKiBAZGV2MjogZGV2aWNlIHdob3NlIE9GIG5vZGUgdG8gcmV1c2VcbiYjNDM7ICpcbiYjNDM7ICogUmV1c2VzIHRoZSBPRiBub2RlIG9mIGFub3RoZXIgZGV2aWNlIGluIHRoaXMgcGxhdGZvcm0gZGV2aWNlIHdoaWxlXG4mIzQzOyAqIGludGVybmFsbHkga2VlcGluZyB0cmFjayBvZiByZWZlcmVuY2UgY291bnRpbmcuXG4mIzQzOyAqL1xuJiM0Mzt2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldihzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuJiM0MztcdFx0XHRcdFx0ICBjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYyKVxuJiM0Mzt7XG4mIzQzO1x0ZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBkZXYyKTtcbiYjNDM7XHRwZGV2LVx1MDAzZWRldi5md25vZGUgPSBvZl9md25vZGVfaGFuZGxlKHBkZXYtXHUwMDNlZGV2Lm9mX25vZGUpO1xuJiM0Mzt9XG4mIzQzO0VYUE9SVF9TWU1CT0xfR1BMKHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2Rldik7XG4mIzQzO1xuIC8qKlxuICAqIHBsYXRmb3JtX2RldmljZV9hZGQgLSBhZGQgYSBwbGF0Zm9ybSBkZXZpY2UgdG8gZGV2aWNlIGhpZXJhcmNoeVxuICAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2Ugd2UmIzM5O3JlIGFkZGluZ1xuQEAgLTg2OCw4ICYjNDM7OTE4LDggQEAgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyX2Z1bGwoY29uc3Qgc3RydWN0IHBsYXRmb3JtX2RldmlcbiBcdFx0cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7XG4gXG4gXHRwZGV2LVx1MDAzZWRldi5wYXJlbnQgPSBwZGV2aW5mby1cdTAwM2VwYXJlbnQ7XG4tXHRwZGV2LVx1MDAzZWRldi5md25vZGUgPSBwZGV2aW5mby1cdTAwM2Vmd25vZGU7XG4tXHRwZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQodG9fb2Zfbm9kZShwZGV2LVx1MDAzZWRldi5md25vZGUpKTtcbiYjNDM7XHRwZGV2LVx1MDAzZWRldi5md25vZGUgPSBmd25vZGVfaGFuZGxlX2dldChwZGV2aW5mby1cdTAwM2Vmd25vZGUpO1xuJiM0MztcdHBkZXYtXHUwMDNlZGV2Lm9mX25vZGUgPSB0b19vZl9ub2RlKHBkZXYtXHUwMDNlZGV2LmZ3bm9kZSk7XG4gXHRkZXZfYXNzaWduX29mX25vZGVfcmV1c2VkKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBwZGV2aW5mby1cdTAwM2VvZl9ub2RlX3JldXNlZCk7XG4gXG4gXHRpZiAocGRldmluZm8tXHUwMDNlZG1hX21hc2spIHtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmMgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmNcbmluZGV4IDcwNjc4Mzg2M2QwN2Q2Li5hZjRlYmQ5M2FkOGU2OCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9pMmMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2kyYy5jXG5AQCAtMTIzLDcgJiM0MzsxMjMsNyBAQCBzdGF0aWMgaW50IHhlX2kyY19yZWdpc3Rlcl9hZGFwdGVyKHN0cnVjdCB4ZV9pMmMgKmkyYylcbiBcdH1cbiBcbiBcdHBkZXYtXHUwMDNlZGV2LnBhcmVudCA9IGkyYy1cdTAwM2Vkcm1fZGV2O1xuLVx0cGRldi1cdTAwM2VkZXYuZndub2RlID0gZndub2RlO1xuJiM0MztcdHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHBkZXYsIGZ3bm9kZSk7XG4gXHRpMmMtXHUwMDNlYWRhcHRlcl9ub2RlID0gZndub2RlO1xuIFx0aTJjLVx1MDAzZXBkZXYgPSBwZGV2O1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcHhhLXBjaS5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1weGEtcGNpLmNcbmluZGV4IGRiZDU0MjMwMGY4MDA0Li45MmEwNjQ3ZjA4YzY5ZiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcHhhLXBjaS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXB4YS1wY2kuY1xuQEAgLTc2LDcgJiM0Mzs3Niw4IEBAIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICphZGRfaTJjX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgYmFyKVxuIFx0XHRnb3RvIG91dDtcbiBcdH1cbiBcdHBkZXYtXHUwMDNlZGV2LnBhcmVudCA9IFx1MDAyNmRldi1cdTAwM2VkZXY7XG4tXHRwZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gY2hpbGQ7XG4mIzQzO1xuJiM0MztcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwZGV2LCBjaGlsZCk7XG4gXG4gXHRyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkX3Jlc291cmNlcyhwZGV2LCByZXMsIEFSUkFZX1NJWkUocmVzKSk7XG4gXHRpZiAocmV0KVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvZnNsX3BhbXUuYyBiL2RyaXZlcnMvaW9tbXUvZnNsX3BhbXUuY1xuaW5kZXggMjVhYTQ3N2E5NWE5NWMuLjAxMjgzOWZhMGQ4YTI3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9pb21tdS9mc2xfcGFtdS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2lvbW11L2ZzbF9wYW11LmNcbkBAIC05NzMsNyAmIzQzOzk3Myw4IEBAIHN0YXRpYyBfX2luaXQgaW50IGZzbF9wYW11X2luaXQodm9pZClcbiBcdFx0cmV0ID0gLUVOT01FTTtcbiBcdFx0Z290byBlcnJvcl9kZXZpY2VfYWxsb2M7XG4gXHR9XG4tXHRwZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQobnApO1xuJiM0MztcbiYjNDM7XHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUocGRldiwgbnApO1xuIFxuIFx0cmV0ID0gcGFtdV9kb21haW5faW5pdCgpO1xuIFx0aWYgKHJldClcbkBAIC05ODUsMTIgJiM0Mzs5ODYsMTAgQEAgc3RhdGljIF9faW5pdCBpbnQgZnNsX3BhbXVfaW5pdCh2b2lkKVxuIFx0XHRnb3RvIGVycm9yX2RldmljZV9hZGQ7XG4gXHR9XG4gXG4mIzQzO1x0b2Zfbm9kZV9wdXQobnApO1xuIFx0cmV0dXJuIDA7XG4gXG4gZXJyb3JfZGV2aWNlX2FkZDpcbi1cdG9mX25vZGVfcHV0KHBkZXYtXHUwMDNlZGV2Lm9mX25vZGUpO1xuLVx0cGRldi1cdTAwM2VkZXYub2Zfbm9kZSA9IE5VTEw7XG4tXG4gXHRwbGF0Zm9ybV9kZXZpY2VfcHV0KHBkZXYpO1xuIFxuIGVycm9yX2RldmljZV9hbGxvYzpcbmRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC90cHM2NTg2eC5jIGIvZHJpdmVycy9tZmQvdHBzNjU4NnguY1xuaW5kZXggZjVmODA1NDQ2NjAzMzEuLjNjZmQyZjAyYjYyZjNjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9tZmQvdHBzNjU4NnguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9tZmQvdHBzNjU4NnguY1xuQEAgLTM5Nyw3ICYjNDM7Mzk3LDcgQEAgc3RhdGljIGludCB0cHM2NTg2eF9hZGRfc3ViZGV2cyhzdHJ1Y3QgdHBzNjU4NnggKnRwczY1ODZ4LFxuIFxuIFx0XHRwZGV2LVx1MDAzZWRldi5wYXJlbnQgPSB0cHM2NTg2eC1cdTAwM2VkZXY7XG4gXHRcdHBkZXYtXHUwMDNlZGV2LnBsYXRmb3JtX2RhdGEgPSBzdWJkZXYtXHUwMDNlcGxhdGZvcm1fZGF0YTtcbi1cdFx0cGRldi1cdTAwM2VkZXYub2Zfbm9kZSA9IG9mX25vZGVfZ2V0KHN1YmRldi1cdTAwM2VvZl9ub2RlKTtcbiYjNDM7XHRcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwZGV2LCBzdWJkZXYtXHUwMDNlb2Zfbm9kZSk7XG4gXG4gXHRcdHJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQocGRldik7XG4gXHRcdGlmIChyZXQpIHtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbW1paS5jXG5pbmRleCBhNGUwZDVhNjgyNjg3NS4uNDUxYjIzYTAzOWNlYmIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmNcbkBAIC00OTAsMTAgJiM0Mzs0OTAsMTQgQEAgc3RhdGljIGludCBiY21nZW5ldF9taWlfcmVnaXN0ZXIoc3RydWN0IGJjbWdlbmV0X3ByaXYgKnByaXYpXG4gXHQvKiBSZXRhaW4gdGhpcyBwbGF0Zm9ybV9kZXZpY2UgcG9pbnRlciBmb3IgbGF0ZXIgY2xlYW51cCAqL1xuIFx0cHJpdi1cdTAwM2VtaWlfcGRldiA9IHBwZGV2O1xuIFx0cHBkZXYtXHUwMDNlZGV2LnBhcmVudCA9IFx1MDAyNnBkZXYtXHUwMDNlZGV2O1xuLVx0aWYgKGRuKVxuLVx0XHRwcGRldi1cdTAwM2VkZXYub2Zfbm9kZSA9IGJjbWdlbmV0X21paV9vZl9maW5kX21kaW8ocHJpdik7XG4tXHRlbHNlXG4mIzQzO1xuJiM0MztcdGlmIChkbikge1xuJiM0MztcdFx0c3RydWN0IGRldmljZV9ub2RlICpucCBfX2ZyZWUoZGV2aWNlX25vZGUpID0gYmNtZ2VuZXRfbWlpX29mX2ZpbmRfbWRpbyhwcml2KTtcbiYjNDM7XG4mIzQzO1x0XHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUocHBkZXYsIG5wKTtcbiYjNDM7XHR9IGVsc2Uge1xuIFx0XHRwcGQucGh5X21hc2sgPSB+MDtcbiYjNDM7XHR9XG4gXG4gXHRyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkX3Jlc291cmNlcyhwcGRldiwgXHUwMDI2cmVzLCAxKTtcbiBcdGlmIChyZXQpXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdjY0M3h4X2V0aC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdjY0M3h4X2V0aC5jXG5pbmRleCAxODgxNTgzYmU1Y2UyZS4uOWNhYTFlNDdjMTc0YzkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212NjQzeHhfZXRoLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXY2NDN4eF9ldGguY1xuQEAgLTI3ODAsNyAmIzQzOzI3ODAsNyBAQCBzdGF0aWMgaW50IG12NjQzeHhfZXRoX3NoYXJlZF9vZl9hZGRfcG9ydChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuIFx0XHRnb3RvIHB1dF9lcnI7XG4gXHR9XG4gXHRwcGRldi1cdTAwM2VkZXYuY29oZXJlbnRfZG1hX21hc2sgPSBETUFfQklUX01BU0soMzIpO1xuLVx0cHBkZXYtXHUwMDNlZGV2Lm9mX25vZGUgPSBvZl9ub2RlX2dldChwbnApO1xuJiM0MztcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwcGRldiwgcG5wKTtcbiBcbiBcdHJldCA9IHBsYXRmb3JtX2RldmljZV9hZGRfcmVzb3VyY2VzKHBwZGV2LCBcdTAwMjZyZXMsIDEpO1xuIFx0aWYgKHJldClcbmRpZmYgLS1naXQgYS9kcml2ZXJzL29mL3BsYXRmb3JtLmMgYi9kcml2ZXJzL29mL3BsYXRmb3JtLmNcbmluZGV4IDUzYmNhOGM2Zjc4MTBjLi44YjFlNzY0MDc3ODI1MyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvb2YvcGxhdGZvcm0uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9vZi9wbGF0Zm9ybS5jXG5AQCAtMTI2LDcgJiM0MzsxMjYsNyBAQCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvZl9kZXZpY2VfYWxsb2Moc3RydWN0IGRldmljZV9ub2RlICpucCxcbiBcdH1cbiBcbiBcdC8qIHNldHVwIGdlbmVyaWMgZGV2aWNlIGluZm8gKi9cbi1cdGRldmljZV9zZXRfbm9kZShcdTAwMjZkZXYtXHUwMDNlZGV2LCBvZl9md25vZGVfaGFuZGxlKG9mX25vZGVfZ2V0KG5wKSkpO1xuJiM0MztcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShkZXYsIG5wKTtcbiBcdGRldi1cdTAwM2VkZXYucGFyZW50ID0gcGFyZW50ID8gOiBcdTAwMjZwbGF0Zm9ybV9idXM7XG4gXG4gXHRpZiAoYnVzX2lkKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGxhdGZvcm0vc3VyZmFjZS9zdXJmYWNlX2dwZS5jIGIvZHJpdmVycy9wbGF0Zm9ybS9zdXJmYWNlL3N1cmZhY2VfZ3BlLmNcbmluZGV4IGIzNTk0MTM5MDNiMTNjLi40MDg5NmE4NTQ0YjBhNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvcGxhdGZvcm0vc3VyZmFjZS9zdXJmYWNlX2dwZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3BsYXRmb3JtL3N1cmZhY2Uvc3VyZmFjZV9ncGUuY1xuQEAgLTMxNyw3ICYjNDM7MzE3LDcgQEAgc3RhdGljIGludCBfX2luaXQgc3VyZmFjZV9ncGVfaW5pdCh2b2lkKVxuIFx0XHRnb3RvIGVycl9hbGxvYztcbiBcdH1cbiBcbi1cdHBkZXYtXHUwMDNlZGV2LmZ3bm9kZSA9IGZ3bm9kZTtcbiYjNDM7XHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZShwZGV2LCBmd25vZGUpO1xuIFxuIFx0c3RhdHVzID0gcGxhdGZvcm1fZGV2aWNlX2FkZChwZGV2KTtcbiBcdGlmIChzdGF0dXMpXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9wbWRvbWFpbi9pbXgvZ3BjLmMgYi9kcml2ZXJzL3BtZG9tYWluL2lteC9ncGMuY1xuaW5kZXggNDJlNTBjOWI0ZmI5ZmYuLmFiY2E1ZjQ0OWEyMjZmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9wbWRvbWFpbi9pbXgvZ3BjLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvcG1kb21haW4vaW14L2dwYy5jXG5AQCAtNDg3LDggJiM0Mzs0ODcsNyBAQCBzdGF0aWMgaW50IGlteF9ncGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbiBcdFx0XHRkb21haW4tXHUwMDNlaXBnX3JhdGVfbWh6ID0gaXBnX3JhdGVfbWh6O1xuIFxuIFx0XHRcdHBkX3BkZXYtXHUwMDNlZGV2LnBhcmVudCA9IFx1MDAyNnBkZXYtXHUwMDNlZGV2O1xuLVx0XHRcdHBkX3BkZXYtXHUwMDNlZGV2Lm9mX25vZGUgPSBvZl9ub2RlX2dldChucCk7XG4tXHRcdFx0cGRfcGRldi1cdTAwM2VkZXYuZndub2RlID0gb2ZfZndub2RlX2hhbmRsZShucCk7XG4mIzQzO1x0XHRcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwZF9wZGV2LCBucCk7XG4gXG4gXHRcdFx0cmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChwZF9wZGV2KTtcbiBcdFx0XHRpZiAocmV0KSB7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9yZXNldC9yZXNldC1yemcybC11c2JwaHktY3RybC5jIGIvZHJpdmVycy9yZXNldC9yZXNldC1yemcybC11c2JwaHktY3RybC5jXG5pbmRleCBmZDc1ZDk2MDFhM2JmZC4uZjAwM2IzNjA2MjljOTAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Jlc2V0L3Jlc2V0LXJ6ZzJsLXVzYnBoeS1jdHJsLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvcmVzZXQvcmVzZXQtcnpnMmwtdXNicGh5LWN0cmwuY1xuQEAgLTI0OSw3ICYjNDM7MjQ5LDcgQEAgc3RhdGljIGludCByemcybF91c2JwaHlfY3RybF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuIFx0dmRldi1cdTAwM2VkZXYucGFyZW50ID0gZGV2O1xuIFx0cHJpdi1cdTAwM2V2ZGV2ID0gdmRldjtcbiBcbi1cdGRldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldihcdTAwMjZ2ZGV2LVx1MDAzZWRldiwgZGV2KTtcbiYjNDM7XHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYodmRldiwgZGV2KTtcbiBcdGVycm9yID0gcGxhdGZvcm1fZGV2aWNlX2FkZCh2ZGV2KTtcbiBcdGlmIChlcnJvcilcbiBcdFx0Z290byBlcnJfZGV2aWNlX3B1dDtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3NsaW1idXMvcWNvbS1uZ2QtY3RybC5jIGIvZHJpdmVycy9zbGltYnVzL3Fjb20tbmdkLWN0cmwuY1xuaW5kZXggMzA3MWU0NmQwM2JlYWEuLjZlODk0MTU3MTJjZTFhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9zbGltYnVzL3Fjb20tbmdkLWN0cmwuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zbGltYnVzL3Fjb20tbmdkLWN0cmwuY1xuQEAgLTE1MzksNyAmIzQzOzE1MzksNyBAQCBzdGF0aWMgaW50IG9mX3Fjb21fc2xpbV9uZ2RfcmVnaXN0ZXIoc3RydWN0IGRldmljZSAqcGFyZW50LFxuIFx0XHRcdGtmcmVlKG5nZCk7XG4gXHRcdFx0cmV0dXJuIHJldDtcbiBcdFx0fVxuLVx0XHRuZ2QtXHUwMDNlcGRldi1cdTAwM2VkZXYub2Zfbm9kZSA9IG9mX25vZGVfZ2V0KG5vZGUpO1xuJiM0MztcdFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKG5nZC1cdTAwM2VwZGV2LCBub2RlKTtcbiBcdFx0Y3RybC1cdTAwM2VuZ2QgPSBuZ2Q7XG4gXG4gXHRcdHJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQobmdkLVx1MDAzZXBkZXYpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NoaXBpZGVhL2NvcmUuYyBiL2RyaXZlcnMvdXNiL2NoaXBpZGVhL2NvcmUuY1xuaW5kZXggMDc1NjNiZTAwMTNmNGQuLjdlZGM1MTJjYzM3ZGMyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy91c2IvY2hpcGlkZWEvY29yZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3VzYi9jaGlwaWRlYS9jb3JlLmNcbkBAIC04NzksNyAmIzQzOzg3OSw3IEBAIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmNpX2hkcmNfYWRkX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYsXG4gXHR9XG4gXG4gXHRwZGV2LVx1MDAzZWRldi5wYXJlbnQgPSBkZXY7XG4tXHRkZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYoXHUwMDI2cGRldi1cdTAwM2VkZXYsIGRldik7XG4mIzQzO1x0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHBkZXYsIGRldik7XG4gXG4gXHRyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkX3Jlc291cmNlcyhwZGV2LCByZXMsIG5yZXMpO1xuIFx0aWYgKHJldClcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9tdXNiL2p6NDc0MC5jIGIvZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuY1xuaW5kZXggZGY1NmM5NzI5ODZmN2MuLmM3NzBiYTU3NmYwNWI2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuY1xuQEAgLTI3Myw3ICYjNDM7MjczLDcgQEAgc3RhdGljIGludCBqejQ3NDBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbiBcdG11c2ItXHUwMDNlZGV2LnBhcmVudFx0XHQ9IGRldjtcbiBcdG11c2ItXHUwMDNlZGV2LmRtYV9tYXNrXHRcdD0gXHUwMDI2bXVzYi1cdTAwM2VkZXYuY29oZXJlbnRfZG1hX21hc2s7XG4gXHRtdXNiLVx1MDAzZWRldi5jb2hlcmVudF9kbWFfbWFza1x0PSBETUFfQklUX01BU0soMzIpO1xuLVx0ZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KFx1MDAyNm11c2ItXHUwMDNlZGV2LCBkZXYpO1xuJiM0MztcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldihtdXNiLCBkZXYpO1xuIFxuIFx0Z2x1ZS1cdTAwM2VwZGV2XHRcdFx0PSBtdXNiO1xuIFx0Z2x1ZS1cdTAwM2VjbGtcdFx0XHQ9IGNsaztcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oIGIvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaFxuaW5kZXggMjZlNmE0MzM1OGUyNWMuLjk0YjhkMmI0NmU5MTNlIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaFxuJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaFxuQEAgLTE5LDYgJiM0MzsxOSw4IEBAIHN0cnVjdCBpcnFfYWZmaW5pdHk7XG4gc3RydWN0IG1mZF9jZWxsO1xuIHN0cnVjdCBwcm9wZXJ0eV9lbnRyeTtcbiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkO1xuJiM0MztzdHJ1Y3QgZGV2aWNlX25vZGU7XG4mIzQzO3N0cnVjdCBmd25vZGVfaGFuZGxlO1xuIFxuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Uge1xuIFx0Y29uc3QgY2hhclx0Km5hbWU7XG5AQCAtMjYyLDYgJiM0MzsyNjQsMTIgQEAgZXh0ZXJuIGludCBwbGF0Zm9ybV9kZXZpY2VfYWRkX3Jlc291cmNlcyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuIFx0XHRcdFx0XHQgdW5zaWduZWQgaW50IG51bSk7XG4gZXh0ZXJuIGludCBwbGF0Zm9ybV9kZXZpY2VfYWRkX2RhdGEoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbiBcdFx0XHRcdCAgICBjb25zdCB2b2lkICpkYXRhLCBzaXplX3Qgc2l6ZSk7XG4mIzQzO3ZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG4mIzQzO1x0XHRcdFx0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApO1xuJiM0Mzt2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG4mIzQzO1x0XHRcdFx0c3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSk7XG4mIzQzO3ZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG4mIzQzO1x0XHRcdFx0XHQgIGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldjIpO1xuIGV4dGVybiBpbnQgcGxhdGZvcm1fZGV2aWNlX2FkZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTtcbiBleHRlcm4gdm9pZCBwbGF0Zm9ybV9kZXZpY2VfZGVsKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpO1xuIGV4dGVybiB2b2lkIHBsYXRmb3JtX2RldmljZV9wdXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MjY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUmIzM0OywKICAgICYjMzQ7cGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUmIzM0OywKICAgICYjMzQ7cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2JiMzNDssCiAgICAmIzM0O3BsYXRmb3JtX2RldmljZV9yZWxlYXNlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgbmV3IGhlbHBlciBmdW5jdGlvbnMgZm9yIGFzc2lnbmluZyBvZl9ub2RlIGFuZCBmd25vZGUgdG8gcGxhdGZvcm0gZGV2aWNlcywgd2hpY2ggaW50ZXJuYWxseSBtYW5hZ2UgcmVmZXJlbmNlIGNvdW50aW5nLiBJdCBhbHNvIHVwZGF0ZXMgcGxhdGZvcm1fZGV2aWNlX3JlbGVhc2UgdG8gcHJvcGVybHkgcmVsZWFzZSB0aGUgZndub2RlIHJlZmVyZW5jZS4gVGhlc2UgYXJlIGNvcmUgZGV2aWNlIG1vZGVsIGNoYW5nZXMgdGhhdCBjb3VsZCBsZWFkIHRvIG1lbW9yeSBsZWFrcyBvciB1c2UtYWZ0ZXItZnJlZSBpZiByZWZlcmVuY2UgY291bnRpbmcgaXMgaW5jb3JyZWN0LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAwYmQ1ZDQwODAxMDljNjUxYTllNDVlNWU2NjYzYTEzMjNkY2Q1YTA4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBKdW4gMjkgMDk6MjY6MDAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJtYWMvbG93X2kyYy5jCmluZGV4IGRhNzJhMzBhYjg2NTdlLi5hMTc1YTMyYTIyMmJhYiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm1hYy9sb3dfaTJjLmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm1hYy9sb3dfaTJjLmMKQEAgLTE0NzEsNyAmIzQzOzE0NzEsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBwbWFjX2kyY19jcmVhdGVfcGxhdGZvcm1fZGV2aWNlcyh2b2lkKQogCQlpZiAoYnVzLSZndDtwbGF0Zm9ybV9kZXYgPT0gTlVMTCkKIAkJCXJldHVybiAtRU5PTUVNOwogCQlidXMtJmd0O3BsYXRmb3JtX2Rldi0mZ3Q7ZGV2LnBsYXRmb3JtX2RhdGEgPSBidXM7Ci0JCWJ1cy0mZ3Q7cGxhdGZvcm1fZGV2LSZndDtkZXYub2Zfbm9kZSA9IGJ1cy0mZ3Q7YnVzbm9kZTsKJiM0MzsJCXBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShidXMtJmd0O3BsYXRmb3JtX2RldiwgYnVzLSZndDtidXNub2RlKTsKIAkJcGxhdGZvcm1fZGV2aWNlX2FkZChidXMtJmd0O3BsYXRmb3JtX2Rldik7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYyBiL2RyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jCmluZGV4IGZiOTEyMGIwYmNmZTBlLi5iYjVmNWJkZGQwNDdkNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMKQEAgLTU5OSw3ICYjNDM7NTk5LDcgQEAgc3RhdGljIHZvaWQgcGxhdGZvcm1fZGV2aWNlX3JlbGVhc2Uoc3RydWN0IGRldmljZSAqZGV2KQogCXN0cnVjdCBwbGF0Zm9ybV9vYmplY3QgKnBhID0gY29udGFpbmVyX29mKGRldiwgc3RydWN0IHBsYXRmb3JtX29iamVjdCwKIAkJCQkJCSAgcGRldi5kZXYpOwogCi0Jb2Zfbm9kZV9wdXQocGEtJmd0O3BkZXYuZGV2Lm9mX25vZGUpOwomIzQzOwlmd25vZGVfaGFuZGxlX3B1dChwYS0mZ3Q7cGRldi5kZXYuZndub2RlKTsKIAlrZnJlZShwYS0mZ3Q7cGRldi5kZXYucGxhdGZvcm1fZGF0YSk7CiAJa2ZyZWUocGEtJmd0O3BkZXYubWZkX2NlbGwpOwogCWtmcmVlKHBhLSZndDtwZGV2LnJlc291cmNlKTsKQEAgLTY5Myw2ICYjNDM7NjkzLDU2IEBAIGludCBwbGF0Zm9ybV9kZXZpY2VfYWRkX2RhdGEoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgY29uc3Qgdm9pZCAqZGF0YSwKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHBsYXRmb3JtX2RldmljZV9hZGRfZGF0YSk7CiAKJiM0MzsvKioKJiM0MzsgKiBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUgLSBhc3NpZ24gYW4gT0Ygbm9kZSB0byBkZXZpY2UKJiM0MzsgKiBAcGRldjogcGxhdGZvcm0gZGV2aWNlIHRvIGFkZCB0aGUgbm9kZSBmb3IKJiM0MzsgKiBAbnA6IG5ldyBkZXZpY2Ugbm9kZQomIzQzOyAqCiYjNDM7ICogQXNzaWduIGFuIE9GIG5vZGUgdG8gdGhpcyBwbGF0Zm9ybSBkZXZpY2UuIEludGVybmFsbHkga2VlcCB0cmFjayBvZiB0aGUKJiM0MzsgKiByZWZlcmVuY2UgY291bnQuIERldmljZXMgY3JlYXRlZCB3aXRoIHBsYXRmb3JtX2RldmljZV9hbGxvYygpIG11c3QgdXNlIHRoaXMKJiM0MzsgKiBmdW5jdGlvbiBpbnN0ZWFkIG9mIGFzc2lnbmluZyB0aGUgbm9kZSBtYW51YWxseS4KJiM0MzsgKi8KJiM0Mzt2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAomIzQzOwkJCQkgc3RydWN0IGRldmljZV9ub2RlICpucCkKJiM0Mzt7CiYjNDM7CXBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHBkZXYsIG9mX2Z3bm9kZV9oYW5kbGUobnApKTsKJiM0Mzt9CiYjNDM7RVhQT1JUX1NZTUJPTF9HUEwocGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKTsKJiM0MzsKJiM0MzsvKioKJiM0MzsgKiBwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZSAtIGFzc2lnbiBhIGZpcm13YXJlIG5vZGUgdG8gZGV2aWNlCiYjNDM7ICogQHBkZXY6IHBsYXRmb3JtIGRldmljZSB0byBzZXQgdGhlIG5vZGUgZm9yCiYjNDM7ICogQGZ3bm9kZTogbmV3IGZpcm13YXJlIG5vZGUKJiM0MzsgKgomIzQzOyAqIEFzc2lnbiBhIGZpcm13YXJlIG5vZGUgdG8gdGhpcyBwbGF0Zm9ybSBkZXZpY2UuIEludGVybmFsbHkga2VlcCB0cmFjayBvZiB0aGUKJiM0MzsgKiByZWZlcmVuY2UgY291bnQuIERldmljZXMgY3JlYXRlZCB3aXRoIHBsYXRmb3JtX2RldmljZV9hbGxvYygpIG11c3QgdXNlIHRoaXMKJiM0MzsgKiBmdW5jdGlvbiBpbnN0ZWFkIG9mIGFzc2lnbmluZyB0aGUgbm9kZSBtYW51YWxseS4KJiM0MzsgKi8KJiM0Mzt2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiYjNDM7CQkJCXN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpCiYjNDM7ewomIzQzOwlmd25vZGVfaGFuZGxlX3B1dChwZGV2LSZndDtkZXYuZndub2RlKTsKJiM0MzsJcGRldi0mZ3Q7ZGV2LmZ3bm9kZSA9IGZ3bm9kZV9oYW5kbGVfZ2V0KGZ3bm9kZSk7CiYjNDM7CXBkZXYtJmd0O2Rldi5vZl9ub2RlID0gdG9fb2Zfbm9kZShmd25vZGUpOwomIzQzO30KJiM0MztFWFBPUlRfU1lNQk9MX0dQTChwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZSk7CiYjNDM7CiYjNDM7LyoqCiYjNDM7ICogcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2IC0gcmV1c2UgT0Ygbm9kZSBvZiBhbm90aGVyIGRldmljZQomIzQzOyAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2UgdG8gc2V0IHRoZSBub2RlIGZvcgomIzQzOyAqIEBkZXYyOiBkZXZpY2Ugd2hvc2UgT0Ygbm9kZSB0byByZXVzZQomIzQzOyAqCiYjNDM7ICogUmV1c2VzIHRoZSBPRiBub2RlIG9mIGFub3RoZXIgZGV2aWNlIGluIHRoaXMgcGxhdGZvcm0gZGV2aWNlIHdoaWxlCiYjNDM7ICogaW50ZXJuYWxseSBrZWVwaW5nIHRyYWNrIG9mIHJlZmVyZW5jZSBjb3VudGluZy4KJiM0MzsgKi8KJiM0Mzt2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldihzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAomIzQzOwkJCQkJICBjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYyKQomIzQzO3sKJiM0MzsJZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KCZhbXA7cGRldi0mZ3Q7ZGV2LCBkZXYyKTsKJiM0MzsJcGRldi0mZ3Q7ZGV2LmZ3bm9kZSA9IG9mX2Z3bm9kZV9oYW5kbGUocGRldi0mZ3Q7ZGV2Lm9mX25vZGUpOwomIzQzO30KJiM0MztFWFBPUlRfU1lNQk9MX0dQTChwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYpOwomIzQzOwogLyoqCiAgKiBwbGF0Zm9ybV9kZXZpY2VfYWRkIC0gYWRkIGEgcGxhdGZvcm0gZGV2aWNlIHRvIGRldmljZSBoaWVyYXJjaHkKICAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2Ugd2UmIzM5O3JlIGFkZGluZwpAQCAtODY4LDggJiM0Mzs5MTgsOCBAQCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfZnVsbChjb25zdCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAogCXBkZXYtJmd0O2Rldi5wYXJlbnQgPSBwZGV2aW5mby0mZ3Q7cGFyZW50OwotCXBkZXYtJmd0O2Rldi5md25vZGUgPSBwZGV2aW5mby0mZ3Q7Zndub2RlOwotCXBkZXYtJmd0O2Rldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQodG9fb2Zfbm9kZShwZGV2LSZndDtkZXYuZndub2RlKSk7CiYjNDM7CXBkZXYtJmd0O2Rldi5md25vZGUgPSBmd25vZGVfaGFuZGxlX2dldChwZGV2aW5mby0mZ3Q7Zndub2RlKTsKJiM0MzsJcGRldi0mZ3Q7ZGV2Lm9mX25vZGUgPSB0b19vZl9ub2RlKHBkZXYtJmd0O2Rldi5md25vZGUpOwogCWRldl9hc3NpZ25fb2Zfbm9kZV9yZXVzZWQoJmFtcDtwZGV2LSZndDtkZXYsIHBkZXZpbmZvLSZndDtvZl9ub2RlX3JldXNlZCk7CiAKIAlpZiAocGRldmluZm8tJmd0O2RtYV9tYXNrKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmMgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmMKaW5kZXggNzA2NzgzODYzZDA3ZDYuLmFmNGViZDkzYWQ4ZTY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2kyYy5jCkBAIC0xMjMsNyAmIzQzOzEyMyw3IEBAIHN0YXRpYyBpbnQgeGVfaTJjX3JlZ2lzdGVyX2FkYXB0ZXIoc3RydWN0IHhlX2kyYyAqaTJjKQogCX0KIAogCXBkZXYtJmd0O2Rldi5wYXJlbnQgPSBpMmMtJmd0O2RybV9kZXY7Ci0JcGRldi0mZ3Q7ZGV2LmZ3bm9kZSA9IGZ3bm9kZTsKJiM0MzsJcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUocGRldiwgZndub2RlKTsKIAlpMmMtJmd0O2FkYXB0ZXJfbm9kZSA9IGZ3bm9kZTsKIAlpMmMtJmd0O3BkZXYgPSBwZGV2OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXB4YS1wY2kuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcHhhLXBjaS5jCmluZGV4IGRiZDU0MjMwMGY4MDA0Li45MmEwNjQ3ZjA4YzY5ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1weGEtcGNpLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1weGEtcGNpLmMKQEAgLTc2LDcgJiM0Mzs3Niw4IEBAIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICphZGRfaTJjX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgYmFyKQogCQlnb3RvIG91dDsKIAl9CiAJcGRldi0mZ3Q7ZGV2LnBhcmVudCA9ICZhbXA7ZGV2LSZndDtkZXY7Ci0JcGRldi0mZ3Q7ZGV2Lm9mX25vZGUgPSBjaGlsZDsKJiM0MzsKJiM0MzsJcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHBkZXYsIGNoaWxkKTsKIAogCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGRfcmVzb3VyY2VzKHBkZXYsIHJlcywgQVJSQVlfU0laRShyZXMpKTsKIAlpZiAocmV0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9mc2xfcGFtdS5jIGIvZHJpdmVycy9pb21tdS9mc2xfcGFtdS5jCmluZGV4IDI1YWE0NzdhOTVhOTVjLi4wMTI4MzlmYTBkOGEyNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pb21tdS9mc2xfcGFtdS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvaW9tbXUvZnNsX3BhbXUuYwpAQCAtOTczLDcgJiM0Mzs5NzMsOCBAQCBzdGF0aWMgX19pbml0IGludCBmc2xfcGFtdV9pbml0KHZvaWQpCiAJCXJldCA9IC1FTk9NRU07CiAJCWdvdG8gZXJyb3JfZGV2aWNlX2FsbG9jOwogCX0KLQlwZGV2LSZndDtkZXYub2Zfbm9kZSA9IG9mX25vZGVfZ2V0KG5wKTsKJiM0MzsKJiM0MzsJcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHBkZXYsIG5wKTsKIAogCXJldCA9IHBhbXVfZG9tYWluX2luaXQoKTsKIAlpZiAocmV0KQpAQCAtOTg1LDEyICYjNDM7OTg2LDEwIEBAIHN0YXRpYyBfX2luaXQgaW50IGZzbF9wYW11X2luaXQodm9pZCkKIAkJZ290byBlcnJvcl9kZXZpY2VfYWRkOwogCX0KIAomIzQzOwlvZl9ub2RlX3B1dChucCk7CiAJcmV0dXJuIDA7CiAKIGVycm9yX2RldmljZV9hZGQ6Ci0Jb2Zfbm9kZV9wdXQocGRldi0mZ3Q7ZGV2Lm9mX25vZGUpOwotCXBkZXYtJmd0O2Rldi5vZl9ub2RlID0gTlVMTDsKLQogCXBsYXRmb3JtX2RldmljZV9wdXQocGRldik7CiAKIGVycm9yX2RldmljZV9hbGxvYzoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL3RwczY1ODZ4LmMgYi9kcml2ZXJzL21mZC90cHM2NTg2eC5jCmluZGV4IGY1ZjgwNTQ0NjYwMzMxLi4zY2ZkMmYwMmI2MmYzYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZmQvdHBzNjU4NnguYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL21mZC90cHM2NTg2eC5jCkBAIC0zOTcsNyAmIzQzOzM5Nyw3IEBAIHN0YXRpYyBpbnQgdHBzNjU4NnhfYWRkX3N1YmRldnMoc3RydWN0IHRwczY1ODZ4ICp0cHM2NTg2eCwKIAogCQlwZGV2LSZndDtkZXYucGFyZW50ID0gdHBzNjU4NngtJmd0O2RldjsKIAkJcGRldi0mZ3Q7ZGV2LnBsYXRmb3JtX2RhdGEgPSBzdWJkZXYtJmd0O3BsYXRmb3JtX2RhdGE7Ci0JCXBkZXYtJmd0O2Rldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQoc3ViZGV2LSZndDtvZl9ub2RlKTsKJiM0MzsJCXBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwZGV2LCBzdWJkZXYtJmd0O29mX25vZGUpOwogCiAJCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQocGRldik7CiAJCWlmIChyZXQpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbW1paS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMKaW5kZXggYTRlMGQ1YTY4MjY4NzUuLjQ1MWIyM2EwMzljZWJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYwpAQCAtNDkwLDEwICYjNDM7NDkwLDE0IEBAIHN0YXRpYyBpbnQgYmNtZ2VuZXRfbWlpX3JlZ2lzdGVyKHN0cnVjdCBiY21nZW5ldF9wcml2ICpwcml2KQogCS8qIFJldGFpbiB0aGlzIHBsYXRmb3JtX2RldmljZSBwb2ludGVyIGZvciBsYXRlciBjbGVhbnVwICovCiAJcHJpdi0mZ3Q7bWlpX3BkZXYgPSBwcGRldjsKIAlwcGRldi0mZ3Q7ZGV2LnBhcmVudCA9ICZhbXA7cGRldi0mZ3Q7ZGV2OwotCWlmIChkbikKLQkJcHBkZXYtJmd0O2Rldi5vZl9ub2RlID0gYmNtZ2VuZXRfbWlpX29mX2ZpbmRfbWRpbyhwcml2KTsKLQllbHNlCiYjNDM7CiYjNDM7CWlmIChkbikgewomIzQzOwkJc3RydWN0IGRldmljZV9ub2RlICpucCBfX2ZyZWUoZGV2aWNlX25vZGUpID0gYmNtZ2VuZXRfbWlpX29mX2ZpbmRfbWRpbyhwcml2KTsKJiM0MzsKJiM0MzsJCXBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwcGRldiwgbnApOwomIzQzOwl9IGVsc2UgewogCQlwcGQucGh5X21hc2sgPSB+MDsKJiM0MzsJfQogCiAJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZF9yZXNvdXJjZXMocHBkZXYsICZhbXA7cmVzLCAxKTsKIAlpZiAocmV0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdjY0M3h4X2V0aC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdjY0M3h4X2V0aC5jCmluZGV4IDE4ODE1ODNiZTVjZTJlLi45Y2FhMWU0N2MxNzRjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdjY0M3h4X2V0aC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXY2NDN4eF9ldGguYwpAQCAtMjc4MCw3ICYjNDM7Mjc4MCw3IEBAIHN0YXRpYyBpbnQgbXY2NDN4eF9ldGhfc2hhcmVkX29mX2FkZF9wb3J0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJCWdvdG8gcHV0X2VycjsKIAl9CiAJcHBkZXYtJmd0O2Rldi5jb2hlcmVudF9kbWFfbWFzayA9IERNQV9CSVRfTUFTSygzMik7Ci0JcHBkZXYtJmd0O2Rldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQocG5wKTsKJiM0MzsJcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHBwZGV2LCBwbnApOwogCiAJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZF9yZXNvdXJjZXMocHBkZXYsICZhbXA7cmVzLCAxKTsKIAlpZiAocmV0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9vZi9wbGF0Zm9ybS5jIGIvZHJpdmVycy9vZi9wbGF0Zm9ybS5jCmluZGV4IDUzYmNhOGM2Zjc4MTBjLi44YjFlNzY0MDc3ODI1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9vZi9wbGF0Zm9ybS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvb2YvcGxhdGZvcm0uYwpAQCAtMTI2LDcgJiM0MzsxMjYsNyBAQCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvZl9kZXZpY2VfYWxsb2Moc3RydWN0IGRldmljZV9ub2RlICpucCwKIAl9CiAKIAkvKiBzZXR1cCBnZW5lcmljIGRldmljZSBpbmZvICovCi0JZGV2aWNlX3NldF9ub2RlKCZhbXA7ZGV2LSZndDtkZXYsIG9mX2Z3bm9kZV9oYW5kbGUob2Zfbm9kZV9nZXQobnApKSk7CiYjNDM7CXBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShkZXYsIG5wKTsKIAlkZXYtJmd0O2Rldi5wYXJlbnQgPSBwYXJlbnQgPyA6ICZhbXA7cGxhdGZvcm1fYnVzOwogCiAJaWYgKGJ1c19pZCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGxhdGZvcm0vc3VyZmFjZS9zdXJmYWNlX2dwZS5jIGIvZHJpdmVycy9wbGF0Zm9ybS9zdXJmYWNlL3N1cmZhY2VfZ3BlLmMKaW5kZXggYjM1OTQxMzkwM2IxM2MuLjQwODk2YTg1NDRiMGE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BsYXRmb3JtL3N1cmZhY2Uvc3VyZmFjZV9ncGUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3BsYXRmb3JtL3N1cmZhY2Uvc3VyZmFjZV9ncGUuYwpAQCAtMzE3LDcgJiM0MzszMTcsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBzdXJmYWNlX2dwZV9pbml0KHZvaWQpCiAJCWdvdG8gZXJyX2FsbG9jOwogCX0KIAotCXBkZXYtJmd0O2Rldi5md25vZGUgPSBmd25vZGU7CiYjNDM7CXBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHBkZXYsIGZ3bm9kZSk7CiAKIAlzdGF0dXMgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKHBkZXYpOwogCWlmIChzdGF0dXMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BtZG9tYWluL2lteC9ncGMuYyBiL2RyaXZlcnMvcG1kb21haW4vaW14L2dwYy5jCmluZGV4IDQyZTUwYzliNGZiOWZmLi5hYmNhNWY0NDlhMjI2ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wbWRvbWFpbi9pbXgvZ3BjLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9wbWRvbWFpbi9pbXgvZ3BjLmMKQEAgLTQ4Nyw4ICYjNDM7NDg3LDcgQEAgc3RhdGljIGludCBpbXhfZ3BjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCQlkb21haW4tJmd0O2lwZ19yYXRlX21oeiA9IGlwZ19yYXRlX21oejsKIAogCQkJcGRfcGRldi0mZ3Q7ZGV2LnBhcmVudCA9ICZhbXA7cGRldi0mZ3Q7ZGV2OwotCQkJcGRfcGRldi0mZ3Q7ZGV2Lm9mX25vZGUgPSBvZl9ub2RlX2dldChucCk7Ci0JCQlwZF9wZGV2LSZndDtkZXYuZndub2RlID0gb2ZfZndub2RlX2hhbmRsZShucCk7CiYjNDM7CQkJcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHBkX3BkZXYsIG5wKTsKIAogCQkJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChwZF9wZGV2KTsKIAkJCWlmIChyZXQpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVzZXQvcmVzZXQtcnpnMmwtdXNicGh5LWN0cmwuYyBiL2RyaXZlcnMvcmVzZXQvcmVzZXQtcnpnMmwtdXNicGh5LWN0cmwuYwppbmRleCBmZDc1ZDk2MDFhM2JmZC4uZjAwM2IzNjA2MjljOTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcmVzZXQvcmVzZXQtcnpnMmwtdXNicGh5LWN0cmwuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3Jlc2V0L3Jlc2V0LXJ6ZzJsLXVzYnBoeS1jdHJsLmMKQEAgLTI0OSw3ICYjNDM7MjQ5LDcgQEAgc3RhdGljIGludCByemcybF91c2JwaHlfY3RybF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXZkZXYtJmd0O2Rldi5wYXJlbnQgPSBkZXY7CiAJcHJpdi0mZ3Q7dmRldiA9IHZkZXY7CiAKLQlkZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYoJmFtcDt2ZGV2LSZndDtkZXYsIGRldik7CiYjNDM7CXBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2Rldih2ZGV2LCBkZXYpOwogCWVycm9yID0gcGxhdGZvcm1fZGV2aWNlX2FkZCh2ZGV2KTsKIAlpZiAoZXJyb3IpCiAJCWdvdG8gZXJyX2RldmljZV9wdXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NsaW1idXMvcWNvbS1uZ2QtY3RybC5jIGIvZHJpdmVycy9zbGltYnVzL3Fjb20tbmdkLWN0cmwuYwppbmRleCAzMDcxZTQ2ZDAzYmVhYS4uNmU4OTQxNTcxMmNlMWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2xpbWJ1cy9xY29tLW5nZC1jdHJsLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zbGltYnVzL3Fjb20tbmdkLWN0cmwuYwpAQCAtMTUzOSw3ICYjNDM7MTUzOSw3IEBAIHN0YXRpYyBpbnQgb2ZfcWNvbV9zbGltX25nZF9yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsCiAJCQlrZnJlZShuZ2QpOwogCQkJcmV0dXJuIHJldDsKIAkJfQotCQluZ2QtJmd0O3BkZXYtJmd0O2Rldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQobm9kZSk7CiYjNDM7CQlwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUobmdkLSZndDtwZGV2LCBub2RlKTsKIAkJY3RybC0mZ3Q7bmdkID0gbmdkOwogCiAJCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQobmdkLSZndDtwZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NoaXBpZGVhL2NvcmUuYyBiL2RyaXZlcnMvdXNiL2NoaXBpZGVhL2NvcmUuYwppbmRleCAwNzU2M2JlMDAxM2Y0ZC4uN2VkYzUxMmNjMzdkYzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2NoaXBpZGVhL2NvcmUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3VzYi9jaGlwaWRlYS9jb3JlLmMKQEAgLTg3OSw3ICYjNDM7ODc5LDcgQEAgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqY2lfaGRyY19hZGRfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldiwKIAl9CiAKIAlwZGV2LSZndDtkZXYucGFyZW50ID0gZGV2OwotCWRldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldigmYW1wO3BkZXYtJmd0O2RldiwgZGV2KTsKJiM0MzsJcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHBkZXYsIGRldik7CiAKIAlyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkX3Jlc291cmNlcyhwZGV2LCByZXMsIG5yZXMpOwogCWlmIChyZXQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9tdXNiL2p6NDc0MC5jIGIvZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuYwppbmRleCBkZjU2Yzk3Mjk4NmY3Yy4uYzc3MGJhNTc2ZjA1YjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL211c2Ivano0NzQwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuYwpAQCAtMjczLDcgJiM0MzsyNzMsNyBAQCBzdGF0aWMgaW50IGp6NDc0MF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCW11c2ItJmd0O2Rldi5wYXJlbnQJCT0gZGV2OwogCW11c2ItJmd0O2Rldi5kbWFfbWFzawkJPSAmYW1wO211c2ItJmd0O2Rldi5jb2hlcmVudF9kbWFfbWFzazsKIAltdXNiLSZndDtkZXYuY29oZXJlbnRfZG1hX21hc2sJPSBETUFfQklUX01BU0soMzIpOwotCWRldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldigmYW1wO211c2ItJmd0O2RldiwgZGV2KTsKJiM0MzsJcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KG11c2IsIGRldik7CiAKIAlnbHVlLSZndDtwZGV2CQkJPSBtdXNiOwogCWdsdWUtJmd0O2NsawkJCT0gY2xrOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaCBiL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmgKaW5kZXggMjZlNmE0MzM1OGUyNWMuLjk0YjhkMmI0NmU5MTNlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmgKQEAgLTE5LDYgJiM0MzsxOSw4IEBAIHN0cnVjdCBpcnFfYWZmaW5pdHk7CiBzdHJ1Y3QgbWZkX2NlbGw7CiBzdHJ1Y3QgcHJvcGVydHlfZW50cnk7CiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkOwomIzQzO3N0cnVjdCBkZXZpY2Vfbm9kZTsKJiM0MztzdHJ1Y3QgZndub2RlX2hhbmRsZTsKIAogc3RydWN0IHBsYXRmb3JtX2RldmljZSB7CiAJY29uc3QgY2hhcgkqbmFtZTsKQEAgLTI2Miw2ICYjNDM7MjY0LDEyIEBAIGV4dGVybiBpbnQgcGxhdGZvcm1fZGV2aWNlX2FkZF9yZXNvdXJjZXMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJCQkJIHVuc2lnbmVkIGludCBudW0pOwogZXh0ZXJuIGludCBwbGF0Zm9ybV9kZXZpY2VfYWRkX2RhdGEoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJCQkgICAgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IHNpemUpOwomIzQzO3ZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiYjNDM7CQkJCSBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKTsKJiM0Mzt2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiYjNDM7CQkJCXN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpOwomIzQzO3ZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiYjNDM7CQkJCQkgIGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldjIpOwogZXh0ZXJuIGludCBwbGF0Zm9ybV9kZXZpY2VfYWRkKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpOwogZXh0ZXJuIHZvaWQgcGxhdGZvcm1fZGV2aWNlX2RlbChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTsKIGV4dGVybiB2b2lkIHBsYXRmb3JtX2RldmljZV9wdXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY4MzIKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiA2MTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb246IFBsYXRmb3JtIERldmljZSBGaXJtd2FyZSBOb2RlIE1hbmFnZW1lbnQqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2ggaGVyZSBpbnRyb2R1Y2luZyBhIGZldyBuZXcgZnVuY3Rpb25zIGluIGBkcml2ZXJzL2Jhc2UvcGxhdGZvcm0uY2A6IGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVgLCBgcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVgLCBhbmQgYHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldmAuIFRoZXNlIGFyZSBiYXNpY2FsbHkgZGVzaWduZWQgdG8gaGFuZGxlIHRoZSBhc3NpZ25tZW50IG9mIGBvZl9ub2RlYCBhbmQgYGZ3bm9kZWAgdG8gYSBgcGxhdGZvcm1fZGV2aWNlYCwgYW5kIGNydWNpYWxseSwgdGhleSBtYW5hZ2UgdGhlIGFzc29jaWF0ZWQgcmVmZXJlbmNlIGNvdW50aW5nIGludGVybmFsbHkuIFRoaXMgcmVmYWN0b3JpbmcgaGFzIGJlZW4gYXBwbGllZCB0byBhIGZldyBkcml2ZXJzIHRvIGNsZWFuIHVwIHRoZWlyIGNvZGUuCgpNeSBpbml0aWFsIHRob3VnaHQ/IElzIHRoaXMgcGF0Y2ggZXZlbiB3b3J0aCBmdXp6aW5nPyBJdCBzZWVtcyBsaWtlIG1vc3RseSByZWZhY3RvcmluZywgcmlnaHQ/IEJ1dCB0aGVuIEkgc2VlIHRoYXQgdGhlc2UgbmV3IGZ1bmN0aW9ucyBub3cgKmhhbmRsZSByZWZlcmVuY2UgY291bnRpbmcqLCB3aGljaCBpcyBhIHBvdGVudGlhbCBtaW5lZmllbGQgZm9yIGJ1Z3MuIExvb2tpbmcgYXQgdGhlIGNvZGUgZm9yIGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZWAsIGl0IGlzIGNsZWFyIHRoYXQgdGhleSBleHBsaWNpdGx5IHJlbGVhc2UgdGhlIG9sZCBub2RlIGFuZCBpbmNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudCBvbiB0aGUgbmV3IG5vZGUsIHdoaWNoIGlzIGEgZ29vZCBzaWduLCBidXQgYWxzbyB0aGUgc29ydCBvZiBjaGFuZ2UgdGhhdCBjb3VsZCBiZSBzdWJ0bHkgd3JvbmcuIEFuZCB0aGUgY29ycmVzcG9uZGluZyBgcGxhdGZvcm1fZGV2aWNlX3JlbGVhc2VgIG5vdyBoYXMgdG8gcmVsZWFzZSBgZndub2RlYCB0b28sIG1lYW5pbmcgaXQmIzM5O3MgY2hhbmdlZCBzaWduaWZpY2FudGx5IGluIGhvdyBpdCBkb2VzIGl0cyBqb2IuCgpUaGlzIGlzIGEgY29yZSBrZXJuZWwgY2hhbmdlLCByZWFsbHkgZGVlcCBpbiB0aGUgYGRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jYCBjb2RlLCBhbmQgaXQgYWZmZWN0cyBob3cgcGxhdGZvcm0gZGV2aWNlcywgd2hpY2ggYXJlIGV2ZXJ5d2hlcmUsIG1hbmFnZSB0aGVpciBjb25uZWN0aW9uIHdpdGggZmlybXdhcmUgbm9kZXMuIEl0JiMzOTtzIGRlZmluaXRlbHkgcmVhY2hhYmxlLiBBbmQgc2luY2Ugd2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgcmVmZXJlbmNlIGNvdW50aW5nIG9mIGBmd25vZGVgIGFuZCBgb2Zfbm9kZWAsIHdoaWNoIGFyZSBmdW5kYW1lbnRhbCBmb3IgZGV2aWNlIHRyZWUgYW5kIGZpcm13YXJlIGludGVyYWN0aW9uLCBhbnkgYnVnIGhlcmUgY291bGQgbGVhZCB0byB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVha3MuCgpTbyB5ZWFoLCB0aGlzIGlzIGEgZGVmaW5pdGUgZnV6emluZyB0YXJnZXQuCgpMZXQmIzM5O3MgbmFpbCBkb3duIHdoaWNoIGZ1bmN0aW9ucyB0byBmb2N1cyBvbjogYHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZWAsIGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZWAsIGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXZgLCBhbmQgb2YgY291cnNlIGBwbGF0Zm9ybV9kZXZpY2VfcmVsZWFzZWAsIHBsdXMgYHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9mdWxsYC4KCkkmIzM5O2xsIGNoZWNrIGZvciBhbnkgc3BlY2lmaWMga2VybmVsIGNvbmZpZ3VyYXRpb25zIHRoYXQgbWlnaHQgYmUgcmVsZXZhbnQuIFRoZSBjb2RlIGlzIGFsd2F5cyBjb21waWxlZCwgYnV0IHNpbmNlIHdlIGFyZSB3b3JraW5nIHdpdGggYG9mX25vZGVgIGFuZCBgZndub2RlYCwgYENPTkZJR19PRmAgY291bGQgYmUgc29tZXRoaW5nIHRvIGtlZXAgaW4gbWluZCwgYWx0aG91Z2ggYGZ3bm9kZWAgc2VlbXMgdG8gYmUgYWx3YXlzIHByZXNlbnQuCgpUaW1lIHRvIHN0YXJ0IGRpZ2dpbmcgaW50byB0aGUgY29kZSBhbmQgc2VlIGhvdyBgcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVgIGlzIGFjdHVhbGx5IHVzZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9iYXNlL3BsYXRmb3JtLmM9NzA1PXZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG4tLVxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzA3LXtcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jOjcwODpcdHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHBkZXYsIG9mX2Z3bm9kZV9oYW5kbGUobnApKTtcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTcwOS19XG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYz03MTA9RVhQT1JUX1NZTUJPTF9HUEwocGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKTtcbi0tXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MTItLyoqXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYzo3MTM6ICogcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUgLSBhc3NpZ24gYSBmaXJtd2FyZSBub2RlIHRvIGRldmljZVxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzE0LSAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2UgdG8gc2V0IHRoZSBub2RlIGZvclxuLS1cbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTcyMC0gKi9cbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jOjcyMTp2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MjItXHRcdFx0XHRzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlKVxuLS1cbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTcyNy19XG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYzo3Mjg6RVhQT1JUX1NZTUJPTF9HUEwocGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUpO1xuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzI5LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS94ZS94ZV9pMmMuYz05Mj1zdGF0aWMgaW50IHhlX2kyY19yZWdpc3Rlcl9hZGFwdGVyKHN0cnVjdCB4ZV9pMmMgKmkyYylcbi0tXG5kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmMtMTI1LVx0cGRldi1cdTAwM2VkZXYucGFyZW50ID0gaTJjLVx1MDAzZWRybV9kZXY7XG5kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmM6MTI2Olx0cGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUocGRldiwgZndub2RlKTtcbmRyaXZlcnMvZ3B1L2RybS94ZS94ZV9pMmMuYy0xMjctXHRpMmMtXHUwMDNlYWRhcHRlcl9ub2RlID0gZndub2RlO1xuLS1cbmRyaXZlcnMvcGxhdGZvcm0vc3VyZmFjZS9zdXJmYWNlX2dwZS5jPTI5MT1zdGF0aWMgaW50IF9faW5pdCBzdXJmYWNlX2dwZV9pbml0KHZvaWQpXG4tLVxuZHJpdmVycy9wbGF0Zm9ybS9zdXJmYWNlL3N1cmZhY2VfZ3BlLmMtMzE5LVxuZHJpdmVycy9wbGF0Zm9ybS9zdXJmYWNlL3N1cmZhY2VfZ3BlLmM6MzIwOlx0cGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUocGRldiwgZndub2RlKTtcbmRyaXZlcnMvcGxhdGZvcm0vc3VyZmFjZS9zdXJmYWNlX2dwZS5jLTMyMS1cbi0tXG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oPTI2Nz12b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaC0yNjgtXHRcdFx0XHQgc3RydWN0IGRldmljZV9ub2RlICpucCk7XG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oOjI2OTp2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oLTI3MC1cdFx0XHRcdHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDg3MjcKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiAxODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIFBsYXRmb3JtIERldmljZSBJbml0aWFsaXphdGlvbiBhbmQgUmVsZWFzZSBGdW5jdGlvbnMgZm9yIEZ1enppbmcqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGBkcml2ZXJzL2Jhc2UvcGxhdGZvcm0uY2Ag4oCTIHRoYXQmIzM5O3Mgd2hlcmUgdGhlIGhlYXJ0IG9mIHRoZSBwbGF0Zm9ybSBkZXZpY2UgbWFuYWdlbWVudCBsaWVzLiBUaGlzIGlzIGEgY3J1Y2lhbCBhcmVhIGluIHRoZSBrZXJuZWwsIHNvIGl04oCZcyBkZWZpbml0ZWx5IHdvcnRoIGEgY2xvc2UgbG9vayBmb3IgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcy4gSSYjMzk7bSBzcGVjaWZpY2FsbHkgaW50ZXJlc3RlZCBpbiB0aGVzZSBmdW5jdGlvbnM6IGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVgLCBgcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVgLCBgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2YCwgYW5kIGBwbGF0Zm9ybV9kZXZpY2VfcmVsZWFzZWAuCgpHb29kIG5ld3MgaXMsIHRoZXNlIGZ1bmN0aW9ucyBhcmVuJiMzOTt0IGluIGFueSBob3QgcGF0aDsgdGhleSBhcmUgcHJpbWFyaWx5IGludm9sdmVkIGR1cmluZyBkZXZpY2UgY3JlYXRpb24gYW5kIGRlc3RydWN0aW9uLiBUaGF0IHNpbXBsaWZpZXMgdGhpbmdzIGEgYml0IGZyb20gYSBwZXJmb3JtYW5jZSBwZXJzcGVjdGl2ZS4gTm8gc3BlY2lhbCBjb25maWd1cmF0aW9ucyBzaG91bGQgYmUgbmVlZGVkIHRvIGJ1aWxkIGFuZCB0ZXN0IHRoZXNlIGZ1bmN0aW9ucywgYXMgYGRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jYCBpcyBhbHdheXMgY29tcGlsZWQuIEkmIzM5O2xsIGZsYWcgdGhpcyBhcyBgV29ydGhGdXp6aW5nPXRydWVgLgoKTm93LCBiZWZvcmUgSSBqdW1wIGluLCBJIHNob3VsZCBkbyBteSBkdWUgZGlsaWdlbmNlLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgZG9uJiMzOTt0IG1pc3MgYW55dGhpbmcgb2J2aW91cy4gTGV0JiMzOTtzIHF1aWNrbHkgZG91YmxlIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGNoZWNrIGlmIGBDT05GSUdfT0ZgIGlzIHJlcXVpcmVkLiBGdW5jdGlvbnMgaW52b2x2aW5nIGBvZl9ub2RlYCBtYXkgbmVlZCBpdC4gSXTigJlzIHBvc3NpYmxlIHRoZXkgaGF2ZSBzdHVicyBpZiBgQ09ORklHX09GYCBpcyBkaXNhYmxlZCwgb3IgbWF5YmUgdGhleSBhcmUgY29tcGlsZWQgcmVnYXJkbGVzcywgYnV0IEnigJlkIGJldHRlciBtYWtlIHN1cmUuIFRoaXMgd2lsbCBhZmZlY3QgaG93IEkgdGVzdCBhbmQgd2hhdCBuZWVkcyB0byBiZSBlbmFibGVkIGR1cmluZyBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuYz0xNDU2PXN0YXRpYyBpbnQgX19pbml0IHBtYWNfaTJjX2NyZWF0ZV9wbGF0Zm9ybV9kZXZpY2VzKHZvaWQpXG4tLVxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm1hYy9sb3dfaTJjLmMtMTQ3My1cdFx0YnVzLVx1MDAzZXBsYXRmb3JtX2Rldi1cdTAwM2VkZXYucGxhdGZvcm1fZGF0YSA9IGJ1cztcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJtYWMvbG93X2kyYy5jOjE0NzQ6XHRcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShidXMtXHUwMDNlcGxhdGZvcm1fZGV2LCBidXMtXHUwMDNlYnVzbm9kZSk7XG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuYy0xNDc1LVx0XHRwbGF0Zm9ybV9kZXZpY2VfYWRkKGJ1cy1cdTAwM2VwbGF0Zm9ybV9kZXYpO1xuLS1cbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jPTY5ND1FWFBPUlRfU1lNQk9MX0dQTChwbGF0Zm9ybV9kZXZpY2VfYWRkX2RhdGEpO1xuLS1cbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTY5Ni0vKipcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jOjY5NzogKiBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUgLSBhc3NpZ24gYW4gT0Ygbm9kZSB0byBkZXZpY2VcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTY5OC0gKiBAcGRldjogcGxhdGZvcm0gZGV2aWNlIHRvIGFkZCB0aGUgbm9kZSBmb3Jcbi0tXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MDQtICovXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYzo3MDU6dm9pZCBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTcwNi1cdFx0XHRcdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKVxuLS1cbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTcwOS19XG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYzo3MTA6RVhQT1JUX1NZTUJPTF9HUEwocGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKTtcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTcxMS1cbi0tXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYz03Mjg9RVhQT1JUX1NZTUJPTF9HUEwocGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUpO1xuLS1cbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTczMC0vKipcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jOjczMTogKiBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYgLSByZXVzZSBPRiBub2RlIG9mIGFub3RoZXIgZGV2aWNlXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MzItICogQHBkZXY6IHBsYXRmb3JtIGRldmljZSB0byBzZXQgdGhlIG5vZGUgZm9yXG4tLVxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzM3LSAqL1xuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmM6NzM4OnZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MzktXHRcdFx0XHRcdCAgY29uc3Qgc3RydWN0IGRldmljZSAqZGV2Milcbi0tXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03NDMtfVxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmM6NzQ0OkVYUE9SVF9TWU1CT0xfR1BMKHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2Rldik7XG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03NDUtXG4tLVxuZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1weGEtcGNpLmM9MjM9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmFkZF9pMmNfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBiYXIpXG4tLVxuZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1weGEtcGNpLmMtNzktXG5kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXB4YS1wY2kuYzo4MDpcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwZGV2LCBjaGlsZCk7XG5kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXB4YS1wY2kuYy04MS1cbi0tXG5kcml2ZXJzL2lvbW11L2ZzbF9wYW11LmM9OTMzPXN0YXRpYyBfX2luaXQgaW50IGZzbF9wYW11X2luaXQodm9pZClcbi0tXG5kcml2ZXJzL2lvbW11L2ZzbF9wYW11LmMtOTc2LVxuZHJpdmVycy9pb21tdS9mc2xfcGFtdS5jOjk3NzpcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwZGV2LCBucCk7XG5kcml2ZXJzL2lvbW11L2ZzbF9wYW11LmMtOTc4LVxuLS1cbmRyaXZlcnMvbWZkL3RwczY1ODZ4LmM9MzgyPXN0YXRpYyBpbnQgdHBzNjU4NnhfYWRkX3N1YmRldnMoc3RydWN0IHRwczY1ODZ4ICp0cHM2NTg2eCxcbi0tXG5kcml2ZXJzL21mZC90cHM2NTg2eC5jLTM5OS1cdFx0cGRldi1cdTAwM2VkZXYucGxhdGZvcm1fZGF0YSA9IHN1YmRldi1cdTAwM2VwbGF0Zm9ybV9kYXRhO1xuZHJpdmVycy9tZmQvdHBzNjU4NnguYzo0MDA6XHRcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwZGV2LCBzdWJkZXYtXHUwMDNlb2Zfbm9kZSk7XG5kcml2ZXJzL21mZC90cHM2NTg2eC5jLTQwMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYz00NDk9c3RhdGljIGludCBiY21nZW5ldF9taWlfcmVnaXN0ZXIoc3RydWN0IGJjbWdlbmV0X3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMtNDk2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmM6NDk3Olx0XHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUocHBkZXYsIG5wKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbW1paS5jLTQ5OC1cdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdjY0M3h4X2V0aC5jPTI3MjE9c3RhdGljIGludCBtdjY0M3h4X2V0aF9zaGFyZWRfb2ZfYWRkX3BvcnQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212NjQzeHhfZXRoLmMtMjc4Mi1cdHBwZGV2LVx1MDAzZWRldi5jb2hlcmVudF9kbWFfbWFzayA9IERNQV9CSVRfTUFTSygzMik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212NjQzeHhfZXRoLmM6Mjc4MzpcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwcGRldiwgcG5wKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXY2NDN4eF9ldGguYy0yNzg0LVxuLS1cbmRyaXZlcnMvb2YvcGxhdGZvcm0uYz05Nz1zdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvZl9kZXZpY2VfYWxsb2Moc3RydWN0IGRldmljZV9ub2RlICpucCxcbi0tXG5kcml2ZXJzL29mL3BsYXRmb3JtLmMtMTI4LVx0Lyogc2V0dXAgZ2VuZXJpYyBkZXZpY2UgaW5mbyAqL1xuZHJpdmVycy9vZi9wbGF0Zm9ybS5jOjEyOTpcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShkZXYsIG5wKTtcbmRyaXZlcnMvb2YvcGxhdGZvcm0uYy0xMzAtXHRkZXYtXHUwMDNlZGV2LnBhcmVudCA9IHBhcmVudCA/IDogXHUwMDI2cGxhdGZvcm1fYnVzO1xuLS1cbmRyaXZlcnMvcG1kb21haW4vaW14L2dwYy5jPTQwMj1zdGF0aWMgaW50IGlteF9ncGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL3BtZG9tYWluL2lteC9ncGMuYy00ODktXHRcdFx0cGRfcGRldi1cdTAwM2VkZXYucGFyZW50ID0gXHUwMDI2cGRldi1cdTAwM2VkZXY7XG5kcml2ZXJzL3BtZG9tYWluL2lteC9ncGMuYzo0OTA6XHRcdFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHBkX3BkZXYsIG5wKTtcbmRyaXZlcnMvcG1kb21haW4vaW14L2dwYy5jLTQ5MS1cbi0tXG5kcml2ZXJzL3Jlc2V0L3Jlc2V0LXJ6ZzJsLXVzYnBoeS1jdHJsLmM9MTg5PXN0YXRpYyBpbnQgcnpnMmxfdXNicGh5X2N0cmxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL3Jlc2V0L3Jlc2V0LXJ6ZzJsLXVzYnBoeS1jdHJsLmMtMjUxLVxuZHJpdmVycy9yZXNldC9yZXNldC1yemcybC11c2JwaHktY3RybC5jOjI1MjpcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2Rldih2ZGV2LCBkZXYpO1xuZHJpdmVycy9yZXNldC9yZXNldC1yemcybC11c2JwaHktY3RybC5jLTI1My1cdGVycm9yID0gcGxhdGZvcm1fZGV2aWNlX2FkZCh2ZGV2KTtcbi0tXG5kcml2ZXJzL3NsaW1idXMvcWNvbS1uZ2QtY3RybC5jPTE1MDg9c3RhdGljIGludCBvZl9xY29tX3NsaW1fbmdkX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKnBhcmVudCxcbi0tXG5kcml2ZXJzL3NsaW1idXMvcWNvbS1uZ2QtY3RybC5jLTE1NDEtXHRcdH1cbmRyaXZlcnMvc2xpbWJ1cy9xY29tLW5nZC1jdHJsLmM6MTU0MjpcdFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKG5nZC1cdTAwM2VwZGV2LCBub2RlKTtcbmRyaXZlcnMvc2xpbWJ1cy9xY29tLW5nZC1jdHJsLmMtMTU0My1cdFx0Y3RybC1cdTAwM2VuZ2QgPSBuZ2Q7XG4tLVxuZHJpdmVycy91c2IvY2hpcGlkZWEvY29yZS5jPTg2MD1zdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpjaV9oZHJjX2FkZF9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvdXNiL2NoaXBpZGVhL2NvcmUuYy04ODEtXHRwZGV2LVx1MDAzZWRldi5wYXJlbnQgPSBkZXY7XG5kcml2ZXJzL3VzYi9jaGlwaWRlYS9jb3JlLmM6ODgyOlx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHBkZXYsIGRldik7XG5kcml2ZXJzL3VzYi9jaGlwaWRlYS9jb3JlLmMtODgzLVxuLS1cbmRyaXZlcnMvdXNiL211c2Ivano0NzQwLmM9MjM1PXN0YXRpYyBpbnQgano0NzQwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuYy0yNzUtXHRtdXNiLVx1MDAzZWRldi5jb2hlcmVudF9kbWFfbWFza1x0PSBETUFfQklUX01BU0soMzIpO1xuZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuYzoyNzY6XHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYobXVzYiwgZGV2KTtcbmRyaXZlcnMvdXNiL211c2Ivano0NzQwLmMtMjc3LVxuLS1cbmluY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmg9MjY1PWV4dGVybiBpbnQgcGxhdGZvcm1fZGV2aWNlX2FkZF9kYXRhKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oLTI2Ni1cdFx0XHRcdCAgICBjb25zdCB2b2lkICpkYXRhLCBzaXplX3Qgc2l6ZSk7XG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oOjI2Nzp2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaC0yNjgtXHRcdFx0XHQgc3RydWN0IGRldmljZV9ub2RlICpucCk7XG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oPTI2OT12b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oLTI3MC1cdFx0XHRcdHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpO1xuaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaDoyNzE6dm9pZCBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbmluY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmgtMjcyLVx0XHRcdFx0XHQgIGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldjIpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDExNjUzCgkJCQkJCQlvdXRwdXQ6IDE0NAoJCQkJCQkJdGhvdWdodHM6IDE5MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIFRoZXNlIFBsYXRmb3JtIERldmljZSBDaGFuZ2VzKioKCk9rYXksIHNvIEkmIzM5O3ZlIHJldmlld2VkIHRoZXNlIGNoYW5nZXMsIGFuZCBpdCBsb29rcyBsaWtlIHdlIGhhdmUgYSBjb21wbGV0ZSBhbmQgZnVuY3Rpb25hbCBpbXBsZW1lbnRhdGlvbiBoZXJlLCB3aXRoIGltcGFjdHMgb24gaG93IHBsYXRmb3JtIGRldmljZXMgYXJlIGNyZWF0ZWQgYW5kIGRlc3Ryb3llZC4gTXkgZXZhbHVhdGlvbiBpcyB0aGF0IHRoaXMgKndhcnJhbnRzKiBhICYjMzQ7V29ydGhGdXp6aW5nPXRydWUmIzM0OyBmbGFnLiBJJiMzOTttIGdvaW5nIHRvIGZvY3VzIHRoZSBmdXp6aW5nIGVmZm9ydHMgc3BlY2lmaWNhbGx5IG9uIHRoZXNlIGtleSBmdW5jdGlvbnM6IGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVgLCBgcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVgLCBgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2YCwgYW5kIGBwbGF0Zm9ybV9kZXZpY2VfcmVsZWFzZWAuCgpUaGUgYmVhdXR5IG9mIHRoaXMgaXMgdGhhdCBubyBzcGVjaWZpYyBjb25maWcgdHdlYWtpbmcgaXMgbmVlZGVkLiBUaGUgYGRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jYCBmaWxlIGlzIGNvbXBpbGVkIHVuY29uZGl0aW9uYWxseSwgd2hpY2ggc2ltcGxpZmllcyB0aGUgc2V0dXAuIFNvLCBJ4oCZbGwgbGVhdmUgdGhlIGBFbmFibGVDb25maWdzYCBhcnJheSBhcyBlbXB0eS4KCk15IHJlYXNvbmluZz8gV2VsbCwgdGhlc2UgcGF0Y2hlcyBpbnRyb2R1Y2UgKm5ldyogaGVscGVyIGZ1bmN0aW9ucyBmb3IgZWxlZ2FudGx5IGFzc2lnbmluZyBib3RoIGBvZl9ub2RlYCBhbmQgYGZ3bm9kZWAgdG8gb3VyIHBsYXRmb3JtIGRldmljZXMuIENyaXRpY2FsbHksIHRoZXNlIGZ1bmN0aW9ucyBoYW5kbGUgcmVmZXJlbmNlIGNvdW50aW5nIGludGVybmFsbHkg4oCTIGEgZGV0YWlsIHRoYXQmIzM5O3MgZXNzZW50aWFsIGZvciBwcmV2ZW50aW5nIG1lbW9yeSBsZWFrcy4gV2UgYWxzbyBoYXZlIGFuIHVwZGF0ZSB0byBgcGxhdGZvcm1fZGV2aWNlX3JlbGVhc2VgIHRoYXQgYXBwZWFycyB0byBjb3JyZWN0bHkgcmVsZWFzZSB0aGUgYGZ3bm9kZWAgcmVmZXJlbmNlLiBUaGVzZSBhcmUgZnVuZGFtZW50YWwgY2hhbmdlcyB0byB0aGUgZGV2aWNlIG1vZGVsLiBBbnkgYnVnIGhlcmXigJRlc3BlY2lhbGx5IGluIHRoZSByZWZlcmVuY2UgY291bnRpbmfigJRjb3VsZCBsZWFkIHRvIG5hc3R5IG1lbW9yeSBsZWFrcyBvciwgZXZlbiB3b3JzZSwgdXNlLWFmdGVyLWZyZWUgY29uZGl0aW9ucy4gV2UgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUgdGhhdCB0aGlzIGNvZGUgaXMgcm9jayBzb2xpZC4gVGhlcmVmb3JlLCB0aG9yb3VnaCBmdXp6aW5nIGlzIGRlZmluaXRlbHkgdGhlIHJpZ2h0IGFwcHJvYWNoIGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZSYjMzQ7LAogICAgJiMzNDtwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZSYjMzQ7LAogICAgJiMzNDtwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYmIzM0OywKICAgICYjMzQ7cGxhdGZvcm1fZGV2aWNlX3JlbGVhc2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBuZXcgaGVscGVyIGZ1bmN0aW9ucyBmb3IgYXNzaWduaW5nIG9mX25vZGUgYW5kIGZ3bm9kZSB0byBwbGF0Zm9ybSBkZXZpY2VzLCB3aGljaCBpbnRlcm5hbGx5IG1hbmFnZSByZWZlcmVuY2UgY291bnRpbmcuIEl0IGFsc28gdXBkYXRlcyBwbGF0Zm9ybV9kZXZpY2VfcmVsZWFzZSB0byBwcm9wZXJseSByZWxlYXNlIHRoZSBmd25vZGUgcmVmZXJlbmNlLiBUaGVzZSBhcmUgY29yZSBkZXZpY2UgbW9kZWwgY2hhbmdlcyB0aGF0IGNvdWxkIGxlYWQgdG8gbWVtb3J5IGxlYWtzIG9yIHVzZS1hZnRlci1mcmVlIGlmIHJlZmVyZW5jZSBjb3VudGluZyBpcyBpbmNvcnJlY3QuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlJiMzNDssCiAgICAmIzM0O3BsYXRmb3JtX2RldmljZV9zZXRfZndub2RlJiMzNDssCiAgICAmIzM0O3BsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldiYjMzQ7LAogICAgJiMzNDtwbGF0Zm9ybV9kZXZpY2VfcmVsZWFzZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBoZWxwZXIgZnVuY3Rpb25zIGZvciBhc3NpZ25pbmcgb2Zfbm9kZSBhbmQgZndub2RlIHRvIHBsYXRmb3JtIGRldmljZXMsIHdoaWNoIGludGVybmFsbHkgbWFuYWdlIHJlZmVyZW5jZSBjb3VudGluZy4gSXQgYWxzbyB1cGRhdGVzIHBsYXRmb3JtX2RldmljZV9yZWxlYXNlIHRvIHByb3Blcmx5IHJlbGVhc2UgdGhlIGZ3bm9kZSByZWZlcmVuY2UuIFRoZXNlIGFyZSBjb3JlIGRldmljZSBtb2RlbCBjaGFuZ2VzIHRoYXQgY291bGQgbGVhZCB0byBtZW1vcnkgbGVha3Mgb3IgdXNlLWFmdGVyLWZyZWUgaWYgcmVmZXJlbmNlIGNvdW50aW5nIGlzIGluY29ycmVjdC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjI2OjAxLjQ4NzYwNjc5NloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQwNjgyMTYyMjQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZVwiLFxuICAgIFwicGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVcIixcbiAgICBcInBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldlwiLFxuICAgIFwicGxhdGZvcm1fZGV2aWNlX3JlbGVhc2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBoZWxwZXIgZnVuY3Rpb25zIGZvciBhc3NpZ25pbmcgb2Zfbm9kZSBhbmQgZndub2RlIHRvIHBsYXRmb3JtIGRldmljZXMsIHdoaWNoIGludGVybmFsbHkgbWFuYWdlIHJlZmVyZW5jZSBjb3VudGluZy4gSXQgYWxzbyB1cGRhdGVzIHBsYXRmb3JtX2RldmljZV9yZWxlYXNlIHRvIHByb3Blcmx5IHJlbGVhc2UgdGhlIGZ3bm9kZSByZWZlcmVuY2UuIFRoZXNlIGFyZSBjb3JlIGRldmljZSBtb2RlbCBjaGFuZ2VzIHRoYXQgY291bGQgbGVhZCB0byBtZW1vcnkgbGVha3Mgb3IgdXNlLWFmdGVyLWZyZWUgaWYgcmVmZXJlbmNlIGNvdW50aW5nIGlzIGluY29ycmVjdC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MjY6MDEuNDg3NjEzMzQ2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1Mjk2MTc1NzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAwYmQ1ZDQwODAxMDljNjUxYTllNDVlNWU2NjYzYTEzMjNkY2Q1YTA4XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVuIDI5IDA5OjI2OjAwIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJtYWMvbG93X2kyYy5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm1hYy9sb3dfaTJjLmNcXG5pbmRleCBkYTcyYTMwYWI4NjU3ZS4uYTE3NWEzMmEyMjJiYWIgMTAwNjQ0XFxuLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm1hYy9sb3dfaTJjLmNcXG4rKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuY1xcbkBAIC0xNDcxLDcgKzE0NzEsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBwbWFjX2kyY19jcmVhdGVfcGxhdGZvcm1fZGV2aWNlcyh2b2lkKVxcbiBcXHRcXHRpZiAoYnVzLVxcdTAwM2VwbGF0Zm9ybV9kZXYgPT0gTlVMTClcXG4gXFx0XFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuIFxcdFxcdGJ1cy1cXHUwMDNlcGxhdGZvcm1fZGV2LVxcdTAwM2VkZXYucGxhdGZvcm1fZGF0YSA9IGJ1cztcXG4tXFx0XFx0YnVzLVxcdTAwM2VwbGF0Zm9ybV9kZXYtXFx1MDAzZWRldi5vZl9ub2RlID0gYnVzLVxcdTAwM2VidXNub2RlO1xcbitcXHRcXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUoYnVzLVxcdTAwM2VwbGF0Zm9ybV9kZXYsIGJ1cy1cXHUwMDNlYnVzbm9kZSk7XFxuIFxcdFxcdHBsYXRmb3JtX2RldmljZV9hZGQoYnVzLVxcdTAwM2VwbGF0Zm9ybV9kZXYpO1xcbiBcXHR9XFxuIFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYyBiL2RyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jXFxuaW5kZXggZmI5MTIwYjBiY2ZlMGUuLmJiNWY1YmRkZDA0N2Q0IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jXFxuKysrIGIvZHJpdmVycy9iYXNlL3BsYXRmb3JtLmNcXG5AQCAtNTk5LDcgKzU5OSw3IEBAIHN0YXRpYyB2b2lkIHBsYXRmb3JtX2RldmljZV9yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldilcXG4gXFx0c3RydWN0IHBsYXRmb3JtX29iamVjdCAqcGEgPSBjb250YWluZXJfb2YoZGV2LCBzdHJ1Y3QgcGxhdGZvcm1fb2JqZWN0LFxcbiBcXHRcXHRcXHRcXHRcXHRcXHQgIHBkZXYuZGV2KTtcXG4gXFxuLVxcdG9mX25vZGVfcHV0KHBhLVxcdTAwM2VwZGV2LmRldi5vZl9ub2RlKTtcXG4rXFx0Zndub2RlX2hhbmRsZV9wdXQocGEtXFx1MDAzZXBkZXYuZGV2LmZ3bm9kZSk7XFxuIFxcdGtmcmVlKHBhLVxcdTAwM2VwZGV2LmRldi5wbGF0Zm9ybV9kYXRhKTtcXG4gXFx0a2ZyZWUocGEtXFx1MDAzZXBkZXYubWZkX2NlbGwpO1xcbiBcXHRrZnJlZShwYS1cXHUwMDNlcGRldi5yZXNvdXJjZSk7XFxuQEAgLTY5Myw2ICs2OTMsNTYgQEAgaW50IHBsYXRmb3JtX2RldmljZV9hZGRfZGF0YShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBjb25zdCB2b2lkICpkYXRhLFxcbiB9XFxuIEVYUE9SVF9TWU1CT0xfR1BMKHBsYXRmb3JtX2RldmljZV9hZGRfZGF0YSk7XFxuIFxcbisvKipcXG4rICogcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlIC0gYXNzaWduIGFuIE9GIG5vZGUgdG8gZGV2aWNlXFxuKyAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2UgdG8gYWRkIHRoZSBub2RlIGZvclxcbisgKiBAbnA6IG5ldyBkZXZpY2Ugbm9kZVxcbisgKlxcbisgKiBBc3NpZ24gYW4gT0Ygbm9kZSB0byB0aGlzIHBsYXRmb3JtIGRldmljZS4gSW50ZXJuYWxseSBrZWVwIHRyYWNrIG9mIHRoZVxcbisgKiByZWZlcmVuY2UgY291bnQuIERldmljZXMgY3JlYXRlZCB3aXRoIHBsYXRmb3JtX2RldmljZV9hbGxvYygpIG11c3QgdXNlIHRoaXNcXG4rICogZnVuY3Rpb24gaW5zdGVhZCBvZiBhc3NpZ25pbmcgdGhlIG5vZGUgbWFudWFsbHkuXFxuKyAqL1xcbit2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbitcXHRcXHRcXHRcXHQgc3RydWN0IGRldmljZV9ub2RlICpucClcXG4re1xcbitcXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZShwZGV2LCBvZl9md25vZGVfaGFuZGxlKG5wKSk7XFxuK31cXG4rRVhQT1JUX1NZTUJPTF9HUEwocGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKTtcXG4rXFxuKy8qKlxcbisgKiBwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZSAtIGFzc2lnbiBhIGZpcm13YXJlIG5vZGUgdG8gZGV2aWNlXFxuKyAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2UgdG8gc2V0IHRoZSBub2RlIGZvclxcbisgKiBAZndub2RlOiBuZXcgZmlybXdhcmUgbm9kZVxcbisgKlxcbisgKiBBc3NpZ24gYSBmaXJtd2FyZSBub2RlIHRvIHRoaXMgcGxhdGZvcm0gZGV2aWNlLiBJbnRlcm5hbGx5IGtlZXAgdHJhY2sgb2YgdGhlXFxuKyAqIHJlZmVyZW5jZSBjb3VudC4gRGV2aWNlcyBjcmVhdGVkIHdpdGggcGxhdGZvcm1fZGV2aWNlX2FsbG9jKCkgbXVzdCB1c2UgdGhpc1xcbisgKiBmdW5jdGlvbiBpbnN0ZWFkIG9mIGFzc2lnbmluZyB0aGUgbm9kZSBtYW51YWxseS5cXG4rICovXFxuK3ZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG4rXFx0XFx0XFx0XFx0c3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSlcXG4re1xcbitcXHRmd25vZGVfaGFuZGxlX3B1dChwZGV2LVxcdTAwM2VkZXYuZndub2RlKTtcXG4rXFx0cGRldi1cXHUwMDNlZGV2LmZ3bm9kZSA9IGZ3bm9kZV9oYW5kbGVfZ2V0KGZ3bm9kZSk7XFxuK1xcdHBkZXYtXFx1MDAzZWRldi5vZl9ub2RlID0gdG9fb2Zfbm9kZShmd25vZGUpO1xcbit9XFxuK0VYUE9SVF9TWU1CT0xfR1BMKHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKTtcXG4rXFxuKy8qKlxcbisgKiBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYgLSByZXVzZSBPRiBub2RlIG9mIGFub3RoZXIgZGV2aWNlXFxuKyAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2UgdG8gc2V0IHRoZSBub2RlIGZvclxcbisgKiBAZGV2MjogZGV2aWNlIHdob3NlIE9GIG5vZGUgdG8gcmV1c2VcXG4rICpcXG4rICogUmV1c2VzIHRoZSBPRiBub2RlIG9mIGFub3RoZXIgZGV2aWNlIGluIHRoaXMgcGxhdGZvcm0gZGV2aWNlIHdoaWxlXFxuKyAqIGludGVybmFsbHkga2VlcGluZyB0cmFjayBvZiByZWZlcmVuY2UgY291bnRpbmcuXFxuKyAqL1xcbit2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldihzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbitcXHRcXHRcXHRcXHRcXHQgIGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldjIpXFxuK3tcXG4rXFx0ZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIGRldjIpO1xcbitcXHRwZGV2LVxcdTAwM2VkZXYuZndub2RlID0gb2ZfZndub2RlX2hhbmRsZShwZGV2LVxcdTAwM2VkZXYub2Zfbm9kZSk7XFxuK31cXG4rRVhQT1JUX1NZTUJPTF9HUEwocGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KTtcXG4rXFxuIC8qKlxcbiAgKiBwbGF0Zm9ybV9kZXZpY2VfYWRkIC0gYWRkIGEgcGxhdGZvcm0gZGV2aWNlIHRvIGRldmljZSBoaWVyYXJjaHlcXG4gICogQHBkZXY6IHBsYXRmb3JtIGRldmljZSB3ZSdyZSBhZGRpbmdcXG5AQCAtODY4LDggKzkxOCw4IEBAIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9mdWxsKGNvbnN0IHN0cnVjdCBwbGF0Zm9ybV9kZXZpXFxuIFxcdFxcdHJldHVybiBFUlJfUFRSKC1FTk9NRU0pO1xcbiBcXG4gXFx0cGRldi1cXHUwMDNlZGV2LnBhcmVudCA9IHBkZXZpbmZvLVxcdTAwM2VwYXJlbnQ7XFxuLVxcdHBkZXYtXFx1MDAzZWRldi5md25vZGUgPSBwZGV2aW5mby1cXHUwMDNlZndub2RlO1xcbi1cXHRwZGV2LVxcdTAwM2VkZXYub2Zfbm9kZSA9IG9mX25vZGVfZ2V0KHRvX29mX25vZGUocGRldi1cXHUwMDNlZGV2LmZ3bm9kZSkpO1xcbitcXHRwZGV2LVxcdTAwM2VkZXYuZndub2RlID0gZndub2RlX2hhbmRsZV9nZXQocGRldmluZm8tXFx1MDAzZWZ3bm9kZSk7XFxuK1xcdHBkZXYtXFx1MDAzZWRldi5vZl9ub2RlID0gdG9fb2Zfbm9kZShwZGV2LVxcdTAwM2VkZXYuZndub2RlKTtcXG4gXFx0ZGV2X2Fzc2lnbl9vZl9ub2RlX3JldXNlZChcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBwZGV2aW5mby1cXHUwMDNlb2Zfbm9kZV9yZXVzZWQpO1xcbiBcXG4gXFx0aWYgKHBkZXZpbmZvLVxcdTAwM2VkbWFfbWFzaykge1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmMgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmNcXG5pbmRleCA3MDY3ODM4NjNkMDdkNi4uYWY0ZWJkOTNhZDhlNjggMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2kyYy5jXFxuKysrIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2kyYy5jXFxuQEAgLTEyMyw3ICsxMjMsNyBAQCBzdGF0aWMgaW50IHhlX2kyY19yZWdpc3Rlcl9hZGFwdGVyKHN0cnVjdCB4ZV9pMmMgKmkyYylcXG4gXFx0fVxcbiBcXG4gXFx0cGRldi1cXHUwMDNlZGV2LnBhcmVudCA9IGkyYy1cXHUwMDNlZHJtX2RldjtcXG4tXFx0cGRldi1cXHUwMDNlZGV2LmZ3bm9kZSA9IGZ3bm9kZTtcXG4rXFx0cGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUocGRldiwgZndub2RlKTtcXG4gXFx0aTJjLVxcdTAwM2VhZGFwdGVyX25vZGUgPSBmd25vZGU7XFxuIFxcdGkyYy1cXHUwMDNlcGRldiA9IHBkZXY7XFxuIFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXB4YS1wY2kuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcHhhLXBjaS5jXFxuaW5kZXggZGJkNTQyMzAwZjgwMDQuLjkyYTA2NDdmMDhjNjlmIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcHhhLXBjaS5jXFxuKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1weGEtcGNpLmNcXG5AQCAtNzYsNyArNzYsOCBAQCBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqYWRkX2kyY19kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IGJhcilcXG4gXFx0XFx0Z290byBvdXQ7XFxuIFxcdH1cXG4gXFx0cGRldi1cXHUwMDNlZGV2LnBhcmVudCA9IFxcdTAwMjZkZXYtXFx1MDAzZWRldjtcXG4tXFx0cGRldi1cXHUwMDNlZGV2Lm9mX25vZGUgPSBjaGlsZDtcXG4rXFxuK1xcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwZGV2LCBjaGlsZCk7XFxuIFxcbiBcXHRyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkX3Jlc291cmNlcyhwZGV2LCByZXMsIEFSUkFZX1NJWkUocmVzKSk7XFxuIFxcdGlmIChyZXQpXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvZnNsX3BhbXUuYyBiL2RyaXZlcnMvaW9tbXUvZnNsX3BhbXUuY1xcbmluZGV4IDI1YWE0NzdhOTVhOTVjLi4wMTI4MzlmYTBkOGEyNyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL2lvbW11L2ZzbF9wYW11LmNcXG4rKysgYi9kcml2ZXJzL2lvbW11L2ZzbF9wYW11LmNcXG5AQCAtOTczLDcgKzk3Myw4IEBAIHN0YXRpYyBfX2luaXQgaW50IGZzbF9wYW11X2luaXQodm9pZClcXG4gXFx0XFx0cmV0ID0gLUVOT01FTTtcXG4gXFx0XFx0Z290byBlcnJvcl9kZXZpY2VfYWxsb2M7XFxuIFxcdH1cXG4tXFx0cGRldi1cXHUwMDNlZGV2Lm9mX25vZGUgPSBvZl9ub2RlX2dldChucCk7XFxuK1xcbitcXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUocGRldiwgbnApO1xcbiBcXG4gXFx0cmV0ID0gcGFtdV9kb21haW5faW5pdCgpO1xcbiBcXHRpZiAocmV0KVxcbkBAIC05ODUsMTIgKzk4NiwxMCBAQCBzdGF0aWMgX19pbml0IGludCBmc2xfcGFtdV9pbml0KHZvaWQpXFxuIFxcdFxcdGdvdG8gZXJyb3JfZGV2aWNlX2FkZDtcXG4gXFx0fVxcbiBcXG4rXFx0b2Zfbm9kZV9wdXQobnApO1xcbiBcXHRyZXR1cm4gMDtcXG4gXFxuIGVycm9yX2RldmljZV9hZGQ6XFxuLVxcdG9mX25vZGVfcHV0KHBkZXYtXFx1MDAzZWRldi5vZl9ub2RlKTtcXG4tXFx0cGRldi1cXHUwMDNlZGV2Lm9mX25vZGUgPSBOVUxMO1xcbi1cXG4gXFx0cGxhdGZvcm1fZGV2aWNlX3B1dChwZGV2KTtcXG4gXFxuIGVycm9yX2RldmljZV9hbGxvYzpcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvdHBzNjU4NnguYyBiL2RyaXZlcnMvbWZkL3RwczY1ODZ4LmNcXG5pbmRleCBmNWY4MDU0NDY2MDMzMS4uM2NmZDJmMDJiNjJmM2MgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9tZmQvdHBzNjU4NnguY1xcbisrKyBiL2RyaXZlcnMvbWZkL3RwczY1ODZ4LmNcXG5AQCAtMzk3LDcgKzM5Nyw3IEBAIHN0YXRpYyBpbnQgdHBzNjU4NnhfYWRkX3N1YmRldnMoc3RydWN0IHRwczY1ODZ4ICp0cHM2NTg2eCxcXG4gXFxuIFxcdFxcdHBkZXYtXFx1MDAzZWRldi5wYXJlbnQgPSB0cHM2NTg2eC1cXHUwMDNlZGV2O1xcbiBcXHRcXHRwZGV2LVxcdTAwM2VkZXYucGxhdGZvcm1fZGF0YSA9IHN1YmRldi1cXHUwMDNlcGxhdGZvcm1fZGF0YTtcXG4tXFx0XFx0cGRldi1cXHUwMDNlZGV2Lm9mX25vZGUgPSBvZl9ub2RlX2dldChzdWJkZXYtXFx1MDAzZW9mX25vZGUpO1xcbitcXHRcXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUocGRldiwgc3ViZGV2LVxcdTAwM2VvZl9ub2RlKTtcXG4gXFxuIFxcdFxcdHJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQocGRldik7XFxuIFxcdFxcdGlmIChyZXQpIHtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuY1xcbmluZGV4IGE0ZTBkNWE2ODI2ODc1Li40NTFiMjNhMDM5Y2ViYiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbW1paS5jXFxuQEAgLTQ5MCwxMCArNDkwLDE0IEBAIHN0YXRpYyBpbnQgYmNtZ2VuZXRfbWlpX3JlZ2lzdGVyKHN0cnVjdCBiY21nZW5ldF9wcml2ICpwcml2KVxcbiBcXHQvKiBSZXRhaW4gdGhpcyBwbGF0Zm9ybV9kZXZpY2UgcG9pbnRlciBmb3IgbGF0ZXIgY2xlYW51cCAqL1xcbiBcXHRwcml2LVxcdTAwM2VtaWlfcGRldiA9IHBwZGV2O1xcbiBcXHRwcGRldi1cXHUwMDNlZGV2LnBhcmVudCA9IFxcdTAwMjZwZGV2LVxcdTAwM2VkZXY7XFxuLVxcdGlmIChkbilcXG4tXFx0XFx0cHBkZXYtXFx1MDAzZWRldi5vZl9ub2RlID0gYmNtZ2VuZXRfbWlpX29mX2ZpbmRfbWRpbyhwcml2KTtcXG4tXFx0ZWxzZVxcbitcXG4rXFx0aWYgKGRuKSB7XFxuK1xcdFxcdHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgX19mcmVlKGRldmljZV9ub2RlKSA9IGJjbWdlbmV0X21paV9vZl9maW5kX21kaW8ocHJpdik7XFxuK1xcbitcXHRcXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUocHBkZXYsIG5wKTtcXG4rXFx0fSBlbHNlIHtcXG4gXFx0XFx0cHBkLnBoeV9tYXNrID0gfjA7XFxuK1xcdH1cXG4gXFxuIFxcdHJldCA9IHBsYXRmb3JtX2RldmljZV9hZGRfcmVzb3VyY2VzKHBwZGV2LCBcXHUwMDI2cmVzLCAxKTtcXG4gXFx0aWYgKHJldClcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdjY0M3h4X2V0aC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdjY0M3h4X2V0aC5jXFxuaW5kZXggMTg4MTU4M2JlNWNlMmUuLjljYWExZTQ3YzE3NGM5IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXY2NDN4eF9ldGguY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXY2NDN4eF9ldGguY1xcbkBAIC0yNzgwLDcgKzI3ODAsNyBAQCBzdGF0aWMgaW50IG12NjQzeHhfZXRoX3NoYXJlZF9vZl9hZGRfcG9ydChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbiBcXHRcXHRnb3RvIHB1dF9lcnI7XFxuIFxcdH1cXG4gXFx0cHBkZXYtXFx1MDAzZWRldi5jb2hlcmVudF9kbWFfbWFzayA9IERNQV9CSVRfTUFTSygzMik7XFxuLVxcdHBwZGV2LVxcdTAwM2VkZXYub2Zfbm9kZSA9IG9mX25vZGVfZ2V0KHBucCk7XFxuK1xcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwcGRldiwgcG5wKTtcXG4gXFxuIFxcdHJldCA9IHBsYXRmb3JtX2RldmljZV9hZGRfcmVzb3VyY2VzKHBwZGV2LCBcXHUwMDI2cmVzLCAxKTtcXG4gXFx0aWYgKHJldClcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9vZi9wbGF0Zm9ybS5jIGIvZHJpdmVycy9vZi9wbGF0Zm9ybS5jXFxuaW5kZXggNTNiY2E4YzZmNzgxMGMuLjhiMWU3NjQwNzc4MjUzIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvb2YvcGxhdGZvcm0uY1xcbisrKyBiL2RyaXZlcnMvb2YvcGxhdGZvcm0uY1xcbkBAIC0xMjYsNyArMTI2LDcgQEAgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqb2ZfZGV2aWNlX2FsbG9jKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsXFxuIFxcdH1cXG4gXFxuIFxcdC8qIHNldHVwIGdlbmVyaWMgZGV2aWNlIGluZm8gKi9cXG4tXFx0ZGV2aWNlX3NldF9ub2RlKFxcdTAwMjZkZXYtXFx1MDAzZWRldiwgb2ZfZndub2RlX2hhbmRsZShvZl9ub2RlX2dldChucCkpKTtcXG4rXFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKGRldiwgbnApO1xcbiBcXHRkZXYtXFx1MDAzZWRldi5wYXJlbnQgPSBwYXJlbnQgPyA6IFxcdTAwMjZwbGF0Zm9ybV9idXM7XFxuIFxcbiBcXHRpZiAoYnVzX2lkKVxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL3N1cmZhY2Uvc3VyZmFjZV9ncGUuYyBiL2RyaXZlcnMvcGxhdGZvcm0vc3VyZmFjZS9zdXJmYWNlX2dwZS5jXFxuaW5kZXggYjM1OTQxMzkwM2IxM2MuLjQwODk2YTg1NDRiMGE0IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvcGxhdGZvcm0vc3VyZmFjZS9zdXJmYWNlX2dwZS5jXFxuKysrIGIvZHJpdmVycy9wbGF0Zm9ybS9zdXJmYWNlL3N1cmZhY2VfZ3BlLmNcXG5AQCAtMzE3LDcgKzMxNyw3IEBAIHN0YXRpYyBpbnQgX19pbml0IHN1cmZhY2VfZ3BlX2luaXQodm9pZClcXG4gXFx0XFx0Z290byBlcnJfYWxsb2M7XFxuIFxcdH1cXG4gXFxuLVxcdHBkZXYtXFx1MDAzZWRldi5md25vZGUgPSBmd25vZGU7XFxuK1xcdHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHBkZXYsIGZ3bm9kZSk7XFxuIFxcbiBcXHRzdGF0dXMgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKHBkZXYpO1xcbiBcXHRpZiAoc3RhdHVzKVxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3BtZG9tYWluL2lteC9ncGMuYyBiL2RyaXZlcnMvcG1kb21haW4vaW14L2dwYy5jXFxuaW5kZXggNDJlNTBjOWI0ZmI5ZmYuLmFiY2E1ZjQ0OWEyMjZmIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvcG1kb21haW4vaW14L2dwYy5jXFxuKysrIGIvZHJpdmVycy9wbWRvbWFpbi9pbXgvZ3BjLmNcXG5AQCAtNDg3LDggKzQ4Nyw3IEBAIHN0YXRpYyBpbnQgaW14X2dwY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbiBcXHRcXHRcXHRkb21haW4tXFx1MDAzZWlwZ19yYXRlX21oeiA9IGlwZ19yYXRlX21oejtcXG4gXFxuIFxcdFxcdFxcdHBkX3BkZXYtXFx1MDAzZWRldi5wYXJlbnQgPSBcXHUwMDI2cGRldi1cXHUwMDNlZGV2O1xcbi1cXHRcXHRcXHRwZF9wZGV2LVxcdTAwM2VkZXYub2Zfbm9kZSA9IG9mX25vZGVfZ2V0KG5wKTtcXG4tXFx0XFx0XFx0cGRfcGRldi1cXHUwMDNlZGV2LmZ3bm9kZSA9IG9mX2Z3bm9kZV9oYW5kbGUobnApO1xcbitcXHRcXHRcXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUocGRfcGRldiwgbnApO1xcbiBcXG4gXFx0XFx0XFx0cmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChwZF9wZGV2KTtcXG4gXFx0XFx0XFx0aWYgKHJldCkge1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Jlc2V0L3Jlc2V0LXJ6ZzJsLXVzYnBoeS1jdHJsLmMgYi9kcml2ZXJzL3Jlc2V0L3Jlc2V0LXJ6ZzJsLXVzYnBoeS1jdHJsLmNcXG5pbmRleCBmZDc1ZDk2MDFhM2JmZC4uZjAwM2IzNjA2MjljOTAgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9yZXNldC9yZXNldC1yemcybC11c2JwaHktY3RybC5jXFxuKysrIGIvZHJpdmVycy9yZXNldC9yZXNldC1yemcybC11c2JwaHktY3RybC5jXFxuQEAgLTI0OSw3ICsyNDksNyBAQCBzdGF0aWMgaW50IHJ6ZzJsX3VzYnBoeV9jdHJsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuIFxcdHZkZXYtXFx1MDAzZWRldi5wYXJlbnQgPSBkZXY7XFxuIFxcdHByaXYtXFx1MDAzZXZkZXYgPSB2ZGV2O1xcbiBcXG4tXFx0ZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KFxcdTAwMjZ2ZGV2LVxcdTAwM2VkZXYsIGRldik7XFxuK1xcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2Rldih2ZGV2LCBkZXYpO1xcbiBcXHRlcnJvciA9IHBsYXRmb3JtX2RldmljZV9hZGQodmRldik7XFxuIFxcdGlmIChlcnJvcilcXG4gXFx0XFx0Z290byBlcnJfZGV2aWNlX3B1dDtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zbGltYnVzL3Fjb20tbmdkLWN0cmwuYyBiL2RyaXZlcnMvc2xpbWJ1cy9xY29tLW5nZC1jdHJsLmNcXG5pbmRleCAzMDcxZTQ2ZDAzYmVhYS4uNmU4OTQxNTcxMmNlMWEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9zbGltYnVzL3Fjb20tbmdkLWN0cmwuY1xcbisrKyBiL2RyaXZlcnMvc2xpbWJ1cy9xY29tLW5nZC1jdHJsLmNcXG5AQCAtMTUzOSw3ICsxNTM5LDcgQEAgc3RhdGljIGludCBvZl9xY29tX3NsaW1fbmdkX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKnBhcmVudCxcXG4gXFx0XFx0XFx0a2ZyZWUobmdkKTtcXG4gXFx0XFx0XFx0cmV0dXJuIHJldDtcXG4gXFx0XFx0fVxcbi1cXHRcXHRuZ2QtXFx1MDAzZXBkZXYtXFx1MDAzZWRldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQobm9kZSk7XFxuK1xcdFxcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShuZ2QtXFx1MDAzZXBkZXYsIG5vZGUpO1xcbiBcXHRcXHRjdHJsLVxcdTAwM2VuZ2QgPSBuZ2Q7XFxuIFxcbiBcXHRcXHRyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKG5nZC1cXHUwMDNlcGRldik7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NoaXBpZGVhL2NvcmUuYyBiL2RyaXZlcnMvdXNiL2NoaXBpZGVhL2NvcmUuY1xcbmluZGV4IDA3NTYzYmUwMDEzZjRkLi43ZWRjNTEyY2MzN2RjMiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3VzYi9jaGlwaWRlYS9jb3JlLmNcXG4rKysgYi9kcml2ZXJzL3VzYi9jaGlwaWRlYS9jb3JlLmNcXG5AQCAtODc5LDcgKzg3OSw3IEBAIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmNpX2hkcmNfYWRkX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYsXFxuIFxcdH1cXG4gXFxuIFxcdHBkZXYtXFx1MDAzZWRldi5wYXJlbnQgPSBkZXY7XFxuLVxcdGRldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldihcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBkZXYpO1xcbitcXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYocGRldiwgZGV2KTtcXG4gXFxuIFxcdHJldCA9IHBsYXRmb3JtX2RldmljZV9hZGRfcmVzb3VyY2VzKHBkZXYsIHJlcywgbnJlcyk7XFxuIFxcdGlmIChyZXQpXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL211c2Ivano0NzQwLmMgYi9kcml2ZXJzL3VzYi9tdXNiL2p6NDc0MC5jXFxuaW5kZXggZGY1NmM5NzI5ODZmN2MuLmM3NzBiYTU3NmYwNWI2IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvdXNiL211c2Ivano0NzQwLmNcXG4rKysgYi9kcml2ZXJzL3VzYi9tdXNiL2p6NDc0MC5jXFxuQEAgLTI3Myw3ICsyNzMsNyBAQCBzdGF0aWMgaW50IGp6NDc0MF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbiBcXHRtdXNiLVxcdTAwM2VkZXYucGFyZW50XFx0XFx0PSBkZXY7XFxuIFxcdG11c2ItXFx1MDAzZWRldi5kbWFfbWFza1xcdFxcdD0gXFx1MDAyNm11c2ItXFx1MDAzZWRldi5jb2hlcmVudF9kbWFfbWFzaztcXG4gXFx0bXVzYi1cXHUwMDNlZGV2LmNvaGVyZW50X2RtYV9tYXNrXFx0PSBETUFfQklUX01BU0soMzIpO1xcbi1cXHRkZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYoXFx1MDAyNm11c2ItXFx1MDAzZWRldiwgZGV2KTtcXG4rXFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KG11c2IsIGRldik7XFxuIFxcbiBcXHRnbHVlLVxcdTAwM2VwZGV2XFx0XFx0XFx0PSBtdXNiO1xcbiBcXHRnbHVlLVxcdTAwM2VjbGtcXHRcXHRcXHQ9IGNsaztcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaCBiL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmhcXG5pbmRleCAyNmU2YTQzMzU4ZTI1Yy4uOTRiOGQyYjQ2ZTkxM2UgMTAwNjQ0XFxuLS0tIGEvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaFxcbisrKyBiL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmhcXG5AQCAtMTksNiArMTksOCBAQCBzdHJ1Y3QgaXJxX2FmZmluaXR5O1xcbiBzdHJ1Y3QgbWZkX2NlbGw7XFxuIHN0cnVjdCBwcm9wZXJ0eV9lbnRyeTtcXG4gc3RydWN0IHBsYXRmb3JtX2RldmljZV9pZDtcXG4rc3RydWN0IGRldmljZV9ub2RlO1xcbitzdHJ1Y3QgZndub2RlX2hhbmRsZTtcXG4gXFxuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Uge1xcbiBcXHRjb25zdCBjaGFyXFx0Km5hbWU7XFxuQEAgLTI2Miw2ICsyNjQsMTIgQEAgZXh0ZXJuIGludCBwbGF0Zm9ybV9kZXZpY2VfYWRkX3Jlc291cmNlcyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbiBcXHRcXHRcXHRcXHRcXHQgdW5zaWduZWQgaW50IG51bSk7XFxuIGV4dGVybiBpbnQgcGxhdGZvcm1fZGV2aWNlX2FkZF9kYXRhKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuIFxcdFxcdFxcdFxcdCAgICBjb25zdCB2b2lkICpkYXRhLCBzaXplX3Qgc2l6ZSk7XFxuK3ZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuK1xcdFxcdFxcdFxcdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKTtcXG4rdm9pZCBwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbitcXHRcXHRcXHRcXHRzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlKTtcXG4rdm9pZCBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG4rXFx0XFx0XFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYyKTtcXG4gZXh0ZXJuIGludCBwbGF0Zm9ybV9kZXZpY2VfYWRkKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpO1xcbiBleHRlcm4gdm9pZCBwbGF0Zm9ybV9kZXZpY2VfZGVsKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpO1xcbiBleHRlcm4gdm9pZCBwbGF0Zm9ybV9kZXZpY2VfcHV0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOToyNjowMi4wMTc5NjQwODRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMTUxNzk4ODU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZVwiLFxuICAgIFwicGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVcIixcbiAgICBcInBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldlwiLFxuICAgIFwicGxhdGZvcm1fZGV2aWNlX3JlbGVhc2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBoZWxwZXIgZnVuY3Rpb25zIGZvciBhc3NpZ25pbmcgb2Zfbm9kZSBhbmQgZndub2RlIHRvIHBsYXRmb3JtIGRldmljZXMsIHdoaWNoIGludGVybmFsbHkgbWFuYWdlIHJlZmVyZW5jZSBjb3VudGluZy4gSXQgYWxzbyB1cGRhdGVzIHBsYXRmb3JtX2RldmljZV9yZWxlYXNlIHRvIHByb3Blcmx5IHJlbGVhc2UgdGhlIGZ3bm9kZSByZWZlcmVuY2UuIFRoZXNlIGFyZSBjb3JlIGRldmljZSBtb2RlbCBjaGFuZ2VzIHRoYXQgY291bGQgbGVhZCB0byBtZW1vcnkgbGVha3Mgb3IgdXNlLWFmdGVyLWZyZWUgaWYgcmVmZXJlbmNlIGNvdW50aW5nIGlzIGluY29ycmVjdC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAwYmQ1ZDQwODAxMDljNjUxYTllNDVlNWU2NjYzYTEzMjNkY2Q1YTA4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdW4gMjkgMDk6MjY6MDAgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJtYWMvbG93X2kyYy5jXG5pbmRleCBkYTcyYTMwYWI4NjU3ZS4uYTE3NWEzMmEyMjJiYWIgMTAwNjQ0XG4tLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuY1xuKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm1hYy9sb3dfaTJjLmNcbkBAIC0xNDcxLDcgKzE0NzEsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBwbWFjX2kyY19jcmVhdGVfcGxhdGZvcm1fZGV2aWNlcyh2b2lkKVxuIFx0XHRpZiAoYnVzLVx1MDAzZXBsYXRmb3JtX2RldiA9PSBOVUxMKVxuIFx0XHRcdHJldHVybiAtRU5PTUVNO1xuIFx0XHRidXMtXHUwMDNlcGxhdGZvcm1fZGV2LVx1MDAzZWRldi5wbGF0Zm9ybV9kYXRhID0gYnVzO1xuLVx0XHRidXMtXHUwMDNlcGxhdGZvcm1fZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gYnVzLVx1MDAzZWJ1c25vZGU7XG4rXHRcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShidXMtXHUwMDNlcGxhdGZvcm1fZGV2LCBidXMtXHUwMDNlYnVzbm9kZSk7XG4gXHRcdHBsYXRmb3JtX2RldmljZV9hZGQoYnVzLVx1MDAzZXBsYXRmb3JtX2Rldik7XG4gXHR9XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMgYi9kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uY1xuaW5kZXggZmI5MTIwYjBiY2ZlMGUuLmJiNWY1YmRkZDA0N2Q0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9iYXNlL3BsYXRmb3JtLmNcbisrKyBiL2RyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jXG5AQCAtNTk5LDcgKzU5OSw3IEBAIHN0YXRpYyB2b2lkIHBsYXRmb3JtX2RldmljZV9yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldilcbiBcdHN0cnVjdCBwbGF0Zm9ybV9vYmplY3QgKnBhID0gY29udGFpbmVyX29mKGRldiwgc3RydWN0IHBsYXRmb3JtX29iamVjdCxcbiBcdFx0XHRcdFx0XHQgIHBkZXYuZGV2KTtcbiBcbi1cdG9mX25vZGVfcHV0KHBhLVx1MDAzZXBkZXYuZGV2Lm9mX25vZGUpO1xuK1x0Zndub2RlX2hhbmRsZV9wdXQocGEtXHUwMDNlcGRldi5kZXYuZndub2RlKTtcbiBcdGtmcmVlKHBhLVx1MDAzZXBkZXYuZGV2LnBsYXRmb3JtX2RhdGEpO1xuIFx0a2ZyZWUocGEtXHUwMDNlcGRldi5tZmRfY2VsbCk7XG4gXHRrZnJlZShwYS1cdTAwM2VwZGV2LnJlc291cmNlKTtcbkBAIC02OTMsNiArNjkzLDU2IEBAIGludCBwbGF0Zm9ybV9kZXZpY2VfYWRkX2RhdGEoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgY29uc3Qgdm9pZCAqZGF0YSxcbiB9XG4gRVhQT1JUX1NZTUJPTF9HUEwocGxhdGZvcm1fZGV2aWNlX2FkZF9kYXRhKTtcbiBcbisvKipcbisgKiBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUgLSBhc3NpZ24gYW4gT0Ygbm9kZSB0byBkZXZpY2VcbisgKiBAcGRldjogcGxhdGZvcm0gZGV2aWNlIHRvIGFkZCB0aGUgbm9kZSBmb3JcbisgKiBAbnA6IG5ldyBkZXZpY2Ugbm9kZVxuKyAqXG4rICogQXNzaWduIGFuIE9GIG5vZGUgdG8gdGhpcyBwbGF0Zm9ybSBkZXZpY2UuIEludGVybmFsbHkga2VlcCB0cmFjayBvZiB0aGVcbisgKiByZWZlcmVuY2UgY291bnQuIERldmljZXMgY3JlYXRlZCB3aXRoIHBsYXRmb3JtX2RldmljZV9hbGxvYygpIG11c3QgdXNlIHRoaXNcbisgKiBmdW5jdGlvbiBpbnN0ZWFkIG9mIGFzc2lnbmluZyB0aGUgbm9kZSBtYW51YWxseS5cbisgKi9cbit2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuK1x0XHRcdFx0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApXG4re1xuK1x0cGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUocGRldiwgb2ZfZndub2RlX2hhbmRsZShucCkpO1xuK31cbitFWFBPUlRfU1lNQk9MX0dQTChwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUpO1xuK1xuKy8qKlxuKyAqIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlIC0gYXNzaWduIGEgZmlybXdhcmUgbm9kZSB0byBkZXZpY2VcbisgKiBAcGRldjogcGxhdGZvcm0gZGV2aWNlIHRvIHNldCB0aGUgbm9kZSBmb3JcbisgKiBAZndub2RlOiBuZXcgZmlybXdhcmUgbm9kZVxuKyAqXG4rICogQXNzaWduIGEgZmlybXdhcmUgbm9kZSB0byB0aGlzIHBsYXRmb3JtIGRldmljZS4gSW50ZXJuYWxseSBrZWVwIHRyYWNrIG9mIHRoZVxuKyAqIHJlZmVyZW5jZSBjb3VudC4gRGV2aWNlcyBjcmVhdGVkIHdpdGggcGxhdGZvcm1fZGV2aWNlX2FsbG9jKCkgbXVzdCB1c2UgdGhpc1xuKyAqIGZ1bmN0aW9uIGluc3RlYWQgb2YgYXNzaWduaW5nIHRoZSBub2RlIG1hbnVhbGx5LlxuKyAqL1xuK3ZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbitcdFx0XHRcdHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpXG4re1xuK1x0Zndub2RlX2hhbmRsZV9wdXQocGRldi1cdTAwM2VkZXYuZndub2RlKTtcbitcdHBkZXYtXHUwMDNlZGV2LmZ3bm9kZSA9IGZ3bm9kZV9oYW5kbGVfZ2V0KGZ3bm9kZSk7XG4rXHRwZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gdG9fb2Zfbm9kZShmd25vZGUpO1xuK31cbitFWFBPUlRfU1lNQk9MX0dQTChwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZSk7XG4rXG4rLyoqXG4rICogcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2IC0gcmV1c2UgT0Ygbm9kZSBvZiBhbm90aGVyIGRldmljZVxuKyAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2UgdG8gc2V0IHRoZSBub2RlIGZvclxuKyAqIEBkZXYyOiBkZXZpY2Ugd2hvc2UgT0Ygbm9kZSB0byByZXVzZVxuKyAqXG4rICogUmV1c2VzIHRoZSBPRiBub2RlIG9mIGFub3RoZXIgZGV2aWNlIGluIHRoaXMgcGxhdGZvcm0gZGV2aWNlIHdoaWxlXG4rICogaW50ZXJuYWxseSBrZWVwaW5nIHRyYWNrIG9mIHJlZmVyZW5jZSBjb3VudGluZy5cbisgKi9cbit2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldihzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuK1x0XHRcdFx0XHQgIGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldjIpXG4re1xuK1x0ZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBkZXYyKTtcbitcdHBkZXYtXHUwMDNlZGV2LmZ3bm9kZSA9IG9mX2Z3bm9kZV9oYW5kbGUocGRldi1cdTAwM2VkZXYub2Zfbm9kZSk7XG4rfVxuK0VYUE9SVF9TWU1CT0xfR1BMKHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2Rldik7XG4rXG4gLyoqXG4gICogcGxhdGZvcm1fZGV2aWNlX2FkZCAtIGFkZCBhIHBsYXRmb3JtIGRldmljZSB0byBkZXZpY2UgaGllcmFyY2h5XG4gICogQHBkZXY6IHBsYXRmb3JtIGRldmljZSB3ZSdyZSBhZGRpbmdcbkBAIC04NjgsOCArOTE4LDggQEAgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyX2Z1bGwoY29uc3Qgc3RydWN0IHBsYXRmb3JtX2RldmlcbiBcdFx0cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7XG4gXG4gXHRwZGV2LVx1MDAzZWRldi5wYXJlbnQgPSBwZGV2aW5mby1cdTAwM2VwYXJlbnQ7XG4tXHRwZGV2LVx1MDAzZWRldi5md25vZGUgPSBwZGV2aW5mby1cdTAwM2Vmd25vZGU7XG4tXHRwZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQodG9fb2Zfbm9kZShwZGV2LVx1MDAzZWRldi5md25vZGUpKTtcbitcdHBkZXYtXHUwMDNlZGV2LmZ3bm9kZSA9IGZ3bm9kZV9oYW5kbGVfZ2V0KHBkZXZpbmZvLVx1MDAzZWZ3bm9kZSk7XG4rXHRwZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gdG9fb2Zfbm9kZShwZGV2LVx1MDAzZWRldi5md25vZGUpO1xuIFx0ZGV2X2Fzc2lnbl9vZl9ub2RlX3JldXNlZChcdTAwMjZwZGV2LVx1MDAzZWRldiwgcGRldmluZm8tXHUwMDNlb2Zfbm9kZV9yZXVzZWQpO1xuIFxuIFx0aWYgKHBkZXZpbmZvLVx1MDAzZWRtYV9tYXNrKSB7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2kyYy5jIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2kyYy5jXG5pbmRleCA3MDY3ODM4NjNkMDdkNi4uYWY0ZWJkOTNhZDhlNjggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmNcbisrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9pMmMuY1xuQEAgLTEyMyw3ICsxMjMsNyBAQCBzdGF0aWMgaW50IHhlX2kyY19yZWdpc3Rlcl9hZGFwdGVyKHN0cnVjdCB4ZV9pMmMgKmkyYylcbiBcdH1cbiBcbiBcdHBkZXYtXHUwMDNlZGV2LnBhcmVudCA9IGkyYy1cdTAwM2Vkcm1fZGV2O1xuLVx0cGRldi1cdTAwM2VkZXYuZndub2RlID0gZndub2RlO1xuK1x0cGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUocGRldiwgZndub2RlKTtcbiBcdGkyYy1cdTAwM2VhZGFwdGVyX25vZGUgPSBmd25vZGU7XG4gXHRpMmMtXHUwMDNlcGRldiA9IHBkZXY7XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1weGEtcGNpLmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXB4YS1wY2kuY1xuaW5kZXggZGJkNTQyMzAwZjgwMDQuLjkyYTA2NDdmMDhjNjlmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1weGEtcGNpLmNcbisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcHhhLXBjaS5jXG5AQCAtNzYsNyArNzYsOCBAQCBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqYWRkX2kyY19kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IGJhcilcbiBcdFx0Z290byBvdXQ7XG4gXHR9XG4gXHRwZGV2LVx1MDAzZWRldi5wYXJlbnQgPSBcdTAwMjZkZXYtXHUwMDNlZGV2O1xuLVx0cGRldi1cdTAwM2VkZXYub2Zfbm9kZSA9IGNoaWxkO1xuK1xuK1x0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHBkZXYsIGNoaWxkKTtcbiBcbiBcdHJldCA9IHBsYXRmb3JtX2RldmljZV9hZGRfcmVzb3VyY2VzKHBkZXYsIHJlcywgQVJSQVlfU0laRShyZXMpKTtcbiBcdGlmIChyZXQpXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9mc2xfcGFtdS5jIGIvZHJpdmVycy9pb21tdS9mc2xfcGFtdS5jXG5pbmRleCAyNWFhNDc3YTk1YTk1Yy4uMDEyODM5ZmEwZDhhMjcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2lvbW11L2ZzbF9wYW11LmNcbisrKyBiL2RyaXZlcnMvaW9tbXUvZnNsX3BhbXUuY1xuQEAgLTk3Myw3ICs5NzMsOCBAQCBzdGF0aWMgX19pbml0IGludCBmc2xfcGFtdV9pbml0KHZvaWQpXG4gXHRcdHJldCA9IC1FTk9NRU07XG4gXHRcdGdvdG8gZXJyb3JfZGV2aWNlX2FsbG9jO1xuIFx0fVxuLVx0cGRldi1cdTAwM2VkZXYub2Zfbm9kZSA9IG9mX25vZGVfZ2V0KG5wKTtcbitcbitcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwZGV2LCBucCk7XG4gXG4gXHRyZXQgPSBwYW11X2RvbWFpbl9pbml0KCk7XG4gXHRpZiAocmV0KVxuQEAgLTk4NSwxMiArOTg2LDEwIEBAIHN0YXRpYyBfX2luaXQgaW50IGZzbF9wYW11X2luaXQodm9pZClcbiBcdFx0Z290byBlcnJvcl9kZXZpY2VfYWRkO1xuIFx0fVxuIFxuK1x0b2Zfbm9kZV9wdXQobnApO1xuIFx0cmV0dXJuIDA7XG4gXG4gZXJyb3JfZGV2aWNlX2FkZDpcbi1cdG9mX25vZGVfcHV0KHBkZXYtXHUwMDNlZGV2Lm9mX25vZGUpO1xuLVx0cGRldi1cdTAwM2VkZXYub2Zfbm9kZSA9IE5VTEw7XG4tXG4gXHRwbGF0Zm9ybV9kZXZpY2VfcHV0KHBkZXYpO1xuIFxuIGVycm9yX2RldmljZV9hbGxvYzpcbmRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC90cHM2NTg2eC5jIGIvZHJpdmVycy9tZmQvdHBzNjU4NnguY1xuaW5kZXggZjVmODA1NDQ2NjAzMzEuLjNjZmQyZjAyYjYyZjNjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9tZmQvdHBzNjU4NnguY1xuKysrIGIvZHJpdmVycy9tZmQvdHBzNjU4NnguY1xuQEAgLTM5Nyw3ICszOTcsNyBAQCBzdGF0aWMgaW50IHRwczY1ODZ4X2FkZF9zdWJkZXZzKHN0cnVjdCB0cHM2NTg2eCAqdHBzNjU4NngsXG4gXG4gXHRcdHBkZXYtXHUwMDNlZGV2LnBhcmVudCA9IHRwczY1ODZ4LVx1MDAzZWRldjtcbiBcdFx0cGRldi1cdTAwM2VkZXYucGxhdGZvcm1fZGF0YSA9IHN1YmRldi1cdTAwM2VwbGF0Zm9ybV9kYXRhO1xuLVx0XHRwZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQoc3ViZGV2LVx1MDAzZW9mX25vZGUpO1xuK1x0XHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUocGRldiwgc3ViZGV2LVx1MDAzZW9mX25vZGUpO1xuIFxuIFx0XHRyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKHBkZXYpO1xuIFx0XHRpZiAocmV0KSB7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuY1xuaW5kZXggYTRlMGQ1YTY4MjY4NzUuLjQ1MWIyM2EwMzljZWJiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbW1paS5jXG5AQCAtNDkwLDEwICs0OTAsMTQgQEAgc3RhdGljIGludCBiY21nZW5ldF9taWlfcmVnaXN0ZXIoc3RydWN0IGJjbWdlbmV0X3ByaXYgKnByaXYpXG4gXHQvKiBSZXRhaW4gdGhpcyBwbGF0Zm9ybV9kZXZpY2UgcG9pbnRlciBmb3IgbGF0ZXIgY2xlYW51cCAqL1xuIFx0cHJpdi1cdTAwM2VtaWlfcGRldiA9IHBwZGV2O1xuIFx0cHBkZXYtXHUwMDNlZGV2LnBhcmVudCA9IFx1MDAyNnBkZXYtXHUwMDNlZGV2O1xuLVx0aWYgKGRuKVxuLVx0XHRwcGRldi1cdTAwM2VkZXYub2Zfbm9kZSA9IGJjbWdlbmV0X21paV9vZl9maW5kX21kaW8ocHJpdik7XG4tXHRlbHNlXG4rXG4rXHRpZiAoZG4pIHtcbitcdFx0c3RydWN0IGRldmljZV9ub2RlICpucCBfX2ZyZWUoZGV2aWNlX25vZGUpID0gYmNtZ2VuZXRfbWlpX29mX2ZpbmRfbWRpbyhwcml2KTtcbitcbitcdFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHBwZGV2LCBucCk7XG4rXHR9IGVsc2Uge1xuIFx0XHRwcGQucGh5X21hc2sgPSB+MDtcbitcdH1cbiBcbiBcdHJldCA9IHBsYXRmb3JtX2RldmljZV9hZGRfcmVzb3VyY2VzKHBwZGV2LCBcdTAwMjZyZXMsIDEpO1xuIFx0aWYgKHJldClcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212NjQzeHhfZXRoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212NjQzeHhfZXRoLmNcbmluZGV4IDE4ODE1ODNiZTVjZTJlLi45Y2FhMWU0N2MxNzRjOSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXY2NDN4eF9ldGguY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdjY0M3h4X2V0aC5jXG5AQCAtMjc4MCw3ICsyNzgwLDcgQEAgc3RhdGljIGludCBtdjY0M3h4X2V0aF9zaGFyZWRfb2ZfYWRkX3BvcnQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbiBcdFx0Z290byBwdXRfZXJyO1xuIFx0fVxuIFx0cHBkZXYtXHUwMDNlZGV2LmNvaGVyZW50X2RtYV9tYXNrID0gRE1BX0JJVF9NQVNLKDMyKTtcbi1cdHBwZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQocG5wKTtcbitcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwcGRldiwgcG5wKTtcbiBcbiBcdHJldCA9IHBsYXRmb3JtX2RldmljZV9hZGRfcmVzb3VyY2VzKHBwZGV2LCBcdTAwMjZyZXMsIDEpO1xuIFx0aWYgKHJldClcbmRpZmYgLS1naXQgYS9kcml2ZXJzL29mL3BsYXRmb3JtLmMgYi9kcml2ZXJzL29mL3BsYXRmb3JtLmNcbmluZGV4IDUzYmNhOGM2Zjc4MTBjLi44YjFlNzY0MDc3ODI1MyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvb2YvcGxhdGZvcm0uY1xuKysrIGIvZHJpdmVycy9vZi9wbGF0Zm9ybS5jXG5AQCAtMTI2LDcgKzEyNiw3IEBAIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm9mX2RldmljZV9hbGxvYyhzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLFxuIFx0fVxuIFxuIFx0Lyogc2V0dXAgZ2VuZXJpYyBkZXZpY2UgaW5mbyAqL1xuLVx0ZGV2aWNlX3NldF9ub2RlKFx1MDAyNmRldi1cdTAwM2VkZXYsIG9mX2Z3bm9kZV9oYW5kbGUob2Zfbm9kZV9nZXQobnApKSk7XG4rXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUoZGV2LCBucCk7XG4gXHRkZXYtXHUwMDNlZGV2LnBhcmVudCA9IHBhcmVudCA/IDogXHUwMDI2cGxhdGZvcm1fYnVzO1xuIFxuIFx0aWYgKGJ1c19pZClcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL3N1cmZhY2Uvc3VyZmFjZV9ncGUuYyBiL2RyaXZlcnMvcGxhdGZvcm0vc3VyZmFjZS9zdXJmYWNlX2dwZS5jXG5pbmRleCBiMzU5NDEzOTAzYjEzYy4uNDA4OTZhODU0NGIwYTQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3BsYXRmb3JtL3N1cmZhY2Uvc3VyZmFjZV9ncGUuY1xuKysrIGIvZHJpdmVycy9wbGF0Zm9ybS9zdXJmYWNlL3N1cmZhY2VfZ3BlLmNcbkBAIC0zMTcsNyArMzE3LDcgQEAgc3RhdGljIGludCBfX2luaXQgc3VyZmFjZV9ncGVfaW5pdCh2b2lkKVxuIFx0XHRnb3RvIGVycl9hbGxvYztcbiBcdH1cbiBcbi1cdHBkZXYtXHUwMDNlZGV2LmZ3bm9kZSA9IGZ3bm9kZTtcbitcdHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHBkZXYsIGZ3bm9kZSk7XG4gXG4gXHRzdGF0dXMgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKHBkZXYpO1xuIFx0aWYgKHN0YXR1cylcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3BtZG9tYWluL2lteC9ncGMuYyBiL2RyaXZlcnMvcG1kb21haW4vaW14L2dwYy5jXG5pbmRleCA0MmU1MGM5YjRmYjlmZi4uYWJjYTVmNDQ5YTIyNmYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3BtZG9tYWluL2lteC9ncGMuY1xuKysrIGIvZHJpdmVycy9wbWRvbWFpbi9pbXgvZ3BjLmNcbkBAIC00ODcsOCArNDg3LDcgQEAgc3RhdGljIGludCBpbXhfZ3BjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4gXHRcdFx0ZG9tYWluLVx1MDAzZWlwZ19yYXRlX21oeiA9IGlwZ19yYXRlX21oejtcbiBcbiBcdFx0XHRwZF9wZGV2LVx1MDAzZWRldi5wYXJlbnQgPSBcdTAwMjZwZGV2LVx1MDAzZWRldjtcbi1cdFx0XHRwZF9wZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQobnApO1xuLVx0XHRcdHBkX3BkZXYtXHUwMDNlZGV2LmZ3bm9kZSA9IG9mX2Z3bm9kZV9oYW5kbGUobnApO1xuK1x0XHRcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwZF9wZGV2LCBucCk7XG4gXG4gXHRcdFx0cmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChwZF9wZGV2KTtcbiBcdFx0XHRpZiAocmV0KSB7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9yZXNldC9yZXNldC1yemcybC11c2JwaHktY3RybC5jIGIvZHJpdmVycy9yZXNldC9yZXNldC1yemcybC11c2JwaHktY3RybC5jXG5pbmRleCBmZDc1ZDk2MDFhM2JmZC4uZjAwM2IzNjA2MjljOTAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Jlc2V0L3Jlc2V0LXJ6ZzJsLXVzYnBoeS1jdHJsLmNcbisrKyBiL2RyaXZlcnMvcmVzZXQvcmVzZXQtcnpnMmwtdXNicGh5LWN0cmwuY1xuQEAgLTI0OSw3ICsyNDksNyBAQCBzdGF0aWMgaW50IHJ6ZzJsX3VzYnBoeV9jdHJsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4gXHR2ZGV2LVx1MDAzZWRldi5wYXJlbnQgPSBkZXY7XG4gXHRwcml2LVx1MDAzZXZkZXYgPSB2ZGV2O1xuIFxuLVx0ZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KFx1MDAyNnZkZXYtXHUwMDNlZGV2LCBkZXYpO1xuK1x0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHZkZXYsIGRldik7XG4gXHRlcnJvciA9IHBsYXRmb3JtX2RldmljZV9hZGQodmRldik7XG4gXHRpZiAoZXJyb3IpXG4gXHRcdGdvdG8gZXJyX2RldmljZV9wdXQ7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zbGltYnVzL3Fjb20tbmdkLWN0cmwuYyBiL2RyaXZlcnMvc2xpbWJ1cy9xY29tLW5nZC1jdHJsLmNcbmluZGV4IDMwNzFlNDZkMDNiZWFhLi42ZTg5NDE1NzEyY2UxYSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvc2xpbWJ1cy9xY29tLW5nZC1jdHJsLmNcbisrKyBiL2RyaXZlcnMvc2xpbWJ1cy9xY29tLW5nZC1jdHJsLmNcbkBAIC0xNTM5LDcgKzE1MzksNyBAQCBzdGF0aWMgaW50IG9mX3Fjb21fc2xpbV9uZ2RfcmVnaXN0ZXIoc3RydWN0IGRldmljZSAqcGFyZW50LFxuIFx0XHRcdGtmcmVlKG5nZCk7XG4gXHRcdFx0cmV0dXJuIHJldDtcbiBcdFx0fVxuLVx0XHRuZ2QtXHUwMDNlcGRldi1cdTAwM2VkZXYub2Zfbm9kZSA9IG9mX25vZGVfZ2V0KG5vZGUpO1xuK1x0XHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUobmdkLVx1MDAzZXBkZXYsIG5vZGUpO1xuIFx0XHRjdHJsLVx1MDAzZW5nZCA9IG5nZDtcbiBcbiBcdFx0cmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChuZ2QtXHUwMDNlcGRldik7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY2hpcGlkZWEvY29yZS5jIGIvZHJpdmVycy91c2IvY2hpcGlkZWEvY29yZS5jXG5pbmRleCAwNzU2M2JlMDAxM2Y0ZC4uN2VkYzUxMmNjMzdkYzIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3VzYi9jaGlwaWRlYS9jb3JlLmNcbisrKyBiL2RyaXZlcnMvdXNiL2NoaXBpZGVhL2NvcmUuY1xuQEAgLTg3OSw3ICs4NzksNyBAQCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpjaV9oZHJjX2FkZF9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2LFxuIFx0fVxuIFxuIFx0cGRldi1cdTAwM2VkZXYucGFyZW50ID0gZGV2O1xuLVx0ZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBkZXYpO1xuK1x0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHBkZXYsIGRldik7XG4gXG4gXHRyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkX3Jlc291cmNlcyhwZGV2LCByZXMsIG5yZXMpO1xuIFx0aWYgKHJldClcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9tdXNiL2p6NDc0MC5jIGIvZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuY1xuaW5kZXggZGY1NmM5NzI5ODZmN2MuLmM3NzBiYTU3NmYwNWI2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuY1xuKysrIGIvZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuY1xuQEAgLTI3Myw3ICsyNzMsNyBAQCBzdGF0aWMgaW50IGp6NDc0MF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuIFx0bXVzYi1cdTAwM2VkZXYucGFyZW50XHRcdD0gZGV2O1xuIFx0bXVzYi1cdTAwM2VkZXYuZG1hX21hc2tcdFx0PSBcdTAwMjZtdXNiLVx1MDAzZWRldi5jb2hlcmVudF9kbWFfbWFzaztcbiBcdG11c2ItXHUwMDNlZGV2LmNvaGVyZW50X2RtYV9tYXNrXHQ9IERNQV9CSVRfTUFTSygzMik7XG4tXHRkZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYoXHUwMDI2bXVzYi1cdTAwM2VkZXYsIGRldik7XG4rXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYobXVzYiwgZGV2KTtcbiBcbiBcdGdsdWUtXHUwMDNlcGRldlx0XHRcdD0gbXVzYjtcbiBcdGdsdWUtXHUwMDNlY2xrXHRcdFx0PSBjbGs7XG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaCBiL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmhcbmluZGV4IDI2ZTZhNDMzNThlMjVjLi45NGI4ZDJiNDZlOTEzZSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmhcbisrKyBiL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmhcbkBAIC0xOSw2ICsxOSw4IEBAIHN0cnVjdCBpcnFfYWZmaW5pdHk7XG4gc3RydWN0IG1mZF9jZWxsO1xuIHN0cnVjdCBwcm9wZXJ0eV9lbnRyeTtcbiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkO1xuK3N0cnVjdCBkZXZpY2Vfbm9kZTtcbitzdHJ1Y3QgZndub2RlX2hhbmRsZTtcbiBcbiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHtcbiBcdGNvbnN0IGNoYXJcdCpuYW1lO1xuQEAgLTI2Miw2ICsyNjQsMTIgQEAgZXh0ZXJuIGludCBwbGF0Zm9ybV9kZXZpY2VfYWRkX3Jlc291cmNlcyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuIFx0XHRcdFx0XHQgdW5zaWduZWQgaW50IG51bSk7XG4gZXh0ZXJuIGludCBwbGF0Zm9ybV9kZXZpY2VfYWRkX2RhdGEoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbiBcdFx0XHRcdCAgICBjb25zdCB2b2lkICpkYXRhLCBzaXplX3Qgc2l6ZSk7XG4rdm9pZCBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbitcdFx0XHRcdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKTtcbit2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG4rXHRcdFx0XHRzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlKTtcbit2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldihzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuK1x0XHRcdFx0XHQgIGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldjIpO1xuIGV4dGVybiBpbnQgcGxhdGZvcm1fZGV2aWNlX2FkZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTtcbiBleHRlcm4gdm9pZCBwbGF0Zm9ybV9kZXZpY2VfZGVsKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpO1xuIGV4dGVybiB2b2lkIHBsYXRmb3JtX2RldmljZV9wdXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOToyNjowMi4wMTc5NjU3NDRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5NjM0MTYyNTU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgVGFyZ2V0IElkZW50aWZpY2F0aW9uOiBQbGF0Zm9ybSBEZXZpY2UgRmlybXdhcmUgTm9kZSBNYW5hZ2VtZW50KipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCBoZXJlIGludHJvZHVjaW5nIGEgZmV3IG5ldyBmdW5jdGlvbnMgaW4gYGRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jYDogYHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZWAsIGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZWAsIGFuZCBgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2YC4gVGhlc2UgYXJlIGJhc2ljYWxseSBkZXNpZ25lZCB0byBoYW5kbGUgdGhlIGFzc2lnbm1lbnQgb2YgYG9mX25vZGVgIGFuZCBgZndub2RlYCB0byBhIGBwbGF0Zm9ybV9kZXZpY2VgLCBhbmQgY3J1Y2lhbGx5LCB0aGV5IG1hbmFnZSB0aGUgYXNzb2NpYXRlZCByZWZlcmVuY2UgY291bnRpbmcgaW50ZXJuYWxseS4gVGhpcyByZWZhY3RvcmluZyBoYXMgYmVlbiBhcHBsaWVkIHRvIGEgZmV3IGRyaXZlcnMgdG8gY2xlYW4gdXAgdGhlaXIgY29kZS5cblxuTXkgaW5pdGlhbCB0aG91Z2h0PyBJcyB0aGlzIHBhdGNoIGV2ZW4gd29ydGggZnV6emluZz8gSXQgc2VlbXMgbGlrZSBtb3N0bHkgcmVmYWN0b3JpbmcsIHJpZ2h0PyBCdXQgdGhlbiBJIHNlZSB0aGF0IHRoZXNlIG5ldyBmdW5jdGlvbnMgbm93ICpoYW5kbGUgcmVmZXJlbmNlIGNvdW50aW5nKiwgd2hpY2ggaXMgYSBwb3RlbnRpYWwgbWluZWZpZWxkIGZvciBidWdzLiBMb29raW5nIGF0IHRoZSBjb2RlIGZvciBgcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVgLCBpdCBpcyBjbGVhciB0aGF0IHRoZXkgZXhwbGljaXRseSByZWxlYXNlIHRoZSBvbGQgbm9kZSBhbmQgaW5jcmVtZW50IHRoZSByZWZlcmVuY2UgY291bnQgb24gdGhlIG5ldyBub2RlLCB3aGljaCBpcyBhIGdvb2Qgc2lnbiwgYnV0IGFsc28gdGhlIHNvcnQgb2YgY2hhbmdlIHRoYXQgY291bGQgYmUgc3VidGx5IHdyb25nLiBBbmQgdGhlIGNvcnJlc3BvbmRpbmcgYHBsYXRmb3JtX2RldmljZV9yZWxlYXNlYCBub3cgaGFzIHRvIHJlbGVhc2UgYGZ3bm9kZWAgdG9vLCBtZWFuaW5nIGl0J3MgY2hhbmdlZCBzaWduaWZpY2FudGx5IGluIGhvdyBpdCBkb2VzIGl0cyBqb2IuXG5cblRoaXMgaXMgYSBjb3JlIGtlcm5lbCBjaGFuZ2UsIHJlYWxseSBkZWVwIGluIHRoZSBgZHJpdmVycy9iYXNlL3BsYXRmb3JtLmNgIGNvZGUsIGFuZCBpdCBhZmZlY3RzIGhvdyBwbGF0Zm9ybSBkZXZpY2VzLCB3aGljaCBhcmUgZXZlcnl3aGVyZSwgbWFuYWdlIHRoZWlyIGNvbm5lY3Rpb24gd2l0aCBmaXJtd2FyZSBub2Rlcy4gSXQncyBkZWZpbml0ZWx5IHJlYWNoYWJsZS4gQW5kIHNpbmNlIHdlJ3JlIHRhbGtpbmcgYWJvdXQgcmVmZXJlbmNlIGNvdW50aW5nIG9mIGBmd25vZGVgIGFuZCBgb2Zfbm9kZWAsIHdoaWNoIGFyZSBmdW5kYW1lbnRhbCBmb3IgZGV2aWNlIHRyZWUgYW5kIGZpcm13YXJlIGludGVyYWN0aW9uLCBhbnkgYnVnIGhlcmUgY291bGQgbGVhZCB0byB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVha3MuXG5cblNvIHllYWgsIHRoaXMgaXMgYSBkZWZpbml0ZSBmdXp6aW5nIHRhcmdldC5cblxuTGV0J3MgbmFpbCBkb3duIHdoaWNoIGZ1bmN0aW9ucyB0byBmb2N1cyBvbjogYHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZWAsIGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZWAsIGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXZgLCBhbmQgb2YgY291cnNlIGBwbGF0Zm9ybV9kZXZpY2VfcmVsZWFzZWAsIHBsdXMgYHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9mdWxsYC5cblxuSSdsbCBjaGVjayBmb3IgYW55IHNwZWNpZmljIGtlcm5lbCBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGJlIHJlbGV2YW50LiBUaGUgY29kZSBpcyBhbHdheXMgY29tcGlsZWQsIGJ1dCBzaW5jZSB3ZSBhcmUgd29ya2luZyB3aXRoIGBvZl9ub2RlYCBhbmQgYGZ3bm9kZWAsIGBDT05GSUdfT0ZgIGNvdWxkIGJlIHNvbWV0aGluZyB0byBrZWVwIGluIG1pbmQsIGFsdGhvdWdoIGBmd25vZGVgIHNlZW1zIHRvIGJlIGFsd2F5cyBwcmVzZW50LlxuXG5UaW1lIHRvIHN0YXJ0IGRpZ2dpbmcgaW50byB0aGUgY29kZSBhbmQgc2VlIGhvdyBgcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVgIGlzIGFjdHVhbGx5IHVzZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY4MzIsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MTksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOToyNjoxMS42NTIxMjk5NDFaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk1NTUxMjgxNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYz03MDU9dm9pZCBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG4tLVxcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTcwNy17XFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmM6NzA4OlxcdHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHBkZXYsIG9mX2Z3bm9kZV9oYW5kbGUobnApKTtcXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MDktfVxcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jPTcxMD1FWFBPUlRfU1lNQk9MX0dQTChwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUpO1xcbi0tXFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzEyLS8qKlxcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jOjcxMzogKiBwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZSAtIGFzc2lnbiBhIGZpcm13YXJlIG5vZGUgdG8gZGV2aWNlXFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzE0LSAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2UgdG8gc2V0IHRoZSBub2RlIGZvclxcbi0tXFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzIwLSAqL1xcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jOjcyMTp2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzIyLVxcdFxcdFxcdFxcdHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpXFxuLS1cXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MjctfVxcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jOjcyODpFWFBPUlRfU1lNQk9MX0dQTChwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZSk7XFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzI5LVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3hlL3hlX2kyYy5jPTkyPXN0YXRpYyBpbnQgeGVfaTJjX3JlZ2lzdGVyX2FkYXB0ZXIoc3RydWN0IHhlX2kyYyAqaTJjKVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3hlL3hlX2kyYy5jLTEyNS1cXHRwZGV2LVxcdTAwM2VkZXYucGFyZW50ID0gaTJjLVxcdTAwM2Vkcm1fZGV2O1xcbmRyaXZlcnMvZ3B1L2RybS94ZS94ZV9pMmMuYzoxMjY6XFx0cGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUocGRldiwgZndub2RlKTtcXG5kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmMtMTI3LVxcdGkyYy1cXHUwMDNlYWRhcHRlcl9ub2RlID0gZndub2RlO1xcbi0tXFxuZHJpdmVycy9wbGF0Zm9ybS9zdXJmYWNlL3N1cmZhY2VfZ3BlLmM9MjkxPXN0YXRpYyBpbnQgX19pbml0IHN1cmZhY2VfZ3BlX2luaXQodm9pZClcXG4tLVxcbmRyaXZlcnMvcGxhdGZvcm0vc3VyZmFjZS9zdXJmYWNlX2dwZS5jLTMxOS1cXG5kcml2ZXJzL3BsYXRmb3JtL3N1cmZhY2Uvc3VyZmFjZV9ncGUuYzozMjA6XFx0cGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUocGRldiwgZndub2RlKTtcXG5kcml2ZXJzL3BsYXRmb3JtL3N1cmZhY2Uvc3VyZmFjZV9ncGUuYy0zMjEtXFxuLS1cXG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oPTI2Nz12b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmluY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmgtMjY4LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKTtcXG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oOjI2OTp2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaC0yNzAtXFx0XFx0XFx0XFx0c3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjI2OjEzLjYwNzY1MTM0OFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE5NzIyNzgwOTE5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBQbGF0Zm9ybSBEZXZpY2UgSW5pdGlhbGl6YXRpb24gYW5kIFJlbGVhc2UgRnVuY3Rpb25zIGZvciBGdXp6aW5nKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYGRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jYCDigJMgdGhhdCdzIHdoZXJlIHRoZSBoZWFydCBvZiB0aGUgcGxhdGZvcm0gZGV2aWNlIG1hbmFnZW1lbnQgbGllcy4gVGhpcyBpcyBhIGNydWNpYWwgYXJlYSBpbiB0aGUga2VybmVsLCBzbyBpdOKAmXMgZGVmaW5pdGVseSB3b3J0aCBhIGNsb3NlIGxvb2sgZm9yIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMuIEknbSBzcGVjaWZpY2FsbHkgaW50ZXJlc3RlZCBpbiB0aGVzZSBmdW5jdGlvbnM6IGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVgLCBgcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVgLCBgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2YCwgYW5kIGBwbGF0Zm9ybV9kZXZpY2VfcmVsZWFzZWAuXG5cbkdvb2QgbmV3cyBpcywgdGhlc2UgZnVuY3Rpb25zIGFyZW4ndCBpbiBhbnkgaG90IHBhdGg7IHRoZXkgYXJlIHByaW1hcmlseSBpbnZvbHZlZCBkdXJpbmcgZGV2aWNlIGNyZWF0aW9uIGFuZCBkZXN0cnVjdGlvbi4gVGhhdCBzaW1wbGlmaWVzIHRoaW5ncyBhIGJpdCBmcm9tIGEgcGVyZm9ybWFuY2UgcGVyc3BlY3RpdmUuIE5vIHNwZWNpYWwgY29uZmlndXJhdGlvbnMgc2hvdWxkIGJlIG5lZWRlZCB0byBidWlsZCBhbmQgdGVzdCB0aGVzZSBmdW5jdGlvbnMsIGFzIGBkcml2ZXJzL2Jhc2UvcGxhdGZvcm0uY2AgaXMgYWx3YXlzIGNvbXBpbGVkLiBJJ2xsIGZsYWcgdGhpcyBhcyBgV29ydGhGdXp6aW5nPXRydWVgLlxuXG5Ob3csIGJlZm9yZSBJIGp1bXAgaW4sIEkgc2hvdWxkIGRvIG15IGR1ZSBkaWxpZ2VuY2UuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBkb24ndCBtaXNzIGFueXRoaW5nIG9idmlvdXMuIExldCdzIHF1aWNrbHkgZG91YmxlIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGNoZWNrIGlmIGBDT05GSUdfT0ZgIGlzIHJlcXVpcmVkLiBGdW5jdGlvbnMgaW52b2x2aW5nIGBvZl9ub2RlYCBtYXkgbmVlZCBpdC4gSXTigJlzIHBvc3NpYmxlIHRoZXkgaGF2ZSBzdHVicyBpZiBgQ09ORklHX09GYCBpcyBkaXNhYmxlZCwgb3IgbWF5YmUgdGhleSBhcmUgY29tcGlsZWQgcmVnYXJkbGVzcywgYnV0IEnigJlkIGJldHRlciBtYWtlIHN1cmUuIFRoaXMgd2lsbCBhZmZlY3QgaG93IEkgdGVzdCBhbmQgd2hhdCBuZWVkcyB0byBiZSBlbmFibGVkIGR1cmluZyBmdXp6aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4NzI3LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTg1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjI2OjMzLjMzMDQzMzk0N1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDMzNzQ5ODE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuYz0xNDU2PXN0YXRpYyBpbnQgX19pbml0IHBtYWNfaTJjX2NyZWF0ZV9wbGF0Zm9ybV9kZXZpY2VzKHZvaWQpXFxuLS1cXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuYy0xNDczLVxcdFxcdGJ1cy1cXHUwMDNlcGxhdGZvcm1fZGV2LVxcdTAwM2VkZXYucGxhdGZvcm1fZGF0YSA9IGJ1cztcXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuYzoxNDc0OlxcdFxcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShidXMtXFx1MDAzZXBsYXRmb3JtX2RldiwgYnVzLVxcdTAwM2VidXNub2RlKTtcXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuYy0xNDc1LVxcdFxcdHBsYXRmb3JtX2RldmljZV9hZGQoYnVzLVxcdTAwM2VwbGF0Zm9ybV9kZXYpO1xcbi0tXFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmM9Njk0PUVYUE9SVF9TWU1CT0xfR1BMKHBsYXRmb3JtX2RldmljZV9hZGRfZGF0YSk7XFxuLS1cXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy02OTYtLyoqXFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmM6Njk3OiAqIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZSAtIGFzc2lnbiBhbiBPRiBub2RlIHRvIGRldmljZVxcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTY5OC0gKiBAcGRldjogcGxhdGZvcm0gZGV2aWNlIHRvIGFkZCB0aGUgbm9kZSBmb3JcXG4tLVxcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTcwNC0gKi9cXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYzo3MDU6dm9pZCBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MDYtXFx0XFx0XFx0XFx0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApXFxuLS1cXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MDktfVxcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jOjcxMDpFWFBPUlRfU1lNQk9MX0dQTChwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUpO1xcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTcxMS1cXG4tLVxcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jPTcyOD1FWFBPUlRfU1lNQk9MX0dQTChwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZSk7XFxuLS1cXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MzAtLyoqXFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmM6NzMxOiAqIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldiAtIHJldXNlIE9GIG5vZGUgb2YgYW5vdGhlciBkZXZpY2VcXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MzItICogQHBkZXY6IHBsYXRmb3JtIGRldmljZSB0byBzZXQgdGhlIG5vZGUgZm9yXFxuLS1cXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MzctICovXFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmM6NzM4OnZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzM5LVxcdFxcdFxcdFxcdFxcdCAgY29uc3Qgc3RydWN0IGRldmljZSAqZGV2MilcXG4tLVxcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTc0My19XFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmM6NzQ0OkVYUE9SVF9TWU1CT0xfR1BMKHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2Rldik7XFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzQ1LVxcbi0tXFxuZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1weGEtcGNpLmM9MjM9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmFkZF9pMmNfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBiYXIpXFxuLS1cXG5kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXB4YS1wY2kuYy03OS1cXG5kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXB4YS1wY2kuYzo4MDpcXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUocGRldiwgY2hpbGQpO1xcbmRyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcHhhLXBjaS5jLTgxLVxcbi0tXFxuZHJpdmVycy9pb21tdS9mc2xfcGFtdS5jPTkzMz1zdGF0aWMgX19pbml0IGludCBmc2xfcGFtdV9pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL2lvbW11L2ZzbF9wYW11LmMtOTc2LVxcbmRyaXZlcnMvaW9tbXUvZnNsX3BhbXUuYzo5Nzc6XFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHBkZXYsIG5wKTtcXG5kcml2ZXJzL2lvbW11L2ZzbF9wYW11LmMtOTc4LVxcbi0tXFxuZHJpdmVycy9tZmQvdHBzNjU4NnguYz0zODI9c3RhdGljIGludCB0cHM2NTg2eF9hZGRfc3ViZGV2cyhzdHJ1Y3QgdHBzNjU4NnggKnRwczY1ODZ4LFxcbi0tXFxuZHJpdmVycy9tZmQvdHBzNjU4NnguYy0zOTktXFx0XFx0cGRldi1cXHUwMDNlZGV2LnBsYXRmb3JtX2RhdGEgPSBzdWJkZXYtXFx1MDAzZXBsYXRmb3JtX2RhdGE7XFxuZHJpdmVycy9tZmQvdHBzNjU4NnguYzo0MDA6XFx0XFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHBkZXYsIHN1YmRldi1cXHUwMDNlb2Zfbm9kZSk7XFxuZHJpdmVycy9tZmQvdHBzNjU4NnguYy00MDEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYz00NDk9c3RhdGljIGludCBiY21nZW5ldF9taWlfcmVnaXN0ZXIoc3RydWN0IGJjbWdlbmV0X3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYy00OTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmM6NDk3OlxcdFxcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwcGRldiwgbnApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbW1paS5jLTQ5OC1cXHR9IGVsc2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdjY0M3h4X2V0aC5jPTI3MjE9c3RhdGljIGludCBtdjY0M3h4X2V0aF9zaGFyZWRfb2ZfYWRkX3BvcnQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXY2NDN4eF9ldGguYy0yNzgyLVxcdHBwZGV2LVxcdTAwM2VkZXYuY29oZXJlbnRfZG1hX21hc2sgPSBETUFfQklUX01BU0soMzIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXY2NDN4eF9ldGguYzoyNzgzOlxcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwcGRldiwgcG5wKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212NjQzeHhfZXRoLmMtMjc4NC1cXG4tLVxcbmRyaXZlcnMvb2YvcGxhdGZvcm0uYz05Nz1zdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvZl9kZXZpY2VfYWxsb2Moc3RydWN0IGRldmljZV9ub2RlICpucCxcXG4tLVxcbmRyaXZlcnMvb2YvcGxhdGZvcm0uYy0xMjgtXFx0Lyogc2V0dXAgZ2VuZXJpYyBkZXZpY2UgaW5mbyAqL1xcbmRyaXZlcnMvb2YvcGxhdGZvcm0uYzoxMjk6XFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKGRldiwgbnApO1xcbmRyaXZlcnMvb2YvcGxhdGZvcm0uYy0xMzAtXFx0ZGV2LVxcdTAwM2VkZXYucGFyZW50ID0gcGFyZW50ID8gOiBcXHUwMDI2cGxhdGZvcm1fYnVzO1xcbi0tXFxuZHJpdmVycy9wbWRvbWFpbi9pbXgvZ3BjLmM9NDAyPXN0YXRpYyBpbnQgaW14X2dwY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9wbWRvbWFpbi9pbXgvZ3BjLmMtNDg5LVxcdFxcdFxcdHBkX3BkZXYtXFx1MDAzZWRldi5wYXJlbnQgPSBcXHUwMDI2cGRldi1cXHUwMDNlZGV2O1xcbmRyaXZlcnMvcG1kb21haW4vaW14L2dwYy5jOjQ5MDpcXHRcXHRcXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUocGRfcGRldiwgbnApO1xcbmRyaXZlcnMvcG1kb21haW4vaW14L2dwYy5jLTQ5MS1cXG4tLVxcbmRyaXZlcnMvcmVzZXQvcmVzZXQtcnpnMmwtdXNicGh5LWN0cmwuYz0xODk9c3RhdGljIGludCByemcybF91c2JwaHlfY3RybF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9yZXNldC9yZXNldC1yemcybC11c2JwaHktY3RybC5jLTI1MS1cXG5kcml2ZXJzL3Jlc2V0L3Jlc2V0LXJ6ZzJsLXVzYnBoeS1jdHJsLmM6MjUyOlxcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2Rldih2ZGV2LCBkZXYpO1xcbmRyaXZlcnMvcmVzZXQvcmVzZXQtcnpnMmwtdXNicGh5LWN0cmwuYy0yNTMtXFx0ZXJyb3IgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKHZkZXYpO1xcbi0tXFxuZHJpdmVycy9zbGltYnVzL3Fjb20tbmdkLWN0cmwuYz0xNTA4PXN0YXRpYyBpbnQgb2ZfcWNvbV9zbGltX25nZF9yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsXFxuLS1cXG5kcml2ZXJzL3NsaW1idXMvcWNvbS1uZ2QtY3RybC5jLTE1NDEtXFx0XFx0fVxcbmRyaXZlcnMvc2xpbWJ1cy9xY29tLW5nZC1jdHJsLmM6MTU0MjpcXHRcXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUobmdkLVxcdTAwM2VwZGV2LCBub2RlKTtcXG5kcml2ZXJzL3NsaW1idXMvcWNvbS1uZ2QtY3RybC5jLTE1NDMtXFx0XFx0Y3RybC1cXHUwMDNlbmdkID0gbmdkO1xcbi0tXFxuZHJpdmVycy91c2IvY2hpcGlkZWEvY29yZS5jPTg2MD1zdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpjaV9oZHJjX2FkZF9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy91c2IvY2hpcGlkZWEvY29yZS5jLTg4MS1cXHRwZGV2LVxcdTAwM2VkZXYucGFyZW50ID0gZGV2O1xcbmRyaXZlcnMvdXNiL2NoaXBpZGVhL2NvcmUuYzo4ODI6XFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHBkZXYsIGRldik7XFxuZHJpdmVycy91c2IvY2hpcGlkZWEvY29yZS5jLTg4My1cXG4tLVxcbmRyaXZlcnMvdXNiL211c2Ivano0NzQwLmM9MjM1PXN0YXRpYyBpbnQgano0NzQwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL3VzYi9tdXNiL2p6NDc0MC5jLTI3NS1cXHRtdXNiLVxcdTAwM2VkZXYuY29oZXJlbnRfZG1hX21hc2tcXHQ9IERNQV9CSVRfTUFTSygzMik7XFxuZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuYzoyNzY6XFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KG11c2IsIGRldik7XFxuZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuYy0yNzctXFxuLS1cXG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oPTI2NT1leHRlcm4gaW50IHBsYXRmb3JtX2RldmljZV9hZGRfZGF0YShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmluY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmgtMjY2LVxcdFxcdFxcdFxcdCAgICBjb25zdCB2b2lkICpkYXRhLCBzaXplX3Qgc2l6ZSk7XFxuaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaDoyNjc6dm9pZCBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oLTI2OC1cXHRcXHRcXHRcXHQgc3RydWN0IGRldmljZV9ub2RlICpucCk7XFxuaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaD0yNjk9dm9pZCBwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmluY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmgtMjcwLVxcdFxcdFxcdFxcdHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpO1xcbmluY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmg6MjcxOnZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaC0yNzItXFx0XFx0XFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYyKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MjY6MzUuMzY0MTg3ODk2WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjgwNTU0NTQ5NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIFRoZXNlIFBsYXRmb3JtIERldmljZSBDaGFuZ2VzKipcblxuT2theSwgc28gSSd2ZSByZXZpZXdlZCB0aGVzZSBjaGFuZ2VzLCBhbmQgaXQgbG9va3MgbGlrZSB3ZSBoYXZlIGEgY29tcGxldGUgYW5kIGZ1bmN0aW9uYWwgaW1wbGVtZW50YXRpb24gaGVyZSwgd2l0aCBpbXBhY3RzIG9uIGhvdyBwbGF0Zm9ybSBkZXZpY2VzIGFyZSBjcmVhdGVkIGFuZCBkZXN0cm95ZWQuIE15IGV2YWx1YXRpb24gaXMgdGhhdCB0aGlzICp3YXJyYW50cyogYSBcIldvcnRoRnV6emluZz10cnVlXCIgZmxhZy4gSSdtIGdvaW5nIHRvIGZvY3VzIHRoZSBmdXp6aW5nIGVmZm9ydHMgc3BlY2lmaWNhbGx5IG9uIHRoZXNlIGtleSBmdW5jdGlvbnM6IGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVgLCBgcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVgLCBgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2YCwgYW5kIGBwbGF0Zm9ybV9kZXZpY2VfcmVsZWFzZWAuXG5cblRoZSBiZWF1dHkgb2YgdGhpcyBpcyB0aGF0IG5vIHNwZWNpZmljIGNvbmZpZyB0d2Vha2luZyBpcyBuZWVkZWQuIFRoZSBgZHJpdmVycy9iYXNlL3BsYXRmb3JtLmNgIGZpbGUgaXMgY29tcGlsZWQgdW5jb25kaXRpb25hbGx5LCB3aGljaCBzaW1wbGlmaWVzIHRoZSBzZXR1cC4gU28sIEnigJlsbCBsZWF2ZSB0aGUgYEVuYWJsZUNvbmZpZ3NgIGFycmF5IGFzIGVtcHR5LlxuXG5NeSByZWFzb25pbmc/IFdlbGwsIHRoZXNlIHBhdGNoZXMgaW50cm9kdWNlICpuZXcqIGhlbHBlciBmdW5jdGlvbnMgZm9yIGVsZWdhbnRseSBhc3NpZ25pbmcgYm90aCBgb2Zfbm9kZWAgYW5kIGBmd25vZGVgIHRvIG91ciBwbGF0Zm9ybSBkZXZpY2VzLiBDcml0aWNhbGx5LCB0aGVzZSBmdW5jdGlvbnMgaGFuZGxlIHJlZmVyZW5jZSBjb3VudGluZyBpbnRlcm5hbGx5IOKAkyBhIGRldGFpbCB0aGF0J3MgZXNzZW50aWFsIGZvciBwcmV2ZW50aW5nIG1lbW9yeSBsZWFrcy4gV2UgYWxzbyBoYXZlIGFuIHVwZGF0ZSB0byBgcGxhdGZvcm1fZGV2aWNlX3JlbGVhc2VgIHRoYXQgYXBwZWFycyB0byBjb3JyZWN0bHkgcmVsZWFzZSB0aGUgYGZ3bm9kZWAgcmVmZXJlbmNlLiBUaGVzZSBhcmUgZnVuZGFtZW50YWwgY2hhbmdlcyB0byB0aGUgZGV2aWNlIG1vZGVsLiBBbnkgYnVnIGhlcmXigJRlc3BlY2lhbGx5IGluIHRoZSByZWZlcmVuY2UgY291bnRpbmfigJRjb3VsZCBsZWFkIHRvIG5hc3R5IG1lbW9yeSBsZWFrcyBvciwgZXZlbiB3b3JzZSwgdXNlLWFmdGVyLWZyZWUgY29uZGl0aW9ucy4gV2UgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUgdGhhdCB0aGlzIGNvZGUgaXMgcm9jayBzb2xpZC4gVGhlcmVmb3JlLCB0aG9yb3VnaCBmdXp6aW5nIGlzIGRlZmluaXRlbHkgdGhlIHJpZ2h0IGFwcHJvYWNoIGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNjUzLCJPdXRwdXRUb2tlbnMiOjE0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOToyNjo0Mi4xNjk3MzU4NjNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2MDUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlXCIsXG4gICAgXCJwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZVwiLFxuICAgIFwicGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2XCIsXG4gICAgXCJwbGF0Zm9ybV9kZXZpY2VfcmVsZWFzZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgbmV3IGhlbHBlciBmdW5jdGlvbnMgZm9yIGFzc2lnbmluZyBvZl9ub2RlIGFuZCBmd25vZGUgdG8gcGxhdGZvcm0gZGV2aWNlcywgd2hpY2ggaW50ZXJuYWxseSBtYW5hZ2UgcmVmZXJlbmNlIGNvdW50aW5nLiBJdCBhbHNvIHVwZGF0ZXMgcGxhdGZvcm1fZGV2aWNlX3JlbGVhc2UgdG8gcHJvcGVybHkgcmVsZWFzZSB0aGUgZndub2RlIHJlZmVyZW5jZS4gVGhlc2UgYXJlIGNvcmUgZGV2aWNlIG1vZGVsIGNoYW5nZXMgdGhhdCBjb3VsZCBsZWFkIHRvIG1lbW9yeSBsZWFrcyBvciB1c2UtYWZ0ZXItZnJlZSBpZiByZWZlcmVuY2UgY291bnRpbmcgaXMgaW5jb3JyZWN0LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZVwiLFxuICAgIFwicGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVcIixcbiAgICBcInBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldlwiLFxuICAgIFwicGxhdGZvcm1fZGV2aWNlX3JlbGVhc2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBoZWxwZXIgZnVuY3Rpb25zIGZvciBhc3NpZ25pbmcgb2Zfbm9kZSBhbmQgZndub2RlIHRvIHBsYXRmb3JtIGRldmljZXMsIHdoaWNoIGludGVybmFsbHkgbWFuYWdlIHJlZmVyZW5jZSBjb3VudGluZy4gSXQgYWxzbyB1cGRhdGVzIHBsYXRmb3JtX2RldmljZV9yZWxlYXNlIHRvIHByb3Blcmx5IHJlbGVhc2UgdGhlIGZ3bm9kZSByZWZlcmVuY2UuIFRoZXNlIGFyZSBjb3JlIGRldmljZSBtb2RlbCBjaGFuZ2VzIHRoYXQgY291bGQgbGVhZCB0byBtZW1vcnkgbGVha3Mgb3IgdXNlLWFmdGVyLWZyZWUgaWYgcmVmZXJlbmNlIGNvdW50aW5nIGlzIGluY29ycmVjdC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowrwx57[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-29 09:19:26 +0000 UTC FinishedAt: 2026-06-29 09:26:44 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "dc59e4fea9d83f03bad6bddf3fa2e52491777482", "config_name": "upstream-apparmor-kasan.config", "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "dc59e4fea9d83f03bad6bddf3fa2e52491777482", "config_name": "upstream-apparmor-kasan.config", "series_id": "accbc655-91ac-40e2-8223-001a4d6ea5dd" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "platform_device_set_of_node", "platform_device_set_fwnode", "platform_device_set_of_node_from_dev", "platform_device_release" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjI2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlJiMzNDssCiAgICAmIzM0O3BsYXRmb3JtX2RldmljZV9zZXRfZndub2RlJiMzNDssCiAgICAmIzM0O3BsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldiYjMzQ7LAogICAgJiMzNDtwbGF0Zm9ybV9kZXZpY2VfcmVsZWFzZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBoZWxwZXIgZnVuY3Rpb25zIGZvciBhc3NpZ25pbmcgb2Zfbm9kZSBhbmQgZndub2RlIHRvIHBsYXRmb3JtIGRldmljZXMsIHdoaWNoIGludGVybmFsbHkgbWFuYWdlIHJlZmVyZW5jZSBjb3VudGluZy4gSXQgYWxzbyB1cGRhdGVzIHBsYXRmb3JtX2RldmljZV9yZWxlYXNlIHRvIHByb3Blcmx5IHJlbGVhc2UgdGhlIGZ3bm9kZSByZWZlcmVuY2UuIFRoZXNlIGFyZSBjb3JlIGRldmljZSBtb2RlbCBjaGFuZ2VzIHRoYXQgY291bGQgbGVhZCB0byBtZW1vcnkgbGVha3Mgb3IgdXNlLWFmdGVyLWZyZWUgaWYgcmVmZXJlbmNlIGNvdW50aW5nIGlzIGluY29ycmVjdC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOToyNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDBiZDVkNDA4MDEwOWM2NTFhOWU0NWU1ZTY2NjNhMTMyM2RjZDVhMDhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1biAyOSAwOToyNjowMCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJtYWMvbG93X2kyYy5jXG5pbmRleCBkYTcyYTMwYWI4NjU3ZS4uYTE3NWEzMmEyMjJiYWIgMTAwNjQ0XG4tLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm1hYy9sb3dfaTJjLmNcbkBAIC0xNDcxLDcgJiM0MzsxNDcxLDcgQEAgc3RhdGljIGludCBfX2luaXQgcG1hY19pMmNfY3JlYXRlX3BsYXRmb3JtX2RldmljZXModm9pZClcbiBcdFx0aWYgKGJ1cy1cdTAwM2VwbGF0Zm9ybV9kZXYgPT0gTlVMTClcbiBcdFx0XHRyZXR1cm4gLUVOT01FTTtcbiBcdFx0YnVzLVx1MDAzZXBsYXRmb3JtX2Rldi1cdTAwM2VkZXYucGxhdGZvcm1fZGF0YSA9IGJ1cztcbi1cdFx0YnVzLVx1MDAzZXBsYXRmb3JtX2Rldi1cdTAwM2VkZXYub2Zfbm9kZSA9IGJ1cy1cdTAwM2VidXNub2RlO1xuJiM0MztcdFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKGJ1cy1cdTAwM2VwbGF0Zm9ybV9kZXYsIGJ1cy1cdTAwM2VidXNub2RlKTtcbiBcdFx0cGxhdGZvcm1fZGV2aWNlX2FkZChidXMtXHUwMDNlcGxhdGZvcm1fZGV2KTtcbiBcdH1cbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYyBiL2RyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jXG5pbmRleCBmYjkxMjBiMGJjZmUwZS4uYmI1ZjViZGRkMDQ3ZDQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9iYXNlL3BsYXRmb3JtLmNcbkBAIC01OTksNyAmIzQzOzU5OSw3IEBAIHN0YXRpYyB2b2lkIHBsYXRmb3JtX2RldmljZV9yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldilcbiBcdHN0cnVjdCBwbGF0Zm9ybV9vYmplY3QgKnBhID0gY29udGFpbmVyX29mKGRldiwgc3RydWN0IHBsYXRmb3JtX29iamVjdCxcbiBcdFx0XHRcdFx0XHQgIHBkZXYuZGV2KTtcbiBcbi1cdG9mX25vZGVfcHV0KHBhLVx1MDAzZXBkZXYuZGV2Lm9mX25vZGUpO1xuJiM0MztcdGZ3bm9kZV9oYW5kbGVfcHV0KHBhLVx1MDAzZXBkZXYuZGV2LmZ3bm9kZSk7XG4gXHRrZnJlZShwYS1cdTAwM2VwZGV2LmRldi5wbGF0Zm9ybV9kYXRhKTtcbiBcdGtmcmVlKHBhLVx1MDAzZXBkZXYubWZkX2NlbGwpO1xuIFx0a2ZyZWUocGEtXHUwMDNlcGRldi5yZXNvdXJjZSk7XG5AQCAtNjkzLDYgJiM0Mzs2OTMsNTYgQEAgaW50IHBsYXRmb3JtX2RldmljZV9hZGRfZGF0YShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBjb25zdCB2b2lkICpkYXRhLFxuIH1cbiBFWFBPUlRfU1lNQk9MX0dQTChwbGF0Zm9ybV9kZXZpY2VfYWRkX2RhdGEpO1xuIFxuJiM0MzsvKipcbiYjNDM7ICogcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlIC0gYXNzaWduIGFuIE9GIG5vZGUgdG8gZGV2aWNlXG4mIzQzOyAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2UgdG8gYWRkIHRoZSBub2RlIGZvclxuJiM0MzsgKiBAbnA6IG5ldyBkZXZpY2Ugbm9kZVxuJiM0MzsgKlxuJiM0MzsgKiBBc3NpZ24gYW4gT0Ygbm9kZSB0byB0aGlzIHBsYXRmb3JtIGRldmljZS4gSW50ZXJuYWxseSBrZWVwIHRyYWNrIG9mIHRoZVxuJiM0MzsgKiByZWZlcmVuY2UgY291bnQuIERldmljZXMgY3JlYXRlZCB3aXRoIHBsYXRmb3JtX2RldmljZV9hbGxvYygpIG11c3QgdXNlIHRoaXNcbiYjNDM7ICogZnVuY3Rpb24gaW5zdGVhZCBvZiBhc3NpZ25pbmcgdGhlIG5vZGUgbWFudWFsbHkuXG4mIzQzOyAqL1xuJiM0Mzt2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuJiM0MztcdFx0XHRcdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKVxuJiM0Mzt7XG4mIzQzO1x0cGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUocGRldiwgb2ZfZndub2RlX2hhbmRsZShucCkpO1xuJiM0Mzt9XG4mIzQzO0VYUE9SVF9TWU1CT0xfR1BMKHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZSk7XG4mIzQzO1xuJiM0MzsvKipcbiYjNDM7ICogcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUgLSBhc3NpZ24gYSBmaXJtd2FyZSBub2RlIHRvIGRldmljZVxuJiM0MzsgKiBAcGRldjogcGxhdGZvcm0gZGV2aWNlIHRvIHNldCB0aGUgbm9kZSBmb3JcbiYjNDM7ICogQGZ3bm9kZTogbmV3IGZpcm13YXJlIG5vZGVcbiYjNDM7ICpcbiYjNDM7ICogQXNzaWduIGEgZmlybXdhcmUgbm9kZSB0byB0aGlzIHBsYXRmb3JtIGRldmljZS4gSW50ZXJuYWxseSBrZWVwIHRyYWNrIG9mIHRoZVxuJiM0MzsgKiByZWZlcmVuY2UgY291bnQuIERldmljZXMgY3JlYXRlZCB3aXRoIHBsYXRmb3JtX2RldmljZV9hbGxvYygpIG11c3QgdXNlIHRoaXNcbiYjNDM7ICogZnVuY3Rpb24gaW5zdGVhZCBvZiBhc3NpZ25pbmcgdGhlIG5vZGUgbWFudWFsbHkuXG4mIzQzOyAqL1xuJiM0Mzt2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG4mIzQzO1x0XHRcdFx0c3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSlcbiYjNDM7e1xuJiM0MztcdGZ3bm9kZV9oYW5kbGVfcHV0KHBkZXYtXHUwMDNlZGV2LmZ3bm9kZSk7XG4mIzQzO1x0cGRldi1cdTAwM2VkZXYuZndub2RlID0gZndub2RlX2hhbmRsZV9nZXQoZndub2RlKTtcbiYjNDM7XHRwZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gdG9fb2Zfbm9kZShmd25vZGUpO1xuJiM0Mzt9XG4mIzQzO0VYUE9SVF9TWU1CT0xfR1BMKHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKTtcbiYjNDM7XG4mIzQzOy8qKlxuJiM0MzsgKiBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYgLSByZXVzZSBPRiBub2RlIG9mIGFub3RoZXIgZGV2aWNlXG4mIzQzOyAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2UgdG8gc2V0IHRoZSBub2RlIGZvclxuJiM0MzsgKiBAZGV2MjogZGV2aWNlIHdob3NlIE9GIG5vZGUgdG8gcmV1c2VcbiYjNDM7ICpcbiYjNDM7ICogUmV1c2VzIHRoZSBPRiBub2RlIG9mIGFub3RoZXIgZGV2aWNlIGluIHRoaXMgcGxhdGZvcm0gZGV2aWNlIHdoaWxlXG4mIzQzOyAqIGludGVybmFsbHkga2VlcGluZyB0cmFjayBvZiByZWZlcmVuY2UgY291bnRpbmcuXG4mIzQzOyAqL1xuJiM0Mzt2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldihzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuJiM0MztcdFx0XHRcdFx0ICBjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYyKVxuJiM0Mzt7XG4mIzQzO1x0ZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBkZXYyKTtcbiYjNDM7XHRwZGV2LVx1MDAzZWRldi5md25vZGUgPSBvZl9md25vZGVfaGFuZGxlKHBkZXYtXHUwMDNlZGV2Lm9mX25vZGUpO1xuJiM0Mzt9XG4mIzQzO0VYUE9SVF9TWU1CT0xfR1BMKHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2Rldik7XG4mIzQzO1xuIC8qKlxuICAqIHBsYXRmb3JtX2RldmljZV9hZGQgLSBhZGQgYSBwbGF0Zm9ybSBkZXZpY2UgdG8gZGV2aWNlIGhpZXJhcmNoeVxuICAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2Ugd2UmIzM5O3JlIGFkZGluZ1xuQEAgLTg2OCw4ICYjNDM7OTE4LDggQEAgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyX2Z1bGwoY29uc3Qgc3RydWN0IHBsYXRmb3JtX2RldmlcbiBcdFx0cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7XG4gXG4gXHRwZGV2LVx1MDAzZWRldi5wYXJlbnQgPSBwZGV2aW5mby1cdTAwM2VwYXJlbnQ7XG4tXHRwZGV2LVx1MDAzZWRldi5md25vZGUgPSBwZGV2aW5mby1cdTAwM2Vmd25vZGU7XG4tXHRwZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQodG9fb2Zfbm9kZShwZGV2LVx1MDAzZWRldi5md25vZGUpKTtcbiYjNDM7XHRwZGV2LVx1MDAzZWRldi5md25vZGUgPSBmd25vZGVfaGFuZGxlX2dldChwZGV2aW5mby1cdTAwM2Vmd25vZGUpO1xuJiM0MztcdHBkZXYtXHUwMDNlZGV2Lm9mX25vZGUgPSB0b19vZl9ub2RlKHBkZXYtXHUwMDNlZGV2LmZ3bm9kZSk7XG4gXHRkZXZfYXNzaWduX29mX25vZGVfcmV1c2VkKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBwZGV2aW5mby1cdTAwM2VvZl9ub2RlX3JldXNlZCk7XG4gXG4gXHRpZiAocGRldmluZm8tXHUwMDNlZG1hX21hc2spIHtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmMgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmNcbmluZGV4IDcwNjc4Mzg2M2QwN2Q2Li5hZjRlYmQ5M2FkOGU2OCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9pMmMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2kyYy5jXG5AQCAtMTIzLDcgJiM0MzsxMjMsNyBAQCBzdGF0aWMgaW50IHhlX2kyY19yZWdpc3Rlcl9hZGFwdGVyKHN0cnVjdCB4ZV9pMmMgKmkyYylcbiBcdH1cbiBcbiBcdHBkZXYtXHUwMDNlZGV2LnBhcmVudCA9IGkyYy1cdTAwM2Vkcm1fZGV2O1xuLVx0cGRldi1cdTAwM2VkZXYuZndub2RlID0gZndub2RlO1xuJiM0MztcdHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHBkZXYsIGZ3bm9kZSk7XG4gXHRpMmMtXHUwMDNlYWRhcHRlcl9ub2RlID0gZndub2RlO1xuIFx0aTJjLVx1MDAzZXBkZXYgPSBwZGV2O1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcHhhLXBjaS5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1weGEtcGNpLmNcbmluZGV4IGRiZDU0MjMwMGY4MDA0Li45MmEwNjQ3ZjA4YzY5ZiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcHhhLXBjaS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXB4YS1wY2kuY1xuQEAgLTc2LDcgJiM0Mzs3Niw4IEBAIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICphZGRfaTJjX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgYmFyKVxuIFx0XHRnb3RvIG91dDtcbiBcdH1cbiBcdHBkZXYtXHUwMDNlZGV2LnBhcmVudCA9IFx1MDAyNmRldi1cdTAwM2VkZXY7XG4tXHRwZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gY2hpbGQ7XG4mIzQzO1xuJiM0MztcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwZGV2LCBjaGlsZCk7XG4gXG4gXHRyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkX3Jlc291cmNlcyhwZGV2LCByZXMsIEFSUkFZX1NJWkUocmVzKSk7XG4gXHRpZiAocmV0KVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvZnNsX3BhbXUuYyBiL2RyaXZlcnMvaW9tbXUvZnNsX3BhbXUuY1xuaW5kZXggMjVhYTQ3N2E5NWE5NWMuLjAxMjgzOWZhMGQ4YTI3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9pb21tdS9mc2xfcGFtdS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2lvbW11L2ZzbF9wYW11LmNcbkBAIC05NzMsNyAmIzQzOzk3Myw4IEBAIHN0YXRpYyBfX2luaXQgaW50IGZzbF9wYW11X2luaXQodm9pZClcbiBcdFx0cmV0ID0gLUVOT01FTTtcbiBcdFx0Z290byBlcnJvcl9kZXZpY2VfYWxsb2M7XG4gXHR9XG4tXHRwZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQobnApO1xuJiM0MztcbiYjNDM7XHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUocGRldiwgbnApO1xuIFxuIFx0cmV0ID0gcGFtdV9kb21haW5faW5pdCgpO1xuIFx0aWYgKHJldClcbkBAIC05ODUsMTIgJiM0Mzs5ODYsMTAgQEAgc3RhdGljIF9faW5pdCBpbnQgZnNsX3BhbXVfaW5pdCh2b2lkKVxuIFx0XHRnb3RvIGVycm9yX2RldmljZV9hZGQ7XG4gXHR9XG4gXG4mIzQzO1x0b2Zfbm9kZV9wdXQobnApO1xuIFx0cmV0dXJuIDA7XG4gXG4gZXJyb3JfZGV2aWNlX2FkZDpcbi1cdG9mX25vZGVfcHV0KHBkZXYtXHUwMDNlZGV2Lm9mX25vZGUpO1xuLVx0cGRldi1cdTAwM2VkZXYub2Zfbm9kZSA9IE5VTEw7XG4tXG4gXHRwbGF0Zm9ybV9kZXZpY2VfcHV0KHBkZXYpO1xuIFxuIGVycm9yX2RldmljZV9hbGxvYzpcbmRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC90cHM2NTg2eC5jIGIvZHJpdmVycy9tZmQvdHBzNjU4NnguY1xuaW5kZXggZjVmODA1NDQ2NjAzMzEuLjNjZmQyZjAyYjYyZjNjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9tZmQvdHBzNjU4NnguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9tZmQvdHBzNjU4NnguY1xuQEAgLTM5Nyw3ICYjNDM7Mzk3LDcgQEAgc3RhdGljIGludCB0cHM2NTg2eF9hZGRfc3ViZGV2cyhzdHJ1Y3QgdHBzNjU4NnggKnRwczY1ODZ4LFxuIFxuIFx0XHRwZGV2LVx1MDAzZWRldi5wYXJlbnQgPSB0cHM2NTg2eC1cdTAwM2VkZXY7XG4gXHRcdHBkZXYtXHUwMDNlZGV2LnBsYXRmb3JtX2RhdGEgPSBzdWJkZXYtXHUwMDNlcGxhdGZvcm1fZGF0YTtcbi1cdFx0cGRldi1cdTAwM2VkZXYub2Zfbm9kZSA9IG9mX25vZGVfZ2V0KHN1YmRldi1cdTAwM2VvZl9ub2RlKTtcbiYjNDM7XHRcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwZGV2LCBzdWJkZXYtXHUwMDNlb2Zfbm9kZSk7XG4gXG4gXHRcdHJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQocGRldik7XG4gXHRcdGlmIChyZXQpIHtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbW1paS5jXG5pbmRleCBhNGUwZDVhNjgyNjg3NS4uNDUxYjIzYTAzOWNlYmIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmNcbkBAIC00OTAsMTAgJiM0Mzs0OTAsMTQgQEAgc3RhdGljIGludCBiY21nZW5ldF9taWlfcmVnaXN0ZXIoc3RydWN0IGJjbWdlbmV0X3ByaXYgKnByaXYpXG4gXHQvKiBSZXRhaW4gdGhpcyBwbGF0Zm9ybV9kZXZpY2UgcG9pbnRlciBmb3IgbGF0ZXIgY2xlYW51cCAqL1xuIFx0cHJpdi1cdTAwM2VtaWlfcGRldiA9IHBwZGV2O1xuIFx0cHBkZXYtXHUwMDNlZGV2LnBhcmVudCA9IFx1MDAyNnBkZXYtXHUwMDNlZGV2O1xuLVx0aWYgKGRuKVxuLVx0XHRwcGRldi1cdTAwM2VkZXYub2Zfbm9kZSA9IGJjbWdlbmV0X21paV9vZl9maW5kX21kaW8ocHJpdik7XG4tXHRlbHNlXG4mIzQzO1xuJiM0MztcdGlmIChkbikge1xuJiM0MztcdFx0c3RydWN0IGRldmljZV9ub2RlICpucCBfX2ZyZWUoZGV2aWNlX25vZGUpID0gYmNtZ2VuZXRfbWlpX29mX2ZpbmRfbWRpbyhwcml2KTtcbiYjNDM7XG4mIzQzO1x0XHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUocHBkZXYsIG5wKTtcbiYjNDM7XHR9IGVsc2Uge1xuIFx0XHRwcGQucGh5X21hc2sgPSB+MDtcbiYjNDM7XHR9XG4gXG4gXHRyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkX3Jlc291cmNlcyhwcGRldiwgXHUwMDI2cmVzLCAxKTtcbiBcdGlmIChyZXQpXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdjY0M3h4X2V0aC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdjY0M3h4X2V0aC5jXG5pbmRleCAxODgxNTgzYmU1Y2UyZS4uOWNhYTFlNDdjMTc0YzkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212NjQzeHhfZXRoLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXY2NDN4eF9ldGguY1xuQEAgLTI3ODAsNyAmIzQzOzI3ODAsNyBAQCBzdGF0aWMgaW50IG12NjQzeHhfZXRoX3NoYXJlZF9vZl9hZGRfcG9ydChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuIFx0XHRnb3RvIHB1dF9lcnI7XG4gXHR9XG4gXHRwcGRldi1cdTAwM2VkZXYuY29oZXJlbnRfZG1hX21hc2sgPSBETUFfQklUX01BU0soMzIpO1xuLVx0cHBkZXYtXHUwMDNlZGV2Lm9mX25vZGUgPSBvZl9ub2RlX2dldChwbnApO1xuJiM0MztcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwcGRldiwgcG5wKTtcbiBcbiBcdHJldCA9IHBsYXRmb3JtX2RldmljZV9hZGRfcmVzb3VyY2VzKHBwZGV2LCBcdTAwMjZyZXMsIDEpO1xuIFx0aWYgKHJldClcbmRpZmYgLS1naXQgYS9kcml2ZXJzL29mL3BsYXRmb3JtLmMgYi9kcml2ZXJzL29mL3BsYXRmb3JtLmNcbmluZGV4IDUzYmNhOGM2Zjc4MTBjLi44YjFlNzY0MDc3ODI1MyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvb2YvcGxhdGZvcm0uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9vZi9wbGF0Zm9ybS5jXG5AQCAtMTI2LDcgJiM0MzsxMjYsNyBAQCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvZl9kZXZpY2VfYWxsb2Moc3RydWN0IGRldmljZV9ub2RlICpucCxcbiBcdH1cbiBcbiBcdC8qIHNldHVwIGdlbmVyaWMgZGV2aWNlIGluZm8gKi9cbi1cdGRldmljZV9zZXRfbm9kZShcdTAwMjZkZXYtXHUwMDNlZGV2LCBvZl9md25vZGVfaGFuZGxlKG9mX25vZGVfZ2V0KG5wKSkpO1xuJiM0MztcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShkZXYsIG5wKTtcbiBcdGRldi1cdTAwM2VkZXYucGFyZW50ID0gcGFyZW50ID8gOiBcdTAwMjZwbGF0Zm9ybV9idXM7XG4gXG4gXHRpZiAoYnVzX2lkKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGxhdGZvcm0vc3VyZmFjZS9zdXJmYWNlX2dwZS5jIGIvZHJpdmVycy9wbGF0Zm9ybS9zdXJmYWNlL3N1cmZhY2VfZ3BlLmNcbmluZGV4IGIzNTk0MTM5MDNiMTNjLi40MDg5NmE4NTQ0YjBhNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvcGxhdGZvcm0vc3VyZmFjZS9zdXJmYWNlX2dwZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3BsYXRmb3JtL3N1cmZhY2Uvc3VyZmFjZV9ncGUuY1xuQEAgLTMxNyw3ICYjNDM7MzE3LDcgQEAgc3RhdGljIGludCBfX2luaXQgc3VyZmFjZV9ncGVfaW5pdCh2b2lkKVxuIFx0XHRnb3RvIGVycl9hbGxvYztcbiBcdH1cbiBcbi1cdHBkZXYtXHUwMDNlZGV2LmZ3bm9kZSA9IGZ3bm9kZTtcbiYjNDM7XHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZShwZGV2LCBmd25vZGUpO1xuIFxuIFx0c3RhdHVzID0gcGxhdGZvcm1fZGV2aWNlX2FkZChwZGV2KTtcbiBcdGlmIChzdGF0dXMpXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9wbWRvbWFpbi9pbXgvZ3BjLmMgYi9kcml2ZXJzL3BtZG9tYWluL2lteC9ncGMuY1xuaW5kZXggNDJlNTBjOWI0ZmI5ZmYuLmFiY2E1ZjQ0OWEyMjZmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9wbWRvbWFpbi9pbXgvZ3BjLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvcG1kb21haW4vaW14L2dwYy5jXG5AQCAtNDg3LDggJiM0Mzs0ODcsNyBAQCBzdGF0aWMgaW50IGlteF9ncGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbiBcdFx0XHRkb21haW4tXHUwMDNlaXBnX3JhdGVfbWh6ID0gaXBnX3JhdGVfbWh6O1xuIFxuIFx0XHRcdHBkX3BkZXYtXHUwMDNlZGV2LnBhcmVudCA9IFx1MDAyNnBkZXYtXHUwMDNlZGV2O1xuLVx0XHRcdHBkX3BkZXYtXHUwMDNlZGV2Lm9mX25vZGUgPSBvZl9ub2RlX2dldChucCk7XG4tXHRcdFx0cGRfcGRldi1cdTAwM2VkZXYuZndub2RlID0gb2ZfZndub2RlX2hhbmRsZShucCk7XG4mIzQzO1x0XHRcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwZF9wZGV2LCBucCk7XG4gXG4gXHRcdFx0cmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChwZF9wZGV2KTtcbiBcdFx0XHRpZiAocmV0KSB7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9yZXNldC9yZXNldC1yemcybC11c2JwaHktY3RybC5jIGIvZHJpdmVycy9yZXNldC9yZXNldC1yemcybC11c2JwaHktY3RybC5jXG5pbmRleCBmZDc1ZDk2MDFhM2JmZC4uZjAwM2IzNjA2MjljOTAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Jlc2V0L3Jlc2V0LXJ6ZzJsLXVzYnBoeS1jdHJsLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvcmVzZXQvcmVzZXQtcnpnMmwtdXNicGh5LWN0cmwuY1xuQEAgLTI0OSw3ICYjNDM7MjQ5LDcgQEAgc3RhdGljIGludCByemcybF91c2JwaHlfY3RybF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuIFx0dmRldi1cdTAwM2VkZXYucGFyZW50ID0gZGV2O1xuIFx0cHJpdi1cdTAwM2V2ZGV2ID0gdmRldjtcbiBcbi1cdGRldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldihcdTAwMjZ2ZGV2LVx1MDAzZWRldiwgZGV2KTtcbiYjNDM7XHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYodmRldiwgZGV2KTtcbiBcdGVycm9yID0gcGxhdGZvcm1fZGV2aWNlX2FkZCh2ZGV2KTtcbiBcdGlmIChlcnJvcilcbiBcdFx0Z290byBlcnJfZGV2aWNlX3B1dDtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3NsaW1idXMvcWNvbS1uZ2QtY3RybC5jIGIvZHJpdmVycy9zbGltYnVzL3Fjb20tbmdkLWN0cmwuY1xuaW5kZXggMzA3MWU0NmQwM2JlYWEuLjZlODk0MTU3MTJjZTFhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9zbGltYnVzL3Fjb20tbmdkLWN0cmwuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zbGltYnVzL3Fjb20tbmdkLWN0cmwuY1xuQEAgLTE1MzksNyAmIzQzOzE1MzksNyBAQCBzdGF0aWMgaW50IG9mX3Fjb21fc2xpbV9uZ2RfcmVnaXN0ZXIoc3RydWN0IGRldmljZSAqcGFyZW50LFxuIFx0XHRcdGtmcmVlKG5nZCk7XG4gXHRcdFx0cmV0dXJuIHJldDtcbiBcdFx0fVxuLVx0XHRuZ2QtXHUwMDNlcGRldi1cdTAwM2VkZXYub2Zfbm9kZSA9IG9mX25vZGVfZ2V0KG5vZGUpO1xuJiM0MztcdFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKG5nZC1cdTAwM2VwZGV2LCBub2RlKTtcbiBcdFx0Y3RybC1cdTAwM2VuZ2QgPSBuZ2Q7XG4gXG4gXHRcdHJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQobmdkLVx1MDAzZXBkZXYpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NoaXBpZGVhL2NvcmUuYyBiL2RyaXZlcnMvdXNiL2NoaXBpZGVhL2NvcmUuY1xuaW5kZXggMDc1NjNiZTAwMTNmNGQuLjdlZGM1MTJjYzM3ZGMyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy91c2IvY2hpcGlkZWEvY29yZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3VzYi9jaGlwaWRlYS9jb3JlLmNcbkBAIC04NzksNyAmIzQzOzg3OSw3IEBAIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmNpX2hkcmNfYWRkX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYsXG4gXHR9XG4gXG4gXHRwZGV2LVx1MDAzZWRldi5wYXJlbnQgPSBkZXY7XG4tXHRkZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYoXHUwMDI2cGRldi1cdTAwM2VkZXYsIGRldik7XG4mIzQzO1x0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHBkZXYsIGRldik7XG4gXG4gXHRyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkX3Jlc291cmNlcyhwZGV2LCByZXMsIG5yZXMpO1xuIFx0aWYgKHJldClcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9tdXNiL2p6NDc0MC5jIGIvZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuY1xuaW5kZXggZGY1NmM5NzI5ODZmN2MuLmM3NzBiYTU3NmYwNWI2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuY1xuQEAgLTI3Myw3ICYjNDM7MjczLDcgQEAgc3RhdGljIGludCBqejQ3NDBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbiBcdG11c2ItXHUwMDNlZGV2LnBhcmVudFx0XHQ9IGRldjtcbiBcdG11c2ItXHUwMDNlZGV2LmRtYV9tYXNrXHRcdD0gXHUwMDI2bXVzYi1cdTAwM2VkZXYuY29oZXJlbnRfZG1hX21hc2s7XG4gXHRtdXNiLVx1MDAzZWRldi5jb2hlcmVudF9kbWFfbWFza1x0PSBETUFfQklUX01BU0soMzIpO1xuLVx0ZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KFx1MDAyNm11c2ItXHUwMDNlZGV2LCBkZXYpO1xuJiM0MztcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldihtdXNiLCBkZXYpO1xuIFxuIFx0Z2x1ZS1cdTAwM2VwZGV2XHRcdFx0PSBtdXNiO1xuIFx0Z2x1ZS1cdTAwM2VjbGtcdFx0XHQ9IGNsaztcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oIGIvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaFxuaW5kZXggMjZlNmE0MzM1OGUyNWMuLjk0YjhkMmI0NmU5MTNlIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaFxuJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaFxuQEAgLTE5LDYgJiM0MzsxOSw4IEBAIHN0cnVjdCBpcnFfYWZmaW5pdHk7XG4gc3RydWN0IG1mZF9jZWxsO1xuIHN0cnVjdCBwcm9wZXJ0eV9lbnRyeTtcbiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkO1xuJiM0MztzdHJ1Y3QgZGV2aWNlX25vZGU7XG4mIzQzO3N0cnVjdCBmd25vZGVfaGFuZGxlO1xuIFxuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Uge1xuIFx0Y29uc3QgY2hhclx0Km5hbWU7XG5AQCAtMjYyLDYgJiM0MzsyNjQsMTIgQEAgZXh0ZXJuIGludCBwbGF0Zm9ybV9kZXZpY2VfYWRkX3Jlc291cmNlcyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuIFx0XHRcdFx0XHQgdW5zaWduZWQgaW50IG51bSk7XG4gZXh0ZXJuIGludCBwbGF0Zm9ybV9kZXZpY2VfYWRkX2RhdGEoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbiBcdFx0XHRcdCAgICBjb25zdCB2b2lkICpkYXRhLCBzaXplX3Qgc2l6ZSk7XG4mIzQzO3ZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG4mIzQzO1x0XHRcdFx0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApO1xuJiM0Mzt2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG4mIzQzO1x0XHRcdFx0c3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSk7XG4mIzQzO3ZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG4mIzQzO1x0XHRcdFx0XHQgIGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldjIpO1xuIGV4dGVybiBpbnQgcGxhdGZvcm1fZGV2aWNlX2FkZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTtcbiBleHRlcm4gdm9pZCBwbGF0Zm9ybV9kZXZpY2VfZGVsKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpO1xuIGV4dGVybiB2b2lkIHBsYXRmb3JtX2RldmljZV9wdXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MjY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUmIzM0OywKICAgICYjMzQ7cGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUmIzM0OywKICAgICYjMzQ7cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2JiMzNDssCiAgICAmIzM0O3BsYXRmb3JtX2RldmljZV9yZWxlYXNlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgbmV3IGhlbHBlciBmdW5jdGlvbnMgZm9yIGFzc2lnbmluZyBvZl9ub2RlIGFuZCBmd25vZGUgdG8gcGxhdGZvcm0gZGV2aWNlcywgd2hpY2ggaW50ZXJuYWxseSBtYW5hZ2UgcmVmZXJlbmNlIGNvdW50aW5nLiBJdCBhbHNvIHVwZGF0ZXMgcGxhdGZvcm1fZGV2aWNlX3JlbGVhc2UgdG8gcHJvcGVybHkgcmVsZWFzZSB0aGUgZndub2RlIHJlZmVyZW5jZS4gVGhlc2UgYXJlIGNvcmUgZGV2aWNlIG1vZGVsIGNoYW5nZXMgdGhhdCBjb3VsZCBsZWFkIHRvIG1lbW9yeSBsZWFrcyBvciB1c2UtYWZ0ZXItZnJlZSBpZiByZWZlcmVuY2UgY291bnRpbmcgaXMgaW5jb3JyZWN0LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAwYmQ1ZDQwODAxMDljNjUxYTllNDVlNWU2NjYzYTEzMjNkY2Q1YTA4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBKdW4gMjkgMDk6MjY6MDAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJtYWMvbG93X2kyYy5jCmluZGV4IGRhNzJhMzBhYjg2NTdlLi5hMTc1YTMyYTIyMmJhYiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm1hYy9sb3dfaTJjLmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm1hYy9sb3dfaTJjLmMKQEAgLTE0NzEsNyAmIzQzOzE0NzEsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBwbWFjX2kyY19jcmVhdGVfcGxhdGZvcm1fZGV2aWNlcyh2b2lkKQogCQlpZiAoYnVzLSZndDtwbGF0Zm9ybV9kZXYgPT0gTlVMTCkKIAkJCXJldHVybiAtRU5PTUVNOwogCQlidXMtJmd0O3BsYXRmb3JtX2Rldi0mZ3Q7ZGV2LnBsYXRmb3JtX2RhdGEgPSBidXM7Ci0JCWJ1cy0mZ3Q7cGxhdGZvcm1fZGV2LSZndDtkZXYub2Zfbm9kZSA9IGJ1cy0mZ3Q7YnVzbm9kZTsKJiM0MzsJCXBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShidXMtJmd0O3BsYXRmb3JtX2RldiwgYnVzLSZndDtidXNub2RlKTsKIAkJcGxhdGZvcm1fZGV2aWNlX2FkZChidXMtJmd0O3BsYXRmb3JtX2Rldik7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYyBiL2RyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jCmluZGV4IGZiOTEyMGIwYmNmZTBlLi5iYjVmNWJkZGQwNDdkNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMKQEAgLTU5OSw3ICYjNDM7NTk5LDcgQEAgc3RhdGljIHZvaWQgcGxhdGZvcm1fZGV2aWNlX3JlbGVhc2Uoc3RydWN0IGRldmljZSAqZGV2KQogCXN0cnVjdCBwbGF0Zm9ybV9vYmplY3QgKnBhID0gY29udGFpbmVyX29mKGRldiwgc3RydWN0IHBsYXRmb3JtX29iamVjdCwKIAkJCQkJCSAgcGRldi5kZXYpOwogCi0Jb2Zfbm9kZV9wdXQocGEtJmd0O3BkZXYuZGV2Lm9mX25vZGUpOwomIzQzOwlmd25vZGVfaGFuZGxlX3B1dChwYS0mZ3Q7cGRldi5kZXYuZndub2RlKTsKIAlrZnJlZShwYS0mZ3Q7cGRldi5kZXYucGxhdGZvcm1fZGF0YSk7CiAJa2ZyZWUocGEtJmd0O3BkZXYubWZkX2NlbGwpOwogCWtmcmVlKHBhLSZndDtwZGV2LnJlc291cmNlKTsKQEAgLTY5Myw2ICYjNDM7NjkzLDU2IEBAIGludCBwbGF0Zm9ybV9kZXZpY2VfYWRkX2RhdGEoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgY29uc3Qgdm9pZCAqZGF0YSwKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHBsYXRmb3JtX2RldmljZV9hZGRfZGF0YSk7CiAKJiM0MzsvKioKJiM0MzsgKiBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUgLSBhc3NpZ24gYW4gT0Ygbm9kZSB0byBkZXZpY2UKJiM0MzsgKiBAcGRldjogcGxhdGZvcm0gZGV2aWNlIHRvIGFkZCB0aGUgbm9kZSBmb3IKJiM0MzsgKiBAbnA6IG5ldyBkZXZpY2Ugbm9kZQomIzQzOyAqCiYjNDM7ICogQXNzaWduIGFuIE9GIG5vZGUgdG8gdGhpcyBwbGF0Zm9ybSBkZXZpY2UuIEludGVybmFsbHkga2VlcCB0cmFjayBvZiB0aGUKJiM0MzsgKiByZWZlcmVuY2UgY291bnQuIERldmljZXMgY3JlYXRlZCB3aXRoIHBsYXRmb3JtX2RldmljZV9hbGxvYygpIG11c3QgdXNlIHRoaXMKJiM0MzsgKiBmdW5jdGlvbiBpbnN0ZWFkIG9mIGFzc2lnbmluZyB0aGUgbm9kZSBtYW51YWxseS4KJiM0MzsgKi8KJiM0Mzt2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAomIzQzOwkJCQkgc3RydWN0IGRldmljZV9ub2RlICpucCkKJiM0Mzt7CiYjNDM7CXBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHBkZXYsIG9mX2Z3bm9kZV9oYW5kbGUobnApKTsKJiM0Mzt9CiYjNDM7RVhQT1JUX1NZTUJPTF9HUEwocGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKTsKJiM0MzsKJiM0MzsvKioKJiM0MzsgKiBwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZSAtIGFzc2lnbiBhIGZpcm13YXJlIG5vZGUgdG8gZGV2aWNlCiYjNDM7ICogQHBkZXY6IHBsYXRmb3JtIGRldmljZSB0byBzZXQgdGhlIG5vZGUgZm9yCiYjNDM7ICogQGZ3bm9kZTogbmV3IGZpcm13YXJlIG5vZGUKJiM0MzsgKgomIzQzOyAqIEFzc2lnbiBhIGZpcm13YXJlIG5vZGUgdG8gdGhpcyBwbGF0Zm9ybSBkZXZpY2UuIEludGVybmFsbHkga2VlcCB0cmFjayBvZiB0aGUKJiM0MzsgKiByZWZlcmVuY2UgY291bnQuIERldmljZXMgY3JlYXRlZCB3aXRoIHBsYXRmb3JtX2RldmljZV9hbGxvYygpIG11c3QgdXNlIHRoaXMKJiM0MzsgKiBmdW5jdGlvbiBpbnN0ZWFkIG9mIGFzc2lnbmluZyB0aGUgbm9kZSBtYW51YWxseS4KJiM0MzsgKi8KJiM0Mzt2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiYjNDM7CQkJCXN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpCiYjNDM7ewomIzQzOwlmd25vZGVfaGFuZGxlX3B1dChwZGV2LSZndDtkZXYuZndub2RlKTsKJiM0MzsJcGRldi0mZ3Q7ZGV2LmZ3bm9kZSA9IGZ3bm9kZV9oYW5kbGVfZ2V0KGZ3bm9kZSk7CiYjNDM7CXBkZXYtJmd0O2Rldi5vZl9ub2RlID0gdG9fb2Zfbm9kZShmd25vZGUpOwomIzQzO30KJiM0MztFWFBPUlRfU1lNQk9MX0dQTChwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZSk7CiYjNDM7CiYjNDM7LyoqCiYjNDM7ICogcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2IC0gcmV1c2UgT0Ygbm9kZSBvZiBhbm90aGVyIGRldmljZQomIzQzOyAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2UgdG8gc2V0IHRoZSBub2RlIGZvcgomIzQzOyAqIEBkZXYyOiBkZXZpY2Ugd2hvc2UgT0Ygbm9kZSB0byByZXVzZQomIzQzOyAqCiYjNDM7ICogUmV1c2VzIHRoZSBPRiBub2RlIG9mIGFub3RoZXIgZGV2aWNlIGluIHRoaXMgcGxhdGZvcm0gZGV2aWNlIHdoaWxlCiYjNDM7ICogaW50ZXJuYWxseSBrZWVwaW5nIHRyYWNrIG9mIHJlZmVyZW5jZSBjb3VudGluZy4KJiM0MzsgKi8KJiM0Mzt2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldihzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAomIzQzOwkJCQkJICBjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYyKQomIzQzO3sKJiM0MzsJZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KCZhbXA7cGRldi0mZ3Q7ZGV2LCBkZXYyKTsKJiM0MzsJcGRldi0mZ3Q7ZGV2LmZ3bm9kZSA9IG9mX2Z3bm9kZV9oYW5kbGUocGRldi0mZ3Q7ZGV2Lm9mX25vZGUpOwomIzQzO30KJiM0MztFWFBPUlRfU1lNQk9MX0dQTChwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYpOwomIzQzOwogLyoqCiAgKiBwbGF0Zm9ybV9kZXZpY2VfYWRkIC0gYWRkIGEgcGxhdGZvcm0gZGV2aWNlIHRvIGRldmljZSBoaWVyYXJjaHkKICAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2Ugd2UmIzM5O3JlIGFkZGluZwpAQCAtODY4LDggJiM0Mzs5MTgsOCBAQCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfZnVsbChjb25zdCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAogCXBkZXYtJmd0O2Rldi5wYXJlbnQgPSBwZGV2aW5mby0mZ3Q7cGFyZW50OwotCXBkZXYtJmd0O2Rldi5md25vZGUgPSBwZGV2aW5mby0mZ3Q7Zndub2RlOwotCXBkZXYtJmd0O2Rldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQodG9fb2Zfbm9kZShwZGV2LSZndDtkZXYuZndub2RlKSk7CiYjNDM7CXBkZXYtJmd0O2Rldi5md25vZGUgPSBmd25vZGVfaGFuZGxlX2dldChwZGV2aW5mby0mZ3Q7Zndub2RlKTsKJiM0MzsJcGRldi0mZ3Q7ZGV2Lm9mX25vZGUgPSB0b19vZl9ub2RlKHBkZXYtJmd0O2Rldi5md25vZGUpOwogCWRldl9hc3NpZ25fb2Zfbm9kZV9yZXVzZWQoJmFtcDtwZGV2LSZndDtkZXYsIHBkZXZpbmZvLSZndDtvZl9ub2RlX3JldXNlZCk7CiAKIAlpZiAocGRldmluZm8tJmd0O2RtYV9tYXNrKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmMgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmMKaW5kZXggNzA2NzgzODYzZDA3ZDYuLmFmNGViZDkzYWQ4ZTY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2kyYy5jCkBAIC0xMjMsNyAmIzQzOzEyMyw3IEBAIHN0YXRpYyBpbnQgeGVfaTJjX3JlZ2lzdGVyX2FkYXB0ZXIoc3RydWN0IHhlX2kyYyAqaTJjKQogCX0KIAogCXBkZXYtJmd0O2Rldi5wYXJlbnQgPSBpMmMtJmd0O2RybV9kZXY7Ci0JcGRldi0mZ3Q7ZGV2LmZ3bm9kZSA9IGZ3bm9kZTsKJiM0MzsJcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUocGRldiwgZndub2RlKTsKIAlpMmMtJmd0O2FkYXB0ZXJfbm9kZSA9IGZ3bm9kZTsKIAlpMmMtJmd0O3BkZXYgPSBwZGV2OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXB4YS1wY2kuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcHhhLXBjaS5jCmluZGV4IGRiZDU0MjMwMGY4MDA0Li45MmEwNjQ3ZjA4YzY5ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1weGEtcGNpLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1weGEtcGNpLmMKQEAgLTc2LDcgJiM0Mzs3Niw4IEBAIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICphZGRfaTJjX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgYmFyKQogCQlnb3RvIG91dDsKIAl9CiAJcGRldi0mZ3Q7ZGV2LnBhcmVudCA9ICZhbXA7ZGV2LSZndDtkZXY7Ci0JcGRldi0mZ3Q7ZGV2Lm9mX25vZGUgPSBjaGlsZDsKJiM0MzsKJiM0MzsJcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHBkZXYsIGNoaWxkKTsKIAogCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGRfcmVzb3VyY2VzKHBkZXYsIHJlcywgQVJSQVlfU0laRShyZXMpKTsKIAlpZiAocmV0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9mc2xfcGFtdS5jIGIvZHJpdmVycy9pb21tdS9mc2xfcGFtdS5jCmluZGV4IDI1YWE0NzdhOTVhOTVjLi4wMTI4MzlmYTBkOGEyNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pb21tdS9mc2xfcGFtdS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvaW9tbXUvZnNsX3BhbXUuYwpAQCAtOTczLDcgJiM0Mzs5NzMsOCBAQCBzdGF0aWMgX19pbml0IGludCBmc2xfcGFtdV9pbml0KHZvaWQpCiAJCXJldCA9IC1FTk9NRU07CiAJCWdvdG8gZXJyb3JfZGV2aWNlX2FsbG9jOwogCX0KLQlwZGV2LSZndDtkZXYub2Zfbm9kZSA9IG9mX25vZGVfZ2V0KG5wKTsKJiM0MzsKJiM0MzsJcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHBkZXYsIG5wKTsKIAogCXJldCA9IHBhbXVfZG9tYWluX2luaXQoKTsKIAlpZiAocmV0KQpAQCAtOTg1LDEyICYjNDM7OTg2LDEwIEBAIHN0YXRpYyBfX2luaXQgaW50IGZzbF9wYW11X2luaXQodm9pZCkKIAkJZ290byBlcnJvcl9kZXZpY2VfYWRkOwogCX0KIAomIzQzOwlvZl9ub2RlX3B1dChucCk7CiAJcmV0dXJuIDA7CiAKIGVycm9yX2RldmljZV9hZGQ6Ci0Jb2Zfbm9kZV9wdXQocGRldi0mZ3Q7ZGV2Lm9mX25vZGUpOwotCXBkZXYtJmd0O2Rldi5vZl9ub2RlID0gTlVMTDsKLQogCXBsYXRmb3JtX2RldmljZV9wdXQocGRldik7CiAKIGVycm9yX2RldmljZV9hbGxvYzoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL3RwczY1ODZ4LmMgYi9kcml2ZXJzL21mZC90cHM2NTg2eC5jCmluZGV4IGY1ZjgwNTQ0NjYwMzMxLi4zY2ZkMmYwMmI2MmYzYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZmQvdHBzNjU4NnguYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL21mZC90cHM2NTg2eC5jCkBAIC0zOTcsNyAmIzQzOzM5Nyw3IEBAIHN0YXRpYyBpbnQgdHBzNjU4NnhfYWRkX3N1YmRldnMoc3RydWN0IHRwczY1ODZ4ICp0cHM2NTg2eCwKIAogCQlwZGV2LSZndDtkZXYucGFyZW50ID0gdHBzNjU4NngtJmd0O2RldjsKIAkJcGRldi0mZ3Q7ZGV2LnBsYXRmb3JtX2RhdGEgPSBzdWJkZXYtJmd0O3BsYXRmb3JtX2RhdGE7Ci0JCXBkZXYtJmd0O2Rldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQoc3ViZGV2LSZndDtvZl9ub2RlKTsKJiM0MzsJCXBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwZGV2LCBzdWJkZXYtJmd0O29mX25vZGUpOwogCiAJCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQocGRldik7CiAJCWlmIChyZXQpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbW1paS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMKaW5kZXggYTRlMGQ1YTY4MjY4NzUuLjQ1MWIyM2EwMzljZWJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYwpAQCAtNDkwLDEwICYjNDM7NDkwLDE0IEBAIHN0YXRpYyBpbnQgYmNtZ2VuZXRfbWlpX3JlZ2lzdGVyKHN0cnVjdCBiY21nZW5ldF9wcml2ICpwcml2KQogCS8qIFJldGFpbiB0aGlzIHBsYXRmb3JtX2RldmljZSBwb2ludGVyIGZvciBsYXRlciBjbGVhbnVwICovCiAJcHJpdi0mZ3Q7bWlpX3BkZXYgPSBwcGRldjsKIAlwcGRldi0mZ3Q7ZGV2LnBhcmVudCA9ICZhbXA7cGRldi0mZ3Q7ZGV2OwotCWlmIChkbikKLQkJcHBkZXYtJmd0O2Rldi5vZl9ub2RlID0gYmNtZ2VuZXRfbWlpX29mX2ZpbmRfbWRpbyhwcml2KTsKLQllbHNlCiYjNDM7CiYjNDM7CWlmIChkbikgewomIzQzOwkJc3RydWN0IGRldmljZV9ub2RlICpucCBfX2ZyZWUoZGV2aWNlX25vZGUpID0gYmNtZ2VuZXRfbWlpX29mX2ZpbmRfbWRpbyhwcml2KTsKJiM0MzsKJiM0MzsJCXBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwcGRldiwgbnApOwomIzQzOwl9IGVsc2UgewogCQlwcGQucGh5X21hc2sgPSB+MDsKJiM0MzsJfQogCiAJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZF9yZXNvdXJjZXMocHBkZXYsICZhbXA7cmVzLCAxKTsKIAlpZiAocmV0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdjY0M3h4X2V0aC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdjY0M3h4X2V0aC5jCmluZGV4IDE4ODE1ODNiZTVjZTJlLi45Y2FhMWU0N2MxNzRjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdjY0M3h4X2V0aC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXY2NDN4eF9ldGguYwpAQCAtMjc4MCw3ICYjNDM7Mjc4MCw3IEBAIHN0YXRpYyBpbnQgbXY2NDN4eF9ldGhfc2hhcmVkX29mX2FkZF9wb3J0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJCWdvdG8gcHV0X2VycjsKIAl9CiAJcHBkZXYtJmd0O2Rldi5jb2hlcmVudF9kbWFfbWFzayA9IERNQV9CSVRfTUFTSygzMik7Ci0JcHBkZXYtJmd0O2Rldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQocG5wKTsKJiM0MzsJcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHBwZGV2LCBwbnApOwogCiAJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZF9yZXNvdXJjZXMocHBkZXYsICZhbXA7cmVzLCAxKTsKIAlpZiAocmV0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9vZi9wbGF0Zm9ybS5jIGIvZHJpdmVycy9vZi9wbGF0Zm9ybS5jCmluZGV4IDUzYmNhOGM2Zjc4MTBjLi44YjFlNzY0MDc3ODI1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9vZi9wbGF0Zm9ybS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvb2YvcGxhdGZvcm0uYwpAQCAtMTI2LDcgJiM0MzsxMjYsNyBAQCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvZl9kZXZpY2VfYWxsb2Moc3RydWN0IGRldmljZV9ub2RlICpucCwKIAl9CiAKIAkvKiBzZXR1cCBnZW5lcmljIGRldmljZSBpbmZvICovCi0JZGV2aWNlX3NldF9ub2RlKCZhbXA7ZGV2LSZndDtkZXYsIG9mX2Z3bm9kZV9oYW5kbGUob2Zfbm9kZV9nZXQobnApKSk7CiYjNDM7CXBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShkZXYsIG5wKTsKIAlkZXYtJmd0O2Rldi5wYXJlbnQgPSBwYXJlbnQgPyA6ICZhbXA7cGxhdGZvcm1fYnVzOwogCiAJaWYgKGJ1c19pZCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGxhdGZvcm0vc3VyZmFjZS9zdXJmYWNlX2dwZS5jIGIvZHJpdmVycy9wbGF0Zm9ybS9zdXJmYWNlL3N1cmZhY2VfZ3BlLmMKaW5kZXggYjM1OTQxMzkwM2IxM2MuLjQwODk2YTg1NDRiMGE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BsYXRmb3JtL3N1cmZhY2Uvc3VyZmFjZV9ncGUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3BsYXRmb3JtL3N1cmZhY2Uvc3VyZmFjZV9ncGUuYwpAQCAtMzE3LDcgJiM0MzszMTcsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBzdXJmYWNlX2dwZV9pbml0KHZvaWQpCiAJCWdvdG8gZXJyX2FsbG9jOwogCX0KIAotCXBkZXYtJmd0O2Rldi5md25vZGUgPSBmd25vZGU7CiYjNDM7CXBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHBkZXYsIGZ3bm9kZSk7CiAKIAlzdGF0dXMgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKHBkZXYpOwogCWlmIChzdGF0dXMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BtZG9tYWluL2lteC9ncGMuYyBiL2RyaXZlcnMvcG1kb21haW4vaW14L2dwYy5jCmluZGV4IDQyZTUwYzliNGZiOWZmLi5hYmNhNWY0NDlhMjI2ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wbWRvbWFpbi9pbXgvZ3BjLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9wbWRvbWFpbi9pbXgvZ3BjLmMKQEAgLTQ4Nyw4ICYjNDM7NDg3LDcgQEAgc3RhdGljIGludCBpbXhfZ3BjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCQlkb21haW4tJmd0O2lwZ19yYXRlX21oeiA9IGlwZ19yYXRlX21oejsKIAogCQkJcGRfcGRldi0mZ3Q7ZGV2LnBhcmVudCA9ICZhbXA7cGRldi0mZ3Q7ZGV2OwotCQkJcGRfcGRldi0mZ3Q7ZGV2Lm9mX25vZGUgPSBvZl9ub2RlX2dldChucCk7Ci0JCQlwZF9wZGV2LSZndDtkZXYuZndub2RlID0gb2ZfZndub2RlX2hhbmRsZShucCk7CiYjNDM7CQkJcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHBkX3BkZXYsIG5wKTsKIAogCQkJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChwZF9wZGV2KTsKIAkJCWlmIChyZXQpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVzZXQvcmVzZXQtcnpnMmwtdXNicGh5LWN0cmwuYyBiL2RyaXZlcnMvcmVzZXQvcmVzZXQtcnpnMmwtdXNicGh5LWN0cmwuYwppbmRleCBmZDc1ZDk2MDFhM2JmZC4uZjAwM2IzNjA2MjljOTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcmVzZXQvcmVzZXQtcnpnMmwtdXNicGh5LWN0cmwuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3Jlc2V0L3Jlc2V0LXJ6ZzJsLXVzYnBoeS1jdHJsLmMKQEAgLTI0OSw3ICYjNDM7MjQ5LDcgQEAgc3RhdGljIGludCByemcybF91c2JwaHlfY3RybF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXZkZXYtJmd0O2Rldi5wYXJlbnQgPSBkZXY7CiAJcHJpdi0mZ3Q7dmRldiA9IHZkZXY7CiAKLQlkZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYoJmFtcDt2ZGV2LSZndDtkZXYsIGRldik7CiYjNDM7CXBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2Rldih2ZGV2LCBkZXYpOwogCWVycm9yID0gcGxhdGZvcm1fZGV2aWNlX2FkZCh2ZGV2KTsKIAlpZiAoZXJyb3IpCiAJCWdvdG8gZXJyX2RldmljZV9wdXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NsaW1idXMvcWNvbS1uZ2QtY3RybC5jIGIvZHJpdmVycy9zbGltYnVzL3Fjb20tbmdkLWN0cmwuYwppbmRleCAzMDcxZTQ2ZDAzYmVhYS4uNmU4OTQxNTcxMmNlMWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2xpbWJ1cy9xY29tLW5nZC1jdHJsLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zbGltYnVzL3Fjb20tbmdkLWN0cmwuYwpAQCAtMTUzOSw3ICYjNDM7MTUzOSw3IEBAIHN0YXRpYyBpbnQgb2ZfcWNvbV9zbGltX25nZF9yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsCiAJCQlrZnJlZShuZ2QpOwogCQkJcmV0dXJuIHJldDsKIAkJfQotCQluZ2QtJmd0O3BkZXYtJmd0O2Rldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQobm9kZSk7CiYjNDM7CQlwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUobmdkLSZndDtwZGV2LCBub2RlKTsKIAkJY3RybC0mZ3Q7bmdkID0gbmdkOwogCiAJCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQobmdkLSZndDtwZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NoaXBpZGVhL2NvcmUuYyBiL2RyaXZlcnMvdXNiL2NoaXBpZGVhL2NvcmUuYwppbmRleCAwNzU2M2JlMDAxM2Y0ZC4uN2VkYzUxMmNjMzdkYzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2NoaXBpZGVhL2NvcmUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3VzYi9jaGlwaWRlYS9jb3JlLmMKQEAgLTg3OSw3ICYjNDM7ODc5LDcgQEAgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqY2lfaGRyY19hZGRfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldiwKIAl9CiAKIAlwZGV2LSZndDtkZXYucGFyZW50ID0gZGV2OwotCWRldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldigmYW1wO3BkZXYtJmd0O2RldiwgZGV2KTsKJiM0MzsJcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHBkZXYsIGRldik7CiAKIAlyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkX3Jlc291cmNlcyhwZGV2LCByZXMsIG5yZXMpOwogCWlmIChyZXQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9tdXNiL2p6NDc0MC5jIGIvZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuYwppbmRleCBkZjU2Yzk3Mjk4NmY3Yy4uYzc3MGJhNTc2ZjA1YjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL211c2Ivano0NzQwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuYwpAQCAtMjczLDcgJiM0MzsyNzMsNyBAQCBzdGF0aWMgaW50IGp6NDc0MF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCW11c2ItJmd0O2Rldi5wYXJlbnQJCT0gZGV2OwogCW11c2ItJmd0O2Rldi5kbWFfbWFzawkJPSAmYW1wO211c2ItJmd0O2Rldi5jb2hlcmVudF9kbWFfbWFzazsKIAltdXNiLSZndDtkZXYuY29oZXJlbnRfZG1hX21hc2sJPSBETUFfQklUX01BU0soMzIpOwotCWRldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldigmYW1wO211c2ItJmd0O2RldiwgZGV2KTsKJiM0MzsJcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KG11c2IsIGRldik7CiAKIAlnbHVlLSZndDtwZGV2CQkJPSBtdXNiOwogCWdsdWUtJmd0O2NsawkJCT0gY2xrOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaCBiL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmgKaW5kZXggMjZlNmE0MzM1OGUyNWMuLjk0YjhkMmI0NmU5MTNlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmgKQEAgLTE5LDYgJiM0MzsxOSw4IEBAIHN0cnVjdCBpcnFfYWZmaW5pdHk7CiBzdHJ1Y3QgbWZkX2NlbGw7CiBzdHJ1Y3QgcHJvcGVydHlfZW50cnk7CiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkOwomIzQzO3N0cnVjdCBkZXZpY2Vfbm9kZTsKJiM0MztzdHJ1Y3QgZndub2RlX2hhbmRsZTsKIAogc3RydWN0IHBsYXRmb3JtX2RldmljZSB7CiAJY29uc3QgY2hhcgkqbmFtZTsKQEAgLTI2Miw2ICYjNDM7MjY0LDEyIEBAIGV4dGVybiBpbnQgcGxhdGZvcm1fZGV2aWNlX2FkZF9yZXNvdXJjZXMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJCQkJIHVuc2lnbmVkIGludCBudW0pOwogZXh0ZXJuIGludCBwbGF0Zm9ybV9kZXZpY2VfYWRkX2RhdGEoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJCQkgICAgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IHNpemUpOwomIzQzO3ZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiYjNDM7CQkJCSBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKTsKJiM0Mzt2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiYjNDM7CQkJCXN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpOwomIzQzO3ZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiYjNDM7CQkJCQkgIGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldjIpOwogZXh0ZXJuIGludCBwbGF0Zm9ybV9kZXZpY2VfYWRkKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpOwogZXh0ZXJuIHZvaWQgcGxhdGZvcm1fZGV2aWNlX2RlbChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTsKIGV4dGVybiB2b2lkIHBsYXRmb3JtX2RldmljZV9wdXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY4MzIKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiA2MTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb246IFBsYXRmb3JtIERldmljZSBGaXJtd2FyZSBOb2RlIE1hbmFnZW1lbnQqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2ggaGVyZSBpbnRyb2R1Y2luZyBhIGZldyBuZXcgZnVuY3Rpb25zIGluIGBkcml2ZXJzL2Jhc2UvcGxhdGZvcm0uY2A6IGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVgLCBgcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVgLCBhbmQgYHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldmAuIFRoZXNlIGFyZSBiYXNpY2FsbHkgZGVzaWduZWQgdG8gaGFuZGxlIHRoZSBhc3NpZ25tZW50IG9mIGBvZl9ub2RlYCBhbmQgYGZ3bm9kZWAgdG8gYSBgcGxhdGZvcm1fZGV2aWNlYCwgYW5kIGNydWNpYWxseSwgdGhleSBtYW5hZ2UgdGhlIGFzc29jaWF0ZWQgcmVmZXJlbmNlIGNvdW50aW5nIGludGVybmFsbHkuIFRoaXMgcmVmYWN0b3JpbmcgaGFzIGJlZW4gYXBwbGllZCB0byBhIGZldyBkcml2ZXJzIHRvIGNsZWFuIHVwIHRoZWlyIGNvZGUuCgpNeSBpbml0aWFsIHRob3VnaHQ/IElzIHRoaXMgcGF0Y2ggZXZlbiB3b3J0aCBmdXp6aW5nPyBJdCBzZWVtcyBsaWtlIG1vc3RseSByZWZhY3RvcmluZywgcmlnaHQ/IEJ1dCB0aGVuIEkgc2VlIHRoYXQgdGhlc2UgbmV3IGZ1bmN0aW9ucyBub3cgKmhhbmRsZSByZWZlcmVuY2UgY291bnRpbmcqLCB3aGljaCBpcyBhIHBvdGVudGlhbCBtaW5lZmllbGQgZm9yIGJ1Z3MuIExvb2tpbmcgYXQgdGhlIGNvZGUgZm9yIGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZWAsIGl0IGlzIGNsZWFyIHRoYXQgdGhleSBleHBsaWNpdGx5IHJlbGVhc2UgdGhlIG9sZCBub2RlIGFuZCBpbmNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudCBvbiB0aGUgbmV3IG5vZGUsIHdoaWNoIGlzIGEgZ29vZCBzaWduLCBidXQgYWxzbyB0aGUgc29ydCBvZiBjaGFuZ2UgdGhhdCBjb3VsZCBiZSBzdWJ0bHkgd3JvbmcuIEFuZCB0aGUgY29ycmVzcG9uZGluZyBgcGxhdGZvcm1fZGV2aWNlX3JlbGVhc2VgIG5vdyBoYXMgdG8gcmVsZWFzZSBgZndub2RlYCB0b28sIG1lYW5pbmcgaXQmIzM5O3MgY2hhbmdlZCBzaWduaWZpY2FudGx5IGluIGhvdyBpdCBkb2VzIGl0cyBqb2IuCgpUaGlzIGlzIGEgY29yZSBrZXJuZWwgY2hhbmdlLCByZWFsbHkgZGVlcCBpbiB0aGUgYGRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jYCBjb2RlLCBhbmQgaXQgYWZmZWN0cyBob3cgcGxhdGZvcm0gZGV2aWNlcywgd2hpY2ggYXJlIGV2ZXJ5d2hlcmUsIG1hbmFnZSB0aGVpciBjb25uZWN0aW9uIHdpdGggZmlybXdhcmUgbm9kZXMuIEl0JiMzOTtzIGRlZmluaXRlbHkgcmVhY2hhYmxlLiBBbmQgc2luY2Ugd2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgcmVmZXJlbmNlIGNvdW50aW5nIG9mIGBmd25vZGVgIGFuZCBgb2Zfbm9kZWAsIHdoaWNoIGFyZSBmdW5kYW1lbnRhbCBmb3IgZGV2aWNlIHRyZWUgYW5kIGZpcm13YXJlIGludGVyYWN0aW9uLCBhbnkgYnVnIGhlcmUgY291bGQgbGVhZCB0byB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVha3MuCgpTbyB5ZWFoLCB0aGlzIGlzIGEgZGVmaW5pdGUgZnV6emluZyB0YXJnZXQuCgpMZXQmIzM5O3MgbmFpbCBkb3duIHdoaWNoIGZ1bmN0aW9ucyB0byBmb2N1cyBvbjogYHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZWAsIGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZWAsIGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXZgLCBhbmQgb2YgY291cnNlIGBwbGF0Zm9ybV9kZXZpY2VfcmVsZWFzZWAsIHBsdXMgYHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9mdWxsYC4KCkkmIzM5O2xsIGNoZWNrIGZvciBhbnkgc3BlY2lmaWMga2VybmVsIGNvbmZpZ3VyYXRpb25zIHRoYXQgbWlnaHQgYmUgcmVsZXZhbnQuIFRoZSBjb2RlIGlzIGFsd2F5cyBjb21waWxlZCwgYnV0IHNpbmNlIHdlIGFyZSB3b3JraW5nIHdpdGggYG9mX25vZGVgIGFuZCBgZndub2RlYCwgYENPTkZJR19PRmAgY291bGQgYmUgc29tZXRoaW5nIHRvIGtlZXAgaW4gbWluZCwgYWx0aG91Z2ggYGZ3bm9kZWAgc2VlbXMgdG8gYmUgYWx3YXlzIHByZXNlbnQuCgpUaW1lIHRvIHN0YXJ0IGRpZ2dpbmcgaW50byB0aGUgY29kZSBhbmQgc2VlIGhvdyBgcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVgIGlzIGFjdHVhbGx5IHVzZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9iYXNlL3BsYXRmb3JtLmM9NzA1PXZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG4tLVxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzA3LXtcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jOjcwODpcdHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHBkZXYsIG9mX2Z3bm9kZV9oYW5kbGUobnApKTtcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTcwOS19XG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYz03MTA9RVhQT1JUX1NZTUJPTF9HUEwocGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKTtcbi0tXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MTItLyoqXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYzo3MTM6ICogcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUgLSBhc3NpZ24gYSBmaXJtd2FyZSBub2RlIHRvIGRldmljZVxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzE0LSAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2UgdG8gc2V0IHRoZSBub2RlIGZvclxuLS1cbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTcyMC0gKi9cbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jOjcyMTp2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MjItXHRcdFx0XHRzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlKVxuLS1cbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTcyNy19XG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYzo3Mjg6RVhQT1JUX1NZTUJPTF9HUEwocGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUpO1xuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzI5LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS94ZS94ZV9pMmMuYz05Mj1zdGF0aWMgaW50IHhlX2kyY19yZWdpc3Rlcl9hZGFwdGVyKHN0cnVjdCB4ZV9pMmMgKmkyYylcbi0tXG5kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmMtMTI1LVx0cGRldi1cdTAwM2VkZXYucGFyZW50ID0gaTJjLVx1MDAzZWRybV9kZXY7XG5kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmM6MTI2Olx0cGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUocGRldiwgZndub2RlKTtcbmRyaXZlcnMvZ3B1L2RybS94ZS94ZV9pMmMuYy0xMjctXHRpMmMtXHUwMDNlYWRhcHRlcl9ub2RlID0gZndub2RlO1xuLS1cbmRyaXZlcnMvcGxhdGZvcm0vc3VyZmFjZS9zdXJmYWNlX2dwZS5jPTI5MT1zdGF0aWMgaW50IF9faW5pdCBzdXJmYWNlX2dwZV9pbml0KHZvaWQpXG4tLVxuZHJpdmVycy9wbGF0Zm9ybS9zdXJmYWNlL3N1cmZhY2VfZ3BlLmMtMzE5LVxuZHJpdmVycy9wbGF0Zm9ybS9zdXJmYWNlL3N1cmZhY2VfZ3BlLmM6MzIwOlx0cGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUocGRldiwgZndub2RlKTtcbmRyaXZlcnMvcGxhdGZvcm0vc3VyZmFjZS9zdXJmYWNlX2dwZS5jLTMyMS1cbi0tXG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oPTI2Nz12b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaC0yNjgtXHRcdFx0XHQgc3RydWN0IGRldmljZV9ub2RlICpucCk7XG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oOjI2OTp2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oLTI3MC1cdFx0XHRcdHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDg3MjcKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiAxODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIFBsYXRmb3JtIERldmljZSBJbml0aWFsaXphdGlvbiBhbmQgUmVsZWFzZSBGdW5jdGlvbnMgZm9yIEZ1enppbmcqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGBkcml2ZXJzL2Jhc2UvcGxhdGZvcm0uY2Ag4oCTIHRoYXQmIzM5O3Mgd2hlcmUgdGhlIGhlYXJ0IG9mIHRoZSBwbGF0Zm9ybSBkZXZpY2UgbWFuYWdlbWVudCBsaWVzLiBUaGlzIGlzIGEgY3J1Y2lhbCBhcmVhIGluIHRoZSBrZXJuZWwsIHNvIGl04oCZcyBkZWZpbml0ZWx5IHdvcnRoIGEgY2xvc2UgbG9vayBmb3IgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcy4gSSYjMzk7bSBzcGVjaWZpY2FsbHkgaW50ZXJlc3RlZCBpbiB0aGVzZSBmdW5jdGlvbnM6IGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVgLCBgcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVgLCBgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2YCwgYW5kIGBwbGF0Zm9ybV9kZXZpY2VfcmVsZWFzZWAuCgpHb29kIG5ld3MgaXMsIHRoZXNlIGZ1bmN0aW9ucyBhcmVuJiMzOTt0IGluIGFueSBob3QgcGF0aDsgdGhleSBhcmUgcHJpbWFyaWx5IGludm9sdmVkIGR1cmluZyBkZXZpY2UgY3JlYXRpb24gYW5kIGRlc3RydWN0aW9uLiBUaGF0IHNpbXBsaWZpZXMgdGhpbmdzIGEgYml0IGZyb20gYSBwZXJmb3JtYW5jZSBwZXJzcGVjdGl2ZS4gTm8gc3BlY2lhbCBjb25maWd1cmF0aW9ucyBzaG91bGQgYmUgbmVlZGVkIHRvIGJ1aWxkIGFuZCB0ZXN0IHRoZXNlIGZ1bmN0aW9ucywgYXMgYGRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jYCBpcyBhbHdheXMgY29tcGlsZWQuIEkmIzM5O2xsIGZsYWcgdGhpcyBhcyBgV29ydGhGdXp6aW5nPXRydWVgLgoKTm93LCBiZWZvcmUgSSBqdW1wIGluLCBJIHNob3VsZCBkbyBteSBkdWUgZGlsaWdlbmNlLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgZG9uJiMzOTt0IG1pc3MgYW55dGhpbmcgb2J2aW91cy4gTGV0JiMzOTtzIHF1aWNrbHkgZG91YmxlIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGNoZWNrIGlmIGBDT05GSUdfT0ZgIGlzIHJlcXVpcmVkLiBGdW5jdGlvbnMgaW52b2x2aW5nIGBvZl9ub2RlYCBtYXkgbmVlZCBpdC4gSXTigJlzIHBvc3NpYmxlIHRoZXkgaGF2ZSBzdHVicyBpZiBgQ09ORklHX09GYCBpcyBkaXNhYmxlZCwgb3IgbWF5YmUgdGhleSBhcmUgY29tcGlsZWQgcmVnYXJkbGVzcywgYnV0IEnigJlkIGJldHRlciBtYWtlIHN1cmUuIFRoaXMgd2lsbCBhZmZlY3QgaG93IEkgdGVzdCBhbmQgd2hhdCBuZWVkcyB0byBiZSBlbmFibGVkIGR1cmluZyBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuYz0xNDU2PXN0YXRpYyBpbnQgX19pbml0IHBtYWNfaTJjX2NyZWF0ZV9wbGF0Zm9ybV9kZXZpY2VzKHZvaWQpXG4tLVxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm1hYy9sb3dfaTJjLmMtMTQ3My1cdFx0YnVzLVx1MDAzZXBsYXRmb3JtX2Rldi1cdTAwM2VkZXYucGxhdGZvcm1fZGF0YSA9IGJ1cztcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJtYWMvbG93X2kyYy5jOjE0NzQ6XHRcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShidXMtXHUwMDNlcGxhdGZvcm1fZGV2LCBidXMtXHUwMDNlYnVzbm9kZSk7XG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuYy0xNDc1LVx0XHRwbGF0Zm9ybV9kZXZpY2VfYWRkKGJ1cy1cdTAwM2VwbGF0Zm9ybV9kZXYpO1xuLS1cbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jPTY5ND1FWFBPUlRfU1lNQk9MX0dQTChwbGF0Zm9ybV9kZXZpY2VfYWRkX2RhdGEpO1xuLS1cbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTY5Ni0vKipcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jOjY5NzogKiBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUgLSBhc3NpZ24gYW4gT0Ygbm9kZSB0byBkZXZpY2VcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTY5OC0gKiBAcGRldjogcGxhdGZvcm0gZGV2aWNlIHRvIGFkZCB0aGUgbm9kZSBmb3Jcbi0tXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MDQtICovXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYzo3MDU6dm9pZCBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTcwNi1cdFx0XHRcdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKVxuLS1cbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTcwOS19XG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYzo3MTA6RVhQT1JUX1NZTUJPTF9HUEwocGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKTtcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTcxMS1cbi0tXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYz03Mjg9RVhQT1JUX1NZTUJPTF9HUEwocGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUpO1xuLS1cbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTczMC0vKipcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jOjczMTogKiBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYgLSByZXVzZSBPRiBub2RlIG9mIGFub3RoZXIgZGV2aWNlXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MzItICogQHBkZXY6IHBsYXRmb3JtIGRldmljZSB0byBzZXQgdGhlIG5vZGUgZm9yXG4tLVxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzM3LSAqL1xuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmM6NzM4OnZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MzktXHRcdFx0XHRcdCAgY29uc3Qgc3RydWN0IGRldmljZSAqZGV2Milcbi0tXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03NDMtfVxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmM6NzQ0OkVYUE9SVF9TWU1CT0xfR1BMKHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2Rldik7XG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03NDUtXG4tLVxuZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1weGEtcGNpLmM9MjM9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmFkZF9pMmNfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBiYXIpXG4tLVxuZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1weGEtcGNpLmMtNzktXG5kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXB4YS1wY2kuYzo4MDpcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwZGV2LCBjaGlsZCk7XG5kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXB4YS1wY2kuYy04MS1cbi0tXG5kcml2ZXJzL2lvbW11L2ZzbF9wYW11LmM9OTMzPXN0YXRpYyBfX2luaXQgaW50IGZzbF9wYW11X2luaXQodm9pZClcbi0tXG5kcml2ZXJzL2lvbW11L2ZzbF9wYW11LmMtOTc2LVxuZHJpdmVycy9pb21tdS9mc2xfcGFtdS5jOjk3NzpcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwZGV2LCBucCk7XG5kcml2ZXJzL2lvbW11L2ZzbF9wYW11LmMtOTc4LVxuLS1cbmRyaXZlcnMvbWZkL3RwczY1ODZ4LmM9MzgyPXN0YXRpYyBpbnQgdHBzNjU4NnhfYWRkX3N1YmRldnMoc3RydWN0IHRwczY1ODZ4ICp0cHM2NTg2eCxcbi0tXG5kcml2ZXJzL21mZC90cHM2NTg2eC5jLTM5OS1cdFx0cGRldi1cdTAwM2VkZXYucGxhdGZvcm1fZGF0YSA9IHN1YmRldi1cdTAwM2VwbGF0Zm9ybV9kYXRhO1xuZHJpdmVycy9tZmQvdHBzNjU4NnguYzo0MDA6XHRcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwZGV2LCBzdWJkZXYtXHUwMDNlb2Zfbm9kZSk7XG5kcml2ZXJzL21mZC90cHM2NTg2eC5jLTQwMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYz00NDk9c3RhdGljIGludCBiY21nZW5ldF9taWlfcmVnaXN0ZXIoc3RydWN0IGJjbWdlbmV0X3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMtNDk2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmM6NDk3Olx0XHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUocHBkZXYsIG5wKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbW1paS5jLTQ5OC1cdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdjY0M3h4X2V0aC5jPTI3MjE9c3RhdGljIGludCBtdjY0M3h4X2V0aF9zaGFyZWRfb2ZfYWRkX3BvcnQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212NjQzeHhfZXRoLmMtMjc4Mi1cdHBwZGV2LVx1MDAzZWRldi5jb2hlcmVudF9kbWFfbWFzayA9IERNQV9CSVRfTUFTSygzMik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212NjQzeHhfZXRoLmM6Mjc4MzpcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwcGRldiwgcG5wKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXY2NDN4eF9ldGguYy0yNzg0LVxuLS1cbmRyaXZlcnMvb2YvcGxhdGZvcm0uYz05Nz1zdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvZl9kZXZpY2VfYWxsb2Moc3RydWN0IGRldmljZV9ub2RlICpucCxcbi0tXG5kcml2ZXJzL29mL3BsYXRmb3JtLmMtMTI4LVx0Lyogc2V0dXAgZ2VuZXJpYyBkZXZpY2UgaW5mbyAqL1xuZHJpdmVycy9vZi9wbGF0Zm9ybS5jOjEyOTpcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShkZXYsIG5wKTtcbmRyaXZlcnMvb2YvcGxhdGZvcm0uYy0xMzAtXHRkZXYtXHUwMDNlZGV2LnBhcmVudCA9IHBhcmVudCA/IDogXHUwMDI2cGxhdGZvcm1fYnVzO1xuLS1cbmRyaXZlcnMvcG1kb21haW4vaW14L2dwYy5jPTQwMj1zdGF0aWMgaW50IGlteF9ncGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL3BtZG9tYWluL2lteC9ncGMuYy00ODktXHRcdFx0cGRfcGRldi1cdTAwM2VkZXYucGFyZW50ID0gXHUwMDI2cGRldi1cdTAwM2VkZXY7XG5kcml2ZXJzL3BtZG9tYWluL2lteC9ncGMuYzo0OTA6XHRcdFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHBkX3BkZXYsIG5wKTtcbmRyaXZlcnMvcG1kb21haW4vaW14L2dwYy5jLTQ5MS1cbi0tXG5kcml2ZXJzL3Jlc2V0L3Jlc2V0LXJ6ZzJsLXVzYnBoeS1jdHJsLmM9MTg5PXN0YXRpYyBpbnQgcnpnMmxfdXNicGh5X2N0cmxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL3Jlc2V0L3Jlc2V0LXJ6ZzJsLXVzYnBoeS1jdHJsLmMtMjUxLVxuZHJpdmVycy9yZXNldC9yZXNldC1yemcybC11c2JwaHktY3RybC5jOjI1MjpcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2Rldih2ZGV2LCBkZXYpO1xuZHJpdmVycy9yZXNldC9yZXNldC1yemcybC11c2JwaHktY3RybC5jLTI1My1cdGVycm9yID0gcGxhdGZvcm1fZGV2aWNlX2FkZCh2ZGV2KTtcbi0tXG5kcml2ZXJzL3NsaW1idXMvcWNvbS1uZ2QtY3RybC5jPTE1MDg9c3RhdGljIGludCBvZl9xY29tX3NsaW1fbmdkX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKnBhcmVudCxcbi0tXG5kcml2ZXJzL3NsaW1idXMvcWNvbS1uZ2QtY3RybC5jLTE1NDEtXHRcdH1cbmRyaXZlcnMvc2xpbWJ1cy9xY29tLW5nZC1jdHJsLmM6MTU0MjpcdFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKG5nZC1cdTAwM2VwZGV2LCBub2RlKTtcbmRyaXZlcnMvc2xpbWJ1cy9xY29tLW5nZC1jdHJsLmMtMTU0My1cdFx0Y3RybC1cdTAwM2VuZ2QgPSBuZ2Q7XG4tLVxuZHJpdmVycy91c2IvY2hpcGlkZWEvY29yZS5jPTg2MD1zdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpjaV9oZHJjX2FkZF9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvdXNiL2NoaXBpZGVhL2NvcmUuYy04ODEtXHRwZGV2LVx1MDAzZWRldi5wYXJlbnQgPSBkZXY7XG5kcml2ZXJzL3VzYi9jaGlwaWRlYS9jb3JlLmM6ODgyOlx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHBkZXYsIGRldik7XG5kcml2ZXJzL3VzYi9jaGlwaWRlYS9jb3JlLmMtODgzLVxuLS1cbmRyaXZlcnMvdXNiL211c2Ivano0NzQwLmM9MjM1PXN0YXRpYyBpbnQgano0NzQwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuYy0yNzUtXHRtdXNiLVx1MDAzZWRldi5jb2hlcmVudF9kbWFfbWFza1x0PSBETUFfQklUX01BU0soMzIpO1xuZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuYzoyNzY6XHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYobXVzYiwgZGV2KTtcbmRyaXZlcnMvdXNiL211c2Ivano0NzQwLmMtMjc3LVxuLS1cbmluY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmg9MjY1PWV4dGVybiBpbnQgcGxhdGZvcm1fZGV2aWNlX2FkZF9kYXRhKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oLTI2Ni1cdFx0XHRcdCAgICBjb25zdCB2b2lkICpkYXRhLCBzaXplX3Qgc2l6ZSk7XG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oOjI2Nzp2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaC0yNjgtXHRcdFx0XHQgc3RydWN0IGRldmljZV9ub2RlICpucCk7XG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oPTI2OT12b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oLTI3MC1cdFx0XHRcdHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpO1xuaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaDoyNzE6dm9pZCBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbmluY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmgtMjcyLVx0XHRcdFx0XHQgIGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldjIpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDExNjUzCgkJCQkJCQlvdXRwdXQ6IDE0NAoJCQkJCQkJdGhvdWdodHM6IDE5MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIFRoZXNlIFBsYXRmb3JtIERldmljZSBDaGFuZ2VzKioKCk9rYXksIHNvIEkmIzM5O3ZlIHJldmlld2VkIHRoZXNlIGNoYW5nZXMsIGFuZCBpdCBsb29rcyBsaWtlIHdlIGhhdmUgYSBjb21wbGV0ZSBhbmQgZnVuY3Rpb25hbCBpbXBsZW1lbnRhdGlvbiBoZXJlLCB3aXRoIGltcGFjdHMgb24gaG93IHBsYXRmb3JtIGRldmljZXMgYXJlIGNyZWF0ZWQgYW5kIGRlc3Ryb3llZC4gTXkgZXZhbHVhdGlvbiBpcyB0aGF0IHRoaXMgKndhcnJhbnRzKiBhICYjMzQ7V29ydGhGdXp6aW5nPXRydWUmIzM0OyBmbGFnLiBJJiMzOTttIGdvaW5nIHRvIGZvY3VzIHRoZSBmdXp6aW5nIGVmZm9ydHMgc3BlY2lmaWNhbGx5IG9uIHRoZXNlIGtleSBmdW5jdGlvbnM6IGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVgLCBgcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVgLCBgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2YCwgYW5kIGBwbGF0Zm9ybV9kZXZpY2VfcmVsZWFzZWAuCgpUaGUgYmVhdXR5IG9mIHRoaXMgaXMgdGhhdCBubyBzcGVjaWZpYyBjb25maWcgdHdlYWtpbmcgaXMgbmVlZGVkLiBUaGUgYGRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jYCBmaWxlIGlzIGNvbXBpbGVkIHVuY29uZGl0aW9uYWxseSwgd2hpY2ggc2ltcGxpZmllcyB0aGUgc2V0dXAuIFNvLCBJ4oCZbGwgbGVhdmUgdGhlIGBFbmFibGVDb25maWdzYCBhcnJheSBhcyBlbXB0eS4KCk15IHJlYXNvbmluZz8gV2VsbCwgdGhlc2UgcGF0Y2hlcyBpbnRyb2R1Y2UgKm5ldyogaGVscGVyIGZ1bmN0aW9ucyBmb3IgZWxlZ2FudGx5IGFzc2lnbmluZyBib3RoIGBvZl9ub2RlYCBhbmQgYGZ3bm9kZWAgdG8gb3VyIHBsYXRmb3JtIGRldmljZXMuIENyaXRpY2FsbHksIHRoZXNlIGZ1bmN0aW9ucyBoYW5kbGUgcmVmZXJlbmNlIGNvdW50aW5nIGludGVybmFsbHkg4oCTIGEgZGV0YWlsIHRoYXQmIzM5O3MgZXNzZW50aWFsIGZvciBwcmV2ZW50aW5nIG1lbW9yeSBsZWFrcy4gV2UgYWxzbyBoYXZlIGFuIHVwZGF0ZSB0byBgcGxhdGZvcm1fZGV2aWNlX3JlbGVhc2VgIHRoYXQgYXBwZWFycyB0byBjb3JyZWN0bHkgcmVsZWFzZSB0aGUgYGZ3bm9kZWAgcmVmZXJlbmNlLiBUaGVzZSBhcmUgZnVuZGFtZW50YWwgY2hhbmdlcyB0byB0aGUgZGV2aWNlIG1vZGVsLiBBbnkgYnVnIGhlcmXigJRlc3BlY2lhbGx5IGluIHRoZSByZWZlcmVuY2UgY291bnRpbmfigJRjb3VsZCBsZWFkIHRvIG5hc3R5IG1lbW9yeSBsZWFrcyBvciwgZXZlbiB3b3JzZSwgdXNlLWFmdGVyLWZyZWUgY29uZGl0aW9ucy4gV2UgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUgdGhhdCB0aGlzIGNvZGUgaXMgcm9jayBzb2xpZC4gVGhlcmVmb3JlLCB0aG9yb3VnaCBmdXp6aW5nIGlzIGRlZmluaXRlbHkgdGhlIHJpZ2h0IGFwcHJvYWNoIGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZSYjMzQ7LAogICAgJiMzNDtwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZSYjMzQ7LAogICAgJiMzNDtwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYmIzM0OywKICAgICYjMzQ7cGxhdGZvcm1fZGV2aWNlX3JlbGVhc2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBuZXcgaGVscGVyIGZ1bmN0aW9ucyBmb3IgYXNzaWduaW5nIG9mX25vZGUgYW5kIGZ3bm9kZSB0byBwbGF0Zm9ybSBkZXZpY2VzLCB3aGljaCBpbnRlcm5hbGx5IG1hbmFnZSByZWZlcmVuY2UgY291bnRpbmcuIEl0IGFsc28gdXBkYXRlcyBwbGF0Zm9ybV9kZXZpY2VfcmVsZWFzZSB0byBwcm9wZXJseSByZWxlYXNlIHRoZSBmd25vZGUgcmVmZXJlbmNlLiBUaGVzZSBhcmUgY29yZSBkZXZpY2UgbW9kZWwgY2hhbmdlcyB0aGF0IGNvdWxkIGxlYWQgdG8gbWVtb3J5IGxlYWtzIG9yIHVzZS1hZnRlci1mcmVlIGlmIHJlZmVyZW5jZSBjb3VudGluZyBpcyBpbmNvcnJlY3QuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlJiMzNDssCiAgICAmIzM0O3BsYXRmb3JtX2RldmljZV9zZXRfZndub2RlJiMzNDssCiAgICAmIzM0O3BsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldiYjMzQ7LAogICAgJiMzNDtwbGF0Zm9ybV9kZXZpY2VfcmVsZWFzZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBoZWxwZXIgZnVuY3Rpb25zIGZvciBhc3NpZ25pbmcgb2Zfbm9kZSBhbmQgZndub2RlIHRvIHBsYXRmb3JtIGRldmljZXMsIHdoaWNoIGludGVybmFsbHkgbWFuYWdlIHJlZmVyZW5jZSBjb3VudGluZy4gSXQgYWxzbyB1cGRhdGVzIHBsYXRmb3JtX2RldmljZV9yZWxlYXNlIHRvIHByb3Blcmx5IHJlbGVhc2UgdGhlIGZ3bm9kZSByZWZlcmVuY2UuIFRoZXNlIGFyZSBjb3JlIGRldmljZSBtb2RlbCBjaGFuZ2VzIHRoYXQgY291bGQgbGVhZCB0byBtZW1vcnkgbGVha3Mgb3IgdXNlLWFmdGVyLWZyZWUgaWYgcmVmZXJlbmNlIGNvdW50aW5nIGlzIGluY29ycmVjdC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjI2OjAxLjQ4NzYwNjc5NloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQwNjgyMTYyMjQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZVwiLFxuICAgIFwicGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVcIixcbiAgICBcInBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldlwiLFxuICAgIFwicGxhdGZvcm1fZGV2aWNlX3JlbGVhc2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBoZWxwZXIgZnVuY3Rpb25zIGZvciBhc3NpZ25pbmcgb2Zfbm9kZSBhbmQgZndub2RlIHRvIHBsYXRmb3JtIGRldmljZXMsIHdoaWNoIGludGVybmFsbHkgbWFuYWdlIHJlZmVyZW5jZSBjb3VudGluZy4gSXQgYWxzbyB1cGRhdGVzIHBsYXRmb3JtX2RldmljZV9yZWxlYXNlIHRvIHByb3Blcmx5IHJlbGVhc2UgdGhlIGZ3bm9kZSByZWZlcmVuY2UuIFRoZXNlIGFyZSBjb3JlIGRldmljZSBtb2RlbCBjaGFuZ2VzIHRoYXQgY291bGQgbGVhZCB0byBtZW1vcnkgbGVha3Mgb3IgdXNlLWFmdGVyLWZyZWUgaWYgcmVmZXJlbmNlIGNvdW50aW5nIGlzIGluY29ycmVjdC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MjY6MDEuNDg3NjEzMzQ2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1Mjk2MTc1NzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAwYmQ1ZDQwODAxMDljNjUxYTllNDVlNWU2NjYzYTEzMjNkY2Q1YTA4XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVuIDI5IDA5OjI2OjAwIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJtYWMvbG93X2kyYy5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm1hYy9sb3dfaTJjLmNcXG5pbmRleCBkYTcyYTMwYWI4NjU3ZS4uYTE3NWEzMmEyMjJiYWIgMTAwNjQ0XFxuLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm1hYy9sb3dfaTJjLmNcXG4rKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuY1xcbkBAIC0xNDcxLDcgKzE0NzEsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBwbWFjX2kyY19jcmVhdGVfcGxhdGZvcm1fZGV2aWNlcyh2b2lkKVxcbiBcXHRcXHRpZiAoYnVzLVxcdTAwM2VwbGF0Zm9ybV9kZXYgPT0gTlVMTClcXG4gXFx0XFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuIFxcdFxcdGJ1cy1cXHUwMDNlcGxhdGZvcm1fZGV2LVxcdTAwM2VkZXYucGxhdGZvcm1fZGF0YSA9IGJ1cztcXG4tXFx0XFx0YnVzLVxcdTAwM2VwbGF0Zm9ybV9kZXYtXFx1MDAzZWRldi5vZl9ub2RlID0gYnVzLVxcdTAwM2VidXNub2RlO1xcbitcXHRcXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUoYnVzLVxcdTAwM2VwbGF0Zm9ybV9kZXYsIGJ1cy1cXHUwMDNlYnVzbm9kZSk7XFxuIFxcdFxcdHBsYXRmb3JtX2RldmljZV9hZGQoYnVzLVxcdTAwM2VwbGF0Zm9ybV9kZXYpO1xcbiBcXHR9XFxuIFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYyBiL2RyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jXFxuaW5kZXggZmI5MTIwYjBiY2ZlMGUuLmJiNWY1YmRkZDA0N2Q0IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jXFxuKysrIGIvZHJpdmVycy9iYXNlL3BsYXRmb3JtLmNcXG5AQCAtNTk5LDcgKzU5OSw3IEBAIHN0YXRpYyB2b2lkIHBsYXRmb3JtX2RldmljZV9yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldilcXG4gXFx0c3RydWN0IHBsYXRmb3JtX29iamVjdCAqcGEgPSBjb250YWluZXJfb2YoZGV2LCBzdHJ1Y3QgcGxhdGZvcm1fb2JqZWN0LFxcbiBcXHRcXHRcXHRcXHRcXHRcXHQgIHBkZXYuZGV2KTtcXG4gXFxuLVxcdG9mX25vZGVfcHV0KHBhLVxcdTAwM2VwZGV2LmRldi5vZl9ub2RlKTtcXG4rXFx0Zndub2RlX2hhbmRsZV9wdXQocGEtXFx1MDAzZXBkZXYuZGV2LmZ3bm9kZSk7XFxuIFxcdGtmcmVlKHBhLVxcdTAwM2VwZGV2LmRldi5wbGF0Zm9ybV9kYXRhKTtcXG4gXFx0a2ZyZWUocGEtXFx1MDAzZXBkZXYubWZkX2NlbGwpO1xcbiBcXHRrZnJlZShwYS1cXHUwMDNlcGRldi5yZXNvdXJjZSk7XFxuQEAgLTY5Myw2ICs2OTMsNTYgQEAgaW50IHBsYXRmb3JtX2RldmljZV9hZGRfZGF0YShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBjb25zdCB2b2lkICpkYXRhLFxcbiB9XFxuIEVYUE9SVF9TWU1CT0xfR1BMKHBsYXRmb3JtX2RldmljZV9hZGRfZGF0YSk7XFxuIFxcbisvKipcXG4rICogcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlIC0gYXNzaWduIGFuIE9GIG5vZGUgdG8gZGV2aWNlXFxuKyAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2UgdG8gYWRkIHRoZSBub2RlIGZvclxcbisgKiBAbnA6IG5ldyBkZXZpY2Ugbm9kZVxcbisgKlxcbisgKiBBc3NpZ24gYW4gT0Ygbm9kZSB0byB0aGlzIHBsYXRmb3JtIGRldmljZS4gSW50ZXJuYWxseSBrZWVwIHRyYWNrIG9mIHRoZVxcbisgKiByZWZlcmVuY2UgY291bnQuIERldmljZXMgY3JlYXRlZCB3aXRoIHBsYXRmb3JtX2RldmljZV9hbGxvYygpIG11c3QgdXNlIHRoaXNcXG4rICogZnVuY3Rpb24gaW5zdGVhZCBvZiBhc3NpZ25pbmcgdGhlIG5vZGUgbWFudWFsbHkuXFxuKyAqL1xcbit2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbitcXHRcXHRcXHRcXHQgc3RydWN0IGRldmljZV9ub2RlICpucClcXG4re1xcbitcXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZShwZGV2LCBvZl9md25vZGVfaGFuZGxlKG5wKSk7XFxuK31cXG4rRVhQT1JUX1NZTUJPTF9HUEwocGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKTtcXG4rXFxuKy8qKlxcbisgKiBwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZSAtIGFzc2lnbiBhIGZpcm13YXJlIG5vZGUgdG8gZGV2aWNlXFxuKyAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2UgdG8gc2V0IHRoZSBub2RlIGZvclxcbisgKiBAZndub2RlOiBuZXcgZmlybXdhcmUgbm9kZVxcbisgKlxcbisgKiBBc3NpZ24gYSBmaXJtd2FyZSBub2RlIHRvIHRoaXMgcGxhdGZvcm0gZGV2aWNlLiBJbnRlcm5hbGx5IGtlZXAgdHJhY2sgb2YgdGhlXFxuKyAqIHJlZmVyZW5jZSBjb3VudC4gRGV2aWNlcyBjcmVhdGVkIHdpdGggcGxhdGZvcm1fZGV2aWNlX2FsbG9jKCkgbXVzdCB1c2UgdGhpc1xcbisgKiBmdW5jdGlvbiBpbnN0ZWFkIG9mIGFzc2lnbmluZyB0aGUgbm9kZSBtYW51YWxseS5cXG4rICovXFxuK3ZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG4rXFx0XFx0XFx0XFx0c3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSlcXG4re1xcbitcXHRmd25vZGVfaGFuZGxlX3B1dChwZGV2LVxcdTAwM2VkZXYuZndub2RlKTtcXG4rXFx0cGRldi1cXHUwMDNlZGV2LmZ3bm9kZSA9IGZ3bm9kZV9oYW5kbGVfZ2V0KGZ3bm9kZSk7XFxuK1xcdHBkZXYtXFx1MDAzZWRldi5vZl9ub2RlID0gdG9fb2Zfbm9kZShmd25vZGUpO1xcbit9XFxuK0VYUE9SVF9TWU1CT0xfR1BMKHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKTtcXG4rXFxuKy8qKlxcbisgKiBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYgLSByZXVzZSBPRiBub2RlIG9mIGFub3RoZXIgZGV2aWNlXFxuKyAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2UgdG8gc2V0IHRoZSBub2RlIGZvclxcbisgKiBAZGV2MjogZGV2aWNlIHdob3NlIE9GIG5vZGUgdG8gcmV1c2VcXG4rICpcXG4rICogUmV1c2VzIHRoZSBPRiBub2RlIG9mIGFub3RoZXIgZGV2aWNlIGluIHRoaXMgcGxhdGZvcm0gZGV2aWNlIHdoaWxlXFxuKyAqIGludGVybmFsbHkga2VlcGluZyB0cmFjayBvZiByZWZlcmVuY2UgY291bnRpbmcuXFxuKyAqL1xcbit2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldihzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbitcXHRcXHRcXHRcXHRcXHQgIGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldjIpXFxuK3tcXG4rXFx0ZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIGRldjIpO1xcbitcXHRwZGV2LVxcdTAwM2VkZXYuZndub2RlID0gb2ZfZndub2RlX2hhbmRsZShwZGV2LVxcdTAwM2VkZXYub2Zfbm9kZSk7XFxuK31cXG4rRVhQT1JUX1NZTUJPTF9HUEwocGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KTtcXG4rXFxuIC8qKlxcbiAgKiBwbGF0Zm9ybV9kZXZpY2VfYWRkIC0gYWRkIGEgcGxhdGZvcm0gZGV2aWNlIHRvIGRldmljZSBoaWVyYXJjaHlcXG4gICogQHBkZXY6IHBsYXRmb3JtIGRldmljZSB3ZSdyZSBhZGRpbmdcXG5AQCAtODY4LDggKzkxOCw4IEBAIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9mdWxsKGNvbnN0IHN0cnVjdCBwbGF0Zm9ybV9kZXZpXFxuIFxcdFxcdHJldHVybiBFUlJfUFRSKC1FTk9NRU0pO1xcbiBcXG4gXFx0cGRldi1cXHUwMDNlZGV2LnBhcmVudCA9IHBkZXZpbmZvLVxcdTAwM2VwYXJlbnQ7XFxuLVxcdHBkZXYtXFx1MDAzZWRldi5md25vZGUgPSBwZGV2aW5mby1cXHUwMDNlZndub2RlO1xcbi1cXHRwZGV2LVxcdTAwM2VkZXYub2Zfbm9kZSA9IG9mX25vZGVfZ2V0KHRvX29mX25vZGUocGRldi1cXHUwMDNlZGV2LmZ3bm9kZSkpO1xcbitcXHRwZGV2LVxcdTAwM2VkZXYuZndub2RlID0gZndub2RlX2hhbmRsZV9nZXQocGRldmluZm8tXFx1MDAzZWZ3bm9kZSk7XFxuK1xcdHBkZXYtXFx1MDAzZWRldi5vZl9ub2RlID0gdG9fb2Zfbm9kZShwZGV2LVxcdTAwM2VkZXYuZndub2RlKTtcXG4gXFx0ZGV2X2Fzc2lnbl9vZl9ub2RlX3JldXNlZChcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBwZGV2aW5mby1cXHUwMDNlb2Zfbm9kZV9yZXVzZWQpO1xcbiBcXG4gXFx0aWYgKHBkZXZpbmZvLVxcdTAwM2VkbWFfbWFzaykge1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmMgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmNcXG5pbmRleCA3MDY3ODM4NjNkMDdkNi4uYWY0ZWJkOTNhZDhlNjggMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2kyYy5jXFxuKysrIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2kyYy5jXFxuQEAgLTEyMyw3ICsxMjMsNyBAQCBzdGF0aWMgaW50IHhlX2kyY19yZWdpc3Rlcl9hZGFwdGVyKHN0cnVjdCB4ZV9pMmMgKmkyYylcXG4gXFx0fVxcbiBcXG4gXFx0cGRldi1cXHUwMDNlZGV2LnBhcmVudCA9IGkyYy1cXHUwMDNlZHJtX2RldjtcXG4tXFx0cGRldi1cXHUwMDNlZGV2LmZ3bm9kZSA9IGZ3bm9kZTtcXG4rXFx0cGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUocGRldiwgZndub2RlKTtcXG4gXFx0aTJjLVxcdTAwM2VhZGFwdGVyX25vZGUgPSBmd25vZGU7XFxuIFxcdGkyYy1cXHUwMDNlcGRldiA9IHBkZXY7XFxuIFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXB4YS1wY2kuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcHhhLXBjaS5jXFxuaW5kZXggZGJkNTQyMzAwZjgwMDQuLjkyYTA2NDdmMDhjNjlmIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcHhhLXBjaS5jXFxuKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1weGEtcGNpLmNcXG5AQCAtNzYsNyArNzYsOCBAQCBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqYWRkX2kyY19kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IGJhcilcXG4gXFx0XFx0Z290byBvdXQ7XFxuIFxcdH1cXG4gXFx0cGRldi1cXHUwMDNlZGV2LnBhcmVudCA9IFxcdTAwMjZkZXYtXFx1MDAzZWRldjtcXG4tXFx0cGRldi1cXHUwMDNlZGV2Lm9mX25vZGUgPSBjaGlsZDtcXG4rXFxuK1xcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwZGV2LCBjaGlsZCk7XFxuIFxcbiBcXHRyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkX3Jlc291cmNlcyhwZGV2LCByZXMsIEFSUkFZX1NJWkUocmVzKSk7XFxuIFxcdGlmIChyZXQpXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvZnNsX3BhbXUuYyBiL2RyaXZlcnMvaW9tbXUvZnNsX3BhbXUuY1xcbmluZGV4IDI1YWE0NzdhOTVhOTVjLi4wMTI4MzlmYTBkOGEyNyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL2lvbW11L2ZzbF9wYW11LmNcXG4rKysgYi9kcml2ZXJzL2lvbW11L2ZzbF9wYW11LmNcXG5AQCAtOTczLDcgKzk3Myw4IEBAIHN0YXRpYyBfX2luaXQgaW50IGZzbF9wYW11X2luaXQodm9pZClcXG4gXFx0XFx0cmV0ID0gLUVOT01FTTtcXG4gXFx0XFx0Z290byBlcnJvcl9kZXZpY2VfYWxsb2M7XFxuIFxcdH1cXG4tXFx0cGRldi1cXHUwMDNlZGV2Lm9mX25vZGUgPSBvZl9ub2RlX2dldChucCk7XFxuK1xcbitcXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUocGRldiwgbnApO1xcbiBcXG4gXFx0cmV0ID0gcGFtdV9kb21haW5faW5pdCgpO1xcbiBcXHRpZiAocmV0KVxcbkBAIC05ODUsMTIgKzk4NiwxMCBAQCBzdGF0aWMgX19pbml0IGludCBmc2xfcGFtdV9pbml0KHZvaWQpXFxuIFxcdFxcdGdvdG8gZXJyb3JfZGV2aWNlX2FkZDtcXG4gXFx0fVxcbiBcXG4rXFx0b2Zfbm9kZV9wdXQobnApO1xcbiBcXHRyZXR1cm4gMDtcXG4gXFxuIGVycm9yX2RldmljZV9hZGQ6XFxuLVxcdG9mX25vZGVfcHV0KHBkZXYtXFx1MDAzZWRldi5vZl9ub2RlKTtcXG4tXFx0cGRldi1cXHUwMDNlZGV2Lm9mX25vZGUgPSBOVUxMO1xcbi1cXG4gXFx0cGxhdGZvcm1fZGV2aWNlX3B1dChwZGV2KTtcXG4gXFxuIGVycm9yX2RldmljZV9hbGxvYzpcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvdHBzNjU4NnguYyBiL2RyaXZlcnMvbWZkL3RwczY1ODZ4LmNcXG5pbmRleCBmNWY4MDU0NDY2MDMzMS4uM2NmZDJmMDJiNjJmM2MgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9tZmQvdHBzNjU4NnguY1xcbisrKyBiL2RyaXZlcnMvbWZkL3RwczY1ODZ4LmNcXG5AQCAtMzk3LDcgKzM5Nyw3IEBAIHN0YXRpYyBpbnQgdHBzNjU4NnhfYWRkX3N1YmRldnMoc3RydWN0IHRwczY1ODZ4ICp0cHM2NTg2eCxcXG4gXFxuIFxcdFxcdHBkZXYtXFx1MDAzZWRldi5wYXJlbnQgPSB0cHM2NTg2eC1cXHUwMDNlZGV2O1xcbiBcXHRcXHRwZGV2LVxcdTAwM2VkZXYucGxhdGZvcm1fZGF0YSA9IHN1YmRldi1cXHUwMDNlcGxhdGZvcm1fZGF0YTtcXG4tXFx0XFx0cGRldi1cXHUwMDNlZGV2Lm9mX25vZGUgPSBvZl9ub2RlX2dldChzdWJkZXYtXFx1MDAzZW9mX25vZGUpO1xcbitcXHRcXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUocGRldiwgc3ViZGV2LVxcdTAwM2VvZl9ub2RlKTtcXG4gXFxuIFxcdFxcdHJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQocGRldik7XFxuIFxcdFxcdGlmIChyZXQpIHtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuY1xcbmluZGV4IGE0ZTBkNWE2ODI2ODc1Li40NTFiMjNhMDM5Y2ViYiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbW1paS5jXFxuQEAgLTQ5MCwxMCArNDkwLDE0IEBAIHN0YXRpYyBpbnQgYmNtZ2VuZXRfbWlpX3JlZ2lzdGVyKHN0cnVjdCBiY21nZW5ldF9wcml2ICpwcml2KVxcbiBcXHQvKiBSZXRhaW4gdGhpcyBwbGF0Zm9ybV9kZXZpY2UgcG9pbnRlciBmb3IgbGF0ZXIgY2xlYW51cCAqL1xcbiBcXHRwcml2LVxcdTAwM2VtaWlfcGRldiA9IHBwZGV2O1xcbiBcXHRwcGRldi1cXHUwMDNlZGV2LnBhcmVudCA9IFxcdTAwMjZwZGV2LVxcdTAwM2VkZXY7XFxuLVxcdGlmIChkbilcXG4tXFx0XFx0cHBkZXYtXFx1MDAzZWRldi5vZl9ub2RlID0gYmNtZ2VuZXRfbWlpX29mX2ZpbmRfbWRpbyhwcml2KTtcXG4tXFx0ZWxzZVxcbitcXG4rXFx0aWYgKGRuKSB7XFxuK1xcdFxcdHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgX19mcmVlKGRldmljZV9ub2RlKSA9IGJjbWdlbmV0X21paV9vZl9maW5kX21kaW8ocHJpdik7XFxuK1xcbitcXHRcXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUocHBkZXYsIG5wKTtcXG4rXFx0fSBlbHNlIHtcXG4gXFx0XFx0cHBkLnBoeV9tYXNrID0gfjA7XFxuK1xcdH1cXG4gXFxuIFxcdHJldCA9IHBsYXRmb3JtX2RldmljZV9hZGRfcmVzb3VyY2VzKHBwZGV2LCBcXHUwMDI2cmVzLCAxKTtcXG4gXFx0aWYgKHJldClcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdjY0M3h4X2V0aC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdjY0M3h4X2V0aC5jXFxuaW5kZXggMTg4MTU4M2JlNWNlMmUuLjljYWExZTQ3YzE3NGM5IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXY2NDN4eF9ldGguY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXY2NDN4eF9ldGguY1xcbkBAIC0yNzgwLDcgKzI3ODAsNyBAQCBzdGF0aWMgaW50IG12NjQzeHhfZXRoX3NoYXJlZF9vZl9hZGRfcG9ydChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbiBcXHRcXHRnb3RvIHB1dF9lcnI7XFxuIFxcdH1cXG4gXFx0cHBkZXYtXFx1MDAzZWRldi5jb2hlcmVudF9kbWFfbWFzayA9IERNQV9CSVRfTUFTSygzMik7XFxuLVxcdHBwZGV2LVxcdTAwM2VkZXYub2Zfbm9kZSA9IG9mX25vZGVfZ2V0KHBucCk7XFxuK1xcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwcGRldiwgcG5wKTtcXG4gXFxuIFxcdHJldCA9IHBsYXRmb3JtX2RldmljZV9hZGRfcmVzb3VyY2VzKHBwZGV2LCBcXHUwMDI2cmVzLCAxKTtcXG4gXFx0aWYgKHJldClcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9vZi9wbGF0Zm9ybS5jIGIvZHJpdmVycy9vZi9wbGF0Zm9ybS5jXFxuaW5kZXggNTNiY2E4YzZmNzgxMGMuLjhiMWU3NjQwNzc4MjUzIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvb2YvcGxhdGZvcm0uY1xcbisrKyBiL2RyaXZlcnMvb2YvcGxhdGZvcm0uY1xcbkBAIC0xMjYsNyArMTI2LDcgQEAgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqb2ZfZGV2aWNlX2FsbG9jKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsXFxuIFxcdH1cXG4gXFxuIFxcdC8qIHNldHVwIGdlbmVyaWMgZGV2aWNlIGluZm8gKi9cXG4tXFx0ZGV2aWNlX3NldF9ub2RlKFxcdTAwMjZkZXYtXFx1MDAzZWRldiwgb2ZfZndub2RlX2hhbmRsZShvZl9ub2RlX2dldChucCkpKTtcXG4rXFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKGRldiwgbnApO1xcbiBcXHRkZXYtXFx1MDAzZWRldi5wYXJlbnQgPSBwYXJlbnQgPyA6IFxcdTAwMjZwbGF0Zm9ybV9idXM7XFxuIFxcbiBcXHRpZiAoYnVzX2lkKVxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL3N1cmZhY2Uvc3VyZmFjZV9ncGUuYyBiL2RyaXZlcnMvcGxhdGZvcm0vc3VyZmFjZS9zdXJmYWNlX2dwZS5jXFxuaW5kZXggYjM1OTQxMzkwM2IxM2MuLjQwODk2YTg1NDRiMGE0IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvcGxhdGZvcm0vc3VyZmFjZS9zdXJmYWNlX2dwZS5jXFxuKysrIGIvZHJpdmVycy9wbGF0Zm9ybS9zdXJmYWNlL3N1cmZhY2VfZ3BlLmNcXG5AQCAtMzE3LDcgKzMxNyw3IEBAIHN0YXRpYyBpbnQgX19pbml0IHN1cmZhY2VfZ3BlX2luaXQodm9pZClcXG4gXFx0XFx0Z290byBlcnJfYWxsb2M7XFxuIFxcdH1cXG4gXFxuLVxcdHBkZXYtXFx1MDAzZWRldi5md25vZGUgPSBmd25vZGU7XFxuK1xcdHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHBkZXYsIGZ3bm9kZSk7XFxuIFxcbiBcXHRzdGF0dXMgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKHBkZXYpO1xcbiBcXHRpZiAoc3RhdHVzKVxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3BtZG9tYWluL2lteC9ncGMuYyBiL2RyaXZlcnMvcG1kb21haW4vaW14L2dwYy5jXFxuaW5kZXggNDJlNTBjOWI0ZmI5ZmYuLmFiY2E1ZjQ0OWEyMjZmIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvcG1kb21haW4vaW14L2dwYy5jXFxuKysrIGIvZHJpdmVycy9wbWRvbWFpbi9pbXgvZ3BjLmNcXG5AQCAtNDg3LDggKzQ4Nyw3IEBAIHN0YXRpYyBpbnQgaW14X2dwY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbiBcXHRcXHRcXHRkb21haW4tXFx1MDAzZWlwZ19yYXRlX21oeiA9IGlwZ19yYXRlX21oejtcXG4gXFxuIFxcdFxcdFxcdHBkX3BkZXYtXFx1MDAzZWRldi5wYXJlbnQgPSBcXHUwMDI2cGRldi1cXHUwMDNlZGV2O1xcbi1cXHRcXHRcXHRwZF9wZGV2LVxcdTAwM2VkZXYub2Zfbm9kZSA9IG9mX25vZGVfZ2V0KG5wKTtcXG4tXFx0XFx0XFx0cGRfcGRldi1cXHUwMDNlZGV2LmZ3bm9kZSA9IG9mX2Z3bm9kZV9oYW5kbGUobnApO1xcbitcXHRcXHRcXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUocGRfcGRldiwgbnApO1xcbiBcXG4gXFx0XFx0XFx0cmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChwZF9wZGV2KTtcXG4gXFx0XFx0XFx0aWYgKHJldCkge1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Jlc2V0L3Jlc2V0LXJ6ZzJsLXVzYnBoeS1jdHJsLmMgYi9kcml2ZXJzL3Jlc2V0L3Jlc2V0LXJ6ZzJsLXVzYnBoeS1jdHJsLmNcXG5pbmRleCBmZDc1ZDk2MDFhM2JmZC4uZjAwM2IzNjA2MjljOTAgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9yZXNldC9yZXNldC1yemcybC11c2JwaHktY3RybC5jXFxuKysrIGIvZHJpdmVycy9yZXNldC9yZXNldC1yemcybC11c2JwaHktY3RybC5jXFxuQEAgLTI0OSw3ICsyNDksNyBAQCBzdGF0aWMgaW50IHJ6ZzJsX3VzYnBoeV9jdHJsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuIFxcdHZkZXYtXFx1MDAzZWRldi5wYXJlbnQgPSBkZXY7XFxuIFxcdHByaXYtXFx1MDAzZXZkZXYgPSB2ZGV2O1xcbiBcXG4tXFx0ZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KFxcdTAwMjZ2ZGV2LVxcdTAwM2VkZXYsIGRldik7XFxuK1xcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2Rldih2ZGV2LCBkZXYpO1xcbiBcXHRlcnJvciA9IHBsYXRmb3JtX2RldmljZV9hZGQodmRldik7XFxuIFxcdGlmIChlcnJvcilcXG4gXFx0XFx0Z290byBlcnJfZGV2aWNlX3B1dDtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zbGltYnVzL3Fjb20tbmdkLWN0cmwuYyBiL2RyaXZlcnMvc2xpbWJ1cy9xY29tLW5nZC1jdHJsLmNcXG5pbmRleCAzMDcxZTQ2ZDAzYmVhYS4uNmU4OTQxNTcxMmNlMWEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9zbGltYnVzL3Fjb20tbmdkLWN0cmwuY1xcbisrKyBiL2RyaXZlcnMvc2xpbWJ1cy9xY29tLW5nZC1jdHJsLmNcXG5AQCAtMTUzOSw3ICsxNTM5LDcgQEAgc3RhdGljIGludCBvZl9xY29tX3NsaW1fbmdkX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKnBhcmVudCxcXG4gXFx0XFx0XFx0a2ZyZWUobmdkKTtcXG4gXFx0XFx0XFx0cmV0dXJuIHJldDtcXG4gXFx0XFx0fVxcbi1cXHRcXHRuZ2QtXFx1MDAzZXBkZXYtXFx1MDAzZWRldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQobm9kZSk7XFxuK1xcdFxcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShuZ2QtXFx1MDAzZXBkZXYsIG5vZGUpO1xcbiBcXHRcXHRjdHJsLVxcdTAwM2VuZ2QgPSBuZ2Q7XFxuIFxcbiBcXHRcXHRyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKG5nZC1cXHUwMDNlcGRldik7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NoaXBpZGVhL2NvcmUuYyBiL2RyaXZlcnMvdXNiL2NoaXBpZGVhL2NvcmUuY1xcbmluZGV4IDA3NTYzYmUwMDEzZjRkLi43ZWRjNTEyY2MzN2RjMiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3VzYi9jaGlwaWRlYS9jb3JlLmNcXG4rKysgYi9kcml2ZXJzL3VzYi9jaGlwaWRlYS9jb3JlLmNcXG5AQCAtODc5LDcgKzg3OSw3IEBAIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmNpX2hkcmNfYWRkX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYsXFxuIFxcdH1cXG4gXFxuIFxcdHBkZXYtXFx1MDAzZWRldi5wYXJlbnQgPSBkZXY7XFxuLVxcdGRldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldihcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBkZXYpO1xcbitcXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYocGRldiwgZGV2KTtcXG4gXFxuIFxcdHJldCA9IHBsYXRmb3JtX2RldmljZV9hZGRfcmVzb3VyY2VzKHBkZXYsIHJlcywgbnJlcyk7XFxuIFxcdGlmIChyZXQpXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL211c2Ivano0NzQwLmMgYi9kcml2ZXJzL3VzYi9tdXNiL2p6NDc0MC5jXFxuaW5kZXggZGY1NmM5NzI5ODZmN2MuLmM3NzBiYTU3NmYwNWI2IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvdXNiL211c2Ivano0NzQwLmNcXG4rKysgYi9kcml2ZXJzL3VzYi9tdXNiL2p6NDc0MC5jXFxuQEAgLTI3Myw3ICsyNzMsNyBAQCBzdGF0aWMgaW50IGp6NDc0MF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbiBcXHRtdXNiLVxcdTAwM2VkZXYucGFyZW50XFx0XFx0PSBkZXY7XFxuIFxcdG11c2ItXFx1MDAzZWRldi5kbWFfbWFza1xcdFxcdD0gXFx1MDAyNm11c2ItXFx1MDAzZWRldi5jb2hlcmVudF9kbWFfbWFzaztcXG4gXFx0bXVzYi1cXHUwMDNlZGV2LmNvaGVyZW50X2RtYV9tYXNrXFx0PSBETUFfQklUX01BU0soMzIpO1xcbi1cXHRkZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYoXFx1MDAyNm11c2ItXFx1MDAzZWRldiwgZGV2KTtcXG4rXFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KG11c2IsIGRldik7XFxuIFxcbiBcXHRnbHVlLVxcdTAwM2VwZGV2XFx0XFx0XFx0PSBtdXNiO1xcbiBcXHRnbHVlLVxcdTAwM2VjbGtcXHRcXHRcXHQ9IGNsaztcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaCBiL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmhcXG5pbmRleCAyNmU2YTQzMzU4ZTI1Yy4uOTRiOGQyYjQ2ZTkxM2UgMTAwNjQ0XFxuLS0tIGEvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaFxcbisrKyBiL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmhcXG5AQCAtMTksNiArMTksOCBAQCBzdHJ1Y3QgaXJxX2FmZmluaXR5O1xcbiBzdHJ1Y3QgbWZkX2NlbGw7XFxuIHN0cnVjdCBwcm9wZXJ0eV9lbnRyeTtcXG4gc3RydWN0IHBsYXRmb3JtX2RldmljZV9pZDtcXG4rc3RydWN0IGRldmljZV9ub2RlO1xcbitzdHJ1Y3QgZndub2RlX2hhbmRsZTtcXG4gXFxuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Uge1xcbiBcXHRjb25zdCBjaGFyXFx0Km5hbWU7XFxuQEAgLTI2Miw2ICsyNjQsMTIgQEAgZXh0ZXJuIGludCBwbGF0Zm9ybV9kZXZpY2VfYWRkX3Jlc291cmNlcyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbiBcXHRcXHRcXHRcXHRcXHQgdW5zaWduZWQgaW50IG51bSk7XFxuIGV4dGVybiBpbnQgcGxhdGZvcm1fZGV2aWNlX2FkZF9kYXRhKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuIFxcdFxcdFxcdFxcdCAgICBjb25zdCB2b2lkICpkYXRhLCBzaXplX3Qgc2l6ZSk7XFxuK3ZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuK1xcdFxcdFxcdFxcdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKTtcXG4rdm9pZCBwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbitcXHRcXHRcXHRcXHRzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlKTtcXG4rdm9pZCBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG4rXFx0XFx0XFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYyKTtcXG4gZXh0ZXJuIGludCBwbGF0Zm9ybV9kZXZpY2VfYWRkKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpO1xcbiBleHRlcm4gdm9pZCBwbGF0Zm9ybV9kZXZpY2VfZGVsKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpO1xcbiBleHRlcm4gdm9pZCBwbGF0Zm9ybV9kZXZpY2VfcHV0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOToyNjowMi4wMTc5NjQwODRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMTUxNzk4ODU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZVwiLFxuICAgIFwicGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVcIixcbiAgICBcInBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldlwiLFxuICAgIFwicGxhdGZvcm1fZGV2aWNlX3JlbGVhc2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBoZWxwZXIgZnVuY3Rpb25zIGZvciBhc3NpZ25pbmcgb2Zfbm9kZSBhbmQgZndub2RlIHRvIHBsYXRmb3JtIGRldmljZXMsIHdoaWNoIGludGVybmFsbHkgbWFuYWdlIHJlZmVyZW5jZSBjb3VudGluZy4gSXQgYWxzbyB1cGRhdGVzIHBsYXRmb3JtX2RldmljZV9yZWxlYXNlIHRvIHByb3Blcmx5IHJlbGVhc2UgdGhlIGZ3bm9kZSByZWZlcmVuY2UuIFRoZXNlIGFyZSBjb3JlIGRldmljZSBtb2RlbCBjaGFuZ2VzIHRoYXQgY291bGQgbGVhZCB0byBtZW1vcnkgbGVha3Mgb3IgdXNlLWFmdGVyLWZyZWUgaWYgcmVmZXJlbmNlIGNvdW50aW5nIGlzIGluY29ycmVjdC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAwYmQ1ZDQwODAxMDljNjUxYTllNDVlNWU2NjYzYTEzMjNkY2Q1YTA4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdW4gMjkgMDk6MjY6MDAgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJtYWMvbG93X2kyYy5jXG5pbmRleCBkYTcyYTMwYWI4NjU3ZS4uYTE3NWEzMmEyMjJiYWIgMTAwNjQ0XG4tLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuY1xuKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm1hYy9sb3dfaTJjLmNcbkBAIC0xNDcxLDcgKzE0NzEsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBwbWFjX2kyY19jcmVhdGVfcGxhdGZvcm1fZGV2aWNlcyh2b2lkKVxuIFx0XHRpZiAoYnVzLVx1MDAzZXBsYXRmb3JtX2RldiA9PSBOVUxMKVxuIFx0XHRcdHJldHVybiAtRU5PTUVNO1xuIFx0XHRidXMtXHUwMDNlcGxhdGZvcm1fZGV2LVx1MDAzZWRldi5wbGF0Zm9ybV9kYXRhID0gYnVzO1xuLVx0XHRidXMtXHUwMDNlcGxhdGZvcm1fZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gYnVzLVx1MDAzZWJ1c25vZGU7XG4rXHRcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShidXMtXHUwMDNlcGxhdGZvcm1fZGV2LCBidXMtXHUwMDNlYnVzbm9kZSk7XG4gXHRcdHBsYXRmb3JtX2RldmljZV9hZGQoYnVzLVx1MDAzZXBsYXRmb3JtX2Rldik7XG4gXHR9XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMgYi9kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uY1xuaW5kZXggZmI5MTIwYjBiY2ZlMGUuLmJiNWY1YmRkZDA0N2Q0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9iYXNlL3BsYXRmb3JtLmNcbisrKyBiL2RyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jXG5AQCAtNTk5LDcgKzU5OSw3IEBAIHN0YXRpYyB2b2lkIHBsYXRmb3JtX2RldmljZV9yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldilcbiBcdHN0cnVjdCBwbGF0Zm9ybV9vYmplY3QgKnBhID0gY29udGFpbmVyX29mKGRldiwgc3RydWN0IHBsYXRmb3JtX29iamVjdCxcbiBcdFx0XHRcdFx0XHQgIHBkZXYuZGV2KTtcbiBcbi1cdG9mX25vZGVfcHV0KHBhLVx1MDAzZXBkZXYuZGV2Lm9mX25vZGUpO1xuK1x0Zndub2RlX2hhbmRsZV9wdXQocGEtXHUwMDNlcGRldi5kZXYuZndub2RlKTtcbiBcdGtmcmVlKHBhLVx1MDAzZXBkZXYuZGV2LnBsYXRmb3JtX2RhdGEpO1xuIFx0a2ZyZWUocGEtXHUwMDNlcGRldi5tZmRfY2VsbCk7XG4gXHRrZnJlZShwYS1cdTAwM2VwZGV2LnJlc291cmNlKTtcbkBAIC02OTMsNiArNjkzLDU2IEBAIGludCBwbGF0Zm9ybV9kZXZpY2VfYWRkX2RhdGEoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgY29uc3Qgdm9pZCAqZGF0YSxcbiB9XG4gRVhQT1JUX1NZTUJPTF9HUEwocGxhdGZvcm1fZGV2aWNlX2FkZF9kYXRhKTtcbiBcbisvKipcbisgKiBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUgLSBhc3NpZ24gYW4gT0Ygbm9kZSB0byBkZXZpY2VcbisgKiBAcGRldjogcGxhdGZvcm0gZGV2aWNlIHRvIGFkZCB0aGUgbm9kZSBmb3JcbisgKiBAbnA6IG5ldyBkZXZpY2Ugbm9kZVxuKyAqXG4rICogQXNzaWduIGFuIE9GIG5vZGUgdG8gdGhpcyBwbGF0Zm9ybSBkZXZpY2UuIEludGVybmFsbHkga2VlcCB0cmFjayBvZiB0aGVcbisgKiByZWZlcmVuY2UgY291bnQuIERldmljZXMgY3JlYXRlZCB3aXRoIHBsYXRmb3JtX2RldmljZV9hbGxvYygpIG11c3QgdXNlIHRoaXNcbisgKiBmdW5jdGlvbiBpbnN0ZWFkIG9mIGFzc2lnbmluZyB0aGUgbm9kZSBtYW51YWxseS5cbisgKi9cbit2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuK1x0XHRcdFx0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApXG4re1xuK1x0cGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUocGRldiwgb2ZfZndub2RlX2hhbmRsZShucCkpO1xuK31cbitFWFBPUlRfU1lNQk9MX0dQTChwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUpO1xuK1xuKy8qKlxuKyAqIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlIC0gYXNzaWduIGEgZmlybXdhcmUgbm9kZSB0byBkZXZpY2VcbisgKiBAcGRldjogcGxhdGZvcm0gZGV2aWNlIHRvIHNldCB0aGUgbm9kZSBmb3JcbisgKiBAZndub2RlOiBuZXcgZmlybXdhcmUgbm9kZVxuKyAqXG4rICogQXNzaWduIGEgZmlybXdhcmUgbm9kZSB0byB0aGlzIHBsYXRmb3JtIGRldmljZS4gSW50ZXJuYWxseSBrZWVwIHRyYWNrIG9mIHRoZVxuKyAqIHJlZmVyZW5jZSBjb3VudC4gRGV2aWNlcyBjcmVhdGVkIHdpdGggcGxhdGZvcm1fZGV2aWNlX2FsbG9jKCkgbXVzdCB1c2UgdGhpc1xuKyAqIGZ1bmN0aW9uIGluc3RlYWQgb2YgYXNzaWduaW5nIHRoZSBub2RlIG1hbnVhbGx5LlxuKyAqL1xuK3ZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbitcdFx0XHRcdHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpXG4re1xuK1x0Zndub2RlX2hhbmRsZV9wdXQocGRldi1cdTAwM2VkZXYuZndub2RlKTtcbitcdHBkZXYtXHUwMDNlZGV2LmZ3bm9kZSA9IGZ3bm9kZV9oYW5kbGVfZ2V0KGZ3bm9kZSk7XG4rXHRwZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gdG9fb2Zfbm9kZShmd25vZGUpO1xuK31cbitFWFBPUlRfU1lNQk9MX0dQTChwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZSk7XG4rXG4rLyoqXG4rICogcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2IC0gcmV1c2UgT0Ygbm9kZSBvZiBhbm90aGVyIGRldmljZVxuKyAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2UgdG8gc2V0IHRoZSBub2RlIGZvclxuKyAqIEBkZXYyOiBkZXZpY2Ugd2hvc2UgT0Ygbm9kZSB0byByZXVzZVxuKyAqXG4rICogUmV1c2VzIHRoZSBPRiBub2RlIG9mIGFub3RoZXIgZGV2aWNlIGluIHRoaXMgcGxhdGZvcm0gZGV2aWNlIHdoaWxlXG4rICogaW50ZXJuYWxseSBrZWVwaW5nIHRyYWNrIG9mIHJlZmVyZW5jZSBjb3VudGluZy5cbisgKi9cbit2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldihzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuK1x0XHRcdFx0XHQgIGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldjIpXG4re1xuK1x0ZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBkZXYyKTtcbitcdHBkZXYtXHUwMDNlZGV2LmZ3bm9kZSA9IG9mX2Z3bm9kZV9oYW5kbGUocGRldi1cdTAwM2VkZXYub2Zfbm9kZSk7XG4rfVxuK0VYUE9SVF9TWU1CT0xfR1BMKHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2Rldik7XG4rXG4gLyoqXG4gICogcGxhdGZvcm1fZGV2aWNlX2FkZCAtIGFkZCBhIHBsYXRmb3JtIGRldmljZSB0byBkZXZpY2UgaGllcmFyY2h5XG4gICogQHBkZXY6IHBsYXRmb3JtIGRldmljZSB3ZSdyZSBhZGRpbmdcbkBAIC04NjgsOCArOTE4LDggQEAgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyX2Z1bGwoY29uc3Qgc3RydWN0IHBsYXRmb3JtX2RldmlcbiBcdFx0cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7XG4gXG4gXHRwZGV2LVx1MDAzZWRldi5wYXJlbnQgPSBwZGV2aW5mby1cdTAwM2VwYXJlbnQ7XG4tXHRwZGV2LVx1MDAzZWRldi5md25vZGUgPSBwZGV2aW5mby1cdTAwM2Vmd25vZGU7XG4tXHRwZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQodG9fb2Zfbm9kZShwZGV2LVx1MDAzZWRldi5md25vZGUpKTtcbitcdHBkZXYtXHUwMDNlZGV2LmZ3bm9kZSA9IGZ3bm9kZV9oYW5kbGVfZ2V0KHBkZXZpbmZvLVx1MDAzZWZ3bm9kZSk7XG4rXHRwZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gdG9fb2Zfbm9kZShwZGV2LVx1MDAzZWRldi5md25vZGUpO1xuIFx0ZGV2X2Fzc2lnbl9vZl9ub2RlX3JldXNlZChcdTAwMjZwZGV2LVx1MDAzZWRldiwgcGRldmluZm8tXHUwMDNlb2Zfbm9kZV9yZXVzZWQpO1xuIFxuIFx0aWYgKHBkZXZpbmZvLVx1MDAzZWRtYV9tYXNrKSB7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2kyYy5jIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2kyYy5jXG5pbmRleCA3MDY3ODM4NjNkMDdkNi4uYWY0ZWJkOTNhZDhlNjggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmNcbisrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9pMmMuY1xuQEAgLTEyMyw3ICsxMjMsNyBAQCBzdGF0aWMgaW50IHhlX2kyY19yZWdpc3Rlcl9hZGFwdGVyKHN0cnVjdCB4ZV9pMmMgKmkyYylcbiBcdH1cbiBcbiBcdHBkZXYtXHUwMDNlZGV2LnBhcmVudCA9IGkyYy1cdTAwM2Vkcm1fZGV2O1xuLVx0cGRldi1cdTAwM2VkZXYuZndub2RlID0gZndub2RlO1xuK1x0cGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUocGRldiwgZndub2RlKTtcbiBcdGkyYy1cdTAwM2VhZGFwdGVyX25vZGUgPSBmd25vZGU7XG4gXHRpMmMtXHUwMDNlcGRldiA9IHBkZXY7XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1weGEtcGNpLmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXB4YS1wY2kuY1xuaW5kZXggZGJkNTQyMzAwZjgwMDQuLjkyYTA2NDdmMDhjNjlmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1weGEtcGNpLmNcbisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcHhhLXBjaS5jXG5AQCAtNzYsNyArNzYsOCBAQCBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqYWRkX2kyY19kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IGJhcilcbiBcdFx0Z290byBvdXQ7XG4gXHR9XG4gXHRwZGV2LVx1MDAzZWRldi5wYXJlbnQgPSBcdTAwMjZkZXYtXHUwMDNlZGV2O1xuLVx0cGRldi1cdTAwM2VkZXYub2Zfbm9kZSA9IGNoaWxkO1xuK1xuK1x0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHBkZXYsIGNoaWxkKTtcbiBcbiBcdHJldCA9IHBsYXRmb3JtX2RldmljZV9hZGRfcmVzb3VyY2VzKHBkZXYsIHJlcywgQVJSQVlfU0laRShyZXMpKTtcbiBcdGlmIChyZXQpXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9mc2xfcGFtdS5jIGIvZHJpdmVycy9pb21tdS9mc2xfcGFtdS5jXG5pbmRleCAyNWFhNDc3YTk1YTk1Yy4uMDEyODM5ZmEwZDhhMjcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2lvbW11L2ZzbF9wYW11LmNcbisrKyBiL2RyaXZlcnMvaW9tbXUvZnNsX3BhbXUuY1xuQEAgLTk3Myw3ICs5NzMsOCBAQCBzdGF0aWMgX19pbml0IGludCBmc2xfcGFtdV9pbml0KHZvaWQpXG4gXHRcdHJldCA9IC1FTk9NRU07XG4gXHRcdGdvdG8gZXJyb3JfZGV2aWNlX2FsbG9jO1xuIFx0fVxuLVx0cGRldi1cdTAwM2VkZXYub2Zfbm9kZSA9IG9mX25vZGVfZ2V0KG5wKTtcbitcbitcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwZGV2LCBucCk7XG4gXG4gXHRyZXQgPSBwYW11X2RvbWFpbl9pbml0KCk7XG4gXHRpZiAocmV0KVxuQEAgLTk4NSwxMiArOTg2LDEwIEBAIHN0YXRpYyBfX2luaXQgaW50IGZzbF9wYW11X2luaXQodm9pZClcbiBcdFx0Z290byBlcnJvcl9kZXZpY2VfYWRkO1xuIFx0fVxuIFxuK1x0b2Zfbm9kZV9wdXQobnApO1xuIFx0cmV0dXJuIDA7XG4gXG4gZXJyb3JfZGV2aWNlX2FkZDpcbi1cdG9mX25vZGVfcHV0KHBkZXYtXHUwMDNlZGV2Lm9mX25vZGUpO1xuLVx0cGRldi1cdTAwM2VkZXYub2Zfbm9kZSA9IE5VTEw7XG4tXG4gXHRwbGF0Zm9ybV9kZXZpY2VfcHV0KHBkZXYpO1xuIFxuIGVycm9yX2RldmljZV9hbGxvYzpcbmRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC90cHM2NTg2eC5jIGIvZHJpdmVycy9tZmQvdHBzNjU4NnguY1xuaW5kZXggZjVmODA1NDQ2NjAzMzEuLjNjZmQyZjAyYjYyZjNjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9tZmQvdHBzNjU4NnguY1xuKysrIGIvZHJpdmVycy9tZmQvdHBzNjU4NnguY1xuQEAgLTM5Nyw3ICszOTcsNyBAQCBzdGF0aWMgaW50IHRwczY1ODZ4X2FkZF9zdWJkZXZzKHN0cnVjdCB0cHM2NTg2eCAqdHBzNjU4NngsXG4gXG4gXHRcdHBkZXYtXHUwMDNlZGV2LnBhcmVudCA9IHRwczY1ODZ4LVx1MDAzZWRldjtcbiBcdFx0cGRldi1cdTAwM2VkZXYucGxhdGZvcm1fZGF0YSA9IHN1YmRldi1cdTAwM2VwbGF0Zm9ybV9kYXRhO1xuLVx0XHRwZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQoc3ViZGV2LVx1MDAzZW9mX25vZGUpO1xuK1x0XHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUocGRldiwgc3ViZGV2LVx1MDAzZW9mX25vZGUpO1xuIFxuIFx0XHRyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKHBkZXYpO1xuIFx0XHRpZiAocmV0KSB7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuY1xuaW5kZXggYTRlMGQ1YTY4MjY4NzUuLjQ1MWIyM2EwMzljZWJiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbW1paS5jXG5AQCAtNDkwLDEwICs0OTAsMTQgQEAgc3RhdGljIGludCBiY21nZW5ldF9taWlfcmVnaXN0ZXIoc3RydWN0IGJjbWdlbmV0X3ByaXYgKnByaXYpXG4gXHQvKiBSZXRhaW4gdGhpcyBwbGF0Zm9ybV9kZXZpY2UgcG9pbnRlciBmb3IgbGF0ZXIgY2xlYW51cCAqL1xuIFx0cHJpdi1cdTAwM2VtaWlfcGRldiA9IHBwZGV2O1xuIFx0cHBkZXYtXHUwMDNlZGV2LnBhcmVudCA9IFx1MDAyNnBkZXYtXHUwMDNlZGV2O1xuLVx0aWYgKGRuKVxuLVx0XHRwcGRldi1cdTAwM2VkZXYub2Zfbm9kZSA9IGJjbWdlbmV0X21paV9vZl9maW5kX21kaW8ocHJpdik7XG4tXHRlbHNlXG4rXG4rXHRpZiAoZG4pIHtcbitcdFx0c3RydWN0IGRldmljZV9ub2RlICpucCBfX2ZyZWUoZGV2aWNlX25vZGUpID0gYmNtZ2VuZXRfbWlpX29mX2ZpbmRfbWRpbyhwcml2KTtcbitcbitcdFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHBwZGV2LCBucCk7XG4rXHR9IGVsc2Uge1xuIFx0XHRwcGQucGh5X21hc2sgPSB+MDtcbitcdH1cbiBcbiBcdHJldCA9IHBsYXRmb3JtX2RldmljZV9hZGRfcmVzb3VyY2VzKHBwZGV2LCBcdTAwMjZyZXMsIDEpO1xuIFx0aWYgKHJldClcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212NjQzeHhfZXRoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212NjQzeHhfZXRoLmNcbmluZGV4IDE4ODE1ODNiZTVjZTJlLi45Y2FhMWU0N2MxNzRjOSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXY2NDN4eF9ldGguY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdjY0M3h4X2V0aC5jXG5AQCAtMjc4MCw3ICsyNzgwLDcgQEAgc3RhdGljIGludCBtdjY0M3h4X2V0aF9zaGFyZWRfb2ZfYWRkX3BvcnQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbiBcdFx0Z290byBwdXRfZXJyO1xuIFx0fVxuIFx0cHBkZXYtXHUwMDNlZGV2LmNvaGVyZW50X2RtYV9tYXNrID0gRE1BX0JJVF9NQVNLKDMyKTtcbi1cdHBwZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQocG5wKTtcbitcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwcGRldiwgcG5wKTtcbiBcbiBcdHJldCA9IHBsYXRmb3JtX2RldmljZV9hZGRfcmVzb3VyY2VzKHBwZGV2LCBcdTAwMjZyZXMsIDEpO1xuIFx0aWYgKHJldClcbmRpZmYgLS1naXQgYS9kcml2ZXJzL29mL3BsYXRmb3JtLmMgYi9kcml2ZXJzL29mL3BsYXRmb3JtLmNcbmluZGV4IDUzYmNhOGM2Zjc4MTBjLi44YjFlNzY0MDc3ODI1MyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvb2YvcGxhdGZvcm0uY1xuKysrIGIvZHJpdmVycy9vZi9wbGF0Zm9ybS5jXG5AQCAtMTI2LDcgKzEyNiw3IEBAIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm9mX2RldmljZV9hbGxvYyhzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLFxuIFx0fVxuIFxuIFx0Lyogc2V0dXAgZ2VuZXJpYyBkZXZpY2UgaW5mbyAqL1xuLVx0ZGV2aWNlX3NldF9ub2RlKFx1MDAyNmRldi1cdTAwM2VkZXYsIG9mX2Z3bm9kZV9oYW5kbGUob2Zfbm9kZV9nZXQobnApKSk7XG4rXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUoZGV2LCBucCk7XG4gXHRkZXYtXHUwMDNlZGV2LnBhcmVudCA9IHBhcmVudCA/IDogXHUwMDI2cGxhdGZvcm1fYnVzO1xuIFxuIFx0aWYgKGJ1c19pZClcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL3N1cmZhY2Uvc3VyZmFjZV9ncGUuYyBiL2RyaXZlcnMvcGxhdGZvcm0vc3VyZmFjZS9zdXJmYWNlX2dwZS5jXG5pbmRleCBiMzU5NDEzOTAzYjEzYy4uNDA4OTZhODU0NGIwYTQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3BsYXRmb3JtL3N1cmZhY2Uvc3VyZmFjZV9ncGUuY1xuKysrIGIvZHJpdmVycy9wbGF0Zm9ybS9zdXJmYWNlL3N1cmZhY2VfZ3BlLmNcbkBAIC0zMTcsNyArMzE3LDcgQEAgc3RhdGljIGludCBfX2luaXQgc3VyZmFjZV9ncGVfaW5pdCh2b2lkKVxuIFx0XHRnb3RvIGVycl9hbGxvYztcbiBcdH1cbiBcbi1cdHBkZXYtXHUwMDNlZGV2LmZ3bm9kZSA9IGZ3bm9kZTtcbitcdHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHBkZXYsIGZ3bm9kZSk7XG4gXG4gXHRzdGF0dXMgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKHBkZXYpO1xuIFx0aWYgKHN0YXR1cylcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3BtZG9tYWluL2lteC9ncGMuYyBiL2RyaXZlcnMvcG1kb21haW4vaW14L2dwYy5jXG5pbmRleCA0MmU1MGM5YjRmYjlmZi4uYWJjYTVmNDQ5YTIyNmYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3BtZG9tYWluL2lteC9ncGMuY1xuKysrIGIvZHJpdmVycy9wbWRvbWFpbi9pbXgvZ3BjLmNcbkBAIC00ODcsOCArNDg3LDcgQEAgc3RhdGljIGludCBpbXhfZ3BjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4gXHRcdFx0ZG9tYWluLVx1MDAzZWlwZ19yYXRlX21oeiA9IGlwZ19yYXRlX21oejtcbiBcbiBcdFx0XHRwZF9wZGV2LVx1MDAzZWRldi5wYXJlbnQgPSBcdTAwMjZwZGV2LVx1MDAzZWRldjtcbi1cdFx0XHRwZF9wZGV2LVx1MDAzZWRldi5vZl9ub2RlID0gb2Zfbm9kZV9nZXQobnApO1xuLVx0XHRcdHBkX3BkZXYtXHUwMDNlZGV2LmZ3bm9kZSA9IG9mX2Z3bm9kZV9oYW5kbGUobnApO1xuK1x0XHRcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwZF9wZGV2LCBucCk7XG4gXG4gXHRcdFx0cmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChwZF9wZGV2KTtcbiBcdFx0XHRpZiAocmV0KSB7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9yZXNldC9yZXNldC1yemcybC11c2JwaHktY3RybC5jIGIvZHJpdmVycy9yZXNldC9yZXNldC1yemcybC11c2JwaHktY3RybC5jXG5pbmRleCBmZDc1ZDk2MDFhM2JmZC4uZjAwM2IzNjA2MjljOTAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Jlc2V0L3Jlc2V0LXJ6ZzJsLXVzYnBoeS1jdHJsLmNcbisrKyBiL2RyaXZlcnMvcmVzZXQvcmVzZXQtcnpnMmwtdXNicGh5LWN0cmwuY1xuQEAgLTI0OSw3ICsyNDksNyBAQCBzdGF0aWMgaW50IHJ6ZzJsX3VzYnBoeV9jdHJsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4gXHR2ZGV2LVx1MDAzZWRldi5wYXJlbnQgPSBkZXY7XG4gXHRwcml2LVx1MDAzZXZkZXYgPSB2ZGV2O1xuIFxuLVx0ZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KFx1MDAyNnZkZXYtXHUwMDNlZGV2LCBkZXYpO1xuK1x0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHZkZXYsIGRldik7XG4gXHRlcnJvciA9IHBsYXRmb3JtX2RldmljZV9hZGQodmRldik7XG4gXHRpZiAoZXJyb3IpXG4gXHRcdGdvdG8gZXJyX2RldmljZV9wdXQ7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zbGltYnVzL3Fjb20tbmdkLWN0cmwuYyBiL2RyaXZlcnMvc2xpbWJ1cy9xY29tLW5nZC1jdHJsLmNcbmluZGV4IDMwNzFlNDZkMDNiZWFhLi42ZTg5NDE1NzEyY2UxYSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvc2xpbWJ1cy9xY29tLW5nZC1jdHJsLmNcbisrKyBiL2RyaXZlcnMvc2xpbWJ1cy9xY29tLW5nZC1jdHJsLmNcbkBAIC0xNTM5LDcgKzE1MzksNyBAQCBzdGF0aWMgaW50IG9mX3Fjb21fc2xpbV9uZ2RfcmVnaXN0ZXIoc3RydWN0IGRldmljZSAqcGFyZW50LFxuIFx0XHRcdGtmcmVlKG5nZCk7XG4gXHRcdFx0cmV0dXJuIHJldDtcbiBcdFx0fVxuLVx0XHRuZ2QtXHUwMDNlcGRldi1cdTAwM2VkZXYub2Zfbm9kZSA9IG9mX25vZGVfZ2V0KG5vZGUpO1xuK1x0XHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUobmdkLVx1MDAzZXBkZXYsIG5vZGUpO1xuIFx0XHRjdHJsLVx1MDAzZW5nZCA9IG5nZDtcbiBcbiBcdFx0cmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChuZ2QtXHUwMDNlcGRldik7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY2hpcGlkZWEvY29yZS5jIGIvZHJpdmVycy91c2IvY2hpcGlkZWEvY29yZS5jXG5pbmRleCAwNzU2M2JlMDAxM2Y0ZC4uN2VkYzUxMmNjMzdkYzIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3VzYi9jaGlwaWRlYS9jb3JlLmNcbisrKyBiL2RyaXZlcnMvdXNiL2NoaXBpZGVhL2NvcmUuY1xuQEAgLTg3OSw3ICs4NzksNyBAQCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpjaV9oZHJjX2FkZF9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2LFxuIFx0fVxuIFxuIFx0cGRldi1cdTAwM2VkZXYucGFyZW50ID0gZGV2O1xuLVx0ZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBkZXYpO1xuK1x0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHBkZXYsIGRldik7XG4gXG4gXHRyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkX3Jlc291cmNlcyhwZGV2LCByZXMsIG5yZXMpO1xuIFx0aWYgKHJldClcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9tdXNiL2p6NDc0MC5jIGIvZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuY1xuaW5kZXggZGY1NmM5NzI5ODZmN2MuLmM3NzBiYTU3NmYwNWI2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuY1xuKysrIGIvZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuY1xuQEAgLTI3Myw3ICsyNzMsNyBAQCBzdGF0aWMgaW50IGp6NDc0MF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuIFx0bXVzYi1cdTAwM2VkZXYucGFyZW50XHRcdD0gZGV2O1xuIFx0bXVzYi1cdTAwM2VkZXYuZG1hX21hc2tcdFx0PSBcdTAwMjZtdXNiLVx1MDAzZWRldi5jb2hlcmVudF9kbWFfbWFzaztcbiBcdG11c2ItXHUwMDNlZGV2LmNvaGVyZW50X2RtYV9tYXNrXHQ9IERNQV9CSVRfTUFTSygzMik7XG4tXHRkZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYoXHUwMDI2bXVzYi1cdTAwM2VkZXYsIGRldik7XG4rXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXYobXVzYiwgZGV2KTtcbiBcbiBcdGdsdWUtXHUwMDNlcGRldlx0XHRcdD0gbXVzYjtcbiBcdGdsdWUtXHUwMDNlY2xrXHRcdFx0PSBjbGs7XG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaCBiL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmhcbmluZGV4IDI2ZTZhNDMzNThlMjVjLi45NGI4ZDJiNDZlOTEzZSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmhcbisrKyBiL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmhcbkBAIC0xOSw2ICsxOSw4IEBAIHN0cnVjdCBpcnFfYWZmaW5pdHk7XG4gc3RydWN0IG1mZF9jZWxsO1xuIHN0cnVjdCBwcm9wZXJ0eV9lbnRyeTtcbiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkO1xuK3N0cnVjdCBkZXZpY2Vfbm9kZTtcbitzdHJ1Y3QgZndub2RlX2hhbmRsZTtcbiBcbiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHtcbiBcdGNvbnN0IGNoYXJcdCpuYW1lO1xuQEAgLTI2Miw2ICsyNjQsMTIgQEAgZXh0ZXJuIGludCBwbGF0Zm9ybV9kZXZpY2VfYWRkX3Jlc291cmNlcyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuIFx0XHRcdFx0XHQgdW5zaWduZWQgaW50IG51bSk7XG4gZXh0ZXJuIGludCBwbGF0Zm9ybV9kZXZpY2VfYWRkX2RhdGEoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbiBcdFx0XHRcdCAgICBjb25zdCB2b2lkICpkYXRhLCBzaXplX3Qgc2l6ZSk7XG4rdm9pZCBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbitcdFx0XHRcdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKTtcbit2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG4rXHRcdFx0XHRzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlKTtcbit2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldihzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuK1x0XHRcdFx0XHQgIGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldjIpO1xuIGV4dGVybiBpbnQgcGxhdGZvcm1fZGV2aWNlX2FkZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTtcbiBleHRlcm4gdm9pZCBwbGF0Zm9ybV9kZXZpY2VfZGVsKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpO1xuIGV4dGVybiB2b2lkIHBsYXRmb3JtX2RldmljZV9wdXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOToyNjowMi4wMTc5NjU3NDRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5NjM0MTYyNTU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgVGFyZ2V0IElkZW50aWZpY2F0aW9uOiBQbGF0Zm9ybSBEZXZpY2UgRmlybXdhcmUgTm9kZSBNYW5hZ2VtZW50KipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCBoZXJlIGludHJvZHVjaW5nIGEgZmV3IG5ldyBmdW5jdGlvbnMgaW4gYGRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jYDogYHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZWAsIGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZWAsIGFuZCBgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2YC4gVGhlc2UgYXJlIGJhc2ljYWxseSBkZXNpZ25lZCB0byBoYW5kbGUgdGhlIGFzc2lnbm1lbnQgb2YgYG9mX25vZGVgIGFuZCBgZndub2RlYCB0byBhIGBwbGF0Zm9ybV9kZXZpY2VgLCBhbmQgY3J1Y2lhbGx5LCB0aGV5IG1hbmFnZSB0aGUgYXNzb2NpYXRlZCByZWZlcmVuY2UgY291bnRpbmcgaW50ZXJuYWxseS4gVGhpcyByZWZhY3RvcmluZyBoYXMgYmVlbiBhcHBsaWVkIHRvIGEgZmV3IGRyaXZlcnMgdG8gY2xlYW4gdXAgdGhlaXIgY29kZS5cblxuTXkgaW5pdGlhbCB0aG91Z2h0PyBJcyB0aGlzIHBhdGNoIGV2ZW4gd29ydGggZnV6emluZz8gSXQgc2VlbXMgbGlrZSBtb3N0bHkgcmVmYWN0b3JpbmcsIHJpZ2h0PyBCdXQgdGhlbiBJIHNlZSB0aGF0IHRoZXNlIG5ldyBmdW5jdGlvbnMgbm93ICpoYW5kbGUgcmVmZXJlbmNlIGNvdW50aW5nKiwgd2hpY2ggaXMgYSBwb3RlbnRpYWwgbWluZWZpZWxkIGZvciBidWdzLiBMb29raW5nIGF0IHRoZSBjb2RlIGZvciBgcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVgLCBpdCBpcyBjbGVhciB0aGF0IHRoZXkgZXhwbGljaXRseSByZWxlYXNlIHRoZSBvbGQgbm9kZSBhbmQgaW5jcmVtZW50IHRoZSByZWZlcmVuY2UgY291bnQgb24gdGhlIG5ldyBub2RlLCB3aGljaCBpcyBhIGdvb2Qgc2lnbiwgYnV0IGFsc28gdGhlIHNvcnQgb2YgY2hhbmdlIHRoYXQgY291bGQgYmUgc3VidGx5IHdyb25nLiBBbmQgdGhlIGNvcnJlc3BvbmRpbmcgYHBsYXRmb3JtX2RldmljZV9yZWxlYXNlYCBub3cgaGFzIHRvIHJlbGVhc2UgYGZ3bm9kZWAgdG9vLCBtZWFuaW5nIGl0J3MgY2hhbmdlZCBzaWduaWZpY2FudGx5IGluIGhvdyBpdCBkb2VzIGl0cyBqb2IuXG5cblRoaXMgaXMgYSBjb3JlIGtlcm5lbCBjaGFuZ2UsIHJlYWxseSBkZWVwIGluIHRoZSBgZHJpdmVycy9iYXNlL3BsYXRmb3JtLmNgIGNvZGUsIGFuZCBpdCBhZmZlY3RzIGhvdyBwbGF0Zm9ybSBkZXZpY2VzLCB3aGljaCBhcmUgZXZlcnl3aGVyZSwgbWFuYWdlIHRoZWlyIGNvbm5lY3Rpb24gd2l0aCBmaXJtd2FyZSBub2Rlcy4gSXQncyBkZWZpbml0ZWx5IHJlYWNoYWJsZS4gQW5kIHNpbmNlIHdlJ3JlIHRhbGtpbmcgYWJvdXQgcmVmZXJlbmNlIGNvdW50aW5nIG9mIGBmd25vZGVgIGFuZCBgb2Zfbm9kZWAsIHdoaWNoIGFyZSBmdW5kYW1lbnRhbCBmb3IgZGV2aWNlIHRyZWUgYW5kIGZpcm13YXJlIGludGVyYWN0aW9uLCBhbnkgYnVnIGhlcmUgY291bGQgbGVhZCB0byB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVha3MuXG5cblNvIHllYWgsIHRoaXMgaXMgYSBkZWZpbml0ZSBmdXp6aW5nIHRhcmdldC5cblxuTGV0J3MgbmFpbCBkb3duIHdoaWNoIGZ1bmN0aW9ucyB0byBmb2N1cyBvbjogYHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZWAsIGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZWAsIGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVfZnJvbV9kZXZgLCBhbmQgb2YgY291cnNlIGBwbGF0Zm9ybV9kZXZpY2VfcmVsZWFzZWAsIHBsdXMgYHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9mdWxsYC5cblxuSSdsbCBjaGVjayBmb3IgYW55IHNwZWNpZmljIGtlcm5lbCBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGJlIHJlbGV2YW50LiBUaGUgY29kZSBpcyBhbHdheXMgY29tcGlsZWQsIGJ1dCBzaW5jZSB3ZSBhcmUgd29ya2luZyB3aXRoIGBvZl9ub2RlYCBhbmQgYGZ3bm9kZWAsIGBDT05GSUdfT0ZgIGNvdWxkIGJlIHNvbWV0aGluZyB0byBrZWVwIGluIG1pbmQsIGFsdGhvdWdoIGBmd25vZGVgIHNlZW1zIHRvIGJlIGFsd2F5cyBwcmVzZW50LlxuXG5UaW1lIHRvIHN0YXJ0IGRpZ2dpbmcgaW50byB0aGUgY29kZSBhbmQgc2VlIGhvdyBgcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVgIGlzIGFjdHVhbGx5IHVzZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY4MzIsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MTksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOToyNjoxMS42NTIxMjk5NDFaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk1NTUxMjgxNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYz03MDU9dm9pZCBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG4tLVxcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTcwNy17XFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmM6NzA4OlxcdHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHBkZXYsIG9mX2Z3bm9kZV9oYW5kbGUobnApKTtcXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MDktfVxcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jPTcxMD1FWFBPUlRfU1lNQk9MX0dQTChwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUpO1xcbi0tXFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzEyLS8qKlxcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jOjcxMzogKiBwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZSAtIGFzc2lnbiBhIGZpcm13YXJlIG5vZGUgdG8gZGV2aWNlXFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzE0LSAqIEBwZGV2OiBwbGF0Zm9ybSBkZXZpY2UgdG8gc2V0IHRoZSBub2RlIGZvclxcbi0tXFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzIwLSAqL1xcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jOjcyMTp2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzIyLVxcdFxcdFxcdFxcdHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpXFxuLS1cXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MjctfVxcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jOjcyODpFWFBPUlRfU1lNQk9MX0dQTChwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZSk7XFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzI5LVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3hlL3hlX2kyYy5jPTkyPXN0YXRpYyBpbnQgeGVfaTJjX3JlZ2lzdGVyX2FkYXB0ZXIoc3RydWN0IHhlX2kyYyAqaTJjKVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3hlL3hlX2kyYy5jLTEyNS1cXHRwZGV2LVxcdTAwM2VkZXYucGFyZW50ID0gaTJjLVxcdTAwM2Vkcm1fZGV2O1xcbmRyaXZlcnMvZ3B1L2RybS94ZS94ZV9pMmMuYzoxMjY6XFx0cGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUocGRldiwgZndub2RlKTtcXG5kcml2ZXJzL2dwdS9kcm0veGUveGVfaTJjLmMtMTI3LVxcdGkyYy1cXHUwMDNlYWRhcHRlcl9ub2RlID0gZndub2RlO1xcbi0tXFxuZHJpdmVycy9wbGF0Zm9ybS9zdXJmYWNlL3N1cmZhY2VfZ3BlLmM9MjkxPXN0YXRpYyBpbnQgX19pbml0IHN1cmZhY2VfZ3BlX2luaXQodm9pZClcXG4tLVxcbmRyaXZlcnMvcGxhdGZvcm0vc3VyZmFjZS9zdXJmYWNlX2dwZS5jLTMxOS1cXG5kcml2ZXJzL3BsYXRmb3JtL3N1cmZhY2Uvc3VyZmFjZV9ncGUuYzozMjA6XFx0cGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGUocGRldiwgZndub2RlKTtcXG5kcml2ZXJzL3BsYXRmb3JtL3N1cmZhY2Uvc3VyZmFjZV9ncGUuYy0zMjEtXFxuLS1cXG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oPTI2Nz12b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmluY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmgtMjY4LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKTtcXG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oOjI2OTp2b2lkIHBsYXRmb3JtX2RldmljZV9zZXRfZndub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaC0yNzAtXFx0XFx0XFx0XFx0c3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjI2OjEzLjYwNzY1MTM0OFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE5NzIyNzgwOTE5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBQbGF0Zm9ybSBEZXZpY2UgSW5pdGlhbGl6YXRpb24gYW5kIFJlbGVhc2UgRnVuY3Rpb25zIGZvciBGdXp6aW5nKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYGRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jYCDigJMgdGhhdCdzIHdoZXJlIHRoZSBoZWFydCBvZiB0aGUgcGxhdGZvcm0gZGV2aWNlIG1hbmFnZW1lbnQgbGllcy4gVGhpcyBpcyBhIGNydWNpYWwgYXJlYSBpbiB0aGUga2VybmVsLCBzbyBpdOKAmXMgZGVmaW5pdGVseSB3b3J0aCBhIGNsb3NlIGxvb2sgZm9yIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMuIEknbSBzcGVjaWZpY2FsbHkgaW50ZXJlc3RlZCBpbiB0aGVzZSBmdW5jdGlvbnM6IGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVgLCBgcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVgLCBgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2YCwgYW5kIGBwbGF0Zm9ybV9kZXZpY2VfcmVsZWFzZWAuXG5cbkdvb2QgbmV3cyBpcywgdGhlc2UgZnVuY3Rpb25zIGFyZW4ndCBpbiBhbnkgaG90IHBhdGg7IHRoZXkgYXJlIHByaW1hcmlseSBpbnZvbHZlZCBkdXJpbmcgZGV2aWNlIGNyZWF0aW9uIGFuZCBkZXN0cnVjdGlvbi4gVGhhdCBzaW1wbGlmaWVzIHRoaW5ncyBhIGJpdCBmcm9tIGEgcGVyZm9ybWFuY2UgcGVyc3BlY3RpdmUuIE5vIHNwZWNpYWwgY29uZmlndXJhdGlvbnMgc2hvdWxkIGJlIG5lZWRlZCB0byBidWlsZCBhbmQgdGVzdCB0aGVzZSBmdW5jdGlvbnMsIGFzIGBkcml2ZXJzL2Jhc2UvcGxhdGZvcm0uY2AgaXMgYWx3YXlzIGNvbXBpbGVkLiBJJ2xsIGZsYWcgdGhpcyBhcyBgV29ydGhGdXp6aW5nPXRydWVgLlxuXG5Ob3csIGJlZm9yZSBJIGp1bXAgaW4sIEkgc2hvdWxkIGRvIG15IGR1ZSBkaWxpZ2VuY2UuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBkb24ndCBtaXNzIGFueXRoaW5nIG9idmlvdXMuIExldCdzIHF1aWNrbHkgZG91YmxlIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGNoZWNrIGlmIGBDT05GSUdfT0ZgIGlzIHJlcXVpcmVkLiBGdW5jdGlvbnMgaW52b2x2aW5nIGBvZl9ub2RlYCBtYXkgbmVlZCBpdC4gSXTigJlzIHBvc3NpYmxlIHRoZXkgaGF2ZSBzdHVicyBpZiBgQ09ORklHX09GYCBpcyBkaXNhYmxlZCwgb3IgbWF5YmUgdGhleSBhcmUgY29tcGlsZWQgcmVnYXJkbGVzcywgYnV0IEnigJlkIGJldHRlciBtYWtlIHN1cmUuIFRoaXMgd2lsbCBhZmZlY3QgaG93IEkgdGVzdCBhbmQgd2hhdCBuZWVkcyB0byBiZSBlbmFibGVkIGR1cmluZyBmdXp6aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4NzI3LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTg1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjI2OjMzLjMzMDQzMzk0N1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDMzNzQ5ODE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuYz0xNDU2PXN0YXRpYyBpbnQgX19pbml0IHBtYWNfaTJjX2NyZWF0ZV9wbGF0Zm9ybV9kZXZpY2VzKHZvaWQpXFxuLS1cXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuYy0xNDczLVxcdFxcdGJ1cy1cXHUwMDNlcGxhdGZvcm1fZGV2LVxcdTAwM2VkZXYucGxhdGZvcm1fZGF0YSA9IGJ1cztcXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuYzoxNDc0OlxcdFxcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShidXMtXFx1MDAzZXBsYXRmb3JtX2RldiwgYnVzLVxcdTAwM2VidXNub2RlKTtcXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL2xvd19pMmMuYy0xNDc1LVxcdFxcdHBsYXRmb3JtX2RldmljZV9hZGQoYnVzLVxcdTAwM2VwbGF0Zm9ybV9kZXYpO1xcbi0tXFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmM9Njk0PUVYUE9SVF9TWU1CT0xfR1BMKHBsYXRmb3JtX2RldmljZV9hZGRfZGF0YSk7XFxuLS1cXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy02OTYtLyoqXFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmM6Njk3OiAqIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZSAtIGFzc2lnbiBhbiBPRiBub2RlIHRvIGRldmljZVxcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTY5OC0gKiBAcGRldjogcGxhdGZvcm0gZGV2aWNlIHRvIGFkZCB0aGUgbm9kZSBmb3JcXG4tLVxcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTcwNC0gKi9cXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYzo3MDU6dm9pZCBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MDYtXFx0XFx0XFx0XFx0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApXFxuLS1cXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MDktfVxcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jOjcxMDpFWFBPUlRfU1lNQk9MX0dQTChwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUpO1xcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTcxMS1cXG4tLVxcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jPTcyOD1FWFBPUlRfU1lNQk9MX0dQTChwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZSk7XFxuLS1cXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MzAtLyoqXFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmM6NzMxOiAqIHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldiAtIHJldXNlIE9GIG5vZGUgb2YgYW5vdGhlciBkZXZpY2VcXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MzItICogQHBkZXY6IHBsYXRmb3JtIGRldmljZSB0byBzZXQgdGhlIG5vZGUgZm9yXFxuLS1cXG5kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYy03MzctICovXFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmM6NzM4OnZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzM5LVxcdFxcdFxcdFxcdFxcdCAgY29uc3Qgc3RydWN0IGRldmljZSAqZGV2MilcXG4tLVxcbmRyaXZlcnMvYmFzZS9wbGF0Zm9ybS5jLTc0My19XFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmM6NzQ0OkVYUE9SVF9TWU1CT0xfR1BMKHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2Rldik7XFxuZHJpdmVycy9iYXNlL3BsYXRmb3JtLmMtNzQ1LVxcbi0tXFxuZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1weGEtcGNpLmM9MjM9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmFkZF9pMmNfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBiYXIpXFxuLS1cXG5kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXB4YS1wY2kuYy03OS1cXG5kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXB4YS1wY2kuYzo4MDpcXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUocGRldiwgY2hpbGQpO1xcbmRyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcHhhLXBjaS5jLTgxLVxcbi0tXFxuZHJpdmVycy9pb21tdS9mc2xfcGFtdS5jPTkzMz1zdGF0aWMgX19pbml0IGludCBmc2xfcGFtdV9pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL2lvbW11L2ZzbF9wYW11LmMtOTc2LVxcbmRyaXZlcnMvaW9tbXUvZnNsX3BhbXUuYzo5Nzc6XFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHBkZXYsIG5wKTtcXG5kcml2ZXJzL2lvbW11L2ZzbF9wYW11LmMtOTc4LVxcbi0tXFxuZHJpdmVycy9tZmQvdHBzNjU4NnguYz0zODI9c3RhdGljIGludCB0cHM2NTg2eF9hZGRfc3ViZGV2cyhzdHJ1Y3QgdHBzNjU4NnggKnRwczY1ODZ4LFxcbi0tXFxuZHJpdmVycy9tZmQvdHBzNjU4NnguYy0zOTktXFx0XFx0cGRldi1cXHUwMDNlZGV2LnBsYXRmb3JtX2RhdGEgPSBzdWJkZXYtXFx1MDAzZXBsYXRmb3JtX2RhdGE7XFxuZHJpdmVycy9tZmQvdHBzNjU4NnguYzo0MDA6XFx0XFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKHBkZXYsIHN1YmRldi1cXHUwMDNlb2Zfbm9kZSk7XFxuZHJpdmVycy9tZmQvdHBzNjU4NnguYy00MDEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYz00NDk9c3RhdGljIGludCBiY21nZW5ldF9taWlfcmVnaXN0ZXIoc3RydWN0IGJjbWdlbmV0X3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21taWkuYy00OTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtbWlpLmM6NDk3OlxcdFxcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwcGRldiwgbnApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbW1paS5jLTQ5OC1cXHR9IGVsc2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdjY0M3h4X2V0aC5jPTI3MjE9c3RhdGljIGludCBtdjY0M3h4X2V0aF9zaGFyZWRfb2ZfYWRkX3BvcnQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXY2NDN4eF9ldGguYy0yNzgyLVxcdHBwZGV2LVxcdTAwM2VkZXYuY29oZXJlbnRfZG1hX21hc2sgPSBETUFfQklUX01BU0soMzIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXY2NDN4eF9ldGguYzoyNzgzOlxcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZShwcGRldiwgcG5wKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212NjQzeHhfZXRoLmMtMjc4NC1cXG4tLVxcbmRyaXZlcnMvb2YvcGxhdGZvcm0uYz05Nz1zdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvZl9kZXZpY2VfYWxsb2Moc3RydWN0IGRldmljZV9ub2RlICpucCxcXG4tLVxcbmRyaXZlcnMvb2YvcGxhdGZvcm0uYy0xMjgtXFx0Lyogc2V0dXAgZ2VuZXJpYyBkZXZpY2UgaW5mbyAqL1xcbmRyaXZlcnMvb2YvcGxhdGZvcm0uYzoxMjk6XFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlKGRldiwgbnApO1xcbmRyaXZlcnMvb2YvcGxhdGZvcm0uYy0xMzAtXFx0ZGV2LVxcdTAwM2VkZXYucGFyZW50ID0gcGFyZW50ID8gOiBcXHUwMDI2cGxhdGZvcm1fYnVzO1xcbi0tXFxuZHJpdmVycy9wbWRvbWFpbi9pbXgvZ3BjLmM9NDAyPXN0YXRpYyBpbnQgaW14X2dwY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9wbWRvbWFpbi9pbXgvZ3BjLmMtNDg5LVxcdFxcdFxcdHBkX3BkZXYtXFx1MDAzZWRldi5wYXJlbnQgPSBcXHUwMDI2cGRldi1cXHUwMDNlZGV2O1xcbmRyaXZlcnMvcG1kb21haW4vaW14L2dwYy5jOjQ5MDpcXHRcXHRcXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUocGRfcGRldiwgbnApO1xcbmRyaXZlcnMvcG1kb21haW4vaW14L2dwYy5jLTQ5MS1cXG4tLVxcbmRyaXZlcnMvcmVzZXQvcmVzZXQtcnpnMmwtdXNicGh5LWN0cmwuYz0xODk9c3RhdGljIGludCByemcybF91c2JwaHlfY3RybF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9yZXNldC9yZXNldC1yemcybC11c2JwaHktY3RybC5jLTI1MS1cXG5kcml2ZXJzL3Jlc2V0L3Jlc2V0LXJ6ZzJsLXVzYnBoeS1jdHJsLmM6MjUyOlxcdHBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2Rldih2ZGV2LCBkZXYpO1xcbmRyaXZlcnMvcmVzZXQvcmVzZXQtcnpnMmwtdXNicGh5LWN0cmwuYy0yNTMtXFx0ZXJyb3IgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKHZkZXYpO1xcbi0tXFxuZHJpdmVycy9zbGltYnVzL3Fjb20tbmdkLWN0cmwuYz0xNTA4PXN0YXRpYyBpbnQgb2ZfcWNvbV9zbGltX25nZF9yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsXFxuLS1cXG5kcml2ZXJzL3NsaW1idXMvcWNvbS1uZ2QtY3RybC5jLTE1NDEtXFx0XFx0fVxcbmRyaXZlcnMvc2xpbWJ1cy9xY29tLW5nZC1jdHJsLmM6MTU0MjpcXHRcXHRwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUobmdkLVxcdTAwM2VwZGV2LCBub2RlKTtcXG5kcml2ZXJzL3NsaW1idXMvcWNvbS1uZ2QtY3RybC5jLTE1NDMtXFx0XFx0Y3RybC1cXHUwMDNlbmdkID0gbmdkO1xcbi0tXFxuZHJpdmVycy91c2IvY2hpcGlkZWEvY29yZS5jPTg2MD1zdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpjaV9oZHJjX2FkZF9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy91c2IvY2hpcGlkZWEvY29yZS5jLTg4MS1cXHRwZGV2LVxcdTAwM2VkZXYucGFyZW50ID0gZGV2O1xcbmRyaXZlcnMvdXNiL2NoaXBpZGVhL2NvcmUuYzo4ODI6XFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHBkZXYsIGRldik7XFxuZHJpdmVycy91c2IvY2hpcGlkZWEvY29yZS5jLTg4My1cXG4tLVxcbmRyaXZlcnMvdXNiL211c2Ivano0NzQwLmM9MjM1PXN0YXRpYyBpbnQgano0NzQwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL3VzYi9tdXNiL2p6NDc0MC5jLTI3NS1cXHRtdXNiLVxcdTAwM2VkZXYuY29oZXJlbnRfZG1hX21hc2tcXHQ9IERNQV9CSVRfTUFTSygzMik7XFxuZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuYzoyNzY6XFx0cGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KG11c2IsIGRldik7XFxuZHJpdmVycy91c2IvbXVzYi9qejQ3NDAuYy0yNzctXFxuLS1cXG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oPTI2NT1leHRlcm4gaW50IHBsYXRmb3JtX2RldmljZV9hZGRfZGF0YShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmluY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmgtMjY2LVxcdFxcdFxcdFxcdCAgICBjb25zdCB2b2lkICpkYXRhLCBzaXplX3Qgc2l6ZSk7XFxuaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaDoyNjc6dm9pZCBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG5pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RldmljZS5oLTI2OC1cXHRcXHRcXHRcXHQgc3RydWN0IGRldmljZV9ub2RlICpucCk7XFxuaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaD0yNjk9dm9pZCBwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmluY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmgtMjcwLVxcdFxcdFxcdFxcdHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUpO1xcbmluY2x1ZGUvbGludXgvcGxhdGZvcm1fZGV2aWNlLmg6MjcxOnZvaWQgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaC0yNzItXFx0XFx0XFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYyKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MjY6MzUuMzY0MTg3ODk2WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjgwNTU0NTQ5NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIFRoZXNlIFBsYXRmb3JtIERldmljZSBDaGFuZ2VzKipcblxuT2theSwgc28gSSd2ZSByZXZpZXdlZCB0aGVzZSBjaGFuZ2VzLCBhbmQgaXQgbG9va3MgbGlrZSB3ZSBoYXZlIGEgY29tcGxldGUgYW5kIGZ1bmN0aW9uYWwgaW1wbGVtZW50YXRpb24gaGVyZSwgd2l0aCBpbXBhY3RzIG9uIGhvdyBwbGF0Zm9ybSBkZXZpY2VzIGFyZSBjcmVhdGVkIGFuZCBkZXN0cm95ZWQuIE15IGV2YWx1YXRpb24gaXMgdGhhdCB0aGlzICp3YXJyYW50cyogYSBcIldvcnRoRnV6emluZz10cnVlXCIgZmxhZy4gSSdtIGdvaW5nIHRvIGZvY3VzIHRoZSBmdXp6aW5nIGVmZm9ydHMgc3BlY2lmaWNhbGx5IG9uIHRoZXNlIGtleSBmdW5jdGlvbnM6IGBwbGF0Zm9ybV9kZXZpY2Vfc2V0X29mX25vZGVgLCBgcGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVgLCBgcGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2YCwgYW5kIGBwbGF0Zm9ybV9kZXZpY2VfcmVsZWFzZWAuXG5cblRoZSBiZWF1dHkgb2YgdGhpcyBpcyB0aGF0IG5vIHNwZWNpZmljIGNvbmZpZyB0d2Vha2luZyBpcyBuZWVkZWQuIFRoZSBgZHJpdmVycy9iYXNlL3BsYXRmb3JtLmNgIGZpbGUgaXMgY29tcGlsZWQgdW5jb25kaXRpb25hbGx5LCB3aGljaCBzaW1wbGlmaWVzIHRoZSBzZXR1cC4gU28sIEnigJlsbCBsZWF2ZSB0aGUgYEVuYWJsZUNvbmZpZ3NgIGFycmF5IGFzIGVtcHR5LlxuXG5NeSByZWFzb25pbmc/IFdlbGwsIHRoZXNlIHBhdGNoZXMgaW50cm9kdWNlICpuZXcqIGhlbHBlciBmdW5jdGlvbnMgZm9yIGVsZWdhbnRseSBhc3NpZ25pbmcgYm90aCBgb2Zfbm9kZWAgYW5kIGBmd25vZGVgIHRvIG91ciBwbGF0Zm9ybSBkZXZpY2VzLiBDcml0aWNhbGx5LCB0aGVzZSBmdW5jdGlvbnMgaGFuZGxlIHJlZmVyZW5jZSBjb3VudGluZyBpbnRlcm5hbGx5IOKAkyBhIGRldGFpbCB0aGF0J3MgZXNzZW50aWFsIGZvciBwcmV2ZW50aW5nIG1lbW9yeSBsZWFrcy4gV2UgYWxzbyBoYXZlIGFuIHVwZGF0ZSB0byBgcGxhdGZvcm1fZGV2aWNlX3JlbGVhc2VgIHRoYXQgYXBwZWFycyB0byBjb3JyZWN0bHkgcmVsZWFzZSB0aGUgYGZ3bm9kZWAgcmVmZXJlbmNlLiBUaGVzZSBhcmUgZnVuZGFtZW50YWwgY2hhbmdlcyB0byB0aGUgZGV2aWNlIG1vZGVsLiBBbnkgYnVnIGhlcmXigJRlc3BlY2lhbGx5IGluIHRoZSByZWZlcmVuY2UgY291bnRpbmfigJRjb3VsZCBsZWFkIHRvIG5hc3R5IG1lbW9yeSBsZWFrcyBvciwgZXZlbiB3b3JzZSwgdXNlLWFmdGVyLWZyZWUgY29uZGl0aW9ucy4gV2UgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUgdGhhdCB0aGlzIGNvZGUgaXMgcm9jayBzb2xpZC4gVGhlcmVmb3JlLCB0aG9yb3VnaCBmdXp6aW5nIGlzIGRlZmluaXRlbHkgdGhlIHJpZ2h0IGFwcHJvYWNoIGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNjUzLCJPdXRwdXRUb2tlbnMiOjE0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOToyNjo0Mi4xNjk3MzU4NjNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2MDUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlXCIsXG4gICAgXCJwbGF0Zm9ybV9kZXZpY2Vfc2V0X2Z3bm9kZVwiLFxuICAgIFwicGxhdGZvcm1fZGV2aWNlX3NldF9vZl9ub2RlX2Zyb21fZGV2XCIsXG4gICAgXCJwbGF0Zm9ybV9kZXZpY2VfcmVsZWFzZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgbmV3IGhlbHBlciBmdW5jdGlvbnMgZm9yIGFzc2lnbmluZyBvZl9ub2RlIGFuZCBmd25vZGUgdG8gcGxhdGZvcm0gZGV2aWNlcywgd2hpY2ggaW50ZXJuYWxseSBtYW5hZ2UgcmVmZXJlbmNlIGNvdW50aW5nLiBJdCBhbHNvIHVwZGF0ZXMgcGxhdGZvcm1fZGV2aWNlX3JlbGVhc2UgdG8gcHJvcGVybHkgcmVsZWFzZSB0aGUgZndub2RlIHJlZmVyZW5jZS4gVGhlc2UgYXJlIGNvcmUgZGV2aWNlIG1vZGVsIGNoYW5nZXMgdGhhdCBjb3VsZCBsZWFkIHRvIG1lbW9yeSBsZWFrcyBvciB1c2UtYWZ0ZXItZnJlZSBpZiByZWZlcmVuY2UgY291bnRpbmcgaXMgaW5jb3JyZWN0LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZVwiLFxuICAgIFwicGxhdGZvcm1fZGV2aWNlX3NldF9md25vZGVcIixcbiAgICBcInBsYXRmb3JtX2RldmljZV9zZXRfb2Zfbm9kZV9mcm9tX2RldlwiLFxuICAgIFwicGxhdGZvcm1fZGV2aWNlX3JlbGVhc2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBoZWxwZXIgZnVuY3Rpb25zIGZvciBhc3NpZ25pbmcgb2Zfbm9kZSBhbmQgZndub2RlIHRvIHBsYXRmb3JtIGRldmljZXMsIHdoaWNoIGludGVybmFsbHkgbWFuYWdlIHJlZmVyZW5jZSBjb3VudGluZy4gSXQgYWxzbyB1cGRhdGVzIHBsYXRmb3JtX2RldmljZV9yZWxlYXNlIHRvIHByb3Blcmx5IHJlbGVhc2UgdGhlIGZ3bm9kZSByZWZlcmVuY2UuIFRoZXNlIGFyZSBjb3JlIGRldmljZSBtb2RlbCBjaGFuZ2VzIHRoYXQgY291bGQgbGVhZCB0byBtZW1vcnkgbGVha3Mgb3IgdXNlLWFmdGVyLWZyZWUgaWYgcmVmZXJlbmNlIGNvdW50aW5nIGlzIGluY29ycmVjdC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowrwx57[1] Phase: Succeeded StartedAt: 2026-06-29 09:26:53 +0000 UTC FinishedAt: 2026-06-29 09:26:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-29 09:26:53 +0000 UTC FinishedAt: 2026-06-29 09:26:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[2] Phase: Succeeded StartedAt: 2026-06-29 09:26:53 +0000 UTC FinishedAt: 2026-06-29 11:14:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-06-29 09:26:53 +0000 UTC FinishedAt: 2026-06-29 11:14:32 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-29 09:26:53 +0000 UTC FinishedAt: 2026-06-29 09:27:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-29 09:26:53 +0000 UTC FinishedAt: 2026-06-29 09:27:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrwx57/series-workflowrwx57-convert-artifact-574501059/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-29 09:27:03 +0000 UTC FinishedAt: 2026-06-29 09:50:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-29 09:27:03 +0000 UTC FinishedAt: 2026-06-29 09:50:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*8d264664-e05f-4613-95d4-ae52e9f673d7,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrwx57/series-workflowrwx57-convert-artifact-574501059/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "214969a7-e8ac-4978-a4df-2a52c529ec99", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrwx57/series-workflowrwx57-build-action-1334946609/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-29 09:27:03 +0000 UTC FinishedAt: 2026-06-29 09:49:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*8d264664-e05f-4613-95d4-ae52e9f673d7,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrwx57/series-workflowrwx57-convert-artifact-574501059/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "214969a7-e8ac-4978-a4df-2a52c529ec99", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrwx57/series-workflowrwx57-build-action-1334946609/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-29 09:50:26 +0000 UTC FinishedAt: 2026-06-29 09:50:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-29 09:50:26 +0000 UTC FinishedAt: 2026-06-29 09:50:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-29 09:50:26 +0000 UTC FinishedAt: 2026-06-29 09:50:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-29 09:50:26 +0000 UTC FinishedAt: 2026-06-29 09:50:36 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrwx57/series-workflowrwx57-convert-artifact-2191896186/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-29 09:50:50 +0000 UTC FinishedAt: 2026-06-29 09:52:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-29 09:50:51 +0000 UTC FinishedAt: 2026-06-29 09:52:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*214969a7-e8ac-4978-a4df-2a52c529ec99,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrwx57/series-workflowrwx57-build-action-1334946609/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-29 09:52:41 +0000 UTC FinishedAt: 2026-06-29 09:52:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-29 09:52:41 +0000 UTC FinishedAt: 2026-06-29 09:52:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-29 09:52:41 +0000 UTC FinishedAt: 2026-06-29 10:21:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-29 09:52:41 +0000 UTC FinishedAt: 2026-06-29 10:21:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*8d264664-e05f-4613-95d4-ae52e9f673d7,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrwx57/series-workflowrwx57-convert-artifact-2191896186/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "3f078a6e-851b-4d9e-85da-97c71b2a384b", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrwx57/series-workflowrwx57-build-action-1157647838/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-29 09:52:41 +0000 UTC FinishedAt: 2026-06-29 10:21:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*8d264664-e05f-4613-95d4-ae52e9f673d7,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrwx57/series-workflowrwx57-convert-artifact-2191896186/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "3f078a6e-851b-4d9e-85da-97c71b2a384b", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrwx57/series-workflowrwx57-build-action-1157647838/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-29 10:21:44 +0000 UTC FinishedAt: 2026-06-29 10:21:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-29 10:21:44 +0000 UTC FinishedAt: 2026-06-29 10:21:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-06-29 10:21:44 +0000 UTC FinishedAt: 2026-06-29 10:24:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-06-29 10:21:44 +0000 UTC FinishedAt: 2026-06-29 10:23:49 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*3f078a6e-851b-4d9e-85da-97c71b2a384b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrwx57/series-workflowrwx57-build-action-1157647838/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-06-29 10:24:01 +0000 UTC FinishedAt: 2026-06-29 11:14:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-06-29 10:24:01 +0000 UTC FinishedAt: 2026-06-29 11:14:32 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*214969a7-e8ac-4978-a4df-2a52c529ec99,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*3f078a6e-851b-4d9e-85da-97c71b2a384b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrwx57/series-workflowrwx57-build-action-1334946609/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrwx57/series-workflowrwx57-build-action-1157647838/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-06-29 10:24:01 +0000 UTC FinishedAt: 2026-06-29 10:24:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-06-29 10:24:01 +0000 UTC FinishedAt: 2026-06-29 10:24:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-06-29 10:24:01 +0000 UTC FinishedAt: 2026-06-29 10:24:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-06-29 10:24:02 +0000 UTC FinishedAt: 2026-06-29 10:24:24 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrwx57/series-workflowrwx57-convert-artifact-2702606255/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-06-29 10:24:02 +0000 UTC FinishedAt: 2026-06-29 10:24:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-06-29 10:24:36 +0000 UTC FinishedAt: 2026-06-29 11:14:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrwx57[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["platform_device_set_of_node","platform_device_set_fwnode","platform_device_set_of_node_from_dev","platform_device_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","series_id":"accbc655-91ac-40e2-8223-001a4d6ea5dd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-06-29 10:24:36 +0000 UTC FinishedAt: 2026-06-29 11:14:22 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*214969a7-e8ac-4978-a4df-2a52c529ec99,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*3f078a6e-851b-4d9e-85da-97c71b2a384b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Fuzz,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrwx57/series-workflowrwx57-build-action-1334946609/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:/patched,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrwx57/series-workflowrwx57-build-action-1157647838/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:config,Path:/tmp/config.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrwx57/series-workflowrwx57-convert-artifact-2702606255/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}