Name: series-workflowvxrvb Phase: Succeeded StartedAt: 2026-07-22 11:19:34 +0000 UTC FinishedAt: 2026-07-22 12:51:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[0] Phase: Succeeded StartedAt: 2026-07-22 11:19:34 +0000 UTC FinishedAt: 2026-07-22 11:39:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[0].run-triage Phase: Succeeded StartedAt: 2026-07-22 11:19:34 +0000 UTC FinishedAt: 2026-07-22 11:39:17 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "d4932951a19a5f1ec93200260b85e1a4c080ff77", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NFC", "NFC_DIGITAL", "NFC_SIM", "NFC_PORT100" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "d4932951a19a5f1ec93200260b85e1a4c080ff77", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NFC", "NFC_DIGITAL", "NFC_SIM", "NFC_PORT100" ], "series_id": "5be934ec-52a7-4288-9965-a6456faa2fe6" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "nfc_digital_unregister_device", "digital_wq_cmd", "digital_wq_cmd_complete", "digital_send_cmd" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIyIDExOjM3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GQyYjMzQ7LAogICAgJiMzNDtORkNfRElHSVRBTCYjMzQ7LAogICAgJiMzNDtORkNfU0lNJiMzNDssCiAgICAmIzM0O05GQ19QT1JUMTAwJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UmIzM0OywKICAgICYjMzQ7ZGlnaXRhbF93cV9jbWQmIzM0OywKICAgICYjMzQ7ZGlnaXRhbF93cV9jbWRfY29tcGxldGUmIzM0OywKICAgICYjMzQ7ZGlnaXRhbF9zZW5kX2NtZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZXBsYWNlcyBjYW5jZWxfd29ya19zeW5jIHdpdGggZGlzYWJsZV93b3JrX3N5bmMgZm9yIGNtZF93b3JrIGFuZCBjbWRfY29tcGxldGVfd29yayBpbiBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcHJldmVudHMgd29ya3MgZnJvbSBiZWluZyByZS1xdWV1ZWQgb3IgZXhlY3V0ZWQgYWZ0ZXIgdGhlIGRldmljZSBpcyB1bnJlZ2lzdGVyZWQsIGZpeGluZyBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgcmFjZSBjb25kaXRpb25zLiBJdCBpcyByZWFjaGFibGUgdmlhIHZpcnR1YWwgTkZDIGRyaXZlcnMgbGlrZSBuZmNzaW0gb3IgaG90cGx1Z2dhYmxlIGRyaXZlcnMgbGlrZSBwb3J0MTAwLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDExOjM3PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNjNmNGZiZjk2MDQ1OWQxZGY3OWZlMmVkYjAyZTVkNDgyZjMwMDZhMlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDExOjM3OjIwIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9uZmMvZGlnaXRhbF9jb3JlLmMgYi9uZXQvbmZjL2RpZ2l0YWxfY29yZS5jXG5pbmRleCA3Y2IxZTZhYWFlOTBkYS4uNmRlZjUxMzJhNGE2MmYgMTAwNjQ0XG4tLS0gYS9uZXQvbmZjL2RpZ2l0YWxfY29yZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvbmZjL2RpZ2l0YWxfY29yZS5jXG5AQCAtODQzLDggJiM0Mzs4NDMsOCBAQCB2b2lkIG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXG4gXHRtdXRleF91bmxvY2soXHUwMDI2ZGRldi1cdTAwM2Vwb2xsX2xvY2spO1xuIFxuIFx0Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKFx1MDAyNmRkZXYtXHUwMDNlcG9sbF93b3JrKTtcbi1cdGNhbmNlbF93b3JrX3N5bmMoXHUwMDI2ZGRldi1cdTAwM2VjbWRfd29yayk7XG4tXHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNmRkZXYtXHUwMDNlY21kX2NvbXBsZXRlX3dvcmspO1xuJiM0MztcdGRpc2FibGVfd29ya19zeW5jKFx1MDAyNmRkZXYtXHUwMDNlY21kX3dvcmspO1xuJiM0MztcdGRpc2FibGVfd29ya19zeW5jKFx1MDAyNmRkZXYtXHUwMDNlY21kX2NvbXBsZXRlX3dvcmspO1xuIFxuIFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGNtZCwgbiwgXHUwMDI2ZGRldi1cdTAwM2VjbWRfcXVldWUsIHF1ZXVlKSB7XG4gXHRcdGxpc3RfZGVsKFx1MDAyNmNtZC1cdTAwM2VxdWV1ZSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GQyYjMzQ7LAogICAgJiMzNDtORkNfRElHSVRBTCYjMzQ7LAogICAgJiMzNDtORkNfU0lNJiMzNDssCiAgICAmIzM0O05GQ19QT1JUMTAwJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UmIzM0OywKICAgICYjMzQ7ZGlnaXRhbF93cV9jbWQmIzM0OywKICAgICYjMzQ7ZGlnaXRhbF93cV9jbWRfY29tcGxldGUmIzM0OywKICAgICYjMzQ7ZGlnaXRhbF9zZW5kX2NtZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZXBsYWNlcyBjYW5jZWxfd29ya19zeW5jIHdpdGggZGlzYWJsZV93b3JrX3N5bmMgZm9yIGNtZF93b3JrIGFuZCBjbWRfY29tcGxldGVfd29yayBpbiBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcHJldmVudHMgd29ya3MgZnJvbSBiZWluZyByZS1xdWV1ZWQgb3IgZXhlY3V0ZWQgYWZ0ZXIgdGhlIGRldmljZSBpcyB1bnJlZ2lzdGVyZWQsIGZpeGluZyBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgcmFjZSBjb25kaXRpb25zLiBJdCBpcyByZWFjaGFibGUgdmlhIHZpcnR1YWwgTkZDIGRyaXZlcnMgbGlrZSBuZmNzaW0gb3IgaG90cGx1Z2dhYmxlIGRyaXZlcnMgbGlrZSBwb3J0MTAwLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA2M2Y0ZmJmOTYwNDU5ZDFkZjc5ZmUyZWRiMDJlNWQ0ODJmMzAwNmEyCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdWwgMjIgMTE6Mzc6MjAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvbmZjL2RpZ2l0YWxfY29yZS5jIGIvbmV0L25mYy9kaWdpdGFsX2NvcmUuYwppbmRleCA3Y2IxZTZhYWFlOTBkYS4uNmRlZjUxMzJhNGE2MmYgMTAwNjQ0Ci0tLSBhL25ldC9uZmMvZGlnaXRhbF9jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L25mYy9kaWdpdGFsX2NvcmUuYwpAQCAtODQzLDggJiM0Mzs4NDMsOCBAQCB2b2lkIG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpCiAJbXV0ZXhfdW5sb2NrKCZhbXA7ZGRldi0mZ3Q7cG9sbF9sb2NrKTsKIAogCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmYW1wO2RkZXYtJmd0O3BvbGxfd29yayk7Ci0JY2FuY2VsX3dvcmtfc3luYygmYW1wO2RkZXYtJmd0O2NtZF93b3JrKTsKLQljYW5jZWxfd29ya19zeW5jKCZhbXA7ZGRldi0mZ3Q7Y21kX2NvbXBsZXRlX3dvcmspOwomIzQzOwlkaXNhYmxlX3dvcmtfc3luYygmYW1wO2RkZXYtJmd0O2NtZF93b3JrKTsKJiM0MzsJZGlzYWJsZV93b3JrX3N5bmMoJmFtcDtkZGV2LSZndDtjbWRfY29tcGxldGVfd29yayk7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoY21kLCBuLCAmYW1wO2RkZXYtJmd0O2NtZF9xdWV1ZSwgcXVldWUpIHsKIAkJbGlzdF9kZWwoJmFtcDtjbWQtJmd0O3F1ZXVlKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk1NQoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDE0MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBORkMgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgbmV0L25mYy9kaWdpdGFsX2NvcmUuY2AuIFNlZW1zIGxpa2UgYSBzdHJhaWdodGZvcndhcmQgZnVuY3Rpb25hbCBjaGFuZ2UsIHN3YXBwaW5nIG91dCBgY2FuY2VsX3dvcmtfc3luY2AgZm9yIGBkaXNhYmxlX3dvcmtfc3luY2Agb24gYGRkZXYtJmd0O2NtZF93b3JrYCBhbmQgYGRkZXYtJmd0O2NtZF9jb21wbGV0ZV93b3JrYCB3aXRoaW4gYG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlYC4gVGhlIGltcGFjdCBpcyBwcmV0dHkgY2xlYXI6IHByZXZlbnRpbmcgdGhlIHdvcmtzIGZyb20gYmVpbmcgcmUtcXVldWVkIGFmdGVyIGNhbmNlbGxhdGlvbi4gV2UgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgYmV0dGVyLgoKTXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIGFib3V0IHJlYWNoYWJpbGl0eS4gSSBoYXZlIHRvIGZpZ3VyZSBvdXQgaG93IGxpa2VseSB0aGlzIGNoYW5nZSB3aWxsIGFjdHVhbGx5ICpoaXQqIGluIGEgcmVhbC13b3JsZCBzY2VuYXJpby4gSXMgdGhpcyBhIGNvZGUgcGF0aCB0aGF0JiMzOTtzIGZyZXF1ZW50bHkgZXhlY3V0ZWQsIG9yIHNvbWV0aGluZyBtb3JlIG9ic2N1cmU/IFRoYXQgbWVhbnMgdHJhY2luZyB0aGUgdXNhZ2UgYW5kIGxvb2tpbmcgYXQgd2hhdCBjb25maWd1cmF0aW9uIG9wdGlvbnMgbWlnaHQgaW5mbHVlbmNlIHRoaXMgcGF0aCYjMzk7cyBleGVjdXRpb24uCgpTbywgZmlyc3QgdGhpbmdzIGZpcnN0LCBJIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgZm9yIGBuZXQvbmZjL2RpZ2l0YWxfY29yZS5jYCB0byBzZWUgd2hhdCBkZXBlbmRlbmNpZXMgYXJlIGF0IHBsYXkuIFVuZGVyc3RhbmRpbmcgdGhlIGFzc29jaWF0ZWQgY29uZmlndXJhdGlvbnMgYW5kIGRlcGVuZGVuY2llcyB3aWxsIG9mZmVyIGluc2lnaHRzIGludG8gd2hpY2gga2VybmVsIGJ1aWxkcyBhcmUgYWZmZWN0ZWQuIFdoYXQgYXJlIHRoZSByZWxldmFudCBDT05GSUcgb3B0aW9ucyBhc3NvY2lhdGVkIHdpdGggdGhpcyBzZWN0aW9uIG9mIGNvZGU/IFRoYXQmIzM5O3MgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBwb3RlbnRpYWwgaW1wYWN0IG9mIHRoZSBwYXRjaC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxMTozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkaWdpdGFsX2NvcmUubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9uZmMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9uZmMvTWFrZWZpbGU9MTE9bmZjLW9ianMgOj0gY29yZS5vIG5ldGxpbmsubyBhZl9uZmMubyByYXdzb2NrLm8gbGxjcF9jb3JlLm8gbGxjcF9jb21tYW5kcy5vIFxcXG4tLVxubmV0L25mYy9NYWtlZmlsZS0xMy1cbm5ldC9uZmMvTWFrZWZpbGU6MTQ6bmZjX2RpZ2l0YWwtb2JqcyA6PSBkaWdpdGFsX2NvcmUubyBkaWdpdGFsX3RlY2hub2xvZ3kubyBkaWdpdGFsX2RlcC5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQ4NgoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipDaGVja2luZyB0aGUgQnVpbGQgQ29uZmlndXJhdGlvbioqCgpSaWdodCwgc28gYG5mY19kaWdpdGFsLW9ianNgLiBUaGF0JiMzOTtzIHRoZSBsaWtlbHkgb2JqZWN0IGxpc3QgZm9yIHRoZSBORkMgRGlnaXRhbCBkcml2ZXIsIHJpZ2h0PyBNYWtlcyBzZW5zZS4gTm93LCBsZXQgbWUganVzdCBjb25maXJtIG15IHN1c3BpY2lvbnMuLi4gaXQmIzM5O3MgcHJvYmFibHkgYnVpbHQgY29uZGl0aW9uYWxseS4gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IGNoZWNrIHRoZSBgbmV0L25mYy9NYWtlZmlsZWAgdG8gc2VlIGlmIGBDT05GSUdfTkZDX0RJR0lUQUxgIGluZGVlZCBjb250cm9scyB0aGUgaW5jbHVzaW9uIG9mIHRoYXQgb2JqZWN0LiBJdCYjMzk7cyB0aGUgZmlyc3QgcGxhY2UgSSYjMzk7ZCBsb29rLiBUaGlzIGlzIHByZXR0eSBzdGFuZGFyZCBwcmFjdGljZSwgZW5zdXJpbmcgdGhhdCB0aGUgbW9kdWxlIGlzIG9ubHkgYnVpbHQgaWYgdGhlIGFwcHJvcHJpYXRlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIHNldC4gTm8gbmVlZCB0byB3YXN0ZSBidWlsZCB0aW1lIG9uIHVubmVlZGVkIGNvbXBvbmVudHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bmZjX2RpZ2l0YWwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbmZjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNTA4IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5uZXQvbmZjL0tjb25maWc9MTc9Y29uZmlnIE5GQ19ESUdJVEFMXG4tLVxubmV0L25mYy9LY29uZmlnLTI4LVx0ICBUbyBjb21waWxlIHRoaXMgc3VwcG9ydCBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZSB3aWxsXG5uZXQvbmZjL0tjb25maWc6Mjk6XHQgIGJlIGNhbGxlZCBuZmNfZGlnaXRhbC5cbm5ldC9uZmMvS2NvbmZpZy0zMC1cbi0tXG5uZXQvbmZjL01ha2VmaWxlPTg9b2JqLSQoQ09ORklHX05GQ19IQ0kpICYjNDM7PSBoY2kvXG5uZXQvbmZjL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX05GQ19ESUdJVEFMKSAmIzQzOz0gbmZjX2RpZ2l0YWwub1xubmV0L25mYy9NYWtlZmlsZS0xMC1cbm5ldC9uZmMvTWFrZWZpbGU9MTE9bmZjLW9ianMgOj0gY29yZS5vIG5ldGxpbmsubyBhZl9uZmMubyByYXdzb2NrLm8gbGxjcF9jb3JlLm8gbGxjcF9jb21tYW5kcy5vIFxcXG4tLVxubmV0L25mYy9NYWtlZmlsZS0xMy1cbm5ldC9uZmMvTWFrZWZpbGU6MTQ6bmZjX2RpZ2l0YWwtb2JqcyA6PSBkaWdpdGFsX2NvcmUubyBkaWdpdGFsX3RlY2hub2xvZ3kubyBkaWdpdGFsX2RlcC5vXG4tLVxubmV0L25mYy9kaWdpdGFsLmg9NDA9c3RydWN0IGRpZ2l0YWxfZGF0YV9leGNoIHtcbi0tXG5uZXQvbmZjL2RpZ2l0YWwuaC00NC1cbm5ldC9uZmMvZGlnaXRhbC5oOjQ1OnN0cnVjdCBza19idWZmICpkaWdpdGFsX3NrYl9hbGxvYyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxubmV0L25mYy9kaWdpdGFsLmgtNDYtXHRcdFx0XHQgIHVuc2lnbmVkIGludCBsZW4pO1xubmV0L25mYy9kaWdpdGFsLmgtNDctXG5uZXQvbmZjL2RpZ2l0YWwuaDo0ODppbnQgZGlnaXRhbF9zZW5kX2NtZChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCBjbWRfdHlwZSxcbm5ldC9uZmMvZGlnaXRhbC5oLTQ5LVx0XHQgICAgIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBkaWdpdGFsX3RnX21kYWFfcGFyYW1zICpwYXJhbXMsXG5uZXQvbmZjL2RpZ2l0YWwuaDo1MDpcdFx0ICAgICB1MTYgdGltZW91dCwgbmZjX2RpZ2l0YWxfY21kX2NvbXBsZXRlX3QgY21kX2NiLFxubmV0L25mYy9kaWdpdGFsLmgtNTEtXHRcdCAgICAgdm9pZCAqY2JfY29udGV4dCk7XG5uZXQvbmZjL2RpZ2l0YWwuaC01Mi1cbm5ldC9uZmMvZGlnaXRhbC5oOjUzOmludCBkaWdpdGFsX2luX2NvbmZpZ3VyZV9odyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBpbnQgdHlwZSwgaW50IHBhcmFtKTtcbm5ldC9uZmMvZGlnaXRhbC5oOjU0OnN0YXRpYyBpbmxpbmUgaW50IGRpZ2l0YWxfaW5fc2VuZF9jbWQoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbC5oLTU1LVx0XHRcdFx0ICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTE2IHRpbWVvdXQsXG5uZXQvbmZjL2RpZ2l0YWwuaDo1NjpcdFx0XHRcdCAgICAgIG5mY19kaWdpdGFsX2NtZF9jb21wbGV0ZV90IGNtZF9jYixcbm5ldC9uZmMvZGlnaXRhbC5oLTU3LVx0XHRcdFx0ICAgICAgdm9pZCAqY2JfY29udGV4dClcbi0tXG5uZXQvbmZjL2RpZ2l0YWwuaC02Mi1cbm5ldC9uZmMvZGlnaXRhbC5oOjYzOnZvaWQgZGlnaXRhbF9wb2xsX25leHRfdGVjaChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KTtcbm5ldC9uZmMvZGlnaXRhbC5oLTY0LVxubmV0L25mYy9kaWdpdGFsLmg6NjU6aW50IGRpZ2l0YWxfaW5fc2VuZF9zZW5zX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKTtcbm5ldC9uZmMvZGlnaXRhbC5oOjY2OmludCBkaWdpdGFsX2luX3NlbmRfc2Vuc2JfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpO1xubmV0L25mYy9kaWdpdGFsLmg6Njc6aW50IGRpZ2l0YWxfaW5fc2VuZF9zZW5zZl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTggcmZfdGVjaCk7XG5uZXQvbmZjL2RpZ2l0YWwuaDo2ODppbnQgZGlnaXRhbF9pbl9zZW5kX2lzbzE1NjkzX2ludl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTggcmZfdGVjaCk7XG5uZXQvbmZjL2RpZ2l0YWwuaC02OS1cbm5ldC9uZmMvZGlnaXRhbC5oOjcwOmludCBkaWdpdGFsX2luX2lzb19kZXBfcHVsbF9zb2Qoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbC5oLTcxLVx0XHRcdFx0c3RydWN0IHNrX2J1ZmYgKnNrYik7XG5uZXQvbmZjL2RpZ2l0YWwuaDo3MjppbnQgZGlnaXRhbF9pbl9pc29fZGVwX3B1c2hfc29kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWwuaC03My1cdFx0XHRcdHN0cnVjdCBza19idWZmICpza2IpO1xubmV0L25mYy9kaWdpdGFsLmgtNzQtXG5uZXQvbmZjL2RpZ2l0YWwuaDo3NTppbnQgZGlnaXRhbF90YXJnZXRfZm91bmQoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbC5oLTc2LVx0XHRcdCBzdHJ1Y3QgbmZjX3RhcmdldCAqdGFyZ2V0LCB1OCBwcm90b2NvbCk7XG4tLVxubmV0L25mYy9kaWdpdGFsLmg9Nzg9aW50IGRpZ2l0YWxfaW5fcmVjdl9taWZhcmVfcmVzKHN0cnVjdCBza19idWZmICpyZXNwKTtcbm5ldC9uZmMvZGlnaXRhbC5oLTc5LVxubmV0L25mYy9kaWdpdGFsLmg6ODA6aW50IGRpZ2l0YWxfaW5fc2VuZF9hdHJfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWwuaC04MS1cdFx0XHQgICAgc3RydWN0IG5mY190YXJnZXQgKnRhcmdldCwgX191OCBjb21tX21vZGUsIF9fdTggKmdiLFxubmV0L25mYy9kaWdpdGFsLmgtODItXHRcdFx0ICAgIHNpemVfdCBnYl9sZW4pO1xubmV0L25mYy9kaWdpdGFsLmg6ODM6aW50IGRpZ2l0YWxfaW5fc2VuZF9kZXBfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWwuaC04NC1cdFx0XHQgICAgc3RydWN0IG5mY190YXJnZXQgKnRhcmdldCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5uZXQvbmZjL2RpZ2l0YWwuaC04Ni1cbm5ldC9uZmMvZGlnaXRhbC5oOjg3OmludCBkaWdpdGFsX3RnX2NvbmZpZ3VyZV9odyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBpbnQgdHlwZSwgaW50IHBhcmFtKTtcbm5ldC9uZmMvZGlnaXRhbC5oOjg4OnN0YXRpYyBpbmxpbmUgaW50IGRpZ2l0YWxfdGdfc2VuZF9jbWQoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbC5oLTg5LVx0XHRcdHN0cnVjdCBza19idWZmICpza2IsIHUxNiB0aW1lb3V0LFxubmV0L25mYy9kaWdpdGFsLmg6OTA6XHRcdFx0bmZjX2RpZ2l0YWxfY21kX2NvbXBsZXRlX3QgY21kX2NiLCB2b2lkICpjYl9jb250ZXh0KVxubmV0L25mYy9kaWdpdGFsLmgtOTEte1xuLS1cbm5ldC9uZmMvZGlnaXRhbC5oLTk1LVxubmV0L25mYy9kaWdpdGFsLmg6OTY6dm9pZCBkaWdpdGFsX3RnX3JlY3Zfc2Vuc19yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxubmV0L25mYy9kaWdpdGFsLmgtOTctXHRcdFx0ICAgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApO1xubmV0L25mYy9kaWdpdGFsLmgtOTgtXG5uZXQvbmZjL2RpZ2l0YWwuaDo5OTp2b2lkIGRpZ2l0YWxfdGdfcmVjdl9zZW5zZl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxubmV0L25mYy9kaWdpdGFsLmgtMTAwLVx0XHRcdCAgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcCk7XG5uZXQvbmZjL2RpZ2l0YWwuaC0xMDEtXG5uZXQvbmZjL2RpZ2l0YWwuaDoxMDI6c3RhdGljIGlubGluZSBpbnQgZGlnaXRhbF90Z19saXN0ZW4oc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTE2IHRpbWVvdXQsXG5uZXQvbmZjL2RpZ2l0YWwuaDoxMDM6XHRcdFx0XHQgICAgbmZjX2RpZ2l0YWxfY21kX2NvbXBsZXRlX3QgY2IsIHZvaWQgKmFyZylcbm5ldC9uZmMvZGlnaXRhbC5oLTEwNC17XG4tLVxubmV0L25mYy9kaWdpdGFsLmgtMTA4LVxubmV0L25mYy9kaWdpdGFsLmg6MTA5OnZvaWQgZGlnaXRhbF90Z19yZWN2X2F0cl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxubmV0L25mYy9kaWdpdGFsLmgtMTEwLVx0XHRcdCAgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApO1xubmV0L25mYy9kaWdpdGFsLmgtMTExLVxubmV0L25mYy9kaWdpdGFsLmg6MTEyOmludCBkaWdpdGFsX3RnX3NlbmRfZGVwX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcbm5ldC9uZmMvZGlnaXRhbC5oLTExMy1cbm5ldC9uZmMvZGlnaXRhbC5oOjExNDppbnQgZGlnaXRhbF90Z19saXN0ZW5fbmZjYShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKTtcbm5ldC9uZmMvZGlnaXRhbC5oOjExNTppbnQgZGlnaXRhbF90Z19saXN0ZW5fbmZjZihzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKTtcbm5ldC9uZmMvZGlnaXRhbC5oOjExNjp2b2lkIGRpZ2l0YWxfdGdfcmVjdl9tZF9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxubmV0L25mYy9kaWdpdGFsLmgtMTE3LVx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcCk7XG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz0yNz1zdHJ1Y3QgZGlnaXRhbF9jbWQge1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMzctXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjM4Olx0bmZjX2RpZ2l0YWxfY21kX2NvbXBsZXRlX3QgY21kX2NiO1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0zOS1cdHZvaWQgKmNiX2NvbnRleHQ7XG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00MS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NDI6c3RydWN0IHNrX2J1ZmYgKmRpZ2l0YWxfc2tiX2FsbG9jKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTQzLVx0XHRcdFx0ICB1bnNpZ25lZCBpbnQgbGVuKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9NzI9aW50IGRpZ2l0YWxfc2tiX2NoZWNrX2NyYyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjcmNfZnVuY190IGNyY19mdW5jLFxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtOTktXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjEwMDpzdGF0aWMgaW5saW5lIHZvaWQgZGlnaXRhbF9zd2l0Y2hfcmYoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgYm9vbCBvbilcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMTAxLXtcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTEwNC1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6MTA1OnN0YXRpYyBpbmxpbmUgdm9pZCBkaWdpdGFsX2Fib3J0X2NtZChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0xMDYte1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9MTEwPXN0YXRpYyB2b2lkIGRpZ2l0YWxfd3FfY21kX2NvbXBsZXRlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTExMi1cdHN0cnVjdCBkaWdpdGFsX2NtZCAqY21kO1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYzoxMTM6XHRzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2ID0gY29udGFpbmVyX29mKHdvcmssXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjExNDpcdFx0XHRcdFx0XHQgICAgc3RydWN0IG5mY19kaWdpdGFsX2Rldixcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMTE1LVx0XHRcdFx0XHRcdCAgICBjbWRfY29tcGxldGVfd29yayk7XG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0xNDEtXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjE0MjpzdGF0aWMgdm9pZCBkaWdpdGFsX3NlbmRfY21kX2NvbXBsZXRlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTE0My1cdFx0XHRcdCAgICAgIHZvaWQgKmFyZywgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz0xNTI9c3RhdGljIHZvaWQgZGlnaXRhbF93cV9jbWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMTU2LVx0c3RydWN0IGRpZ2l0YWxfdGdfbWRhYV9wYXJhbXMgKnBhcmFtcztcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6MTU3Olx0c3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiA9IGNvbnRhaW5lcl9vZih3b3JrLFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzoxNTg6XHRcdFx0XHRcdFx0ICAgIHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYsXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTE1OS1cdFx0XHRcdFx0XHQgICAgY21kX3dvcmspO1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMjI2LVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzoyMjc6aW50IGRpZ2l0YWxfc2VuZF9jbWQoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTggY21kX3R5cGUsXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTIyOC1cdFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZGlnaXRhbF90Z19tZGFhX3BhcmFtcyAqcGFyYW1zLFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzoyMjk6XHRcdCAgICAgdTE2IHRpbWVvdXQsIG5mY19kaWdpdGFsX2NtZF9jb21wbGV0ZV90IGNtZF9jYixcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMjMwLVx0XHQgICAgIHZvaWQgKmNiX2NvbnRleHQpXG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0yNTQtXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjI1NTppbnQgZGlnaXRhbF9pbl9jb25maWd1cmVfaHcoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgaW50IHR5cGUsIGludCBwYXJhbSlcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMjU2LXtcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTI2NS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6MjY2OmludCBkaWdpdGFsX3RnX2NvbmZpZ3VyZV9odyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBpbnQgdHlwZSwgaW50IHBhcmFtKVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0yNjcte1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMjc2LVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzoyNzc6c3RhdGljIGludCBkaWdpdGFsX3RnX2xpc3Rlbl9tZGFhKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTI3OC17XG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0zMDItXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjMwMzpzdGF0aWMgaW50IGRpZ2l0YWxfdGdfbGlzdGVuX21kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTMwNC17XG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0zMDgtXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjMwOTppbnQgZGlnaXRhbF90YXJnZXRfZm91bmQoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMzEwLVx0XHRcdCBzdHJ1Y3QgbmZjX3RhcmdldCAqdGFyZ2V0LCB1OCBwcm90b2NvbClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTQwNC1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NDA1OnZvaWQgZGlnaXRhbF9wb2xsX25leHRfdGVjaChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00MDYte1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9NDI3PXN0YXRpYyB2b2lkIGRpZ2l0YWxfd3FfcG9sbChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00MzAtXHRzdHJ1Y3QgZGlnaXRhbF9wb2xsX3RlY2ggKnBvbGxfdGVjaDtcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NDMxOlx0c3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiA9IGNvbnRhaW5lcl9vZih3b3JrLFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo0MzI6XHRcdFx0XHRcdFx0ICAgIHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYsXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTQzMy1cdFx0XHRcdFx0XHQgICAgcG9sbF93b3JrLndvcmspO1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNDQ5LVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo0NTA6c3RhdGljIHZvaWQgZGlnaXRhbF9hZGRfcG9sbF90ZWNoKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gsXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTQ1MS1cdFx0XHRcdCAgZGlnaXRhbF9wb2xsX3QgcG9sbF9mdW5jKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9NDc2PXN0YXRpYyBpbnQgZGlnaXRhbF9zdGFydF9wb2xsKHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2LCBfX3UzMiBpbV9wcm90b2NvbHMsXG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00Nzgte1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo0Nzk6XHRzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2ID0gbmZjX2dldF9kcnZkYXRhKG5mY19kZXYpO1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00ODAtXHR1MzIgbWF0Y2hpbmdfaW1fcHJvdG9jb2xzLCBtYXRjaGluZ190bV9wcm90b2NvbHM7XG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz01NTY9c3RhdGljIHZvaWQgZGlnaXRhbF9zdG9wX3BvbGwoc3RydWN0IG5mY19kZXYgKm5mY19kZXYpXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTU1Ny17XG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjU1ODpcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBuZmNfZ2V0X2RydmRhdGEobmZjX2Rldik7XG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTU1OS1cbi0tXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jPTU3Nz1zdGF0aWMgaW50IGRpZ2l0YWxfZGV2X3VwKHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2KVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy01Nzgte1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo1Nzk6XHRzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2ID0gbmZjX2dldF9kcnZkYXRhKG5mY19kZXYpO1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYy01ODAtXG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz01ODY9c3RhdGljIGludCBkaWdpdGFsX2Rldl9kb3duKHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2KVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy01ODcte1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo1ODg6XHRzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2ID0gbmZjX2dldF9kcnZkYXRhKG5mY19kZXYpO1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYy01ODktXG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz01OTU9c3RhdGljIGludCBkaWdpdGFsX2RlcF9saW5rX3VwKHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2LFxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNTk4LXtcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NTk5Olx0c3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiA9IG5mY19nZXRfZHJ2ZGF0YShuZmNfZGV2KTtcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNjAwLVx0aW50IHJjO1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9NjEwPXN0YXRpYyBpbnQgZGlnaXRhbF9kZXBfbGlua19kb3duKHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2KVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy02MTEte1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo2MTI6XHRzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2ID0gbmZjX2dldF9kcnZkYXRhKG5mY19kZXYpO1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYy02MTMtXG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz02MjE9c3RhdGljIGludCBkaWdpdGFsX2FjdGl2YXRlX3RhcmdldChzdHJ1Y3QgbmZjX2RldiAqbmZjX2Rldixcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTYyMy17XG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjYyNDpcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBuZmNfZ2V0X2RydmRhdGEobmZjX2Rldik7XG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTYyNS1cbi0tXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jPTY0MT1zdGF0aWMgdm9pZCBkaWdpdGFsX2RlYWN0aXZhdGVfdGFyZ2V0KHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2LFxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNjQ0LXtcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NjQ1Olx0c3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiA9IG5mY19nZXRfZHJ2ZGF0YShuZmNfZGV2KTtcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNjQ2LVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9NjU2PXN0YXRpYyBpbnQgZGlnaXRhbF90Z19zZW5kKHN0cnVjdCBuZmNfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTY1Ny17XG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjY1ODpcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBuZmNfZ2V0X2RydmRhdGEoZGV2KTtcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNjU5LVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNjYyLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo2NjM6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9zZW5kX2NvbXBsZXRlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNjY0LVx0XHRcdFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jPTcwMT1zdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZChzdHJ1Y3QgbmZjX2RldiAqbmZjX2Rldiwgc3RydWN0IG5mY190YXJnZXQgKnRhcmdldCxcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTcwNC17XG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjcwNTpcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBuZmNfZ2V0X2RydmRhdGEobmZjX2Rldik7XG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTcwNi1cdHN0cnVjdCBkaWdpdGFsX2RhdGFfZXhjaCAqZGF0YV9leGNoO1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9NzQ0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmZjX29wcyBkaWdpdGFsX25mY19vcHMgPSB7XG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy03NTYtXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjc1NzpzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpuZmNfZGlnaXRhbF9hbGxvY2F0ZV9kZXZpY2UoY29uc3Qgc3RydWN0IG5mY19kaWdpdGFsX29wcyAqb3BzLFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy03NTgtXHRcdFx0XHRcdCAgICBfX3UzMiBzdXBwb3J0ZWRfcHJvdG9jb2xzLFxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNzYxLXtcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NzYyOlx0c3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldjtcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNzYzLVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODE5LX1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6ODIwOkVYUE9SVF9TWU1CT0wobmZjX2RpZ2l0YWxfYWxsb2NhdGVfZGV2aWNlKTtcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODIxLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo4MjI6dm9pZCBuZmNfZGlnaXRhbF9mcmVlX2RldmljZShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MjMte1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODI2LX1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6ODI3OkVYUE9SVF9TWU1CT0wobmZjX2RpZ2l0YWxfZnJlZV9kZXZpY2UpO1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MjgtXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjgyOTppbnQgbmZjX2RpZ2l0YWxfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTgzMC17XG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MzItfVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo4MzM6RVhQT1JUX1NZTUJPTChuZmNfZGlnaXRhbF9yZWdpc3Rlcl9kZXZpY2UpO1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MzQtXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjgzNTp2b2lkIG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTgzNi17XG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04NjItfVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo4NjM6RVhQT1JUX1NZTUJPTChuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZSk7XG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTg2NC1cbi0tXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM9MTAwPXN0cnVjdCBkaWdpdGFsX2RlcF9yZXFfcmVzIHtcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTA1LVxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjEwNjpzdGF0aWMgdm9pZCBkaWdpdGFsX2luX3JlY3ZfZGVwX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTA3LVx0XHRcdFx0ICAgIHN0cnVjdCBza19idWZmICpyZXNwKTtcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoxMDg6c3RhdGljIHZvaWQgZGlnaXRhbF90Z19yZWN2X2RlcF9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEwOS1cdFx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcCk7XG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jPTE1Nz1zdGF0aWMgdTggZGlnaXRhbF9wYXlsb2FkX3NpemVfdG9fYml0cyh1OCBwYXlsb2FkX3NpemUpXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTE2Ny1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoxNjg6c3RhdGljIHZvaWQgZGlnaXRhbF9za2JfcHVzaF9kZXBfc29kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTY5LVx0XHRcdFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xNzgtXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6MTc5OnN0YXRpYyBpbnQgZGlnaXRhbF9za2JfcHVsbF9kZXBfc29kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTgwLVx0XHRcdFx0ICAgIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jPTE5OT1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKlxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjIwMDpkaWdpdGFsX3NlbmRfZGVwX2RhdGFfcHJlcChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTIwMS1cdFx0XHQgICBzdHJ1Y3QgZGlnaXRhbF9kZXBfcmVxX3JlcyAqZGVwX3JlcV9yZXMsXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jPTIzMD1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKlxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjIzMTpkaWdpdGFsX3JlY3ZfZGVwX2RhdGFfZ2F0aGVyKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHBmYixcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0yMzItXHRcdFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcCxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoyMzM6XHRcdFx0ICAgICBpbnQgKCpzZW5kX2Fjaykoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0yMzQtXHRcdFx0XHRcdCAgICAgc3RydWN0IGRpZ2l0YWxfZGF0YV9leGNoXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTI5NC1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoyOTU6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X3BzbF9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTI5Ni1cdFx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMzU4LVxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjM1OTpzdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZF9wc2xfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMzYwLVx0XHRcdFx0ICAgc3RydWN0IG5mY190YXJnZXQgKnRhcmdldClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMzk4LVxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjM5OTpzdGF0aWMgdm9pZCBkaWdpdGFsX2luX3JlY3ZfYXRyX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtNDAwLVx0XHRcdFx0IHN0cnVjdCBza19idWZmICpyZXNwKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy00NzAtXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6NDcxOmludCBkaWdpdGFsX2luX3NlbmRfYXRyX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTQ3Mi1cdFx0XHQgICAgc3RydWN0IG5mY190YXJnZXQgKnRhcmdldCwgX191OCBjb21tX21vZGUsIF9fdTggKmdiLFxuLS1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy01MjgtXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6NTI5OnN0YXRpYyBpbnQgZGlnaXRhbF9pbl9zZW5kX2FjayhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTUzMC1cdFx0XHQgICAgICAgc3RydWN0IGRpZ2l0YWxfZGF0YV9leGNoICpkYXRhX2V4Y2gpXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTU2NS1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzo1NjY6c3RhdGljIGludCBkaWdpdGFsX2luX3NlbmRfbmFjayhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTU2Ny1cdFx0XHRcdHN0cnVjdCBkaWdpdGFsX2RhdGFfZXhjaCAqZGF0YV9leGNoKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy01OTctXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6NTk4OnN0YXRpYyBpbnQgZGlnaXRhbF9pbl9zZW5kX2F0bihzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTU5OS1cdFx0XHQgICAgICAgc3RydWN0IGRpZ2l0YWxfZGF0YV9leGNoICpkYXRhX2V4Y2gpXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTYyOC1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzo2Mjk6c3RhdGljIGludCBkaWdpdGFsX2luX3NlbmRfcnRveChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTYzMC1cdFx0XHRcdHN0cnVjdCBkaWdpdGFsX2RhdGFfZXhjaCAqZGF0YV9leGNoLCB1OCBydG94KVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy02NjctXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6NjY4OnN0YXRpYyBpbnQgZGlnaXRhbF9pbl9zZW5kX3NhdmVkX3NrYihzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTY2OS1cdFx0XHRcdCAgICAgc3RydWN0IGRpZ2l0YWxfZGF0YV9leGNoICpkYXRhX2V4Y2gpXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTY4NS1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzo2ODY6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X2RlcF9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTY4Ny1cdFx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtOTAzLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjkwNDppbnQgZGlnaXRhbF9pbl9zZW5kX2RlcF9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy05MDUtXHRcdFx0ICAgIHN0cnVjdCBuZmNfdGFyZ2V0ICp0YXJnZXQsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTk1MC1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzo5NTE6c3RhdGljIHZvaWQgZGlnaXRhbF90Z19zZXRfcmZfdGVjaChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTk1Mi17XG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTk3Ny1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzo5Nzg6c3RhdGljIGludCBkaWdpdGFsX3RnX3NlbmRfYWNrKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtOTc5LVx0XHRcdCAgICAgICBzdHJ1Y3QgZGlnaXRhbF9kYXRhX2V4Y2ggKmRhdGFfZXhjaClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTAyMy1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoxMDI0OnN0YXRpYyBpbnQgZGlnaXRhbF90Z19zZW5kX2F0bihzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEwMjUte1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMDU5LVxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjEwNjA6c3RhdGljIGludCBkaWdpdGFsX3RnX3NlbmRfc2F2ZWRfc2tiKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTA2MS17XG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEwNzYtXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6MTA3NzpzdGF0aWMgdm9pZCBkaWdpdGFsX3RnX3JlY3ZfZGVwX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTA3OC1cdFx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTI5Ni1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoxMjk3OmludCBkaWdpdGFsX3RnX3NlbmRfZGVwX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEyOTgte1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMzQ3LVxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjEzNDg6c3RhdGljIHZvaWQgZGlnaXRhbF90Z19zZW5kX3BzbF9yZXNfY29tcGxldGUoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMzQ5LVx0XHRcdFx0XHQgICAgIHZvaWQgKmFyZywgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEzNjQtXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6MTM2NTpzdGF0aWMgaW50IGRpZ2l0YWxfdGdfc2VuZF9wc2xfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IGRpZCxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMzY2LVx0XHRcdFx0ICAgdTggcmZfdGVjaClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTM5Ny1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoxMzk4OnN0YXRpYyB2b2lkIGRpZ2l0YWxfdGdfcmVjdl9wc2xfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMzk5LVx0XHRcdFx0ICAgIHN0cnVjdCBza19idWZmICpyZXNwKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xNDY2LVxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjE0Njc6c3RhdGljIHZvaWQgZGlnaXRhbF90Z19zZW5kX2F0cl9yZXNfY29tcGxldGUoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xNDY4LVx0XHRcdFx0XHQgICAgIHZvaWQgKmFyZywgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTE0ODgtXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6MTQ4OTpzdGF0aWMgaW50IGRpZ2l0YWxfdGdfc2VuZF9hdHJfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTQ5MC1cdFx0XHRcdCAgIHN0cnVjdCBkaWdpdGFsX2F0cl9yZXEgKmF0cl9yZXEpXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTE1NDAtXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6MTU0MTp2b2lkIGRpZ2l0YWxfdGdfcmVjdl9hdHJfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xNTQyLVx0XHRcdCAgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYz0xNTg9c3RydWN0IGRpZ2l0YWxfaXNvMTU2OTNfaW52X3JlcyB7XG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xNjMtXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjE2NDpzdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZF9zZGRfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTE2NS1cdFx0XHRcdCAgIHN0cnVjdCBuZmNfdGFyZ2V0ICp0YXJnZXQpO1xubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xNjYtXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjE2NzppbnQgZGlnaXRhbF9pbl9pc29fZGVwX3B1bGxfc29kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTE2OC1cdFx0XHRcdHN0cnVjdCBza19idWZmICpza2IpXG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xOTQtXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjE5NTppbnQgZGlnaXRhbF9pbl9pc29fZGVwX3B1c2hfc29kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTE5Ni1cdFx0XHRcdHN0cnVjdCBza19idWZmICpza2IpXG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0yMTQtXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjIxNTpzdGF0aWMgdm9pZCBkaWdpdGFsX2luX3JlY3ZfYXRzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMjE2LVx0XHRcdFx0c3RydWN0IHNrX2J1ZmYgKnJlc3ApXG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0yNTAtXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjI1MTpzdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZF9yYXRzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTI1Mi1cdFx0XHRcdHN0cnVjdCBuZmNfdGFyZ2V0ICp0YXJnZXQpXG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0yNzEtXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjI3MjpzdGF0aWMgdm9pZCBkaWdpdGFsX2luX3JlY3Zfc2VsX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTI3My1cdFx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTM0MC1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6MzQxOnN0YXRpYyBpbnQgZGlnaXRhbF9pbl9zZW5kX3NlbF9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMzQyLVx0XHRcdFx0ICAgc3RydWN0IG5mY190YXJnZXQgKnRhcmdldCxcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTM4Ni1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6Mzg3OnN0YXRpYyB2b2lkIGRpZ2l0YWxfaW5fcmVjdl9zZGRfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMzg4LVx0XHRcdFx0ICAgIHN0cnVjdCBza19idWZmICpyZXNwKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNDQ3LVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzo0NDg6c3RhdGljIGludCBkaWdpdGFsX2luX3NlbmRfc2RkX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy00NDktXHRcdFx0XHQgICBzdHJ1Y3QgbmZjX3RhcmdldCAqdGFyZ2V0KVxuLS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNDgxLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzo0ODI6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X3NlbnNfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNDgzLVx0XHRcdFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTUyNi1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6NTI3OmludCBkaWdpdGFsX2luX3NlbmRfc2Vuc19yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTggcmZfdGVjaClcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNTI4LXtcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jPTU1NT1pbnQgZGlnaXRhbF9pbl9yZWN2X21pZmFyZV9yZXMoc3RydWN0IHNrX2J1ZmYgKnJlc3ApXG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy01ODAtXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjU4MTpzdGF0aWMgdm9pZCBkaWdpdGFsX2luX3JlY3ZfYXR0cmliX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTU4Mi1cdFx0XHRcdCAgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTYxNy1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6NjE4OnN0YXRpYyBpbnQgZGlnaXRhbF9pbl9zZW5kX2F0dHJpYl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNjE5LVx0XHRcdCAgICAgICBzdHJ1Y3QgbmZjX3RhcmdldCAqdGFyZ2V0LFxuLS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNjUwLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzo2NTE6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X3NlbnNiX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTY1Mi1cdFx0XHRcdCAgICAgIHN0cnVjdCBza19idWZmICpyZXNwKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNzEzLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzo3MTQ6aW50IGRpZ2l0YWxfaW5fc2VuZF9zZW5zYl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTggcmZfdGVjaClcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNzE1LXtcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTc0Ny1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6NzQ4OnN0YXRpYyB2b2lkIGRpZ2l0YWxfaW5fcmVjdl9zZW5zZl9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy03NDktXHRcdFx0XHQgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTgwMS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6ODAyOmludCBkaWdpdGFsX2luX3NlbmRfc2Vuc2ZfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTgwMy17XG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy04NDUtXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjg0NjpzdGF0aWMgdm9pZCBkaWdpdGFsX2luX3JlY3ZfaXNvMTU2OTNfaW52X3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy04NDctXHRcdHZvaWQgKmFyZywgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy04OTItXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjg5MzppbnQgZGlnaXRhbF9pbl9zZW5kX2lzbzE1NjkzX2ludl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTggcmZfdGVjaClcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtODk0LXtcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTkzMi1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6OTMzOnN0YXRpYyBpbnQgZGlnaXRhbF90Z19zZW5kX3NlbF9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldilcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtOTM0LXtcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTk2MS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6OTYyOnN0YXRpYyB2b2lkIGRpZ2l0YWxfdGdfcmVjdl9zZWxfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtOTYzLVx0XHRcdFx0ICAgIHN0cnVjdCBza19idWZmICpyZXNwKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtOTkxLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzo5OTI6c3RhdGljIGludCBkaWdpdGFsX3RnX3NlbmRfc2RkX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy05OTMte1xuLS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTAyNi1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6MTAyNzpzdGF0aWMgdm9pZCBkaWdpdGFsX3RnX3JlY3Zfc2RkX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTEwMjgtXHRcdFx0XHQgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMDU1LVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzoxMDU2OnN0YXRpYyBpbnQgZGlnaXRhbF90Z19zZW5kX3NlbnNfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTEwNTcte1xuLS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTA4NS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6MTA4Njp2b2lkIGRpZ2l0YWxfdGdfcmVjdl9zZW5zX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTEwODctXHRcdFx0ICAgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMTE0LVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzoxMTE1OnN0YXRpYyB2b2lkIGRpZ2l0YWxfdGdfcmVjdl9hdHJfb3Jfc2Vuc2ZfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTExMTYtXHRcdHZvaWQgKmFyZywgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMTI2LVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzoxMTI3OnN0YXRpYyBpbnQgZGlnaXRhbF90Z19zZW5kX3NlbnNmX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMTI4LVx0XHRcdCAgICAgIHN0cnVjdCBkaWdpdGFsX3NlbnNmX3JlcSAqc2Vuc2ZfcmVxKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTE3OC1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6MTE3OTp2b2lkIGRpZ2l0YWxfdGdfcmVjdl9zZW5zZl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMTgwLVx0XHRcdCAgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTEyMjAtXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjEyMjE6c3RhdGljIGludCBkaWdpdGFsX3RnX2NvbmZpZ19uZmNhKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTEyMjIte1xuLS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTIzMy1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6MTIzNDppbnQgZGlnaXRhbF90Z19saXN0ZW5fbmZjYShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMjM1LXtcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTEyNDQtXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjEyNDU6c3RhdGljIGludCBkaWdpdGFsX3RnX2NvbmZpZ19uZmNmKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTEyNDYte1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTM0MzkKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiA1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE5GQyBEaWdpdGFsIFVucmVnaXN0cmF0aW9uKioKCk9rYXksIHNvIHRoZSBjb25maWd1cmF0aW9uIGluIHBsYXkgaGVyZSBpcyBgQ09ORklHX05GQ19ESUdJVEFMYC4gVGhhdCBuYXJyb3dzIGRvd24gdGhlIHNjb3BlIGEgYml0LCB3aGljaCBpcyBhbHdheXMgaGVscGZ1bC4gUmlnaHQgbm93LCBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IGNoYW5nZXMgdGhlIGBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZWAgZnVuY3Rpb24uIFNwZWNpZmljYWxseSwgaXQmIzM5O3MgbG9jYXRlZCBpbiBgbmV0L25mYy9kaWdpdGFsX2NvcmUuY2AuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBsZXQmIzM5O3MgdHJhY2UgdGhpcyBmdW5jdGlvbi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGUgY2hhbmdlLCBzbyBJIG5lZWQgdG8gZmluZCBvdXQgKmV4YWN0bHkqIHdoZXJlIGBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZWAgaXMgY2FsbGVkLiBUaGUgY29udGV4dCBvZiBpdHMgdXNhZ2UgaXMga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIG1vZGlmaWNhdGlvbiYjMzk7cyBpbXBhY3QuIEkmIzM5O2xsIG5lZWQgdG8gdXNlIG15IHVzdWFsIHRvb2xzIHRvIHBlcmZvcm0gYSBjcm9zcy1yZWZlcmVuY2Ugc2VhcmNoIGFuZCBzZWUgd2hhdCBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtIHJlbHkgb24gdGhpcyBmdW5jdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxMTozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25mYy9uZmNzaW0uYz00MTI9c3RhdGljIHZvaWQgbmZjc2ltX2RldmljZV9mcmVlKHN0cnVjdCBuZmNzaW0gKmRldilcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQxMy17XG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0MTQ6XHRuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZShkZXYtXHUwMDNlbmZjX2RpZ2l0YWxfZGV2KTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQxNS1cbi0tXG5kcml2ZXJzL25mYy9wb3J0MTAwLmM9MTYwOD1zdGF0aWMgdm9pZCBwb3J0MTAwX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSlcbi0tXG5kcml2ZXJzL25mYy9wb3J0MTAwLmMtMTYxNC1cbmRyaXZlcnMvbmZjL3BvcnQxMDAuYzoxNjE1Olx0bmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UoZGV2LVx1MDAzZW5mY19kaWdpdGFsX2Rldik7XG5kcml2ZXJzL25mYy9wb3J0MTAwLmMtMTYxNi1cdG5mY19kaWdpdGFsX2ZyZWVfZGV2aWNlKGRldi1cdTAwM2VuZmNfZGlnaXRhbF9kZXYpO1xuLS1cbmRyaXZlcnMvbmZjL3N0OTVoZi9jb3JlLmM9MTE5Nj1zdGF0aWMgdm9pZCBzdDk1aGZfcmVtb3ZlKHN0cnVjdCBzcGlfZGV2aWNlICpuZmNfc3BpX2Rldilcbi0tXG5kcml2ZXJzL25mYy9zdDk1aGYvY29yZS5jLTEyMDctXG5kcml2ZXJzL25mYy9zdDk1aGYvY29yZS5jOjEyMDg6XHRuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZShzdGNvbnRleHQtXHUwMDNlZGRldik7XG5kcml2ZXJzL25mYy9zdDk1aGYvY29yZS5jLTEyMDktXHRuZmNfZGlnaXRhbF9mcmVlX2RldmljZShzdGNvbnRleHQtXHUwMDNlZGRldik7XG4tLVxuZHJpdmVycy9uZmMvdHJmNzk3MGEuYz0yMjIwPXN0YXRpYyB2b2lkIHRyZjc5NzBhX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKVxuLS1cbmRyaXZlcnMvbmZjL3RyZjc5NzBhLmMtMjIyOS1cbmRyaXZlcnMvbmZjL3RyZjc5NzBhLmM6MjIzMDpcdG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlKHRyZi1cdTAwM2VkZGV2KTtcbmRyaXZlcnMvbmZjL3RyZjc5NzBhLmMtMjIzMS1cdG5mY19kaWdpdGFsX2ZyZWVfZGV2aWNlKHRyZi1cdTAwM2VkZGV2KTtcbi0tXG5pbmNsdWRlL25ldC9uZmMvZGlnaXRhbC5oPTI0NT1pbnQgbmZjX2RpZ2l0YWxfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKm5kZXYpO1xuaW5jbHVkZS9uZXQvbmZjL2RpZ2l0YWwuaDoyNDY6dm9pZCBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpuZGV2KTtcbmluY2x1ZGUvbmV0L25mYy9kaWdpdGFsLmgtMjQ3LVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9ODMzPUVYUE9SVF9TWU1CT0wobmZjX2RpZ2l0YWxfcmVnaXN0ZXJfZGV2aWNlKTtcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODM0LVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo4MzU6dm9pZCBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MzYte1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODYyLX1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6ODYzOkVYUE9SVF9TWU1CT0wobmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UpO1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04NjQtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTQ0NzIKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiAxMDYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIE5GQyBEcml2ZXIgUmVtb3ZhbCBGdW5jdGlvbnMqKgoKT2theSwgc28gSSYjMzk7bSBzZWVpbmcgdGhhdCB0aGUgYG5mY3NpbV9kZXZpY2VfZnJlZWAgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkIGluIG11bHRpcGxlIGRyaXZlciByZW1vdmFsIGZ1bmN0aW9uczogYG5mY3NpbV9kZXZpY2VfZnJlZWAgaW4gdGhlIGBuZmNzaW0uY2AgZmlsZSwgYXMgd2VsbCBhcyBgcG9ydDEwMF9kaXNjb25uZWN0YCBpbiBgcG9ydDEwMC5jYCwgYW5kIGFsc28gYHN0OTVoZl9yZW1vdmVgLCBhbmQgYHRyZjc5NzBhX3JlbW92ZWAuIFRoYXQmIzM5O3MgaW50ZXJlc3RpbmcsIGFuZCB3b3J0aCBkaWdnaW5nIGludG8uIEdpdmVuIHdoYXQgSSBrbm93LCB0aGUgYG5mY3NpbWAgZHJpdmVyIGlzIHBlcmZlY3QgZm9yIG15IGZ1enppbmcgZXhwZXJpbWVudHMuCgpOb3csIG15IG5leHQgc3RlcCBpcyBjbGVhciDigJMgSSBuZWVkIHRvIGdldCBhIGJldHRlciBoYW5kbGUgb24gdGhlIGBuZmNzaW1gIHZpcnR1YWwgTkZDIGRyaXZlci4gSSBzaG91bGQgc3RhcnQgYnkgZXhhbWluaW5nIGl0cyBLY29uZmlnIGZpbGUgaW4gYGRyaXZlcnMvbmZjL25mY3NpbS5jYC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIGdvb2Qgb3ZlcnZpZXcgb2YgaXRzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgZGVwZW5kZW5jaWVzLiBUaGlzIHdpbGwgaGVscCBtZSB1bmRlcnN0YW5kIGhvdyBpdCBjYW4gYmUgZW5hYmxlZCBvciBkaXNhYmxlZCwgYW5kIHdoYXQgZmVhdHVyZXMgaXQgb2ZmZXJzIGZvciBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxMTozODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZmNzaW0mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25mYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZmMvTWFrZWZpbGU9MTA9b2JqLSQoQ09ORklHX05GQ19NRUlfUEhZKVx0JiM0Mzs9IG1laV9waHkub1xuZHJpdmVycy9uZmMvTWFrZWZpbGU6MTE6b2JqLSQoQ09ORklHX05GQ19TSU0pXHRcdCYjNDM7PSBuZmNzaW0ub1xuZHJpdmVycy9uZmMvTWFrZWZpbGUtMTItb2JqLSQoQ09ORklHX05GQ19QT1JUMTAwKVx0JiM0Mzs9IHBvcnQxMDAub1xuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMwLVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzE6c3RydWN0IG5mY3NpbSB7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMi1cdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKm5mY19kaWdpdGFsX2Rldjtcbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zNi1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjM3Olx0c3RydWN0IG5mY3NpbV9saW5rICpsaW5rX2luO1xuZHJpdmVycy9uZmMvbmZjc2ltLmM6Mzg6XHRzdHJ1Y3QgbmZjc2ltX2xpbmsgKmxpbmtfb3V0O1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzktXG4tLVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNTEtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo1MjpzdHJ1Y3QgbmZjc2ltX2xpbmsge1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtNTMtXHRzdHJ1Y3QgbXV0ZXggbG9jaztcbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy02NC1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjY1OnN0YXRpYyBzdHJ1Y3QgbmZjc2ltX2xpbmsgKm5mY3NpbV9saW5rX25ldyh2b2lkKVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNjYte1xuZHJpdmVycy9uZmMvbmZjc2ltLmM6Njc6XHRzdHJ1Y3QgbmZjc2ltX2xpbmsgKmxpbms7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy02OC1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjY5Olx0bGluayA9IGt6YWxsb2Nfb2JqKHN0cnVjdCBuZmNzaW1fbGluayk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy03MC1cdGlmICghbGluaylcbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy03OC1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjc5OnN0YXRpYyB2b2lkIG5mY3NpbV9saW5rX2ZyZWUoc3RydWN0IG5mY3NpbV9saW5rICpsaW5rKVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtODAte1xuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTg0LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6ODU6c3RhdGljIHZvaWQgbmZjc2ltX2xpbmtfcmVjdl93YWtlKHN0cnVjdCBuZmNzaW1fbGluayAqbGluaylcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTg2LXtcbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy05MC1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjkxOnN0YXRpYyB2b2lkIG5mY3NpbV9saW5rX3NldF9za2Ioc3RydWN0IG5mY3NpbV9saW5rICpsaW5rLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtOTItXHRcdFx0XHR1OCByZl90ZWNoLCB1OCBtb2RlKVxuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTEwMy1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjEwNDpzdGF0aWMgdm9pZCBuZmNzaW1fbGlua19yZWN2X2NhbmNlbChzdHJ1Y3QgbmZjc2ltX2xpbmsgKmxpbmspXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xMDUte1xuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTExMS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjExMjpcdG5mY3NpbV9saW5rX3JlY3Zfd2FrZShsaW5rKTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTExMy19XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xMTQtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzoxMTU6c3RhdGljIHZvaWQgbmZjc2ltX2xpbmtfc2h1dGRvd24oc3RydWN0IG5mY3NpbV9saW5rICpsaW5rKVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTE2LXtcbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xMjMtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzoxMjQ6XHRuZmNzaW1fbGlua19yZWN2X3dha2UobGluayk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xMjUtfVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTI2LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MTI3OnN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqbmZjc2ltX2xpbmtfcmVjdl9za2Ioc3RydWN0IG5mY3NpbV9saW5rICpsaW5rLFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTI4LVx0XHRcdFx0XHQgICAgaW50IHRpbWVvdXQsIHU4IHJmX3RlY2gsIHU4IG1vZGUpXG4tLVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTY5LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MTcwOnN0YXRpYyB2b2lkIG5mY3NpbV9zZW5kX3dxKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTE3MS17XG5kcml2ZXJzL25mYy9uZmNzaW0uYzoxNzI6XHRzdHJ1Y3QgbmZjc2ltICpkZXYgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IG5mY3NpbSwgc2VuZF93b3JrLndvcmspO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTczLVxuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTE3Ni1cdCAqIGlzIHRoZSBsaW5rX2luIG9mIHRoZSBwZWVyIGRldmljZS4gVGhlIGV4Y2hhbmdlZCBza2IgaGFzIGFscmVhZHkgYmVlblxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MTc3Olx0ICogc3RvcmVkIGluIHRoZSBkZXYtXHUwMDNlbGlua19vdXQgdGhyb3VnaCBuZmNzaW1fbGlua19zZXRfc2tiKCkuXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xNzgtXHQgKi9cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjE3OTpcdG5mY3NpbV9saW5rX3JlY3Zfd2FrZShkZXYtXHUwMDNlbGlua19vdXQpO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTgwLX1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTE4MS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjE4MjpzdGF0aWMgdm9pZCBuZmNzaW1fcmVjdl93cShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xODMte1xuZHJpdmVycy9uZmMvbmZjc2ltLmM6MTg0Olx0c3RydWN0IG5mY3NpbSAqZGV2ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBuZmNzaW0sIHJlY3Zfd29yayk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xODUtXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTg2LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MTg3Olx0c2tiID0gbmZjc2ltX2xpbmtfcmVjdl9za2IoZGV2LVx1MDAzZWxpbmtfaW4sIGRldi1cdTAwM2VyZWN2X3RpbWVvdXQsXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xODgtXHRcdFx0XHQgICBkZXYtXHUwMDNlcmZfdGVjaCwgZGV2LVx1MDAzZW1vZGUpO1xuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTIwMC1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjIwMTpzdGF0aWMgaW50IG5mY3NpbV9zZW5kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yMDItXHRcdCAgICAgICB1MTYgdGltZW91dCwgbmZjX2RpZ2l0YWxfY21kX2NvbXBsZXRlX3QgY2IsIHZvaWQgKmFyZylcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTIwMy17XG5kcml2ZXJzL25mYy9uZmNzaW0uYzoyMDQ6XHRzdHJ1Y3QgbmZjc2ltICpkZXYgPSBuZmNfZGlnaXRhbF9nZXRfZHJ2ZGF0YShkZGV2KTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTIwNS1cdHU4IGRlbGF5O1xuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTIyNi1cdGlmIChza2IpIHtcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjIyNzpcdFx0bmZjc2ltX2xpbmtfc2V0X3NrYihkZXYtXHUwMDNlbGlua19vdXQsIHNrYiwgZGV2LVx1MDAzZXJmX3RlY2gsXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yMjgtXHRcdFx0XHQgICAgZGV2LVx1MDAzZW1vZGUpO1xuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTIzOS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI0MDpzdGF0aWMgdm9pZCBuZmNzaW1fYWJvcnRfY21kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yNDEte1xuZHJpdmVycy9uZmMvbmZjc2ltLmM6MjQyOlx0Y29uc3Qgc3RydWN0IG5mY3NpbSAqZGV2ID0gbmZjX2RpZ2l0YWxfZ2V0X2RydmRhdGEoZGRldik7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yNDMtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzoyNDQ6XHRuZmNzaW1fbGlua19yZWN2X2NhbmNlbChkZXYtXHUwMDNlbGlua19pbik7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yNDUtfVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjQ2LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MjQ3OnN0YXRpYyBpbnQgbmZjc2ltX3N3aXRjaF9yZihzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBib29sIG9uKVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjQ4LXtcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI0OTpcdHN0cnVjdCBuZmNzaW0gKmRldiA9IG5mY19kaWdpdGFsX2dldF9kcnZkYXRhKGRkZXYpO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjUwLVxuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTI1NS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI1NjpzdGF0aWMgaW50IG5mY3NpbV9pbl9jb25maWd1cmVfaHcoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTI1Ny1cdFx0XHRcdFx0ICBpbnQgdHlwZSwgaW50IHBhcmFtKVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjU4LXtcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI1OTpcdHN0cnVjdCBuZmNzaW0gKmRldiA9IG5mY19kaWdpdGFsX2dldF9kcnZkYXRhKGRkZXYpO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjYwLVxuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTI3OC1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI3OTpzdGF0aWMgaW50IG5mY3NpbV9pbl9zZW5kX2NtZChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjgwLVx0XHRcdCAgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MTYgdGltZW91dCxcbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yODIte1xuZHJpdmVycy9uZmMvbmZjc2ltLmM6MjgzOlx0cmV0dXJuIG5mY3NpbV9zZW5kKGRkZXYsIHNrYiwgdGltZW91dCwgY2IsIGFyZyk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yODQtfVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjg1LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6Mjg2OnN0YXRpYyBpbnQgbmZjc2ltX3RnX2NvbmZpZ3VyZV9odyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjg3LVx0XHRcdFx0XHQgIGludCB0eXBlLCBpbnQgcGFyYW0pXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yODgte1xuZHJpdmVycy9uZmMvbmZjc2ltLmM6Mjg5Olx0c3RydWN0IG5mY3NpbSAqZGV2ID0gbmZjX2RpZ2l0YWxfZ2V0X2RydmRhdGEoZGRldik7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yOTAtXG4tLVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzA4LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzA5OnN0YXRpYyBpbnQgbmZjc2ltX3RnX3NlbmRfY21kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMTAtXHRcdFx0ICAgICAgIHN0cnVjdCBza19idWZmICpza2IsIHUxNiB0aW1lb3V0LFxuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMxMi17XG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMTM6XHRyZXR1cm4gbmZjc2ltX3NlbmQoZGRldiwgc2tiLCB0aW1lb3V0LCBjYiwgYXJnKTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMxNC19XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMTUtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMTY6c3RhdGljIGludCBuZmNzaW1fdGdfbGlzdGVuKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHUxNiB0aW1lb3V0LFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzE3LVx0XHRcdCAgICBuZmNfZGlnaXRhbF9jbWRfY29tcGxldGVfdCBjYiwgdm9pZCAqYXJnKVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzE4LXtcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjMxOTpcdHJldHVybiBuZmNzaW1fc2VuZChkZGV2LCBOVUxMLCB0aW1lb3V0LCBjYiwgYXJnKTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMyMC19XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMjEtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMjI6c3RhdGljIGNvbnN0IHN0cnVjdCBuZmNfZGlnaXRhbF9vcHMgbmZjc2ltX2RpZ2l0YWxfb3BzID0ge1xuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzIzOlx0LmluX2NvbmZpZ3VyZV9odyA9IG5mY3NpbV9pbl9jb25maWd1cmVfaHcsXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMjQ6XHQuaW5fc2VuZF9jbWQgPSBuZmNzaW1faW5fc2VuZF9jbWQsXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMjUtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMjY6XHQudGdfbGlzdGVuID0gbmZjc2ltX3RnX2xpc3RlbixcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjMyNzpcdC50Z19jb25maWd1cmVfaHcgPSBuZmNzaW1fdGdfY29uZmlndXJlX2h3LFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzI4Olx0LnRnX3NlbmRfY21kID0gbmZjc2ltX3RnX3NlbmRfY21kLFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzI5LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzMwOlx0LmFib3J0X2NtZCA9IG5mY3NpbV9hYm9ydF9jbWQsXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMzE6XHQuc3dpdGNoX3JmID0gbmZjc2ltX3N3aXRjaF9yZixcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMzMi19O1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzMzLVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzM0OnN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpuZmNzaW1fZGVidWdmc19yb290O1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzM1LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzM2OnN0YXRpYyB2b2lkIG5mY3NpbV9kZWJ1Z2ZzX2luaXQodm9pZClcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMzNy17XG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMzg6XHRuZmNzaW1fZGVidWdmc19yb290ID0gZGVidWdmc19jcmVhdGVfZGlyKFwmIzM0O25mY3NpbVwmIzM0OywgTlVMTCk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMzktfVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzQwLVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzQxOnN0YXRpYyB2b2lkIG5mY3NpbV9kZWJ1Z2ZzX3JlbW92ZSh2b2lkKVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzQyLXtcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjM0MzpcdGRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShuZmNzaW1fZGVidWdmc19yb290KTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM0NC19XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zNDUtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozNDY6c3RhdGljIHZvaWQgbmZjc2ltX2RlYnVnZnNfaW5pdF9kZXYoc3RydWN0IG5mY3NpbSAqZGV2KVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzQ3LXtcbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zNTItXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozNTM6XHRpZiAoIW5mY3NpbV9kZWJ1Z2ZzX3Jvb3QpIHtcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjM1NDpcdFx0TkZDU0lNX0VSUihkZXYsIFwmIzM0O25mY3NpbSBkZWJ1Z2ZzIG5vdCBpbml0aWFsaXplZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zNTUtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zNjQtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozNjU6XHRkZXZfZGlyID0gZGVidWdmc19jcmVhdGVfZGlyKGRldm5hbWUsIG5mY3NpbV9kZWJ1Z2ZzX3Jvb3QpO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzY2LVxuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM2OS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjM3MDpzdGF0aWMgc3RydWN0IG5mY3NpbSAqbmZjc2ltX2RldmljZV9uZXcoc3RydWN0IG5mY3NpbV9saW5rICpsaW5rX2luLFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzcxOlx0XHRcdFx0XHRzdHJ1Y3QgbmZjc2ltX2xpbmsgKmxpbmtfb3V0KVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzcyLXtcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjM3MzpcdHN0cnVjdCBuZmNzaW0gKmRldjtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM3NC1cdGludCByYztcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM3NS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjM3NjpcdGRldiA9IGt6YWxsb2Nfb2JqKHN0cnVjdCBuZmNzaW0pO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzc3LVx0aWYgKCFkZXYpXG4tLVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzc5LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzgwOlx0SU5JVF9ERUxBWUVEX1dPUksoXHUwMDI2ZGV2LVx1MDAzZXNlbmRfd29yaywgbmZjc2ltX3NlbmRfd3EpO1xuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzgxOlx0SU5JVF9XT1JLKFx1MDAyNmRldi1cdTAwM2VyZWN2X3dvcmssIG5mY3NpbV9yZWN2X3dxKTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM4Mi1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM4My1cdGRldi1cdTAwM2VuZmNfZGlnaXRhbF9kZXYgPVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6Mzg0Olx0XHRcdG5mY19kaWdpdGFsX2FsbG9jYXRlX2RldmljZShcdTAwMjZuZmNzaW1fZGlnaXRhbF9vcHMsXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zODUtXHRcdFx0XHRcdFx0ICAgIE5GQ19QUk9UT19ORkNfREVQX01BU0ssXG4tLVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDA2LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDA3Olx0bmZjc2ltX2RlYnVnZnNfaW5pdF9kZXYoZGV2KTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQwOC1cbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00MTEtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0MTI6c3RhdGljIHZvaWQgbmZjc2ltX2RldmljZV9mcmVlKHN0cnVjdCBuZmNzaW0gKmRldilcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQxMy17XG4tLVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDE3LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDE4Olx0bmZjc2ltX2xpbmtfc2h1dGRvd24oZGV2LVx1MDAzZWxpbmtfaW4pO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDE5LVxuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQyNy1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQyODpzdGF0aWMgc3RydWN0IG5mY3NpbSAqZGV2MDtcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQyOTpzdGF0aWMgc3RydWN0IG5mY3NpbSAqZGV2MTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQzMC1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQzMTpzdGF0aWMgaW50IF9faW5pdCBuZmNzaW1faW5pdCh2b2lkKVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDMyLXtcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQzMzpcdHN0cnVjdCBuZmNzaW1fbGluayAqbGluazAsICpsaW5rMTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQzNC1cdGludCByYztcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQzNS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQzNjpcdGxpbmswID0gbmZjc2ltX2xpbmtfbmV3KCk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0Mzc6XHRsaW5rMSA9IG5mY3NpbV9saW5rX25ldygpO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDM4LVx0aWYgKCFsaW5rMCB8fCAhbGluazEpIHtcbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NDItXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0NDM6XHRuZmNzaW1fZGVidWdmc19pbml0KCk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NDQtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0NDU6XHRkZXYwID0gbmZjc2ltX2RldmljZV9uZXcobGluazAsIGxpbmsxKTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ0Ni1cdGlmIChJU19FUlIoZGV2MCkpIHtcbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NTAtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0NTE6XHRkZXYxID0gbmZjc2ltX2RldmljZV9uZXcobGluazEsIGxpbmswKTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ1Mi1cdGlmIChJU19FUlIoZGV2MSkpIHtcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ1MzpcdFx0bmZjc2ltX2RldmljZV9mcmVlKGRldjApO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDU0LVxuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ1OC1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ1OTpcdHByX2luZm8oXCYjMzQ7bmZjc2ltIFwmIzM0OyBORkNTSU1fVkVSU0lPTiBcJiMzNDsgaW5pdGlhbGl6ZWRcXG5cJiMzNDspO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDYwLVxuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ2My1leGl0X2VycjpcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ2NDpcdHByX2VycihcJiMzNDtGYWlsZWQgdG8gaW5pdGlhbGl6ZSBuZmNzaW0gZHJpdmVyICglZClcXG5cJiMzNDssIHJjKTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ2NS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ2Ni1cdGlmIChsaW5rMClcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ2NzpcdFx0bmZjc2ltX2xpbmtfZnJlZShsaW5rMCk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NjgtXHRpZiAobGluazEpXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0Njk6XHRcdG5mY3NpbV9saW5rX2ZyZWUobGluazEpO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDcwLVxuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ3My1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ3NDpzdGF0aWMgdm9pZCBfX2V4aXQgbmZjc2ltX2V4aXQodm9pZClcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ3NS17XG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0NzY6XHRzdHJ1Y3QgbmZjc2ltX2xpbmsgKmxpbmswLCAqbGluazE7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NzctXG4tLVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDgwLVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDgxOlx0bmZjc2ltX2RldmljZV9mcmVlKGRldjApO1xuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDgyOlx0bmZjc2ltX2RldmljZV9mcmVlKGRldjEpO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDgzLVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDg0Olx0bmZjc2ltX2xpbmtfZnJlZShsaW5rMCk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0ODU6XHRuZmNzaW1fbGlua19mcmVlKGxpbmsxKTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ4Ni1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ4NzpcdG5mY3NpbV9kZWJ1Z2ZzX3JlbW92ZSgpO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDg4LX1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ4OS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ5MDptb2R1bGVfaW5pdChuZmNzaW1faW5pdCk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0OTE6bW9kdWxlX2V4aXQobmZjc2ltX2V4aXQpO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDkyLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxMTozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDMwOAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDI1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEltcGxpY2F0aW9ucyBvZiB0aGUgTkZDIENvbmZpZ3VyYXRpb24gQ2hhbmdlKioKCk9rYXksIHNvIEkgc2VlIHRoaXMgcGF0Y2gsIGFuZCBpdCYjMzk7cyBtb2RpZnlpbmcgdGhlIGBuZmNzaW1gIGNvbmZpZ3VyYXRpb24gc3BlY2lmaWNhbGx5IHdpdGggYENPTkZJR19ORkNfU0lNYC4gVGhlIGFjdHVhbCBjb2RlIGNoYW5nZSByZXBsYWNlcyBgY2FuY2VsX3dvcmtfc3luY2Agd2l0aCBgZGlzYWJsZV93b3JrX3N5bmNgIHdpdGhpbiBgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VgLiBGdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBjaGFuZ2UgdGhhdCBuZWVkcyBjYXJlZnVsIGNvbnNpZGVyYXRpb24uCgpMZXQmIzM5O3MgYnJlYWsgZG93biB3aGVyZSB0aGlzIGltcGFjdHMgdGhpbmdzLiBgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VgIGlzIGludm9rZWQgd2hlbiBhIGRldmljZSBpcyB1bnJlZ2lzdGVyZWQuIFRoYXQmIzM5O3MgZWl0aGVyIG1vZHVsZSB1bmxvYWRpbmcsIG9yIHBoeXNpY2FsIGRpc2Nvbm5lY3Rpb24uIEluIGBuZmNzaW1gLCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbnNpZGUgYG5mY3NpbV9kZXZpY2VfZnJlZWAsIHdoaWNoIGdldHMgY2FsbGVkIGVpdGhlciBmcm9tIGBuZmNzaW1fZXhpdGAgb3IgZnJvbSBhbiBlcnJvciBjb25kaXRpb24gaW4gYG5mY3NpbV9pbml0YC4KCldhaXQsIGRvZXMgYG5mY3NpbWAgZ2V0IGR5bmFtaWNhbGx5IGNyZWF0ZWQgYW5kIGRlc3Ryb3llZD8gTm8sIGl0JiMzOTtzIGEgbW9kdWxlLCBpdCBzZWVtcyBwcmV0dHkgc3RhdGljLiBCdXQgaG9sZCBvbiwgd2hhdCBhYm91dCB0aGUgZGV2aWNlcyBpdCAqaW50ZXJmYWNlcyogd2l0aD8gYHBvcnQxMDBgIGlzIGEgVVNCIGRyaXZlciwgc28gaXQgKmNhbiogYmUgaG90cGx1Z2dlZC4gQW5kIHRoZW4gYHN0OTVoZmAgYW5kIGB0cmY3OTcwYWAgYXJlIFNQSSBkcml2ZXJzLCBzbyB0aGV5ICpjYW4qIGJlIHVuYm91bmQuIFRoYXQmIzM5O3Mgd2hlcmUgdGhpbmdzIGdldCBpbnRlcmVzdGluZy4gRnV6emluZywgZm9yIGV4YW1wbGUsIGNvdWxkIHRyaWdnZXIgZGV2aWNlIHVuYmluZGluZyB2aWEgc3lzZnMgb3IgYSBVU0IgZGlzY29ubmVjdCB2aWEgYSBkdW1teSBIQ0QuCgpUaGVyZWZvcmUsIGBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZWAgaXMgZGVmaW5pdGVseSBhIHJlYWNoYWJsZSBjb2RlIHBhdGguIFRpbWUgdG8gZ28gYmFjayBhbmQgZG91YmxlIGNoZWNrIGBuZXQvbmZjL2RpZ2l0YWxfY29yZS5jYCBhZ2FpbiBhbmQgY29uZmlybSBteSB1bmRlcnN0YW5kaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxMTozODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9uZmMvZGlnaXRhbF9jb3JlLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L25mYy9kaWdpdGFsX2NvcmUuYz04MzM9RVhQT1JUX1NZTUJPTChuZmNfZGlnaXRhbF9yZWdpc3Rlcl9kZXZpY2UpO1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MzQtXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjgzNTp2b2lkIG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTgzNi17XG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04NjItfVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo4NjM6RVhQT1JUX1NZTUJPTChuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZSk7XG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTg2NC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjExMTcKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhbmFseXNpcyBvZiB0aGUgYG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlYCBmdW5jdGlvbjoKCioqRGlzc2VjdGluZyBgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VgKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VgIGZ1bmN0aW9uLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gdW5kZXJzdGFuZCBpdHMgY29yZSBwdXJwb3NlOiBpdCYjMzk7cyBkZXNpZ25lZCB0byAqdW5yZWdpc3RlciogYW4gTkZDIGRpZ2l0YWwgZGV2aWNlLCB3aGljaCBpbXBsaWVzIHdlJiMzOTtyZSB0YWtpbmcgaXQgb3V0IG9mIHRoZSBzeXN0ZW0uIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhhdCByZW1vdmFsLiBXaGF0IHJlc291cmNlcyBhcmUgYmVpbmcgZnJlZWQ/IEFyZSB0aGVyZSBhbnkgYXNzb2NpYXRlZCBkYXRhIHN0cnVjdHVyZXMgb3IgY2FsbGJhY2tzIHRoYXQgbmVlZCB0byBiZSBjbGVhbmVkIHVwPwoKSSYjMzk7bSBpbW1lZGlhdGVseSB0aGlua2luZyBhYm91dCBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zLiBVbnJlZ2lzdHJhdGlvbiBsaWtlbHkgbmVlZHMgdG8gYmUgdGhyZWFkLXNhZmUuIEkgbmVlZCB0byBjaGVjayBmb3IgYW55IGxvY2tpbmcgbWVjaGFuaXNtcyB1c2VkIHdpdGhpbiB0aGlzIGZ1bmN0aW9uIHRvIHByb3RlY3Qgc2hhcmVkIHJlc291cmNlcywgZXNwZWNpYWxseSBpZiB0aGUgTkZDIGRldmljZSBpcyBhY3RpdmVseSBiZWluZyB1c2VkIGJ5IGFub3RoZXIgcHJvY2Vzcy4gVGhpcyBjb3VsZCBiZSBhIGNyaXRpY2FsIGFyZWEsIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gY3Jhc2hlcyBvciBkYXRhIGNvcnJ1cHRpb24gaWYgbm90IGhhbmRsZWQgY2FyZWZ1bGx5LgoKRnVydGhlcm1vcmUsIEkgaGF2ZSB0byBjb25zaWRlciB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucy4gV2hhdCBoYXBwZW5zIGlmIHRoaXMgdW5yZWdpc3RyYXRpb24gb2NjdXJzIHdoaWxlIGEgdHJhbnNhY3Rpb24gaXMgaW4gcHJvZ3Jlc3M/IERvZXMgaXQgZ3JhY2VmdWxseSBoYW5kbGUgcGVuZGluZyBvcGVyYXRpb25zLCBvciBkb2VzIGl0IHNpbXBseSBhYm9ydCB0aGVtPyBBcmUgdGhlcmUgYW55IGNsZWFudXAgcHJvY2VkdXJlcyBmb3IgaW5jb21wbGV0ZSBjb21tYW5kcyBvciBkYXRhIGV4Y2hhbmdlcz8gVGhlIHRpbWluZyBoZXJlIGlzIGtleS4KCk15IGZvY3VzIHNob3VsZCBiZSBvbiBob3cgdGhlIHVucmVnaXN0cmF0aW9uIGFmZmVjdHMgb3RoZXIgbW9kdWxlcyBvciBzdWJzeXN0ZW1zLiBEb2VzIGl0IG5vdGlmeSBhbnkgbGlzdGVuZXJzIG9yIGNsaWVudHMgYWJvdXQgdGhlIHJlbW92YWw/IElzIHRoZXJlIGFueSBtZWNoYW5pc20gZm9yIHByZXZlbnRpbmcgbmV3IG9wZXJhdGlvbnMgb24gdGhlIHVucmVnaXN0ZXJlZCBkZXZpY2U/IEkgbmVlZCB0byBsb29rIGZvciBjYWxscyB0byBvdGhlciBORkMtcmVsYXRlZCBmdW5jdGlvbnMsIGFuZCBjb25zaWRlciBob3cgdGhlIHN0YXRlIGlzIGJlaW5nIG1hbmFnZWQgYWNyb3NzIHRoZSBzeXN0ZW0gZHVyaW5nIHRoaXMgdHJhbnNpdGlvbi4KCkkgc2hvdWxkIGFsc28gYmUgb24gdGhlIGxvb2tvdXQgZm9yIG1lbW9yeSBsZWFrcyBvciBkYW5nbGluZyBwb2ludGVycy4gQXJlIHRoZSBkZXZpY2UmIzM5O3MgYXNzb2NpYXRlZCBkYXRhIHN0cnVjdHVyZXMgcHJvcGVybHkgZGVhbGxvY2F0ZWQ/IEFyZSB0aGVyZSBhbnkgcG90ZW50aWFsIGlzc3VlcyB3aXRoIGRvdWJsZS1mcmVlcyBvciBpbnZhbGlkIG1lbW9yeSBhY2Nlc3NlcyBhZnRlciB0aGUgdW5yZWdpc3RyYXRpb24/IFRoaXMgdW5yZWdpc3RyYXRpb24gaXMgYSBjcml0aWNhbCBwb2ludCB0aGF0IGNhbiBlYXNpbHkgbGVhZCB0byBhIHN5c3RlbSBjcmFzaCBpZiBub3QgZG9uZSBjb3JyZWN0bHkuIEkgd2FudCB0byBwYXkgYXR0ZW50aW9uIHRvIHRoYXQuCgpGaW5hbGx5LCBlcnJvciBoYW5kbGluZyBpcyBnb2luZyB0byBiZSBjcnVjaWFsLiBIb3cgZG9lcyB0aGlzIGZ1bmN0aW9uIGRlYWwgd2l0aCBmYWlsdXJlcyBkdXJpbmcgdGhlIHVucmVnaXN0cmF0aW9uIHByb2Nlc3M/IERvZXMgaXQgcmV0dXJuIHNwZWNpZmljIGVycm9yIGNvZGVzLCBvciBkb2VzIGl0IHNpbXBseSBsb2cgZXJyb3JzPyBUaGUgZXJyb3IgaGFuZGxpbmcgc2NoZW1lIG5lZWRzIHRvIGJlIHJvYnVzdCwgcGFydGljdWxhcmx5IGZvciBhIGNyaXRpY2FsIGZ1bmN0aW9uIGxpa2UgdGhpcyB0aGF0IGNhbiBhZmZlY3QgdGhlIHN0YWJpbGl0eSBvZiB0aGUgZW50aXJlIE5GQyBzdGFjay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbmZjL2RpZ2l0YWxfY29yZS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogODMwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA4MzA6XHR7XG4gODMxOlx0XHRyZXR1cm4gbmZjX3JlZ2lzdGVyX2RldmljZShkZGV2LVx1MDAzZW5mY19kZXYpO1xuIDgzMjpcdH1cbiA4MzM6XHRFWFBPUlRfU1lNQk9MKG5mY19kaWdpdGFsX3JlZ2lzdGVyX2RldmljZSk7XG4gODM0Olx0XG4gODM1Olx0dm9pZCBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxuIDgzNjpcdHtcbiA4Mzc6XHRcdHN0cnVjdCBkaWdpdGFsX2NtZCAqY21kLCAqbjtcbiA4Mzg6XHRcbiA4Mzk6XHRcdG5mY191bnJlZ2lzdGVyX2RldmljZShkZGV2LVx1MDAzZW5mY19kZXYpO1xuIDg0MDpcdFxuIDg0MTpcdFx0bXV0ZXhfbG9jayhcdTAwMjZkZGV2LVx1MDAzZXBvbGxfbG9jayk7XG4gODQyOlx0XHRkZGV2LVx1MDAzZXBvbGxfdGVjaF9jb3VudCA9IDA7XG4gODQzOlx0XHRtdXRleF91bmxvY2soXHUwMDI2ZGRldi1cdTAwM2Vwb2xsX2xvY2spO1xuIDg0NDpcdFxuIDg0NTpcdFx0Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKFx1MDAyNmRkZXYtXHUwMDNlcG9sbF93b3JrKTtcbiA4NDY6XHRcdGRpc2FibGVfd29ya19zeW5jKFx1MDAyNmRkZXYtXHUwMDNlY21kX3dvcmspO1xuIDg0NzpcdFx0ZGlzYWJsZV93b3JrX3N5bmMoXHUwMDI2ZGRldi1cdTAwM2VjbWRfY29tcGxldGVfd29yayk7XG4gODQ4Olx0XG4gODQ5Olx0XHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoY21kLCBuLCBcdTAwMjZkZGV2LVx1MDAzZWNtZF9xdWV1ZSwgcXVldWUpIHtcbiA4NTA6XHRcdFx0bGlzdF9kZWwoXHUwMDI2Y21kLVx1MDAzZXF1ZXVlKTtcbiA4NTE6XHRcbiA4NTI6XHRcdFx0LyogQ2FsbCB0aGUgY29tbWFuZCBjYWxsYmFjayBpZiBhbnkgYW5kIHBhc3MgaXQgYSBFTk9ERVYgZXJyb3IuXG4gODUzOlx0XHRcdCAqIFRoaXMgZ2l2ZXMgYSBjaGFuY2UgdG8gdGhlIGNvbW1hbmQgaXNzdWVyIHRvIGZyZWUgYW55XG4gODU0Olx0XHRcdCAqIGFsbG9jYXRlZCBidWZmZXIuXG4gODU1Olx0XHRcdCAqL1xuIDg1NjpcdFx0XHRpZiAoY21kLVx1MDAzZWNtZF9jYilcbiA4NTc6XHRcdFx0XHRjbWQtXHUwMDNlY21kX2NiKGRkZXYsIGNtZC1cdTAwM2VjYl9jb250ZXh0LCBFUlJfUFRSKC1FTk9ERVYpKTtcbiA4NTg6XHRcbiA4NTk6XHRcdFx0a2ZyZWUoY21kLVx1MDAzZW1kYWFfcGFyYW1zKTtcbiA4NjA6XHRcdFx0a2ZyZWUoY21kKTtcbiA4NjE6XHRcdH1cbiA4NjI6XHR9XG4gODYzOlx0RVhQT1JUX1NZTUJPTChuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZSk7XG4gODY0Olx0XG4gODY1Olx0TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O05GQyBEaWdpdGFsIHByb3RvY29sIHN0YWNrXCYjMzQ7KTtcbiA4NjY6XHRNT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxMTozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjIwMQoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDExMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE5GQyBEaWdpdGFsIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHN3aXRjaGluZyBgY2FuY2VsX3dvcmtfc3luY2AgdG8gYGRpc2FibGVfd29ya19zeW5jYCBmb3IgdGhvc2UgYGNtZF93b3JrYCBhbmQgYGNtZF9jb21wbGV0ZV93b3JrYCBzdHJ1Y3R1cmVzLiBJbW1lZGlhdGVseSwgdGhhdCB0ZWxscyBtZSB0aGlzIGlzIGFib3V0IHJlc291cmNlIG1hbmFnZW1lbnQsIHNwZWNpZmljYWxseSBhZnRlciB1bnJlZ2lzdGVyaW5nIHRoZSBkZXZpY2UuIFRoZSBnb2FsIGlzIGNsZWFybHkgdG8gcHJldmVudCBzb21lIHNvcnQgb2YgbmFzdHkgaXNzdWUgbGlrZSBhIHVzZS1hZnRlci1mcmVlIHNpdHVhdGlvbiwgb3Igc29tZXRoaW5nIHNpbWlsYXIsIGlmIHRoZSB3b3JrIHF1ZXVlcyBhcmUgcmVhY3RpdmF0ZWQgYWZ0ZXIgYG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlYCBmaW5pc2hlcy4gVGhhdCBtYWtlcyBwZXJmZWN0IHNlbnNlOyBjYXJlZnVsIHN5bmNocm9uaXphdGlvbiBpcyBrZXkgaW4gYW55IGRyaXZlciwgZXNwZWNpYWxseSB3aXRoIE5GQyBkZXZpY2VzLgoKQWxyaWdodCwgSSBuZWVkIHRvIGtlZXAgaW4gbWluZCB0aGF0IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyBoZXJlIGFyZSBgTkZDX0RJR0lUQUxgLCBhbmQgZWl0aGVyIGBORkNfU0lNYCBvciBgTkZDX1BPUlQxMDBgLiBOb3csIEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIHRoZSBkZXBlbmRlbmNpZXMgZm9yIGBORkNfRElHSVRBTGAgdG8gZ2V0IGEgZ29vZCBoYW5kbGUgb24gdGhlIG92ZXJhbGwgY29udGV4dC4gTGV0JiMzOTtzIHNlZSB3aGF0IHRoYXQgcmV2ZWFscy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE5GQ19ESUdJVEFMJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25mYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L25mYy9LY29uZmlnPTY9bWVudWNvbmZpZyBORkNcbi0tXG5uZXQvbmZjL0tjb25maWctMTYtXG5uZXQvbmZjL0tjb25maWc6MTc6Y29uZmlnIE5GQ19ESUdJVEFMXG5uZXQvbmZjL0tjb25maWctMTgtXHRkZXBlbmRzIG9uIE5GQ1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxMTozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjYyMAoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDQ4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3Mgc2VlLCBteSBtZW50YWwgZ2VhcnMgYXJlIHN0YXJ0aW5nIHRvIHR1cm4uICoqQW5hbHl6aW5nIE5GQyBDb25maWd1cmF0aW9ucyoqCgpBbHJpZ2h0LCBJJiMzOTttIHRha2luZyBhIGxvb2sgYXQgdGhlc2UgTkZDIGNvbmZpZ3VyYXRpb25zOiBgTkZDYCwgYE5GQ19ESUdJVEFMYCwgYW5kIGBORkNfU0lNYC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZXkgYXJlIHJlbGF0ZWQuIE5vdywgd2FpdCBhIG1pbnV0ZS4uLiBJIHNlZW0gdG8gcmVjYWxsIGBORkNfU0lNYCBiZWluZyBkZWZpbmVkIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmZjL0tjb25maWdgIGZpbGUuIFRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBJIHNob3VsZCBwcm9iYWJseSBuYXZpZ2F0ZSBvdmVyIHRoZXJlIGFuZCB0YWtlIGEgbG9vayBhdCB0aGUgc3BlY2lmaWNzIG9mIGBORkNfU0lNYCB0byBiZXR0ZXIgZ3Jhc3AgaXRzIHJvbGUgaW4gdGhlIG92ZXJhbGwgcGljdHVyZS4gVGhpcyBzaG91bGQgaGVscCBtZSB1bnJhdmVsIHRoZSBkZXBlbmRlbmNpZXMgYW5kIHB1cnBvc2Ugb2YgdGhlc2UgY29uZmlndXJhdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDExOjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBORkNfU0lNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZmMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmZjL0tjb25maWc9MjE9Y29uZmlnIE5GQ19NRUlfUEhZXG4tLVxuZHJpdmVycy9uZmMvS2NvbmZpZy0zMC1cbmRyaXZlcnMvbmZjL0tjb25maWc6MzE6Y29uZmlnIE5GQ19TSU1cbmRyaXZlcnMvbmZjL0tjb25maWctMzItXHR0cmlzdGF0ZSBcJiMzNDtORkMgaGFyZHdhcmUgc2ltdWxhdG9yIGRyaXZlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxMTozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjkyNQoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDEyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUmIzM5O3MgbXkgdW5kZXJzdGFuZGluZywgcHJlc2VudGVkIGFzIGEgZmlyc3QtcGVyc29uIHRob3VnaHQgcHJvY2Vzcywga2VlcGluZyBpbiBtaW5kIG15IGV4cGVydGlzZToKCioqQ2hlY2tpbmcgTkZDX1NJTSBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgdGltZSB0byBnZXQgc3RhcnRlZC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGxldCYjMzk7cyB0YWtlIGEgbG9vayBhdCB0aGUgYE5GQ19TSU1gIGRlcGVuZGVuY2llcy4gQmVmb3JlIEkgZXZlbiB0aGluayBhYm91dCBhbnkgc3BlY2lmaWMgdGFzayByZWxhdGVkIHRvIGl0LCBJIHdhbnQgdG8gbWFrZSBzdXJlIEkmIzM5O3ZlIGdvdCBhIGNsZWFyIHBpY3R1cmUgb2Ygd2hhdCB0aGlzIHRoaW5nIHJlbGllcyBvbi4gSSBuZWVkIHRvIGtub3cgd2hhdCBvdGhlciBjb21wb25lbnRzLCBsaWJyYXJpZXMsIG9yIGV4dGVybmFsIHNlcnZpY2VzIGFyZSBjcnVjaWFsIGZvciBgTkZDX1NJTWAgdG8gZnVuY3Rpb24gY29ycmVjdGx5LiBUaGlzIGlzIGZ1bmRhbWVudGFsOyBhIGRlcGVuZGVuY3kgY2hlY2sgaXMgYWx3YXlzIHRoZSBmaXJzdCBsb2dpY2FsIHN0ZXAuIE1ha2VzIHBlcmZlY3Qgc2Vuc2UgdG8gZG8gdGhhdCB1cCBmcm9udCBhbmQga2VlcCB0aGUgbW9tZW50dW0gZ29pbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDExOjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZmMvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDMxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgMzE6XHRjb25maWcgTkZDX1NJTVxuICAzMjpcdFx0dHJpc3RhdGUgXCYjMzQ7TkZDIGhhcmR3YXJlIHNpbXVsYXRvciBkcml2ZXJcJiMzNDtcbiAgMzM6XHRcdGRlcGVuZHMgb24gTkZDX0RJR0lUQUxcbiAgMzQ6XHRcdGhlbHBcbiAgMzU6XHRcdCAgVGhpcyBkcml2ZXIgZGVjbGFyZXMgdHdvIHZpcnR1YWwgTkZDIGRldmljZXMgc3VwcG9ydGluZyBORkMtREVQXG4gIDM2Olx0XHQgIHByb3RvY29sLiBBbiBMTENQIGNvbm5lY3Rpb24gY2FuIGJlIGVzdGFibGlzaGVkIGJldHdlZW4gdGhlbSBhbmRcbiAgMzc6XHRcdCAgYWxsIHBhY2tldHMgc2VudCBmcm9tIG9uZSBkZXZpY2UgaXMgc2VudCBiYWNrIHRvIHRoZSBvdGhlciwgYWN0aW5nIGFzXG4gIDM4Olx0XHQgIGxvb3BiYWNrIGRldmljZXMuXG4gIDM5Olx0XG4gIDQwOlx0XHQgIElmIHVuc3VyZSwgc2F5IE4uXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDExOjM4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMjcxCgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogNTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCBtZSBicmVhayB0aGlzIGRvd24uCgoqKk15IEFuYWx5c2lzIG9mIE5GQyBEZXBlbmRlbmNpZXMgYW5kIENvbmZpZ3VyYXRpb25zKioKCkFscmlnaHQsIGxldCYjMzk7cyBzZWUuIEl0JiMzOTtzIGNsZWFyIHRoYXQgYE5GQ19TSU1gIGhhcyBhIGRlcGVuZGVuY3kgb24gYE5GQ19ESUdJVEFMYC4gVGhhdCYjMzk7cyB0aGUgYmFzZWxpbmUuIFRoaW5raW5nIGFib3V0IHRoZSBjb25maWd1cmF0aW9ucywgSSBuZWVkIHRvIGVuYWJsZSBgTkZDYCwgYE5GQ19ESUdJVEFMYCwgYW5kIGBORkNfU0lNYCB0byBnZXQgZXZlcnl0aGluZyB3b3JraW5nIGFzIGV4cGVjdGVkLCB0aGF0IG11Y2ggaXMgb2J2aW91cy4gQnV0IGhvbGQgb24sIEkgc2hvdWxkIGFsc28gY29uc2lkZXIgYE5GQ19QT1JUMTAwYC4gSSBuZWVkIHRvIGV2YWx1YXRlIHdoZXRoZXIgdGhhdCBjb3VsZCBiZSB1c2VmdWwgdG8gZW5hYmxlIGFzIHdlbGwsIGdpdmVuIHRoZSBjb250ZXh0LiBJJiMzOTtsbCBoYXZlIHRvIGludmVzdGlnYXRlIHRoYXQgZnVydGhlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25mYy9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNDIsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICA0MjpcdGNvbmZpZyBORkNfUE9SVDEwMFxuICA0MzpcdFx0dHJpc3RhdGUgXCYjMzQ7U29ueSBORkMgUG9ydC0xMDAgU2VyaWVzIFVTQiBkZXZpY2Ugc3VwcG9ydFwmIzM0O1xuICA0NDpcdFx0ZGVwZW5kcyBvbiBVU0JcbiAgNDU6XHRcdGRlcGVuZHMgb24gTkZDX0RJR0lUQUxcbiAgNDY6XHRcdGhlbHBcbiAgNDc6XHRcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIFNvbnkgUG9ydC0xMDAgY2hpcCBiYXNlZCBVU0IgZGV2aWNlcyBzdWNoIGFzIHRoZVxuICA0ODpcdFx0ICBSQy1TMzgwIGRvbmdsZS5cbiAgNDk6XHRcbiAgNTA6XHRcdCAgSWYgdW5zdXJlLCBzYXkgTi5cbiAgNTE6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjM2NDAKCQkJCQkJCW91dHB1dDogMTg1CgkJCQkJCQl0aG91Z2h0czogMTQwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEZ1enppbmcgU3RyYXRlZ3kgZm9yIFRoaXMgTkZDIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBgTkZDX1BPUlQxMDBgIGxvb2tzIGxpa2UgYW5vdGhlciB2YWxpZCBwb2ludCB0byBrZWVwIGluIG1pbmQsIGJ1dCB0aGUga2V5IGZ1bmN0aW9uIGhlcmUgaXMgZGVmaW5pdGVseSBgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VgLiBUaGF0JiMzOTtzIHRoZSBjb3JlIG9mIHRoZSBwYXRjaCwgdGhlIGZ1bmN0aW9uIHRoYXQgd2FzIGFjdHVhbGx5IG1vZGlmaWVkLiBNeSBmdXp6aW5nIGVmZm9ydHMgbmVlZCB0byB6ZXJvIGluIG9uIGl0LgoKTm93LCB3aGF0IG90aGVyIGZ1bmN0aW9ucyBhcmUgcmVsYXRlZD8gVGhpbmtpbmcgYWJvdXQgd2hhdCB0aGUgcGF0Y2ggaXMgKmRvaW5nKiwgaXQmIzM5O3MgYWJvdXQgcHJldmVudGluZyB3b3JrIGZyb20gaGFwcGVuaW5nICphZnRlciogdGhhdCB1bnJlZ2lzdHJhdGlvbi4gVGhhdCBtZWFucyBJIG5lZWQgdG8gY2FyZWZ1bGx5IGFuYWx5emUgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZWAgYW5kIHRoZSB3b3JrcXVldWUgZnVuY3Rpb25zLiBTbywgSSBoYXZlIHRvIGZvY3VzIG9uIGBkaWdpdGFsX3dxX2NtZGAgYW5kIGBkaWdpdGFsX3dxX2NtZF9jb21wbGV0ZWAgZm9yIGEgbW9yZSB0aG9yb3VnaCBhbmFseXNpcy4KCkNvbnNpZGVyaW5nIHRoZSBwYXRjaCYjMzk7cyBwdXJwb3NlLCBJJiMzOTtsbCBkZWZpbml0ZWx5IHdhbnQgdG8gZm9jdXMgb24gYG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlYCwgYW5kIG5vdyBJIHNlZSB0aGUgZnVsbCBwaWN0dXJlLiBTbyBJIG11c3QgYWxzbyBpbmNsdWRlIGBkaWdpdGFsX3dxX2NtZGAsIGBkaWdpdGFsX3dxX2NtZF9jb21wbGV0ZWAsIGFzIHdlbGwgYXMgYGRpZ2l0YWxfc2VuZF9jbWRgLCBgZGlnaXRhbF9zZW5kX2NtZF9jb21wbGV0ZWAuIFRoYXQgY292ZXJzIHRoZSB3aG9sZSBzcGVjdHJ1bSBvZiBmdW5jdGlvbnMgdGhhdCBhcmUgY29ubmVjdGVkIGluIGFueSB3YXkgdG8gdGhlIHVucmVnaXN0ZXIgZnVuY3Rpb24uIFRoZXkmIzM5O3JlIGFsbCBwcmltZSB0YXJnZXRzIGZvciBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxMTozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZDJiMzNDssCiAgICAmIzM0O05GQ19ESUdJVEFMJiMzNDssCiAgICAmIzM0O05GQ19TSU0mIzM0OywKICAgICYjMzQ7TkZDX1BPUlQxMDAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZSYjMzQ7LAogICAgJiMzNDtkaWdpdGFsX3dxX2NtZCYjMzQ7LAogICAgJiMzNDtkaWdpdGFsX3dxX2NtZF9jb21wbGV0ZSYjMzQ7LAogICAgJiMzNDtkaWdpdGFsX3NlbmRfY21kJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlcGxhY2VzIGNhbmNlbF93b3JrX3N5bmMgd2l0aCBkaXNhYmxlX3dvcmtfc3luYyBmb3IgY21kX3dvcmsgYW5kIGNtZF9jb21wbGV0ZV93b3JrIGluIG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBwcmV2ZW50cyB3b3JrcyBmcm9tIGJlaW5nIHJlLXF1ZXVlZCBvciBleGVjdXRlZCBhZnRlciB0aGUgZGV2aWNlIGlzIHVucmVnaXN0ZXJlZCwgZml4aW5nIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciByYWNlIGNvbmRpdGlvbnMuIEl0IGlzIHJlYWNoYWJsZSB2aWEgdmlydHVhbCBORkMgZHJpdmVycyBsaWtlIG5mY3NpbSBvciBob3RwbHVnZ2FibGUgZHJpdmVycyBsaWtlIHBvcnQxMDAuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GQyYjMzQ7LAogICAgJiMzNDtORkNfRElHSVRBTCYjMzQ7LAogICAgJiMzNDtORkNfU0lNJiMzNDssCiAgICAmIzM0O05GQ19QT1JUMTAwJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UmIzM0OywKICAgICYjMzQ7ZGlnaXRhbF93cV9jbWQmIzM0OywKICAgICYjMzQ7ZGlnaXRhbF93cV9jbWRfY29tcGxldGUmIzM0OywKICAgICYjMzQ7ZGlnaXRhbF9zZW5kX2NtZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZXBsYWNlcyBjYW5jZWxfd29ya19zeW5jIHdpdGggZGlzYWJsZV93b3JrX3N5bmMgZm9yIGNtZF93b3JrIGFuZCBjbWRfY29tcGxldGVfd29yayBpbiBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcHJldmVudHMgd29ya3MgZnJvbSBiZWluZyByZS1xdWV1ZWQgb3IgZXhlY3V0ZWQgYWZ0ZXIgdGhlIGRldmljZSBpcyB1bnJlZ2lzdGVyZWQsIGZpeGluZyBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgcmFjZSBjb25kaXRpb25zLiBJdCBpcyByZWFjaGFibGUgdmlhIHZpcnR1YWwgTkZDIGRyaXZlcnMgbGlrZSBuZmNzaW0gb3IgaG90cGx1Z2dhYmxlIGRyaXZlcnMgbGlrZSBwb3J0MTAwLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjJUMTE6Mzc6MjIuNDgyMjc0MTY0WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAyMzgwOTYzMjM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5GQ1wiLFxuICAgIFwiTkZDX0RJR0lUQUxcIixcbiAgICBcIk5GQ19TSU1cIixcbiAgICBcIk5GQ19QT1JUMTAwXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VcIixcbiAgICBcImRpZ2l0YWxfd3FfY21kXCIsXG4gICAgXCJkaWdpdGFsX3dxX2NtZF9jb21wbGV0ZVwiLFxuICAgIFwiZGlnaXRhbF9zZW5kX2NtZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlcGxhY2VzIGNhbmNlbF93b3JrX3N5bmMgd2l0aCBkaXNhYmxlX3dvcmtfc3luYyBmb3IgY21kX3dvcmsgYW5kIGNtZF9jb21wbGV0ZV93b3JrIGluIG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBwcmV2ZW50cyB3b3JrcyBmcm9tIGJlaW5nIHJlLXF1ZXVlZCBvciBleGVjdXRlZCBhZnRlciB0aGUgZGV2aWNlIGlzIHVucmVnaXN0ZXJlZCwgZml4aW5nIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciByYWNlIGNvbmRpdGlvbnMuIEl0IGlzIHJlYWNoYWJsZSB2aWEgdmlydHVhbCBORkMgZHJpdmVycyBsaWtlIG5mY3NpbSBvciBob3RwbHVnZ2FibGUgZHJpdmVycyBsaWtlIHBvcnQxMDAuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDExOjM3OjIyLjQ4MjI4MzIzNFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ2OTQyNTc4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNjNmNGZiZjk2MDQ1OWQxZGY3OWZlMmVkYjAyZTVkNDgyZjMwMDZhMlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIEp1bCAyMiAxMTozNzoyMCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvbmZjL2RpZ2l0YWxfY29yZS5jIGIvbmV0L25mYy9kaWdpdGFsX2NvcmUuY1xcbmluZGV4IDdjYjFlNmFhYWU5MGRhLi42ZGVmNTEzMmE0YTYyZiAxMDA2NDRcXG4tLS0gYS9uZXQvbmZjL2RpZ2l0YWxfY29yZS5jXFxuKysrIGIvbmV0L25mYy9kaWdpdGFsX2NvcmUuY1xcbkBAIC04NDMsOCArODQzLDggQEAgdm9pZCBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxcbiBcXHRtdXRleF91bmxvY2soXFx1MDAyNmRkZXYtXFx1MDAzZXBvbGxfbG9jayk7XFxuIFxcbiBcXHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXFx1MDAyNmRkZXYtXFx1MDAzZXBvbGxfd29yayk7XFxuLVxcdGNhbmNlbF93b3JrX3N5bmMoXFx1MDAyNmRkZXYtXFx1MDAzZWNtZF93b3JrKTtcXG4tXFx0Y2FuY2VsX3dvcmtfc3luYyhcXHUwMDI2ZGRldi1cXHUwMDNlY21kX2NvbXBsZXRlX3dvcmspO1xcbitcXHRkaXNhYmxlX3dvcmtfc3luYyhcXHUwMDI2ZGRldi1cXHUwMDNlY21kX3dvcmspO1xcbitcXHRkaXNhYmxlX3dvcmtfc3luYyhcXHUwMDI2ZGRldi1cXHUwMDNlY21kX2NvbXBsZXRlX3dvcmspO1xcbiBcXG4gXFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGNtZCwgbiwgXFx1MDAyNmRkZXYtXFx1MDAzZWNtZF9xdWV1ZSwgcXVldWUpIHtcXG4gXFx0XFx0bGlzdF9kZWwoXFx1MDAyNmNtZC1cXHUwMDNlcXVldWUpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQxMTozNzoyMy4wMzAyMDg0NjJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxMDE4MzMwMjA3NjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkZDXCIsXG4gICAgXCJORkNfRElHSVRBTFwiLFxuICAgIFwiTkZDX1NJTVwiLFxuICAgIFwiTkZDX1BPUlQxMDBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZVwiLFxuICAgIFwiZGlnaXRhbF93cV9jbWRcIixcbiAgICBcImRpZ2l0YWxfd3FfY21kX2NvbXBsZXRlXCIsXG4gICAgXCJkaWdpdGFsX3NlbmRfY21kXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVwbGFjZXMgY2FuY2VsX3dvcmtfc3luYyB3aXRoIGRpc2FibGVfd29ya19zeW5jIGZvciBjbWRfd29yayBhbmQgY21kX2NvbXBsZXRlX3dvcmsgaW4gbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHByZXZlbnRzIHdvcmtzIGZyb20gYmVpbmcgcmUtcXVldWVkIG9yIGV4ZWN1dGVkIGFmdGVyIHRoZSBkZXZpY2UgaXMgdW5yZWdpc3RlcmVkLCBmaXhpbmcgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIHJhY2UgY29uZGl0aW9ucy4gSXQgaXMgcmVhY2hhYmxlIHZpYSB2aXJ0dWFsIE5GQyBkcml2ZXJzIGxpa2UgbmZjc2ltIG9yIGhvdHBsdWdnYWJsZSBkcml2ZXJzIGxpa2UgcG9ydDEwMC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA2M2Y0ZmJmOTYwNDU5ZDFkZjc5ZmUyZWRiMDJlNWQ0ODJmMzAwNmEyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMjIgMTE6Mzc6MjAgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbmZjL2RpZ2l0YWxfY29yZS5jIGIvbmV0L25mYy9kaWdpdGFsX2NvcmUuY1xuaW5kZXggN2NiMWU2YWFhZTkwZGEuLjZkZWY1MTMyYTRhNjJmIDEwMDY0NFxuLS0tIGEvbmV0L25mYy9kaWdpdGFsX2NvcmUuY1xuKysrIGIvbmV0L25mYy9kaWdpdGFsX2NvcmUuY1xuQEAgLTg0Myw4ICs4NDMsOCBAQCB2b2lkIG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXG4gXHRtdXRleF91bmxvY2soXHUwMDI2ZGRldi1cdTAwM2Vwb2xsX2xvY2spO1xuIFxuIFx0Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKFx1MDAyNmRkZXYtXHUwMDNlcG9sbF93b3JrKTtcbi1cdGNhbmNlbF93b3JrX3N5bmMoXHUwMDI2ZGRldi1cdTAwM2VjbWRfd29yayk7XG4tXHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNmRkZXYtXHUwMDNlY21kX2NvbXBsZXRlX3dvcmspO1xuK1x0ZGlzYWJsZV93b3JrX3N5bmMoXHUwMDI2ZGRldi1cdTAwM2VjbWRfd29yayk7XG4rXHRkaXNhYmxlX3dvcmtfc3luYyhcdTAwMjZkZGV2LVx1MDAzZWNtZF9jb21wbGV0ZV93b3JrKTtcbiBcbiBcdGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShjbWQsIG4sIFx1MDAyNmRkZXYtXHUwMDNlY21kX3F1ZXVlLCBxdWV1ZSkge1xuIFx0XHRsaXN0X2RlbChcdTAwMjZjbWQtXHUwMDNlcXVldWUpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTE6Mzc6MjMuMDMwMjExMzYyWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDkzMDYxMjQ2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBORkMgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYG5ldC9uZmMvZGlnaXRhbF9jb3JlLmNgLiBTZWVtcyBsaWtlIGEgc3RyYWlnaHRmb3J3YXJkIGZ1bmN0aW9uYWwgY2hhbmdlLCBzd2FwcGluZyBvdXQgYGNhbmNlbF93b3JrX3N5bmNgIGZvciBgZGlzYWJsZV93b3JrX3N5bmNgIG9uIGBkZGV2LVx1MDAzZWNtZF93b3JrYCBhbmQgYGRkZXYtXHUwMDNlY21kX2NvbXBsZXRlX3dvcmtgIHdpdGhpbiBgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VgLiBUaGUgaW1wYWN0IGlzIHByZXR0eSBjbGVhcjogcHJldmVudGluZyB0aGUgd29ya3MgZnJvbSBiZWluZyByZS1xdWV1ZWQgYWZ0ZXIgY2FuY2VsbGF0aW9uLiBXZSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBiZXR0ZXIuXG5cbk15IGltbWVkaWF0ZSBxdWVzdGlvbiBpcyBhYm91dCByZWFjaGFiaWxpdHkuIEkgaGF2ZSB0byBmaWd1cmUgb3V0IGhvdyBsaWtlbHkgdGhpcyBjaGFuZ2Ugd2lsbCBhY3R1YWxseSAqaGl0KiBpbiBhIHJlYWwtd29ybGQgc2NlbmFyaW8uIElzIHRoaXMgYSBjb2RlIHBhdGggdGhhdCdzIGZyZXF1ZW50bHkgZXhlY3V0ZWQsIG9yIHNvbWV0aGluZyBtb3JlIG9ic2N1cmU/IFRoYXQgbWVhbnMgdHJhY2luZyB0aGUgdXNhZ2UgYW5kIGxvb2tpbmcgYXQgd2hhdCBjb25maWd1cmF0aW9uIG9wdGlvbnMgbWlnaHQgaW5mbHVlbmNlIHRoaXMgcGF0aCdzIGV4ZWN1dGlvbi5cblxuU28sIGZpcnN0IHRoaW5ncyBmaXJzdCwgSSBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZvciBgbmV0L25mYy9kaWdpdGFsX2NvcmUuY2AgdG8gc2VlIHdoYXQgZGVwZW5kZW5jaWVzIGFyZSBhdCBwbGF5LiBVbmRlcnN0YW5kaW5nIHRoZSBhc3NvY2lhdGVkIGNvbmZpZ3VyYXRpb25zIGFuZCBkZXBlbmRlbmNpZXMgd2lsbCBvZmZlciBpbnNpZ2h0cyBpbnRvIHdoaWNoIGtlcm5lbCBidWlsZHMgYXJlIGFmZmVjdGVkLiBXaGF0IGFyZSB0aGUgcmVsZXZhbnQgQ09ORklHIG9wdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgc2VjdGlvbiBvZiBjb2RlPyBUaGF0J3MgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBwb3RlbnRpYWwgaW1wYWN0IG9mIHRoZSBwYXRjaC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk1NSwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0MSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDExOjM3OjI3Ljk2MDgyNjU1NloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5ODkyOTUwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkaWdpdGFsX2NvcmUub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbmZjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmZjL01ha2VmaWxlPTExPW5mYy1vYmpzIDo9IGNvcmUubyBuZXRsaW5rLm8gYWZfbmZjLm8gcmF3c29jay5vIGxsY3BfY29yZS5vIGxsY3BfY29tbWFuZHMubyBcXFxcXFxuLS1cXG5uZXQvbmZjL01ha2VmaWxlLTEzLVxcbm5ldC9uZmMvTWFrZWZpbGU6MTQ6bmZjX2RpZ2l0YWwtb2JqcyA6PSBkaWdpdGFsX2NvcmUubyBkaWdpdGFsX3RlY2hub2xvZ3kubyBkaWdpdGFsX2RlcC5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDExOjM3OjI4LjA1OTc2MDc4MloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyMDk4MDgyMjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkNoZWNraW5nIHRoZSBCdWlsZCBDb25maWd1cmF0aW9uKipcblxuUmlnaHQsIHNvIGBuZmNfZGlnaXRhbC1vYmpzYC4gVGhhdCdzIHRoZSBsaWtlbHkgb2JqZWN0IGxpc3QgZm9yIHRoZSBORkMgRGlnaXRhbCBkcml2ZXIsIHJpZ2h0PyBNYWtlcyBzZW5zZS4gTm93LCBsZXQgbWUganVzdCBjb25maXJtIG15IHN1c3BpY2lvbnMuLi4gaXQncyBwcm9iYWJseSBidWlsdCBjb25kaXRpb25hbGx5LiBJJ20gZ29pbmcgdG8gcXVpY2tseSBjaGVjayB0aGUgYG5ldC9uZmMvTWFrZWZpbGVgIHRvIHNlZSBpZiBgQ09ORklHX05GQ19ESUdJVEFMYCBpbmRlZWQgY29udHJvbHMgdGhlIGluY2x1c2lvbiBvZiB0aGF0IG9iamVjdC4gSXQncyB0aGUgZmlyc3QgcGxhY2UgSSdkIGxvb2suIFRoaXMgaXMgcHJldHR5IHN0YW5kYXJkIHByYWN0aWNlLCBlbnN1cmluZyB0aGF0IHRoZSBtb2R1bGUgaXMgb25seSBidWlsdCBpZiB0aGUgYXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbiBvcHRpb24gaXMgc2V0LiBObyBuZWVkIHRvIHdhc3RlIGJ1aWxkIHRpbWUgb24gdW5uZWVkZWQgY29tcG9uZW50cy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjQ4NiwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDExOjM3OjMxLjI2OTU3MjUyNFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4ODMwNzQ2NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZmNfZGlnaXRhbFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbmZjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDUwOCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxubmV0L25mYy9LY29uZmlnPTE3PWNvbmZpZyBORkNfRElHSVRBTFxcbi0tXFxubmV0L25mYy9LY29uZmlnLTI4LVxcdCAgVG8gY29tcGlsZSB0aGlzIHN1cHBvcnQgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUgd2lsbFxcbm5ldC9uZmMvS2NvbmZpZzoyOTpcXHQgIGJlIGNhbGxlZCBuZmNfZGlnaXRhbC5cXG5uZXQvbmZjL0tjb25maWctMzAtXFxuLS1cXG5uZXQvbmZjL01ha2VmaWxlPTg9b2JqLSQoQ09ORklHX05GQ19IQ0kpICs9IGhjaS9cXG5uZXQvbmZjL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX05GQ19ESUdJVEFMKSArPSBuZmNfZGlnaXRhbC5vXFxubmV0L25mYy9NYWtlZmlsZS0xMC1cXG5uZXQvbmZjL01ha2VmaWxlPTExPW5mYy1vYmpzIDo9IGNvcmUubyBuZXRsaW5rLm8gYWZfbmZjLm8gcmF3c29jay5vIGxsY3BfY29yZS5vIGxsY3BfY29tbWFuZHMubyBcXFxcXFxuLS1cXG5uZXQvbmZjL01ha2VmaWxlLTEzLVxcbm5ldC9uZmMvTWFrZWZpbGU6MTQ6bmZjX2RpZ2l0YWwtb2JqcyA6PSBkaWdpdGFsX2NvcmUubyBkaWdpdGFsX3RlY2hub2xvZ3kubyBkaWdpdGFsX2RlcC5vXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWwuaD00MD1zdHJ1Y3QgZGlnaXRhbF9kYXRhX2V4Y2gge1xcbi0tXFxubmV0L25mYy9kaWdpdGFsLmgtNDQtXFxubmV0L25mYy9kaWdpdGFsLmg6NDU6c3RydWN0IHNrX2J1ZmYgKmRpZ2l0YWxfc2tiX2FsbG9jKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxubmV0L25mYy9kaWdpdGFsLmgtNDYtXFx0XFx0XFx0XFx0ICB1bnNpZ25lZCBpbnQgbGVuKTtcXG5uZXQvbmZjL2RpZ2l0YWwuaC00Ny1cXG5uZXQvbmZjL2RpZ2l0YWwuaDo0ODppbnQgZGlnaXRhbF9zZW5kX2NtZChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCBjbWRfdHlwZSxcXG5uZXQvbmZjL2RpZ2l0YWwuaC00OS1cXHRcXHQgICAgIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBkaWdpdGFsX3RnX21kYWFfcGFyYW1zICpwYXJhbXMsXFxubmV0L25mYy9kaWdpdGFsLmg6NTA6XFx0XFx0ICAgICB1MTYgdGltZW91dCwgbmZjX2RpZ2l0YWxfY21kX2NvbXBsZXRlX3QgY21kX2NiLFxcbm5ldC9uZmMvZGlnaXRhbC5oLTUxLVxcdFxcdCAgICAgdm9pZCAqY2JfY29udGV4dCk7XFxubmV0L25mYy9kaWdpdGFsLmgtNTItXFxubmV0L25mYy9kaWdpdGFsLmg6NTM6aW50IGRpZ2l0YWxfaW5fY29uZmlndXJlX2h3KHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIGludCB0eXBlLCBpbnQgcGFyYW0pO1xcbm5ldC9uZmMvZGlnaXRhbC5oOjU0OnN0YXRpYyBpbmxpbmUgaW50IGRpZ2l0YWxfaW5fc2VuZF9jbWQoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWwuaC01NS1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MTYgdGltZW91dCxcXG5uZXQvbmZjL2RpZ2l0YWwuaDo1NjpcXHRcXHRcXHRcXHQgICAgICBuZmNfZGlnaXRhbF9jbWRfY29tcGxldGVfdCBjbWRfY2IsXFxubmV0L25mYy9kaWdpdGFsLmgtNTctXFx0XFx0XFx0XFx0ICAgICAgdm9pZCAqY2JfY29udGV4dClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbC5oLTYyLVxcbm5ldC9uZmMvZGlnaXRhbC5oOjYzOnZvaWQgZGlnaXRhbF9wb2xsX25leHRfdGVjaChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KTtcXG5uZXQvbmZjL2RpZ2l0YWwuaC02NC1cXG5uZXQvbmZjL2RpZ2l0YWwuaDo2NTppbnQgZGlnaXRhbF9pbl9zZW5kX3NlbnNfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpO1xcbm5ldC9uZmMvZGlnaXRhbC5oOjY2OmludCBkaWdpdGFsX2luX3NlbmRfc2Vuc2JfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpO1xcbm5ldC9uZmMvZGlnaXRhbC5oOjY3OmludCBkaWdpdGFsX2luX3NlbmRfc2Vuc2ZfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpO1xcbm5ldC9uZmMvZGlnaXRhbC5oOjY4OmludCBkaWdpdGFsX2luX3NlbmRfaXNvMTU2OTNfaW52X3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKTtcXG5uZXQvbmZjL2RpZ2l0YWwuaC02OS1cXG5uZXQvbmZjL2RpZ2l0YWwuaDo3MDppbnQgZGlnaXRhbF9pbl9pc29fZGVwX3B1bGxfc29kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxubmV0L25mYy9kaWdpdGFsLmgtNzEtXFx0XFx0XFx0XFx0c3RydWN0IHNrX2J1ZmYgKnNrYik7XFxubmV0L25mYy9kaWdpdGFsLmg6NzI6aW50IGRpZ2l0YWxfaW5faXNvX2RlcF9wdXNoX3NvZChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbC5oLTczLVxcdFxcdFxcdFxcdHN0cnVjdCBza19idWZmICpza2IpO1xcbm5ldC9uZmMvZGlnaXRhbC5oLTc0LVxcbm5ldC9uZmMvZGlnaXRhbC5oOjc1OmludCBkaWdpdGFsX3RhcmdldF9mb3VuZChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbC5oLTc2LVxcdFxcdFxcdCBzdHJ1Y3QgbmZjX3RhcmdldCAqdGFyZ2V0LCB1OCBwcm90b2NvbCk7XFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWwuaD03OD1pbnQgZGlnaXRhbF9pbl9yZWN2X21pZmFyZV9yZXMoc3RydWN0IHNrX2J1ZmYgKnJlc3ApO1xcbm5ldC9uZmMvZGlnaXRhbC5oLTc5LVxcbm5ldC9uZmMvZGlnaXRhbC5oOjgwOmludCBkaWdpdGFsX2luX3NlbmRfYXRyX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbC5oLTgxLVxcdFxcdFxcdCAgICBzdHJ1Y3QgbmZjX3RhcmdldCAqdGFyZ2V0LCBfX3U4IGNvbW1fbW9kZSwgX191OCAqZ2IsXFxubmV0L25mYy9kaWdpdGFsLmgtODItXFx0XFx0XFx0ICAgIHNpemVfdCBnYl9sZW4pO1xcbm5ldC9uZmMvZGlnaXRhbC5oOjgzOmludCBkaWdpdGFsX2luX3NlbmRfZGVwX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbC5oLTg0LVxcdFxcdFxcdCAgICBzdHJ1Y3QgbmZjX3RhcmdldCAqdGFyZ2V0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxubmV0L25mYy9kaWdpdGFsLmgtODYtXFxubmV0L25mYy9kaWdpdGFsLmg6ODc6aW50IGRpZ2l0YWxfdGdfY29uZmlndXJlX2h3KHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIGludCB0eXBlLCBpbnQgcGFyYW0pO1xcbm5ldC9uZmMvZGlnaXRhbC5oOjg4OnN0YXRpYyBpbmxpbmUgaW50IGRpZ2l0YWxfdGdfc2VuZF9jbWQoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWwuaC04OS1cXHRcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MTYgdGltZW91dCxcXG5uZXQvbmZjL2RpZ2l0YWwuaDo5MDpcXHRcXHRcXHRuZmNfZGlnaXRhbF9jbWRfY29tcGxldGVfdCBjbWRfY2IsIHZvaWQgKmNiX2NvbnRleHQpXFxubmV0L25mYy9kaWdpdGFsLmgtOTEte1xcbi0tXFxubmV0L25mYy9kaWdpdGFsLmgtOTUtXFxubmV0L25mYy9kaWdpdGFsLmg6OTY6dm9pZCBkaWdpdGFsX3RnX3JlY3Zfc2Vuc19yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbC5oLTk3LVxcdFxcdFxcdCAgICAgIHN0cnVjdCBza19idWZmICpyZXNwKTtcXG5uZXQvbmZjL2RpZ2l0YWwuaC05OC1cXG5uZXQvbmZjL2RpZ2l0YWwuaDo5OTp2b2lkIGRpZ2l0YWxfdGdfcmVjdl9zZW5zZl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbC5oLTEwMC1cXHRcXHRcXHQgICAgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApO1xcbm5ldC9uZmMvZGlnaXRhbC5oLTEwMS1cXG5uZXQvbmZjL2RpZ2l0YWwuaDoxMDI6c3RhdGljIGlubGluZSBpbnQgZGlnaXRhbF90Z19saXN0ZW4oc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTE2IHRpbWVvdXQsXFxubmV0L25mYy9kaWdpdGFsLmg6MTAzOlxcdFxcdFxcdFxcdCAgICBuZmNfZGlnaXRhbF9jbWRfY29tcGxldGVfdCBjYiwgdm9pZCAqYXJnKVxcbm5ldC9uZmMvZGlnaXRhbC5oLTEwNC17XFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWwuaC0xMDgtXFxubmV0L25mYy9kaWdpdGFsLmg6MTA5OnZvaWQgZGlnaXRhbF90Z19yZWN2X2F0cl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbC5oLTExMC1cXHRcXHRcXHQgICAgIHN0cnVjdCBza19idWZmICpyZXNwKTtcXG5uZXQvbmZjL2RpZ2l0YWwuaC0xMTEtXFxubmV0L25mYy9kaWdpdGFsLmg6MTEyOmludCBkaWdpdGFsX3RnX3NlbmRfZGVwX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcXG5uZXQvbmZjL2RpZ2l0YWwuaC0xMTMtXFxubmV0L25mYy9kaWdpdGFsLmg6MTE0OmludCBkaWdpdGFsX3RnX2xpc3Rlbl9uZmNhKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpO1xcbm5ldC9uZmMvZGlnaXRhbC5oOjExNTppbnQgZGlnaXRhbF90Z19saXN0ZW5fbmZjZihzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKTtcXG5uZXQvbmZjL2RpZ2l0YWwuaDoxMTY6dm9pZCBkaWdpdGFsX3RnX3JlY3ZfbWRfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcXG5uZXQvbmZjL2RpZ2l0YWwuaC0xMTctXFx0XFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpyZXNwKTtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9Mjc9c3RydWN0IGRpZ2l0YWxfY21kIHtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMzctXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzozODpcXHRuZmNfZGlnaXRhbF9jbWRfY29tcGxldGVfdCBjbWRfY2I7XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0zOS1cXHR2b2lkICpjYl9jb250ZXh0O1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00MS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjQyOnN0cnVjdCBza19idWZmICpkaWdpdGFsX3NrYl9hbGxvYyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNDMtXFx0XFx0XFx0XFx0ICB1bnNpZ25lZCBpbnQgbGVuKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz03Mj1pbnQgZGlnaXRhbF9za2JfY2hlY2tfY3JjKHN0cnVjdCBza19idWZmICpza2IsIGNyY19mdW5jX3QgY3JjX2Z1bmMsXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTk5LVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6MTAwOnN0YXRpYyBpbmxpbmUgdm9pZCBkaWdpdGFsX3N3aXRjaF9yZihzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBib29sIG9uKVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMTAxLXtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMTA0LVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6MTA1OnN0YXRpYyBpbmxpbmUgdm9pZCBkaWdpdGFsX2Fib3J0X2NtZChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMTA2LXtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9MTEwPXN0YXRpYyB2b2lkIGRpZ2l0YWxfd3FfY21kX2NvbXBsZXRlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMTEyLVxcdHN0cnVjdCBkaWdpdGFsX2NtZCAqY21kO1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6MTEzOlxcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBjb250YWluZXJfb2Yod29yayxcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjExNDpcXHRcXHRcXHRcXHRcXHRcXHQgICAgc3RydWN0IG5mY19kaWdpdGFsX2RldixcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTExNS1cXHRcXHRcXHRcXHRcXHRcXHQgICAgY21kX2NvbXBsZXRlX3dvcmspO1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0xNDEtXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzoxNDI6c3RhdGljIHZvaWQgZGlnaXRhbF9zZW5kX2NtZF9jb21wbGV0ZShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMTQzLVxcdFxcdFxcdFxcdCAgICAgIHZvaWQgKmFyZywgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jPTE1Mj1zdGF0aWMgdm9pZCBkaWdpdGFsX3dxX2NtZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTE1Ni1cXHRzdHJ1Y3QgZGlnaXRhbF90Z19tZGFhX3BhcmFtcyAqcGFyYW1zO1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6MTU3OlxcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBjb250YWluZXJfb2Yod29yayxcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjE1ODpcXHRcXHRcXHRcXHRcXHRcXHQgICAgc3RydWN0IG5mY19kaWdpdGFsX2RldixcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTE1OS1cXHRcXHRcXHRcXHRcXHRcXHQgICAgY21kX3dvcmspO1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0yMjYtXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzoyMjc6aW50IGRpZ2l0YWxfc2VuZF9jbWQoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTggY21kX3R5cGUsXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0yMjgtXFx0XFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZGlnaXRhbF90Z19tZGFhX3BhcmFtcyAqcGFyYW1zLFxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6MjI5OlxcdFxcdCAgICAgdTE2IHRpbWVvdXQsIG5mY19kaWdpdGFsX2NtZF9jb21wbGV0ZV90IGNtZF9jYixcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTIzMC1cXHRcXHQgICAgIHZvaWQgKmNiX2NvbnRleHQpXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTI1NC1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjI1NTppbnQgZGlnaXRhbF9pbl9jb25maWd1cmVfaHcoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgaW50IHR5cGUsIGludCBwYXJhbSlcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTI1Ni17XFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTI2NS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjI2NjppbnQgZGlnaXRhbF90Z19jb25maWd1cmVfaHcoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgaW50IHR5cGUsIGludCBwYXJhbSlcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTI2Ny17XFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTI3Ni1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjI3NzpzdGF0aWMgaW50IGRpZ2l0YWxfdGdfbGlzdGVuX21kYWEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTggcmZfdGVjaClcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTI3OC17XFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTMwMi1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjMwMzpzdGF0aWMgaW50IGRpZ2l0YWxfdGdfbGlzdGVuX21kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0zMDQte1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0zMDgtXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzozMDk6aW50IGRpZ2l0YWxfdGFyZ2V0X2ZvdW5kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0zMTAtXFx0XFx0XFx0IHN0cnVjdCBuZmNfdGFyZ2V0ICp0YXJnZXQsIHU4IHByb3RvY29sKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00MDQtXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo0MDU6dm9pZCBkaWdpdGFsX3BvbGxfbmV4dF90ZWNoKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00MDYte1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz00Mjc9c3RhdGljIHZvaWQgZGlnaXRhbF93cV9wb2xsKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNDMwLVxcdHN0cnVjdCBkaWdpdGFsX3BvbGxfdGVjaCAqcG9sbF90ZWNoO1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NDMxOlxcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBjb250YWluZXJfb2Yod29yayxcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjQzMjpcXHRcXHRcXHRcXHRcXHRcXHQgICAgc3RydWN0IG5mY19kaWdpdGFsX2RldixcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTQzMy1cXHRcXHRcXHRcXHRcXHRcXHQgICAgcG9sbF93b3JrLndvcmspO1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00NDktXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo0NTA6c3RhdGljIHZvaWQgZGlnaXRhbF9hZGRfcG9sbF90ZWNoKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gsXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00NTEtXFx0XFx0XFx0XFx0ICBkaWdpdGFsX3BvbGxfdCBwb2xsX2Z1bmMpXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jPTQ3Nj1zdGF0aWMgaW50IGRpZ2l0YWxfc3RhcnRfcG9sbChzdHJ1Y3QgbmZjX2RldiAqbmZjX2RldiwgX191MzIgaW1fcHJvdG9jb2xzLFxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00Nzgte1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NDc5OlxcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBuZmNfZ2V0X2RydmRhdGEobmZjX2Rldik7XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00ODAtXFx0dTMyIG1hdGNoaW5nX2ltX3Byb3RvY29scywgbWF0Y2hpbmdfdG1fcHJvdG9jb2xzO1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz01NTY9c3RhdGljIHZvaWQgZGlnaXRhbF9zdG9wX3BvbGwoc3RydWN0IG5mY19kZXYgKm5mY19kZXYpXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy01NTcte1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NTU4OlxcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBuZmNfZ2V0X2RydmRhdGEobmZjX2Rldik7XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy01NTktXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jPTU3Nz1zdGF0aWMgaW50IGRpZ2l0YWxfZGV2X3VwKHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2KVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNTc4LXtcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjU3OTpcXHRzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2ID0gbmZjX2dldF9kcnZkYXRhKG5mY19kZXYpO1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNTgwLVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz01ODY9c3RhdGljIGludCBkaWdpdGFsX2Rldl9kb3duKHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2KVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNTg3LXtcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjU4ODpcXHRzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2ID0gbmZjX2dldF9kcnZkYXRhKG5mY19kZXYpO1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNTg5LVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz01OTU9c3RhdGljIGludCBkaWdpdGFsX2RlcF9saW5rX3VwKHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2LFxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy01OTgte1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NTk5OlxcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBuZmNfZ2V0X2RydmRhdGEobmZjX2Rldik7XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy02MDAtXFx0aW50IHJjO1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz02MTA9c3RhdGljIGludCBkaWdpdGFsX2RlcF9saW5rX2Rvd24oc3RydWN0IG5mY19kZXYgKm5mY19kZXYpXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy02MTEte1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NjEyOlxcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBuZmNfZ2V0X2RydmRhdGEobmZjX2Rldik7XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy02MTMtXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jPTYyMT1zdGF0aWMgaW50IGRpZ2l0YWxfYWN0aXZhdGVfdGFyZ2V0KHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2LFxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy02MjMte1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NjI0OlxcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBuZmNfZ2V0X2RydmRhdGEobmZjX2Rldik7XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy02MjUtXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jPTY0MT1zdGF0aWMgdm9pZCBkaWdpdGFsX2RlYWN0aXZhdGVfdGFyZ2V0KHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2LFxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy02NDQte1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NjQ1OlxcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBuZmNfZ2V0X2RydmRhdGEobmZjX2Rldik7XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy02NDYtXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jPTY1Nj1zdGF0aWMgaW50IGRpZ2l0YWxfdGdfc2VuZChzdHJ1Y3QgbmZjX2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNjU3LXtcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjY1ODpcXHRzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2ID0gbmZjX2dldF9kcnZkYXRhKGRldik7XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy02NTktXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTY2Mi1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjY2MzpzdGF0aWMgdm9pZCBkaWdpdGFsX2luX3NlbmRfY29tcGxldGUoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNjY0LVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jPTcwMT1zdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZChzdHJ1Y3QgbmZjX2RldiAqbmZjX2Rldiwgc3RydWN0IG5mY190YXJnZXQgKnRhcmdldCxcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNzA0LXtcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjcwNTpcXHRzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2ID0gbmZjX2dldF9kcnZkYXRhKG5mY19kZXYpO1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNzA2LVxcdHN0cnVjdCBkaWdpdGFsX2RhdGFfZXhjaCAqZGF0YV9leGNoO1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz03NDQ9c3RhdGljIGNvbnN0IHN0cnVjdCBuZmNfb3BzIGRpZ2l0YWxfbmZjX29wcyA9IHtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNzU2LVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NzU3OnN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKm5mY19kaWdpdGFsX2FsbG9jYXRlX2RldmljZShjb25zdCBzdHJ1Y3QgbmZjX2RpZ2l0YWxfb3BzICpvcHMsXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy03NTgtXFx0XFx0XFx0XFx0XFx0ICAgIF9fdTMyIHN1cHBvcnRlZF9wcm90b2NvbHMsXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTc2MS17XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo3NjI6XFx0c3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldjtcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTc2My1cXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODE5LX1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjgyMDpFWFBPUlRfU1lNQk9MKG5mY19kaWdpdGFsX2FsbG9jYXRlX2RldmljZSk7XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MjEtXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo4MjI6dm9pZCBuZmNfZGlnaXRhbF9mcmVlX2RldmljZShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODIzLXtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODI2LX1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjgyNzpFWFBPUlRfU1lNQk9MKG5mY19kaWdpdGFsX2ZyZWVfZGV2aWNlKTtcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTgyOC1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjgyOTppbnQgbmZjX2RpZ2l0YWxfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MzAte1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MzItfVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6ODMzOkVYUE9SVF9TWU1CT0wobmZjX2RpZ2l0YWxfcmVnaXN0ZXJfZGV2aWNlKTtcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTgzNC1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjgzNTp2b2lkIG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MzYte1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04NjItfVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6ODYzOkVYUE9SVF9TWU1CT0wobmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UpO1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODY0LVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jPTEwMD1zdHJ1Y3QgZGlnaXRhbF9kZXBfcmVxX3JlcyB7XFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTA1LVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoxMDY6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X2RlcF9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMDctXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpyZXNwKTtcXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6MTA4OnN0YXRpYyB2b2lkIGRpZ2l0YWxfdGdfcmVjdl9kZXBfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTA5LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcCk7XFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM9MTU3PXN0YXRpYyB1OCBkaWdpdGFsX3BheWxvYWRfc2l6ZV90b19iaXRzKHU4IHBheWxvYWRfc2l6ZSlcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xNjctXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjE2ODpzdGF0aWMgdm9pZCBkaWdpdGFsX3NrYl9wdXNoX2RlcF9zb2Qoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTY5LVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xNzgtXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjE3OTpzdGF0aWMgaW50IGRpZ2l0YWxfc2tiX3B1bGxfZGVwX3NvZChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xODAtXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM9MTk5PXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjIwMDpkaWdpdGFsX3NlbmRfZGVwX2RhdGFfcHJlcChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0yMDEtXFx0XFx0XFx0ICAgc3RydWN0IGRpZ2l0YWxfZGVwX3JlcV9yZXMgKmRlcF9yZXFfcmVzLFxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jPTIzMD1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKlxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoyMzE6ZGlnaXRhbF9yZWN2X2RlcF9kYXRhX2dhdGhlcihzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCBwZmIsXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTIzMi1cXHRcXHRcXHQgICAgIHN0cnVjdCBza19idWZmICpyZXNwLFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoyMzM6XFx0XFx0XFx0ICAgICBpbnQgKCpzZW5kX2Fjaykoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMjM0LVxcdFxcdFxcdFxcdFxcdCAgICAgc3RydWN0IGRpZ2l0YWxfZGF0YV9leGNoXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMjk0LVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoyOTU6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X3BzbF9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0yOTYtXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpyZXNwKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTM1OC1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6MzU5OnN0YXRpYyBpbnQgZGlnaXRhbF9pbl9zZW5kX3BzbF9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMzYwLVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBuZmNfdGFyZ2V0ICp0YXJnZXQpXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMzk4LVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzozOTk6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X2F0cl9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy00MDAtXFx0XFx0XFx0XFx0IHN0cnVjdCBza19idWZmICpyZXNwKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTQ3MC1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6NDcxOmludCBkaWdpdGFsX2luX3NlbmRfYXRyX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy00NzItXFx0XFx0XFx0ICAgIHN0cnVjdCBuZmNfdGFyZ2V0ICp0YXJnZXQsIF9fdTggY29tbV9tb2RlLCBfX3U4ICpnYixcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy01MjgtXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjUyOTpzdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZF9hY2soc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtNTMwLVxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgZGlnaXRhbF9kYXRhX2V4Y2ggKmRhdGFfZXhjaClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy01NjUtXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjU2NjpzdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZF9uYWNrKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTU2Ny1cXHRcXHRcXHRcXHRzdHJ1Y3QgZGlnaXRhbF9kYXRhX2V4Y2ggKmRhdGFfZXhjaClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy01OTctXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjU5ODpzdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZF9hdG4oc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtNTk5LVxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgZGlnaXRhbF9kYXRhX2V4Y2ggKmRhdGFfZXhjaClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy02MjgtXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjYyOTpzdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZF9ydG94KHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTYzMC1cXHRcXHRcXHRcXHRzdHJ1Y3QgZGlnaXRhbF9kYXRhX2V4Y2ggKmRhdGFfZXhjaCwgdTggcnRveClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy02NjctXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjY2ODpzdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZF9zYXZlZF9za2Ioc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtNjY5LVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IGRpZ2l0YWxfZGF0YV9leGNoICpkYXRhX2V4Y2gpXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtNjg1LVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzo2ODY6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X2RlcF9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy02ODctXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpyZXNwKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTkwMy1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6OTA0OmludCBkaWdpdGFsX2luX3NlbmRfZGVwX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy05MDUtXFx0XFx0XFx0ICAgIHN0cnVjdCBuZmNfdGFyZ2V0ICp0YXJnZXQsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtOTUwLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzo5NTE6c3RhdGljIHZvaWQgZGlnaXRhbF90Z19zZXRfcmZfdGVjaChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy05NTIte1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTk3Ny1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6OTc4OnN0YXRpYyBpbnQgZGlnaXRhbF90Z19zZW5kX2FjayhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy05NzktXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBkaWdpdGFsX2RhdGFfZXhjaCAqZGF0YV9leGNoKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEwMjMtXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjEwMjQ6c3RhdGljIGludCBkaWdpdGFsX3RnX3NlbmRfYXRuKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEwMjUte1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEwNTktXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjEwNjA6c3RhdGljIGludCBkaWdpdGFsX3RnX3NlbmRfc2F2ZWRfc2tiKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEwNjEte1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEwNzYtXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjEwNzc6c3RhdGljIHZvaWQgZGlnaXRhbF90Z19yZWN2X2RlcF9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMDc4LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMjk2LVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoxMjk3OmludCBkaWdpdGFsX3RnX3NlbmRfZGVwX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMjk4LXtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMzQ3LVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoxMzQ4OnN0YXRpYyB2b2lkIGRpZ2l0YWxfdGdfc2VuZF9wc2xfcmVzX2NvbXBsZXRlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEzNDktXFx0XFx0XFx0XFx0XFx0ICAgICB2b2lkICphcmcsIHN0cnVjdCBza19idWZmICpyZXNwKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEzNjQtXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjEzNjU6c3RhdGljIGludCBkaWdpdGFsX3RnX3NlbmRfcHNsX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCBkaWQsXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEzNjYtXFx0XFx0XFx0XFx0ICAgdTggcmZfdGVjaClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMzk3LVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoxMzk4OnN0YXRpYyB2b2lkIGRpZ2l0YWxfdGdfcmVjdl9wc2xfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTM5OS1cXHRcXHRcXHRcXHQgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTQ2Ni1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6MTQ2NzpzdGF0aWMgdm9pZCBkaWdpdGFsX3RnX3NlbmRfYXRyX3Jlc19jb21wbGV0ZShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xNDY4LVxcdFxcdFxcdFxcdFxcdCAgICAgdm9pZCAqYXJnLCBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xNDg4LVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoxNDg5OnN0YXRpYyBpbnQgZGlnaXRhbF90Z19zZW5kX2F0cl9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTQ5MC1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgZGlnaXRhbF9hdHJfcmVxICphdHJfcmVxKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTE1NDAtXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjE1NDE6dm9pZCBkaWdpdGFsX3RnX3JlY3ZfYXRyX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTE1NDItXFx0XFx0XFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM9MTU4PXN0cnVjdCBkaWdpdGFsX2lzbzE1NjkzX2ludl9yZXMge1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xNjMtXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzoxNjQ6c3RhdGljIGludCBkaWdpdGFsX2luX3NlbmRfc2RkX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTY1LVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBuZmNfdGFyZ2V0ICp0YXJnZXQpO1xcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTY2LVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6MTY3OmludCBkaWdpdGFsX2luX2lzb19kZXBfcHVsbF9zb2Qoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTE2OC1cXHRcXHRcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xOTQtXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzoxOTU6aW50IGRpZ2l0YWxfaW5faXNvX2RlcF9wdXNoX3NvZChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTk2LVxcdFxcdFxcdFxcdHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTIxNC1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjIxNTpzdGF0aWMgdm9pZCBkaWdpdGFsX2luX3JlY3ZfYXRzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTIxNi1cXHRcXHRcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMjUwLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6MjUxOnN0YXRpYyBpbnQgZGlnaXRhbF9pbl9zZW5kX3JhdHMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTI1Mi1cXHRcXHRcXHRcXHRzdHJ1Y3QgbmZjX3RhcmdldCAqdGFyZ2V0KVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0yNzEtXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzoyNzI6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X3NlbF9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMjczLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMzQwLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6MzQxOnN0YXRpYyBpbnQgZGlnaXRhbF9pbl9zZW5kX3NlbF9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTM0Mi1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgbmZjX3RhcmdldCAqdGFyZ2V0LFxcbi0tXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0zODYtXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzozODc6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X3NkZF9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMzg4LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNDQ3LVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6NDQ4OnN0YXRpYyBpbnQgZGlnaXRhbF9pbl9zZW5kX3NkZF9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTQ0OS1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgbmZjX3RhcmdldCAqdGFyZ2V0KVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy00ODEtXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzo0ODI6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X3NlbnNfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTQ4My1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBza19idWZmICpyZXNwKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy01MjYtXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzo1Mjc6aW50IGRpZ2l0YWxfaW5fc2VuZF9zZW5zX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNTI4LXtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM9NTU1PWludCBkaWdpdGFsX2luX3JlY3ZfbWlmYXJlX3JlcyhzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNTgwLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6NTgxOnN0YXRpYyB2b2lkIGRpZ2l0YWxfaW5fcmVjdl9hdHRyaWJfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTU4Mi1cXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTYxNy1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjYxODpzdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZF9hdHRyaWJfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy02MTktXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBuZmNfdGFyZ2V0ICp0YXJnZXQsXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTY1MC1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjY1MTpzdGF0aWMgdm9pZCBkaWdpdGFsX2luX3JlY3Zfc2Vuc2JfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTY1Mi1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNzEzLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6NzE0OmludCBkaWdpdGFsX2luX3NlbmRfc2Vuc2JfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy03MTUte1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy03NDctXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzo3NDg6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X3NlbnNmX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy03NDktXFx0XFx0XFx0XFx0ICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTgwMS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjgwMjppbnQgZGlnaXRhbF9pbl9zZW5kX3NlbnNmX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtODAzLXtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtODQ1LVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6ODQ2OnN0YXRpYyB2b2lkIGRpZ2l0YWxfaW5fcmVjdl9pc28xNTY5M19pbnZfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy04NDctXFx0XFx0dm9pZCAqYXJnLCBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtODkyLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6ODkzOmludCBkaWdpdGFsX2luX3NlbmRfaXNvMTU2OTNfaW52X3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtODk0LXtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtOTMyLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6OTMzOnN0YXRpYyBpbnQgZGlnaXRhbF90Z19zZW5kX3NlbF9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldilcXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTkzNC17XFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTk2MS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjk2MjpzdGF0aWMgdm9pZCBkaWdpdGFsX3RnX3JlY3Zfc2VsX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy05NjMtXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpyZXNwKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy05OTEtXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzo5OTI6c3RhdGljIGludCBkaWdpdGFsX3RnX3NlbmRfc2RkX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtOTkzLXtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTAyNi1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjEwMjc6c3RhdGljIHZvaWQgZGlnaXRhbF90Z19yZWN2X3NkZF9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTAyOC1cXHRcXHRcXHRcXHQgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTEwNTUtXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzoxMDU2OnN0YXRpYyBpbnQgZGlnaXRhbF90Z19zZW5kX3NlbnNfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMDU3LXtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTA4NS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjEwODY6dm9pZCBkaWdpdGFsX3RnX3JlY3Zfc2Vuc19yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTA4Ny1cXHRcXHRcXHQgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTExNC1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjExMTU6c3RhdGljIHZvaWQgZGlnaXRhbF90Z19yZWN2X2F0cl9vcl9zZW5zZl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTExMTYtXFx0XFx0dm9pZCAqYXJnLCBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTEyNi1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjExMjc6c3RhdGljIGludCBkaWdpdGFsX3RnX3NlbmRfc2Vuc2ZfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMTI4LVxcdFxcdFxcdCAgICAgIHN0cnVjdCBkaWdpdGFsX3NlbnNmX3JlcSAqc2Vuc2ZfcmVxKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMTc4LVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6MTE3OTp2b2lkIGRpZ2l0YWxfdGdfcmVjdl9zZW5zZl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTE4MC1cXHRcXHRcXHQgICAgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTEyMjAtXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzoxMjIxOnN0YXRpYyBpbnQgZGlnaXRhbF90Z19jb25maWdfbmZjYShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTIyMi17XFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTEyMzMtXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzoxMjM0OmludCBkaWdpdGFsX3RnX2xpc3Rlbl9uZmNhKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMjM1LXtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTI0NC1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjEyNDU6c3RhdGljIGludCBkaWdpdGFsX3RnX2NvbmZpZ19uZmNmKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMjQ2LXtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTE6Mzc6MzEuMzU3ODg1MTcxWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDI2NDYyNzY5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE5GQyBEaWdpdGFsIFVucmVnaXN0cmF0aW9uKipcblxuT2theSwgc28gdGhlIGNvbmZpZ3VyYXRpb24gaW4gcGxheSBoZXJlIGlzIGBDT05GSUdfTkZDX0RJR0lUQUxgLiBUaGF0IG5hcnJvd3MgZG93biB0aGUgc2NvcGUgYSBiaXQsIHdoaWNoIGlzIGFsd2F5cyBoZWxwZnVsLiBSaWdodCBub3csIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCBjaGFuZ2VzIHRoZSBgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VgIGZ1bmN0aW9uLiBTcGVjaWZpY2FsbHksIGl0J3MgbG9jYXRlZCBpbiBgbmV0L25mYy9kaWdpdGFsX2NvcmUuY2AuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBsZXQncyB0cmFjZSB0aGlzIGZ1bmN0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoZSBjaGFuZ2UsIHNvIEkgbmVlZCB0byBmaW5kIG91dCAqZXhhY3RseSogd2hlcmUgYG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlYCBpcyBjYWxsZWQuIFRoZSBjb250ZXh0IG9mIGl0cyB1c2FnZSBpcyBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgbW9kaWZpY2F0aW9uJ3MgaW1wYWN0LiBJJ2xsIG5lZWQgdG8gdXNlIG15IHVzdWFsIHRvb2xzIHRvIHBlcmZvcm0gYSBjcm9zcy1yZWZlcmVuY2Ugc2VhcmNoIGFuZCBzZWUgd2hhdCBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtIHJlbHkgb24gdGhpcyBmdW5jdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTM0MzksIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQxMTozNzozNS42MjI1MTUwMzFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjcwMjgyMTk4MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZmMvbmZjc2ltLmM9NDEyPXN0YXRpYyB2b2lkIG5mY3NpbV9kZXZpY2VfZnJlZShzdHJ1Y3QgbmZjc2ltICpkZXYpXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDEzLXtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0MTQ6XFx0bmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UoZGV2LVxcdTAwM2VuZmNfZGlnaXRhbF9kZXYpO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQxNS1cXG4tLVxcbmRyaXZlcnMvbmZjL3BvcnQxMDAuYz0xNjA4PXN0YXRpYyB2b2lkIHBvcnQxMDBfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxcbi0tXFxuZHJpdmVycy9uZmMvcG9ydDEwMC5jLTE2MTQtXFxuZHJpdmVycy9uZmMvcG9ydDEwMC5jOjE2MTU6XFx0bmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UoZGV2LVxcdTAwM2VuZmNfZGlnaXRhbF9kZXYpO1xcbmRyaXZlcnMvbmZjL3BvcnQxMDAuYy0xNjE2LVxcdG5mY19kaWdpdGFsX2ZyZWVfZGV2aWNlKGRldi1cXHUwMDNlbmZjX2RpZ2l0YWxfZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmZjL3N0OTVoZi9jb3JlLmM9MTE5Nj1zdGF0aWMgdm9pZCBzdDk1aGZfcmVtb3ZlKHN0cnVjdCBzcGlfZGV2aWNlICpuZmNfc3BpX2RldilcXG4tLVxcbmRyaXZlcnMvbmZjL3N0OTVoZi9jb3JlLmMtMTIwNy1cXG5kcml2ZXJzL25mYy9zdDk1aGYvY29yZS5jOjEyMDg6XFx0bmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2Uoc3Rjb250ZXh0LVxcdTAwM2VkZGV2KTtcXG5kcml2ZXJzL25mYy9zdDk1aGYvY29yZS5jLTEyMDktXFx0bmZjX2RpZ2l0YWxfZnJlZV9kZXZpY2Uoc3Rjb250ZXh0LVxcdTAwM2VkZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmZjL3RyZjc5NzBhLmM9MjIyMD1zdGF0aWMgdm9pZCB0cmY3OTcwYV9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcXG4tLVxcbmRyaXZlcnMvbmZjL3RyZjc5NzBhLmMtMjIyOS1cXG5kcml2ZXJzL25mYy90cmY3OTcwYS5jOjIyMzA6XFx0bmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UodHJmLVxcdTAwM2VkZGV2KTtcXG5kcml2ZXJzL25mYy90cmY3OTcwYS5jLTIyMzEtXFx0bmZjX2RpZ2l0YWxfZnJlZV9kZXZpY2UodHJmLVxcdTAwM2VkZGV2KTtcXG4tLVxcbmluY2x1ZGUvbmV0L25mYy9kaWdpdGFsLmg9MjQ1PWludCBuZmNfZGlnaXRhbF9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqbmRldik7XFxuaW5jbHVkZS9uZXQvbmZjL2RpZ2l0YWwuaDoyNDY6dm9pZCBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpuZGV2KTtcXG5pbmNsdWRlL25ldC9uZmMvZGlnaXRhbC5oLTI0Ny1cXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9ODMzPUVYUE9SVF9TWU1CT0wobmZjX2RpZ2l0YWxfcmVnaXN0ZXJfZGV2aWNlKTtcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTgzNC1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjgzNTp2b2lkIG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MzYte1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04NjItfVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6ODYzOkVYUE9SVF9TWU1CT0wobmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UpO1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODY0LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQxMTozNzozOC4zMjUzNDQzNjNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0Mjk0MjM5NTQ4MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgTkZDIERyaXZlciBSZW1vdmFsIEZ1bmN0aW9ucyoqXG5cbk9rYXksIHNvIEknbSBzZWVpbmcgdGhhdCB0aGUgYG5mY3NpbV9kZXZpY2VfZnJlZWAgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkIGluIG11bHRpcGxlIGRyaXZlciByZW1vdmFsIGZ1bmN0aW9uczogYG5mY3NpbV9kZXZpY2VfZnJlZWAgaW4gdGhlIGBuZmNzaW0uY2AgZmlsZSwgYXMgd2VsbCBhcyBgcG9ydDEwMF9kaXNjb25uZWN0YCBpbiBgcG9ydDEwMC5jYCwgYW5kIGFsc28gYHN0OTVoZl9yZW1vdmVgLCBhbmQgYHRyZjc5NzBhX3JlbW92ZWAuIFRoYXQncyBpbnRlcmVzdGluZywgYW5kIHdvcnRoIGRpZ2dpbmcgaW50by4gR2l2ZW4gd2hhdCBJIGtub3csIHRoZSBgbmZjc2ltYCBkcml2ZXIgaXMgcGVyZmVjdCBmb3IgbXkgZnV6emluZyBleHBlcmltZW50cy5cblxuTm93LCBteSBuZXh0IHN0ZXAgaXMgY2xlYXIg4oCTIEkgbmVlZCB0byBnZXQgYSBiZXR0ZXIgaGFuZGxlIG9uIHRoZSBgbmZjc2ltYCB2aXJ0dWFsIE5GQyBkcml2ZXIuIEkgc2hvdWxkIHN0YXJ0IGJ5IGV4YW1pbmluZyBpdHMgS2NvbmZpZyBmaWxlIGluIGBkcml2ZXJzL25mYy9uZmNzaW0uY2AuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIGl0cyBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIGRlcGVuZGVuY2llcy4gVGhpcyB3aWxsIGhlbHAgbWUgdW5kZXJzdGFuZCBob3cgaXQgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQsIGFuZCB3aGF0IGZlYXR1cmVzIGl0IG9mZmVycyBmb3IgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTQ0NzIsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTE6Mzg6MjEuMjY3NzQyOTY1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTk3NzIwMjM2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5mY3NpbVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25mYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZmMvTWFrZWZpbGU9MTA9b2JqLSQoQ09ORklHX05GQ19NRUlfUEhZKVxcdCs9IG1laV9waHkub1xcbmRyaXZlcnMvbmZjL01ha2VmaWxlOjExOm9iai0kKENPTkZJR19ORkNfU0lNKVxcdFxcdCs9IG5mY3NpbS5vXFxuZHJpdmVycy9uZmMvTWFrZWZpbGUtMTItb2JqLSQoQ09ORklHX05GQ19QT1JUMTAwKVxcdCs9IHBvcnQxMDAub1xcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzAtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzE6c3RydWN0IG5mY3NpbSB7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzItXFx0c3RydWN0IG5mY19kaWdpdGFsX2RldiAqbmZjX2RpZ2l0YWxfZGV2O1xcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzYtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6Mzc6XFx0c3RydWN0IG5mY3NpbV9saW5rICpsaW5rX2luO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjM4OlxcdHN0cnVjdCBuZmNzaW1fbGluayAqbGlua19vdXQ7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzktXFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy01MS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo1MjpzdHJ1Y3QgbmZjc2ltX2xpbmsge1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTUzLVxcdHN0cnVjdCBtdXRleCBsb2NrO1xcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNjQtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NjU6c3RhdGljIHN0cnVjdCBuZmNzaW1fbGluayAqbmZjc2ltX2xpbmtfbmV3KHZvaWQpXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNjYte1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjY3OlxcdHN0cnVjdCBuZmNzaW1fbGluayAqbGluaztcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy02OC1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo2OTpcXHRsaW5rID0ga3phbGxvY19vYmooc3RydWN0IG5mY3NpbV9saW5rKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy03MC1cXHRpZiAoIWxpbmspXFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy03OC1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo3OTpzdGF0aWMgdm9pZCBuZmNzaW1fbGlua19mcmVlKHN0cnVjdCBuZmNzaW1fbGluayAqbGluaylcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy04MC17XFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy04NC1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo4NTpzdGF0aWMgdm9pZCBuZmNzaW1fbGlua19yZWN2X3dha2Uoc3RydWN0IG5mY3NpbV9saW5rICpsaW5rKVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTg2LXtcXG4tLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTkwLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjkxOnN0YXRpYyB2b2lkIG5mY3NpbV9saW5rX3NldF9za2Ioc3RydWN0IG5mY3NpbV9saW5rICpsaW5rLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTkyLVxcdFxcdFxcdFxcdHU4IHJmX3RlY2gsIHU4IG1vZGUpXFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xMDMtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MTA0OnN0YXRpYyB2b2lkIG5mY3NpbV9saW5rX3JlY3ZfY2FuY2VsKHN0cnVjdCBuZmNzaW1fbGluayAqbGluaylcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xMDUte1xcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTExLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjExMjpcXHRuZmNzaW1fbGlua19yZWN2X3dha2UobGluayk7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTEzLX1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xMTQtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MTE1OnN0YXRpYyB2b2lkIG5mY3NpbV9saW5rX3NodXRkb3duKHN0cnVjdCBuZmNzaW1fbGluayAqbGluaylcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xMTYte1xcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTIzLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjEyNDpcXHRuZmNzaW1fbGlua19yZWN2X3dha2UobGluayk7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTI1LX1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xMjYtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MTI3OnN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqbmZjc2ltX2xpbmtfcmVjdl9za2Ioc3RydWN0IG5mY3NpbV9saW5rICpsaW5rLFxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTEyOC1cXHRcXHRcXHRcXHRcXHQgICAgaW50IHRpbWVvdXQsIHU4IHJmX3RlY2gsIHU4IG1vZGUpXFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xNjktXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MTcwOnN0YXRpYyB2b2lkIG5mY3NpbV9zZW5kX3dxKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xNzEte1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjE3MjpcXHRzdHJ1Y3QgbmZjc2ltICpkZXYgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IG5mY3NpbSwgc2VuZF93b3JrLndvcmspO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTE3My1cXG4tLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTE3Ni1cXHQgKiBpcyB0aGUgbGlua19pbiBvZiB0aGUgcGVlciBkZXZpY2UuIFRoZSBleGNoYW5nZWQgc2tiIGhhcyBhbHJlYWR5IGJlZW5cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzoxNzc6XFx0ICogc3RvcmVkIGluIHRoZSBkZXYtXFx1MDAzZWxpbmtfb3V0IHRocm91Z2ggbmZjc2ltX2xpbmtfc2V0X3NrYigpLlxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTE3OC1cXHQgKi9cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzoxNzk6XFx0bmZjc2ltX2xpbmtfcmVjdl93YWtlKGRldi1cXHUwMDNlbGlua19vdXQpO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTE4MC19XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTgxLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjE4MjpzdGF0aWMgdm9pZCBuZmNzaW1fcmVjdl93cShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTgzLXtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzoxODQ6XFx0c3RydWN0IG5mY3NpbSAqZGV2ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBuZmNzaW0sIHJlY3Zfd29yayk7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTg1LVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTg2LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjE4NzpcXHRza2IgPSBuZmNzaW1fbGlua19yZWN2X3NrYihkZXYtXFx1MDAzZWxpbmtfaW4sIGRldi1cXHUwMDNlcmVjdl90aW1lb3V0LFxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTE4OC1cXHRcXHRcXHRcXHQgICBkZXYtXFx1MDAzZXJmX3RlY2gsIGRldi1cXHUwMDNlbW9kZSk7XFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yMDAtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MjAxOnN0YXRpYyBpbnQgbmZjc2ltX3NlbmQoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yMDItXFx0XFx0ICAgICAgIHUxNiB0aW1lb3V0LCBuZmNfZGlnaXRhbF9jbWRfY29tcGxldGVfdCBjYiwgdm9pZCAqYXJnKVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTIwMy17XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MjA0OlxcdHN0cnVjdCBuZmNzaW0gKmRldiA9IG5mY19kaWdpdGFsX2dldF9kcnZkYXRhKGRkZXYpO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTIwNS1cXHR1OCBkZWxheTtcXG4tLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTIyNi1cXHRpZiAoc2tiKSB7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MjI3OlxcdFxcdG5mY3NpbV9saW5rX3NldF9za2IoZGV2LVxcdTAwM2VsaW5rX291dCwgc2tiLCBkZXYtXFx1MDAzZXJmX3RlY2gsXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjI4LVxcdFxcdFxcdFxcdCAgICBkZXYtXFx1MDAzZW1vZGUpO1xcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjM5LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI0MDpzdGF0aWMgdm9pZCBuZmNzaW1fYWJvcnRfY21kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjQxLXtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzoyNDI6XFx0Y29uc3Qgc3RydWN0IG5mY3NpbSAqZGV2ID0gbmZjX2RpZ2l0YWxfZ2V0X2RydmRhdGEoZGRldik7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjQzLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI0NDpcXHRuZmNzaW1fbGlua19yZWN2X2NhbmNlbChkZXYtXFx1MDAzZWxpbmtfaW4pO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTI0NS19XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjQ2LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI0NzpzdGF0aWMgaW50IG5mY3NpbV9zd2l0Y2hfcmYoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgYm9vbCBvbilcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yNDgte1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI0OTpcXHRzdHJ1Y3QgbmZjc2ltICpkZXYgPSBuZmNfZGlnaXRhbF9nZXRfZHJ2ZGF0YShkZGV2KTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yNTAtXFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yNTUtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MjU2OnN0YXRpYyBpbnQgbmZjc2ltX2luX2NvbmZpZ3VyZV9odyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTI1Ny1cXHRcXHRcXHRcXHRcXHQgIGludCB0eXBlLCBpbnQgcGFyYW0pXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjU4LXtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzoyNTk6XFx0c3RydWN0IG5mY3NpbSAqZGV2ID0gbmZjX2RpZ2l0YWxfZ2V0X2RydmRhdGEoZGRldik7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjYwLVxcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjc4LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI3OTpzdGF0aWMgaW50IG5mY3NpbV9pbl9zZW5kX2NtZChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTI4MC1cXHRcXHRcXHQgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTE2IHRpbWVvdXQsXFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yODIte1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI4MzpcXHRyZXR1cm4gbmZjc2ltX3NlbmQoZGRldiwgc2tiLCB0aW1lb3V0LCBjYiwgYXJnKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yODQtfVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTI4NS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzoyODY6c3RhdGljIGludCBuZmNzaW1fdGdfY29uZmlndXJlX2h3KHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjg3LVxcdFxcdFxcdFxcdFxcdCAgaW50IHR5cGUsIGludCBwYXJhbSlcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yODgte1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI4OTpcXHRzdHJ1Y3QgbmZjc2ltICpkZXYgPSBuZmNfZGlnaXRhbF9nZXRfZHJ2ZGF0YShkZGV2KTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yOTAtXFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMDgtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzA5OnN0YXRpYyBpbnQgbmZjc2ltX3RnX3NlbmRfY21kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzEwLVxcdFxcdFxcdCAgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MTYgdGltZW91dCxcXG4tLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMxMi17XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzEzOlxcdHJldHVybiBuZmNzaW1fc2VuZChkZGV2LCBza2IsIHRpbWVvdXQsIGNiLCBhcmcpO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMxNC19XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzE1LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjMxNjpzdGF0aWMgaW50IG5mY3NpbV90Z19saXN0ZW4oc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTE2IHRpbWVvdXQsXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzE3LVxcdFxcdFxcdCAgICBuZmNfZGlnaXRhbF9jbWRfY29tcGxldGVfdCBjYiwgdm9pZCAqYXJnKVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMxOC17XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzE5OlxcdHJldHVybiBuZmNzaW1fc2VuZChkZGV2LCBOVUxMLCB0aW1lb3V0LCBjYiwgYXJnKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMjAtfVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMyMS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMjI6c3RhdGljIGNvbnN0IHN0cnVjdCBuZmNfZGlnaXRhbF9vcHMgbmZjc2ltX2RpZ2l0YWxfb3BzID0ge1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjMyMzpcXHQuaW5fY29uZmlndXJlX2h3ID0gbmZjc2ltX2luX2NvbmZpZ3VyZV9odyxcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMjQ6XFx0LmluX3NlbmRfY21kID0gbmZjc2ltX2luX3NlbmRfY21kLFxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMyNS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMjY6XFx0LnRnX2xpc3RlbiA9IG5mY3NpbV90Z19saXN0ZW4sXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzI3OlxcdC50Z19jb25maWd1cmVfaHcgPSBuZmNzaW1fdGdfY29uZmlndXJlX2h3LFxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjMyODpcXHQudGdfc2VuZF9jbWQgPSBuZmNzaW1fdGdfc2VuZF9jbWQsXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzI5LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjMzMDpcXHQuYWJvcnRfY21kID0gbmZjc2ltX2Fib3J0X2NtZCxcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMzE6XFx0LnN3aXRjaF9yZiA9IG5mY3NpbV9zd2l0Y2hfcmYsXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzMyLX07XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzMzLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjMzNDpzdGF0aWMgc3RydWN0IGRlbnRyeSAqbmZjc2ltX2RlYnVnZnNfcm9vdDtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMzUtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzM2OnN0YXRpYyB2b2lkIG5mY3NpbV9kZWJ1Z2ZzX2luaXQodm9pZClcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMzcte1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjMzODpcXHRuZmNzaW1fZGVidWdmc19yb290ID0gZGVidWdmc19jcmVhdGVfZGlyKFxcXCJuZmNzaW1cXFwiLCBOVUxMKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMzktfVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM0MC1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozNDE6c3RhdGljIHZvaWQgbmZjc2ltX2RlYnVnZnNfcmVtb3ZlKHZvaWQpXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzQyLXtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozNDM6XFx0ZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKG5mY3NpbV9kZWJ1Z2ZzX3Jvb3QpO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM0NC19XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzQ1LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjM0NjpzdGF0aWMgdm9pZCBuZmNzaW1fZGVidWdmc19pbml0X2RldihzdHJ1Y3QgbmZjc2ltICpkZXYpXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzQ3LXtcXG4tLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM1Mi1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozNTM6XFx0aWYgKCFuZmNzaW1fZGVidWdmc19yb290KSB7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzU0OlxcdFxcdE5GQ1NJTV9FUlIoZGV2LCBcXFwibmZjc2ltIGRlYnVnZnMgbm90IGluaXRpYWxpemVkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zNTUtXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzY0LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjM2NTpcXHRkZXZfZGlyID0gZGVidWdmc19jcmVhdGVfZGlyKGRldm5hbWUsIG5mY3NpbV9kZWJ1Z2ZzX3Jvb3QpO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM2Ni1cXG4tLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM2OS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozNzA6c3RhdGljIHN0cnVjdCBuZmNzaW0gKm5mY3NpbV9kZXZpY2VfbmV3KHN0cnVjdCBuZmNzaW1fbGluayAqbGlua19pbixcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozNzE6XFx0XFx0XFx0XFx0XFx0c3RydWN0IG5mY3NpbV9saW5rICpsaW5rX291dClcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zNzIte1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjM3MzpcXHRzdHJ1Y3QgbmZjc2ltICpkZXY7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzc0LVxcdGludCByYztcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zNzUtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6Mzc2OlxcdGRldiA9IGt6YWxsb2Nfb2JqKHN0cnVjdCBuZmNzaW0pO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM3Ny1cXHRpZiAoIWRldilcXG4tLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM3OS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozODA6XFx0SU5JVF9ERUxBWUVEX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlc2VuZF93b3JrLCBuZmNzaW1fc2VuZF93cSk7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzgxOlxcdElOSVRfV09SSyhcXHUwMDI2ZGV2LVxcdTAwM2VyZWN2X3dvcmssIG5mY3NpbV9yZWN2X3dxKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zODItXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzgzLVxcdGRldi1cXHUwMDNlbmZjX2RpZ2l0YWxfZGV2ID1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozODQ6XFx0XFx0XFx0bmZjX2RpZ2l0YWxfYWxsb2NhdGVfZGV2aWNlKFxcdTAwMjZuZmNzaW1fZGlnaXRhbF9vcHMsXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzg1LVxcdFxcdFxcdFxcdFxcdFxcdCAgICBORkNfUFJPVE9fTkZDX0RFUF9NQVNLLFxcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDA2LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQwNzpcXHRuZmNzaW1fZGVidWdmc19pbml0X2RldihkZXYpO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQwOC1cXG4tLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQxMS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0MTI6c3RhdGljIHZvaWQgbmZjc2ltX2RldmljZV9mcmVlKHN0cnVjdCBuZmNzaW0gKmRldilcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00MTMte1xcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDE3LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQxODpcXHRuZmNzaW1fbGlua19zaHV0ZG93bihkZXYtXFx1MDAzZWxpbmtfaW4pO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQxOS1cXG4tLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQyNy1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0Mjg6c3RhdGljIHN0cnVjdCBuZmNzaW0gKmRldjA7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDI5OnN0YXRpYyBzdHJ1Y3QgbmZjc2ltICpkZXYxO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQzMC1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0MzE6c3RhdGljIGludCBfX2luaXQgbmZjc2ltX2luaXQodm9pZClcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00MzIte1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQzMzpcXHRzdHJ1Y3QgbmZjc2ltX2xpbmsgKmxpbmswLCAqbGluazE7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDM0LVxcdGludCByYztcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00MzUtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDM2OlxcdGxpbmswID0gbmZjc2ltX2xpbmtfbmV3KCk7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDM3OlxcdGxpbmsxID0gbmZjc2ltX2xpbmtfbmV3KCk7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDM4LVxcdGlmICghbGluazAgfHwgIWxpbmsxKSB7XFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NDItXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDQzOlxcdG5mY3NpbV9kZWJ1Z2ZzX2luaXQoKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NDQtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDQ1OlxcdGRldjAgPSBuZmNzaW1fZGV2aWNlX25ldyhsaW5rMCwgbGluazEpO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ0Ni1cXHRpZiAoSVNfRVJSKGRldjApKSB7XFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NTAtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDUxOlxcdGRldjEgPSBuZmNzaW1fZGV2aWNlX25ldyhsaW5rMSwgbGluazApO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ1Mi1cXHRpZiAoSVNfRVJSKGRldjEpKSB7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDUzOlxcdFxcdG5mY3NpbV9kZXZpY2VfZnJlZShkZXYwKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NTQtXFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NTgtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDU5OlxcdHByX2luZm8oXFxcIm5mY3NpbSBcXFwiIE5GQ1NJTV9WRVJTSU9OIFxcXCIgaW5pdGlhbGl6ZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ2MC1cXG4tLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ2My1leGl0X2VycjpcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0NjQ6XFx0cHJfZXJyKFxcXCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBuZmNzaW0gZHJpdmVyICglZClcXFxcblxcXCIsIHJjKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NjUtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDY2LVxcdGlmIChsaW5rMClcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0Njc6XFx0XFx0bmZjc2ltX2xpbmtfZnJlZShsaW5rMCk7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDY4LVxcdGlmIChsaW5rMSlcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0Njk6XFx0XFx0bmZjc2ltX2xpbmtfZnJlZShsaW5rMSk7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDcwLVxcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDczLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ3NDpzdGF0aWMgdm9pZCBfX2V4aXQgbmZjc2ltX2V4aXQodm9pZClcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NzUte1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ3NjpcXHRzdHJ1Y3QgbmZjc2ltX2xpbmsgKmxpbmswLCAqbGluazE7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDc3LVxcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDgwLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ4MTpcXHRuZmNzaW1fZGV2aWNlX2ZyZWUoZGV2MCk7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDgyOlxcdG5mY3NpbV9kZXZpY2VfZnJlZShkZXYxKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00ODMtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDg0OlxcdG5mY3NpbV9saW5rX2ZyZWUobGluazApO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ4NTpcXHRuZmNzaW1fbGlua19mcmVlKGxpbmsxKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00ODYtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDg3OlxcdG5mY3NpbV9kZWJ1Z2ZzX3JlbW92ZSgpO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ4OC19XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDg5LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ5MDptb2R1bGVfaW5pdChuZmNzaW1faW5pdCk7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDkxOm1vZHVsZV9leGl0KG5mY3NpbV9leGl0KTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00OTItXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDExOjM4OjIyLjg2NTQ3MTI2MVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1OTM3MDY2MDM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSW1wbGljYXRpb25zIG9mIHRoZSBORkMgQ29uZmlndXJhdGlvbiBDaGFuZ2UqKlxuXG5Pa2F5LCBzbyBJIHNlZSB0aGlzIHBhdGNoLCBhbmQgaXQncyBtb2RpZnlpbmcgdGhlIGBuZmNzaW1gIGNvbmZpZ3VyYXRpb24gc3BlY2lmaWNhbGx5IHdpdGggYENPTkZJR19ORkNfU0lNYC4gVGhlIGFjdHVhbCBjb2RlIGNoYW5nZSByZXBsYWNlcyBgY2FuY2VsX3dvcmtfc3luY2Agd2l0aCBgZGlzYWJsZV93b3JrX3N5bmNgIHdpdGhpbiBgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VgLiBGdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBjaGFuZ2UgdGhhdCBuZWVkcyBjYXJlZnVsIGNvbnNpZGVyYXRpb24uXG5cbkxldCdzIGJyZWFrIGRvd24gd2hlcmUgdGhpcyBpbXBhY3RzIHRoaW5ncy4gYG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlYCBpcyBpbnZva2VkIHdoZW4gYSBkZXZpY2UgaXMgdW5yZWdpc3RlcmVkLiBUaGF0J3MgZWl0aGVyIG1vZHVsZSB1bmxvYWRpbmcsIG9yIHBoeXNpY2FsIGRpc2Nvbm5lY3Rpb24uIEluIGBuZmNzaW1gLCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbnNpZGUgYG5mY3NpbV9kZXZpY2VfZnJlZWAsIHdoaWNoIGdldHMgY2FsbGVkIGVpdGhlciBmcm9tIGBuZmNzaW1fZXhpdGAgb3IgZnJvbSBhbiBlcnJvciBjb25kaXRpb24gaW4gYG5mY3NpbV9pbml0YC5cblxuV2FpdCwgZG9lcyBgbmZjc2ltYCBnZXQgZHluYW1pY2FsbHkgY3JlYXRlZCBhbmQgZGVzdHJveWVkPyBObywgaXQncyBhIG1vZHVsZSwgaXQgc2VlbXMgcHJldHR5IHN0YXRpYy4gQnV0IGhvbGQgb24sIHdoYXQgYWJvdXQgdGhlIGRldmljZXMgaXQgKmludGVyZmFjZXMqIHdpdGg/IGBwb3J0MTAwYCBpcyBhIFVTQiBkcml2ZXIsIHNvIGl0ICpjYW4qIGJlIGhvdHBsdWdnZWQuIEFuZCB0aGVuIGBzdDk1aGZgIGFuZCBgdHJmNzk3MGFgIGFyZSBTUEkgZHJpdmVycywgc28gdGhleSAqY2FuKiBiZSB1bmJvdW5kLiBUaGF0J3Mgd2hlcmUgdGhpbmdzIGdldCBpbnRlcmVzdGluZy4gRnV6emluZywgZm9yIGV4YW1wbGUsIGNvdWxkIHRyaWdnZXIgZGV2aWNlIHVuYmluZGluZyB2aWEgc3lzZnMgb3IgYSBVU0IgZGlzY29ubmVjdCB2aWEgYSBkdW1teSBIQ0QuXG5cblRoZXJlZm9yZSwgYG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlYCBpcyBkZWZpbml0ZWx5IGEgcmVhY2hhYmxlIGNvZGUgcGF0aC4gVGltZSB0byBnbyBiYWNrIGFuZCBkb3VibGUgY2hlY2sgYG5ldC9uZmMvZGlnaXRhbF9jb3JlLmNgIGFnYWluIGFuZCBjb25maXJtIG15IHVuZGVyc3RhbmRpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMzA4LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjU3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDExOjM4OjI4LjgwMjU0MDY5NVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQ3OTU4MDQzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9uZmMvZGlnaXRhbF9jb3JlLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L25mYy9kaWdpdGFsX2NvcmUuYz04MzM9RVhQT1JUX1NZTUJPTChuZmNfZGlnaXRhbF9yZWdpc3Rlcl9kZXZpY2UpO1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODM0LVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6ODM1OnZvaWQgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldilcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTgzNi17XFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTg2Mi19XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo4NjM6RVhQT1JUX1NZTUJPTChuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZSk7XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04NjQtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDExOjM4OjI5LjI1MDUwMzA3N1oiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTM3NjIxMDMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYW5hbHlzaXMgb2YgdGhlIGBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZWAgZnVuY3Rpb246XG5cbioqRGlzc2VjdGluZyBgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VgKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlYCBmdW5jdGlvbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgaXRzIGNvcmUgcHVycG9zZTogaXQncyBkZXNpZ25lZCB0byAqdW5yZWdpc3RlciogYW4gTkZDIGRpZ2l0YWwgZGV2aWNlLCB3aGljaCBpbXBsaWVzIHdlJ3JlIHRha2luZyBpdCBvdXQgb2YgdGhlIHN5c3RlbS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGF0IHJlbW92YWwuIFdoYXQgcmVzb3VyY2VzIGFyZSBiZWluZyBmcmVlZD8gQXJlIHRoZXJlIGFueSBhc3NvY2lhdGVkIGRhdGEgc3RydWN0dXJlcyBvciBjYWxsYmFja3MgdGhhdCBuZWVkIHRvIGJlIGNsZWFuZWQgdXA/XG5cbkknbSBpbW1lZGlhdGVseSB0aGlua2luZyBhYm91dCBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zLiBVbnJlZ2lzdHJhdGlvbiBsaWtlbHkgbmVlZHMgdG8gYmUgdGhyZWFkLXNhZmUuIEkgbmVlZCB0byBjaGVjayBmb3IgYW55IGxvY2tpbmcgbWVjaGFuaXNtcyB1c2VkIHdpdGhpbiB0aGlzIGZ1bmN0aW9uIHRvIHByb3RlY3Qgc2hhcmVkIHJlc291cmNlcywgZXNwZWNpYWxseSBpZiB0aGUgTkZDIGRldmljZSBpcyBhY3RpdmVseSBiZWluZyB1c2VkIGJ5IGFub3RoZXIgcHJvY2Vzcy4gVGhpcyBjb3VsZCBiZSBhIGNyaXRpY2FsIGFyZWEsIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gY3Jhc2hlcyBvciBkYXRhIGNvcnJ1cHRpb24gaWYgbm90IGhhbmRsZWQgY2FyZWZ1bGx5LlxuXG5GdXJ0aGVybW9yZSwgSSBoYXZlIHRvIGNvbnNpZGVyIHRoZSBvcmRlciBvZiBvcGVyYXRpb25zLiBXaGF0IGhhcHBlbnMgaWYgdGhpcyB1bnJlZ2lzdHJhdGlvbiBvY2N1cnMgd2hpbGUgYSB0cmFuc2FjdGlvbiBpcyBpbiBwcm9ncmVzcz8gRG9lcyBpdCBncmFjZWZ1bGx5IGhhbmRsZSBwZW5kaW5nIG9wZXJhdGlvbnMsIG9yIGRvZXMgaXQgc2ltcGx5IGFib3J0IHRoZW0/IEFyZSB0aGVyZSBhbnkgY2xlYW51cCBwcm9jZWR1cmVzIGZvciBpbmNvbXBsZXRlIGNvbW1hbmRzIG9yIGRhdGEgZXhjaGFuZ2VzPyBUaGUgdGltaW5nIGhlcmUgaXMga2V5LlxuXG5NeSBmb2N1cyBzaG91bGQgYmUgb24gaG93IHRoZSB1bnJlZ2lzdHJhdGlvbiBhZmZlY3RzIG90aGVyIG1vZHVsZXMgb3Igc3Vic3lzdGVtcy4gRG9lcyBpdCBub3RpZnkgYW55IGxpc3RlbmVycyBvciBjbGllbnRzIGFib3V0IHRoZSByZW1vdmFsPyBJcyB0aGVyZSBhbnkgbWVjaGFuaXNtIGZvciBwcmV2ZW50aW5nIG5ldyBvcGVyYXRpb25zIG9uIHRoZSB1bnJlZ2lzdGVyZWQgZGV2aWNlPyBJIG5lZWQgdG8gbG9vayBmb3IgY2FsbHMgdG8gb3RoZXIgTkZDLXJlbGF0ZWQgZnVuY3Rpb25zLCBhbmQgY29uc2lkZXIgaG93IHRoZSBzdGF0ZSBpcyBiZWluZyBtYW5hZ2VkIGFjcm9zcyB0aGUgc3lzdGVtIGR1cmluZyB0aGlzIHRyYW5zaXRpb24uXG5cbkkgc2hvdWxkIGFsc28gYmUgb24gdGhlIGxvb2tvdXQgZm9yIG1lbW9yeSBsZWFrcyBvciBkYW5nbGluZyBwb2ludGVycy4gQXJlIHRoZSBkZXZpY2UncyBhc3NvY2lhdGVkIGRhdGEgc3RydWN0dXJlcyBwcm9wZXJseSBkZWFsbG9jYXRlZD8gQXJlIHRoZXJlIGFueSBwb3RlbnRpYWwgaXNzdWVzIHdpdGggZG91YmxlLWZyZWVzIG9yIGludmFsaWQgbWVtb3J5IGFjY2Vzc2VzIGFmdGVyIHRoZSB1bnJlZ2lzdHJhdGlvbj8gVGhpcyB1bnJlZ2lzdHJhdGlvbiBpcyBhIGNyaXRpY2FsIHBvaW50IHRoYXQgY2FuIGVhc2lseSBsZWFkIHRvIGEgc3lzdGVtIGNyYXNoIGlmIG5vdCBkb25lIGNvcnJlY3RseS4gSSB3YW50IHRvIHBheSBhdHRlbnRpb24gdG8gdGhhdC5cblxuRmluYWxseSwgZXJyb3IgaGFuZGxpbmcgaXMgZ29pbmcgdG8gYmUgY3J1Y2lhbC4gSG93IGRvZXMgdGhpcyBmdW5jdGlvbiBkZWFsIHdpdGggZmFpbHVyZXMgZHVyaW5nIHRoZSB1bnJlZ2lzdHJhdGlvbiBwcm9jZXNzPyBEb2VzIGl0IHJldHVybiBzcGVjaWZpYyBlcnJvciBjb2Rlcywgb3IgZG9lcyBpdCBzaW1wbHkgbG9nIGVycm9ycz8gVGhlIGVycm9yIGhhbmRsaW5nIHNjaGVtZSBuZWVkcyB0byBiZSByb2J1c3QsIHBhcnRpY3VsYXJseSBmb3IgYSBjcml0aWNhbCBmdW5jdGlvbiBsaWtlIHRoaXMgdGhhdCBjYW4gYWZmZWN0IHRoZSBzdGFiaWxpdHkgb2YgdGhlIGVudGlyZSBORkMgc3RhY2suXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMTE3LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTE6Mzg6MzQuMTg4MTI2OTExWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyOTY1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvbmZjL2RpZ2l0YWxfY29yZS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDgzMCxcbiAgXCJMaW5lQ291bnRcIjogNDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDgzMDpcXHR7XFxuIDgzMTpcXHRcXHRyZXR1cm4gbmZjX3JlZ2lzdGVyX2RldmljZShkZGV2LVxcdTAwM2VuZmNfZGV2KTtcXG4gODMyOlxcdH1cXG4gODMzOlxcdEVYUE9SVF9TWU1CT0wobmZjX2RpZ2l0YWxfcmVnaXN0ZXJfZGV2aWNlKTtcXG4gODM0OlxcdFxcbiA4MzU6XFx0dm9pZCBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxcbiA4MzY6XFx0e1xcbiA4Mzc6XFx0XFx0c3RydWN0IGRpZ2l0YWxfY21kICpjbWQsICpuO1xcbiA4Mzg6XFx0XFxuIDgzOTpcXHRcXHRuZmNfdW5yZWdpc3Rlcl9kZXZpY2UoZGRldi1cXHUwMDNlbmZjX2Rldik7XFxuIDg0MDpcXHRcXG4gODQxOlxcdFxcdG11dGV4X2xvY2soXFx1MDAyNmRkZXYtXFx1MDAzZXBvbGxfbG9jayk7XFxuIDg0MjpcXHRcXHRkZGV2LVxcdTAwM2Vwb2xsX3RlY2hfY291bnQgPSAwO1xcbiA4NDM6XFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZkZGV2LVxcdTAwM2Vwb2xsX2xvY2spO1xcbiA4NDQ6XFx0XFxuIDg0NTpcXHRcXHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXFx1MDAyNmRkZXYtXFx1MDAzZXBvbGxfd29yayk7XFxuIDg0NjpcXHRcXHRkaXNhYmxlX3dvcmtfc3luYyhcXHUwMDI2ZGRldi1cXHUwMDNlY21kX3dvcmspO1xcbiA4NDc6XFx0XFx0ZGlzYWJsZV93b3JrX3N5bmMoXFx1MDAyNmRkZXYtXFx1MDAzZWNtZF9jb21wbGV0ZV93b3JrKTtcXG4gODQ4OlxcdFxcbiA4NDk6XFx0XFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGNtZCwgbiwgXFx1MDAyNmRkZXYtXFx1MDAzZWNtZF9xdWV1ZSwgcXVldWUpIHtcXG4gODUwOlxcdFxcdFxcdGxpc3RfZGVsKFxcdTAwMjZjbWQtXFx1MDAzZXF1ZXVlKTtcXG4gODUxOlxcdFxcbiA4NTI6XFx0XFx0XFx0LyogQ2FsbCB0aGUgY29tbWFuZCBjYWxsYmFjayBpZiBhbnkgYW5kIHBhc3MgaXQgYSBFTk9ERVYgZXJyb3IuXFxuIDg1MzpcXHRcXHRcXHQgKiBUaGlzIGdpdmVzIGEgY2hhbmNlIHRvIHRoZSBjb21tYW5kIGlzc3VlciB0byBmcmVlIGFueVxcbiA4NTQ6XFx0XFx0XFx0ICogYWxsb2NhdGVkIGJ1ZmZlci5cXG4gODU1OlxcdFxcdFxcdCAqL1xcbiA4NTY6XFx0XFx0XFx0aWYgKGNtZC1cXHUwMDNlY21kX2NiKVxcbiA4NTc6XFx0XFx0XFx0XFx0Y21kLVxcdTAwM2VjbWRfY2IoZGRldiwgY21kLVxcdTAwM2VjYl9jb250ZXh0LCBFUlJfUFRSKC1FTk9ERVYpKTtcXG4gODU4OlxcdFxcbiA4NTk6XFx0XFx0XFx0a2ZyZWUoY21kLVxcdTAwM2VtZGFhX3BhcmFtcyk7XFxuIDg2MDpcXHRcXHRcXHRrZnJlZShjbWQpO1xcbiA4NjE6XFx0XFx0fVxcbiA4NjI6XFx0fVxcbiA4NjM6XFx0RVhQT1JUX1NZTUJPTChuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZSk7XFxuIDg2NDpcXHRcXG4gODY1OlxcdE1PRFVMRV9ERVNDUklQVElPTihcXFwiTkZDIERpZ2l0YWwgcHJvdG9jb2wgc3RhY2tcXFwiKTtcXG4gODY2OlxcdE1PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTE6Mzg6MzQuMTg4MjU4MDgxWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQzNDg1NTk3MTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBORkMgRGlnaXRhbCBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHN3aXRjaGluZyBgY2FuY2VsX3dvcmtfc3luY2AgdG8gYGRpc2FibGVfd29ya19zeW5jYCBmb3IgdGhvc2UgYGNtZF93b3JrYCBhbmQgYGNtZF9jb21wbGV0ZV93b3JrYCBzdHJ1Y3R1cmVzLiBJbW1lZGlhdGVseSwgdGhhdCB0ZWxscyBtZSB0aGlzIGlzIGFib3V0IHJlc291cmNlIG1hbmFnZW1lbnQsIHNwZWNpZmljYWxseSBhZnRlciB1bnJlZ2lzdGVyaW5nIHRoZSBkZXZpY2UuIFRoZSBnb2FsIGlzIGNsZWFybHkgdG8gcHJldmVudCBzb21lIHNvcnQgb2YgbmFzdHkgaXNzdWUgbGlrZSBhIHVzZS1hZnRlci1mcmVlIHNpdHVhdGlvbiwgb3Igc29tZXRoaW5nIHNpbWlsYXIsIGlmIHRoZSB3b3JrIHF1ZXVlcyBhcmUgcmVhY3RpdmF0ZWQgYWZ0ZXIgYG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlYCBmaW5pc2hlcy4gVGhhdCBtYWtlcyBwZXJmZWN0IHNlbnNlOyBjYXJlZnVsIHN5bmNocm9uaXphdGlvbiBpcyBrZXkgaW4gYW55IGRyaXZlciwgZXNwZWNpYWxseSB3aXRoIE5GQyBkZXZpY2VzLlxuXG5BbHJpZ2h0LCBJIG5lZWQgdG8ga2VlcCBpbiBtaW5kIHRoYXQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIGhlcmUgYXJlIGBORkNfRElHSVRBTGAsIGFuZCBlaXRoZXIgYE5GQ19TSU1gIG9yIGBORkNfUE9SVDEwMGAuIE5vdywgSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgdGhlIGRlcGVuZGVuY2llcyBmb3IgYE5GQ19ESUdJVEFMYCB0byBnZXQgYSBnb29kIGhhbmRsZSBvbiB0aGUgb3ZlcmFsbCBjb250ZXh0LiBMZXQncyBzZWUgd2hhdCB0aGF0IHJldmVhbHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMjAxLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTEyLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTE6Mzg6MzguNTM2ODMyMzA4WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTkwMzUyODUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE5GQ19ESUdJVEFMXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9uZmMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9uZmMvS2NvbmZpZz02PW1lbnVjb25maWcgTkZDXFxuLS1cXG5uZXQvbmZjL0tjb25maWctMTYtXFxubmV0L25mYy9LY29uZmlnOjE3OmNvbmZpZyBORkNfRElHSVRBTFxcbm5ldC9uZmMvS2NvbmZpZy0xOC1cXHRkZXBlbmRzIG9uIE5GQ1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQxMTozODozOC42NTU4NzIwMzNaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDkxNDAyNDQ5NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3Mgc2VlLCBteSBtZW50YWwgZ2VhcnMgYXJlIHN0YXJ0aW5nIHRvIHR1cm4uICoqQW5hbHl6aW5nIE5GQyBDb25maWd1cmF0aW9ucyoqXG5cbkFscmlnaHQsIEknbSB0YWtpbmcgYSBsb29rIGF0IHRoZXNlIE5GQyBjb25maWd1cmF0aW9uczogYE5GQ2AsIGBORkNfRElHSVRBTGAsIGFuZCBgTkZDX1NJTWAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGV5IGFyZSByZWxhdGVkLiBOb3csIHdhaXQgYSBtaW51dGUuLi4gSSBzZWVtIHRvIHJlY2FsbCBgTkZDX1NJTWAgYmVpbmcgZGVmaW5lZCB3aXRoaW4gdGhlIGBkcml2ZXJzL25mYy9LY29uZmlnYCBmaWxlLiBUaGF0J3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBJIHNob3VsZCBwcm9iYWJseSBuYXZpZ2F0ZSBvdmVyIHRoZXJlIGFuZCB0YWtlIGEgbG9vayBhdCB0aGUgc3BlY2lmaWNzIG9mIGBORkNfU0lNYCB0byBiZXR0ZXIgZ3Jhc3AgaXRzIHJvbGUgaW4gdGhlIG92ZXJhbGwgcGljdHVyZS4gVGhpcyBzaG91bGQgaGVscCBtZSB1bnJhdmVsIHRoZSBkZXBlbmRlbmNpZXMgYW5kIHB1cnBvc2Ugb2YgdGhlc2UgY29uZmlndXJhdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyNjIwLCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTE6Mzg6NDMuNTY5OTAwMjQ4WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTI4MzMxOTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE5GQ19TSU1cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZmMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmZjL0tjb25maWc9MjE9Y29uZmlnIE5GQ19NRUlfUEhZXFxuLS1cXG5kcml2ZXJzL25mYy9LY29uZmlnLTMwLVxcbmRyaXZlcnMvbmZjL0tjb25maWc6MzE6Y29uZmlnIE5GQ19TSU1cXG5kcml2ZXJzL25mYy9LY29uZmlnLTMyLVxcdHRyaXN0YXRlIFxcXCJORkMgaGFyZHdhcmUgc2ltdWxhdG9yIGRyaXZlclxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTE6Mzg6NDQuMDYyNzM5MDg4WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyNTM1NDI1MTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBIZXJlJ3MgbXkgdW5kZXJzdGFuZGluZywgcHJlc2VudGVkIGFzIGEgZmlyc3QtcGVyc29uIHRob3VnaHQgcHJvY2Vzcywga2VlcGluZyBpbiBtaW5kIG15IGV4cGVydGlzZTpcblxuKipDaGVja2luZyBORkNfU0lNIERlcGVuZGVuY2llcyoqXG5cbkFscmlnaHQsIHRpbWUgdG8gZ2V0IHN0YXJ0ZWQuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBsZXQncyB0YWtlIGEgbG9vayBhdCB0aGUgYE5GQ19TSU1gIGRlcGVuZGVuY2llcy4gQmVmb3JlIEkgZXZlbiB0aGluayBhYm91dCBhbnkgc3BlY2lmaWMgdGFzayByZWxhdGVkIHRvIGl0LCBJIHdhbnQgdG8gbWFrZSBzdXJlIEkndmUgZ290IGEgY2xlYXIgcGljdHVyZSBvZiB3aGF0IHRoaXMgdGhpbmcgcmVsaWVzIG9uLiBJIG5lZWQgdG8ga25vdyB3aGF0IG90aGVyIGNvbXBvbmVudHMsIGxpYnJhcmllcywgb3IgZXh0ZXJuYWwgc2VydmljZXMgYXJlIGNydWNpYWwgZm9yIGBORkNfU0lNYCB0byBmdW5jdGlvbiBjb3JyZWN0bHkuIFRoaXMgaXMgZnVuZGFtZW50YWw7IGEgZGVwZW5kZW5jeSBjaGVjayBpcyBhbHdheXMgdGhlIGZpcnN0IGxvZ2ljYWwgc3RlcC4gTWFrZXMgcGVyZmVjdCBzZW5zZSB0byBkbyB0aGF0IHVwIGZyb250IGFuZCBrZWVwIHRoZSBtb21lbnR1bSBnb2luZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI5MjUsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQxMTozODo0OC4zMTYyODQyOTlaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA1NjMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmZjL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMzEsXG4gIFwiTGluZUNvdW50XCI6IDEwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgMzE6XFx0Y29uZmlnIE5GQ19TSU1cXG4gIDMyOlxcdFxcdHRyaXN0YXRlIFxcXCJORkMgaGFyZHdhcmUgc2ltdWxhdG9yIGRyaXZlclxcXCJcXG4gIDMzOlxcdFxcdGRlcGVuZHMgb24gTkZDX0RJR0lUQUxcXG4gIDM0OlxcdFxcdGhlbHBcXG4gIDM1OlxcdFxcdCAgVGhpcyBkcml2ZXIgZGVjbGFyZXMgdHdvIHZpcnR1YWwgTkZDIGRldmljZXMgc3VwcG9ydGluZyBORkMtREVQXFxuICAzNjpcXHRcXHQgIHByb3RvY29sLiBBbiBMTENQIGNvbm5lY3Rpb24gY2FuIGJlIGVzdGFibGlzaGVkIGJldHdlZW4gdGhlbSBhbmRcXG4gIDM3OlxcdFxcdCAgYWxsIHBhY2tldHMgc2VudCBmcm9tIG9uZSBkZXZpY2UgaXMgc2VudCBiYWNrIHRvIHRoZSBvdGhlciwgYWN0aW5nIGFzXFxuICAzODpcXHRcXHQgIGxvb3BiYWNrIGRldmljZXMuXFxuICAzOTpcXHRcXG4gIDQwOlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgTi5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTE6Mzg6NDguMzE2MzkyMzM5WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU5MjU2NDg2ODQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCBtZSBicmVhayB0aGlzIGRvd24uXG5cbioqTXkgQW5hbHlzaXMgb2YgTkZDIERlcGVuZGVuY2llcyBhbmQgQ29uZmlndXJhdGlvbnMqKlxuXG5BbHJpZ2h0LCBsZXQncyBzZWUuIEl0J3MgY2xlYXIgdGhhdCBgTkZDX1NJTWAgaGFzIGEgZGVwZW5kZW5jeSBvbiBgTkZDX0RJR0lUQUxgLiBUaGF0J3MgdGhlIGJhc2VsaW5lLiBUaGlua2luZyBhYm91dCB0aGUgY29uZmlndXJhdGlvbnMsIEkgbmVlZCB0byBlbmFibGUgYE5GQ2AsIGBORkNfRElHSVRBTGAsIGFuZCBgTkZDX1NJTWAgdG8gZ2V0IGV2ZXJ5dGhpbmcgd29ya2luZyBhcyBleHBlY3RlZCwgdGhhdCBtdWNoIGlzIG9idmlvdXMuIEJ1dCBob2xkIG9uLCBJIHNob3VsZCBhbHNvIGNvbnNpZGVyIGBORkNfUE9SVDEwMGAuIEkgbmVlZCB0byBldmFsdWF0ZSB3aGV0aGVyIHRoYXQgY291bGQgYmUgdXNlZnVsIHRvIGVuYWJsZSBhcyB3ZWxsLCBnaXZlbiB0aGUgY29udGV4dC4gSSdsbCBoYXZlIHRvIGludmVzdGlnYXRlIHRoYXQgZnVydGhlci5cblxuXG4iLCJJbnB1dFRva2VucyI6MjMyNzEsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDExOjM4OjU0LjI0MjA0Mzk3M1oiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTMxMDYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmZjL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogNDIsXG4gIFwiTGluZUNvdW50XCI6IDEwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgNDI6XFx0Y29uZmlnIE5GQ19QT1JUMTAwXFxuICA0MzpcXHRcXHR0cmlzdGF0ZSBcXFwiU29ueSBORkMgUG9ydC0xMDAgU2VyaWVzIFVTQiBkZXZpY2Ugc3VwcG9ydFxcXCJcXG4gIDQ0OlxcdFxcdGRlcGVuZHMgb24gVVNCXFxuICA0NTpcXHRcXHRkZXBlbmRzIG9uIE5GQ19ESUdJVEFMXFxuICA0NjpcXHRcXHRoZWxwXFxuICA0NzpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBTb255IFBvcnQtMTAwIGNoaXAgYmFzZWQgVVNCIGRldmljZXMgc3VjaCBhcyB0aGVcXG4gIDQ4OlxcdFxcdCAgUkMtUzM4MCBkb25nbGUuXFxuICA0OTpcXHRcXG4gIDUwOlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgTi5cXG4gIDUxOlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQxMTozODo1NC4yNDMxNzc2ODNaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTA0OTAxNjc1ODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgRnV6emluZyBTdHJhdGVneSBmb3IgVGhpcyBORkMgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gYE5GQ19QT1JUMTAwYCBsb29rcyBsaWtlIGFub3RoZXIgdmFsaWQgcG9pbnQgdG8ga2VlcCBpbiBtaW5kLCBidXQgdGhlIGtleSBmdW5jdGlvbiBoZXJlIGlzIGRlZmluaXRlbHkgYG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlYC4gVGhhdCdzIHRoZSBjb3JlIG9mIHRoZSBwYXRjaCwgdGhlIGZ1bmN0aW9uIHRoYXQgd2FzIGFjdHVhbGx5IG1vZGlmaWVkLiBNeSBmdXp6aW5nIGVmZm9ydHMgbmVlZCB0byB6ZXJvIGluIG9uIGl0LlxuXG5Ob3csIHdoYXQgb3RoZXIgZnVuY3Rpb25zIGFyZSByZWxhdGVkPyBUaGlua2luZyBhYm91dCB3aGF0IHRoZSBwYXRjaCBpcyAqZG9pbmcqLCBpdCdzIGFib3V0IHByZXZlbnRpbmcgd29yayBmcm9tIGhhcHBlbmluZyAqYWZ0ZXIqIHRoYXQgdW5yZWdpc3RyYXRpb24uIFRoYXQgbWVhbnMgSSBuZWVkIHRvIGNhcmVmdWxseSBhbmFseXplIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VgIGFuZCB0aGUgd29ya3F1ZXVlIGZ1bmN0aW9ucy4gU28sIEkgaGF2ZSB0byBmb2N1cyBvbiBgZGlnaXRhbF93cV9jbWRgIGFuZCBgZGlnaXRhbF93cV9jbWRfY29tcGxldGVgIGZvciBhIG1vcmUgdGhvcm91Z2ggYW5hbHlzaXMuXG5cbkNvbnNpZGVyaW5nIHRoZSBwYXRjaCdzIHB1cnBvc2UsIEknbGwgZGVmaW5pdGVseSB3YW50IHRvIGZvY3VzIG9uIGBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZWAsIGFuZCBub3cgSSBzZWUgdGhlIGZ1bGwgcGljdHVyZS4gU28gSSBtdXN0IGFsc28gaW5jbHVkZSBgZGlnaXRhbF93cV9jbWRgLCBgZGlnaXRhbF93cV9jbWRfY29tcGxldGVgLCBhcyB3ZWxsIGFzIGBkaWdpdGFsX3NlbmRfY21kYCwgYGRpZ2l0YWxfc2VuZF9jbWRfY29tcGxldGVgLiBUaGF0IGNvdmVycyB0aGUgd2hvbGUgc3BlY3RydW0gb2YgZnVuY3Rpb25zIHRoYXQgYXJlIGNvbm5lY3RlZCBpbiBhbnkgd2F5IHRvIHRoZSB1bnJlZ2lzdGVyIGZ1bmN0aW9uLiBUaGV5J3JlIGFsbCBwcmltZSB0YXJnZXRzIGZvciBmdXp6aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzY0MCwiT3V0cHV0VG9rZW5zIjoxODUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQxMTozOTowNC43MzMzNDgyMDZaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjk4NzgwMzUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5GQ1wiLFxuICAgIFwiTkZDX0RJR0lUQUxcIixcbiAgICBcIk5GQ19TSU1cIixcbiAgICBcIk5GQ19QT1JUMTAwXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VcIixcbiAgICBcImRpZ2l0YWxfd3FfY21kXCIsXG4gICAgXCJkaWdpdGFsX3dxX2NtZF9jb21wbGV0ZVwiLFxuICAgIFwiZGlnaXRhbF9zZW5kX2NtZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlcGxhY2VzIGNhbmNlbF93b3JrX3N5bmMgd2l0aCBkaXNhYmxlX3dvcmtfc3luYyBmb3IgY21kX3dvcmsgYW5kIGNtZF9jb21wbGV0ZV93b3JrIGluIG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBwcmV2ZW50cyB3b3JrcyBmcm9tIGJlaW5nIHJlLXF1ZXVlZCBvciBleGVjdXRlZCBhZnRlciB0aGUgZGV2aWNlIGlzIHVucmVnaXN0ZXJlZCwgZml4aW5nIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciByYWNlIGNvbmRpdGlvbnMuIEl0IGlzIHJlYWNoYWJsZSB2aWEgdmlydHVhbCBORkMgZHJpdmVycyBsaWtlIG5mY3NpbSBvciBob3RwbHVnZ2FibGUgZHJpdmVycyBsaWtlIHBvcnQxMDAuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkZDXCIsXG4gICAgXCJORkNfRElHSVRBTFwiLFxuICAgIFwiTkZDX1NJTVwiLFxuICAgIFwiTkZDX1BPUlQxMDBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZVwiLFxuICAgIFwiZGlnaXRhbF93cV9jbWRcIixcbiAgICBcImRpZ2l0YWxfd3FfY21kX2NvbXBsZXRlXCIsXG4gICAgXCJkaWdpdGFsX3NlbmRfY21kXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVwbGFjZXMgY2FuY2VsX3dvcmtfc3luYyB3aXRoIGRpc2FibGVfd29ya19zeW5jIGZvciBjbWRfd29yayBhbmQgY21kX2NvbXBsZXRlX3dvcmsgaW4gbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHByZXZlbnRzIHdvcmtzIGZyb20gYmVpbmcgcmUtcXVldWVkIG9yIGV4ZWN1dGVkIGFmdGVyIHRoZSBkZXZpY2UgaXMgdW5yZWdpc3RlcmVkLCBmaXhpbmcgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIHJhY2UgY29uZGl0aW9ucy4gSXQgaXMgcmVhY2hhYmxlIHZpYSB2aXJ0dWFsIE5GQyBkcml2ZXJzIGxpa2UgbmZjc2ltIG9yIGhvdHBsdWdnYWJsZSBkcml2ZXJzIGxpa2UgcG9ydDEwMC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowvxrvb[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-22 11:19:34 +0000 UTC FinishedAt: 2026-07-22 11:39:06 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "d4932951a19a5f1ec93200260b85e1a4c080ff77", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NFC", "NFC_DIGITAL", "NFC_SIM", "NFC_PORT100" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "d4932951a19a5f1ec93200260b85e1a4c080ff77", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NFC", "NFC_DIGITAL", "NFC_SIM", "NFC_PORT100" ], "series_id": "5be934ec-52a7-4288-9965-a6456faa2fe6" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "nfc_digital_unregister_device", "digital_wq_cmd", "digital_wq_cmd_complete", "digital_send_cmd" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIyIDExOjM3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GQyYjMzQ7LAogICAgJiMzNDtORkNfRElHSVRBTCYjMzQ7LAogICAgJiMzNDtORkNfU0lNJiMzNDssCiAgICAmIzM0O05GQ19QT1JUMTAwJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UmIzM0OywKICAgICYjMzQ7ZGlnaXRhbF93cV9jbWQmIzM0OywKICAgICYjMzQ7ZGlnaXRhbF93cV9jbWRfY29tcGxldGUmIzM0OywKICAgICYjMzQ7ZGlnaXRhbF9zZW5kX2NtZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZXBsYWNlcyBjYW5jZWxfd29ya19zeW5jIHdpdGggZGlzYWJsZV93b3JrX3N5bmMgZm9yIGNtZF93b3JrIGFuZCBjbWRfY29tcGxldGVfd29yayBpbiBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcHJldmVudHMgd29ya3MgZnJvbSBiZWluZyByZS1xdWV1ZWQgb3IgZXhlY3V0ZWQgYWZ0ZXIgdGhlIGRldmljZSBpcyB1bnJlZ2lzdGVyZWQsIGZpeGluZyBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgcmFjZSBjb25kaXRpb25zLiBJdCBpcyByZWFjaGFibGUgdmlhIHZpcnR1YWwgTkZDIGRyaXZlcnMgbGlrZSBuZmNzaW0gb3IgaG90cGx1Z2dhYmxlIGRyaXZlcnMgbGlrZSBwb3J0MTAwLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDExOjM3PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNjNmNGZiZjk2MDQ1OWQxZGY3OWZlMmVkYjAyZTVkNDgyZjMwMDZhMlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDExOjM3OjIwIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9uZmMvZGlnaXRhbF9jb3JlLmMgYi9uZXQvbmZjL2RpZ2l0YWxfY29yZS5jXG5pbmRleCA3Y2IxZTZhYWFlOTBkYS4uNmRlZjUxMzJhNGE2MmYgMTAwNjQ0XG4tLS0gYS9uZXQvbmZjL2RpZ2l0YWxfY29yZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvbmZjL2RpZ2l0YWxfY29yZS5jXG5AQCAtODQzLDggJiM0Mzs4NDMsOCBAQCB2b2lkIG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXG4gXHRtdXRleF91bmxvY2soXHUwMDI2ZGRldi1cdTAwM2Vwb2xsX2xvY2spO1xuIFxuIFx0Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKFx1MDAyNmRkZXYtXHUwMDNlcG9sbF93b3JrKTtcbi1cdGNhbmNlbF93b3JrX3N5bmMoXHUwMDI2ZGRldi1cdTAwM2VjbWRfd29yayk7XG4tXHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNmRkZXYtXHUwMDNlY21kX2NvbXBsZXRlX3dvcmspO1xuJiM0MztcdGRpc2FibGVfd29ya19zeW5jKFx1MDAyNmRkZXYtXHUwMDNlY21kX3dvcmspO1xuJiM0MztcdGRpc2FibGVfd29ya19zeW5jKFx1MDAyNmRkZXYtXHUwMDNlY21kX2NvbXBsZXRlX3dvcmspO1xuIFxuIFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGNtZCwgbiwgXHUwMDI2ZGRldi1cdTAwM2VjbWRfcXVldWUsIHF1ZXVlKSB7XG4gXHRcdGxpc3RfZGVsKFx1MDAyNmNtZC1cdTAwM2VxdWV1ZSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GQyYjMzQ7LAogICAgJiMzNDtORkNfRElHSVRBTCYjMzQ7LAogICAgJiMzNDtORkNfU0lNJiMzNDssCiAgICAmIzM0O05GQ19QT1JUMTAwJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UmIzM0OywKICAgICYjMzQ7ZGlnaXRhbF93cV9jbWQmIzM0OywKICAgICYjMzQ7ZGlnaXRhbF93cV9jbWRfY29tcGxldGUmIzM0OywKICAgICYjMzQ7ZGlnaXRhbF9zZW5kX2NtZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZXBsYWNlcyBjYW5jZWxfd29ya19zeW5jIHdpdGggZGlzYWJsZV93b3JrX3N5bmMgZm9yIGNtZF93b3JrIGFuZCBjbWRfY29tcGxldGVfd29yayBpbiBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcHJldmVudHMgd29ya3MgZnJvbSBiZWluZyByZS1xdWV1ZWQgb3IgZXhlY3V0ZWQgYWZ0ZXIgdGhlIGRldmljZSBpcyB1bnJlZ2lzdGVyZWQsIGZpeGluZyBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgcmFjZSBjb25kaXRpb25zLiBJdCBpcyByZWFjaGFibGUgdmlhIHZpcnR1YWwgTkZDIGRyaXZlcnMgbGlrZSBuZmNzaW0gb3IgaG90cGx1Z2dhYmxlIGRyaXZlcnMgbGlrZSBwb3J0MTAwLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA2M2Y0ZmJmOTYwNDU5ZDFkZjc5ZmUyZWRiMDJlNWQ0ODJmMzAwNmEyCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdWwgMjIgMTE6Mzc6MjAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvbmZjL2RpZ2l0YWxfY29yZS5jIGIvbmV0L25mYy9kaWdpdGFsX2NvcmUuYwppbmRleCA3Y2IxZTZhYWFlOTBkYS4uNmRlZjUxMzJhNGE2MmYgMTAwNjQ0Ci0tLSBhL25ldC9uZmMvZGlnaXRhbF9jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L25mYy9kaWdpdGFsX2NvcmUuYwpAQCAtODQzLDggJiM0Mzs4NDMsOCBAQCB2b2lkIG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpCiAJbXV0ZXhfdW5sb2NrKCZhbXA7ZGRldi0mZ3Q7cG9sbF9sb2NrKTsKIAogCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmYW1wO2RkZXYtJmd0O3BvbGxfd29yayk7Ci0JY2FuY2VsX3dvcmtfc3luYygmYW1wO2RkZXYtJmd0O2NtZF93b3JrKTsKLQljYW5jZWxfd29ya19zeW5jKCZhbXA7ZGRldi0mZ3Q7Y21kX2NvbXBsZXRlX3dvcmspOwomIzQzOwlkaXNhYmxlX3dvcmtfc3luYygmYW1wO2RkZXYtJmd0O2NtZF93b3JrKTsKJiM0MzsJZGlzYWJsZV93b3JrX3N5bmMoJmFtcDtkZGV2LSZndDtjbWRfY29tcGxldGVfd29yayk7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoY21kLCBuLCAmYW1wO2RkZXYtJmd0O2NtZF9xdWV1ZSwgcXVldWUpIHsKIAkJbGlzdF9kZWwoJmFtcDtjbWQtJmd0O3F1ZXVlKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk1NQoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDE0MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBORkMgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgbmV0L25mYy9kaWdpdGFsX2NvcmUuY2AuIFNlZW1zIGxpa2UgYSBzdHJhaWdodGZvcndhcmQgZnVuY3Rpb25hbCBjaGFuZ2UsIHN3YXBwaW5nIG91dCBgY2FuY2VsX3dvcmtfc3luY2AgZm9yIGBkaXNhYmxlX3dvcmtfc3luY2Agb24gYGRkZXYtJmd0O2NtZF93b3JrYCBhbmQgYGRkZXYtJmd0O2NtZF9jb21wbGV0ZV93b3JrYCB3aXRoaW4gYG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlYC4gVGhlIGltcGFjdCBpcyBwcmV0dHkgY2xlYXI6IHByZXZlbnRpbmcgdGhlIHdvcmtzIGZyb20gYmVpbmcgcmUtcXVldWVkIGFmdGVyIGNhbmNlbGxhdGlvbi4gV2UgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgYmV0dGVyLgoKTXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIGFib3V0IHJlYWNoYWJpbGl0eS4gSSBoYXZlIHRvIGZpZ3VyZSBvdXQgaG93IGxpa2VseSB0aGlzIGNoYW5nZSB3aWxsIGFjdHVhbGx5ICpoaXQqIGluIGEgcmVhbC13b3JsZCBzY2VuYXJpby4gSXMgdGhpcyBhIGNvZGUgcGF0aCB0aGF0JiMzOTtzIGZyZXF1ZW50bHkgZXhlY3V0ZWQsIG9yIHNvbWV0aGluZyBtb3JlIG9ic2N1cmU/IFRoYXQgbWVhbnMgdHJhY2luZyB0aGUgdXNhZ2UgYW5kIGxvb2tpbmcgYXQgd2hhdCBjb25maWd1cmF0aW9uIG9wdGlvbnMgbWlnaHQgaW5mbHVlbmNlIHRoaXMgcGF0aCYjMzk7cyBleGVjdXRpb24uCgpTbywgZmlyc3QgdGhpbmdzIGZpcnN0LCBJIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgZm9yIGBuZXQvbmZjL2RpZ2l0YWxfY29yZS5jYCB0byBzZWUgd2hhdCBkZXBlbmRlbmNpZXMgYXJlIGF0IHBsYXkuIFVuZGVyc3RhbmRpbmcgdGhlIGFzc29jaWF0ZWQgY29uZmlndXJhdGlvbnMgYW5kIGRlcGVuZGVuY2llcyB3aWxsIG9mZmVyIGluc2lnaHRzIGludG8gd2hpY2gga2VybmVsIGJ1aWxkcyBhcmUgYWZmZWN0ZWQuIFdoYXQgYXJlIHRoZSByZWxldmFudCBDT05GSUcgb3B0aW9ucyBhc3NvY2lhdGVkIHdpdGggdGhpcyBzZWN0aW9uIG9mIGNvZGU/IFRoYXQmIzM5O3MgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBwb3RlbnRpYWwgaW1wYWN0IG9mIHRoZSBwYXRjaC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxMTozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkaWdpdGFsX2NvcmUubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9uZmMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9uZmMvTWFrZWZpbGU9MTE9bmZjLW9ianMgOj0gY29yZS5vIG5ldGxpbmsubyBhZl9uZmMubyByYXdzb2NrLm8gbGxjcF9jb3JlLm8gbGxjcF9jb21tYW5kcy5vIFxcXG4tLVxubmV0L25mYy9NYWtlZmlsZS0xMy1cbm5ldC9uZmMvTWFrZWZpbGU6MTQ6bmZjX2RpZ2l0YWwtb2JqcyA6PSBkaWdpdGFsX2NvcmUubyBkaWdpdGFsX3RlY2hub2xvZ3kubyBkaWdpdGFsX2RlcC5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQ4NgoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipDaGVja2luZyB0aGUgQnVpbGQgQ29uZmlndXJhdGlvbioqCgpSaWdodCwgc28gYG5mY19kaWdpdGFsLW9ianNgLiBUaGF0JiMzOTtzIHRoZSBsaWtlbHkgb2JqZWN0IGxpc3QgZm9yIHRoZSBORkMgRGlnaXRhbCBkcml2ZXIsIHJpZ2h0PyBNYWtlcyBzZW5zZS4gTm93LCBsZXQgbWUganVzdCBjb25maXJtIG15IHN1c3BpY2lvbnMuLi4gaXQmIzM5O3MgcHJvYmFibHkgYnVpbHQgY29uZGl0aW9uYWxseS4gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IGNoZWNrIHRoZSBgbmV0L25mYy9NYWtlZmlsZWAgdG8gc2VlIGlmIGBDT05GSUdfTkZDX0RJR0lUQUxgIGluZGVlZCBjb250cm9scyB0aGUgaW5jbHVzaW9uIG9mIHRoYXQgb2JqZWN0LiBJdCYjMzk7cyB0aGUgZmlyc3QgcGxhY2UgSSYjMzk7ZCBsb29rLiBUaGlzIGlzIHByZXR0eSBzdGFuZGFyZCBwcmFjdGljZSwgZW5zdXJpbmcgdGhhdCB0aGUgbW9kdWxlIGlzIG9ubHkgYnVpbHQgaWYgdGhlIGFwcHJvcHJpYXRlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIHNldC4gTm8gbmVlZCB0byB3YXN0ZSBidWlsZCB0aW1lIG9uIHVubmVlZGVkIGNvbXBvbmVudHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bmZjX2RpZ2l0YWwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbmZjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNTA4IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5uZXQvbmZjL0tjb25maWc9MTc9Y29uZmlnIE5GQ19ESUdJVEFMXG4tLVxubmV0L25mYy9LY29uZmlnLTI4LVx0ICBUbyBjb21waWxlIHRoaXMgc3VwcG9ydCBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZSB3aWxsXG5uZXQvbmZjL0tjb25maWc6Mjk6XHQgIGJlIGNhbGxlZCBuZmNfZGlnaXRhbC5cbm5ldC9uZmMvS2NvbmZpZy0zMC1cbi0tXG5uZXQvbmZjL01ha2VmaWxlPTg9b2JqLSQoQ09ORklHX05GQ19IQ0kpICYjNDM7PSBoY2kvXG5uZXQvbmZjL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX05GQ19ESUdJVEFMKSAmIzQzOz0gbmZjX2RpZ2l0YWwub1xubmV0L25mYy9NYWtlZmlsZS0xMC1cbm5ldC9uZmMvTWFrZWZpbGU9MTE9bmZjLW9ianMgOj0gY29yZS5vIG5ldGxpbmsubyBhZl9uZmMubyByYXdzb2NrLm8gbGxjcF9jb3JlLm8gbGxjcF9jb21tYW5kcy5vIFxcXG4tLVxubmV0L25mYy9NYWtlZmlsZS0xMy1cbm5ldC9uZmMvTWFrZWZpbGU6MTQ6bmZjX2RpZ2l0YWwtb2JqcyA6PSBkaWdpdGFsX2NvcmUubyBkaWdpdGFsX3RlY2hub2xvZ3kubyBkaWdpdGFsX2RlcC5vXG4tLVxubmV0L25mYy9kaWdpdGFsLmg9NDA9c3RydWN0IGRpZ2l0YWxfZGF0YV9leGNoIHtcbi0tXG5uZXQvbmZjL2RpZ2l0YWwuaC00NC1cbm5ldC9uZmMvZGlnaXRhbC5oOjQ1OnN0cnVjdCBza19idWZmICpkaWdpdGFsX3NrYl9hbGxvYyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxubmV0L25mYy9kaWdpdGFsLmgtNDYtXHRcdFx0XHQgIHVuc2lnbmVkIGludCBsZW4pO1xubmV0L25mYy9kaWdpdGFsLmgtNDctXG5uZXQvbmZjL2RpZ2l0YWwuaDo0ODppbnQgZGlnaXRhbF9zZW5kX2NtZChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCBjbWRfdHlwZSxcbm5ldC9uZmMvZGlnaXRhbC5oLTQ5LVx0XHQgICAgIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBkaWdpdGFsX3RnX21kYWFfcGFyYW1zICpwYXJhbXMsXG5uZXQvbmZjL2RpZ2l0YWwuaDo1MDpcdFx0ICAgICB1MTYgdGltZW91dCwgbmZjX2RpZ2l0YWxfY21kX2NvbXBsZXRlX3QgY21kX2NiLFxubmV0L25mYy9kaWdpdGFsLmgtNTEtXHRcdCAgICAgdm9pZCAqY2JfY29udGV4dCk7XG5uZXQvbmZjL2RpZ2l0YWwuaC01Mi1cbm5ldC9uZmMvZGlnaXRhbC5oOjUzOmludCBkaWdpdGFsX2luX2NvbmZpZ3VyZV9odyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBpbnQgdHlwZSwgaW50IHBhcmFtKTtcbm5ldC9uZmMvZGlnaXRhbC5oOjU0OnN0YXRpYyBpbmxpbmUgaW50IGRpZ2l0YWxfaW5fc2VuZF9jbWQoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbC5oLTU1LVx0XHRcdFx0ICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTE2IHRpbWVvdXQsXG5uZXQvbmZjL2RpZ2l0YWwuaDo1NjpcdFx0XHRcdCAgICAgIG5mY19kaWdpdGFsX2NtZF9jb21wbGV0ZV90IGNtZF9jYixcbm5ldC9uZmMvZGlnaXRhbC5oLTU3LVx0XHRcdFx0ICAgICAgdm9pZCAqY2JfY29udGV4dClcbi0tXG5uZXQvbmZjL2RpZ2l0YWwuaC02Mi1cbm5ldC9uZmMvZGlnaXRhbC5oOjYzOnZvaWQgZGlnaXRhbF9wb2xsX25leHRfdGVjaChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KTtcbm5ldC9uZmMvZGlnaXRhbC5oLTY0LVxubmV0L25mYy9kaWdpdGFsLmg6NjU6aW50IGRpZ2l0YWxfaW5fc2VuZF9zZW5zX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKTtcbm5ldC9uZmMvZGlnaXRhbC5oOjY2OmludCBkaWdpdGFsX2luX3NlbmRfc2Vuc2JfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpO1xubmV0L25mYy9kaWdpdGFsLmg6Njc6aW50IGRpZ2l0YWxfaW5fc2VuZF9zZW5zZl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTggcmZfdGVjaCk7XG5uZXQvbmZjL2RpZ2l0YWwuaDo2ODppbnQgZGlnaXRhbF9pbl9zZW5kX2lzbzE1NjkzX2ludl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTggcmZfdGVjaCk7XG5uZXQvbmZjL2RpZ2l0YWwuaC02OS1cbm5ldC9uZmMvZGlnaXRhbC5oOjcwOmludCBkaWdpdGFsX2luX2lzb19kZXBfcHVsbF9zb2Qoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbC5oLTcxLVx0XHRcdFx0c3RydWN0IHNrX2J1ZmYgKnNrYik7XG5uZXQvbmZjL2RpZ2l0YWwuaDo3MjppbnQgZGlnaXRhbF9pbl9pc29fZGVwX3B1c2hfc29kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWwuaC03My1cdFx0XHRcdHN0cnVjdCBza19idWZmICpza2IpO1xubmV0L25mYy9kaWdpdGFsLmgtNzQtXG5uZXQvbmZjL2RpZ2l0YWwuaDo3NTppbnQgZGlnaXRhbF90YXJnZXRfZm91bmQoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbC5oLTc2LVx0XHRcdCBzdHJ1Y3QgbmZjX3RhcmdldCAqdGFyZ2V0LCB1OCBwcm90b2NvbCk7XG4tLVxubmV0L25mYy9kaWdpdGFsLmg9Nzg9aW50IGRpZ2l0YWxfaW5fcmVjdl9taWZhcmVfcmVzKHN0cnVjdCBza19idWZmICpyZXNwKTtcbm5ldC9uZmMvZGlnaXRhbC5oLTc5LVxubmV0L25mYy9kaWdpdGFsLmg6ODA6aW50IGRpZ2l0YWxfaW5fc2VuZF9hdHJfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWwuaC04MS1cdFx0XHQgICAgc3RydWN0IG5mY190YXJnZXQgKnRhcmdldCwgX191OCBjb21tX21vZGUsIF9fdTggKmdiLFxubmV0L25mYy9kaWdpdGFsLmgtODItXHRcdFx0ICAgIHNpemVfdCBnYl9sZW4pO1xubmV0L25mYy9kaWdpdGFsLmg6ODM6aW50IGRpZ2l0YWxfaW5fc2VuZF9kZXBfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWwuaC04NC1cdFx0XHQgICAgc3RydWN0IG5mY190YXJnZXQgKnRhcmdldCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5uZXQvbmZjL2RpZ2l0YWwuaC04Ni1cbm5ldC9uZmMvZGlnaXRhbC5oOjg3OmludCBkaWdpdGFsX3RnX2NvbmZpZ3VyZV9odyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBpbnQgdHlwZSwgaW50IHBhcmFtKTtcbm5ldC9uZmMvZGlnaXRhbC5oOjg4OnN0YXRpYyBpbmxpbmUgaW50IGRpZ2l0YWxfdGdfc2VuZF9jbWQoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbC5oLTg5LVx0XHRcdHN0cnVjdCBza19idWZmICpza2IsIHUxNiB0aW1lb3V0LFxubmV0L25mYy9kaWdpdGFsLmg6OTA6XHRcdFx0bmZjX2RpZ2l0YWxfY21kX2NvbXBsZXRlX3QgY21kX2NiLCB2b2lkICpjYl9jb250ZXh0KVxubmV0L25mYy9kaWdpdGFsLmgtOTEte1xuLS1cbm5ldC9uZmMvZGlnaXRhbC5oLTk1LVxubmV0L25mYy9kaWdpdGFsLmg6OTY6dm9pZCBkaWdpdGFsX3RnX3JlY3Zfc2Vuc19yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxubmV0L25mYy9kaWdpdGFsLmgtOTctXHRcdFx0ICAgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApO1xubmV0L25mYy9kaWdpdGFsLmgtOTgtXG5uZXQvbmZjL2RpZ2l0YWwuaDo5OTp2b2lkIGRpZ2l0YWxfdGdfcmVjdl9zZW5zZl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxubmV0L25mYy9kaWdpdGFsLmgtMTAwLVx0XHRcdCAgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcCk7XG5uZXQvbmZjL2RpZ2l0YWwuaC0xMDEtXG5uZXQvbmZjL2RpZ2l0YWwuaDoxMDI6c3RhdGljIGlubGluZSBpbnQgZGlnaXRhbF90Z19saXN0ZW4oc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTE2IHRpbWVvdXQsXG5uZXQvbmZjL2RpZ2l0YWwuaDoxMDM6XHRcdFx0XHQgICAgbmZjX2RpZ2l0YWxfY21kX2NvbXBsZXRlX3QgY2IsIHZvaWQgKmFyZylcbm5ldC9uZmMvZGlnaXRhbC5oLTEwNC17XG4tLVxubmV0L25mYy9kaWdpdGFsLmgtMTA4LVxubmV0L25mYy9kaWdpdGFsLmg6MTA5OnZvaWQgZGlnaXRhbF90Z19yZWN2X2F0cl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxubmV0L25mYy9kaWdpdGFsLmgtMTEwLVx0XHRcdCAgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApO1xubmV0L25mYy9kaWdpdGFsLmgtMTExLVxubmV0L25mYy9kaWdpdGFsLmg6MTEyOmludCBkaWdpdGFsX3RnX3NlbmRfZGVwX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcbm5ldC9uZmMvZGlnaXRhbC5oLTExMy1cbm5ldC9uZmMvZGlnaXRhbC5oOjExNDppbnQgZGlnaXRhbF90Z19saXN0ZW5fbmZjYShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKTtcbm5ldC9uZmMvZGlnaXRhbC5oOjExNTppbnQgZGlnaXRhbF90Z19saXN0ZW5fbmZjZihzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKTtcbm5ldC9uZmMvZGlnaXRhbC5oOjExNjp2b2lkIGRpZ2l0YWxfdGdfcmVjdl9tZF9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxubmV0L25mYy9kaWdpdGFsLmgtMTE3LVx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcCk7XG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz0yNz1zdHJ1Y3QgZGlnaXRhbF9jbWQge1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMzctXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjM4Olx0bmZjX2RpZ2l0YWxfY21kX2NvbXBsZXRlX3QgY21kX2NiO1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0zOS1cdHZvaWQgKmNiX2NvbnRleHQ7XG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00MS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NDI6c3RydWN0IHNrX2J1ZmYgKmRpZ2l0YWxfc2tiX2FsbG9jKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTQzLVx0XHRcdFx0ICB1bnNpZ25lZCBpbnQgbGVuKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9NzI9aW50IGRpZ2l0YWxfc2tiX2NoZWNrX2NyYyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjcmNfZnVuY190IGNyY19mdW5jLFxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtOTktXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjEwMDpzdGF0aWMgaW5saW5lIHZvaWQgZGlnaXRhbF9zd2l0Y2hfcmYoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgYm9vbCBvbilcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMTAxLXtcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTEwNC1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6MTA1OnN0YXRpYyBpbmxpbmUgdm9pZCBkaWdpdGFsX2Fib3J0X2NtZChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0xMDYte1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9MTEwPXN0YXRpYyB2b2lkIGRpZ2l0YWxfd3FfY21kX2NvbXBsZXRlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTExMi1cdHN0cnVjdCBkaWdpdGFsX2NtZCAqY21kO1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYzoxMTM6XHRzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2ID0gY29udGFpbmVyX29mKHdvcmssXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjExNDpcdFx0XHRcdFx0XHQgICAgc3RydWN0IG5mY19kaWdpdGFsX2Rldixcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMTE1LVx0XHRcdFx0XHRcdCAgICBjbWRfY29tcGxldGVfd29yayk7XG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0xNDEtXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjE0MjpzdGF0aWMgdm9pZCBkaWdpdGFsX3NlbmRfY21kX2NvbXBsZXRlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTE0My1cdFx0XHRcdCAgICAgIHZvaWQgKmFyZywgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz0xNTI9c3RhdGljIHZvaWQgZGlnaXRhbF93cV9jbWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMTU2LVx0c3RydWN0IGRpZ2l0YWxfdGdfbWRhYV9wYXJhbXMgKnBhcmFtcztcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6MTU3Olx0c3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiA9IGNvbnRhaW5lcl9vZih3b3JrLFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzoxNTg6XHRcdFx0XHRcdFx0ICAgIHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYsXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTE1OS1cdFx0XHRcdFx0XHQgICAgY21kX3dvcmspO1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMjI2LVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzoyMjc6aW50IGRpZ2l0YWxfc2VuZF9jbWQoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTggY21kX3R5cGUsXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTIyOC1cdFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZGlnaXRhbF90Z19tZGFhX3BhcmFtcyAqcGFyYW1zLFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzoyMjk6XHRcdCAgICAgdTE2IHRpbWVvdXQsIG5mY19kaWdpdGFsX2NtZF9jb21wbGV0ZV90IGNtZF9jYixcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMjMwLVx0XHQgICAgIHZvaWQgKmNiX2NvbnRleHQpXG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0yNTQtXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjI1NTppbnQgZGlnaXRhbF9pbl9jb25maWd1cmVfaHcoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgaW50IHR5cGUsIGludCBwYXJhbSlcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMjU2LXtcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTI2NS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6MjY2OmludCBkaWdpdGFsX3RnX2NvbmZpZ3VyZV9odyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBpbnQgdHlwZSwgaW50IHBhcmFtKVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0yNjcte1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMjc2LVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzoyNzc6c3RhdGljIGludCBkaWdpdGFsX3RnX2xpc3Rlbl9tZGFhKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTI3OC17XG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0zMDItXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjMwMzpzdGF0aWMgaW50IGRpZ2l0YWxfdGdfbGlzdGVuX21kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTMwNC17XG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0zMDgtXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjMwOTppbnQgZGlnaXRhbF90YXJnZXRfZm91bmQoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMzEwLVx0XHRcdCBzdHJ1Y3QgbmZjX3RhcmdldCAqdGFyZ2V0LCB1OCBwcm90b2NvbClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTQwNC1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NDA1OnZvaWQgZGlnaXRhbF9wb2xsX25leHRfdGVjaChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00MDYte1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9NDI3PXN0YXRpYyB2b2lkIGRpZ2l0YWxfd3FfcG9sbChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00MzAtXHRzdHJ1Y3QgZGlnaXRhbF9wb2xsX3RlY2ggKnBvbGxfdGVjaDtcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NDMxOlx0c3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiA9IGNvbnRhaW5lcl9vZih3b3JrLFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo0MzI6XHRcdFx0XHRcdFx0ICAgIHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYsXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTQzMy1cdFx0XHRcdFx0XHQgICAgcG9sbF93b3JrLndvcmspO1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNDQ5LVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo0NTA6c3RhdGljIHZvaWQgZGlnaXRhbF9hZGRfcG9sbF90ZWNoKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gsXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTQ1MS1cdFx0XHRcdCAgZGlnaXRhbF9wb2xsX3QgcG9sbF9mdW5jKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9NDc2PXN0YXRpYyBpbnQgZGlnaXRhbF9zdGFydF9wb2xsKHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2LCBfX3UzMiBpbV9wcm90b2NvbHMsXG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00Nzgte1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo0Nzk6XHRzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2ID0gbmZjX2dldF9kcnZkYXRhKG5mY19kZXYpO1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00ODAtXHR1MzIgbWF0Y2hpbmdfaW1fcHJvdG9jb2xzLCBtYXRjaGluZ190bV9wcm90b2NvbHM7XG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz01NTY9c3RhdGljIHZvaWQgZGlnaXRhbF9zdG9wX3BvbGwoc3RydWN0IG5mY19kZXYgKm5mY19kZXYpXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTU1Ny17XG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjU1ODpcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBuZmNfZ2V0X2RydmRhdGEobmZjX2Rldik7XG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTU1OS1cbi0tXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jPTU3Nz1zdGF0aWMgaW50IGRpZ2l0YWxfZGV2X3VwKHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2KVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy01Nzgte1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo1Nzk6XHRzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2ID0gbmZjX2dldF9kcnZkYXRhKG5mY19kZXYpO1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYy01ODAtXG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz01ODY9c3RhdGljIGludCBkaWdpdGFsX2Rldl9kb3duKHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2KVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy01ODcte1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo1ODg6XHRzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2ID0gbmZjX2dldF9kcnZkYXRhKG5mY19kZXYpO1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYy01ODktXG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz01OTU9c3RhdGljIGludCBkaWdpdGFsX2RlcF9saW5rX3VwKHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2LFxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNTk4LXtcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NTk5Olx0c3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiA9IG5mY19nZXRfZHJ2ZGF0YShuZmNfZGV2KTtcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNjAwLVx0aW50IHJjO1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9NjEwPXN0YXRpYyBpbnQgZGlnaXRhbF9kZXBfbGlua19kb3duKHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2KVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy02MTEte1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo2MTI6XHRzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2ID0gbmZjX2dldF9kcnZkYXRhKG5mY19kZXYpO1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYy02MTMtXG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz02MjE9c3RhdGljIGludCBkaWdpdGFsX2FjdGl2YXRlX3RhcmdldChzdHJ1Y3QgbmZjX2RldiAqbmZjX2Rldixcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTYyMy17XG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjYyNDpcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBuZmNfZ2V0X2RydmRhdGEobmZjX2Rldik7XG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTYyNS1cbi0tXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jPTY0MT1zdGF0aWMgdm9pZCBkaWdpdGFsX2RlYWN0aXZhdGVfdGFyZ2V0KHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2LFxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNjQ0LXtcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NjQ1Olx0c3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiA9IG5mY19nZXRfZHJ2ZGF0YShuZmNfZGV2KTtcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNjQ2LVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9NjU2PXN0YXRpYyBpbnQgZGlnaXRhbF90Z19zZW5kKHN0cnVjdCBuZmNfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTY1Ny17XG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjY1ODpcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBuZmNfZ2V0X2RydmRhdGEoZGV2KTtcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNjU5LVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNjYyLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo2NjM6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9zZW5kX2NvbXBsZXRlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNjY0LVx0XHRcdFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jPTcwMT1zdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZChzdHJ1Y3QgbmZjX2RldiAqbmZjX2Rldiwgc3RydWN0IG5mY190YXJnZXQgKnRhcmdldCxcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTcwNC17XG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjcwNTpcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBuZmNfZ2V0X2RydmRhdGEobmZjX2Rldik7XG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTcwNi1cdHN0cnVjdCBkaWdpdGFsX2RhdGFfZXhjaCAqZGF0YV9leGNoO1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9NzQ0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmZjX29wcyBkaWdpdGFsX25mY19vcHMgPSB7XG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy03NTYtXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjc1NzpzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpuZmNfZGlnaXRhbF9hbGxvY2F0ZV9kZXZpY2UoY29uc3Qgc3RydWN0IG5mY19kaWdpdGFsX29wcyAqb3BzLFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy03NTgtXHRcdFx0XHRcdCAgICBfX3UzMiBzdXBwb3J0ZWRfcHJvdG9jb2xzLFxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNzYxLXtcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NzYyOlx0c3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldjtcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNzYzLVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODE5LX1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6ODIwOkVYUE9SVF9TWU1CT0wobmZjX2RpZ2l0YWxfYWxsb2NhdGVfZGV2aWNlKTtcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODIxLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo4MjI6dm9pZCBuZmNfZGlnaXRhbF9mcmVlX2RldmljZShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MjMte1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODI2LX1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6ODI3OkVYUE9SVF9TWU1CT0wobmZjX2RpZ2l0YWxfZnJlZV9kZXZpY2UpO1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MjgtXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjgyOTppbnQgbmZjX2RpZ2l0YWxfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTgzMC17XG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MzItfVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo4MzM6RVhQT1JUX1NZTUJPTChuZmNfZGlnaXRhbF9yZWdpc3Rlcl9kZXZpY2UpO1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MzQtXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjgzNTp2b2lkIG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTgzNi17XG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04NjItfVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo4NjM6RVhQT1JUX1NZTUJPTChuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZSk7XG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTg2NC1cbi0tXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM9MTAwPXN0cnVjdCBkaWdpdGFsX2RlcF9yZXFfcmVzIHtcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTA1LVxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjEwNjpzdGF0aWMgdm9pZCBkaWdpdGFsX2luX3JlY3ZfZGVwX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTA3LVx0XHRcdFx0ICAgIHN0cnVjdCBza19idWZmICpyZXNwKTtcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoxMDg6c3RhdGljIHZvaWQgZGlnaXRhbF90Z19yZWN2X2RlcF9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEwOS1cdFx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcCk7XG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jPTE1Nz1zdGF0aWMgdTggZGlnaXRhbF9wYXlsb2FkX3NpemVfdG9fYml0cyh1OCBwYXlsb2FkX3NpemUpXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTE2Ny1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoxNjg6c3RhdGljIHZvaWQgZGlnaXRhbF9za2JfcHVzaF9kZXBfc29kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTY5LVx0XHRcdFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xNzgtXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6MTc5OnN0YXRpYyBpbnQgZGlnaXRhbF9za2JfcHVsbF9kZXBfc29kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTgwLVx0XHRcdFx0ICAgIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jPTE5OT1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKlxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjIwMDpkaWdpdGFsX3NlbmRfZGVwX2RhdGFfcHJlcChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTIwMS1cdFx0XHQgICBzdHJ1Y3QgZGlnaXRhbF9kZXBfcmVxX3JlcyAqZGVwX3JlcV9yZXMsXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jPTIzMD1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKlxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjIzMTpkaWdpdGFsX3JlY3ZfZGVwX2RhdGFfZ2F0aGVyKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHBmYixcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0yMzItXHRcdFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcCxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoyMzM6XHRcdFx0ICAgICBpbnQgKCpzZW5kX2Fjaykoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0yMzQtXHRcdFx0XHRcdCAgICAgc3RydWN0IGRpZ2l0YWxfZGF0YV9leGNoXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTI5NC1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoyOTU6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X3BzbF9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTI5Ni1cdFx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMzU4LVxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjM1OTpzdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZF9wc2xfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMzYwLVx0XHRcdFx0ICAgc3RydWN0IG5mY190YXJnZXQgKnRhcmdldClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMzk4LVxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjM5OTpzdGF0aWMgdm9pZCBkaWdpdGFsX2luX3JlY3ZfYXRyX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtNDAwLVx0XHRcdFx0IHN0cnVjdCBza19idWZmICpyZXNwKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy00NzAtXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6NDcxOmludCBkaWdpdGFsX2luX3NlbmRfYXRyX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTQ3Mi1cdFx0XHQgICAgc3RydWN0IG5mY190YXJnZXQgKnRhcmdldCwgX191OCBjb21tX21vZGUsIF9fdTggKmdiLFxuLS1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy01MjgtXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6NTI5OnN0YXRpYyBpbnQgZGlnaXRhbF9pbl9zZW5kX2FjayhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTUzMC1cdFx0XHQgICAgICAgc3RydWN0IGRpZ2l0YWxfZGF0YV9leGNoICpkYXRhX2V4Y2gpXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTU2NS1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzo1NjY6c3RhdGljIGludCBkaWdpdGFsX2luX3NlbmRfbmFjayhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTU2Ny1cdFx0XHRcdHN0cnVjdCBkaWdpdGFsX2RhdGFfZXhjaCAqZGF0YV9leGNoKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy01OTctXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6NTk4OnN0YXRpYyBpbnQgZGlnaXRhbF9pbl9zZW5kX2F0bihzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTU5OS1cdFx0XHQgICAgICAgc3RydWN0IGRpZ2l0YWxfZGF0YV9leGNoICpkYXRhX2V4Y2gpXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTYyOC1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzo2Mjk6c3RhdGljIGludCBkaWdpdGFsX2luX3NlbmRfcnRveChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTYzMC1cdFx0XHRcdHN0cnVjdCBkaWdpdGFsX2RhdGFfZXhjaCAqZGF0YV9leGNoLCB1OCBydG94KVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy02NjctXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6NjY4OnN0YXRpYyBpbnQgZGlnaXRhbF9pbl9zZW5kX3NhdmVkX3NrYihzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTY2OS1cdFx0XHRcdCAgICAgc3RydWN0IGRpZ2l0YWxfZGF0YV9leGNoICpkYXRhX2V4Y2gpXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTY4NS1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzo2ODY6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X2RlcF9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTY4Ny1cdFx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtOTAzLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjkwNDppbnQgZGlnaXRhbF9pbl9zZW5kX2RlcF9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy05MDUtXHRcdFx0ICAgIHN0cnVjdCBuZmNfdGFyZ2V0ICp0YXJnZXQsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTk1MC1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzo5NTE6c3RhdGljIHZvaWQgZGlnaXRhbF90Z19zZXRfcmZfdGVjaChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTk1Mi17XG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTk3Ny1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzo5Nzg6c3RhdGljIGludCBkaWdpdGFsX3RnX3NlbmRfYWNrKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtOTc5LVx0XHRcdCAgICAgICBzdHJ1Y3QgZGlnaXRhbF9kYXRhX2V4Y2ggKmRhdGFfZXhjaClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTAyMy1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoxMDI0OnN0YXRpYyBpbnQgZGlnaXRhbF90Z19zZW5kX2F0bihzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEwMjUte1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMDU5LVxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjEwNjA6c3RhdGljIGludCBkaWdpdGFsX3RnX3NlbmRfc2F2ZWRfc2tiKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTA2MS17XG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEwNzYtXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6MTA3NzpzdGF0aWMgdm9pZCBkaWdpdGFsX3RnX3JlY3ZfZGVwX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTA3OC1cdFx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTI5Ni1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoxMjk3OmludCBkaWdpdGFsX3RnX3NlbmRfZGVwX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEyOTgte1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMzQ3LVxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjEzNDg6c3RhdGljIHZvaWQgZGlnaXRhbF90Z19zZW5kX3BzbF9yZXNfY29tcGxldGUoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMzQ5LVx0XHRcdFx0XHQgICAgIHZvaWQgKmFyZywgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEzNjQtXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6MTM2NTpzdGF0aWMgaW50IGRpZ2l0YWxfdGdfc2VuZF9wc2xfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IGRpZCxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMzY2LVx0XHRcdFx0ICAgdTggcmZfdGVjaClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTM5Ny1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoxMzk4OnN0YXRpYyB2b2lkIGRpZ2l0YWxfdGdfcmVjdl9wc2xfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMzk5LVx0XHRcdFx0ICAgIHN0cnVjdCBza19idWZmICpyZXNwKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xNDY2LVxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjE0Njc6c3RhdGljIHZvaWQgZGlnaXRhbF90Z19zZW5kX2F0cl9yZXNfY29tcGxldGUoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xNDY4LVx0XHRcdFx0XHQgICAgIHZvaWQgKmFyZywgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTE0ODgtXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6MTQ4OTpzdGF0aWMgaW50IGRpZ2l0YWxfdGdfc2VuZF9hdHJfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTQ5MC1cdFx0XHRcdCAgIHN0cnVjdCBkaWdpdGFsX2F0cl9yZXEgKmF0cl9yZXEpXG4tLVxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTE1NDAtXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6MTU0MTp2b2lkIGRpZ2l0YWxfdGdfcmVjdl9hdHJfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xNTQyLVx0XHRcdCAgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYz0xNTg9c3RydWN0IGRpZ2l0YWxfaXNvMTU2OTNfaW52X3JlcyB7XG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xNjMtXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjE2NDpzdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZF9zZGRfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTE2NS1cdFx0XHRcdCAgIHN0cnVjdCBuZmNfdGFyZ2V0ICp0YXJnZXQpO1xubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xNjYtXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjE2NzppbnQgZGlnaXRhbF9pbl9pc29fZGVwX3B1bGxfc29kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTE2OC1cdFx0XHRcdHN0cnVjdCBza19idWZmICpza2IpXG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xOTQtXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjE5NTppbnQgZGlnaXRhbF9pbl9pc29fZGVwX3B1c2hfc29kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTE5Ni1cdFx0XHRcdHN0cnVjdCBza19idWZmICpza2IpXG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0yMTQtXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjIxNTpzdGF0aWMgdm9pZCBkaWdpdGFsX2luX3JlY3ZfYXRzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMjE2LVx0XHRcdFx0c3RydWN0IHNrX2J1ZmYgKnJlc3ApXG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0yNTAtXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjI1MTpzdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZF9yYXRzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTI1Mi1cdFx0XHRcdHN0cnVjdCBuZmNfdGFyZ2V0ICp0YXJnZXQpXG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0yNzEtXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjI3MjpzdGF0aWMgdm9pZCBkaWdpdGFsX2luX3JlY3Zfc2VsX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTI3My1cdFx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTM0MC1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6MzQxOnN0YXRpYyBpbnQgZGlnaXRhbF9pbl9zZW5kX3NlbF9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMzQyLVx0XHRcdFx0ICAgc3RydWN0IG5mY190YXJnZXQgKnRhcmdldCxcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTM4Ni1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6Mzg3OnN0YXRpYyB2b2lkIGRpZ2l0YWxfaW5fcmVjdl9zZGRfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMzg4LVx0XHRcdFx0ICAgIHN0cnVjdCBza19idWZmICpyZXNwKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNDQ3LVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzo0NDg6c3RhdGljIGludCBkaWdpdGFsX2luX3NlbmRfc2RkX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy00NDktXHRcdFx0XHQgICBzdHJ1Y3QgbmZjX3RhcmdldCAqdGFyZ2V0KVxuLS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNDgxLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzo0ODI6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X3NlbnNfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNDgzLVx0XHRcdFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTUyNi1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6NTI3OmludCBkaWdpdGFsX2luX3NlbmRfc2Vuc19yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTggcmZfdGVjaClcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNTI4LXtcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jPTU1NT1pbnQgZGlnaXRhbF9pbl9yZWN2X21pZmFyZV9yZXMoc3RydWN0IHNrX2J1ZmYgKnJlc3ApXG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy01ODAtXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjU4MTpzdGF0aWMgdm9pZCBkaWdpdGFsX2luX3JlY3ZfYXR0cmliX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTU4Mi1cdFx0XHRcdCAgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTYxNy1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6NjE4OnN0YXRpYyBpbnQgZGlnaXRhbF9pbl9zZW5kX2F0dHJpYl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNjE5LVx0XHRcdCAgICAgICBzdHJ1Y3QgbmZjX3RhcmdldCAqdGFyZ2V0LFxuLS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNjUwLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzo2NTE6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X3NlbnNiX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTY1Mi1cdFx0XHRcdCAgICAgIHN0cnVjdCBza19idWZmICpyZXNwKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNzEzLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzo3MTQ6aW50IGRpZ2l0YWxfaW5fc2VuZF9zZW5zYl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTggcmZfdGVjaClcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNzE1LXtcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTc0Ny1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6NzQ4OnN0YXRpYyB2b2lkIGRpZ2l0YWxfaW5fcmVjdl9zZW5zZl9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy03NDktXHRcdFx0XHQgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTgwMS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6ODAyOmludCBkaWdpdGFsX2luX3NlbmRfc2Vuc2ZfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTgwMy17XG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy04NDUtXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjg0NjpzdGF0aWMgdm9pZCBkaWdpdGFsX2luX3JlY3ZfaXNvMTU2OTNfaW52X3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy04NDctXHRcdHZvaWQgKmFyZywgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy04OTItXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjg5MzppbnQgZGlnaXRhbF9pbl9zZW5kX2lzbzE1NjkzX2ludl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTggcmZfdGVjaClcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtODk0LXtcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTkzMi1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6OTMzOnN0YXRpYyBpbnQgZGlnaXRhbF90Z19zZW5kX3NlbF9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldilcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtOTM0LXtcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTk2MS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6OTYyOnN0YXRpYyB2b2lkIGRpZ2l0YWxfdGdfcmVjdl9zZWxfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtOTYzLVx0XHRcdFx0ICAgIHN0cnVjdCBza19idWZmICpyZXNwKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtOTkxLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzo5OTI6c3RhdGljIGludCBkaWdpdGFsX3RnX3NlbmRfc2RkX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy05OTMte1xuLS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTAyNi1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6MTAyNzpzdGF0aWMgdm9pZCBkaWdpdGFsX3RnX3JlY3Zfc2RkX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTEwMjgtXHRcdFx0XHQgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMDU1LVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzoxMDU2OnN0YXRpYyBpbnQgZGlnaXRhbF90Z19zZW5kX3NlbnNfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTEwNTcte1xuLS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTA4NS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6MTA4Njp2b2lkIGRpZ2l0YWxfdGdfcmVjdl9zZW5zX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTEwODctXHRcdFx0ICAgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMTE0LVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzoxMTE1OnN0YXRpYyB2b2lkIGRpZ2l0YWxfdGdfcmVjdl9hdHJfb3Jfc2Vuc2ZfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTExMTYtXHRcdHZvaWQgKmFyZywgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXG4tLVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMTI2LVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzoxMTI3OnN0YXRpYyBpbnQgZGlnaXRhbF90Z19zZW5kX3NlbnNmX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMTI4LVx0XHRcdCAgICAgIHN0cnVjdCBkaWdpdGFsX3NlbnNmX3JlcSAqc2Vuc2ZfcmVxKVxuLS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTE3OC1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6MTE3OTp2b2lkIGRpZ2l0YWxfdGdfcmVjdl9zZW5zZl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMTgwLVx0XHRcdCAgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTEyMjAtXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjEyMjE6c3RhdGljIGludCBkaWdpdGFsX3RnX2NvbmZpZ19uZmNhKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTEyMjIte1xuLS1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTIzMy1cbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6MTIzNDppbnQgZGlnaXRhbF90Z19saXN0ZW5fbmZjYShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKVxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMjM1LXtcbi0tXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTEyNDQtXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjEyNDU6c3RhdGljIGludCBkaWdpdGFsX3RnX2NvbmZpZ19uZmNmKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTEyNDYte1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTM0MzkKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiA1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE5GQyBEaWdpdGFsIFVucmVnaXN0cmF0aW9uKioKCk9rYXksIHNvIHRoZSBjb25maWd1cmF0aW9uIGluIHBsYXkgaGVyZSBpcyBgQ09ORklHX05GQ19ESUdJVEFMYC4gVGhhdCBuYXJyb3dzIGRvd24gdGhlIHNjb3BlIGEgYml0LCB3aGljaCBpcyBhbHdheXMgaGVscGZ1bC4gUmlnaHQgbm93LCBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IGNoYW5nZXMgdGhlIGBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZWAgZnVuY3Rpb24uIFNwZWNpZmljYWxseSwgaXQmIzM5O3MgbG9jYXRlZCBpbiBgbmV0L25mYy9kaWdpdGFsX2NvcmUuY2AuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBsZXQmIzM5O3MgdHJhY2UgdGhpcyBmdW5jdGlvbi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGUgY2hhbmdlLCBzbyBJIG5lZWQgdG8gZmluZCBvdXQgKmV4YWN0bHkqIHdoZXJlIGBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZWAgaXMgY2FsbGVkLiBUaGUgY29udGV4dCBvZiBpdHMgdXNhZ2UgaXMga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIG1vZGlmaWNhdGlvbiYjMzk7cyBpbXBhY3QuIEkmIzM5O2xsIG5lZWQgdG8gdXNlIG15IHVzdWFsIHRvb2xzIHRvIHBlcmZvcm0gYSBjcm9zcy1yZWZlcmVuY2Ugc2VhcmNoIGFuZCBzZWUgd2hhdCBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtIHJlbHkgb24gdGhpcyBmdW5jdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxMTozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25mYy9uZmNzaW0uYz00MTI9c3RhdGljIHZvaWQgbmZjc2ltX2RldmljZV9mcmVlKHN0cnVjdCBuZmNzaW0gKmRldilcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQxMy17XG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0MTQ6XHRuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZShkZXYtXHUwMDNlbmZjX2RpZ2l0YWxfZGV2KTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQxNS1cbi0tXG5kcml2ZXJzL25mYy9wb3J0MTAwLmM9MTYwOD1zdGF0aWMgdm9pZCBwb3J0MTAwX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSlcbi0tXG5kcml2ZXJzL25mYy9wb3J0MTAwLmMtMTYxNC1cbmRyaXZlcnMvbmZjL3BvcnQxMDAuYzoxNjE1Olx0bmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UoZGV2LVx1MDAzZW5mY19kaWdpdGFsX2Rldik7XG5kcml2ZXJzL25mYy9wb3J0MTAwLmMtMTYxNi1cdG5mY19kaWdpdGFsX2ZyZWVfZGV2aWNlKGRldi1cdTAwM2VuZmNfZGlnaXRhbF9kZXYpO1xuLS1cbmRyaXZlcnMvbmZjL3N0OTVoZi9jb3JlLmM9MTE5Nj1zdGF0aWMgdm9pZCBzdDk1aGZfcmVtb3ZlKHN0cnVjdCBzcGlfZGV2aWNlICpuZmNfc3BpX2Rldilcbi0tXG5kcml2ZXJzL25mYy9zdDk1aGYvY29yZS5jLTEyMDctXG5kcml2ZXJzL25mYy9zdDk1aGYvY29yZS5jOjEyMDg6XHRuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZShzdGNvbnRleHQtXHUwMDNlZGRldik7XG5kcml2ZXJzL25mYy9zdDk1aGYvY29yZS5jLTEyMDktXHRuZmNfZGlnaXRhbF9mcmVlX2RldmljZShzdGNvbnRleHQtXHUwMDNlZGRldik7XG4tLVxuZHJpdmVycy9uZmMvdHJmNzk3MGEuYz0yMjIwPXN0YXRpYyB2b2lkIHRyZjc5NzBhX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKVxuLS1cbmRyaXZlcnMvbmZjL3RyZjc5NzBhLmMtMjIyOS1cbmRyaXZlcnMvbmZjL3RyZjc5NzBhLmM6MjIzMDpcdG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlKHRyZi1cdTAwM2VkZGV2KTtcbmRyaXZlcnMvbmZjL3RyZjc5NzBhLmMtMjIzMS1cdG5mY19kaWdpdGFsX2ZyZWVfZGV2aWNlKHRyZi1cdTAwM2VkZGV2KTtcbi0tXG5pbmNsdWRlL25ldC9uZmMvZGlnaXRhbC5oPTI0NT1pbnQgbmZjX2RpZ2l0YWxfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKm5kZXYpO1xuaW5jbHVkZS9uZXQvbmZjL2RpZ2l0YWwuaDoyNDY6dm9pZCBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpuZGV2KTtcbmluY2x1ZGUvbmV0L25mYy9kaWdpdGFsLmgtMjQ3LVxuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9ODMzPUVYUE9SVF9TWU1CT0wobmZjX2RpZ2l0YWxfcmVnaXN0ZXJfZGV2aWNlKTtcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODM0LVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo4MzU6dm9pZCBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MzYte1xuLS1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODYyLX1cbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6ODYzOkVYUE9SVF9TWU1CT0wobmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UpO1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04NjQtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTQ0NzIKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiAxMDYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIE5GQyBEcml2ZXIgUmVtb3ZhbCBGdW5jdGlvbnMqKgoKT2theSwgc28gSSYjMzk7bSBzZWVpbmcgdGhhdCB0aGUgYG5mY3NpbV9kZXZpY2VfZnJlZWAgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkIGluIG11bHRpcGxlIGRyaXZlciByZW1vdmFsIGZ1bmN0aW9uczogYG5mY3NpbV9kZXZpY2VfZnJlZWAgaW4gdGhlIGBuZmNzaW0uY2AgZmlsZSwgYXMgd2VsbCBhcyBgcG9ydDEwMF9kaXNjb25uZWN0YCBpbiBgcG9ydDEwMC5jYCwgYW5kIGFsc28gYHN0OTVoZl9yZW1vdmVgLCBhbmQgYHRyZjc5NzBhX3JlbW92ZWAuIFRoYXQmIzM5O3MgaW50ZXJlc3RpbmcsIGFuZCB3b3J0aCBkaWdnaW5nIGludG8uIEdpdmVuIHdoYXQgSSBrbm93LCB0aGUgYG5mY3NpbWAgZHJpdmVyIGlzIHBlcmZlY3QgZm9yIG15IGZ1enppbmcgZXhwZXJpbWVudHMuCgpOb3csIG15IG5leHQgc3RlcCBpcyBjbGVhciDigJMgSSBuZWVkIHRvIGdldCBhIGJldHRlciBoYW5kbGUgb24gdGhlIGBuZmNzaW1gIHZpcnR1YWwgTkZDIGRyaXZlci4gSSBzaG91bGQgc3RhcnQgYnkgZXhhbWluaW5nIGl0cyBLY29uZmlnIGZpbGUgaW4gYGRyaXZlcnMvbmZjL25mY3NpbS5jYC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIGdvb2Qgb3ZlcnZpZXcgb2YgaXRzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgZGVwZW5kZW5jaWVzLiBUaGlzIHdpbGwgaGVscCBtZSB1bmRlcnN0YW5kIGhvdyBpdCBjYW4gYmUgZW5hYmxlZCBvciBkaXNhYmxlZCwgYW5kIHdoYXQgZmVhdHVyZXMgaXQgb2ZmZXJzIGZvciBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxMTozODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZmNzaW0mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25mYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZmMvTWFrZWZpbGU9MTA9b2JqLSQoQ09ORklHX05GQ19NRUlfUEhZKVx0JiM0Mzs9IG1laV9waHkub1xuZHJpdmVycy9uZmMvTWFrZWZpbGU6MTE6b2JqLSQoQ09ORklHX05GQ19TSU0pXHRcdCYjNDM7PSBuZmNzaW0ub1xuZHJpdmVycy9uZmMvTWFrZWZpbGUtMTItb2JqLSQoQ09ORklHX05GQ19QT1JUMTAwKVx0JiM0Mzs9IHBvcnQxMDAub1xuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMwLVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzE6c3RydWN0IG5mY3NpbSB7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMi1cdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKm5mY19kaWdpdGFsX2Rldjtcbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zNi1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjM3Olx0c3RydWN0IG5mY3NpbV9saW5rICpsaW5rX2luO1xuZHJpdmVycy9uZmMvbmZjc2ltLmM6Mzg6XHRzdHJ1Y3QgbmZjc2ltX2xpbmsgKmxpbmtfb3V0O1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzktXG4tLVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNTEtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo1MjpzdHJ1Y3QgbmZjc2ltX2xpbmsge1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtNTMtXHRzdHJ1Y3QgbXV0ZXggbG9jaztcbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy02NC1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjY1OnN0YXRpYyBzdHJ1Y3QgbmZjc2ltX2xpbmsgKm5mY3NpbV9saW5rX25ldyh2b2lkKVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNjYte1xuZHJpdmVycy9uZmMvbmZjc2ltLmM6Njc6XHRzdHJ1Y3QgbmZjc2ltX2xpbmsgKmxpbms7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy02OC1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjY5Olx0bGluayA9IGt6YWxsb2Nfb2JqKHN0cnVjdCBuZmNzaW1fbGluayk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy03MC1cdGlmICghbGluaylcbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy03OC1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjc5OnN0YXRpYyB2b2lkIG5mY3NpbV9saW5rX2ZyZWUoc3RydWN0IG5mY3NpbV9saW5rICpsaW5rKVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtODAte1xuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTg0LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6ODU6c3RhdGljIHZvaWQgbmZjc2ltX2xpbmtfcmVjdl93YWtlKHN0cnVjdCBuZmNzaW1fbGluayAqbGluaylcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTg2LXtcbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy05MC1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjkxOnN0YXRpYyB2b2lkIG5mY3NpbV9saW5rX3NldF9za2Ioc3RydWN0IG5mY3NpbV9saW5rICpsaW5rLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtOTItXHRcdFx0XHR1OCByZl90ZWNoLCB1OCBtb2RlKVxuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTEwMy1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjEwNDpzdGF0aWMgdm9pZCBuZmNzaW1fbGlua19yZWN2X2NhbmNlbChzdHJ1Y3QgbmZjc2ltX2xpbmsgKmxpbmspXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xMDUte1xuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTExMS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjExMjpcdG5mY3NpbV9saW5rX3JlY3Zfd2FrZShsaW5rKTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTExMy19XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xMTQtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzoxMTU6c3RhdGljIHZvaWQgbmZjc2ltX2xpbmtfc2h1dGRvd24oc3RydWN0IG5mY3NpbV9saW5rICpsaW5rKVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTE2LXtcbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xMjMtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzoxMjQ6XHRuZmNzaW1fbGlua19yZWN2X3dha2UobGluayk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xMjUtfVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTI2LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MTI3OnN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqbmZjc2ltX2xpbmtfcmVjdl9za2Ioc3RydWN0IG5mY3NpbV9saW5rICpsaW5rLFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTI4LVx0XHRcdFx0XHQgICAgaW50IHRpbWVvdXQsIHU4IHJmX3RlY2gsIHU4IG1vZGUpXG4tLVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTY5LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MTcwOnN0YXRpYyB2b2lkIG5mY3NpbV9zZW5kX3dxKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTE3MS17XG5kcml2ZXJzL25mYy9uZmNzaW0uYzoxNzI6XHRzdHJ1Y3QgbmZjc2ltICpkZXYgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IG5mY3NpbSwgc2VuZF93b3JrLndvcmspO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTczLVxuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTE3Ni1cdCAqIGlzIHRoZSBsaW5rX2luIG9mIHRoZSBwZWVyIGRldmljZS4gVGhlIGV4Y2hhbmdlZCBza2IgaGFzIGFscmVhZHkgYmVlblxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MTc3Olx0ICogc3RvcmVkIGluIHRoZSBkZXYtXHUwMDNlbGlua19vdXQgdGhyb3VnaCBuZmNzaW1fbGlua19zZXRfc2tiKCkuXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xNzgtXHQgKi9cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjE3OTpcdG5mY3NpbV9saW5rX3JlY3Zfd2FrZShkZXYtXHUwMDNlbGlua19vdXQpO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTgwLX1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTE4MS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjE4MjpzdGF0aWMgdm9pZCBuZmNzaW1fcmVjdl93cShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xODMte1xuZHJpdmVycy9uZmMvbmZjc2ltLmM6MTg0Olx0c3RydWN0IG5mY3NpbSAqZGV2ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBuZmNzaW0sIHJlY3Zfd29yayk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xODUtXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTg2LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MTg3Olx0c2tiID0gbmZjc2ltX2xpbmtfcmVjdl9za2IoZGV2LVx1MDAzZWxpbmtfaW4sIGRldi1cdTAwM2VyZWN2X3RpbWVvdXQsXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xODgtXHRcdFx0XHQgICBkZXYtXHUwMDNlcmZfdGVjaCwgZGV2LVx1MDAzZW1vZGUpO1xuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTIwMC1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjIwMTpzdGF0aWMgaW50IG5mY3NpbV9zZW5kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yMDItXHRcdCAgICAgICB1MTYgdGltZW91dCwgbmZjX2RpZ2l0YWxfY21kX2NvbXBsZXRlX3QgY2IsIHZvaWQgKmFyZylcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTIwMy17XG5kcml2ZXJzL25mYy9uZmNzaW0uYzoyMDQ6XHRzdHJ1Y3QgbmZjc2ltICpkZXYgPSBuZmNfZGlnaXRhbF9nZXRfZHJ2ZGF0YShkZGV2KTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTIwNS1cdHU4IGRlbGF5O1xuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTIyNi1cdGlmIChza2IpIHtcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjIyNzpcdFx0bmZjc2ltX2xpbmtfc2V0X3NrYihkZXYtXHUwMDNlbGlua19vdXQsIHNrYiwgZGV2LVx1MDAzZXJmX3RlY2gsXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yMjgtXHRcdFx0XHQgICAgZGV2LVx1MDAzZW1vZGUpO1xuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTIzOS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI0MDpzdGF0aWMgdm9pZCBuZmNzaW1fYWJvcnRfY21kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yNDEte1xuZHJpdmVycy9uZmMvbmZjc2ltLmM6MjQyOlx0Y29uc3Qgc3RydWN0IG5mY3NpbSAqZGV2ID0gbmZjX2RpZ2l0YWxfZ2V0X2RydmRhdGEoZGRldik7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yNDMtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzoyNDQ6XHRuZmNzaW1fbGlua19yZWN2X2NhbmNlbChkZXYtXHUwMDNlbGlua19pbik7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yNDUtfVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjQ2LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MjQ3OnN0YXRpYyBpbnQgbmZjc2ltX3N3aXRjaF9yZihzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBib29sIG9uKVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjQ4LXtcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI0OTpcdHN0cnVjdCBuZmNzaW0gKmRldiA9IG5mY19kaWdpdGFsX2dldF9kcnZkYXRhKGRkZXYpO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjUwLVxuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTI1NS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI1NjpzdGF0aWMgaW50IG5mY3NpbV9pbl9jb25maWd1cmVfaHcoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTI1Ny1cdFx0XHRcdFx0ICBpbnQgdHlwZSwgaW50IHBhcmFtKVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjU4LXtcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI1OTpcdHN0cnVjdCBuZmNzaW0gKmRldiA9IG5mY19kaWdpdGFsX2dldF9kcnZkYXRhKGRkZXYpO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjYwLVxuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTI3OC1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI3OTpzdGF0aWMgaW50IG5mY3NpbV9pbl9zZW5kX2NtZChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjgwLVx0XHRcdCAgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MTYgdGltZW91dCxcbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yODIte1xuZHJpdmVycy9uZmMvbmZjc2ltLmM6MjgzOlx0cmV0dXJuIG5mY3NpbV9zZW5kKGRkZXYsIHNrYiwgdGltZW91dCwgY2IsIGFyZyk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yODQtfVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjg1LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6Mjg2OnN0YXRpYyBpbnQgbmZjc2ltX3RnX2NvbmZpZ3VyZV9odyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjg3LVx0XHRcdFx0XHQgIGludCB0eXBlLCBpbnQgcGFyYW0pXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yODgte1xuZHJpdmVycy9uZmMvbmZjc2ltLmM6Mjg5Olx0c3RydWN0IG5mY3NpbSAqZGV2ID0gbmZjX2RpZ2l0YWxfZ2V0X2RydmRhdGEoZGRldik7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yOTAtXG4tLVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzA4LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzA5OnN0YXRpYyBpbnQgbmZjc2ltX3RnX3NlbmRfY21kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMTAtXHRcdFx0ICAgICAgIHN0cnVjdCBza19idWZmICpza2IsIHUxNiB0aW1lb3V0LFxuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMxMi17XG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMTM6XHRyZXR1cm4gbmZjc2ltX3NlbmQoZGRldiwgc2tiLCB0aW1lb3V0LCBjYiwgYXJnKTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMxNC19XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMTUtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMTY6c3RhdGljIGludCBuZmNzaW1fdGdfbGlzdGVuKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHUxNiB0aW1lb3V0LFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzE3LVx0XHRcdCAgICBuZmNfZGlnaXRhbF9jbWRfY29tcGxldGVfdCBjYiwgdm9pZCAqYXJnKVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzE4LXtcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjMxOTpcdHJldHVybiBuZmNzaW1fc2VuZChkZGV2LCBOVUxMLCB0aW1lb3V0LCBjYiwgYXJnKTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMyMC19XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMjEtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMjI6c3RhdGljIGNvbnN0IHN0cnVjdCBuZmNfZGlnaXRhbF9vcHMgbmZjc2ltX2RpZ2l0YWxfb3BzID0ge1xuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzIzOlx0LmluX2NvbmZpZ3VyZV9odyA9IG5mY3NpbV9pbl9jb25maWd1cmVfaHcsXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMjQ6XHQuaW5fc2VuZF9jbWQgPSBuZmNzaW1faW5fc2VuZF9jbWQsXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMjUtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMjY6XHQudGdfbGlzdGVuID0gbmZjc2ltX3RnX2xpc3RlbixcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjMyNzpcdC50Z19jb25maWd1cmVfaHcgPSBuZmNzaW1fdGdfY29uZmlndXJlX2h3LFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzI4Olx0LnRnX3NlbmRfY21kID0gbmZjc2ltX3RnX3NlbmRfY21kLFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzI5LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzMwOlx0LmFib3J0X2NtZCA9IG5mY3NpbV9hYm9ydF9jbWQsXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMzE6XHQuc3dpdGNoX3JmID0gbmZjc2ltX3N3aXRjaF9yZixcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMzMi19O1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzMzLVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzM0OnN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpuZmNzaW1fZGVidWdmc19yb290O1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzM1LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzM2OnN0YXRpYyB2b2lkIG5mY3NpbV9kZWJ1Z2ZzX2luaXQodm9pZClcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMzNy17XG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMzg6XHRuZmNzaW1fZGVidWdmc19yb290ID0gZGVidWdmc19jcmVhdGVfZGlyKFwmIzM0O25mY3NpbVwmIzM0OywgTlVMTCk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMzktfVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzQwLVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzQxOnN0YXRpYyB2b2lkIG5mY3NpbV9kZWJ1Z2ZzX3JlbW92ZSh2b2lkKVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzQyLXtcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjM0MzpcdGRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShuZmNzaW1fZGVidWdmc19yb290KTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM0NC19XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zNDUtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozNDY6c3RhdGljIHZvaWQgbmZjc2ltX2RlYnVnZnNfaW5pdF9kZXYoc3RydWN0IG5mY3NpbSAqZGV2KVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzQ3LXtcbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zNTItXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozNTM6XHRpZiAoIW5mY3NpbV9kZWJ1Z2ZzX3Jvb3QpIHtcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjM1NDpcdFx0TkZDU0lNX0VSUihkZXYsIFwmIzM0O25mY3NpbSBkZWJ1Z2ZzIG5vdCBpbml0aWFsaXplZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zNTUtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zNjQtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozNjU6XHRkZXZfZGlyID0gZGVidWdmc19jcmVhdGVfZGlyKGRldm5hbWUsIG5mY3NpbV9kZWJ1Z2ZzX3Jvb3QpO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzY2LVxuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM2OS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjM3MDpzdGF0aWMgc3RydWN0IG5mY3NpbSAqbmZjc2ltX2RldmljZV9uZXcoc3RydWN0IG5mY3NpbV9saW5rICpsaW5rX2luLFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzcxOlx0XHRcdFx0XHRzdHJ1Y3QgbmZjc2ltX2xpbmsgKmxpbmtfb3V0KVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzcyLXtcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjM3MzpcdHN0cnVjdCBuZmNzaW0gKmRldjtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM3NC1cdGludCByYztcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM3NS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjM3NjpcdGRldiA9IGt6YWxsb2Nfb2JqKHN0cnVjdCBuZmNzaW0pO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzc3LVx0aWYgKCFkZXYpXG4tLVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzc5LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzgwOlx0SU5JVF9ERUxBWUVEX1dPUksoXHUwMDI2ZGV2LVx1MDAzZXNlbmRfd29yaywgbmZjc2ltX3NlbmRfd3EpO1xuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzgxOlx0SU5JVF9XT1JLKFx1MDAyNmRldi1cdTAwM2VyZWN2X3dvcmssIG5mY3NpbV9yZWN2X3dxKTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM4Mi1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM4My1cdGRldi1cdTAwM2VuZmNfZGlnaXRhbF9kZXYgPVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6Mzg0Olx0XHRcdG5mY19kaWdpdGFsX2FsbG9jYXRlX2RldmljZShcdTAwMjZuZmNzaW1fZGlnaXRhbF9vcHMsXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zODUtXHRcdFx0XHRcdFx0ICAgIE5GQ19QUk9UT19ORkNfREVQX01BU0ssXG4tLVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDA2LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDA3Olx0bmZjc2ltX2RlYnVnZnNfaW5pdF9kZXYoZGV2KTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQwOC1cbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00MTEtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0MTI6c3RhdGljIHZvaWQgbmZjc2ltX2RldmljZV9mcmVlKHN0cnVjdCBuZmNzaW0gKmRldilcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQxMy17XG4tLVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDE3LVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDE4Olx0bmZjc2ltX2xpbmtfc2h1dGRvd24oZGV2LVx1MDAzZWxpbmtfaW4pO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDE5LVxuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQyNy1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQyODpzdGF0aWMgc3RydWN0IG5mY3NpbSAqZGV2MDtcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQyOTpzdGF0aWMgc3RydWN0IG5mY3NpbSAqZGV2MTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQzMC1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQzMTpzdGF0aWMgaW50IF9faW5pdCBuZmNzaW1faW5pdCh2b2lkKVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDMyLXtcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQzMzpcdHN0cnVjdCBuZmNzaW1fbGluayAqbGluazAsICpsaW5rMTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQzNC1cdGludCByYztcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQzNS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQzNjpcdGxpbmswID0gbmZjc2ltX2xpbmtfbmV3KCk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0Mzc6XHRsaW5rMSA9IG5mY3NpbV9saW5rX25ldygpO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDM4LVx0aWYgKCFsaW5rMCB8fCAhbGluazEpIHtcbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NDItXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0NDM6XHRuZmNzaW1fZGVidWdmc19pbml0KCk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NDQtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0NDU6XHRkZXYwID0gbmZjc2ltX2RldmljZV9uZXcobGluazAsIGxpbmsxKTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ0Ni1cdGlmIChJU19FUlIoZGV2MCkpIHtcbi0tXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NTAtXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0NTE6XHRkZXYxID0gbmZjc2ltX2RldmljZV9uZXcobGluazEsIGxpbmswKTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ1Mi1cdGlmIChJU19FUlIoZGV2MSkpIHtcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ1MzpcdFx0bmZjc2ltX2RldmljZV9mcmVlKGRldjApO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDU0LVxuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ1OC1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ1OTpcdHByX2luZm8oXCYjMzQ7bmZjc2ltIFwmIzM0OyBORkNTSU1fVkVSU0lPTiBcJiMzNDsgaW5pdGlhbGl6ZWRcXG5cJiMzNDspO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDYwLVxuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ2My1leGl0X2VycjpcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ2NDpcdHByX2VycihcJiMzNDtGYWlsZWQgdG8gaW5pdGlhbGl6ZSBuZmNzaW0gZHJpdmVyICglZClcXG5cJiMzNDssIHJjKTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ2NS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ2Ni1cdGlmIChsaW5rMClcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ2NzpcdFx0bmZjc2ltX2xpbmtfZnJlZShsaW5rMCk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NjgtXHRpZiAobGluazEpXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0Njk6XHRcdG5mY3NpbV9saW5rX2ZyZWUobGluazEpO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDcwLVxuLS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ3My1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ3NDpzdGF0aWMgdm9pZCBfX2V4aXQgbmZjc2ltX2V4aXQodm9pZClcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ3NS17XG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0NzY6XHRzdHJ1Y3QgbmZjc2ltX2xpbmsgKmxpbmswLCAqbGluazE7XG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NzctXG4tLVxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDgwLVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDgxOlx0bmZjc2ltX2RldmljZV9mcmVlKGRldjApO1xuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDgyOlx0bmZjc2ltX2RldmljZV9mcmVlKGRldjEpO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDgzLVxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDg0Olx0bmZjc2ltX2xpbmtfZnJlZShsaW5rMCk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0ODU6XHRuZmNzaW1fbGlua19mcmVlKGxpbmsxKTtcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ4Ni1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ4NzpcdG5mY3NpbV9kZWJ1Z2ZzX3JlbW92ZSgpO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDg4LX1cbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ4OS1cbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ5MDptb2R1bGVfaW5pdChuZmNzaW1faW5pdCk7XG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0OTE6bW9kdWxlX2V4aXQobmZjc2ltX2V4aXQpO1xuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDkyLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxMTozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDMwOAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDI1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEltcGxpY2F0aW9ucyBvZiB0aGUgTkZDIENvbmZpZ3VyYXRpb24gQ2hhbmdlKioKCk9rYXksIHNvIEkgc2VlIHRoaXMgcGF0Y2gsIGFuZCBpdCYjMzk7cyBtb2RpZnlpbmcgdGhlIGBuZmNzaW1gIGNvbmZpZ3VyYXRpb24gc3BlY2lmaWNhbGx5IHdpdGggYENPTkZJR19ORkNfU0lNYC4gVGhlIGFjdHVhbCBjb2RlIGNoYW5nZSByZXBsYWNlcyBgY2FuY2VsX3dvcmtfc3luY2Agd2l0aCBgZGlzYWJsZV93b3JrX3N5bmNgIHdpdGhpbiBgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VgLiBGdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBjaGFuZ2UgdGhhdCBuZWVkcyBjYXJlZnVsIGNvbnNpZGVyYXRpb24uCgpMZXQmIzM5O3MgYnJlYWsgZG93biB3aGVyZSB0aGlzIGltcGFjdHMgdGhpbmdzLiBgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VgIGlzIGludm9rZWQgd2hlbiBhIGRldmljZSBpcyB1bnJlZ2lzdGVyZWQuIFRoYXQmIzM5O3MgZWl0aGVyIG1vZHVsZSB1bmxvYWRpbmcsIG9yIHBoeXNpY2FsIGRpc2Nvbm5lY3Rpb24uIEluIGBuZmNzaW1gLCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbnNpZGUgYG5mY3NpbV9kZXZpY2VfZnJlZWAsIHdoaWNoIGdldHMgY2FsbGVkIGVpdGhlciBmcm9tIGBuZmNzaW1fZXhpdGAgb3IgZnJvbSBhbiBlcnJvciBjb25kaXRpb24gaW4gYG5mY3NpbV9pbml0YC4KCldhaXQsIGRvZXMgYG5mY3NpbWAgZ2V0IGR5bmFtaWNhbGx5IGNyZWF0ZWQgYW5kIGRlc3Ryb3llZD8gTm8sIGl0JiMzOTtzIGEgbW9kdWxlLCBpdCBzZWVtcyBwcmV0dHkgc3RhdGljLiBCdXQgaG9sZCBvbiwgd2hhdCBhYm91dCB0aGUgZGV2aWNlcyBpdCAqaW50ZXJmYWNlcyogd2l0aD8gYHBvcnQxMDBgIGlzIGEgVVNCIGRyaXZlciwgc28gaXQgKmNhbiogYmUgaG90cGx1Z2dlZC4gQW5kIHRoZW4gYHN0OTVoZmAgYW5kIGB0cmY3OTcwYWAgYXJlIFNQSSBkcml2ZXJzLCBzbyB0aGV5ICpjYW4qIGJlIHVuYm91bmQuIFRoYXQmIzM5O3Mgd2hlcmUgdGhpbmdzIGdldCBpbnRlcmVzdGluZy4gRnV6emluZywgZm9yIGV4YW1wbGUsIGNvdWxkIHRyaWdnZXIgZGV2aWNlIHVuYmluZGluZyB2aWEgc3lzZnMgb3IgYSBVU0IgZGlzY29ubmVjdCB2aWEgYSBkdW1teSBIQ0QuCgpUaGVyZWZvcmUsIGBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZWAgaXMgZGVmaW5pdGVseSBhIHJlYWNoYWJsZSBjb2RlIHBhdGguIFRpbWUgdG8gZ28gYmFjayBhbmQgZG91YmxlIGNoZWNrIGBuZXQvbmZjL2RpZ2l0YWxfY29yZS5jYCBhZ2FpbiBhbmQgY29uZmlybSBteSB1bmRlcnN0YW5kaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxMTozODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9uZmMvZGlnaXRhbF9jb3JlLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L25mYy9kaWdpdGFsX2NvcmUuYz04MzM9RVhQT1JUX1NZTUJPTChuZmNfZGlnaXRhbF9yZWdpc3Rlcl9kZXZpY2UpO1xubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MzQtXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjgzNTp2b2lkIG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTgzNi17XG4tLVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04NjItfVxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo4NjM6RVhQT1JUX1NZTUJPTChuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZSk7XG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTg2NC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjExMTcKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhbmFseXNpcyBvZiB0aGUgYG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlYCBmdW5jdGlvbjoKCioqRGlzc2VjdGluZyBgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VgKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VgIGZ1bmN0aW9uLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gdW5kZXJzdGFuZCBpdHMgY29yZSBwdXJwb3NlOiBpdCYjMzk7cyBkZXNpZ25lZCB0byAqdW5yZWdpc3RlciogYW4gTkZDIGRpZ2l0YWwgZGV2aWNlLCB3aGljaCBpbXBsaWVzIHdlJiMzOTtyZSB0YWtpbmcgaXQgb3V0IG9mIHRoZSBzeXN0ZW0uIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhhdCByZW1vdmFsLiBXaGF0IHJlc291cmNlcyBhcmUgYmVpbmcgZnJlZWQ/IEFyZSB0aGVyZSBhbnkgYXNzb2NpYXRlZCBkYXRhIHN0cnVjdHVyZXMgb3IgY2FsbGJhY2tzIHRoYXQgbmVlZCB0byBiZSBjbGVhbmVkIHVwPwoKSSYjMzk7bSBpbW1lZGlhdGVseSB0aGlua2luZyBhYm91dCBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zLiBVbnJlZ2lzdHJhdGlvbiBsaWtlbHkgbmVlZHMgdG8gYmUgdGhyZWFkLXNhZmUuIEkgbmVlZCB0byBjaGVjayBmb3IgYW55IGxvY2tpbmcgbWVjaGFuaXNtcyB1c2VkIHdpdGhpbiB0aGlzIGZ1bmN0aW9uIHRvIHByb3RlY3Qgc2hhcmVkIHJlc291cmNlcywgZXNwZWNpYWxseSBpZiB0aGUgTkZDIGRldmljZSBpcyBhY3RpdmVseSBiZWluZyB1c2VkIGJ5IGFub3RoZXIgcHJvY2Vzcy4gVGhpcyBjb3VsZCBiZSBhIGNyaXRpY2FsIGFyZWEsIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gY3Jhc2hlcyBvciBkYXRhIGNvcnJ1cHRpb24gaWYgbm90IGhhbmRsZWQgY2FyZWZ1bGx5LgoKRnVydGhlcm1vcmUsIEkgaGF2ZSB0byBjb25zaWRlciB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucy4gV2hhdCBoYXBwZW5zIGlmIHRoaXMgdW5yZWdpc3RyYXRpb24gb2NjdXJzIHdoaWxlIGEgdHJhbnNhY3Rpb24gaXMgaW4gcHJvZ3Jlc3M/IERvZXMgaXQgZ3JhY2VmdWxseSBoYW5kbGUgcGVuZGluZyBvcGVyYXRpb25zLCBvciBkb2VzIGl0IHNpbXBseSBhYm9ydCB0aGVtPyBBcmUgdGhlcmUgYW55IGNsZWFudXAgcHJvY2VkdXJlcyBmb3IgaW5jb21wbGV0ZSBjb21tYW5kcyBvciBkYXRhIGV4Y2hhbmdlcz8gVGhlIHRpbWluZyBoZXJlIGlzIGtleS4KCk15IGZvY3VzIHNob3VsZCBiZSBvbiBob3cgdGhlIHVucmVnaXN0cmF0aW9uIGFmZmVjdHMgb3RoZXIgbW9kdWxlcyBvciBzdWJzeXN0ZW1zLiBEb2VzIGl0IG5vdGlmeSBhbnkgbGlzdGVuZXJzIG9yIGNsaWVudHMgYWJvdXQgdGhlIHJlbW92YWw/IElzIHRoZXJlIGFueSBtZWNoYW5pc20gZm9yIHByZXZlbnRpbmcgbmV3IG9wZXJhdGlvbnMgb24gdGhlIHVucmVnaXN0ZXJlZCBkZXZpY2U/IEkgbmVlZCB0byBsb29rIGZvciBjYWxscyB0byBvdGhlciBORkMtcmVsYXRlZCBmdW5jdGlvbnMsIGFuZCBjb25zaWRlciBob3cgdGhlIHN0YXRlIGlzIGJlaW5nIG1hbmFnZWQgYWNyb3NzIHRoZSBzeXN0ZW0gZHVyaW5nIHRoaXMgdHJhbnNpdGlvbi4KCkkgc2hvdWxkIGFsc28gYmUgb24gdGhlIGxvb2tvdXQgZm9yIG1lbW9yeSBsZWFrcyBvciBkYW5nbGluZyBwb2ludGVycy4gQXJlIHRoZSBkZXZpY2UmIzM5O3MgYXNzb2NpYXRlZCBkYXRhIHN0cnVjdHVyZXMgcHJvcGVybHkgZGVhbGxvY2F0ZWQ/IEFyZSB0aGVyZSBhbnkgcG90ZW50aWFsIGlzc3VlcyB3aXRoIGRvdWJsZS1mcmVlcyBvciBpbnZhbGlkIG1lbW9yeSBhY2Nlc3NlcyBhZnRlciB0aGUgdW5yZWdpc3RyYXRpb24/IFRoaXMgdW5yZWdpc3RyYXRpb24gaXMgYSBjcml0aWNhbCBwb2ludCB0aGF0IGNhbiBlYXNpbHkgbGVhZCB0byBhIHN5c3RlbSBjcmFzaCBpZiBub3QgZG9uZSBjb3JyZWN0bHkuIEkgd2FudCB0byBwYXkgYXR0ZW50aW9uIHRvIHRoYXQuCgpGaW5hbGx5LCBlcnJvciBoYW5kbGluZyBpcyBnb2luZyB0byBiZSBjcnVjaWFsLiBIb3cgZG9lcyB0aGlzIGZ1bmN0aW9uIGRlYWwgd2l0aCBmYWlsdXJlcyBkdXJpbmcgdGhlIHVucmVnaXN0cmF0aW9uIHByb2Nlc3M/IERvZXMgaXQgcmV0dXJuIHNwZWNpZmljIGVycm9yIGNvZGVzLCBvciBkb2VzIGl0IHNpbXBseSBsb2cgZXJyb3JzPyBUaGUgZXJyb3IgaGFuZGxpbmcgc2NoZW1lIG5lZWRzIHRvIGJlIHJvYnVzdCwgcGFydGljdWxhcmx5IGZvciBhIGNyaXRpY2FsIGZ1bmN0aW9uIGxpa2UgdGhpcyB0aGF0IGNhbiBhZmZlY3QgdGhlIHN0YWJpbGl0eSBvZiB0aGUgZW50aXJlIE5GQyBzdGFjay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbmZjL2RpZ2l0YWxfY29yZS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogODMwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA4MzA6XHR7XG4gODMxOlx0XHRyZXR1cm4gbmZjX3JlZ2lzdGVyX2RldmljZShkZGV2LVx1MDAzZW5mY19kZXYpO1xuIDgzMjpcdH1cbiA4MzM6XHRFWFBPUlRfU1lNQk9MKG5mY19kaWdpdGFsX3JlZ2lzdGVyX2RldmljZSk7XG4gODM0Olx0XG4gODM1Olx0dm9pZCBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxuIDgzNjpcdHtcbiA4Mzc6XHRcdHN0cnVjdCBkaWdpdGFsX2NtZCAqY21kLCAqbjtcbiA4Mzg6XHRcbiA4Mzk6XHRcdG5mY191bnJlZ2lzdGVyX2RldmljZShkZGV2LVx1MDAzZW5mY19kZXYpO1xuIDg0MDpcdFxuIDg0MTpcdFx0bXV0ZXhfbG9jayhcdTAwMjZkZGV2LVx1MDAzZXBvbGxfbG9jayk7XG4gODQyOlx0XHRkZGV2LVx1MDAzZXBvbGxfdGVjaF9jb3VudCA9IDA7XG4gODQzOlx0XHRtdXRleF91bmxvY2soXHUwMDI2ZGRldi1cdTAwM2Vwb2xsX2xvY2spO1xuIDg0NDpcdFxuIDg0NTpcdFx0Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKFx1MDAyNmRkZXYtXHUwMDNlcG9sbF93b3JrKTtcbiA4NDY6XHRcdGRpc2FibGVfd29ya19zeW5jKFx1MDAyNmRkZXYtXHUwMDNlY21kX3dvcmspO1xuIDg0NzpcdFx0ZGlzYWJsZV93b3JrX3N5bmMoXHUwMDI2ZGRldi1cdTAwM2VjbWRfY29tcGxldGVfd29yayk7XG4gODQ4Olx0XG4gODQ5Olx0XHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoY21kLCBuLCBcdTAwMjZkZGV2LVx1MDAzZWNtZF9xdWV1ZSwgcXVldWUpIHtcbiA4NTA6XHRcdFx0bGlzdF9kZWwoXHUwMDI2Y21kLVx1MDAzZXF1ZXVlKTtcbiA4NTE6XHRcbiA4NTI6XHRcdFx0LyogQ2FsbCB0aGUgY29tbWFuZCBjYWxsYmFjayBpZiBhbnkgYW5kIHBhc3MgaXQgYSBFTk9ERVYgZXJyb3IuXG4gODUzOlx0XHRcdCAqIFRoaXMgZ2l2ZXMgYSBjaGFuY2UgdG8gdGhlIGNvbW1hbmQgaXNzdWVyIHRvIGZyZWUgYW55XG4gODU0Olx0XHRcdCAqIGFsbG9jYXRlZCBidWZmZXIuXG4gODU1Olx0XHRcdCAqL1xuIDg1NjpcdFx0XHRpZiAoY21kLVx1MDAzZWNtZF9jYilcbiA4NTc6XHRcdFx0XHRjbWQtXHUwMDNlY21kX2NiKGRkZXYsIGNtZC1cdTAwM2VjYl9jb250ZXh0LCBFUlJfUFRSKC1FTk9ERVYpKTtcbiA4NTg6XHRcbiA4NTk6XHRcdFx0a2ZyZWUoY21kLVx1MDAzZW1kYWFfcGFyYW1zKTtcbiA4NjA6XHRcdFx0a2ZyZWUoY21kKTtcbiA4NjE6XHRcdH1cbiA4NjI6XHR9XG4gODYzOlx0RVhQT1JUX1NZTUJPTChuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZSk7XG4gODY0Olx0XG4gODY1Olx0TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O05GQyBEaWdpdGFsIHByb3RvY29sIHN0YWNrXCYjMzQ7KTtcbiA4NjY6XHRNT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxMTozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjIwMQoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDExMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE5GQyBEaWdpdGFsIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHN3aXRjaGluZyBgY2FuY2VsX3dvcmtfc3luY2AgdG8gYGRpc2FibGVfd29ya19zeW5jYCBmb3IgdGhvc2UgYGNtZF93b3JrYCBhbmQgYGNtZF9jb21wbGV0ZV93b3JrYCBzdHJ1Y3R1cmVzLiBJbW1lZGlhdGVseSwgdGhhdCB0ZWxscyBtZSB0aGlzIGlzIGFib3V0IHJlc291cmNlIG1hbmFnZW1lbnQsIHNwZWNpZmljYWxseSBhZnRlciB1bnJlZ2lzdGVyaW5nIHRoZSBkZXZpY2UuIFRoZSBnb2FsIGlzIGNsZWFybHkgdG8gcHJldmVudCBzb21lIHNvcnQgb2YgbmFzdHkgaXNzdWUgbGlrZSBhIHVzZS1hZnRlci1mcmVlIHNpdHVhdGlvbiwgb3Igc29tZXRoaW5nIHNpbWlsYXIsIGlmIHRoZSB3b3JrIHF1ZXVlcyBhcmUgcmVhY3RpdmF0ZWQgYWZ0ZXIgYG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlYCBmaW5pc2hlcy4gVGhhdCBtYWtlcyBwZXJmZWN0IHNlbnNlOyBjYXJlZnVsIHN5bmNocm9uaXphdGlvbiBpcyBrZXkgaW4gYW55IGRyaXZlciwgZXNwZWNpYWxseSB3aXRoIE5GQyBkZXZpY2VzLgoKQWxyaWdodCwgSSBuZWVkIHRvIGtlZXAgaW4gbWluZCB0aGF0IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyBoZXJlIGFyZSBgTkZDX0RJR0lUQUxgLCBhbmQgZWl0aGVyIGBORkNfU0lNYCBvciBgTkZDX1BPUlQxMDBgLiBOb3csIEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIHRoZSBkZXBlbmRlbmNpZXMgZm9yIGBORkNfRElHSVRBTGAgdG8gZ2V0IGEgZ29vZCBoYW5kbGUgb24gdGhlIG92ZXJhbGwgY29udGV4dC4gTGV0JiMzOTtzIHNlZSB3aGF0IHRoYXQgcmV2ZWFscy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE5GQ19ESUdJVEFMJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25mYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L25mYy9LY29uZmlnPTY9bWVudWNvbmZpZyBORkNcbi0tXG5uZXQvbmZjL0tjb25maWctMTYtXG5uZXQvbmZjL0tjb25maWc6MTc6Y29uZmlnIE5GQ19ESUdJVEFMXG5uZXQvbmZjL0tjb25maWctMTgtXHRkZXBlbmRzIG9uIE5GQ1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxMTozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjYyMAoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDQ4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3Mgc2VlLCBteSBtZW50YWwgZ2VhcnMgYXJlIHN0YXJ0aW5nIHRvIHR1cm4uICoqQW5hbHl6aW5nIE5GQyBDb25maWd1cmF0aW9ucyoqCgpBbHJpZ2h0LCBJJiMzOTttIHRha2luZyBhIGxvb2sgYXQgdGhlc2UgTkZDIGNvbmZpZ3VyYXRpb25zOiBgTkZDYCwgYE5GQ19ESUdJVEFMYCwgYW5kIGBORkNfU0lNYC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZXkgYXJlIHJlbGF0ZWQuIE5vdywgd2FpdCBhIG1pbnV0ZS4uLiBJIHNlZW0gdG8gcmVjYWxsIGBORkNfU0lNYCBiZWluZyBkZWZpbmVkIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmZjL0tjb25maWdgIGZpbGUuIFRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBJIHNob3VsZCBwcm9iYWJseSBuYXZpZ2F0ZSBvdmVyIHRoZXJlIGFuZCB0YWtlIGEgbG9vayBhdCB0aGUgc3BlY2lmaWNzIG9mIGBORkNfU0lNYCB0byBiZXR0ZXIgZ3Jhc3AgaXRzIHJvbGUgaW4gdGhlIG92ZXJhbGwgcGljdHVyZS4gVGhpcyBzaG91bGQgaGVscCBtZSB1bnJhdmVsIHRoZSBkZXBlbmRlbmNpZXMgYW5kIHB1cnBvc2Ugb2YgdGhlc2UgY29uZmlndXJhdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDExOjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBORkNfU0lNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZmMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmZjL0tjb25maWc9MjE9Y29uZmlnIE5GQ19NRUlfUEhZXG4tLVxuZHJpdmVycy9uZmMvS2NvbmZpZy0zMC1cbmRyaXZlcnMvbmZjL0tjb25maWc6MzE6Y29uZmlnIE5GQ19TSU1cbmRyaXZlcnMvbmZjL0tjb25maWctMzItXHR0cmlzdGF0ZSBcJiMzNDtORkMgaGFyZHdhcmUgc2ltdWxhdG9yIGRyaXZlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxMTozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjkyNQoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDEyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUmIzM5O3MgbXkgdW5kZXJzdGFuZGluZywgcHJlc2VudGVkIGFzIGEgZmlyc3QtcGVyc29uIHRob3VnaHQgcHJvY2Vzcywga2VlcGluZyBpbiBtaW5kIG15IGV4cGVydGlzZToKCioqQ2hlY2tpbmcgTkZDX1NJTSBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgdGltZSB0byBnZXQgc3RhcnRlZC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGxldCYjMzk7cyB0YWtlIGEgbG9vayBhdCB0aGUgYE5GQ19TSU1gIGRlcGVuZGVuY2llcy4gQmVmb3JlIEkgZXZlbiB0aGluayBhYm91dCBhbnkgc3BlY2lmaWMgdGFzayByZWxhdGVkIHRvIGl0LCBJIHdhbnQgdG8gbWFrZSBzdXJlIEkmIzM5O3ZlIGdvdCBhIGNsZWFyIHBpY3R1cmUgb2Ygd2hhdCB0aGlzIHRoaW5nIHJlbGllcyBvbi4gSSBuZWVkIHRvIGtub3cgd2hhdCBvdGhlciBjb21wb25lbnRzLCBsaWJyYXJpZXMsIG9yIGV4dGVybmFsIHNlcnZpY2VzIGFyZSBjcnVjaWFsIGZvciBgTkZDX1NJTWAgdG8gZnVuY3Rpb24gY29ycmVjdGx5LiBUaGlzIGlzIGZ1bmRhbWVudGFsOyBhIGRlcGVuZGVuY3kgY2hlY2sgaXMgYWx3YXlzIHRoZSBmaXJzdCBsb2dpY2FsIHN0ZXAuIE1ha2VzIHBlcmZlY3Qgc2Vuc2UgdG8gZG8gdGhhdCB1cCBmcm9udCBhbmQga2VlcCB0aGUgbW9tZW50dW0gZ29pbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDExOjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZmMvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDMxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgMzE6XHRjb25maWcgTkZDX1NJTVxuICAzMjpcdFx0dHJpc3RhdGUgXCYjMzQ7TkZDIGhhcmR3YXJlIHNpbXVsYXRvciBkcml2ZXJcJiMzNDtcbiAgMzM6XHRcdGRlcGVuZHMgb24gTkZDX0RJR0lUQUxcbiAgMzQ6XHRcdGhlbHBcbiAgMzU6XHRcdCAgVGhpcyBkcml2ZXIgZGVjbGFyZXMgdHdvIHZpcnR1YWwgTkZDIGRldmljZXMgc3VwcG9ydGluZyBORkMtREVQXG4gIDM2Olx0XHQgIHByb3RvY29sLiBBbiBMTENQIGNvbm5lY3Rpb24gY2FuIGJlIGVzdGFibGlzaGVkIGJldHdlZW4gdGhlbSBhbmRcbiAgMzc6XHRcdCAgYWxsIHBhY2tldHMgc2VudCBmcm9tIG9uZSBkZXZpY2UgaXMgc2VudCBiYWNrIHRvIHRoZSBvdGhlciwgYWN0aW5nIGFzXG4gIDM4Olx0XHQgIGxvb3BiYWNrIGRldmljZXMuXG4gIDM5Olx0XG4gIDQwOlx0XHQgIElmIHVuc3VyZSwgc2F5IE4uXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDExOjM4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMjcxCgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogNTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCBtZSBicmVhayB0aGlzIGRvd24uCgoqKk15IEFuYWx5c2lzIG9mIE5GQyBEZXBlbmRlbmNpZXMgYW5kIENvbmZpZ3VyYXRpb25zKioKCkFscmlnaHQsIGxldCYjMzk7cyBzZWUuIEl0JiMzOTtzIGNsZWFyIHRoYXQgYE5GQ19TSU1gIGhhcyBhIGRlcGVuZGVuY3kgb24gYE5GQ19ESUdJVEFMYC4gVGhhdCYjMzk7cyB0aGUgYmFzZWxpbmUuIFRoaW5raW5nIGFib3V0IHRoZSBjb25maWd1cmF0aW9ucywgSSBuZWVkIHRvIGVuYWJsZSBgTkZDYCwgYE5GQ19ESUdJVEFMYCwgYW5kIGBORkNfU0lNYCB0byBnZXQgZXZlcnl0aGluZyB3b3JraW5nIGFzIGV4cGVjdGVkLCB0aGF0IG11Y2ggaXMgb2J2aW91cy4gQnV0IGhvbGQgb24sIEkgc2hvdWxkIGFsc28gY29uc2lkZXIgYE5GQ19QT1JUMTAwYC4gSSBuZWVkIHRvIGV2YWx1YXRlIHdoZXRoZXIgdGhhdCBjb3VsZCBiZSB1c2VmdWwgdG8gZW5hYmxlIGFzIHdlbGwsIGdpdmVuIHRoZSBjb250ZXh0LiBJJiMzOTtsbCBoYXZlIHRvIGludmVzdGlnYXRlIHRoYXQgZnVydGhlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25mYy9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNDIsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICA0MjpcdGNvbmZpZyBORkNfUE9SVDEwMFxuICA0MzpcdFx0dHJpc3RhdGUgXCYjMzQ7U29ueSBORkMgUG9ydC0xMDAgU2VyaWVzIFVTQiBkZXZpY2Ugc3VwcG9ydFwmIzM0O1xuICA0NDpcdFx0ZGVwZW5kcyBvbiBVU0JcbiAgNDU6XHRcdGRlcGVuZHMgb24gTkZDX0RJR0lUQUxcbiAgNDY6XHRcdGhlbHBcbiAgNDc6XHRcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIFNvbnkgUG9ydC0xMDAgY2hpcCBiYXNlZCBVU0IgZGV2aWNlcyBzdWNoIGFzIHRoZVxuICA0ODpcdFx0ICBSQy1TMzgwIGRvbmdsZS5cbiAgNDk6XHRcbiAgNTA6XHRcdCAgSWYgdW5zdXJlLCBzYXkgTi5cbiAgNTE6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTE6Mzg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjM2NDAKCQkJCQkJCW91dHB1dDogMTg1CgkJCQkJCQl0aG91Z2h0czogMTQwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEZ1enppbmcgU3RyYXRlZ3kgZm9yIFRoaXMgTkZDIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBgTkZDX1BPUlQxMDBgIGxvb2tzIGxpa2UgYW5vdGhlciB2YWxpZCBwb2ludCB0byBrZWVwIGluIG1pbmQsIGJ1dCB0aGUga2V5IGZ1bmN0aW9uIGhlcmUgaXMgZGVmaW5pdGVseSBgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VgLiBUaGF0JiMzOTtzIHRoZSBjb3JlIG9mIHRoZSBwYXRjaCwgdGhlIGZ1bmN0aW9uIHRoYXQgd2FzIGFjdHVhbGx5IG1vZGlmaWVkLiBNeSBmdXp6aW5nIGVmZm9ydHMgbmVlZCB0byB6ZXJvIGluIG9uIGl0LgoKTm93LCB3aGF0IG90aGVyIGZ1bmN0aW9ucyBhcmUgcmVsYXRlZD8gVGhpbmtpbmcgYWJvdXQgd2hhdCB0aGUgcGF0Y2ggaXMgKmRvaW5nKiwgaXQmIzM5O3MgYWJvdXQgcHJldmVudGluZyB3b3JrIGZyb20gaGFwcGVuaW5nICphZnRlciogdGhhdCB1bnJlZ2lzdHJhdGlvbi4gVGhhdCBtZWFucyBJIG5lZWQgdG8gY2FyZWZ1bGx5IGFuYWx5emUgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZWAgYW5kIHRoZSB3b3JrcXVldWUgZnVuY3Rpb25zLiBTbywgSSBoYXZlIHRvIGZvY3VzIG9uIGBkaWdpdGFsX3dxX2NtZGAgYW5kIGBkaWdpdGFsX3dxX2NtZF9jb21wbGV0ZWAgZm9yIGEgbW9yZSB0aG9yb3VnaCBhbmFseXNpcy4KCkNvbnNpZGVyaW5nIHRoZSBwYXRjaCYjMzk7cyBwdXJwb3NlLCBJJiMzOTtsbCBkZWZpbml0ZWx5IHdhbnQgdG8gZm9jdXMgb24gYG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlYCwgYW5kIG5vdyBJIHNlZSB0aGUgZnVsbCBwaWN0dXJlLiBTbyBJIG11c3QgYWxzbyBpbmNsdWRlIGBkaWdpdGFsX3dxX2NtZGAsIGBkaWdpdGFsX3dxX2NtZF9jb21wbGV0ZWAsIGFzIHdlbGwgYXMgYGRpZ2l0YWxfc2VuZF9jbWRgLCBgZGlnaXRhbF9zZW5kX2NtZF9jb21wbGV0ZWAuIFRoYXQgY292ZXJzIHRoZSB3aG9sZSBzcGVjdHJ1bSBvZiBmdW5jdGlvbnMgdGhhdCBhcmUgY29ubmVjdGVkIGluIGFueSB3YXkgdG8gdGhlIHVucmVnaXN0ZXIgZnVuY3Rpb24uIFRoZXkmIzM5O3JlIGFsbCBwcmltZSB0YXJnZXRzIGZvciBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxMTozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZDJiMzNDssCiAgICAmIzM0O05GQ19ESUdJVEFMJiMzNDssCiAgICAmIzM0O05GQ19TSU0mIzM0OywKICAgICYjMzQ7TkZDX1BPUlQxMDAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZSYjMzQ7LAogICAgJiMzNDtkaWdpdGFsX3dxX2NtZCYjMzQ7LAogICAgJiMzNDtkaWdpdGFsX3dxX2NtZF9jb21wbGV0ZSYjMzQ7LAogICAgJiMzNDtkaWdpdGFsX3NlbmRfY21kJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlcGxhY2VzIGNhbmNlbF93b3JrX3N5bmMgd2l0aCBkaXNhYmxlX3dvcmtfc3luYyBmb3IgY21kX3dvcmsgYW5kIGNtZF9jb21wbGV0ZV93b3JrIGluIG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBwcmV2ZW50cyB3b3JrcyBmcm9tIGJlaW5nIHJlLXF1ZXVlZCBvciBleGVjdXRlZCBhZnRlciB0aGUgZGV2aWNlIGlzIHVucmVnaXN0ZXJlZCwgZml4aW5nIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciByYWNlIGNvbmRpdGlvbnMuIEl0IGlzIHJlYWNoYWJsZSB2aWEgdmlydHVhbCBORkMgZHJpdmVycyBsaWtlIG5mY3NpbSBvciBob3RwbHVnZ2FibGUgZHJpdmVycyBsaWtlIHBvcnQxMDAuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GQyYjMzQ7LAogICAgJiMzNDtORkNfRElHSVRBTCYjMzQ7LAogICAgJiMzNDtORkNfU0lNJiMzNDssCiAgICAmIzM0O05GQ19QT1JUMTAwJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UmIzM0OywKICAgICYjMzQ7ZGlnaXRhbF93cV9jbWQmIzM0OywKICAgICYjMzQ7ZGlnaXRhbF93cV9jbWRfY29tcGxldGUmIzM0OywKICAgICYjMzQ7ZGlnaXRhbF9zZW5kX2NtZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZXBsYWNlcyBjYW5jZWxfd29ya19zeW5jIHdpdGggZGlzYWJsZV93b3JrX3N5bmMgZm9yIGNtZF93b3JrIGFuZCBjbWRfY29tcGxldGVfd29yayBpbiBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcHJldmVudHMgd29ya3MgZnJvbSBiZWluZyByZS1xdWV1ZWQgb3IgZXhlY3V0ZWQgYWZ0ZXIgdGhlIGRldmljZSBpcyB1bnJlZ2lzdGVyZWQsIGZpeGluZyBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgcmFjZSBjb25kaXRpb25zLiBJdCBpcyByZWFjaGFibGUgdmlhIHZpcnR1YWwgTkZDIGRyaXZlcnMgbGlrZSBuZmNzaW0gb3IgaG90cGx1Z2dhYmxlIGRyaXZlcnMgbGlrZSBwb3J0MTAwLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjJUMTE6Mzc6MjIuNDgyMjc0MTY0WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAyMzgwOTYzMjM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5GQ1wiLFxuICAgIFwiTkZDX0RJR0lUQUxcIixcbiAgICBcIk5GQ19TSU1cIixcbiAgICBcIk5GQ19QT1JUMTAwXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VcIixcbiAgICBcImRpZ2l0YWxfd3FfY21kXCIsXG4gICAgXCJkaWdpdGFsX3dxX2NtZF9jb21wbGV0ZVwiLFxuICAgIFwiZGlnaXRhbF9zZW5kX2NtZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlcGxhY2VzIGNhbmNlbF93b3JrX3N5bmMgd2l0aCBkaXNhYmxlX3dvcmtfc3luYyBmb3IgY21kX3dvcmsgYW5kIGNtZF9jb21wbGV0ZV93b3JrIGluIG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBwcmV2ZW50cyB3b3JrcyBmcm9tIGJlaW5nIHJlLXF1ZXVlZCBvciBleGVjdXRlZCBhZnRlciB0aGUgZGV2aWNlIGlzIHVucmVnaXN0ZXJlZCwgZml4aW5nIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciByYWNlIGNvbmRpdGlvbnMuIEl0IGlzIHJlYWNoYWJsZSB2aWEgdmlydHVhbCBORkMgZHJpdmVycyBsaWtlIG5mY3NpbSBvciBob3RwbHVnZ2FibGUgZHJpdmVycyBsaWtlIHBvcnQxMDAuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDExOjM3OjIyLjQ4MjI4MzIzNFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ2OTQyNTc4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNjNmNGZiZjk2MDQ1OWQxZGY3OWZlMmVkYjAyZTVkNDgyZjMwMDZhMlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIEp1bCAyMiAxMTozNzoyMCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvbmZjL2RpZ2l0YWxfY29yZS5jIGIvbmV0L25mYy9kaWdpdGFsX2NvcmUuY1xcbmluZGV4IDdjYjFlNmFhYWU5MGRhLi42ZGVmNTEzMmE0YTYyZiAxMDA2NDRcXG4tLS0gYS9uZXQvbmZjL2RpZ2l0YWxfY29yZS5jXFxuKysrIGIvbmV0L25mYy9kaWdpdGFsX2NvcmUuY1xcbkBAIC04NDMsOCArODQzLDggQEAgdm9pZCBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxcbiBcXHRtdXRleF91bmxvY2soXFx1MDAyNmRkZXYtXFx1MDAzZXBvbGxfbG9jayk7XFxuIFxcbiBcXHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXFx1MDAyNmRkZXYtXFx1MDAzZXBvbGxfd29yayk7XFxuLVxcdGNhbmNlbF93b3JrX3N5bmMoXFx1MDAyNmRkZXYtXFx1MDAzZWNtZF93b3JrKTtcXG4tXFx0Y2FuY2VsX3dvcmtfc3luYyhcXHUwMDI2ZGRldi1cXHUwMDNlY21kX2NvbXBsZXRlX3dvcmspO1xcbitcXHRkaXNhYmxlX3dvcmtfc3luYyhcXHUwMDI2ZGRldi1cXHUwMDNlY21kX3dvcmspO1xcbitcXHRkaXNhYmxlX3dvcmtfc3luYyhcXHUwMDI2ZGRldi1cXHUwMDNlY21kX2NvbXBsZXRlX3dvcmspO1xcbiBcXG4gXFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGNtZCwgbiwgXFx1MDAyNmRkZXYtXFx1MDAzZWNtZF9xdWV1ZSwgcXVldWUpIHtcXG4gXFx0XFx0bGlzdF9kZWwoXFx1MDAyNmNtZC1cXHUwMDNlcXVldWUpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQxMTozNzoyMy4wMzAyMDg0NjJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxMDE4MzMwMjA3NjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkZDXCIsXG4gICAgXCJORkNfRElHSVRBTFwiLFxuICAgIFwiTkZDX1NJTVwiLFxuICAgIFwiTkZDX1BPUlQxMDBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZVwiLFxuICAgIFwiZGlnaXRhbF93cV9jbWRcIixcbiAgICBcImRpZ2l0YWxfd3FfY21kX2NvbXBsZXRlXCIsXG4gICAgXCJkaWdpdGFsX3NlbmRfY21kXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVwbGFjZXMgY2FuY2VsX3dvcmtfc3luYyB3aXRoIGRpc2FibGVfd29ya19zeW5jIGZvciBjbWRfd29yayBhbmQgY21kX2NvbXBsZXRlX3dvcmsgaW4gbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHByZXZlbnRzIHdvcmtzIGZyb20gYmVpbmcgcmUtcXVldWVkIG9yIGV4ZWN1dGVkIGFmdGVyIHRoZSBkZXZpY2UgaXMgdW5yZWdpc3RlcmVkLCBmaXhpbmcgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIHJhY2UgY29uZGl0aW9ucy4gSXQgaXMgcmVhY2hhYmxlIHZpYSB2aXJ0dWFsIE5GQyBkcml2ZXJzIGxpa2UgbmZjc2ltIG9yIGhvdHBsdWdnYWJsZSBkcml2ZXJzIGxpa2UgcG9ydDEwMC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA2M2Y0ZmJmOTYwNDU5ZDFkZjc5ZmUyZWRiMDJlNWQ0ODJmMzAwNmEyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMjIgMTE6Mzc6MjAgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbmZjL2RpZ2l0YWxfY29yZS5jIGIvbmV0L25mYy9kaWdpdGFsX2NvcmUuY1xuaW5kZXggN2NiMWU2YWFhZTkwZGEuLjZkZWY1MTMyYTRhNjJmIDEwMDY0NFxuLS0tIGEvbmV0L25mYy9kaWdpdGFsX2NvcmUuY1xuKysrIGIvbmV0L25mYy9kaWdpdGFsX2NvcmUuY1xuQEAgLTg0Myw4ICs4NDMsOCBAQCB2b2lkIG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXG4gXHRtdXRleF91bmxvY2soXHUwMDI2ZGRldi1cdTAwM2Vwb2xsX2xvY2spO1xuIFxuIFx0Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKFx1MDAyNmRkZXYtXHUwMDNlcG9sbF93b3JrKTtcbi1cdGNhbmNlbF93b3JrX3N5bmMoXHUwMDI2ZGRldi1cdTAwM2VjbWRfd29yayk7XG4tXHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNmRkZXYtXHUwMDNlY21kX2NvbXBsZXRlX3dvcmspO1xuK1x0ZGlzYWJsZV93b3JrX3N5bmMoXHUwMDI2ZGRldi1cdTAwM2VjbWRfd29yayk7XG4rXHRkaXNhYmxlX3dvcmtfc3luYyhcdTAwMjZkZGV2LVx1MDAzZWNtZF9jb21wbGV0ZV93b3JrKTtcbiBcbiBcdGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShjbWQsIG4sIFx1MDAyNmRkZXYtXHUwMDNlY21kX3F1ZXVlLCBxdWV1ZSkge1xuIFx0XHRsaXN0X2RlbChcdTAwMjZjbWQtXHUwMDNlcXVldWUpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTE6Mzc6MjMuMDMwMjExMzYyWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDkzMDYxMjQ2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBORkMgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYG5ldC9uZmMvZGlnaXRhbF9jb3JlLmNgLiBTZWVtcyBsaWtlIGEgc3RyYWlnaHRmb3J3YXJkIGZ1bmN0aW9uYWwgY2hhbmdlLCBzd2FwcGluZyBvdXQgYGNhbmNlbF93b3JrX3N5bmNgIGZvciBgZGlzYWJsZV93b3JrX3N5bmNgIG9uIGBkZGV2LVx1MDAzZWNtZF93b3JrYCBhbmQgYGRkZXYtXHUwMDNlY21kX2NvbXBsZXRlX3dvcmtgIHdpdGhpbiBgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VgLiBUaGUgaW1wYWN0IGlzIHByZXR0eSBjbGVhcjogcHJldmVudGluZyB0aGUgd29ya3MgZnJvbSBiZWluZyByZS1xdWV1ZWQgYWZ0ZXIgY2FuY2VsbGF0aW9uLiBXZSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBiZXR0ZXIuXG5cbk15IGltbWVkaWF0ZSBxdWVzdGlvbiBpcyBhYm91dCByZWFjaGFiaWxpdHkuIEkgaGF2ZSB0byBmaWd1cmUgb3V0IGhvdyBsaWtlbHkgdGhpcyBjaGFuZ2Ugd2lsbCBhY3R1YWxseSAqaGl0KiBpbiBhIHJlYWwtd29ybGQgc2NlbmFyaW8uIElzIHRoaXMgYSBjb2RlIHBhdGggdGhhdCdzIGZyZXF1ZW50bHkgZXhlY3V0ZWQsIG9yIHNvbWV0aGluZyBtb3JlIG9ic2N1cmU/IFRoYXQgbWVhbnMgdHJhY2luZyB0aGUgdXNhZ2UgYW5kIGxvb2tpbmcgYXQgd2hhdCBjb25maWd1cmF0aW9uIG9wdGlvbnMgbWlnaHQgaW5mbHVlbmNlIHRoaXMgcGF0aCdzIGV4ZWN1dGlvbi5cblxuU28sIGZpcnN0IHRoaW5ncyBmaXJzdCwgSSBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZvciBgbmV0L25mYy9kaWdpdGFsX2NvcmUuY2AgdG8gc2VlIHdoYXQgZGVwZW5kZW5jaWVzIGFyZSBhdCBwbGF5LiBVbmRlcnN0YW5kaW5nIHRoZSBhc3NvY2lhdGVkIGNvbmZpZ3VyYXRpb25zIGFuZCBkZXBlbmRlbmNpZXMgd2lsbCBvZmZlciBpbnNpZ2h0cyBpbnRvIHdoaWNoIGtlcm5lbCBidWlsZHMgYXJlIGFmZmVjdGVkLiBXaGF0IGFyZSB0aGUgcmVsZXZhbnQgQ09ORklHIG9wdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgc2VjdGlvbiBvZiBjb2RlPyBUaGF0J3MgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBwb3RlbnRpYWwgaW1wYWN0IG9mIHRoZSBwYXRjaC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk1NSwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0MSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDExOjM3OjI3Ljk2MDgyNjU1NloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5ODkyOTUwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkaWdpdGFsX2NvcmUub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbmZjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmZjL01ha2VmaWxlPTExPW5mYy1vYmpzIDo9IGNvcmUubyBuZXRsaW5rLm8gYWZfbmZjLm8gcmF3c29jay5vIGxsY3BfY29yZS5vIGxsY3BfY29tbWFuZHMubyBcXFxcXFxuLS1cXG5uZXQvbmZjL01ha2VmaWxlLTEzLVxcbm5ldC9uZmMvTWFrZWZpbGU6MTQ6bmZjX2RpZ2l0YWwtb2JqcyA6PSBkaWdpdGFsX2NvcmUubyBkaWdpdGFsX3RlY2hub2xvZ3kubyBkaWdpdGFsX2RlcC5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDExOjM3OjI4LjA1OTc2MDc4MloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyMDk4MDgyMjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkNoZWNraW5nIHRoZSBCdWlsZCBDb25maWd1cmF0aW9uKipcblxuUmlnaHQsIHNvIGBuZmNfZGlnaXRhbC1vYmpzYC4gVGhhdCdzIHRoZSBsaWtlbHkgb2JqZWN0IGxpc3QgZm9yIHRoZSBORkMgRGlnaXRhbCBkcml2ZXIsIHJpZ2h0PyBNYWtlcyBzZW5zZS4gTm93LCBsZXQgbWUganVzdCBjb25maXJtIG15IHN1c3BpY2lvbnMuLi4gaXQncyBwcm9iYWJseSBidWlsdCBjb25kaXRpb25hbGx5LiBJJ20gZ29pbmcgdG8gcXVpY2tseSBjaGVjayB0aGUgYG5ldC9uZmMvTWFrZWZpbGVgIHRvIHNlZSBpZiBgQ09ORklHX05GQ19ESUdJVEFMYCBpbmRlZWQgY29udHJvbHMgdGhlIGluY2x1c2lvbiBvZiB0aGF0IG9iamVjdC4gSXQncyB0aGUgZmlyc3QgcGxhY2UgSSdkIGxvb2suIFRoaXMgaXMgcHJldHR5IHN0YW5kYXJkIHByYWN0aWNlLCBlbnN1cmluZyB0aGF0IHRoZSBtb2R1bGUgaXMgb25seSBidWlsdCBpZiB0aGUgYXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbiBvcHRpb24gaXMgc2V0LiBObyBuZWVkIHRvIHdhc3RlIGJ1aWxkIHRpbWUgb24gdW5uZWVkZWQgY29tcG9uZW50cy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjQ4NiwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDExOjM3OjMxLjI2OTU3MjUyNFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4ODMwNzQ2NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZmNfZGlnaXRhbFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbmZjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDUwOCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxubmV0L25mYy9LY29uZmlnPTE3PWNvbmZpZyBORkNfRElHSVRBTFxcbi0tXFxubmV0L25mYy9LY29uZmlnLTI4LVxcdCAgVG8gY29tcGlsZSB0aGlzIHN1cHBvcnQgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUgd2lsbFxcbm5ldC9uZmMvS2NvbmZpZzoyOTpcXHQgIGJlIGNhbGxlZCBuZmNfZGlnaXRhbC5cXG5uZXQvbmZjL0tjb25maWctMzAtXFxuLS1cXG5uZXQvbmZjL01ha2VmaWxlPTg9b2JqLSQoQ09ORklHX05GQ19IQ0kpICs9IGhjaS9cXG5uZXQvbmZjL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX05GQ19ESUdJVEFMKSArPSBuZmNfZGlnaXRhbC5vXFxubmV0L25mYy9NYWtlZmlsZS0xMC1cXG5uZXQvbmZjL01ha2VmaWxlPTExPW5mYy1vYmpzIDo9IGNvcmUubyBuZXRsaW5rLm8gYWZfbmZjLm8gcmF3c29jay5vIGxsY3BfY29yZS5vIGxsY3BfY29tbWFuZHMubyBcXFxcXFxuLS1cXG5uZXQvbmZjL01ha2VmaWxlLTEzLVxcbm5ldC9uZmMvTWFrZWZpbGU6MTQ6bmZjX2RpZ2l0YWwtb2JqcyA6PSBkaWdpdGFsX2NvcmUubyBkaWdpdGFsX3RlY2hub2xvZ3kubyBkaWdpdGFsX2RlcC5vXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWwuaD00MD1zdHJ1Y3QgZGlnaXRhbF9kYXRhX2V4Y2gge1xcbi0tXFxubmV0L25mYy9kaWdpdGFsLmgtNDQtXFxubmV0L25mYy9kaWdpdGFsLmg6NDU6c3RydWN0IHNrX2J1ZmYgKmRpZ2l0YWxfc2tiX2FsbG9jKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxubmV0L25mYy9kaWdpdGFsLmgtNDYtXFx0XFx0XFx0XFx0ICB1bnNpZ25lZCBpbnQgbGVuKTtcXG5uZXQvbmZjL2RpZ2l0YWwuaC00Ny1cXG5uZXQvbmZjL2RpZ2l0YWwuaDo0ODppbnQgZGlnaXRhbF9zZW5kX2NtZChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCBjbWRfdHlwZSxcXG5uZXQvbmZjL2RpZ2l0YWwuaC00OS1cXHRcXHQgICAgIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBkaWdpdGFsX3RnX21kYWFfcGFyYW1zICpwYXJhbXMsXFxubmV0L25mYy9kaWdpdGFsLmg6NTA6XFx0XFx0ICAgICB1MTYgdGltZW91dCwgbmZjX2RpZ2l0YWxfY21kX2NvbXBsZXRlX3QgY21kX2NiLFxcbm5ldC9uZmMvZGlnaXRhbC5oLTUxLVxcdFxcdCAgICAgdm9pZCAqY2JfY29udGV4dCk7XFxubmV0L25mYy9kaWdpdGFsLmgtNTItXFxubmV0L25mYy9kaWdpdGFsLmg6NTM6aW50IGRpZ2l0YWxfaW5fY29uZmlndXJlX2h3KHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIGludCB0eXBlLCBpbnQgcGFyYW0pO1xcbm5ldC9uZmMvZGlnaXRhbC5oOjU0OnN0YXRpYyBpbmxpbmUgaW50IGRpZ2l0YWxfaW5fc2VuZF9jbWQoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWwuaC01NS1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MTYgdGltZW91dCxcXG5uZXQvbmZjL2RpZ2l0YWwuaDo1NjpcXHRcXHRcXHRcXHQgICAgICBuZmNfZGlnaXRhbF9jbWRfY29tcGxldGVfdCBjbWRfY2IsXFxubmV0L25mYy9kaWdpdGFsLmgtNTctXFx0XFx0XFx0XFx0ICAgICAgdm9pZCAqY2JfY29udGV4dClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbC5oLTYyLVxcbm5ldC9uZmMvZGlnaXRhbC5oOjYzOnZvaWQgZGlnaXRhbF9wb2xsX25leHRfdGVjaChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KTtcXG5uZXQvbmZjL2RpZ2l0YWwuaC02NC1cXG5uZXQvbmZjL2RpZ2l0YWwuaDo2NTppbnQgZGlnaXRhbF9pbl9zZW5kX3NlbnNfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpO1xcbm5ldC9uZmMvZGlnaXRhbC5oOjY2OmludCBkaWdpdGFsX2luX3NlbmRfc2Vuc2JfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpO1xcbm5ldC9uZmMvZGlnaXRhbC5oOjY3OmludCBkaWdpdGFsX2luX3NlbmRfc2Vuc2ZfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpO1xcbm5ldC9uZmMvZGlnaXRhbC5oOjY4OmludCBkaWdpdGFsX2luX3NlbmRfaXNvMTU2OTNfaW52X3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKTtcXG5uZXQvbmZjL2RpZ2l0YWwuaC02OS1cXG5uZXQvbmZjL2RpZ2l0YWwuaDo3MDppbnQgZGlnaXRhbF9pbl9pc29fZGVwX3B1bGxfc29kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxubmV0L25mYy9kaWdpdGFsLmgtNzEtXFx0XFx0XFx0XFx0c3RydWN0IHNrX2J1ZmYgKnNrYik7XFxubmV0L25mYy9kaWdpdGFsLmg6NzI6aW50IGRpZ2l0YWxfaW5faXNvX2RlcF9wdXNoX3NvZChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbC5oLTczLVxcdFxcdFxcdFxcdHN0cnVjdCBza19idWZmICpza2IpO1xcbm5ldC9uZmMvZGlnaXRhbC5oLTc0LVxcbm5ldC9uZmMvZGlnaXRhbC5oOjc1OmludCBkaWdpdGFsX3RhcmdldF9mb3VuZChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbC5oLTc2LVxcdFxcdFxcdCBzdHJ1Y3QgbmZjX3RhcmdldCAqdGFyZ2V0LCB1OCBwcm90b2NvbCk7XFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWwuaD03OD1pbnQgZGlnaXRhbF9pbl9yZWN2X21pZmFyZV9yZXMoc3RydWN0IHNrX2J1ZmYgKnJlc3ApO1xcbm5ldC9uZmMvZGlnaXRhbC5oLTc5LVxcbm5ldC9uZmMvZGlnaXRhbC5oOjgwOmludCBkaWdpdGFsX2luX3NlbmRfYXRyX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbC5oLTgxLVxcdFxcdFxcdCAgICBzdHJ1Y3QgbmZjX3RhcmdldCAqdGFyZ2V0LCBfX3U4IGNvbW1fbW9kZSwgX191OCAqZ2IsXFxubmV0L25mYy9kaWdpdGFsLmgtODItXFx0XFx0XFx0ICAgIHNpemVfdCBnYl9sZW4pO1xcbm5ldC9uZmMvZGlnaXRhbC5oOjgzOmludCBkaWdpdGFsX2luX3NlbmRfZGVwX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbC5oLTg0LVxcdFxcdFxcdCAgICBzdHJ1Y3QgbmZjX3RhcmdldCAqdGFyZ2V0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxubmV0L25mYy9kaWdpdGFsLmgtODYtXFxubmV0L25mYy9kaWdpdGFsLmg6ODc6aW50IGRpZ2l0YWxfdGdfY29uZmlndXJlX2h3KHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIGludCB0eXBlLCBpbnQgcGFyYW0pO1xcbm5ldC9uZmMvZGlnaXRhbC5oOjg4OnN0YXRpYyBpbmxpbmUgaW50IGRpZ2l0YWxfdGdfc2VuZF9jbWQoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWwuaC04OS1cXHRcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MTYgdGltZW91dCxcXG5uZXQvbmZjL2RpZ2l0YWwuaDo5MDpcXHRcXHRcXHRuZmNfZGlnaXRhbF9jbWRfY29tcGxldGVfdCBjbWRfY2IsIHZvaWQgKmNiX2NvbnRleHQpXFxubmV0L25mYy9kaWdpdGFsLmgtOTEte1xcbi0tXFxubmV0L25mYy9kaWdpdGFsLmgtOTUtXFxubmV0L25mYy9kaWdpdGFsLmg6OTY6dm9pZCBkaWdpdGFsX3RnX3JlY3Zfc2Vuc19yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbC5oLTk3LVxcdFxcdFxcdCAgICAgIHN0cnVjdCBza19idWZmICpyZXNwKTtcXG5uZXQvbmZjL2RpZ2l0YWwuaC05OC1cXG5uZXQvbmZjL2RpZ2l0YWwuaDo5OTp2b2lkIGRpZ2l0YWxfdGdfcmVjdl9zZW5zZl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbC5oLTEwMC1cXHRcXHRcXHQgICAgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApO1xcbm5ldC9uZmMvZGlnaXRhbC5oLTEwMS1cXG5uZXQvbmZjL2RpZ2l0YWwuaDoxMDI6c3RhdGljIGlubGluZSBpbnQgZGlnaXRhbF90Z19saXN0ZW4oc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTE2IHRpbWVvdXQsXFxubmV0L25mYy9kaWdpdGFsLmg6MTAzOlxcdFxcdFxcdFxcdCAgICBuZmNfZGlnaXRhbF9jbWRfY29tcGxldGVfdCBjYiwgdm9pZCAqYXJnKVxcbm5ldC9uZmMvZGlnaXRhbC5oLTEwNC17XFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWwuaC0xMDgtXFxubmV0L25mYy9kaWdpdGFsLmg6MTA5OnZvaWQgZGlnaXRhbF90Z19yZWN2X2F0cl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbC5oLTExMC1cXHRcXHRcXHQgICAgIHN0cnVjdCBza19idWZmICpyZXNwKTtcXG5uZXQvbmZjL2RpZ2l0YWwuaC0xMTEtXFxubmV0L25mYy9kaWdpdGFsLmg6MTEyOmludCBkaWdpdGFsX3RnX3NlbmRfZGVwX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcXG5uZXQvbmZjL2RpZ2l0YWwuaC0xMTMtXFxubmV0L25mYy9kaWdpdGFsLmg6MTE0OmludCBkaWdpdGFsX3RnX2xpc3Rlbl9uZmNhKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpO1xcbm5ldC9uZmMvZGlnaXRhbC5oOjExNTppbnQgZGlnaXRhbF90Z19saXN0ZW5fbmZjZihzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKTtcXG5uZXQvbmZjL2RpZ2l0YWwuaDoxMTY6dm9pZCBkaWdpdGFsX3RnX3JlY3ZfbWRfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcXG5uZXQvbmZjL2RpZ2l0YWwuaC0xMTctXFx0XFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpyZXNwKTtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9Mjc9c3RydWN0IGRpZ2l0YWxfY21kIHtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMzctXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzozODpcXHRuZmNfZGlnaXRhbF9jbWRfY29tcGxldGVfdCBjbWRfY2I7XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0zOS1cXHR2b2lkICpjYl9jb250ZXh0O1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00MS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjQyOnN0cnVjdCBza19idWZmICpkaWdpdGFsX3NrYl9hbGxvYyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNDMtXFx0XFx0XFx0XFx0ICB1bnNpZ25lZCBpbnQgbGVuKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz03Mj1pbnQgZGlnaXRhbF9za2JfY2hlY2tfY3JjKHN0cnVjdCBza19idWZmICpza2IsIGNyY19mdW5jX3QgY3JjX2Z1bmMsXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTk5LVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6MTAwOnN0YXRpYyBpbmxpbmUgdm9pZCBkaWdpdGFsX3N3aXRjaF9yZihzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBib29sIG9uKVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMTAxLXtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMTA0LVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6MTA1OnN0YXRpYyBpbmxpbmUgdm9pZCBkaWdpdGFsX2Fib3J0X2NtZChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMTA2LXtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9MTEwPXN0YXRpYyB2b2lkIGRpZ2l0YWxfd3FfY21kX2NvbXBsZXRlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMTEyLVxcdHN0cnVjdCBkaWdpdGFsX2NtZCAqY21kO1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6MTEzOlxcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBjb250YWluZXJfb2Yod29yayxcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjExNDpcXHRcXHRcXHRcXHRcXHRcXHQgICAgc3RydWN0IG5mY19kaWdpdGFsX2RldixcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTExNS1cXHRcXHRcXHRcXHRcXHRcXHQgICAgY21kX2NvbXBsZXRlX3dvcmspO1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0xNDEtXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzoxNDI6c3RhdGljIHZvaWQgZGlnaXRhbF9zZW5kX2NtZF9jb21wbGV0ZShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtMTQzLVxcdFxcdFxcdFxcdCAgICAgIHZvaWQgKmFyZywgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jPTE1Mj1zdGF0aWMgdm9pZCBkaWdpdGFsX3dxX2NtZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTE1Ni1cXHRzdHJ1Y3QgZGlnaXRhbF90Z19tZGFhX3BhcmFtcyAqcGFyYW1zO1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6MTU3OlxcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBjb250YWluZXJfb2Yod29yayxcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjE1ODpcXHRcXHRcXHRcXHRcXHRcXHQgICAgc3RydWN0IG5mY19kaWdpdGFsX2RldixcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTE1OS1cXHRcXHRcXHRcXHRcXHRcXHQgICAgY21kX3dvcmspO1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0yMjYtXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzoyMjc6aW50IGRpZ2l0YWxfc2VuZF9jbWQoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTggY21kX3R5cGUsXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0yMjgtXFx0XFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZGlnaXRhbF90Z19tZGFhX3BhcmFtcyAqcGFyYW1zLFxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6MjI5OlxcdFxcdCAgICAgdTE2IHRpbWVvdXQsIG5mY19kaWdpdGFsX2NtZF9jb21wbGV0ZV90IGNtZF9jYixcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTIzMC1cXHRcXHQgICAgIHZvaWQgKmNiX2NvbnRleHQpXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTI1NC1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjI1NTppbnQgZGlnaXRhbF9pbl9jb25maWd1cmVfaHcoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgaW50IHR5cGUsIGludCBwYXJhbSlcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTI1Ni17XFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTI2NS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjI2NjppbnQgZGlnaXRhbF90Z19jb25maWd1cmVfaHcoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgaW50IHR5cGUsIGludCBwYXJhbSlcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTI2Ny17XFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTI3Ni1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjI3NzpzdGF0aWMgaW50IGRpZ2l0YWxfdGdfbGlzdGVuX21kYWEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTggcmZfdGVjaClcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTI3OC17XFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTMwMi1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjMwMzpzdGF0aWMgaW50IGRpZ2l0YWxfdGdfbGlzdGVuX21kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0zMDQte1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0zMDgtXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzozMDk6aW50IGRpZ2l0YWxfdGFyZ2V0X2ZvdW5kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy0zMTAtXFx0XFx0XFx0IHN0cnVjdCBuZmNfdGFyZ2V0ICp0YXJnZXQsIHU4IHByb3RvY29sKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00MDQtXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo0MDU6dm9pZCBkaWdpdGFsX3BvbGxfbmV4dF90ZWNoKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00MDYte1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz00Mjc9c3RhdGljIHZvaWQgZGlnaXRhbF93cV9wb2xsKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNDMwLVxcdHN0cnVjdCBkaWdpdGFsX3BvbGxfdGVjaCAqcG9sbF90ZWNoO1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NDMxOlxcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBjb250YWluZXJfb2Yod29yayxcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjQzMjpcXHRcXHRcXHRcXHRcXHRcXHQgICAgc3RydWN0IG5mY19kaWdpdGFsX2RldixcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTQzMy1cXHRcXHRcXHRcXHRcXHRcXHQgICAgcG9sbF93b3JrLndvcmspO1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00NDktXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo0NTA6c3RhdGljIHZvaWQgZGlnaXRhbF9hZGRfcG9sbF90ZWNoKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gsXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00NTEtXFx0XFx0XFx0XFx0ICBkaWdpdGFsX3BvbGxfdCBwb2xsX2Z1bmMpXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jPTQ3Nj1zdGF0aWMgaW50IGRpZ2l0YWxfc3RhcnRfcG9sbChzdHJ1Y3QgbmZjX2RldiAqbmZjX2RldiwgX191MzIgaW1fcHJvdG9jb2xzLFxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00Nzgte1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NDc5OlxcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBuZmNfZ2V0X2RydmRhdGEobmZjX2Rldik7XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy00ODAtXFx0dTMyIG1hdGNoaW5nX2ltX3Byb3RvY29scywgbWF0Y2hpbmdfdG1fcHJvdG9jb2xzO1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz01NTY9c3RhdGljIHZvaWQgZGlnaXRhbF9zdG9wX3BvbGwoc3RydWN0IG5mY19kZXYgKm5mY19kZXYpXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy01NTcte1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NTU4OlxcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBuZmNfZ2V0X2RydmRhdGEobmZjX2Rldik7XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy01NTktXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jPTU3Nz1zdGF0aWMgaW50IGRpZ2l0YWxfZGV2X3VwKHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2KVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNTc4LXtcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjU3OTpcXHRzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2ID0gbmZjX2dldF9kcnZkYXRhKG5mY19kZXYpO1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNTgwLVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz01ODY9c3RhdGljIGludCBkaWdpdGFsX2Rldl9kb3duKHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2KVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNTg3LXtcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjU4ODpcXHRzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2ID0gbmZjX2dldF9kcnZkYXRhKG5mY19kZXYpO1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNTg5LVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz01OTU9c3RhdGljIGludCBkaWdpdGFsX2RlcF9saW5rX3VwKHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2LFxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy01OTgte1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NTk5OlxcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBuZmNfZ2V0X2RydmRhdGEobmZjX2Rldik7XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy02MDAtXFx0aW50IHJjO1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz02MTA9c3RhdGljIGludCBkaWdpdGFsX2RlcF9saW5rX2Rvd24oc3RydWN0IG5mY19kZXYgKm5mY19kZXYpXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy02MTEte1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NjEyOlxcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBuZmNfZ2V0X2RydmRhdGEobmZjX2Rldik7XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy02MTMtXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jPTYyMT1zdGF0aWMgaW50IGRpZ2l0YWxfYWN0aXZhdGVfdGFyZ2V0KHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2LFxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy02MjMte1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NjI0OlxcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBuZmNfZ2V0X2RydmRhdGEobmZjX2Rldik7XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy02MjUtXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jPTY0MT1zdGF0aWMgdm9pZCBkaWdpdGFsX2RlYWN0aXZhdGVfdGFyZ2V0KHN0cnVjdCBuZmNfZGV2ICpuZmNfZGV2LFxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy02NDQte1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NjQ1OlxcdHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYgPSBuZmNfZ2V0X2RydmRhdGEobmZjX2Rldik7XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy02NDYtXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jPTY1Nj1zdGF0aWMgaW50IGRpZ2l0YWxfdGdfc2VuZChzdHJ1Y3QgbmZjX2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNjU3LXtcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjY1ODpcXHRzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2ID0gbmZjX2dldF9kcnZkYXRhKGRldik7XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy02NTktXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTY2Mi1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjY2MzpzdGF0aWMgdm9pZCBkaWdpdGFsX2luX3NlbmRfY29tcGxldGUoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNjY0LVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jPTcwMT1zdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZChzdHJ1Y3QgbmZjX2RldiAqbmZjX2Rldiwgc3RydWN0IG5mY190YXJnZXQgKnRhcmdldCxcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNzA0LXtcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjcwNTpcXHRzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2ID0gbmZjX2dldF9kcnZkYXRhKG5mY19kZXYpO1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNzA2LVxcdHN0cnVjdCBkaWdpdGFsX2RhdGFfZXhjaCAqZGF0YV9leGNoO1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYz03NDQ9c3RhdGljIGNvbnN0IHN0cnVjdCBuZmNfb3BzIGRpZ2l0YWxfbmZjX29wcyA9IHtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtNzU2LVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6NzU3OnN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKm5mY19kaWdpdGFsX2FsbG9jYXRlX2RldmljZShjb25zdCBzdHJ1Y3QgbmZjX2RpZ2l0YWxfb3BzICpvcHMsXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy03NTgtXFx0XFx0XFx0XFx0XFx0ICAgIF9fdTMyIHN1cHBvcnRlZF9wcm90b2NvbHMsXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTc2MS17XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo3NjI6XFx0c3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldjtcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTc2My1cXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODE5LX1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjgyMDpFWFBPUlRfU1lNQk9MKG5mY19kaWdpdGFsX2FsbG9jYXRlX2RldmljZSk7XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MjEtXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo4MjI6dm9pZCBuZmNfZGlnaXRhbF9mcmVlX2RldmljZShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODIzLXtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODI2LX1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjgyNzpFWFBPUlRfU1lNQk9MKG5mY19kaWdpdGFsX2ZyZWVfZGV2aWNlKTtcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTgyOC1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjgyOTppbnQgbmZjX2RpZ2l0YWxfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MzAte1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MzItfVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6ODMzOkVYUE9SVF9TWU1CT0wobmZjX2RpZ2l0YWxfcmVnaXN0ZXJfZGV2aWNlKTtcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTgzNC1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjgzNTp2b2lkIG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MzYte1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04NjItfVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6ODYzOkVYUE9SVF9TWU1CT0wobmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UpO1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODY0LVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jPTEwMD1zdHJ1Y3QgZGlnaXRhbF9kZXBfcmVxX3JlcyB7XFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTA1LVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoxMDY6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X2RlcF9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMDctXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpyZXNwKTtcXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6MTA4OnN0YXRpYyB2b2lkIGRpZ2l0YWxfdGdfcmVjdl9kZXBfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTA5LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcCk7XFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM9MTU3PXN0YXRpYyB1OCBkaWdpdGFsX3BheWxvYWRfc2l6ZV90b19iaXRzKHU4IHBheWxvYWRfc2l6ZSlcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xNjctXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjE2ODpzdGF0aWMgdm9pZCBkaWdpdGFsX3NrYl9wdXNoX2RlcF9zb2Qoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTY5LVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xNzgtXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjE3OTpzdGF0aWMgaW50IGRpZ2l0YWxfc2tiX3B1bGxfZGVwX3NvZChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xODAtXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM9MTk5PXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjIwMDpkaWdpdGFsX3NlbmRfZGVwX2RhdGFfcHJlcChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0yMDEtXFx0XFx0XFx0ICAgc3RydWN0IGRpZ2l0YWxfZGVwX3JlcV9yZXMgKmRlcF9yZXFfcmVzLFxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jPTIzMD1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKlxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoyMzE6ZGlnaXRhbF9yZWN2X2RlcF9kYXRhX2dhdGhlcihzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCBwZmIsXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTIzMi1cXHRcXHRcXHQgICAgIHN0cnVjdCBza19idWZmICpyZXNwLFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoyMzM6XFx0XFx0XFx0ICAgICBpbnQgKCpzZW5kX2Fjaykoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMjM0LVxcdFxcdFxcdFxcdFxcdCAgICAgc3RydWN0IGRpZ2l0YWxfZGF0YV9leGNoXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMjk0LVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoyOTU6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X3BzbF9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0yOTYtXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpyZXNwKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTM1OC1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6MzU5OnN0YXRpYyBpbnQgZGlnaXRhbF9pbl9zZW5kX3BzbF9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMzYwLVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBuZmNfdGFyZ2V0ICp0YXJnZXQpXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMzk4LVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzozOTk6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X2F0cl9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy00MDAtXFx0XFx0XFx0XFx0IHN0cnVjdCBza19idWZmICpyZXNwKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTQ3MC1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6NDcxOmludCBkaWdpdGFsX2luX3NlbmRfYXRyX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy00NzItXFx0XFx0XFx0ICAgIHN0cnVjdCBuZmNfdGFyZ2V0ICp0YXJnZXQsIF9fdTggY29tbV9tb2RlLCBfX3U4ICpnYixcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy01MjgtXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjUyOTpzdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZF9hY2soc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtNTMwLVxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgZGlnaXRhbF9kYXRhX2V4Y2ggKmRhdGFfZXhjaClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy01NjUtXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjU2NjpzdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZF9uYWNrKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTU2Ny1cXHRcXHRcXHRcXHRzdHJ1Y3QgZGlnaXRhbF9kYXRhX2V4Y2ggKmRhdGFfZXhjaClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy01OTctXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjU5ODpzdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZF9hdG4oc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtNTk5LVxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgZGlnaXRhbF9kYXRhX2V4Y2ggKmRhdGFfZXhjaClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy02MjgtXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjYyOTpzdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZF9ydG94KHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTYzMC1cXHRcXHRcXHRcXHRzdHJ1Y3QgZGlnaXRhbF9kYXRhX2V4Y2ggKmRhdGFfZXhjaCwgdTggcnRveClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy02NjctXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjY2ODpzdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZF9zYXZlZF9za2Ioc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtNjY5LVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IGRpZ2l0YWxfZGF0YV9leGNoICpkYXRhX2V4Y2gpXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtNjg1LVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzo2ODY6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X2RlcF9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy02ODctXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpyZXNwKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTkwMy1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6OTA0OmludCBkaWdpdGFsX2luX3NlbmRfZGVwX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy05MDUtXFx0XFx0XFx0ICAgIHN0cnVjdCBuZmNfdGFyZ2V0ICp0YXJnZXQsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtOTUwLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzo5NTE6c3RhdGljIHZvaWQgZGlnaXRhbF90Z19zZXRfcmZfdGVjaChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy05NTIte1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTk3Ny1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6OTc4OnN0YXRpYyBpbnQgZGlnaXRhbF90Z19zZW5kX2FjayhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy05NzktXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBkaWdpdGFsX2RhdGFfZXhjaCAqZGF0YV9leGNoKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEwMjMtXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjEwMjQ6c3RhdGljIGludCBkaWdpdGFsX3RnX3NlbmRfYXRuKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEwMjUte1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEwNTktXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjEwNjA6c3RhdGljIGludCBkaWdpdGFsX3RnX3NlbmRfc2F2ZWRfc2tiKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEwNjEte1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEwNzYtXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjEwNzc6c3RhdGljIHZvaWQgZGlnaXRhbF90Z19yZWN2X2RlcF9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMDc4LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMjk2LVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoxMjk3OmludCBkaWdpdGFsX3RnX3NlbmRfZGVwX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMjk4LXtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMzQ3LVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoxMzQ4OnN0YXRpYyB2b2lkIGRpZ2l0YWxfdGdfc2VuZF9wc2xfcmVzX2NvbXBsZXRlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEzNDktXFx0XFx0XFx0XFx0XFx0ICAgICB2b2lkICphcmcsIHN0cnVjdCBza19idWZmICpyZXNwKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEzNjQtXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjEzNjU6c3RhdGljIGludCBkaWdpdGFsX3RnX3NlbmRfcHNsX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCBkaWQsXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTEzNjYtXFx0XFx0XFx0XFx0ICAgdTggcmZfdGVjaClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xMzk3LVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoxMzk4OnN0YXRpYyB2b2lkIGRpZ2l0YWxfdGdfcmVjdl9wc2xfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTM5OS1cXHRcXHRcXHRcXHQgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTQ2Ni1cXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmM6MTQ2NzpzdGF0aWMgdm9pZCBkaWdpdGFsX3RnX3NlbmRfYXRyX3Jlc19jb21wbGV0ZShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xNDY4LVxcdFxcdFxcdFxcdFxcdCAgICAgdm9pZCAqYXJnLCBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYy0xNDg4LVxcbm5ldC9uZmMvZGlnaXRhbF9kZXAuYzoxNDg5OnN0YXRpYyBpbnQgZGlnaXRhbF90Z19zZW5kX2F0cl9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfZGVwLmMtMTQ5MC1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgZGlnaXRhbF9hdHJfcmVxICphdHJfcmVxKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTE1NDAtXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jOjE1NDE6dm9pZCBkaWdpdGFsX3RnX3JlY3ZfYXRyX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXFxubmV0L25mYy9kaWdpdGFsX2RlcC5jLTE1NDItXFx0XFx0XFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM9MTU4PXN0cnVjdCBkaWdpdGFsX2lzbzE1NjkzX2ludl9yZXMge1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xNjMtXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzoxNjQ6c3RhdGljIGludCBkaWdpdGFsX2luX3NlbmRfc2RkX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTY1LVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBuZmNfdGFyZ2V0ICp0YXJnZXQpO1xcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTY2LVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6MTY3OmludCBkaWdpdGFsX2luX2lzb19kZXBfcHVsbF9zb2Qoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTE2OC1cXHRcXHRcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xOTQtXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzoxOTU6aW50IGRpZ2l0YWxfaW5faXNvX2RlcF9wdXNoX3NvZChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTk2LVxcdFxcdFxcdFxcdHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTIxNC1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjIxNTpzdGF0aWMgdm9pZCBkaWdpdGFsX2luX3JlY3ZfYXRzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTIxNi1cXHRcXHRcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMjUwLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6MjUxOnN0YXRpYyBpbnQgZGlnaXRhbF9pbl9zZW5kX3JhdHMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTI1Mi1cXHRcXHRcXHRcXHRzdHJ1Y3QgbmZjX3RhcmdldCAqdGFyZ2V0KVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0yNzEtXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzoyNzI6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X3NlbF9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMjczLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMzQwLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6MzQxOnN0YXRpYyBpbnQgZGlnaXRhbF9pbl9zZW5kX3NlbF9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTM0Mi1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgbmZjX3RhcmdldCAqdGFyZ2V0LFxcbi0tXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0zODYtXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzozODc6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X3NkZF9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMzg4LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNDQ3LVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6NDQ4OnN0YXRpYyBpbnQgZGlnaXRhbF9pbl9zZW5kX3NkZF9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTQ0OS1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgbmZjX3RhcmdldCAqdGFyZ2V0KVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy00ODEtXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzo0ODI6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X3NlbnNfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTQ4My1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBza19idWZmICpyZXNwKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy01MjYtXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzo1Mjc6aW50IGRpZ2l0YWxfaW5fc2VuZF9zZW5zX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNTI4LXtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM9NTU1PWludCBkaWdpdGFsX2luX3JlY3ZfbWlmYXJlX3JlcyhzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNTgwLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6NTgxOnN0YXRpYyB2b2lkIGRpZ2l0YWxfaW5fcmVjdl9hdHRyaWJfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTU4Mi1cXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTYxNy1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjYxODpzdGF0aWMgaW50IGRpZ2l0YWxfaW5fc2VuZF9hdHRyaWJfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy02MTktXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBuZmNfdGFyZ2V0ICp0YXJnZXQsXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTY1MC1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjY1MTpzdGF0aWMgdm9pZCBkaWdpdGFsX2luX3JlY3Zfc2Vuc2JfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHZvaWQgKmFyZyxcXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTY1Mi1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtNzEzLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6NzE0OmludCBkaWdpdGFsX2luX3NlbmRfc2Vuc2JfcmVxKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy03MTUte1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy03NDctXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzo3NDg6c3RhdGljIHZvaWQgZGlnaXRhbF9pbl9yZWN2X3NlbnNmX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy03NDktXFx0XFx0XFx0XFx0ICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTgwMS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjgwMjppbnQgZGlnaXRhbF9pbl9zZW5kX3NlbnNmX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtODAzLXtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtODQ1LVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6ODQ2OnN0YXRpYyB2b2lkIGRpZ2l0YWxfaW5fcmVjdl9pc28xNTY5M19pbnZfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy04NDctXFx0XFx0dm9pZCAqYXJnLCBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtODkyLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6ODkzOmludCBkaWdpdGFsX2luX3NlbmRfaXNvMTU2OTNfaW52X3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB1OCByZl90ZWNoKVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtODk0LXtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtOTMyLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6OTMzOnN0YXRpYyBpbnQgZGlnaXRhbF90Z19zZW5kX3NlbF9yZXMoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldilcXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTkzNC17XFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTk2MS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjk2MjpzdGF0aWMgdm9pZCBkaWdpdGFsX3RnX3JlY3Zfc2VsX3JlcShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LCB2b2lkICphcmcsXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy05NjMtXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpyZXNwKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy05OTEtXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzo5OTI6c3RhdGljIGludCBkaWdpdGFsX3RnX3NlbmRfc2RkX3JlcyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtOTkzLXtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTAyNi1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjEwMjc6c3RhdGljIHZvaWQgZGlnaXRhbF90Z19yZWN2X3NkZF9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTAyOC1cXHRcXHRcXHRcXHQgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTEwNTUtXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzoxMDU2OnN0YXRpYyBpbnQgZGlnaXRhbF90Z19zZW5kX3NlbnNfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMDU3LXtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTA4NS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjEwODY6dm9pZCBkaWdpdGFsX3RnX3JlY3Zfc2Vuc19yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTA4Ny1cXHRcXHRcXHQgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTExNC1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjExMTU6c3RhdGljIHZvaWQgZGlnaXRhbF90Z19yZWN2X2F0cl9vcl9zZW5zZl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldixcXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTExMTYtXFx0XFx0dm9pZCAqYXJnLCBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcClcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTEyNi1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjExMjc6c3RhdGljIGludCBkaWdpdGFsX3RnX3NlbmRfc2Vuc2ZfcmVzKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMTI4LVxcdFxcdFxcdCAgICAgIHN0cnVjdCBkaWdpdGFsX3NlbnNmX3JlcSAqc2Vuc2ZfcmVxKVxcbi0tXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMTc4LVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmM6MTE3OTp2b2lkIGRpZ2l0YWxfdGdfcmVjdl9zZW5zZl9yZXEoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdm9pZCAqYXJnLFxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTE4MC1cXHRcXHRcXHQgICAgICAgc3RydWN0IHNrX2J1ZmYgKnJlc3ApXFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTEyMjAtXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzoxMjIxOnN0YXRpYyBpbnQgZGlnaXRhbF90Z19jb25maWdfbmZjYShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTIyMi17XFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jLTEyMzMtXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYzoxMjM0OmludCBkaWdpdGFsX3RnX2xpc3Rlbl9uZmNhKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMjM1LXtcXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF90ZWNobm9sb2d5LmMtMTI0NC1cXG5uZXQvbmZjL2RpZ2l0YWxfdGVjaG5vbG9neS5jOjEyNDU6c3RhdGljIGludCBkaWdpdGFsX3RnX2NvbmZpZ19uZmNmKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsIHU4IHJmX3RlY2gpXFxubmV0L25mYy9kaWdpdGFsX3RlY2hub2xvZ3kuYy0xMjQ2LXtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTE6Mzc6MzEuMzU3ODg1MTcxWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDI2NDYyNzY5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE5GQyBEaWdpdGFsIFVucmVnaXN0cmF0aW9uKipcblxuT2theSwgc28gdGhlIGNvbmZpZ3VyYXRpb24gaW4gcGxheSBoZXJlIGlzIGBDT05GSUdfTkZDX0RJR0lUQUxgLiBUaGF0IG5hcnJvd3MgZG93biB0aGUgc2NvcGUgYSBiaXQsIHdoaWNoIGlzIGFsd2F5cyBoZWxwZnVsLiBSaWdodCBub3csIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCBjaGFuZ2VzIHRoZSBgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VgIGZ1bmN0aW9uLiBTcGVjaWZpY2FsbHksIGl0J3MgbG9jYXRlZCBpbiBgbmV0L25mYy9kaWdpdGFsX2NvcmUuY2AuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBsZXQncyB0cmFjZSB0aGlzIGZ1bmN0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoZSBjaGFuZ2UsIHNvIEkgbmVlZCB0byBmaW5kIG91dCAqZXhhY3RseSogd2hlcmUgYG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlYCBpcyBjYWxsZWQuIFRoZSBjb250ZXh0IG9mIGl0cyB1c2FnZSBpcyBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgbW9kaWZpY2F0aW9uJ3MgaW1wYWN0LiBJJ2xsIG5lZWQgdG8gdXNlIG15IHVzdWFsIHRvb2xzIHRvIHBlcmZvcm0gYSBjcm9zcy1yZWZlcmVuY2Ugc2VhcmNoIGFuZCBzZWUgd2hhdCBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtIHJlbHkgb24gdGhpcyBmdW5jdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTM0MzksIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQxMTozNzozNS42MjI1MTUwMzFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjcwMjgyMTk4MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZmMvbmZjc2ltLmM9NDEyPXN0YXRpYyB2b2lkIG5mY3NpbV9kZXZpY2VfZnJlZShzdHJ1Y3QgbmZjc2ltICpkZXYpXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDEzLXtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0MTQ6XFx0bmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UoZGV2LVxcdTAwM2VuZmNfZGlnaXRhbF9kZXYpO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQxNS1cXG4tLVxcbmRyaXZlcnMvbmZjL3BvcnQxMDAuYz0xNjA4PXN0YXRpYyB2b2lkIHBvcnQxMDBfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxcbi0tXFxuZHJpdmVycy9uZmMvcG9ydDEwMC5jLTE2MTQtXFxuZHJpdmVycy9uZmMvcG9ydDEwMC5jOjE2MTU6XFx0bmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UoZGV2LVxcdTAwM2VuZmNfZGlnaXRhbF9kZXYpO1xcbmRyaXZlcnMvbmZjL3BvcnQxMDAuYy0xNjE2LVxcdG5mY19kaWdpdGFsX2ZyZWVfZGV2aWNlKGRldi1cXHUwMDNlbmZjX2RpZ2l0YWxfZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmZjL3N0OTVoZi9jb3JlLmM9MTE5Nj1zdGF0aWMgdm9pZCBzdDk1aGZfcmVtb3ZlKHN0cnVjdCBzcGlfZGV2aWNlICpuZmNfc3BpX2RldilcXG4tLVxcbmRyaXZlcnMvbmZjL3N0OTVoZi9jb3JlLmMtMTIwNy1cXG5kcml2ZXJzL25mYy9zdDk1aGYvY29yZS5jOjEyMDg6XFx0bmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2Uoc3Rjb250ZXh0LVxcdTAwM2VkZGV2KTtcXG5kcml2ZXJzL25mYy9zdDk1aGYvY29yZS5jLTEyMDktXFx0bmZjX2RpZ2l0YWxfZnJlZV9kZXZpY2Uoc3Rjb250ZXh0LVxcdTAwM2VkZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmZjL3RyZjc5NzBhLmM9MjIyMD1zdGF0aWMgdm9pZCB0cmY3OTcwYV9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcXG4tLVxcbmRyaXZlcnMvbmZjL3RyZjc5NzBhLmMtMjIyOS1cXG5kcml2ZXJzL25mYy90cmY3OTcwYS5jOjIyMzA6XFx0bmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UodHJmLVxcdTAwM2VkZGV2KTtcXG5kcml2ZXJzL25mYy90cmY3OTcwYS5jLTIyMzEtXFx0bmZjX2RpZ2l0YWxfZnJlZV9kZXZpY2UodHJmLVxcdTAwM2VkZGV2KTtcXG4tLVxcbmluY2x1ZGUvbmV0L25mYy9kaWdpdGFsLmg9MjQ1PWludCBuZmNfZGlnaXRhbF9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqbmRldik7XFxuaW5jbHVkZS9uZXQvbmZjL2RpZ2l0YWwuaDoyNDY6dm9pZCBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpuZGV2KTtcXG5pbmNsdWRlL25ldC9uZmMvZGlnaXRhbC5oLTI0Ny1cXG4tLVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM9ODMzPUVYUE9SVF9TWU1CT0wobmZjX2RpZ2l0YWxfcmVnaXN0ZXJfZGV2aWNlKTtcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTgzNC1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jOjgzNTp2b2lkIG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04MzYte1xcbi0tXFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04NjItfVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6ODYzOkVYUE9SVF9TWU1CT0wobmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UpO1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODY0LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQxMTozNzozOC4zMjUzNDQzNjNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0Mjk0MjM5NTQ4MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgTkZDIERyaXZlciBSZW1vdmFsIEZ1bmN0aW9ucyoqXG5cbk9rYXksIHNvIEknbSBzZWVpbmcgdGhhdCB0aGUgYG5mY3NpbV9kZXZpY2VfZnJlZWAgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkIGluIG11bHRpcGxlIGRyaXZlciByZW1vdmFsIGZ1bmN0aW9uczogYG5mY3NpbV9kZXZpY2VfZnJlZWAgaW4gdGhlIGBuZmNzaW0uY2AgZmlsZSwgYXMgd2VsbCBhcyBgcG9ydDEwMF9kaXNjb25uZWN0YCBpbiBgcG9ydDEwMC5jYCwgYW5kIGFsc28gYHN0OTVoZl9yZW1vdmVgLCBhbmQgYHRyZjc5NzBhX3JlbW92ZWAuIFRoYXQncyBpbnRlcmVzdGluZywgYW5kIHdvcnRoIGRpZ2dpbmcgaW50by4gR2l2ZW4gd2hhdCBJIGtub3csIHRoZSBgbmZjc2ltYCBkcml2ZXIgaXMgcGVyZmVjdCBmb3IgbXkgZnV6emluZyBleHBlcmltZW50cy5cblxuTm93LCBteSBuZXh0IHN0ZXAgaXMgY2xlYXIg4oCTIEkgbmVlZCB0byBnZXQgYSBiZXR0ZXIgaGFuZGxlIG9uIHRoZSBgbmZjc2ltYCB2aXJ0dWFsIE5GQyBkcml2ZXIuIEkgc2hvdWxkIHN0YXJ0IGJ5IGV4YW1pbmluZyBpdHMgS2NvbmZpZyBmaWxlIGluIGBkcml2ZXJzL25mYy9uZmNzaW0uY2AuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIGl0cyBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIGRlcGVuZGVuY2llcy4gVGhpcyB3aWxsIGhlbHAgbWUgdW5kZXJzdGFuZCBob3cgaXQgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQsIGFuZCB3aGF0IGZlYXR1cmVzIGl0IG9mZmVycyBmb3IgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTQ0NzIsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTE6Mzg6MjEuMjY3NzQyOTY1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTk3NzIwMjM2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5mY3NpbVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25mYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZmMvTWFrZWZpbGU9MTA9b2JqLSQoQ09ORklHX05GQ19NRUlfUEhZKVxcdCs9IG1laV9waHkub1xcbmRyaXZlcnMvbmZjL01ha2VmaWxlOjExOm9iai0kKENPTkZJR19ORkNfU0lNKVxcdFxcdCs9IG5mY3NpbS5vXFxuZHJpdmVycy9uZmMvTWFrZWZpbGUtMTItb2JqLSQoQ09ORklHX05GQ19QT1JUMTAwKVxcdCs9IHBvcnQxMDAub1xcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzAtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzE6c3RydWN0IG5mY3NpbSB7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzItXFx0c3RydWN0IG5mY19kaWdpdGFsX2RldiAqbmZjX2RpZ2l0YWxfZGV2O1xcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzYtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6Mzc6XFx0c3RydWN0IG5mY3NpbV9saW5rICpsaW5rX2luO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjM4OlxcdHN0cnVjdCBuZmNzaW1fbGluayAqbGlua19vdXQ7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzktXFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy01MS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo1MjpzdHJ1Y3QgbmZjc2ltX2xpbmsge1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTUzLVxcdHN0cnVjdCBtdXRleCBsb2NrO1xcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNjQtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NjU6c3RhdGljIHN0cnVjdCBuZmNzaW1fbGluayAqbmZjc2ltX2xpbmtfbmV3KHZvaWQpXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNjYte1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjY3OlxcdHN0cnVjdCBuZmNzaW1fbGluayAqbGluaztcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy02OC1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo2OTpcXHRsaW5rID0ga3phbGxvY19vYmooc3RydWN0IG5mY3NpbV9saW5rKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy03MC1cXHRpZiAoIWxpbmspXFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy03OC1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo3OTpzdGF0aWMgdm9pZCBuZmNzaW1fbGlua19mcmVlKHN0cnVjdCBuZmNzaW1fbGluayAqbGluaylcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy04MC17XFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy04NC1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo4NTpzdGF0aWMgdm9pZCBuZmNzaW1fbGlua19yZWN2X3dha2Uoc3RydWN0IG5mY3NpbV9saW5rICpsaW5rKVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTg2LXtcXG4tLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTkwLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjkxOnN0YXRpYyB2b2lkIG5mY3NpbV9saW5rX3NldF9za2Ioc3RydWN0IG5mY3NpbV9saW5rICpsaW5rLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTkyLVxcdFxcdFxcdFxcdHU4IHJmX3RlY2gsIHU4IG1vZGUpXFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xMDMtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MTA0OnN0YXRpYyB2b2lkIG5mY3NpbV9saW5rX3JlY3ZfY2FuY2VsKHN0cnVjdCBuZmNzaW1fbGluayAqbGluaylcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xMDUte1xcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTExLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjExMjpcXHRuZmNzaW1fbGlua19yZWN2X3dha2UobGluayk7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTEzLX1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xMTQtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MTE1OnN0YXRpYyB2b2lkIG5mY3NpbV9saW5rX3NodXRkb3duKHN0cnVjdCBuZmNzaW1fbGluayAqbGluaylcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xMTYte1xcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTIzLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjEyNDpcXHRuZmNzaW1fbGlua19yZWN2X3dha2UobGluayk7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTI1LX1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xMjYtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MTI3OnN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqbmZjc2ltX2xpbmtfcmVjdl9za2Ioc3RydWN0IG5mY3NpbV9saW5rICpsaW5rLFxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTEyOC1cXHRcXHRcXHRcXHRcXHQgICAgaW50IHRpbWVvdXQsIHU4IHJmX3RlY2gsIHU4IG1vZGUpXFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xNjktXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MTcwOnN0YXRpYyB2b2lkIG5mY3NpbV9zZW5kX3dxKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0xNzEte1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjE3MjpcXHRzdHJ1Y3QgbmZjc2ltICpkZXYgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IG5mY3NpbSwgc2VuZF93b3JrLndvcmspO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTE3My1cXG4tLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTE3Ni1cXHQgKiBpcyB0aGUgbGlua19pbiBvZiB0aGUgcGVlciBkZXZpY2UuIFRoZSBleGNoYW5nZWQgc2tiIGhhcyBhbHJlYWR5IGJlZW5cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzoxNzc6XFx0ICogc3RvcmVkIGluIHRoZSBkZXYtXFx1MDAzZWxpbmtfb3V0IHRocm91Z2ggbmZjc2ltX2xpbmtfc2V0X3NrYigpLlxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTE3OC1cXHQgKi9cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzoxNzk6XFx0bmZjc2ltX2xpbmtfcmVjdl93YWtlKGRldi1cXHUwMDNlbGlua19vdXQpO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTE4MC19XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTgxLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjE4MjpzdGF0aWMgdm9pZCBuZmNzaW1fcmVjdl93cShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTgzLXtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzoxODQ6XFx0c3RydWN0IG5mY3NpbSAqZGV2ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBuZmNzaW0sIHJlY3Zfd29yayk7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTg1LVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMTg2LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjE4NzpcXHRza2IgPSBuZmNzaW1fbGlua19yZWN2X3NrYihkZXYtXFx1MDAzZWxpbmtfaW4sIGRldi1cXHUwMDNlcmVjdl90aW1lb3V0LFxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTE4OC1cXHRcXHRcXHRcXHQgICBkZXYtXFx1MDAzZXJmX3RlY2gsIGRldi1cXHUwMDNlbW9kZSk7XFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yMDAtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MjAxOnN0YXRpYyBpbnQgbmZjc2ltX3NlbmQoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yMDItXFx0XFx0ICAgICAgIHUxNiB0aW1lb3V0LCBuZmNfZGlnaXRhbF9jbWRfY29tcGxldGVfdCBjYiwgdm9pZCAqYXJnKVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTIwMy17XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MjA0OlxcdHN0cnVjdCBuZmNzaW0gKmRldiA9IG5mY19kaWdpdGFsX2dldF9kcnZkYXRhKGRkZXYpO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTIwNS1cXHR1OCBkZWxheTtcXG4tLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTIyNi1cXHRpZiAoc2tiKSB7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MjI3OlxcdFxcdG5mY3NpbV9saW5rX3NldF9za2IoZGV2LVxcdTAwM2VsaW5rX291dCwgc2tiLCBkZXYtXFx1MDAzZXJmX3RlY2gsXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjI4LVxcdFxcdFxcdFxcdCAgICBkZXYtXFx1MDAzZW1vZGUpO1xcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjM5LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI0MDpzdGF0aWMgdm9pZCBuZmNzaW1fYWJvcnRfY21kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYpXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjQxLXtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzoyNDI6XFx0Y29uc3Qgc3RydWN0IG5mY3NpbSAqZGV2ID0gbmZjX2RpZ2l0YWxfZ2V0X2RydmRhdGEoZGRldik7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjQzLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI0NDpcXHRuZmNzaW1fbGlua19yZWN2X2NhbmNlbChkZXYtXFx1MDAzZWxpbmtfaW4pO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTI0NS19XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjQ2LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI0NzpzdGF0aWMgaW50IG5mY3NpbV9zd2l0Y2hfcmYoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgYm9vbCBvbilcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yNDgte1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI0OTpcXHRzdHJ1Y3QgbmZjc2ltICpkZXYgPSBuZmNfZGlnaXRhbF9nZXRfZHJ2ZGF0YShkZGV2KTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yNTAtXFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yNTUtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MjU2OnN0YXRpYyBpbnQgbmZjc2ltX2luX2NvbmZpZ3VyZV9odyhzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTI1Ny1cXHRcXHRcXHRcXHRcXHQgIGludCB0eXBlLCBpbnQgcGFyYW0pXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjU4LXtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzoyNTk6XFx0c3RydWN0IG5mY3NpbSAqZGV2ID0gbmZjX2RpZ2l0YWxfZ2V0X2RydmRhdGEoZGRldik7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjYwLVxcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjc4LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI3OTpzdGF0aWMgaW50IG5mY3NpbV9pbl9zZW5kX2NtZChzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2LFxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTI4MC1cXHRcXHRcXHQgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTE2IHRpbWVvdXQsXFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yODIte1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI4MzpcXHRyZXR1cm4gbmZjc2ltX3NlbmQoZGRldiwgc2tiLCB0aW1lb3V0LCBjYiwgYXJnKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yODQtfVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTI4NS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzoyODY6c3RhdGljIGludCBuZmNzaW1fdGdfY29uZmlndXJlX2h3KHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMjg3LVxcdFxcdFxcdFxcdFxcdCAgaW50IHR5cGUsIGludCBwYXJhbSlcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yODgte1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjI4OTpcXHRzdHJ1Y3QgbmZjc2ltICpkZXYgPSBuZmNfZGlnaXRhbF9nZXRfZHJ2ZGF0YShkZGV2KTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0yOTAtXFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMDgtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzA5OnN0YXRpYyBpbnQgbmZjc2ltX3RnX3NlbmRfY21kKHN0cnVjdCBuZmNfZGlnaXRhbF9kZXYgKmRkZXYsXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzEwLVxcdFxcdFxcdCAgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MTYgdGltZW91dCxcXG4tLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMxMi17XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzEzOlxcdHJldHVybiBuZmNzaW1fc2VuZChkZGV2LCBza2IsIHRpbWVvdXQsIGNiLCBhcmcpO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMxNC19XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzE1LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjMxNjpzdGF0aWMgaW50IG5mY3NpbV90Z19saXN0ZW4oc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldiwgdTE2IHRpbWVvdXQsXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzE3LVxcdFxcdFxcdCAgICBuZmNfZGlnaXRhbF9jbWRfY29tcGxldGVfdCBjYiwgdm9pZCAqYXJnKVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMxOC17XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzE5OlxcdHJldHVybiBuZmNzaW1fc2VuZChkZGV2LCBOVUxMLCB0aW1lb3V0LCBjYiwgYXJnKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMjAtfVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMyMS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMjI6c3RhdGljIGNvbnN0IHN0cnVjdCBuZmNfZGlnaXRhbF9vcHMgbmZjc2ltX2RpZ2l0YWxfb3BzID0ge1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjMyMzpcXHQuaW5fY29uZmlndXJlX2h3ID0gbmZjc2ltX2luX2NvbmZpZ3VyZV9odyxcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMjQ6XFx0LmluX3NlbmRfY21kID0gbmZjc2ltX2luX3NlbmRfY21kLFxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTMyNS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMjY6XFx0LnRnX2xpc3RlbiA9IG5mY3NpbV90Z19saXN0ZW4sXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzI3OlxcdC50Z19jb25maWd1cmVfaHcgPSBuZmNzaW1fdGdfY29uZmlndXJlX2h3LFxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjMyODpcXHQudGdfc2VuZF9jbWQgPSBuZmNzaW1fdGdfc2VuZF9jbWQsXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzI5LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjMzMDpcXHQuYWJvcnRfY21kID0gbmZjc2ltX2Fib3J0X2NtZCxcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozMzE6XFx0LnN3aXRjaF9yZiA9IG5mY3NpbV9zd2l0Y2hfcmYsXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzMyLX07XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzMzLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjMzNDpzdGF0aWMgc3RydWN0IGRlbnRyeSAqbmZjc2ltX2RlYnVnZnNfcm9vdDtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMzUtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzM2OnN0YXRpYyB2b2lkIG5mY3NpbV9kZWJ1Z2ZzX2luaXQodm9pZClcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMzcte1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjMzODpcXHRuZmNzaW1fZGVidWdmc19yb290ID0gZGVidWdmc19jcmVhdGVfZGlyKFxcXCJuZmNzaW1cXFwiLCBOVUxMKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zMzktfVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM0MC1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozNDE6c3RhdGljIHZvaWQgbmZjc2ltX2RlYnVnZnNfcmVtb3ZlKHZvaWQpXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzQyLXtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozNDM6XFx0ZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKG5mY3NpbV9kZWJ1Z2ZzX3Jvb3QpO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM0NC19XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzQ1LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjM0NjpzdGF0aWMgdm9pZCBuZmNzaW1fZGVidWdmc19pbml0X2RldihzdHJ1Y3QgbmZjc2ltICpkZXYpXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzQ3LXtcXG4tLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM1Mi1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozNTM6XFx0aWYgKCFuZmNzaW1fZGVidWdmc19yb290KSB7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzU0OlxcdFxcdE5GQ1NJTV9FUlIoZGV2LCBcXFwibmZjc2ltIGRlYnVnZnMgbm90IGluaXRpYWxpemVkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zNTUtXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzY0LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjM2NTpcXHRkZXZfZGlyID0gZGVidWdmc19jcmVhdGVfZGlyKGRldm5hbWUsIG5mY3NpbV9kZWJ1Z2ZzX3Jvb3QpO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM2Ni1cXG4tLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM2OS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozNzA6c3RhdGljIHN0cnVjdCBuZmNzaW0gKm5mY3NpbV9kZXZpY2VfbmV3KHN0cnVjdCBuZmNzaW1fbGluayAqbGlua19pbixcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozNzE6XFx0XFx0XFx0XFx0XFx0c3RydWN0IG5mY3NpbV9saW5rICpsaW5rX291dClcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zNzIte1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjM3MzpcXHRzdHJ1Y3QgbmZjc2ltICpkZXY7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzc0LVxcdGludCByYztcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zNzUtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6Mzc2OlxcdGRldiA9IGt6YWxsb2Nfb2JqKHN0cnVjdCBuZmNzaW0pO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM3Ny1cXHRpZiAoIWRldilcXG4tLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTM3OS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozODA6XFx0SU5JVF9ERUxBWUVEX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlc2VuZF93b3JrLCBuZmNzaW1fc2VuZF93cSk7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6MzgxOlxcdElOSVRfV09SSyhcXHUwMDI2ZGV2LVxcdTAwM2VyZWN2X3dvcmssIG5mY3NpbV9yZWN2X3dxKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy0zODItXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzgzLVxcdGRldi1cXHUwMDNlbmZjX2RpZ2l0YWxfZGV2ID1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzozODQ6XFx0XFx0XFx0bmZjX2RpZ2l0YWxfYWxsb2NhdGVfZGV2aWNlKFxcdTAwMjZuZmNzaW1fZGlnaXRhbF9vcHMsXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtMzg1LVxcdFxcdFxcdFxcdFxcdFxcdCAgICBORkNfUFJPVE9fTkZDX0RFUF9NQVNLLFxcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDA2LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQwNzpcXHRuZmNzaW1fZGVidWdmc19pbml0X2RldihkZXYpO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQwOC1cXG4tLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQxMS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0MTI6c3RhdGljIHZvaWQgbmZjc2ltX2RldmljZV9mcmVlKHN0cnVjdCBuZmNzaW0gKmRldilcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00MTMte1xcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDE3LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQxODpcXHRuZmNzaW1fbGlua19zaHV0ZG93bihkZXYtXFx1MDAzZWxpbmtfaW4pO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQxOS1cXG4tLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQyNy1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0Mjg6c3RhdGljIHN0cnVjdCBuZmNzaW0gKmRldjA7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDI5OnN0YXRpYyBzdHJ1Y3QgbmZjc2ltICpkZXYxO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQzMC1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0MzE6c3RhdGljIGludCBfX2luaXQgbmZjc2ltX2luaXQodm9pZClcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00MzIte1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQzMzpcXHRzdHJ1Y3QgbmZjc2ltX2xpbmsgKmxpbmswLCAqbGluazE7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDM0LVxcdGludCByYztcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00MzUtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDM2OlxcdGxpbmswID0gbmZjc2ltX2xpbmtfbmV3KCk7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDM3OlxcdGxpbmsxID0gbmZjc2ltX2xpbmtfbmV3KCk7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDM4LVxcdGlmICghbGluazAgfHwgIWxpbmsxKSB7XFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NDItXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDQzOlxcdG5mY3NpbV9kZWJ1Z2ZzX2luaXQoKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NDQtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDQ1OlxcdGRldjAgPSBuZmNzaW1fZGV2aWNlX25ldyhsaW5rMCwgbGluazEpO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ0Ni1cXHRpZiAoSVNfRVJSKGRldjApKSB7XFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NTAtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDUxOlxcdGRldjEgPSBuZmNzaW1fZGV2aWNlX25ldyhsaW5rMSwgbGluazApO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ1Mi1cXHRpZiAoSVNfRVJSKGRldjEpKSB7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDUzOlxcdFxcdG5mY3NpbV9kZXZpY2VfZnJlZShkZXYwKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NTQtXFxuLS1cXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NTgtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDU5OlxcdHByX2luZm8oXFxcIm5mY3NpbSBcXFwiIE5GQ1NJTV9WRVJTSU9OIFxcXCIgaW5pdGlhbGl6ZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ2MC1cXG4tLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ2My1leGl0X2VycjpcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0NjQ6XFx0cHJfZXJyKFxcXCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBuZmNzaW0gZHJpdmVyICglZClcXFxcblxcXCIsIHJjKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NjUtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDY2LVxcdGlmIChsaW5rMClcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0Njc6XFx0XFx0bmZjc2ltX2xpbmtfZnJlZShsaW5rMCk7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDY4LVxcdGlmIChsaW5rMSlcXG5kcml2ZXJzL25mYy9uZmNzaW0uYzo0Njk6XFx0XFx0bmZjc2ltX2xpbmtfZnJlZShsaW5rMSk7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDcwLVxcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDczLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ3NDpzdGF0aWMgdm9pZCBfX2V4aXQgbmZjc2ltX2V4aXQodm9pZClcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00NzUte1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ3NjpcXHRzdHJ1Y3QgbmZjc2ltX2xpbmsgKmxpbmswLCAqbGluazE7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDc3LVxcbi0tXFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDgwLVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ4MTpcXHRuZmNzaW1fZGV2aWNlX2ZyZWUoZGV2MCk7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDgyOlxcdG5mY3NpbV9kZXZpY2VfZnJlZShkZXYxKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00ODMtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDg0OlxcdG5mY3NpbV9saW5rX2ZyZWUobGluazApO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ4NTpcXHRuZmNzaW1fbGlua19mcmVlKGxpbmsxKTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00ODYtXFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDg3OlxcdG5mY3NpbV9kZWJ1Z2ZzX3JlbW92ZSgpO1xcbmRyaXZlcnMvbmZjL25mY3NpbS5jLTQ4OC19XFxuZHJpdmVycy9uZmMvbmZjc2ltLmMtNDg5LVxcbmRyaXZlcnMvbmZjL25mY3NpbS5jOjQ5MDptb2R1bGVfaW5pdChuZmNzaW1faW5pdCk7XFxuZHJpdmVycy9uZmMvbmZjc2ltLmM6NDkxOm1vZHVsZV9leGl0KG5mY3NpbV9leGl0KTtcXG5kcml2ZXJzL25mYy9uZmNzaW0uYy00OTItXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDExOjM4OjIyLjg2NTQ3MTI2MVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1OTM3MDY2MDM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSW1wbGljYXRpb25zIG9mIHRoZSBORkMgQ29uZmlndXJhdGlvbiBDaGFuZ2UqKlxuXG5Pa2F5LCBzbyBJIHNlZSB0aGlzIHBhdGNoLCBhbmQgaXQncyBtb2RpZnlpbmcgdGhlIGBuZmNzaW1gIGNvbmZpZ3VyYXRpb24gc3BlY2lmaWNhbGx5IHdpdGggYENPTkZJR19ORkNfU0lNYC4gVGhlIGFjdHVhbCBjb2RlIGNoYW5nZSByZXBsYWNlcyBgY2FuY2VsX3dvcmtfc3luY2Agd2l0aCBgZGlzYWJsZV93b3JrX3N5bmNgIHdpdGhpbiBgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VgLiBGdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBjaGFuZ2UgdGhhdCBuZWVkcyBjYXJlZnVsIGNvbnNpZGVyYXRpb24uXG5cbkxldCdzIGJyZWFrIGRvd24gd2hlcmUgdGhpcyBpbXBhY3RzIHRoaW5ncy4gYG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlYCBpcyBpbnZva2VkIHdoZW4gYSBkZXZpY2UgaXMgdW5yZWdpc3RlcmVkLiBUaGF0J3MgZWl0aGVyIG1vZHVsZSB1bmxvYWRpbmcsIG9yIHBoeXNpY2FsIGRpc2Nvbm5lY3Rpb24uIEluIGBuZmNzaW1gLCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbnNpZGUgYG5mY3NpbV9kZXZpY2VfZnJlZWAsIHdoaWNoIGdldHMgY2FsbGVkIGVpdGhlciBmcm9tIGBuZmNzaW1fZXhpdGAgb3IgZnJvbSBhbiBlcnJvciBjb25kaXRpb24gaW4gYG5mY3NpbV9pbml0YC5cblxuV2FpdCwgZG9lcyBgbmZjc2ltYCBnZXQgZHluYW1pY2FsbHkgY3JlYXRlZCBhbmQgZGVzdHJveWVkPyBObywgaXQncyBhIG1vZHVsZSwgaXQgc2VlbXMgcHJldHR5IHN0YXRpYy4gQnV0IGhvbGQgb24sIHdoYXQgYWJvdXQgdGhlIGRldmljZXMgaXQgKmludGVyZmFjZXMqIHdpdGg/IGBwb3J0MTAwYCBpcyBhIFVTQiBkcml2ZXIsIHNvIGl0ICpjYW4qIGJlIGhvdHBsdWdnZWQuIEFuZCB0aGVuIGBzdDk1aGZgIGFuZCBgdHJmNzk3MGFgIGFyZSBTUEkgZHJpdmVycywgc28gdGhleSAqY2FuKiBiZSB1bmJvdW5kLiBUaGF0J3Mgd2hlcmUgdGhpbmdzIGdldCBpbnRlcmVzdGluZy4gRnV6emluZywgZm9yIGV4YW1wbGUsIGNvdWxkIHRyaWdnZXIgZGV2aWNlIHVuYmluZGluZyB2aWEgc3lzZnMgb3IgYSBVU0IgZGlzY29ubmVjdCB2aWEgYSBkdW1teSBIQ0QuXG5cblRoZXJlZm9yZSwgYG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlYCBpcyBkZWZpbml0ZWx5IGEgcmVhY2hhYmxlIGNvZGUgcGF0aC4gVGltZSB0byBnbyBiYWNrIGFuZCBkb3VibGUgY2hlY2sgYG5ldC9uZmMvZGlnaXRhbF9jb3JlLmNgIGFnYWluIGFuZCBjb25maXJtIG15IHVuZGVyc3RhbmRpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMzA4LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjU3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDExOjM4OjI4LjgwMjU0MDY5NVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQ3OTU4MDQzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9uZmMvZGlnaXRhbF9jb3JlLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L25mYy9kaWdpdGFsX2NvcmUuYz04MzM9RVhQT1JUX1NZTUJPTChuZmNfZGlnaXRhbF9yZWdpc3Rlcl9kZXZpY2UpO1xcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmMtODM0LVxcbm5ldC9uZmMvZGlnaXRhbF9jb3JlLmM6ODM1OnZvaWQgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG5mY19kaWdpdGFsX2RldiAqZGRldilcXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTgzNi17XFxuLS1cXG5uZXQvbmZjL2RpZ2l0YWxfY29yZS5jLTg2Mi19XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYzo4NjM6RVhQT1JUX1NZTUJPTChuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZSk7XFxubmV0L25mYy9kaWdpdGFsX2NvcmUuYy04NjQtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDExOjM4OjI5LjI1MDUwMzA3N1oiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTM3NjIxMDMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYW5hbHlzaXMgb2YgdGhlIGBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZWAgZnVuY3Rpb246XG5cbioqRGlzc2VjdGluZyBgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VgKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlYCBmdW5jdGlvbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgaXRzIGNvcmUgcHVycG9zZTogaXQncyBkZXNpZ25lZCB0byAqdW5yZWdpc3RlciogYW4gTkZDIGRpZ2l0YWwgZGV2aWNlLCB3aGljaCBpbXBsaWVzIHdlJ3JlIHRha2luZyBpdCBvdXQgb2YgdGhlIHN5c3RlbS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGF0IHJlbW92YWwuIFdoYXQgcmVzb3VyY2VzIGFyZSBiZWluZyBmcmVlZD8gQXJlIHRoZXJlIGFueSBhc3NvY2lhdGVkIGRhdGEgc3RydWN0dXJlcyBvciBjYWxsYmFja3MgdGhhdCBuZWVkIHRvIGJlIGNsZWFuZWQgdXA/XG5cbkknbSBpbW1lZGlhdGVseSB0aGlua2luZyBhYm91dCBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zLiBVbnJlZ2lzdHJhdGlvbiBsaWtlbHkgbmVlZHMgdG8gYmUgdGhyZWFkLXNhZmUuIEkgbmVlZCB0byBjaGVjayBmb3IgYW55IGxvY2tpbmcgbWVjaGFuaXNtcyB1c2VkIHdpdGhpbiB0aGlzIGZ1bmN0aW9uIHRvIHByb3RlY3Qgc2hhcmVkIHJlc291cmNlcywgZXNwZWNpYWxseSBpZiB0aGUgTkZDIGRldmljZSBpcyBhY3RpdmVseSBiZWluZyB1c2VkIGJ5IGFub3RoZXIgcHJvY2Vzcy4gVGhpcyBjb3VsZCBiZSBhIGNyaXRpY2FsIGFyZWEsIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gY3Jhc2hlcyBvciBkYXRhIGNvcnJ1cHRpb24gaWYgbm90IGhhbmRsZWQgY2FyZWZ1bGx5LlxuXG5GdXJ0aGVybW9yZSwgSSBoYXZlIHRvIGNvbnNpZGVyIHRoZSBvcmRlciBvZiBvcGVyYXRpb25zLiBXaGF0IGhhcHBlbnMgaWYgdGhpcyB1bnJlZ2lzdHJhdGlvbiBvY2N1cnMgd2hpbGUgYSB0cmFuc2FjdGlvbiBpcyBpbiBwcm9ncmVzcz8gRG9lcyBpdCBncmFjZWZ1bGx5IGhhbmRsZSBwZW5kaW5nIG9wZXJhdGlvbnMsIG9yIGRvZXMgaXQgc2ltcGx5IGFib3J0IHRoZW0/IEFyZSB0aGVyZSBhbnkgY2xlYW51cCBwcm9jZWR1cmVzIGZvciBpbmNvbXBsZXRlIGNvbW1hbmRzIG9yIGRhdGEgZXhjaGFuZ2VzPyBUaGUgdGltaW5nIGhlcmUgaXMga2V5LlxuXG5NeSBmb2N1cyBzaG91bGQgYmUgb24gaG93IHRoZSB1bnJlZ2lzdHJhdGlvbiBhZmZlY3RzIG90aGVyIG1vZHVsZXMgb3Igc3Vic3lzdGVtcy4gRG9lcyBpdCBub3RpZnkgYW55IGxpc3RlbmVycyBvciBjbGllbnRzIGFib3V0IHRoZSByZW1vdmFsPyBJcyB0aGVyZSBhbnkgbWVjaGFuaXNtIGZvciBwcmV2ZW50aW5nIG5ldyBvcGVyYXRpb25zIG9uIHRoZSB1bnJlZ2lzdGVyZWQgZGV2aWNlPyBJIG5lZWQgdG8gbG9vayBmb3IgY2FsbHMgdG8gb3RoZXIgTkZDLXJlbGF0ZWQgZnVuY3Rpb25zLCBhbmQgY29uc2lkZXIgaG93IHRoZSBzdGF0ZSBpcyBiZWluZyBtYW5hZ2VkIGFjcm9zcyB0aGUgc3lzdGVtIGR1cmluZyB0aGlzIHRyYW5zaXRpb24uXG5cbkkgc2hvdWxkIGFsc28gYmUgb24gdGhlIGxvb2tvdXQgZm9yIG1lbW9yeSBsZWFrcyBvciBkYW5nbGluZyBwb2ludGVycy4gQXJlIHRoZSBkZXZpY2UncyBhc3NvY2lhdGVkIGRhdGEgc3RydWN0dXJlcyBwcm9wZXJseSBkZWFsbG9jYXRlZD8gQXJlIHRoZXJlIGFueSBwb3RlbnRpYWwgaXNzdWVzIHdpdGggZG91YmxlLWZyZWVzIG9yIGludmFsaWQgbWVtb3J5IGFjY2Vzc2VzIGFmdGVyIHRoZSB1bnJlZ2lzdHJhdGlvbj8gVGhpcyB1bnJlZ2lzdHJhdGlvbiBpcyBhIGNyaXRpY2FsIHBvaW50IHRoYXQgY2FuIGVhc2lseSBsZWFkIHRvIGEgc3lzdGVtIGNyYXNoIGlmIG5vdCBkb25lIGNvcnJlY3RseS4gSSB3YW50IHRvIHBheSBhdHRlbnRpb24gdG8gdGhhdC5cblxuRmluYWxseSwgZXJyb3IgaGFuZGxpbmcgaXMgZ29pbmcgdG8gYmUgY3J1Y2lhbC4gSG93IGRvZXMgdGhpcyBmdW5jdGlvbiBkZWFsIHdpdGggZmFpbHVyZXMgZHVyaW5nIHRoZSB1bnJlZ2lzdHJhdGlvbiBwcm9jZXNzPyBEb2VzIGl0IHJldHVybiBzcGVjaWZpYyBlcnJvciBjb2Rlcywgb3IgZG9lcyBpdCBzaW1wbHkgbG9nIGVycm9ycz8gVGhlIGVycm9yIGhhbmRsaW5nIHNjaGVtZSBuZWVkcyB0byBiZSByb2J1c3QsIHBhcnRpY3VsYXJseSBmb3IgYSBjcml0aWNhbCBmdW5jdGlvbiBsaWtlIHRoaXMgdGhhdCBjYW4gYWZmZWN0IHRoZSBzdGFiaWxpdHkgb2YgdGhlIGVudGlyZSBORkMgc3RhY2suXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMTE3LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTE6Mzg6MzQuMTg4MTI2OTExWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyOTY1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvbmZjL2RpZ2l0YWxfY29yZS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDgzMCxcbiAgXCJMaW5lQ291bnRcIjogNDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDgzMDpcXHR7XFxuIDgzMTpcXHRcXHRyZXR1cm4gbmZjX3JlZ2lzdGVyX2RldmljZShkZGV2LVxcdTAwM2VuZmNfZGV2KTtcXG4gODMyOlxcdH1cXG4gODMzOlxcdEVYUE9SVF9TWU1CT0wobmZjX2RpZ2l0YWxfcmVnaXN0ZXJfZGV2aWNlKTtcXG4gODM0OlxcdFxcbiA4MzU6XFx0dm9pZCBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbmZjX2RpZ2l0YWxfZGV2ICpkZGV2KVxcbiA4MzY6XFx0e1xcbiA4Mzc6XFx0XFx0c3RydWN0IGRpZ2l0YWxfY21kICpjbWQsICpuO1xcbiA4Mzg6XFx0XFxuIDgzOTpcXHRcXHRuZmNfdW5yZWdpc3Rlcl9kZXZpY2UoZGRldi1cXHUwMDNlbmZjX2Rldik7XFxuIDg0MDpcXHRcXG4gODQxOlxcdFxcdG11dGV4X2xvY2soXFx1MDAyNmRkZXYtXFx1MDAzZXBvbGxfbG9jayk7XFxuIDg0MjpcXHRcXHRkZGV2LVxcdTAwM2Vwb2xsX3RlY2hfY291bnQgPSAwO1xcbiA4NDM6XFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZkZGV2LVxcdTAwM2Vwb2xsX2xvY2spO1xcbiA4NDQ6XFx0XFxuIDg0NTpcXHRcXHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXFx1MDAyNmRkZXYtXFx1MDAzZXBvbGxfd29yayk7XFxuIDg0NjpcXHRcXHRkaXNhYmxlX3dvcmtfc3luYyhcXHUwMDI2ZGRldi1cXHUwMDNlY21kX3dvcmspO1xcbiA4NDc6XFx0XFx0ZGlzYWJsZV93b3JrX3N5bmMoXFx1MDAyNmRkZXYtXFx1MDAzZWNtZF9jb21wbGV0ZV93b3JrKTtcXG4gODQ4OlxcdFxcbiA4NDk6XFx0XFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGNtZCwgbiwgXFx1MDAyNmRkZXYtXFx1MDAzZWNtZF9xdWV1ZSwgcXVldWUpIHtcXG4gODUwOlxcdFxcdFxcdGxpc3RfZGVsKFxcdTAwMjZjbWQtXFx1MDAzZXF1ZXVlKTtcXG4gODUxOlxcdFxcbiA4NTI6XFx0XFx0XFx0LyogQ2FsbCB0aGUgY29tbWFuZCBjYWxsYmFjayBpZiBhbnkgYW5kIHBhc3MgaXQgYSBFTk9ERVYgZXJyb3IuXFxuIDg1MzpcXHRcXHRcXHQgKiBUaGlzIGdpdmVzIGEgY2hhbmNlIHRvIHRoZSBjb21tYW5kIGlzc3VlciB0byBmcmVlIGFueVxcbiA4NTQ6XFx0XFx0XFx0ICogYWxsb2NhdGVkIGJ1ZmZlci5cXG4gODU1OlxcdFxcdFxcdCAqL1xcbiA4NTY6XFx0XFx0XFx0aWYgKGNtZC1cXHUwMDNlY21kX2NiKVxcbiA4NTc6XFx0XFx0XFx0XFx0Y21kLVxcdTAwM2VjbWRfY2IoZGRldiwgY21kLVxcdTAwM2VjYl9jb250ZXh0LCBFUlJfUFRSKC1FTk9ERVYpKTtcXG4gODU4OlxcdFxcbiA4NTk6XFx0XFx0XFx0a2ZyZWUoY21kLVxcdTAwM2VtZGFhX3BhcmFtcyk7XFxuIDg2MDpcXHRcXHRcXHRrZnJlZShjbWQpO1xcbiA4NjE6XFx0XFx0fVxcbiA4NjI6XFx0fVxcbiA4NjM6XFx0RVhQT1JUX1NZTUJPTChuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZSk7XFxuIDg2NDpcXHRcXG4gODY1OlxcdE1PRFVMRV9ERVNDUklQVElPTihcXFwiTkZDIERpZ2l0YWwgcHJvdG9jb2wgc3RhY2tcXFwiKTtcXG4gODY2OlxcdE1PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTE6Mzg6MzQuMTg4MjU4MDgxWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQzNDg1NTk3MTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBORkMgRGlnaXRhbCBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHN3aXRjaGluZyBgY2FuY2VsX3dvcmtfc3luY2AgdG8gYGRpc2FibGVfd29ya19zeW5jYCBmb3IgdGhvc2UgYGNtZF93b3JrYCBhbmQgYGNtZF9jb21wbGV0ZV93b3JrYCBzdHJ1Y3R1cmVzLiBJbW1lZGlhdGVseSwgdGhhdCB0ZWxscyBtZSB0aGlzIGlzIGFib3V0IHJlc291cmNlIG1hbmFnZW1lbnQsIHNwZWNpZmljYWxseSBhZnRlciB1bnJlZ2lzdGVyaW5nIHRoZSBkZXZpY2UuIFRoZSBnb2FsIGlzIGNsZWFybHkgdG8gcHJldmVudCBzb21lIHNvcnQgb2YgbmFzdHkgaXNzdWUgbGlrZSBhIHVzZS1hZnRlci1mcmVlIHNpdHVhdGlvbiwgb3Igc29tZXRoaW5nIHNpbWlsYXIsIGlmIHRoZSB3b3JrIHF1ZXVlcyBhcmUgcmVhY3RpdmF0ZWQgYWZ0ZXIgYG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlYCBmaW5pc2hlcy4gVGhhdCBtYWtlcyBwZXJmZWN0IHNlbnNlOyBjYXJlZnVsIHN5bmNocm9uaXphdGlvbiBpcyBrZXkgaW4gYW55IGRyaXZlciwgZXNwZWNpYWxseSB3aXRoIE5GQyBkZXZpY2VzLlxuXG5BbHJpZ2h0LCBJIG5lZWQgdG8ga2VlcCBpbiBtaW5kIHRoYXQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIGhlcmUgYXJlIGBORkNfRElHSVRBTGAsIGFuZCBlaXRoZXIgYE5GQ19TSU1gIG9yIGBORkNfUE9SVDEwMGAuIE5vdywgSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgdGhlIGRlcGVuZGVuY2llcyBmb3IgYE5GQ19ESUdJVEFMYCB0byBnZXQgYSBnb29kIGhhbmRsZSBvbiB0aGUgb3ZlcmFsbCBjb250ZXh0LiBMZXQncyBzZWUgd2hhdCB0aGF0IHJldmVhbHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMjAxLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTEyLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTE6Mzg6MzguNTM2ODMyMzA4WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTkwMzUyODUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE5GQ19ESUdJVEFMXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9uZmMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9uZmMvS2NvbmZpZz02PW1lbnVjb25maWcgTkZDXFxuLS1cXG5uZXQvbmZjL0tjb25maWctMTYtXFxubmV0L25mYy9LY29uZmlnOjE3OmNvbmZpZyBORkNfRElHSVRBTFxcbm5ldC9uZmMvS2NvbmZpZy0xOC1cXHRkZXBlbmRzIG9uIE5GQ1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQxMTozODozOC42NTU4NzIwMzNaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDkxNDAyNDQ5NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3Mgc2VlLCBteSBtZW50YWwgZ2VhcnMgYXJlIHN0YXJ0aW5nIHRvIHR1cm4uICoqQW5hbHl6aW5nIE5GQyBDb25maWd1cmF0aW9ucyoqXG5cbkFscmlnaHQsIEknbSB0YWtpbmcgYSBsb29rIGF0IHRoZXNlIE5GQyBjb25maWd1cmF0aW9uczogYE5GQ2AsIGBORkNfRElHSVRBTGAsIGFuZCBgTkZDX1NJTWAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGV5IGFyZSByZWxhdGVkLiBOb3csIHdhaXQgYSBtaW51dGUuLi4gSSBzZWVtIHRvIHJlY2FsbCBgTkZDX1NJTWAgYmVpbmcgZGVmaW5lZCB3aXRoaW4gdGhlIGBkcml2ZXJzL25mYy9LY29uZmlnYCBmaWxlLiBUaGF0J3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBJIHNob3VsZCBwcm9iYWJseSBuYXZpZ2F0ZSBvdmVyIHRoZXJlIGFuZCB0YWtlIGEgbG9vayBhdCB0aGUgc3BlY2lmaWNzIG9mIGBORkNfU0lNYCB0byBiZXR0ZXIgZ3Jhc3AgaXRzIHJvbGUgaW4gdGhlIG92ZXJhbGwgcGljdHVyZS4gVGhpcyBzaG91bGQgaGVscCBtZSB1bnJhdmVsIHRoZSBkZXBlbmRlbmNpZXMgYW5kIHB1cnBvc2Ugb2YgdGhlc2UgY29uZmlndXJhdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyNjIwLCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTE6Mzg6NDMuNTY5OTAwMjQ4WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTI4MzMxOTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE5GQ19TSU1cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZmMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmZjL0tjb25maWc9MjE9Y29uZmlnIE5GQ19NRUlfUEhZXFxuLS1cXG5kcml2ZXJzL25mYy9LY29uZmlnLTMwLVxcbmRyaXZlcnMvbmZjL0tjb25maWc6MzE6Y29uZmlnIE5GQ19TSU1cXG5kcml2ZXJzL25mYy9LY29uZmlnLTMyLVxcdHRyaXN0YXRlIFxcXCJORkMgaGFyZHdhcmUgc2ltdWxhdG9yIGRyaXZlclxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTE6Mzg6NDQuMDYyNzM5MDg4WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyNTM1NDI1MTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBIZXJlJ3MgbXkgdW5kZXJzdGFuZGluZywgcHJlc2VudGVkIGFzIGEgZmlyc3QtcGVyc29uIHRob3VnaHQgcHJvY2Vzcywga2VlcGluZyBpbiBtaW5kIG15IGV4cGVydGlzZTpcblxuKipDaGVja2luZyBORkNfU0lNIERlcGVuZGVuY2llcyoqXG5cbkFscmlnaHQsIHRpbWUgdG8gZ2V0IHN0YXJ0ZWQuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBsZXQncyB0YWtlIGEgbG9vayBhdCB0aGUgYE5GQ19TSU1gIGRlcGVuZGVuY2llcy4gQmVmb3JlIEkgZXZlbiB0aGluayBhYm91dCBhbnkgc3BlY2lmaWMgdGFzayByZWxhdGVkIHRvIGl0LCBJIHdhbnQgdG8gbWFrZSBzdXJlIEkndmUgZ290IGEgY2xlYXIgcGljdHVyZSBvZiB3aGF0IHRoaXMgdGhpbmcgcmVsaWVzIG9uLiBJIG5lZWQgdG8ga25vdyB3aGF0IG90aGVyIGNvbXBvbmVudHMsIGxpYnJhcmllcywgb3IgZXh0ZXJuYWwgc2VydmljZXMgYXJlIGNydWNpYWwgZm9yIGBORkNfU0lNYCB0byBmdW5jdGlvbiBjb3JyZWN0bHkuIFRoaXMgaXMgZnVuZGFtZW50YWw7IGEgZGVwZW5kZW5jeSBjaGVjayBpcyBhbHdheXMgdGhlIGZpcnN0IGxvZ2ljYWwgc3RlcC4gTWFrZXMgcGVyZmVjdCBzZW5zZSB0byBkbyB0aGF0IHVwIGZyb250IGFuZCBrZWVwIHRoZSBtb21lbnR1bSBnb2luZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI5MjUsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQxMTozODo0OC4zMTYyODQyOTlaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA1NjMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmZjL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMzEsXG4gIFwiTGluZUNvdW50XCI6IDEwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgMzE6XFx0Y29uZmlnIE5GQ19TSU1cXG4gIDMyOlxcdFxcdHRyaXN0YXRlIFxcXCJORkMgaGFyZHdhcmUgc2ltdWxhdG9yIGRyaXZlclxcXCJcXG4gIDMzOlxcdFxcdGRlcGVuZHMgb24gTkZDX0RJR0lUQUxcXG4gIDM0OlxcdFxcdGhlbHBcXG4gIDM1OlxcdFxcdCAgVGhpcyBkcml2ZXIgZGVjbGFyZXMgdHdvIHZpcnR1YWwgTkZDIGRldmljZXMgc3VwcG9ydGluZyBORkMtREVQXFxuICAzNjpcXHRcXHQgIHByb3RvY29sLiBBbiBMTENQIGNvbm5lY3Rpb24gY2FuIGJlIGVzdGFibGlzaGVkIGJldHdlZW4gdGhlbSBhbmRcXG4gIDM3OlxcdFxcdCAgYWxsIHBhY2tldHMgc2VudCBmcm9tIG9uZSBkZXZpY2UgaXMgc2VudCBiYWNrIHRvIHRoZSBvdGhlciwgYWN0aW5nIGFzXFxuICAzODpcXHRcXHQgIGxvb3BiYWNrIGRldmljZXMuXFxuICAzOTpcXHRcXG4gIDQwOlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgTi5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTE6Mzg6NDguMzE2MzkyMzM5WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU5MjU2NDg2ODQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCBtZSBicmVhayB0aGlzIGRvd24uXG5cbioqTXkgQW5hbHlzaXMgb2YgTkZDIERlcGVuZGVuY2llcyBhbmQgQ29uZmlndXJhdGlvbnMqKlxuXG5BbHJpZ2h0LCBsZXQncyBzZWUuIEl0J3MgY2xlYXIgdGhhdCBgTkZDX1NJTWAgaGFzIGEgZGVwZW5kZW5jeSBvbiBgTkZDX0RJR0lUQUxgLiBUaGF0J3MgdGhlIGJhc2VsaW5lLiBUaGlua2luZyBhYm91dCB0aGUgY29uZmlndXJhdGlvbnMsIEkgbmVlZCB0byBlbmFibGUgYE5GQ2AsIGBORkNfRElHSVRBTGAsIGFuZCBgTkZDX1NJTWAgdG8gZ2V0IGV2ZXJ5dGhpbmcgd29ya2luZyBhcyBleHBlY3RlZCwgdGhhdCBtdWNoIGlzIG9idmlvdXMuIEJ1dCBob2xkIG9uLCBJIHNob3VsZCBhbHNvIGNvbnNpZGVyIGBORkNfUE9SVDEwMGAuIEkgbmVlZCB0byBldmFsdWF0ZSB3aGV0aGVyIHRoYXQgY291bGQgYmUgdXNlZnVsIHRvIGVuYWJsZSBhcyB3ZWxsLCBnaXZlbiB0aGUgY29udGV4dC4gSSdsbCBoYXZlIHRvIGludmVzdGlnYXRlIHRoYXQgZnVydGhlci5cblxuXG4iLCJJbnB1dFRva2VucyI6MjMyNzEsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDExOjM4OjU0LjI0MjA0Mzk3M1oiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTMxMDYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmZjL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogNDIsXG4gIFwiTGluZUNvdW50XCI6IDEwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgNDI6XFx0Y29uZmlnIE5GQ19QT1JUMTAwXFxuICA0MzpcXHRcXHR0cmlzdGF0ZSBcXFwiU29ueSBORkMgUG9ydC0xMDAgU2VyaWVzIFVTQiBkZXZpY2Ugc3VwcG9ydFxcXCJcXG4gIDQ0OlxcdFxcdGRlcGVuZHMgb24gVVNCXFxuICA0NTpcXHRcXHRkZXBlbmRzIG9uIE5GQ19ESUdJVEFMXFxuICA0NjpcXHRcXHRoZWxwXFxuICA0NzpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBTb255IFBvcnQtMTAwIGNoaXAgYmFzZWQgVVNCIGRldmljZXMgc3VjaCBhcyB0aGVcXG4gIDQ4OlxcdFxcdCAgUkMtUzM4MCBkb25nbGUuXFxuICA0OTpcXHRcXG4gIDUwOlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgTi5cXG4gIDUxOlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQxMTozODo1NC4yNDMxNzc2ODNaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTA0OTAxNjc1ODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgRnV6emluZyBTdHJhdGVneSBmb3IgVGhpcyBORkMgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gYE5GQ19QT1JUMTAwYCBsb29rcyBsaWtlIGFub3RoZXIgdmFsaWQgcG9pbnQgdG8ga2VlcCBpbiBtaW5kLCBidXQgdGhlIGtleSBmdW5jdGlvbiBoZXJlIGlzIGRlZmluaXRlbHkgYG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlYC4gVGhhdCdzIHRoZSBjb3JlIG9mIHRoZSBwYXRjaCwgdGhlIGZ1bmN0aW9uIHRoYXQgd2FzIGFjdHVhbGx5IG1vZGlmaWVkLiBNeSBmdXp6aW5nIGVmZm9ydHMgbmVlZCB0byB6ZXJvIGluIG9uIGl0LlxuXG5Ob3csIHdoYXQgb3RoZXIgZnVuY3Rpb25zIGFyZSByZWxhdGVkPyBUaGlua2luZyBhYm91dCB3aGF0IHRoZSBwYXRjaCBpcyAqZG9pbmcqLCBpdCdzIGFib3V0IHByZXZlbnRpbmcgd29yayBmcm9tIGhhcHBlbmluZyAqYWZ0ZXIqIHRoYXQgdW5yZWdpc3RyYXRpb24uIFRoYXQgbWVhbnMgSSBuZWVkIHRvIGNhcmVmdWxseSBhbmFseXplIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBgbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VgIGFuZCB0aGUgd29ya3F1ZXVlIGZ1bmN0aW9ucy4gU28sIEkgaGF2ZSB0byBmb2N1cyBvbiBgZGlnaXRhbF93cV9jbWRgIGFuZCBgZGlnaXRhbF93cV9jbWRfY29tcGxldGVgIGZvciBhIG1vcmUgdGhvcm91Z2ggYW5hbHlzaXMuXG5cbkNvbnNpZGVyaW5nIHRoZSBwYXRjaCdzIHB1cnBvc2UsIEknbGwgZGVmaW5pdGVseSB3YW50IHRvIGZvY3VzIG9uIGBuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZWAsIGFuZCBub3cgSSBzZWUgdGhlIGZ1bGwgcGljdHVyZS4gU28gSSBtdXN0IGFsc28gaW5jbHVkZSBgZGlnaXRhbF93cV9jbWRgLCBgZGlnaXRhbF93cV9jbWRfY29tcGxldGVgLCBhcyB3ZWxsIGFzIGBkaWdpdGFsX3NlbmRfY21kYCwgYGRpZ2l0YWxfc2VuZF9jbWRfY29tcGxldGVgLiBUaGF0IGNvdmVycyB0aGUgd2hvbGUgc3BlY3RydW0gb2YgZnVuY3Rpb25zIHRoYXQgYXJlIGNvbm5lY3RlZCBpbiBhbnkgd2F5IHRvIHRoZSB1bnJlZ2lzdGVyIGZ1bmN0aW9uLiBUaGV5J3JlIGFsbCBwcmltZSB0YXJnZXRzIGZvciBmdXp6aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzY0MCwiT3V0cHV0VG9rZW5zIjoxODUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQxMTozOTowNC43MzMzNDgyMDZaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjk4NzgwMzUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5GQ1wiLFxuICAgIFwiTkZDX0RJR0lUQUxcIixcbiAgICBcIk5GQ19TSU1cIixcbiAgICBcIk5GQ19QT1JUMTAwXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2VcIixcbiAgICBcImRpZ2l0YWxfd3FfY21kXCIsXG4gICAgXCJkaWdpdGFsX3dxX2NtZF9jb21wbGV0ZVwiLFxuICAgIFwiZGlnaXRhbF9zZW5kX2NtZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlcGxhY2VzIGNhbmNlbF93b3JrX3N5bmMgd2l0aCBkaXNhYmxlX3dvcmtfc3luYyBmb3IgY21kX3dvcmsgYW5kIGNtZF9jb21wbGV0ZV93b3JrIGluIG5mY19kaWdpdGFsX3VucmVnaXN0ZXJfZGV2aWNlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBwcmV2ZW50cyB3b3JrcyBmcm9tIGJlaW5nIHJlLXF1ZXVlZCBvciBleGVjdXRlZCBhZnRlciB0aGUgZGV2aWNlIGlzIHVucmVnaXN0ZXJlZCwgZml4aW5nIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciByYWNlIGNvbmRpdGlvbnMuIEl0IGlzIHJlYWNoYWJsZSB2aWEgdmlydHVhbCBORkMgZHJpdmVycyBsaWtlIG5mY3NpbSBvciBob3RwbHVnZ2FibGUgZHJpdmVycyBsaWtlIHBvcnQxMDAuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkZDXCIsXG4gICAgXCJORkNfRElHSVRBTFwiLFxuICAgIFwiTkZDX1NJTVwiLFxuICAgIFwiTkZDX1BPUlQxMDBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZmNfZGlnaXRhbF91bnJlZ2lzdGVyX2RldmljZVwiLFxuICAgIFwiZGlnaXRhbF93cV9jbWRcIixcbiAgICBcImRpZ2l0YWxfd3FfY21kX2NvbXBsZXRlXCIsXG4gICAgXCJkaWdpdGFsX3NlbmRfY21kXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVwbGFjZXMgY2FuY2VsX3dvcmtfc3luYyB3aXRoIGRpc2FibGVfd29ya19zeW5jIGZvciBjbWRfd29yayBhbmQgY21kX2NvbXBsZXRlX3dvcmsgaW4gbmZjX2RpZ2l0YWxfdW5yZWdpc3Rlcl9kZXZpY2UuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHByZXZlbnRzIHdvcmtzIGZyb20gYmVpbmcgcmUtcXVldWVkIG9yIGV4ZWN1dGVkIGFmdGVyIHRoZSBkZXZpY2UgaXMgdW5yZWdpc3RlcmVkLCBmaXhpbmcgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIHJhY2UgY29uZGl0aW9ucy4gSXQgaXMgcmVhY2hhYmxlIHZpYSB2aXJ0dWFsIE5GQyBkcml2ZXJzIGxpa2UgbmZjc2ltIG9yIGhvdHBsdWdnYWJsZSBkcml2ZXJzIGxpa2UgcG9ydDEwMC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowvxrvb[1] Phase: Succeeded StartedAt: 2026-07-22 11:39:17 +0000 UTC FinishedAt: 2026-07-22 11:39:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-22 11:39:17 +0000 UTC FinishedAt: 2026-07-22 11:39:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[2] Phase: Succeeded StartedAt: 2026-07-22 11:39:17 +0000 UTC FinishedAt: 2026-07-22 12:51:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-22 11:39:17 +0000 UTC FinishedAt: 2026-07-22 12:51:01 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-22 11:39:17 +0000 UTC FinishedAt: 2026-07-22 11:40:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-22 11:39:17 +0000 UTC FinishedAt: 2026-07-22 11:39:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.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-workflowvxrvb/series-workflowvxrvb-convert-artifact-2423633102/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-22 11:40:19 +0000 UTC FinishedAt: 2026-07-22 12:13:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-22 11:40:19 +0000 UTC FinishedAt: 2026-07-22 12:13:55 +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:*7628c70c-c9c8-430e-95b5-97bff58bf344,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-workflowvxrvb/series-workflowvxrvb-convert-artifact-2423633102/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": "755403bf-2527-43b9-b74a-a379d3a9e171", "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-workflowvxrvb/series-workflowvxrvb-build-action-4185660724/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-22 11:40:19 +0000 UTC FinishedAt: 2026-07-22 12:13:24 +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:*7628c70c-c9c8-430e-95b5-97bff58bf344,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-workflowvxrvb/series-workflowvxrvb-convert-artifact-2423633102/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": "755403bf-2527-43b9-b74a-a379d3a9e171", "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-workflowvxrvb/series-workflowvxrvb-build-action-4185660724/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-22 12:13:55 +0000 UTC FinishedAt: 2026-07-22 12:13:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-22 12:13:55 +0000 UTC FinishedAt: 2026-07-22 12:13:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-22 12:13:55 +0000 UTC FinishedAt: 2026-07-22 12:14:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-22 12:13:55 +0000 UTC FinishedAt: 2026-07-22 12:14:03 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.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-workflowvxrvb/series-workflowvxrvb-convert-artifact-1350128577/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-22 12:14:05 +0000 UTC FinishedAt: 2026-07-22 12:16:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-22 12:14:05 +0000 UTC FinishedAt: 2026-07-22 12:15:53 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*755403bf-2527-43b9-b74a-a379d3a9e171,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-workflowvxrvb/series-workflowvxrvb-build-action-4185660724/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-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-22 12:16:03 +0000 UTC FinishedAt: 2026-07-22 12:16:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-22 12:16:03 +0000 UTC FinishedAt: 2026-07-22 12:16:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-22 12:16:03 +0000 UTC FinishedAt: 2026-07-22 12:47:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-22 12:16:03 +0000 UTC FinishedAt: 2026-07-22 12:47:55 +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:*7628c70c-c9c8-430e-95b5-97bff58bf344,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-workflowvxrvb/series-workflowvxrvb-convert-artifact-1350128577/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": "675144f6-e563-4f15-9cb3-dc891aec3c1f", "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-workflowvxrvb/series-workflowvxrvb-build-action-4133186893/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-22 12:16:03 +0000 UTC FinishedAt: 2026-07-22 12:47:45 +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:*7628c70c-c9c8-430e-95b5-97bff58bf344,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-workflowvxrvb/series-workflowvxrvb-convert-artifact-1350128577/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": "675144f6-e563-4f15-9cb3-dc891aec3c1f", "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-workflowvxrvb/series-workflowvxrvb-build-action-4133186893/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-22 12:47:55 +0000 UTC FinishedAt: 2026-07-22 12:47:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-22 12:47:55 +0000 UTC FinishedAt: 2026-07-22 12:47:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-22 12:47:55 +0000 UTC FinishedAt: 2026-07-22 12:49:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-22 12:47:55 +0000 UTC FinishedAt: 2026-07-22 12:49:31 +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:*675144f6-e563-4f15-9cb3-dc891aec3c1f,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-workflowvxrvb/series-workflowvxrvb-build-action-4133186893/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-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-22 12:49:41 +0000 UTC FinishedAt: 2026-07-22 12:51:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-22 12:49:41 +0000 UTC FinishedAt: 2026-07-22 12:51:01 +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":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"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:*755403bf-2527-43b9-b74a-a379d3a9e171,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*675144f6-e563-4f15-9cb3-dc891aec3c1f,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-workflowvxrvb/series-workflowvxrvb-build-action-4185660724/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-workflowvxrvb/series-workflowvxrvb-build-action-4133186893/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-22 12:49:41 +0000 UTC FinishedAt: 2026-07-22 12:49:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-22 12:49:41 +0000 UTC FinishedAt: 2026-07-22 12:49:47 +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":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"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-workflowvxrvb/series-workflowvxrvb-convert-artifact-296534/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-22 12:49:41 +0000 UTC FinishedAt: 2026-07-22 12:49:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-22 12:49:41 +0000 UTC FinishedAt: 2026-07-22 12:49:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-22 12:49:42 +0000 UTC FinishedAt: 2026-07-22 12:49:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-22 12:49:52 +0000 UTC FinishedAt: 2026-07-22 12:51:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvxrvb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nfc_digital_unregister_device","digital_wq_cmd","digital_wq_cmd_complete","digital_send_cmd"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d4932951a19a5f1ec93200260b85e1a4c080ff77","config_name":"upstream-apparmor-kasan.config","enable_configs":["NFC","NFC_DIGITAL","NFC_SIM","NFC_PORT100"],"series_id":"5be934ec-52a7-4288-9965-a6456faa2fe6","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-22 12:49:52 +0000 UTC FinishedAt: 2026-07-22 12:50:56 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*755403bf-2527-43b9-b74a-a379d3a9e171,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*675144f6-e563-4f15-9cb3-dc891aec3c1f,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-workflowvxrvb/series-workflowvxrvb-build-action-4185660724/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-workflowvxrvb/series-workflowvxrvb-build-action-4133186893/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-workflowvxrvb/series-workflowvxrvb-convert-artifact-296534/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,}