Name: series-workflowjfxq4 Phase: Succeeded StartedAt: 2026-07-08 03:33:44 +0000 UTC FinishedAt: 2026-07-08 05:07:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[0] Phase: Succeeded StartedAt: 2026-07-08 03:33:44 +0000 UTC FinishedAt: 2026-07-08 03:45:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[0].run-triage Phase: Succeeded StartedAt: 2026-07-08 03:33:44 +0000 UTC FinishedAt: 2026-07-08 03:45:12 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "60444706aa17616efc03190d099ac347e28b3d0a", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "STMMAC_PCI" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "60444706aa17616efc03190d099ac347e28b3d0a", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "STMMAC_PCI" ], "series_id": "561039ed-fdb2-4c94-a40e-974aa021d5f1" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "stmmac_disable_all_queues", "stmmac_drain_xdp", "stmmac_xdp_release", "stmmac_suspend", "__stmmac_open", "__stmmac_release" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDAzOjQzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BDSSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3N0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMmIzM0OywKICAgICYjMzQ7c3RtbWFjX2RyYWluX3hkcCYjMzQ7LAogICAgJiMzNDtzdG1tYWNfeGRwX3JlbGVhc2UmIzM0OywKICAgICYjMzQ7c3RtbWFjX3N1c3BlbmQmIzM0OywKICAgICYjMzQ7X19zdG1tYWNfb3BlbiYjMzQ7LAogICAgJiMzNDtfX3N0bW1hY19yZWxlYXNlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBzdG1tYWMgZHJpdmVyIHRvIHByb3Blcmx5IGRyYWluIFhEUCBidWZmZXJzIGFuZCBwcmV2ZW50IFhEUCBmcm9tIHByb2Nlc3NpbmcgbmV3IHBhY2tldHMgd2hlbiB0aGUgaW50ZXJmYWNlIGlzIGRvd24uIEl0IGludHJvZHVjZXMgYSBuZXcgU1RNTUFDX0RPV04gZmxhZyBhbmQgbW9kaWZpZXMgdGhlIGludGVyZmFjZSBvcGVuL3JlbGVhc2Uvc3VzcGVuZCBwYXRocy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHJlYWNoYWJsZSBjb3JlIGRyaXZlciBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAwMzo0MzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDhkM2VmOGMxZDMzMmEzY2RiODI0OTQyNTY2NTc5NGE5MzM4NDMwNGJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCA4IDAzOjQzOjQ5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG5pbmRleCAyYTBkN2VmZjg4ZDNmZi4uOWQ5NzFhZTM1ZDQ4YWUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG5AQCAtMjYyLDcgJiM0MzsyNjIsMTEgQEAgc3RhdGljIHZvaWQgc3RtbWFjX3ZlcmlmeV9hcmdzKHZvaWQpXG4gXHRcdHByX3dhcm4oXCYjMzQ7c3RtbWFjOiBtb2R1bGUgcGFyYW1ldGVyICYjMzk7Zmxvd19jdHJsJiMzOTsgaXMgb2Jzb2xldGUgLSBwbGVhc2UgcmVtb3ZlIGZyb20geW91ciBtb2R1bGUgY29uZmlndXJhdGlvblxcblwmIzM0Oyk7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIF9fc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4mIzQzOy8qKlxuJiM0MzsgKiBzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzIC0gRGlzYWJsZSBhbGwgcXVldWVzXG4mIzQzOyAqIEBwcml2OiBkcml2ZXIgcHJpdmF0ZSBzdHJ1Y3R1cmVcbiYjNDM7ICovXG4mIzQzO3N0YXRpYyB2b2lkIHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuIHtcbiBcdHU4IHJ4X3F1ZXVlc19jbnQgPSBwcml2LVx1MDAzZXBsYXQtXHUwMDNlcnhfcXVldWVzX3RvX3VzZTtcbiBcdHU4IHR4X3F1ZXVlc19jbnQgPSBwcml2LVx1MDAzZXBsYXQtXHUwMDNldHhfcXVldWVzX3RvX3VzZTtcbkBAIC0yODYsMTYgJiM0MzsyOTAsMTUgQEAgc3RhdGljIHZvaWQgX19zdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbiB9XG4gXG4gLyoqXG4tICogc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyAtIERpc2FibGUgYWxsIHF1ZXVlc1xuJiM0MzsgKiBzdG1tYWNfZHJhaW5feGRwIC0gQ2xlYW51cCBmb3IgWERQIGFwcHNcbiAgKiBAcHJpdjogZHJpdmVyIHByaXZhdGUgc3RydWN0dXJlXG4gICovXG4tc3RhdGljIHZvaWQgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4mIzQzO3N0YXRpYyB2b2lkIHN0bW1hY19kcmFpbl94ZHAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuIHtcbiBcdHU4IHJ4X3F1ZXVlc19jbnQgPSBwcml2LVx1MDAzZXBsYXQtXHUwMDNlcnhfcXVldWVzX3RvX3VzZTtcbiBcdHN0cnVjdCBzdG1tYWNfcnhfcXVldWUgKnJ4X3E7XG4gXHR1OCBxdWV1ZTtcbiBcbi1cdC8qIHN5bmNocm9uaXplX3JjdSgpIG5lZWRlZCBmb3IgcGVuZGluZyBYRFAgYnVmZmVycyB0byBkcmFpbiAqL1xuIFx0Zm9yIChxdWV1ZSA9IDA7IHF1ZXVlIFx1MDAzYyByeF9xdWV1ZXNfY250OyBxdWV1ZSYjNDM7JiM0MzspIHtcbiBcdFx0cnhfcSA9IFx1MDAyNnByaXYtXHUwMDNlZG1hX2NvbmYucnhfcXVldWVbcXVldWVdO1xuIFx0XHRpZiAocnhfcS1cdTAwM2V4c2tfcG9vbCkge1xuQEAgLTMwMyw4ICYjNDM7MzA2LDYgQEAgc3RhdGljIHZvaWQgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4gXHRcdFx0YnJlYWs7XG4gXHRcdH1cbiBcdH1cbi1cbi1cdF9fc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhwcml2KTtcbiB9XG4gXG4gLyoqXG5AQCAtNDE0OSw2ICYjNDM7NDE1MCw5IEBAIHN0YXRpYyBpbnQgX19zdG1tYWNfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFxuIFx0c3RtbWFjX3Jlc2V0X3F1ZXVlc19wYXJhbShwcml2KTtcbiBcbiYjNDM7XHQvKiBDbGVhciBET1dOIGZsYWcgd2hlbiBvcGVuaW5nIHRoZSBpbnRlcmZhY2UgKi9cbiYjNDM7XHRjbGVhcl9iaXQoU1RNTUFDX0RPV04sIFx1MDAyNnByaXYtXHUwMDNlc3RhdGUpO1xuJiM0MztcbiBcdHJldCA9IHN0bW1hY19od19zZXR1cChkZXYpO1xuIFx0aWYgKHJldCBcdTAwM2MgMCkge1xuIFx0XHRuZXRkZXZfZXJyKHByaXYtXHUwMDNlZGV2LCBcJiMzNDslczogSHcgc2V0dXAgZmFpbGVkXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG5AQCAtNDI0Myw2ICYjNDM7NDI0Nyw5IEBAIHN0YXRpYyB2b2lkIF9fc3RtbWFjX3JlbGVhc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbiBcdC8qIFN0b3AgYW5kIGRpc2Nvbm5lY3QgdGhlIFBIWSAqL1xuIFx0cGh5bGlua19zdG9wKHByaXYtXHUwMDNlcGh5bGluayk7XG4gXG4mIzQzO1x0LyogU2V0IERPV04gZmxhZyB0byBwcmV2ZW50IFhEUCBmcm9tIHByb2Nlc3NpbmcgbmV3IHBhY2tldHMgKi9cbiYjNDM7XHRzZXRfYml0KFNUTU1BQ19ET1dOLCBcdTAwMjZwcml2LVx1MDAzZXN0YXRlKTtcbiYjNDM7XG4gXHRzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzKHByaXYpO1xuIFxuIFx0Zm9yIChjaGFuID0gMDsgY2hhbiBcdTAwM2MgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZXR4X3F1ZXVlc190b191c2U7IGNoYW4mIzQzOyYjNDM7KVxuQEAgLTQyNTYsNiAmIzQzOzQyNjMsOCBAQCBzdGF0aWMgdm9pZCBfX3N0bW1hY19yZWxlYXNlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4gXHQvKiBTdG9wIFRYL1JYIERNQSBhbmQgY2xlYXIgdGhlIGRlc2NyaXB0b3JzICovXG4gXHRzdG1tYWNfc3RvcF9hbGxfZG1hKHByaXYpO1xuIFxuJiM0MztcdHN0bW1hY19kcmFpbl94ZHAocHJpdik7XG4mIzQzO1xuIFx0LyogUmVsZWFzZSBhbmQgZnJlZSB0aGUgUngvVHggcmVzb3VyY2VzICovXG4gXHRmcmVlX2RtYV9kZXNjX3Jlc291cmNlcyhwcml2LCBcdTAwMjZwcml2LVx1MDAzZWRtYV9jb25mKTtcbiBcbkBAIC01MjYwLDEyICYjNDM7NTI2OSwxOCBAQCBzdGF0aWMgaW50IHN0bW1hY194ZHBfeG1pdF9iYWNrKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbiBcdFx0XHRcdHN0cnVjdCB4ZHBfYnVmZiAqeGRwKVxuIHtcbiBcdGJvb2wgemMgPSAhISh4ZHAtXHUwMDNlcnhxLVx1MDAzZW1lbS50eXBlID09IE1FTV9UWVBFX1hTS19CVUZGX1BPT0wpO1xuLVx0c3RydWN0IHhkcF9mcmFtZSAqeGRwZiA9IHhkcF9jb252ZXJ0X2J1ZmZfdG9fZnJhbWUoeGRwKTtcbiYjNDM7XHRzdHJ1Y3QgeGRwX2ZyYW1lICp4ZHBmO1xuIFx0aW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTtcbiBcdHN0cnVjdCBuZXRkZXZfcXVldWUgKm5xO1xuIFx0aW50IHF1ZXVlO1xuIFx0aW50IHJlcztcbiBcbiYjNDM7XHRpZiAodW5saWtlbHkodGVzdF9iaXQoU1RNTUFDX0RPV04sIFx1MDAyNnByaXYtXHUwMDNlc3RhdGUpKSkge1xuJiM0MztcdFx0eHNrX2J1ZmZfZnJlZSh4ZHApO1xuJiM0MztcdFx0cmV0dXJuIFNUTU1BQ19YU0tfQ09OU1VNRUQ7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHR4ZHBmID0geGRwX2NvbnZlcnRfYnVmZl90b19mcmFtZSh4ZHApO1xuIFx0aWYgKHVubGlrZWx5KCF4ZHBmKSlcbiBcdFx0cmV0dXJuIFNUTU1BQ19YRFBfQ09OU1VNRUQ7XG4gXG5AQCAtNTMxMCw3ICYjNDM7NTMyNSw5IEBAIHN0YXRpYyBpbnQgX19zdG1tYWNfeGRwX3J1bl9wcm9nKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbiBcdFx0cmVzID0gc3RtbWFjX3hkcF94bWl0X2JhY2socHJpdiwgeGRwKTtcbiBcdFx0YnJlYWs7XG4gXHRjYXNlIFhEUF9SRURJUkVDVDpcbi1cdFx0aWYgKHhkcF9kb19yZWRpcmVjdChwcml2LVx1MDAzZWRldiwgeGRwLCBwcm9nKSBcdTAwM2MgMClcbiYjNDM7XHRcdGlmICh1bmxpa2VseSh0ZXN0X2JpdChTVE1NQUNfRE9XTiwgXHUwMDI2cHJpdi1cdTAwM2VzdGF0ZSkpKVxuJiM0MztcdFx0XHRyZXMgPSBTVE1NQUNfWERQX0NPTlNVTUVEO1xuJiM0MztcdFx0ZWxzZSBpZiAoeGRwX2RvX3JlZGlyZWN0KHByaXYtXHUwMDNlZGV2LCB4ZHAsIHByb2cpIFx1MDAzYyAwKVxuIFx0XHRcdHJlcyA9IFNUTU1BQ19YRFBfQ09OU1VNRUQ7XG4gXHRcdGVsc2VcbiBcdFx0XHRyZXMgPSBTVE1NQUNfWERQX1JFRElSRUNUO1xuQEAgLTY0MDQsNyAmIzQzOzY0MjEsNyBAQCBzdGF0aWMgaW50IHN0bW1hY19zZXR1cF90Y19ibG9ja19jYihlbnVtIHRjX3NldHVwX3R5cGUgdHlwZSwgdm9pZCAqdHlwZV9kYXRhLFxuIFx0aWYgKCF0Y19jbHNfY2FuX29mZmxvYWRfYW5kX2NoYWluMChwcml2LVx1MDAzZWRldiwgdHlwZV9kYXRhKSlcbiBcdFx0cmV0dXJuIHJldDtcbiBcbi1cdF9fc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhwcml2KTtcbiYjNDM7XHRzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzKHByaXYpO1xuIFxuIFx0c3dpdGNoICh0eXBlKSB7XG4gXHRjYXNlIFRDX1NFVFVQX0NMU1UzMjpcbkBAIC03MTE0LDYgJiM0Mzs3MTMxLDkgQEAgdm9pZCBzdG1tYWNfeGRwX3JlbGVhc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbiBcdC8qIFN0b3AgVFgvUlggRE1BIGNoYW5uZWxzICovXG4gXHRzdG1tYWNfc3RvcF9hbGxfZG1hKHByaXYpO1xuIFxuJiM0MztcdC8qIERyYWluIGxlZnRvdmVyIFhEUCBidWZmZXJzICovXG4mIzQzO1x0c3RtbWFjX2RyYWluX3hkcChwcml2KTtcbiYjNDM7XG4gXHQvKiBSZWxlYXNlIGFuZCBmcmVlIHRoZSBSeC9UeCByZXNvdXJjZXMgKi9cbiBcdGZyZWVfZG1hX2Rlc2NfcmVzb3VyY2VzKHByaXYsIFx1MDAyNnByaXYtXHUwMDNlZG1hX2NvbmYpO1xuIFxuQEAgLTgyMDAsNiAmIzQzOzgyMjAsOCBAQCBpbnQgc3RtbWFjX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KVxuIFx0LyogU3RvcCBUWC9SWCBETUEgKi9cbiBcdHN0bW1hY19zdG9wX2FsbF9kbWEocHJpdik7XG4gXG4mIzQzO1x0c3RtbWFjX2RyYWluX3hkcChwcml2KTtcbiYjNDM7XG4gXHRzdG1tYWNfbGVnYWN5X3NlcmRlc19wb3dlcl9kb3duKHByaXYpO1xuIFxuIFx0LyogRW5hYmxlIFBvd2VyIGRvd24gbW9kZSBieSBwcm9ncmFtbWluZyB0aGUgUE1UIHJlZ3MgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAwMzo0MzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtTVE1NQUNfRVRIJiMzNDssCiAgICAmIzM0O1NUTU1BQ19QQ0kmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzJiMzNDssCiAgICAmIzM0O3N0bW1hY19kcmFpbl94ZHAmIzM0OywKICAgICYjMzQ7c3RtbWFjX3hkcF9yZWxlYXNlJiMzNDssCiAgICAmIzM0O3N0bW1hY19zdXNwZW5kJiMzNDssCiAgICAmIzM0O19fc3RtbWFjX29wZW4mIzM0OywKICAgICYjMzQ7X19zdG1tYWNfcmVsZWFzZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgc3RtbWFjIGRyaXZlciB0byBwcm9wZXJseSBkcmFpbiBYRFAgYnVmZmVycyBhbmQgcHJldmVudCBYRFAgZnJvbSBwcm9jZXNzaW5nIG5ldyBwYWNrZXRzIHdoZW4gdGhlIGludGVyZmFjZSBpcyBkb3duLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IFNUTU1BQ19ET1dOIGZsYWcgYW5kIG1vZGlmaWVzIHRoZSBpbnRlcmZhY2Ugb3Blbi9yZWxlYXNlL3N1c3BlbmQgcGF0aHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byByZWFjaGFibGUgY29yZSBkcml2ZXIgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDhkM2VmOGMxZDMzMmEzY2RiODI0OTQyNTY2NTc5NGE5MzM4NDMwNGIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEp1bCA4IDAzOjQzOjQ5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKaW5kZXggMmEwZDdlZmY4OGQzZmYuLjlkOTcxYWUzNWQ0OGFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKQEAgLTI2Miw3ICYjNDM7MjYyLDExIEBAIHN0YXRpYyB2b2lkIHN0bW1hY192ZXJpZnlfYXJncyh2b2lkKQogCQlwcl93YXJuKCYjMzQ7c3RtbWFjOiBtb2R1bGUgcGFyYW1ldGVyICYjMzk7Zmxvd19jdHJsJiMzOTsgaXMgb2Jzb2xldGUgLSBwbGVhc2UgcmVtb3ZlIGZyb20geW91ciBtb2R1bGUgY29uZmlndXJhdGlvblxuJiMzNDspOwogfQogCi1zdGF0aWMgdm9pZCBfX3N0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KQomIzQzOy8qKgomIzQzOyAqIHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMgLSBEaXNhYmxlIGFsbCBxdWV1ZXMKJiM0MzsgKiBAcHJpdjogZHJpdmVyIHByaXZhdGUgc3RydWN0dXJlCiYjNDM7ICovCiYjNDM7c3RhdGljIHZvaWQgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpCiB7CiAJdTggcnhfcXVldWVzX2NudCA9IHByaXYtJmd0O3BsYXQtJmd0O3J4X3F1ZXVlc190b191c2U7CiAJdTggdHhfcXVldWVzX2NudCA9IHByaXYtJmd0O3BsYXQtJmd0O3R4X3F1ZXVlc190b191c2U7CkBAIC0yODYsMTYgJiM0MzsyOTAsMTUgQEAgc3RhdGljIHZvaWQgX19zdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdikKIH0KIAogLyoqCi0gKiBzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzIC0gRGlzYWJsZSBhbGwgcXVldWVzCiYjNDM7ICogc3RtbWFjX2RyYWluX3hkcCAtIENsZWFudXAgZm9yIFhEUCBhcHBzCiAgKiBAcHJpdjogZHJpdmVyIHByaXZhdGUgc3RydWN0dXJlCiAgKi8KLXN0YXRpYyB2b2lkIHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KQomIzQzO3N0YXRpYyB2b2lkIHN0bW1hY19kcmFpbl94ZHAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KQogewogCXU4IHJ4X3F1ZXVlc19jbnQgPSBwcml2LSZndDtwbGF0LSZndDtyeF9xdWV1ZXNfdG9fdXNlOwogCXN0cnVjdCBzdG1tYWNfcnhfcXVldWUgKnJ4X3E7CiAJdTggcXVldWU7CiAKLQkvKiBzeW5jaHJvbml6ZV9yY3UoKSBuZWVkZWQgZm9yIHBlbmRpbmcgWERQIGJ1ZmZlcnMgdG8gZHJhaW4gKi8KIAlmb3IgKHF1ZXVlID0gMDsgcXVldWUgJmx0OyByeF9xdWV1ZXNfY250OyBxdWV1ZSYjNDM7JiM0MzspIHsKIAkJcnhfcSA9ICZhbXA7cHJpdi0mZ3Q7ZG1hX2NvbmYucnhfcXVldWVbcXVldWVdOwogCQlpZiAocnhfcS0mZ3Q7eHNrX3Bvb2wpIHsKQEAgLTMwMyw4ICYjNDM7MzA2LDYgQEAgc3RhdGljIHZvaWQgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpCiAJCQlicmVhazsKIAkJfQogCX0KLQotCV9fc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhwcml2KTsKIH0KIAogLyoqCkBAIC00MTQ5LDYgJiM0Mzs0MTUwLDkgQEAgc3RhdGljIGludCBfX3N0bW1hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAKIAlzdG1tYWNfcmVzZXRfcXVldWVzX3BhcmFtKHByaXYpOwogCiYjNDM7CS8qIENsZWFyIERPV04gZmxhZyB3aGVuIG9wZW5pbmcgdGhlIGludGVyZmFjZSAqLwomIzQzOwljbGVhcl9iaXQoU1RNTUFDX0RPV04sICZhbXA7cHJpdi0mZ3Q7c3RhdGUpOwomIzQzOwogCXJldCA9IHN0bW1hY19od19zZXR1cChkZXYpOwogCWlmIChyZXQgJmx0OyAwKSB7CiAJCW5ldGRldl9lcnIocHJpdi0mZ3Q7ZGV2LCAmIzM0OyVzOiBIdyBzZXR1cCBmYWlsZWRcbiYjMzQ7LCBfX2Z1bmNfXyk7CkBAIC00MjQzLDYgJiM0Mzs0MjQ3LDkgQEAgc3RhdGljIHZvaWQgX19zdG1tYWNfcmVsZWFzZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCS8qIFN0b3AgYW5kIGRpc2Nvbm5lY3QgdGhlIFBIWSAqLwogCXBoeWxpbmtfc3RvcChwcml2LSZndDtwaHlsaW5rKTsKIAomIzQzOwkvKiBTZXQgRE9XTiBmbGFnIHRvIHByZXZlbnQgWERQIGZyb20gcHJvY2Vzc2luZyBuZXcgcGFja2V0cyAqLwomIzQzOwlzZXRfYml0KFNUTU1BQ19ET1dOLCAmYW1wO3ByaXYtJmd0O3N0YXRlKTsKJiM0MzsKIAlzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzKHByaXYpOwogCiAJZm9yIChjaGFuID0gMDsgY2hhbiAmbHQ7IHByaXYtJmd0O3BsYXQtJmd0O3R4X3F1ZXVlc190b191c2U7IGNoYW4mIzQzOyYjNDM7KQpAQCAtNDI1Niw2ICYjNDM7NDI2Myw4IEBAIHN0YXRpYyB2b2lkIF9fc3RtbWFjX3JlbGVhc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkvKiBTdG9wIFRYL1JYIERNQSBhbmQgY2xlYXIgdGhlIGRlc2NyaXB0b3JzICovCiAJc3RtbWFjX3N0b3BfYWxsX2RtYShwcml2KTsKIAomIzQzOwlzdG1tYWNfZHJhaW5feGRwKHByaXYpOwomIzQzOwogCS8qIFJlbGVhc2UgYW5kIGZyZWUgdGhlIFJ4L1R4IHJlc291cmNlcyAqLwogCWZyZWVfZG1hX2Rlc2NfcmVzb3VyY2VzKHByaXYsICZhbXA7cHJpdi0mZ3Q7ZG1hX2NvbmYpOwogCkBAIC01MjYwLDEyICYjNDM7NTI2OSwxOCBAQCBzdGF0aWMgaW50IHN0bW1hY194ZHBfeG1pdF9iYWNrKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwKIAkJCQlzdHJ1Y3QgeGRwX2J1ZmYgKnhkcCkKIHsKIAlib29sIHpjID0gISEoeGRwLSZndDtyeHEtJmd0O21lbS50eXBlID09IE1FTV9UWVBFX1hTS19CVUZGX1BPT0wpOwotCXN0cnVjdCB4ZHBfZnJhbWUgKnhkcGYgPSB4ZHBfY29udmVydF9idWZmX3RvX2ZyYW1lKHhkcCk7CiYjNDM7CXN0cnVjdCB4ZHBfZnJhbWUgKnhkcGY7CiAJaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKIAlzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpucTsKIAlpbnQgcXVldWU7CiAJaW50IHJlczsKIAomIzQzOwlpZiAodW5saWtlbHkodGVzdF9iaXQoU1RNTUFDX0RPV04sICZhbXA7cHJpdi0mZ3Q7c3RhdGUpKSkgewomIzQzOwkJeHNrX2J1ZmZfZnJlZSh4ZHApOwomIzQzOwkJcmV0dXJuIFNUTU1BQ19YU0tfQ09OU1VNRUQ7CiYjNDM7CX0KJiM0MzsKJiM0MzsJeGRwZiA9IHhkcF9jb252ZXJ0X2J1ZmZfdG9fZnJhbWUoeGRwKTsKIAlpZiAodW5saWtlbHkoIXhkcGYpKQogCQlyZXR1cm4gU1RNTUFDX1hEUF9DT05TVU1FRDsKIApAQCAtNTMxMCw3ICYjNDM7NTMyNSw5IEBAIHN0YXRpYyBpbnQgX19zdG1tYWNfeGRwX3J1bl9wcm9nKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwKIAkJcmVzID0gc3RtbWFjX3hkcF94bWl0X2JhY2socHJpdiwgeGRwKTsKIAkJYnJlYWs7CiAJY2FzZSBYRFBfUkVESVJFQ1Q6Ci0JCWlmICh4ZHBfZG9fcmVkaXJlY3QocHJpdi0mZ3Q7ZGV2LCB4ZHAsIHByb2cpICZsdDsgMCkKJiM0MzsJCWlmICh1bmxpa2VseSh0ZXN0X2JpdChTVE1NQUNfRE9XTiwgJmFtcDtwcml2LSZndDtzdGF0ZSkpKQomIzQzOwkJCXJlcyA9IFNUTU1BQ19YRFBfQ09OU1VNRUQ7CiYjNDM7CQllbHNlIGlmICh4ZHBfZG9fcmVkaXJlY3QocHJpdi0mZ3Q7ZGV2LCB4ZHAsIHByb2cpICZsdDsgMCkKIAkJCXJlcyA9IFNUTU1BQ19YRFBfQ09OU1VNRUQ7CiAJCWVsc2UKIAkJCXJlcyA9IFNUTU1BQ19YRFBfUkVESVJFQ1Q7CkBAIC02NDA0LDcgJiM0Mzs2NDIxLDcgQEAgc3RhdGljIGludCBzdG1tYWNfc2V0dXBfdGNfYmxvY2tfY2IoZW51bSB0Y19zZXR1cF90eXBlIHR5cGUsIHZvaWQgKnR5cGVfZGF0YSwKIAlpZiAoIXRjX2Nsc19jYW5fb2ZmbG9hZF9hbmRfY2hhaW4wKHByaXYtJmd0O2RldiwgdHlwZV9kYXRhKSkKIAkJcmV0dXJuIHJldDsKIAotCV9fc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhwcml2KTsKJiM0MzsJc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhwcml2KTsKIAogCXN3aXRjaCAodHlwZSkgewogCWNhc2UgVENfU0VUVVBfQ0xTVTMyOgpAQCAtNzExNCw2ICYjNDM7NzEzMSw5IEBAIHZvaWQgc3RtbWFjX3hkcF9yZWxlYXNlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJLyogU3RvcCBUWC9SWCBETUEgY2hhbm5lbHMgKi8KIAlzdG1tYWNfc3RvcF9hbGxfZG1hKHByaXYpOwogCiYjNDM7CS8qIERyYWluIGxlZnRvdmVyIFhEUCBidWZmZXJzICovCiYjNDM7CXN0bW1hY19kcmFpbl94ZHAocHJpdik7CiYjNDM7CiAJLyogUmVsZWFzZSBhbmQgZnJlZSB0aGUgUngvVHggcmVzb3VyY2VzICovCiAJZnJlZV9kbWFfZGVzY19yZXNvdXJjZXMocHJpdiwgJmFtcDtwcml2LSZndDtkbWFfY29uZik7CiAKQEAgLTgyMDAsNiAmIzQzOzgyMjAsOCBAQCBpbnQgc3RtbWFjX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQogCS8qIFN0b3AgVFgvUlggRE1BICovCiAJc3RtbWFjX3N0b3BfYWxsX2RtYShwcml2KTsKIAomIzQzOwlzdG1tYWNfZHJhaW5feGRwKHByaXYpOwomIzQzOwogCXN0bW1hY19sZWdhY3lfc2VyZGVzX3Bvd2VyX2Rvd24ocHJpdik7CiAKIAkvKiBFbmFibGUgUG93ZXIgZG93biBtb2RlIGJ5IHByb2dyYW1taW5nIHRoZSBQTVQgcmVncyAqLwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAwMzo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTIzCgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogNDI2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBhdGNoIHRvIHRoZSBTVE1NQUMgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY2AuIEl0JiMzOTtzIHByZXR0eSBzdHJhaWdodGZvcndhcmQsIGZ1bmN0aW9uYWxseSBzcGVha2luZy4gVGhleSYjMzk7dmUgcmVuYW1lZCBgX19zdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzYCB0byBgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlc2Ag4oCTIG5vdGhpbmcgZ3JvdW5kLWJyZWFraW5nIHRoZXJlLiBUaGVuLCB0aGV5JiMzOTt2ZSBwdWxsZWQgdGhlIFhEUCBkcmFpbmluZyBsb2dpYyBvdXQgaW50byBpdHMgb3duIGZ1bmN0aW9uLCBgc3RtbWFjX2RyYWluX3hkcGAuIFNtYXJ0OyB0aGF0JiMzOTtzIGdvb2QgZm9yIHJlYWRhYmlsaXR5IGFuZCBwb3RlbnRpYWwgcmV1c2UuIFRoZSBtZWF0IG9mIGl0IHNlZW1zIHRvIGJlIGFyb3VuZCB0aGlzIGBTVE1NQUNfRE9XTmAgZmxhZy4gVGhleSYjMzk7cmUgYWRkaW5nIGNoZWNrcyBmb3IgaXQgaW4gYSBmZXcgcGxhY2VzLiBFc3NlbnRpYWxseSwgaXQgbG9va3MgbGlrZSB0aGV5JiMzOTtyZSB0cnlpbmcgdG8gcHJldmVudCBYRFAgZnJvbSB0b3VjaGluZyBwYWNrZXRzIHdoZW4gdGhlIGludGVyZmFjZSBpcyBkb3duLiBNYWtlcyBzZW5zZTsgYXZvaWQgYW55IHdlaXJkIHJhY2UgY29uZGl0aW9ucyBvciBhdHRlbXB0cyB0byBwcm9jZXNzIHBhY2tldHMgb24gYSBkZWFkIGludGVyZmFjZS4gVGhleSBzZXQgYFNUTU1BQ19ET1dOYCBpbiBgX19zdG1tYWNfcmVsZWFzZWAgYW5kIGNsZWFyIGl0IGluIGBfX3N0bW1hY19vcGVuYC4gQW5kIHRoZW4sIGNyaXRpY2FsbHksIHRoZXkmIzM5O3JlIGNoZWNraW5nIGl0IGluIGBzdG1tYWNfeGRwX3htaXRfYmFja2AsIGBfX3N0bW1hY194ZHBfcnVuX3Byb2dgIGFuZCBjYWxsaW5nIGBzdG1tYWNfZHJhaW5feGRwYCBpbiBgX19zdG1tYWNfcmVsZWFzZWAsIGBzdG1tYWNfeGRwX3JlbGVhc2VgLCBhbmQgYHN0bW1hY19zdXNwZW5kYC4gT2theSwgc28gaXQgbG9va3MgbGlrZSB0aGV5IGFyZSBjYWxsaW5nIHRoZSBkcmFpbmluZyBmdW5jdGlvbiBpbiBkaWZmZXJlbnQgcGxhY2VzLgoKTm93LCBmcm9tIGEgdGVzdGluZyBwZXJzcGVjdGl2ZSwgdGhpcyBicmluZ3MgdXAgc29tZSBpbW1lZGlhdGUgcXVlc3Rpb25zLiBUaGlzIGlzIGEgKmhhcmR3YXJlKiBkcml2ZXIuIFNwZWNpZmljYWxseSwgaXQmIzM5O3MgZm9yIFNUTWljcm9lbGVjdHJvbmljcyBFdGhlcm5ldCBNQUNzLCB3aGljaCBtZWFucyBpdCYjMzk7cyBsaWtlbHkgZGVhbGluZyB3aXRoIGFjdHVhbCBoYXJkd2FyZSByZWdpc3RlcnMuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gdGhpcyBiZSBmdXp6ZWQ/IElzIHRoZXJlIGEgdmlydHVhbCBjb3VudGVycGFydCwgbGlrZSBhIHZpcnRpbyBkZXZpY2UsIHRoYXQgSSBjYW4gdXNlIHRvIGVtdWxhdGUgaXQ/IFByb2JhYmx5IG5vdCwgc2luY2UgaXQmIzM5O3MgYW4gU1RNaWNyb2VsZWN0cm9uaWNzIHNwZWNpZmljIGRyaXZlci4gU28sIEkgbmVlZCB0byBjaGVjayBob3cgaXQmIzM5O3MgY29ubmVjdGVkLiBJdCBpcyBhIFBDSSBkcml2ZXI/IEkgbmVlZCB0byBsb29rIGludG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuY2AsIHdoaWNoIGlzIGEgZ29vZCBjbHVlLiBJIHdpbGwgcXVpY2tseSBydW4gYSBgZ3JlcHBlcmAgY2hlY2sgdG8gc2VlLiBJIGNhbiYjMzk7dCBzdGFydCBmdXp6aW5nIHNvbWV0aGluZyB0aGF0IGlzbiYjMzk7dCBjb25uZWN0ZWQgdG8gdGhlIGNvcnJlY3QgaGFyZHdhcmUgb3IgdmlydHVhbGlzZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMDM6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RtbWFjX3BjaSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0PTEwNz1zeW50YXggKGUuZy4gZm9yIFBDSSBtb2R1bGUpOjpcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3QtMTA4LVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdDoxMDk6ICAgIG1vZHByb2JlIHN0bW1hY19wY2kgW1x1MDAzY29wdGlvblx1MDAzZT1cdTAwM2NWQUwxXHUwMDNlLFx1MDAzY1ZBTDJcdTAwM2UsLi4uXVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdC0xMTAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9NTM9b2JqLSQoQ09ORklHX0RXTUFDX01PVE9SQ09NTSlcdCYjNDM7PSBkd21hYy1tb3RvcmNvbW0ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTQ6c3RtbWFjLXBjaS1vYmpzOj0gc3RtbWFjX3BjaS5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0yNT1zdHJ1Y3QgaW50ZWxfcHJpdl9kYXRhIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTM5LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0MDpzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00MS1cdHVuc2lnbmVkIGludCBmdW5jO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjQ1OnN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NDY6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgKmZ1bmM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTQ3LVx0c2l6ZV90IG5mdW5jcztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo1MDpzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNTEtXHRpbnQgKCpzZXR1cCkoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MT1zdGF0aWMgY29uc3QgaW50IGFkbG5fdHNuX2xhbmVfcmVnc1tdID0gezZ9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTM6c3RhdGljIGludCBzdG1tYWNfcGNpX2ZpbmRfcGh5X2FkZHIoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk0LVx0XHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICpkbWlfbGlzdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NjpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSAqZnVuY19kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NzpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhICpkbWlfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTgtXHRjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqZG1pX2lkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9NzU1PXN0YXRpYyBpbnQgZWhsX3NnbWlpX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy03NzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjc3NTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfc2dtaWkxZ19pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy03NzYtXHQuc2V0dXAgPSBlaGxfc2dtaWlfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTc3OT1zdGF0aWMgaW50IGVobF9yZ21paV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNzg5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo3OTA6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3JnbWlpMWdfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNzkxLVx0LnNldHVwID0gZWhsX3JnbWlpX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04MTA9c3RhdGljIGludCBlaGxfcHNlMF9yZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjgxNzpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMF9yZ21paTFnX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTgxOC1cdC5zZXR1cCA9IGVobF9wc2UwX3JnbWlpMWdfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTgyMT1zdGF0aWMgaW50IGVobF9wc2UwX3NnbWlpMWdfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTgzOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6ODM5OnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGVobF9wc2UwX3NnbWlpMWdfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODQwLVx0LnNldHVwID0gZWhsX3BzZTBfc2dtaWkxZ19kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODU5PXN0YXRpYyBpbnQgZWhsX3BzZTFfcmdtaWkxZ19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODY1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4NjY6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3BzZTFfcmdtaWkxZ19pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04NjctXHQuc2V0dXAgPSBlaGxfcHNlMV9yZ21paTFnX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04NzA9c3RhdGljIGludCBlaGxfcHNlMV9zZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04ODctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjg4ODpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMV9zZ21paTFnX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg4OS1cdC5zZXR1cCA9IGVobF9wc2UxX3NnbWlpMWdfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTkxMz1zdGF0aWMgaW50IHRnbF9zZ21paV9waHkwX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjkyMjpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyB0Z2xfc2dtaWkxZ19waHkwX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTkyMy1cdC5zZXR1cCA9IHRnbF9zZ21paV9waHkwX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MjY9c3RhdGljIGludCB0Z2xfc2dtaWlfcGh5MV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5MzU6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gdGdsX3NnbWlpMWdfcGh5MV9pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MzYtXHQuc2V0dXAgPSB0Z2xfc2dtaWlfcGh5MV9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTM5PXN0YXRpYyBpbnQgYWRsc19zZ21paV9waHkwX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NDgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk0OTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBhZGxzX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NTAtXHQuc2V0dXAgPSBhZGxzX3NnbWlpX3BoeTBfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTk1Mz1zdGF0aWMgaW50IGFkbHNfc2dtaWlfcGh5MV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NjM6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gYWRsc19zZ21paTFnX3BoeTFfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTY0LVx0LnNldHVwID0gYWRsc19zZ21paV9waHkxX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05OTI9c3RhdGljIGludCBhZGxuX3NnbWlpX3BoeTBfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMTE6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gYWRsbl9zZ21paTFnX3BoeTBfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAxMi1cdC5zZXR1cCA9IGFkbG5fc2dtaWlfcGh5MF9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAxNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTAxNTpzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZnVuY19kYXRhIGdhbGlsZW9fc3RtbWFjX2Z1bmNfZGF0YVtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDE2LVx0e1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTAyMjpzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZG1pX2RhdGEgZ2FsaWxlb19zdG1tYWNfZG1pX2RhdGEgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMjMtXHQuZnVuYyA9IGdhbGlsZW9fc3RtbWFjX2Z1bmNfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMjc6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSBpb3QyMDQwX3N0bW1hY19mdW5jX2RhdGFbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAyOC1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMzg6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhIGlvdDIwNDBfc3RtbWFjX2RtaV9kYXRhID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDM5LVx0LmZ1bmMgPSBpb3QyMDQwX3N0bW1hY19mdW5jX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0xMDc4PXN0YXRpYyBpbnQgcXVhcmtfZGVmYXVsdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTA4OC1cdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDg5Olx0cmV0ID0gc3RtbWFjX3BjaV9maW5kX3BoeV9hZGRyKHBkZXYsIHF1YXJrX3BjaV9kbWkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDkwLVx0aWYgKHJldCBcdTAwM2MgMCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTExMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTExNDpzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBxdWFya19pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMTE1LVx0LnNldHVwID0gcXVhcmtfZGVmYXVsdF9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MTIzMj1zdGF0aWMgaW50IGludGVsX2V0aF9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMjM0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTIzNTpcdHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKmluZm8gPSAoc3RydWN0IHN0bW1hY19wY2lfaW5mbyAqKWlkLVx1MDAzZWRyaXZlcl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMjM2LVx0c3RydWN0IGludGVsX3ByaXZfZGF0YSAqaW50ZWxfcHJpdjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTc2PXN0cnVjdCBsb29uZ3Nvbl9kYXRhIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo4MjpzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtODMtXHRpbnQgKCpzZXR1cCkoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz0xMzI9c3RhdGljIGludCBsb29uZ3Nvbl9nbWFjX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xNDEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjE0MjpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBsb29uZ3Nvbl9nbWFjX3BjaV9pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xNDMtXHQuc2V0dXAgPSBsb29uZ3Nvbl9nbWFjX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz0xNjU9c3RhdGljIGludCBsb29uZ3Nvbl9nbmV0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xNzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjE3NzpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBsb29uZ3Nvbl9nbmV0X3BjaV9pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xNzgtXHQuc2V0dXAgPSBsb29uZ3Nvbl9nbmV0X2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz00OTg9c3RhdGljIGludCBsb29uZ3Nvbl9kd21hY19wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTAxLVx0c3RydWN0IHN0bW1hY19yZXNvdXJjZXMgcmVzID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjUwMjpcdHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKmluZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUwMy1cdHN0cnVjdCBsb29uZ3Nvbl9kYXRhICpsZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUzNy1cdHBsYXQtXHUwMDNlZml4X3NvY19yZXNldCA9IGxvb25nc29uX2R3bWFjX2ZpeF9yZXNldDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NTM4Olx0cGxhdC1cdTAwM2VzdXNwZW5kID0gc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjUzOTpcdHBsYXQtXHUwMDNlcmVzdW1lID0gc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQwLVx0bGQtXHUwMDNlZGV2ID0gXHUwMDI2cGRldi1cdTAwM2VkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01NDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjU0MzpcdGluZm8gPSAoc3RydWN0IHN0bW1hY19wY2lfaW5mbyAqKWlkLVx1MDAzZWRyaXZlcl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01NDQtXHRyZXQgPSBpbmZvLVx1MDAzZXNldHVwKHBkZXYsIHBsYXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jPTE4OD1zdGF0aWMgaW50IG1vdG9yY29tbV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0xOTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzoxOTM6XHRyZXQgPSBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKGRldiwgYnNwX3ByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMTk0LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0yMDg9bW90b3Jjb21tX2RlZmF1bHRfcGxhdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI0OC1cdHBsYXQtXHUwMDNlY29yZV90eXBlXHRcdD0gRFdNQUNfQ09SRV9HTUFDNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jOjI0OTpcdHBsYXQtXHUwMDNlc3VzcGVuZFx0XHQ9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMjUwLVx0cGxhdC1cdTAwM2VyZXN1bWVcdFx0PSBtb3RvcmNvbW1fcmVzdW1lO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0xMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYzoxMjppbnQgc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0xMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTI1LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYzoyNjpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6Mjg6aW50IHN0bW1hY19wY2lfcGxhdF9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0yOS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTQzLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYzo0NDpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy00NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmgtOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuaDo5OmludCBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmJzcF9wcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuaDoxMDppbnQgc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmJzcF9wcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuaC0xMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTk6c3RydWN0IHN0bW1hY19wY2lfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjAtXHRpbnQgKCpzZXR1cCkoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTMzPXN0YXRpYyBpbnQgc3RtbWFjX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtNDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6NTA6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gc3RtbWFjX3BjaV9pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTUxLVx0LnNldHVwID0gc3RtbWFjX2RlZmF1bHRfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9NTQ9c3RhdGljIGludCBzbnBzX2dtYWM1X2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTAxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjEwMjpzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBzbnBzX2dtYWM1X3BjaV9pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwMy1cdC5zZXR1cCA9IHNucHNfZ21hYzVfZGVmYXVsdF9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xMDYtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTA3OiAqIHN0bW1hY19wY2lfcHJvYmVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xMDgtICpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTE3LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjExODpzdGF0aWMgaW50IHN0bW1hY19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTE5LVx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTIwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMjE6XHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xMjItXHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE3OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxODA6XHRwbGF0LVx1MDAzZXN1c3BlbmQgPSBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxODE6XHRwbGF0LVx1MDAzZXJlc3VtZSA9IHN0bW1hY19wY2lfcGxhdF9yZXN1bWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTgyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xODYtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTg3OiAqIHN0bW1hY19wY2lfcmVtb3ZlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTg4LSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE5MS0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxOTI6c3RhdGljIHZvaWQgc3RtbWFjX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTkzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjAzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBzdG1tYWNfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMDQ6XHR7IFBDSV9ERVZJQ0VfREFUQShTVE1NQUMsIFNUTU1BQywgXHUwMDI2c3RtbWFjX3BjaV9pbmZvKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIwNTpcdHsgUENJX0RFVklDRV9EQVRBKFNUTUlDUk8sIE1BQywgXHUwMDI2c3RtbWFjX3BjaV9pbmZvKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIwNi1cdHsgUENJX0RFVklDRV9EQVRBKFNZTk9QU1lTLCBHTUFDNV9JRCwgXHUwMDI2c25wc19nbWFjNV9wY2lfaW5mbykgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjEwPU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBzdG1tYWNfaWRfdGFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTI6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIHN0bW1hY19wY2lfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMy1cdC5uYW1lID0gU1RNTUFDX1JFU09VUkNFX05BTUUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjE0LVx0LmlkX3RhYmxlID0gc3RtbWFjX2lkX3RhYmxlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxNTpcdC5wcm9iZSA9IHN0bW1hY19wY2lfcHJvYmUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjE2Olx0LnJlbW92ZSA9IHN0bW1hY19wY2lfcmVtb3ZlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxNy1cdC5kcml2ZXIgICAgICAgICA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIyMjptb2R1bGVfcGNpX2RyaXZlcihzdG1tYWNfcGNpX2RyaXZlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjIzLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDAzOjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDExODI5CgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTAzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipSZWFjaGluZyB0aGUgU1RNTUFDIERyaXZlciBmb3IgRnV6emluZyoqCgpPa2F5LCBzbyBgc3RtbWFjYCBoYXMgYSBQQ0kgZHJpdmVyLCBgc3RtbWFjX3BjaS5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIFBDSSBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLiBTaW5jZSBpdCYjMzk7cyBQQ0ksIHRoYXQgb3BlbnMgdGhlIGRvb3IgdG8gc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6aW5nIGNhcGFiaWxpdGllcywgYXNzdW1pbmcgdGhlIGRldmljZSBpcyBlaXRoZXIgZW11bGF0ZWQgb3IgYWN0dWFsbHkgcHJlc2VudC4KClJpZ2h0LCBzeXprYWxsZXIgaGFzIGEgUENJIGZ1enplciwgYnV0LCBpdCB1c3VhbGx5IG5lZWRzIHRoZSBkZXZpY2UgdG8gYmUgcHJlc2VudCBvciBpdCBmdXp6ZXMgdGhlIFBDSSBzdWJzeXN0ZW0uIEhvd2V2ZXIsIHN5emthbGxlciAqZG9lcyogaGF2ZSBgc3l6X3BjaV9kZXZpY2VgIHdoaWNoIEkgdGhpbmsgZW11bGF0ZXMgZGV2aWNlcy4gTGV0IG1lIGRvdWJsZSBjaGVjay4uLgoKSXMgdGhlcmUgYW5vdGhlciB3YXkgdG8gcmVhY2ggdGhpcyBjb2RlIHRob3VnaD8gYHN0bW1hY2AgaXMgZm9yIERlc2lnbldhcmUgTUFDIChEV01BQykuIElzIGl0IHJlYWNoYWJsZSBpbiBRRU1VPyBRRU1VIGVtdWxhdGVzIHNldmVyYWwgbmV0d29yayBkZXZpY2VzLCBidXQgbm90IG5lY2Vzc2FyaWx5IERXTUFDLgoKVGhlIHByb21wdCBub3RlcyBhYm91dCB1bnJlYWNoYWJsZSBjb2RlIHBhdGhzIGluIHZpcnR1YWwgZW52aXJvbm1lbnRzLCBldmVuIHdpdGggZW11bGF0ZWQgaGFyZHdhcmUuIElmIGl0JiMzOTtzIG5vdCBlbXVsYXRlZCBieSBRRU1VLCBhbmQgaXQmIzM5O3Mgbm90IGEgVVNCIGdhZGdldCwgdGhlbiB3aGF0IGFyZSBteSBvcHRpb25zPyBJIG5lZWQgdG8gcmVtZW1iZXIgdGhhdCBzeXprYWxsZXIgaGFzIGBzeXpfcGNpX2RldmljZWAsIGl0IGluamVjdHMgUENJIGRldmljZXMgdmlhIGB2ZmlvYCBvciBzb21ldGhpbmcgc2ltaWxhcj8KCldhaXQsIHN5emthbGxlciAqZG9lcyogaGF2ZSBQQ0kgZnV6emluZy4gSXQmIzM5O3MgZWl0aGVyIGEgY3VzdG9tIFFFTVUgZGV2aWNlIG9yIHVzaW5nIG90aGVyIG1lY2hhbmlzbXMgdG8gZW11bGF0ZSB0aGVtLiBObywgc3l6a2FsbGVyIHVzZXMgYHN5el9nZW5ldGxpbmtgIGV0Yy4KCkxldCYjMzk7cyBjaGVjayBpZiBzeXprYWxsZXIgY2FuIHJlYWNoIGBzdG1tYWNgLiBUaGVyZSYjMzk7cyBhIGNvbW1pdCwgc28gbGV0IG1lIHJlYWQgdGhhdDogQWgsIHRoZSBjb21taXQgc2F5cyAmIzM0O3N5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldy4mIzM0OyBJdCBjb3VsZCBtZWFuIHN5emthbGxlciBmb3VuZCBhIGJ1ZywgYnV0IGl0IGlzIG5vdCBndWFyYW50ZWVkIQoKSSBoYXZlIHRvIGxvb2sgaW50byB0aGlzIG1vcmUuIElzIGBzdG1tYWNgIGEgcGxhdGZvcm0gZHJpdmVyPyBJZiBzbywgaXQgbmVlZHMgYSBkZXZpY2UgdHJlZSBub2RlLiBJdCYjMzk7cyBoZWF2aWx5IHVzZWQgb24gQVJNIFNvQ3MuIElzIGl0IGEgUENJIGRyaXZlcj8gSXQgY2FuIGJlIHByb2JlZCBpZiBhIFBDSSBkZXZpY2Ugd2l0aCB0aGUgbWF0Y2hpbmcgdmVuZG9yL2RldmljZSBJRCBpcyBwcmVzZW50LiBEb2VzIFFFTVUgZW11bGF0ZSBhbnkgU1RNTUFDIFBDSSBkZXZpY2U/IExldCBtZSBqdXN0IGFzc3VtZSB0aGF0IHN5emthbGxlciBjYW4mIzM5O3QgcmVhY2ggaXQgdW5sZXNzIGl0IGlzIGVtdWxhdGVkLgoKV2FpdCwgZGlkIHN5emthbGxlciBhZGQgUENJIGZ1enppbmcgdmlhIGB2ZmlvYCBvciBhIHZpcnR1YWwgUENJIGRldmljZT8gU3l6a2FsbGVyIGhhcyBgdmhjaWAgZm9yIFVTQi4gRm9yIFBDSSwgdGhlcmUgaXMgbm8gZ2VuZXJpYyBzb2Z0d2FyZSBlbXVsYXRvciB1cHN0cmVhbSwgZXhjZXB0IGlmIHN5emthbGxlciB1c2VzIGEgY3VzdG9tIFFFTVUgd2l0aCBhIGZ1enplciBQQ0kgZGV2aWNlLiBUaGF0IG1hdGNoZXMgdGhlIHByb21wdCwgYWJvdXQgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuIERvZXMgUUVNVSBlbXVsYXRlIGBzdG1tYWNgPwoKTGV0JiMzOTtzIGRvIHNvbWUgZGlnZ2luZy4gSXMgdGhlcmUgYSB2aXJ0dWFsIGRldmljZSBmb3IgaXQ/IE1heWJlIGl0IGlzIHVzZWQgb24gc29tZSBBUk0gYm9hcmRzIGVtdWxhdGVkIGJ5IFFFTVU/IFFFTVUgaGFzIGVtdWxhdGVkIGRldmljZXMgZm9yIEFSTS4KCldhaXQsIGBzdG1tYWNgIGlzIGZvciBTeW5vcHN5cyBEZXNpZ25XYXJlIE1BQyAoRFdNQUMpLiBRRU1VIGhhcyBgaHcvbmV0L2Rlc2lnbndhcmUuY2AhIE9rYXksIG5vdyB3ZSYjMzk7cmUgZ2V0dGluZyBzb21ld2hlcmUuIExldCBtZSBzZWUgaG93IGBzdG1tYWNgIG1hdGNoZXMgdXAgd2l0aCBgZGVzaWdud2FyZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMDM6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkZXNpZ253YXJlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDAzOjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzNTcyCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogNjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBRRU1VJiMzOTtzIEV0aGVybmV0IEVtdWxhdGlvbioqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgUUVNVSBoYW5kbGVzIHRoaXMgcGFydGljdWxhciBFdGhlcm5ldCBkZXZpY2UuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gc2VhcmNoIHRoZSBRRU1VIHNvdXJjZSBjb2RlIGZvciAmIzM0O2R3bWFjLCYjMzQ7IHRoYXQmIzM5O3MgdGhlIGxpa2VseSBzdGFydGluZyBwb2ludC4gSSBhbHJlYWR5IGtub3cgdGhhdCB0aGUgZHJpdmVyIGlzIGBzdG1tYWNgLiBOb3csIHRoYXQgbmFtZSByaW5ncyBhIGJlbGwsIEkmIzM5O20gcHJldHR5IHN1cmUgdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcyB3aWxsIGJlIG5hbWVkIHNvbWV0aGluZyBsaWtlIGBkd21hYy0qLmNgLCBJJiMzOTtsbCBmb2N1cyBteSBzZWFyY2ggdGhlcmUuIFRoZSBrZXkgaXMgZ29pbmcgdG8gYmUgZGV0ZXJtaW5pbmcgaG93IFFFTVUgcmVwcmVzZW50cyB0aGUgZGV2aWNlLiBJIG5lZWQgdG8gY2hlY2sgaWYgdGhlcmUmIzM5O3MgYSBQQ0kgSUQgYXNzb2NpYXRlZCB3aXRoIHRoZSBlbXVsYXRlZCBkZXZpY2UuIEFsdGVybmF0aXZlbHksIGl0IG1pZ2h0IGJlIG1vZGVsbGVkIGFzIGEgcGxhdGZvcm0gZGV2aWNlLiBJIG5lZWQgdG8gZmlndXJlIHRoaXMgb3V0IHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgZW11bGF0aW9uIGFyY2hpdGVjdHVyZS4gSSYjMzk7bGwgc3RhcnQgd2l0aCB0aGUgUENJIElELgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDAzOjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0RXTUFDJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDEwMTMgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NDI9aWYgU1RNTUFDX1BMQVRGT1JNXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0NDpjb25maWcgRFdNQUNfRFdDX1FPU19FVEhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDUtXHR0cmlzdGF0ZSBcJiMzNDtTdXBwb3J0IGZvciBzbnBzLGR3Yy1xb3MtZXRoZXJuZXQudHh0IERUIGJpbmRpbmcuXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy01MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NTI6Y29uZmlnIERXTUFDX0dFTkVSSUNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NTM6XHR0cmlzdGF0ZSBcJiMzNDtHZW5lcmljIGRyaXZlciBmb3IgRFdNQUNcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNTQtXHRkZWZhdWx0IFNUTU1BQ19QTEFURk9STVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy01NS1cdGhlbHBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NTY6XHQgIEdlbmVyaWMgRFdNQUMgZHJpdmVyIGZvciBwbGF0Zm9ybXMgdGhhdCBkb24mIzM5O3QgcmVxdWlyZSBhbnlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNTctXHQgIHBsYXRmb3JtIHNwZWNpZmljIGNvZGUgdG8gZnVuY3Rpb24gb3IgaXMgdXNpbmcgcGxhdGZvcm1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTU5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo2MDpjb25maWcgRFdNQUNfQU5BUklPTlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy02MS1cdHRyaXN0YXRlIFwmIzM0O0FkYXB0cnVtIEFuYXJpb24gR01BQyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy02OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Njk6Y29uZmlnIERXTUFDX0VJQzc3MDBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNzAtXHR0cmlzdGF0ZSBcJiMzNDtTdXBwb3J0IGZvciBFc3dpbiBlaWM3NzAwIGV0aGVybmV0IGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjc4OmNvbmZpZyBEV01BQ19JTkdFTklDXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTc5LVx0dHJpc3RhdGUgXCYjMzQ7SW5nZW5pYyBNQUMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjkwOmNvbmZpZyBEV01BQ19JUFE4MDZYXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjkxOlx0dHJpc3RhdGUgXCYjMzQ7UUNBIElQUTgwNnggRFdNQUMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05Mi1cdGRlZmF1bHQgQVJDSF9RQ09NXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05NS1cdGhlbHBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6OTY6XHQgIFN1cHBvcnQgZm9yIFFDQSBJUFE4MDZYIERXTUFDIEV0aGVybmV0LlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05Ny1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEwNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTA2OmNvbmZpZyBEV01BQ19MUEMxOFhYXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjEwNzpcdHRyaXN0YXRlIFwmIzM0O05YUCBMUEMxOHh4LzQzeHggRFdNQUMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMDgtXHRkZWZhdWx0IEFSQ0hfTFBDMThYWFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTExLVx0aGVscFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMTI6XHQgIFN1cHBvcnQgZm9yIE5YUCBMUEMxOHh4LzQzeHggRFdNQUMgRXRoZXJuZXQuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTE0OmNvbmZpZyBEV01BQ19NRURJQVRFS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMTUtXHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDI3eHggR01BQyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjEyMjpjb25maWcgRFdNQUNfTUVTT05cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTIzLVx0dHJpc3RhdGUgXCYjMzQ7QW1sb2dpYyBNZXNvbiBkd21hYyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjEzMzpjb25maWcgRFdNQUNfTlVWT1RPTlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMzQtXHR0cmlzdGF0ZSBcJiMzNDtOdXZvdG9uIE1BMzUgZHdtYWMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxNDU6Y29uZmlnIERXTUFDX1FDT01fRVRIUU9TXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE0Ni1cdHRyaXN0YXRlIFwmIzM0O1F1YWxjb21tIEVUSFFPUyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE1NTpjb25maWcgRFdNQUNfUkVORVNBU19HQkVUSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNTYtXHR0cmlzdGF0ZSBcJiMzNDtSZW5lc2FzIFJaL1YySChQKSBHQkVUSCBhbmQgUlovVDJILCBSWi9OMkggR01BQyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE2ODpjb25maWcgRFdNQUNfUk9DS0NISVBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTY5LVx0dHJpc3RhdGUgXCYjMzQ7Um9ja2NoaXAgZHdtYWMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTc4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxNzk6Y29uZmlnIERXTUFDX1JaTjFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTgwLVx0dHJpc3RhdGUgXCYjMzQ7UmVuZXNhcyBSWi9OMSBkd21hYyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xOTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE5MTpjb25maWcgRFdNQUNfUzMyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5Mi1cdHRyaXN0YXRlIFwmIzM0O05YUCBTMzJHL1MzMlIgR01BQyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwMzpjb25maWcgRFdNQUNfU09DRlBHQVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMDQtXHR0cmlzdGF0ZSBcJiMzNDtTT0NGUEdBIGR3bWFjIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjE4OmNvbmZpZyBEV01BQ19TT1BIR09cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjE5LVx0dHJpc3RhdGUgXCYjMzQ7U29waGdvIGR3bWFjIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIyOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjI5OmNvbmZpZyBEV01BQ19TUEFDRU1JVFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMzAtXHR0cmlzdGF0ZSBcJiMzNDtTcGFjZW1pdCBkd21hYyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI0MTpjb25maWcgRFdNQUNfU1RBUkZJVkVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjQyLVx0dHJpc3RhdGUgXCYjMzQ7U3RhckZpdmUgZHdtYWMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjUyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyNTM6Y29uZmlnIERXTUFDX1NUSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNTQtXHR0cmlzdGF0ZSBcJiMzNDtTVGkgR01BQyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI2NTpjb25maWcgRFdNQUNfU1RNMzJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjY2Olx0dHJpc3RhdGUgXCYjMzQ7U1RNMzIgRFdNQUMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjctXHRkZWZhdWx0IEFSQ0hfU1RNMzJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI3Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjc3OmNvbmZpZyBEV01BQ19TVU5YSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzgtXHR0cmlzdGF0ZSBcJiMzNDtBbGx3aW5uZXIgR01BQyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yODctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI4ODpjb25maWcgRFdNQUNfU1VOOElcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjg5LVx0dHJpc3RhdGUgXCYjMzQ7QWxsd2lubmVyIHN1bjhpIEdNQUMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjk5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMDA6Y29uZmlnIERXTUFDX1NVTjU1SVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMDEtXHR0cmlzdGF0ZSBcJiMzNDtBbGx3aW5uZXIgc3VuNTVpIEdNQUMyMDAgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMTI6Y29uZmlnIERXTUFDX1RIRUFEXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMxMy1cdHRyaXN0YXRlIFwmIzM0O1QtSEVBRCBkd21hYyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMyMjpjb25maWcgRFdNQUNfSU1YOFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMjM6XHR0cmlzdGF0ZSBcJiMzNDtOWFAgSU1YOCBEV01BQyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMyNC1cdGRlZmF1bHQgQVJDSF9NWENcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzM0OmNvbmZpZyBEV01BQ19JTlRFTF9QTEFUXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzNS1cdHRyaXN0YXRlIFwmIzM0O0ludGVsIGR3bWFjIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM0My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzQ0OmNvbmZpZyBEV01BQ19MT09OR1NPTjFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzQ1LVx0dHJpc3RhdGUgXCYjMzQ7TG9vbmdzb24xIEdNQUMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNTU6Y29uZmlnIERXTUFDX1RFR1JBXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1Ni1cdHRyaXN0YXRlIFwmIzM0O05WSURJQSBUZWdyYSBNR0JFIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzY0OmNvbmZpZyBEV01BQ19WSVNDT05USVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNjU6XHR0cmlzdGF0ZSBcJiMzNDtUb3NoaWJhIFZpc2NvbnRpIERXTUFDIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzY2LVx0ZGVmYXVsdCBBUkNIX1ZJU0NPTlRJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzM9Y29uZmlnIFNUTU1BQ19MSUJQQ0lcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzc4OmNvbmZpZyBEV01BQ19JTlRFTFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzktXHR0cmlzdGF0ZSBcJiMzNDtJbnRlbCBHTUFDIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM4Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzg4OmNvbmZpZyBEV01BQ19MT09OR1NPTlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozODk6XHR0cmlzdGF0ZSBcJiMzNDtMb29uZ3NvbiBQQ0kgRFdNQUMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTAtXHRkZWZhdWx0IE1BQ0hfTE9PTkdTT042NFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzk3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozOTg6Y29uZmlnIERXTUFDX01PVE9SQ09NTVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozOTk6XHR0cmlzdGF0ZSBcJiMzNDtNb3RvcmNvbW0gUENJIERXTUFDIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDAwLVx0ZGVwZW5kcyBvbiBQQ0lcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwMy1cdGhlbHBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NDA0Olx0ICBUaGlzIGVuYWJsZXMgZ2x1ZSBkcml2ZXIgZm9yIE1vdG9yY29tbSBEV01BQy1iYXNlZCBQQ0kgRXRoZXJuZXRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA1LVx0ICBjb250cm9sbGVycy4gQ3VycmVudGx5IG9ubHkgWVQ2ODAxIGlzIHN1cHBvcnRlZC5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT0xNT1vYmotJChDT05GSUdfU1RNTUFDX1BMQVRGT1JNKVx0JiM0Mzs9IHN0bW1hYy1wbGF0Zm9ybS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxNjpvYmotJChDT05GSUdfRFdNQUNfQU5BUklPTilcdCYjNDM7PSBkd21hYy1hbmFyaW9uLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjE3Om9iai0kKENPTkZJR19EV01BQ19FSUM3NzAwKVx0JiM0Mzs9IGR3bWFjLWVpYzc3MDAub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTg6b2JqLSQoQ09ORklHX0RXTUFDX0lOR0VOSUMpXHQmIzQzOz0gZHdtYWMtaW5nZW5pYy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxOTpvYmotJChDT05GSUdfRFdNQUNfSVBRODA2WClcdCYjNDM7PSBkd21hYy1pcHE4MDZ4Lm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjIwOm9iai0kKENPTkZJR19EV01BQ19MUEMxOFhYKVx0JiM0Mzs9IGR3bWFjLWxwYzE4eHgub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MjE6b2JqLSQoQ09ORklHX0RXTUFDX01FRElBVEVLKVx0JiM0Mzs9IGR3bWFjLW1lZGlhdGVrLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjIyOm9iai0kKENPTkZJR19EV01BQ19NRVNPTilcdCYjNDM7PSBkd21hYy1tZXNvbi5vIGR3bWFjLW1lc29uOGIub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MjM6b2JqLSQoQ09ORklHX0RXTUFDX05VVk9UT04pXHQmIzQzOz0gZHdtYWMtbnV2b3Rvbi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyNDpvYmotJChDT05GSUdfRFdNQUNfUUNPTV9FVEhRT1MpXHQmIzQzOz0gZHdtYWMtcWNvbS1ldGhxb3Mub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MjU6b2JqLSQoQ09ORklHX0RXTUFDX1JFTkVTQVNfR0JFVEgpICYjNDM7PSBkd21hYy1yZW5lc2FzLWdiZXRoLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjI2Om9iai0kKENPTkZJR19EV01BQ19ST0NLQ0hJUClcdCYjNDM7PSBkd21hYy1yay5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyNzpvYmotJChDT05GSUdfRFdNQUNfUlpOMSlcdCYjNDM7PSBkd21hYy1yem4xLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjI4Om9iai0kKENPTkZJR19EV01BQ19TMzIpXHRcdCYjNDM7PSBkd21hYy1zMzIub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6Mjk6b2JqLSQoQ09ORklHX0RXTUFDX1NPQ0ZQR0EpXHQmIzQzOz0gZHdtYWMtYWx0ci1zb2NmcGdhLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjMwOm9iai0kKENPTkZJR19EV01BQ19TT1BIR08pXHQmIzQzOz0gZHdtYWMtc29waGdvLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjMxOm9iai0kKENPTkZJR19EV01BQ19TUEFDRU1JVClcdCYjNDM7PSBkd21hYy1zcGFjZW1pdC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTozMjpvYmotJChDT05GSUdfRFdNQUNfU1RBUkZJVkUpXHQmIzQzOz0gZHdtYWMtc3RhcmZpdmUub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MzM6b2JqLSQoQ09ORklHX0RXTUFDX1NUSSlcdFx0JiM0Mzs9IGR3bWFjLXN0aS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTozNDpvYmotJChDT05GSUdfRFdNQUNfU1RNMzIpXHQmIzQzOz0gZHdtYWMtc3RtMzIub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MzU6b2JqLSQoQ09ORklHX0RXTUFDX1NVTlhJKVx0JiM0Mzs9IGR3bWFjLXN1bnhpLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjM2Om9iai0kKENPTkZJR19EV01BQ19TVU44SSlcdCYjNDM7PSBkd21hYy1zdW44aS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTozNzpvYmotJChDT05GSUdfRFdNQUNfU1VONTVJKVx0JiM0Mzs9IGR3bWFjLXN1bjU1aS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTozODpvYmotJChDT05GSUdfRFdNQUNfVEhFQUQpXHQmIzQzOz0gZHdtYWMtdGhlYWQub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6Mzk6b2JqLSQoQ09ORklHX0RXTUFDX0RXQ19RT1NfRVRIKVx0JiM0Mzs9IGR3bWFjLWR3Yy1xb3MtZXRoLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQwOm9iai0kKENPTkZJR19EV01BQ19JTlRFTF9QTEFUKVx0JiM0Mzs9IGR3bWFjLWludGVsLXBsYXQub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDE6b2JqLSQoQ09ORklHX0RXTUFDX0xPT05HU09OMSlcdCYjNDM7PSBkd21hYy1sb29uZ3NvbjEub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDI6b2JqLSQoQ09ORklHX0RXTUFDX0dFTkVSSUMpXHQmIzQzOz0gZHdtYWMtZ2VuZXJpYy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo0MzpvYmotJChDT05GSUdfRFdNQUNfSU1YOClcdCYjNDM7PSBkd21hYy1pbXgub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDQ6b2JqLSQoQ09ORklHX0RXTUFDX1RFR1JBKVx0JiM0Mzs9IGR3bWFjLXRlZ3JhLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQ1Om9iai0kKENPTkZJR19EV01BQ19WSVNDT05USSlcdCYjNDM7PSBkd21hYy12aXNjb250aS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS00Ni1zdG1tYWMtcGxhdGZvcm0tb2Jqczo9IHN0bW1hY19wbGF0Zm9ybS5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9NTA9b2JqLSQoQ09ORklHX1NUTU1BQ19QQ0kpXHQmIzQzOz0gc3RtbWFjLXBjaS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo1MTpvYmotJChDT05GSUdfRFdNQUNfSU5URUwpXHQmIzQzOz0gZHdtYWMtaW50ZWwub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTI6b2JqLSQoQ09ORklHX0RXTUFDX0xPT05HU09OKVx0JiM0Mzs9IGR3bWFjLWxvb25nc29uLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjUzOm9iai0kKENPTkZJR19EV01BQ19NT1RPUkNPTU0pXHQmIzQzOz0gZHdtYWMtbW90b3Jjb21tLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTU0LXN0bW1hYy1wY2ktb2Jqczo9IHN0bW1hY19wY2kub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6Mjk6I2RlZmluZSBEV01BQ19TTlBTVkVSXHRHRU5NQVNLX1UzMig3LCAwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MzA6I2RlZmluZSBEV01BQ19VU0VSVkVSXHRHRU5NQVNLX1UzMigxNSwgOClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMzItLyogU3lub3BzeXMgQ29yZSB2ZXJzaW9ucyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MzM6I2RlZmluZVx0RFdNQUNfQ09SRV8zXzQwXHRcdDB4MzRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM0OiNkZWZpbmVcdERXTUFDX0NPUkVfM181MFx0XHQweDM1XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDozNTojZGVmaW5lXHREV01BQ19DT1JFXzNfNzBcdFx0MHgzN1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MzY6I2RlZmluZVx0RFdNQUNfQ09SRV80XzAwXHRcdDB4NDBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM3OiNkZWZpbmUgRFdNQUNfQ09SRV80XzEwXHRcdDB4NDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM4OiNkZWZpbmUgRFdNQUNfQ09SRV81XzAwXHRcdDB4NTBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM5OiNkZWZpbmUgRFdNQUNfQ09SRV81XzEwXHRcdDB4NTFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjQwOiNkZWZpbmUgRFdNQUNfQ09SRV81XzIwXHRcdDB4NTJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTQxLSNkZWZpbmUgRFdYR01BQ19DT1JFXzJfMTBcdDB4MjFcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaD00OT1zdGF0aWMgaW5saW5lIGJvb2wgZHdtYWNfaXNfeG1hYyhlbnVtIGR3bWFjX2NvcmVfdHlwZSBjb3JlX3R5cGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC01MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo1MTpcdHJldHVybiBjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNCB8fCBjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTUyLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kZXNjcy5oLTMtICBIZWFkZXIgRmlsZSB0byBkZXNjcmliZSB0aGUgRE1BIGRlc2NyaXB0b3JzIGFuZCByZWxhdGVkIGRlZmluaXRpb25zLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZGVzY3MuaDo0OiAgVGhpcyBpcyBmb3IgRFdNQUMxMDAgYW5kIDEwMDAgY29yZXMuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kZXNjcy5oLTUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTItLypcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzozOiAqIEFkYXB0cnVtIEFuYXJpb24gRFdNQUMgZ2x1ZSBsYXllclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9MTMzPW1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoYW5hcmlvbl9kd21hY19kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxMzU6TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O0FkYXB0cnVtIEFuYXJpb24gRFdNQUMgc3BlY2lmaWMgZ2x1ZSBsYXllclwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTM2LU1PRFVMRV9BVVRIT1IoXCYjMzQ7QWxleGFuZHJ1IEdhZ25pdWMgXHUwMDNjbXIubnVrZS5tZUBnbWFpbC5jb21cdTAwM2VcJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MzY9c3RhdGljIGludCBkd2NfZXRoX2R3bWFjX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtODctXHQvKiBkd2MtcW9zIG5lZWRzIEdNQUM0LCBBQUwsIFRTTyBhbmQgUE1UICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjg4Olx0cGxhdF9kYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtODktXHRwbGF0X2RhdC1cdTAwM2VkbWFfY2ZnLVx1MDAzZWFhbCA9IDE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZ2VuZXJpYy5jLTEtLypcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYzoyOiAqIEdlbmVyaWMgRFdNQUMgcGxhdGZvcm0gZHJpdmVyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1nZW5lcmljLmMtMy0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlteC5jLTItLypcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlteC5jOjM6ICogZHdtYWMtaW14LmMgLSBEV01BQyBTcGVjaWZpYyBHbHVlIGxheWVyIGZvciBOWFAgaW14OFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlteC5jPTQwMz1NT0RVTEVfQVVUSE9SKFwmIzM0O05YUFwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYzo0MDQ6TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O05YUCBpbXg4IERXTUFDIFNwZWNpZmljIEdsdWUgbGF5ZXJcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmMtNDA1LU1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTCB2MlwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW5nZW5pYy5jLTItLypcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYzozOiAqIGR3bWFjLWluZ2VuaWMuYyAtIEluZ2VuaWMgU29DcyBEV01BQyBzcGVjaWZpYyBnbHVlIGxheWVyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYz0yODI9TU9EVUxFX0FVVEhPUihcJiMzNDvlkajnkLDmnbAgKFpob3UgWWFuamllKSBcdTAwM2N6aG91eWFuamllQHdhbnllZXRlY2guY29tXHUwMDNlXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYzoyODM6TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O0luZ2VuaWMgU29DcyBEV01BQyBzcGVjaWZpYyBnbHVlIGxheWVyXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYy0yODQtTU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMIHYyXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmMtMS0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwtcGxhdC5jOjI6LyogSW50ZWwgRFdNQUMgcGxhdGZvcm0gZHJpdmVyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmMtMy0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYz0xNTA9TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMIHYyXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYzoxNTE6TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O0ludGVsIERXTUFDIHBsYXRmb3JtIGRyaXZlclwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz01NjU9c3RhdGljIHZvaWQgY29tbW9uX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy01NjgtXHRwbGF0LVx1MDAzZWNsa19jc3IgPSBTVE1NQUNfQ1NSXzIwXzM1TTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NTY5Olx0cGxhdC1cdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTU3MC1cdHBsYXQtXHUwMDNlZm9yY2Vfc2ZfZG1hX21vZGUgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9NTg1PXN0YXRpYyBpbnQgaW50ZWxfbWdiZV9jb21tb25fZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTU5NS1cdHBsYXQtXHUwMDNlY2xrX2NzciA9IFNUTU1BQ19DU1JfMjUwXzMwME07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjU5NjpcdHBsYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNTk3LVx0cGxhdC1cdTAwM2Vmb3JjZV9zZl9kbWFfbW9kZSA9IDA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuaC0yLS8qIENvcHlyaWdodCAoYykgMjAyMCwgSW50ZWwgQ29ycG9yYXRpb25cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmg6MzogKiBEV01BQyBJbnRlbCBoZWFkZXIgZmlsZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuaC00LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuaC01LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuaDo2OiNpZm5kZWYgX19EV01BQ19JTlRFTF9IX19cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmg6NzojZGVmaW5lIF9fRFdNQUNfSU5URUxfSF9fXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5oLTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuaC04MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmg6ODE6I2VuZGlmIC8qIF9fRFdNQUNfSU5URUxfSF9fICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jPTM3ND1zdGF0aWMgaW50IGlwcTgwNnhfZ21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlwcTgwNnguYy00NzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmM6NDc2Olx0cGxhdF9kYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTQ3Ny1cdHBsYXRfZGF0LVx1MDAzZWJzcF9wcml2ID0gZ21hYztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmM9NTA4PU1PRFVMRV9BVVRIT1IoXCYjMzQ7TWF0aGlldSBPbGl2YXJpIFx1MDAzY21hdGhpZXVAY29kZWF1cm9yYS5vcmdcdTAwM2VcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jOjUwOTpNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7UXVhbGNvbW0gQXRoZXJvcyBJUFE4MDZ4IERXTUFDIHNwZWNpZmljIGdsdWUgbGF5ZXJcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTUxMC1NT0RVTEVfTElDRU5TRShcJiMzNDtEdWFsIEJTRC9HUExcJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNzItI2RlZmluZSBQQ0lfREVWSUNFX0lEX0xPT05HU09OX0dORVRcdDB4N2ExM1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo3MzojZGVmaW5lIERXTUFDX0NPUkVfTVVMVElDSEFOX1YxXHQweDEwXHQvKiBMb29uZ3NvbiBjdXN0b20gSUQgMHgxMCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo3NDojZGVmaW5lIERXTUFDX0NPUkVfTVVMVElDSEFOX1YyXHQweDEyXHQvKiBMb29uZ3NvbiBjdXN0b20gSUQgMHgxMiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy03NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTg2PXN0YXRpYyB2b2lkIGxvb25nc29uX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTk1LVx0cGxhdC1cdTAwM2VjbGtfY3NyID0gU1RNTUFDX0NTUl8xMDBfMTUwTTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6OTY6XHRwbGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtOTctXHRwbGF0LVx1MDAzZWZvcmNlX3NmX2RtYV9tb2RlID0gdHJ1ZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTEwOC1cdHN3aXRjaCAobGQtXHUwMDNlbG9vbmdzb25faWQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6MTA5Olx0Y2FzZSBEV01BQ19DT1JFX01VTFRJQ0hBTl9WMTpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTEwLVx0XHRsZC1cdTAwM2VtdWx0aWNoYW4gPSAxO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTIwLVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6MTIxOlx0Y2FzZSBEV01BQ19DT1JFX01VTFRJQ0hBTl9WMjpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTIyLVx0XHRsZC1cdTAwM2VtdWx0aWNoYW4gPSAxO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MzA2PXN0YXRpYyBpbnQgbG9vbmdzb25fZHdtYWNfc2V0dXAodm9pZCAqYXByaXYsIHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKm1hYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTMyOC1cdGlmIChsZC1cdTAwM2VtdWx0aWNoYW4pIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6MzI5Olx0XHRwcml2LVx1MDAzZXN5bm9wc3lzX2lkID0gRFdNQUNfQ09SRV8zXzcwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0zMzAtXHRcdCpkbWEgPSBkd21hYzEwMDBfZG1hX29wcztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTQ2Nj1zdGF0aWMgaW50IGxvb25nc29uX2R3bWFjX2FjcGlfY29uZmlnKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNDc3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo0Nzg6LyogTG9vbmdzb24mIzM5O3MgRFdNQUMgZGV2aWNlIG1heSB0YWtlIG5lYXJseSB0d28gc2Vjb25kcyB0byBjb21wbGV0ZSBETUEgcmVzZXQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNDc5LXN0YXRpYyBpbnQgbG9vbmdzb25fZHdtYWNfZml4X3Jlc2V0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTYxND1tb2R1bGVfcGNpX2RyaXZlcihsb29uZ3Nvbl9kd21hY19kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy02MTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjYxNjpNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7TG9vbmdzb24gRFdNQUMgUENJIGRyaXZlclwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTYxNy1NT0RVTEVfQVVUSE9SKFwmIzM0O1FpbmcgWmhhbmcgXHUwMDNjemhhbmdxaW5nQGxvb25nc29uLmNuXHUwMDNlXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYy0yLS8qXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYzozOiAqIExvb25nc29uLTEgRFdNQUMgZ2x1ZSBsYXllclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uMS5jPTIzOD1NT0RVTEVfQVVUSE9SKFwmIzM0O0tlZ3VhbmcgWmhhbmcgXHUwMDNja2VndWFuZy56aGFuZ0BnbWFpbC5jb21cdTAwM2VcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmM6MjM5Ok1PRFVMRV9ERVNDUklQVElPTihcJiMzNDtMb29uZ3Nvbi0xIERXTUFDIGdsdWUgbGF5ZXJcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmMtMjQwLU1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTFwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jLTEtLypcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYzoyOiAqIERXTUFDIGdsdWUgZm9yIE5YUCBMUEMxOHh4L0xQQzQzeHggRXRoZXJuZXRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy0zLSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jPTQyPXN0YXRpYyBpbnQgbHBjMTh4eF9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy01Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYzo1NzpcdHBsYXRfZGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy01OC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmM9ODg9TU9EVUxFX0FVVEhPUihcJiMzNDtKb2FjaGltIEVhc3R3b29kIFx1MDAzY21hbmFiaWFuQGdtYWlsLmNvbVx1MDAzZVwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmM6ODk6TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O0RXTUFDIGdsdWUgZm9yIExQQzE4eHgvNDN4eCBFdGhlcm5ldFwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmMtOTAtTU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMIHYyXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jPTY4Mz1NT0RVTEVfQVVUSE9SKFwmIzM0O0JpYW8gSHVhbmcgXHUwMDNjYmlhby5odWFuZ0BtZWRpYXRlay5jb21cdTAwM2VcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYzo2ODQ6TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O01lZGlhVGVrIERXTUFDIHNwZWNpZmljIGdsdWUgbGF5ZXJcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYy02ODUtTU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMIHYyXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jLTItLypcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmM6MzogKiBBbWxvZ2ljIE1lc29uNiBhbmQgTWVzb244IERXTUFDIGdsdWUgbGF5ZXJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmM9OTM9TU9EVUxFX0FVVEhPUihcJiMzNDtCZW5pYW1pbm8gR2FsdmFuaSBcdTAwM2NiLmdhbHZhbmlAZ21haWwuY29tXHUwMDNlXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmM6OTQ6TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O0FtbG9naWMgTWVzb242IGFuZCBNZXNvbjggRFdNQUMgZ2x1ZSBsYXllclwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jLTk1LU1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTCB2MlwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb244Yi5jLTItLypcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYzozOiAqIEFtbG9naWMgTWVzb244YiwgTWVzb244bTIgYW5kIEdYQkIgRFdNQUMgZ2x1ZSBsYXllclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb244Yi5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmM9NTE4PU1PRFVMRV9BVVRIT1IoXCYjMzQ7TWFydGluIEJsdW1lbnN0aW5nbCBcdTAwM2NtYXJ0aW4uYmx1bWVuc3RpbmdsQGdvb2dsZW1haWwuY29tXHUwMDNlXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYzo1MTk6TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O0FtbG9naWMgTWVzb244YiwgTWVzb244bTIgYW5kIEdYQkIgRFdNQUMgZ2x1ZSBsYXllclwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmMtNTIwLU1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTCB2MlwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMi0vKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MzogKiBEV01BQyBnbHVlIGRyaXZlciBmb3IgTW90b3Jjb21tIFBDSSBFdGhlcm5ldCBjb250cm9sbGVyc1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jPTIwOD1tb3RvcmNvbW1fZGVmYXVsdF9wbGF0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMjQ3LVx0cGxhdC1cdTAwM2VjbGtfcmVmX3JhdGVcdD0gMTI1MDAwMDAwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MjQ4Olx0cGxhdC1cdTAwM2Vjb3JlX3R5cGVcdFx0PSBEV01BQ19DT1JFX0dNQUM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMjQ5LVx0cGxhdC1cdTAwM2VzdXNwZW5kXHRcdD0gc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MzgzPW1vZHVsZV9wY2lfZHJpdmVyKGR3bWFjX21vdG9yY29tbV9wY2lfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTM4NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jOjM4NTpNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7RFdNQUMgZ2x1ZSBkcml2ZXIgZm9yIE1vdG9yY29tbSBQQ0kgRXRoZXJuZXQgY29udHJvbGxlcnNcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMzg2LU1PRFVMRV9BVVRIT1IoXCYjMzQ7WWFvIFppIFx1MDAzY21lQHppeWFvLmNjXHUwMDNlXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmMtMi0vKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbnV2b3Rvbi5jOjM6ICogTnV2b3RvbiBEV01BQyBzcGVjaWZpYyBnbHVlIGxheWVyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYz0xMzY9TU9EVUxFX0FVVEhPUihcJiMzNDtKb2V5IEx1IFx1MDAzY2EwOTg3MjAzMDY5QGdtYWlsLmNvbVx1MDAzZVwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmM6MTM3Ok1PRFVMRV9ERVNDUklQVElPTihcJiMzNDtOdXZvdG9uIERXTUFDIHNwZWNpZmljIGdsdWUgbGF5ZXJcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbnV2b3Rvbi5jLTEzOC1NT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmM9Njg0PXN0YXRpYyBpbnQgcWNvbV9ldGhxb3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1xY29tLWV0aHFvcy5jLTc3Ni1cdHBsYXRfZGF0LVx1MDAzZXB0cF9jbGtfZnJlcV9jb25maWcgPSBldGhxb3NfcHRwX2Nsa19mcmVxX2NvbmZpZztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmM6Nzc3Olx0cGxhdF9kYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmMtNzc4LVx0aWYgKGV0aHFvcy1cdTAwM2VoYXNfZW1hY19nZV8zKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYy0yLS8qXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmM6MzogKiBkd21hYy1yZW5lc2FzLWdiZXRoLmMgLSBEV01BQyBTcGVjaWZpYyBHbHVlIGxheWVyIGZvciBSZW5lc2FzIEdCRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYz0yMzQ9TU9EVUxFX0FVVEhPUihcJiMzNDtMYWQgUHJhYmhha2FyIFx1MDAzY3ByYWJoYWthci5tYWhhZGV2LWxhZC5yakBicC5yZW5lc2FzLmNvbVx1MDAzZVwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmM6MjM1Ok1PRFVMRV9ERVNDUklQVElPTihcJiMzNDtSZW5lc2FzIEdCRVRIIERXTUFDIFNwZWNpZmljIEdsdWUgbGF5ZXJcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmVuZXNhcy1nYmV0aC5jLTIzNi1NT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmMtMi0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmM6MzogKiBET0M6IGR3bWFjLXJrLmMgLSBSb2NrY2hpcCBSSzMyODggRFdNQUMgc3BlY2lmaWMgZ2x1ZSBsYXllclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYy00LSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYz0xNTY4PXN0YXRpYyBpbnQgcmtfZ21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmMtMTU5MS1cdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYzoxNTkyOlx0aWYgKHBsYXRfZGF0LVx1MDAzZWNvcmVfdHlwZSAhPSBEV01BQ19DT1JFX0dNQUM0KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jOjE1OTM6XHRcdHBsYXRfZGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmMtMTU5NC1cdFx0cGxhdF9kYXQtXHUwMDNlcnhfZmlmb19zaXplID0gNDA5Njtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jPTE2NDc9TU9EVUxFX0FVVEhPUihcJiMzNDtDaGVuLVpoaSAoUm9nZXIgQ2hlbikgXHUwMDNjcm9nZXIuY2hlbkByb2NrLWNoaXBzLmNvbVx1MDAzZVwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jOjE2NDg6TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O1JvY2tjaGlwIFJLMzI4OCBEV01BQyBzcGVjaWZpYyBnbHVlIGxheWVyXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmMtMTY0OS1NT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYz05MT1NT0RVTEVfQVVUSE9SKFwmIzM0O0Nsw6ltZW50IEzDqWdlciBcdTAwM2NjbGVtZW50LmxlZ2VyQGJvb3RsaW4uY29tXHUwMDNlXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYzo5MjpNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7UmVuZXNhcyBSWk4xIERXTUFDIHNwZWNpZmljIGdsdWUgbGF5ZXJcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcnpuMS5jLTkzLU1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTFwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmM9MTQ0PXN0YXRpYyBpbnQgczMyX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmMtMTk1LVx0LyogUzMyQ0MgY29yZSBmZWF0dXJlIHNldCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmM6MTk2Olx0cGxhdC1cdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmMtMTk3LVx0cGxhdC1cdTAwM2VwbXQgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYz01NTk9c3RhdGljIHZvaWQgc29jZnBnYV9nZW41X3NldHVwX3BsYXRfZGF0KHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNTYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jOjU2MzpcdHBsYXRfZGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy01NjQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jPTU2OT1zdGF0aWMgdm9pZCBzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy01NzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM6NTczOlx0cGxhdF9kYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9YR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy01NzQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jPTY4OT1tb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHNvY2ZwZ2FfZHdtYWNfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy02OTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM6NjkxOk1PRFVMRV9ERVNDUklQVElPTihcJiMzNDtBbHRlcmEgU09DIERXTUFDIFNwZWNpZmljIEdsdWUgbGF5ZXJcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jLTY5Mi1NT0RVTEVfTElDRU5TRShcJiMzNDtHUEwgdjJcJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jLTItLypcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jOjM6ICogU29waGdvIERXTUFDIHBsYXRmb3JtIGRyaXZlclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29waGdvLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jPTkxPU1PRFVMRV9BVVRIT1IoXCYjMzQ7SW5vY2hpIEFtYW90byBcdTAwM2Npbm9jaGlhbWFAZ21haWwuY29tXHUwMDNlXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jOjkyOk1PRFVMRV9ERVNDUklQVElPTihcJiMzNDtTb3BoZ28gRFdNQUMgcGxhdGZvcm0gZHJpdmVyXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jLTkzLU1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTFwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3BhY2VtaXQuYy0yLS8qXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jOjM6ICogU3BhY2VtaXQgRFdNQUMgcGxhdGZvcm0gZHJpdmVyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jPTIyOD1NT0RVTEVfQVVUSE9SKFwmIzM0O0lub2NoaSBBbWFvdG8gXHUwMDNjaW5vY2hpYW1hQGdtYWlsLmNvbVx1MDAzZVwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jOjIyOTpNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7U3BhY2VtaXQgRFdNQUMgcGxhdGZvcm0gZHJpdmVyXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmMtMjMwLU1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTFwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYy0yLS8qXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jOjM6ICogU3RhckZpdmUgRFdNQUMgcGxhdGZvcm0gZHJpdmVyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTE3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYzoxODojZGVmaW5lIFNUQVJGSVZFX0RXTUFDX1BIWV9JTkZUX0ZJRUxEXHRcdDB4N1VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmMtMTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYz0zMj1zdGF0aWMgaW50IHN0YXJmaXZlX2R3bWFjX3NldF9tb2RlKHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYy01NS1cdGVyciA9IHJlZ21hcF91cGRhdGVfYml0cyhyZWdtYXAsIGFyZ3NbMF0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jOjU2Olx0XHRcdFx0IFNUQVJGSVZFX0RXTUFDX1BIWV9JTkZUX0ZJRUxEIFx1MDAzY1x1MDAzYyBhcmdzWzFdLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYy01Ny1cdFx0XHRcdCBwaHlfaW50Zl9zZWwgXHUwMDNjXHUwMDNjIGFyZ3NbMV0pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmM9MTc5PU1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTFwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jOjE4MDpNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7U3RhckZpdmUgRFdNQUMgcGxhdGZvcm0gZHJpdmVyXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmMtMTgxLU1PRFVMRV9BVVRIT1IoXCYjMzQ7RW1pbCBSZW5uZXIgQmVydGhpbmcgXHUwMDNja2VybmVsQGVzbWlsLmRrXHUwMDNlXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYy0yLS8qXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYzozOiAqIGR3bWFjLXN0aS5jIC0gU1RNaWNyb2VsZWN0cm9uaWNzIERXTUFDIFNwZWNpZmljIEdsdWUgbGF5ZXJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYy0yMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jOjI0OiNkZWZpbmUgRFdNQUNfNTBNSFpcdDUwMDAwMDAwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYy0yNS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYz0xMTk9c3RhdGljIHZvaWQgc3RpaDR4eF9maXhfcmV0aW1lX3NyYyh2b2lkICpwcml2LCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTEzMy1cdFx0XHRzcmMgPSBUWF9SRVRJTUVfU1JDX0NMS0dFTjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jOjEzNDpcdFx0XHRmcmVxID0gRFdNQUNfNTBNSFo7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYy0xMzUtXHRcdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYz0zMTI9TU9EVUxFX0FVVEhPUihcJiMzNDtTcmluaXZhcyBLYW5kYWdhdGxhIFx1MDAzY3NyaW5pdmFzLmthbmRhZ2F0bGFAc3QuY29tXHUwMDNlXCYjMzQ7KTtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDAzOjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3OTYwCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTE4OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipSZWFjaGluZyB0aGUgRGVzaWduV2FyZSBNQUMgaW4gUUVNVS9TeXprYWxsZXI6IEEgRGVlcCBEaXZlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBody9uZXQvZGVzaWdud2FyZS5jYCBpbiBRRU1VLCB3aGljaCBpcyB0aGUgRGVzaWduV2FyZSBNQUMuIFRoZSBxdWVzdGlvbiBpcywgY2FuIHdlIGFjdHVhbGx5IHJlYWNoIHRoaXMgaW4gYSBmdXp6ZXIgbGlrZSBTeXprYWxsZXI/CgpGaXJzdCwgSSBjaGVja2VkIHdoZXJlIHRoaXMgY29kZSBpcyB1c2VkIHdpdGhpbiBRRU1VLiBJdCYjMzk7cyBpbiB2YXJpb3VzIEFSTSBtYWNoaW5lcywgYnV0IGl0IGxvb2tzIGxpa2UgdGhlIERlc2lnbldhcmUgTUFDIGlzIHNwZWNpZmljYWxseSB1c2VkIGluIHRoZSBBbGx3aW5uZXIgSDMgKGBhbGx3aW5uZXItaDMuY2ApLCB3aGljaCBpcyBpbnRlcmVzdGluZy4gIFRoaXMgUUVNVSBgZGVzaWdud2FyZS5jYCBpbXBsZW1lbnRzIHRoZSBEV01BQy4KClRoZSBrZXkgaXMgd2hldGhlciBTeXprYWxsZXIgY2FuIGFjdHVhbGx5IGhpdCB0aGlzIGluIGl0cyBmdXp6aW5nIGNhbXBhaWducy4gU3l6a2FsbGVyLCBvZiBjb3Vyc2UsIGRvZXMgZnV6eiBBUk0zMiBhbmQgQVJNNjQga2VybmVscyB0aHJvdWdoIFFFTVUgYW5kIGNhbiBhbHNvIGZ1enogUENJIGRldmljZXMgKmlmKiB0aGV5IGFyZSBlbXVsYXRlZC4gIFRoZW4gSSByZW1lbWJlcmVkIGBzdG1tYWNgIHdoaWNoIGFsc28gaGFzIGEgUENJIGRyaXZlciAoYHN0bW1hY19wY2kuY2ApLiBUaGUgcXVlc3Rpb24gaW1tZWRpYXRlbHkgYmVjb21lczogZG9lcyBRRU1VIG9mZmVyIFBDSSBlbXVsYXRpb24gZm9yIHRoZSBEZXNpZ25XYXJlIE1BQywgdGhhdCBTeXprYWxsZXIgY2FuIHJlYWNoPwoKTm93LCBRRU1VJiMzOTtzIGBody9uZXQvZGVzaWdud2FyZS5jYCBpcyBhY3R1YWxseSBhIFN5c0J1c0RldmljZSAocGxhdGZvcm0gZGV2aWNlKS4gU28sIGNhbiBzeXprYWxsZXIgZnV6eiBwbGF0Zm9ybSBkZXZpY2VzPyBJdCBjYW4gaWYgdGhleSBhcmUgb24gYSBib2FyZCwgb3IgY2FuIGluamVjdCB0aGVtLiBTeXprYWxsZXIgZG9lcyBoYXZlIG5ldHdvcmsgcHJpbWl0aXZlcyBzdWNoIGFzIGBzeXpfZ2VuZXRsaW5rYCBhbmQgYHN5el9uZXRsaW5rYCB0aGF0IGNyZWF0ZSB2aXJ0dWFsIGludGVyZmFjZXMsIGJ1dCBgc3RtbWFjYCBpcyBhICpoYXJkd2FyZSogZHJpdmVyLiAgQW5kIHRoZSBwcm9tcHQgc2FpZCB0aGF0IGlmIGl0JiMzOTtzIGltcG9zc2libGUgdG8gcmVhY2gsIHRoZW4gSSBzaG91bGQgcmV0dXJuIGBmYWxzZWAuCgpIZXJlJiMzOTtzIHRoZSBwcm9ibGVtOiBJIGhhdmUgYSBjb21taXQgbWVzc2FnZSBmcm9tIGEgc3l6LWNsdXN0ZXIsIGluZGljYXRpbmcgdGhhdCBzeXprYWxsZXIgaXMgdGVzdGluZyBhIHBhdGNoIGZvciB0aGlzIGRyaXZlci4gQnV0IHRoaXMgZG9lc24mIzM5O3QgZ3VhcmFudGVlIHRoZSBjb2RlIHBhdGggaXMgKnJlYWNoYWJsZSouIFRlc3RpbmcgYSBwYXRjaCBkb2VzbiYjMzk7dCBlcXVhbCBmdXp6aW5nIHRoZSBkcml2ZXIgaXRzZWxmLiBUaGF0IGRvZXNuJiMzOTt0IG1lYW4gdGhhdCBzeXprYWxsZXIgY2FuIGFjdGl2ZWx5IGZpbmQgYnVncyBpbiBpdC4KCkkgZGlkIHN0YXJ0IHRvIHdvbmRlciB3aGV0aGVyIHRoZXJlIHdhcyBhIGBzeXpfcGNpX2RldmljZWAgdHlwZSBjYWxsIGZvciBTeXprYWxsZXIsIHNvbWV0aGluZyB0byBlbXVsYXRlIGEgUENJIGRldmljZSBkaXJlY3RseS4gQnV0IG5vLiBTeXprYWxsZXIgdXNlcyBRRU1VIHRvIGVtdWxhdGUgdGhlIGhhcmR3YXJlLiBUaGUgY3J1Y2lhbCB0aGluZyBpcyB0aGF0IHN5emthbGxlciBkb2VzbiYjMzk7dCBoYXZlIGEgYHN5el9wY2lfZGV2aWNlYCwgaXQgZG9lc24mIzM5O3QgZG8gZnV6emluZyB1c2luZyBgdmZpb2AgZWl0aGVyLgoKVGhlbiBJIHNoaWZ0ZWQgbXkgZm9jdXMuIFFFTVUgKmRvZXMqIHJ1biBBUk0gbWFjaGluZXMuIENhbiBhbiBBUk0gbWFjaGluZSB1c2UgYHN0bW1hY2AgdGhyb3VnaCB0aGUgUUVNVSBlbXVsYXRpb24/IEJ1dCB0aGUgJiMzNDt2aXJ0JiMzNDsgbWFjaGluZSBpcyB1c2VkIGluIFN5emthbGxlciB3aXRoIFFFTVUsIGJ1dCB1c2VzIGB2aXJ0aW8tbmV0YCBmb3IgbmV0d29ya2luZy4KCk9rYXksIGxldCYjMzk7cyBjaGFuZ2UgcGVyc3BlY3RpdmUuIFdoYXQgYWJvdXQgaWYgdGhlIHVzZXIgY29tcGlsZXMgdGhlIGtlcm5lbCBmb3IgeDg2XzY0PyBUaGUgYHN0bW1hY19wY2lgIGRyaXZlciBpcyBhdmFpbGFibGUgb24geDg2XzY0IChJbnRlbCBRdWFyaywgQXBvbGxvIExha2UsIGV0Yy4pLiBDYW4gaXQgYmUgcmVhY2hlZCBpbiBRRU1VIHg4Nl82ND8gQnV0IFFFTVUgZG9lcyAqbm90KiBlbXVsYXRlIEludGVsIERXTUFDIFBDSSBkZXZpY2VzLgoKT2theSwgaXMgdGhlcmUgYW5vdGhlciB3YXk/IE1heWJlIGBzdG1tYWNgIGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgUUVNVSB4ODZfNjQuIFdoYXQgYWJvdXQgYHZldGhgIG9yIGB0dW5gPyBUaGVzZSBhcmUgdmlydHVhbC4gYHN0bW1hY2AgaXMgYSAqcGh5c2ljYWwqIGRyaXZlci4gSSBuZWVkIHRvIGJlIGFibGUgdG8gdHJpZ2dlciB0aGUgY29kZSB3aXRob3V0IHRoZSBoYXJkd2FyZS4KCk5vLCB0aGlzIGlzIGEgaGFyZHdhcmUgZHJpdmVyLiBJdCBuZWVkcyBoYXJkd2FyZSByZWdpc3RlcnMuIFRoZSBwcm9tcHQgc2F5cywgc3BlY2lmaWNhbGx5OiAmIzM0O0NvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSYjMzQ7LgoKVGhpcyBhbGwgY29tZXMgZG93biB0byB0aGUgcHJvbXB0JiMzOTtzIGZpbmFsIHN0YXRlbWVudDogJiMzNDtJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoIHRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLiYjMzQ7CgpHaXZlbiBhbGwgb2YgdGhpcywgY2FuIGBzdG1tYWNgIGJlIHJlYWNoZWQgaW4gUUVNVT8gQW5kIFFFTVUgZG9lcyAqbm90KiBlbXVsYXRlIGBzdG1tYWNgIFBDSS4gU2luY2UgdGhlIGdvYWwgaXMgZnV6emluZywgSSYjMzk7bSBsZWFuaW5nIHRvd2FyZCB0aGUgY29kZSBwYXRocyBiZWluZyB1bnJlYWNoYWJsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMDM6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RtbWFjJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDExNjA4IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI5PWNvbmZpZyBTVE1NQUNfUExBVEZPUk1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzLVx0aGVscFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNDpcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1LVx0ICBUaGlzIGlzIHRoZSBkcml2ZXIgdXNlZCBvbiBzZXZlcmFsIFNvQ3M6XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz02MD1jb25maWcgRFdNQUNfQU5BUklPTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjY3Olx0ICBUaGlzIHNlbGVjdHMgdGhlIEFuYXJpb24gU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTY4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Nzg9Y29uZmlnIERXTUFDX0lOR0VOSUNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo4NjpcdCAgVGhpcyBzZWxlY3RzIEluZ2VuaWMgU29DcyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctODctXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBJbmdlbmljIFNvQ3Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTkwPWNvbmZpZyBEV01BQ19JUFE4MDZYXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6OTg6XHQgIFRoaXMgc2VsZWN0cyB0aGUgSVBRODA2eCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTk5LVx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBkb2VzIG5vdCB1c2UgYW55IG9mIHRoZSBoYXJkd2FyZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTE0PWNvbmZpZyBEV01BQ19NRURJQVRFS1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMjA6XHQgIFRoaXMgc2VsZWN0cyB0aGUgTVQyNzEyIFNvQyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMjI9Y29uZmlnIERXTUFDX01FU09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMjktXHQgIFRoaXMgc2VsZWN0cyB0aGUgQW1sb2dpYyBNZXNvbiBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMzA6XHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgTWVzb242LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMzEtXHQgIE1lc29uOCwgTWVzb244YiBhbmQgR1hCQiBTb0NzLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTMzPWNvbmZpZyBEV01BQ19OVVZPVE9OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNDEtXHQgIFRoaXMgc2VsZWN0cyB0aGUgTnV2b3RvbiBNQTM1IHNlcmllcyBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE0MjpcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhlIG51dm90b24tZHdtYWMgZHJpdmVyIGlzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE0My1cdCAgdXNlZCBmb3IgTUEzNSBzZXJpZXMgU29Dcy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE0NT1jb25maWcgRFdNQUNfUUNPTV9FVEhRT1Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE1Mi1cdCAgVGhpcyBzZWxlY3RzIHRoZSBRdWFsY29tbSBFVEhRT1MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTUzOlx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNTU9Y29uZmlnIERXTUFDX1JFTkVTQVNfR0JFVEhcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTY0Olx0ICBUaGlzIHNlbGVjdHMgUmVuZXNhcyBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRldmljZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNjUtXHQgIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFJaL1YySChQKSBmYW1pbHksIFJaL1QySCBhbmRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE2OD1jb25maWcgRFdNQUNfUk9DS0NISVBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3Ni1cdCAgVGhpcyBzZWxlY3RzIHRoZSBSb2NrY2hpcCBSSzMyODggU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTc3Olx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTc5PWNvbmZpZyBEV01BQ19SWk4xXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xODctXHQgIFRoaXMgc2VsZWN0cyB0aGUgUmVuZXNhcyBSWi9OMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxODg6XHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBzdXBwb3J0IGNhbiBtYWtlIHVzZSBvZiBhIGN1c3RvbSBNSUlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTg5LVx0ICBjb252ZXJ0ZXIgUENTIGRldmljZS5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE5MT1jb25maWcgRFdNQUNfUzMyXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xOTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE5ODpcdCAgVGhpcyBzZWxlY3RzIE5YUCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5OS1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFMzMkNDIHNlcmllc1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjAzPWNvbmZpZyBEV01BQ19TT0NGUEdBXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMTQtXHQgIFRoaXMgc2VsZWN0cyB0aGUgQWx0ZXJhIFNPQ0ZQR0EgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMTU6XHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxNi1cdCAgYXJyaWE1IGFuZCBjeWNsb25lNSBGUEdBIFNvQ3MuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMTg9Y29uZmlnIERXTUFDX1NPUEhHT1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjI1LVx0ICBUaGlzIHNlbGVjdHMgdGhlIFNvcGhnbyBTb0Mgc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIyNjpcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIyNy1cdCAgZXRoZXJuZXQgY29udHJvbGxlcnMgb24gdmFyaW91cyBTb3BoZ28gU29Dcy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIyOT1jb25maWcgRFdNQUNfU1BBQ0VNSVRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIzNy1cdCAgVGhpcyBzZWxlY3RzIHRoZSBTcGFjZW1pdCBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjM4Olx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjM5LVx0ICBTcGFjZW1pdCBLMyBldGhlcm5ldCBjb250cm9sbGVycy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI0MT1jb25maWcgRFdNQUNfU1RBUkZJVkVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI0OS1cdCAgVGhpcyBzZWxlY3RzIHRoZSBTdGFyRml2ZSBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjUwOlx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjUxLVx0ICBTdGFyRml2ZSBKSDcxMDAgYW5kIEpINzExMCBldGhlcm5ldCBjb250cm9sbGVycy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI1Mz1jb25maWcgRFdNQUNfU1RJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI2MTpcdCAgVGhpcyBzZWxlY3RzIFNUaSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI2Mi1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBvbiBmb3IgdGhlIFNUaSBzZXJpZXNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI2NT1jb25maWcgRFdNQUNfU1RNMzJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjczOlx0ICBUaGlzIHNlbGVjdHMgU1RNMzIgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzQtXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBTVE0zMiBzZXJpZXNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI3Nz1jb25maWcgRFdNQUNfU1VOWElcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI4NC1cdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjg1Olx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgQTIwL0EzMVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yODYtXHQgIEdNQUMgZXRoZXJuZXQgY29udHJvbGxlci5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI4OD1jb25maWcgRFdNQUNfU1VOOElcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI5Ni1cdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjk3Olx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSDMvQTgzVC9BNjRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjk4LVx0ICBFTUFDIGV0aGVybmV0IGNvbnRyb2xsZXIuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMDA9Y29uZmlnIERXTUFDX1NVTjU1SVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzA4LVx0ICBUaGlzIHNlbGVjdHMgQWxsd2lubmVyIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMDk6XHQgIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBBNTIzL1Q1MjdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzEwLVx0ICBHTUFDMjAwIGV0aGVybmV0IGNvbnRyb2xsZXIuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMTI9Y29uZmlnIERXTUFDX1RIRUFEXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMTgtXHQgIFRoaXMgc2VsZWN0cyB0aGUgVC1IRUFEIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzE5Olx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIFQtSEVBRCBUSDE1MjBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzIwLVx0ICBldGhlcm5ldCBjb250cm9sbGVyLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzIyPWNvbmZpZyBEV01BQ19JTVg4XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMzMDpcdCAgVGhpcyBzZWxlY3RzIE5YUCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzMS1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgaS5NWDggc2VyaWVzIGxpa2Vcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMzND1jb25maWcgRFdNQUNfSU5URUxfUExBVFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzQwLVx0ICBUaGlzIHNlbGVjdHMgdGhlIEludGVsIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzQxOlx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZSBJbnRlbCBLZWVtIEJheVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNDItXHQgIFNvQy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM0ND1jb25maWcgRFdNQUNfTE9PTkdTT04xXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM1MTpcdCAgVGhpcyBzZWxlY3RzIExvb25nc29uMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1Mi1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgTG9vbmdzb24xLWJhc2VkIGJvYXJkc1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzU1PWNvbmZpZyBEV01BQ19URUdSQVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzYwLVx0ICBmb3VuZCBvbiB0aGUgTlZJRElBIFRlZ3JhIFNvQyBkZXZpY2VzLiBUaGlzIGRyaXZlciBwcm92aWRlcyB0aGUgZ2x1ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNjE6XHQgIGxheWVyIG9uIHRvcCBvZiB0aGUgc3RtbWFjIGRyaXZlciByZXF1aXJlZCBmb3IgdGhlc2UgTlZJRElBIFRlZ3JhIFNvQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNjItXHQgIGRldmljZXMuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzM9Y29uZmlnIFNUTU1BQ19MSUJQQ0lcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3NS1cdGhlbHBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzc2Olx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBQQ0kgYnVzIGhlbHBlcnMgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM3OD1jb25maWcgRFdNQUNfSU5URUxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM4NS1cdCAgVGhpcyBzZWxlY3RzIHRoZSBJbnRlbCBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM4NjpcdCAgc3RtbWFjIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSW50ZWwgUXVhcmsvRUhML1RHTC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zODg9Y29uZmlnIERXTUFDX0xPT05HU09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTQtXHRoZWxwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM5NTpcdCAgVGhpcyBzZWxlY3RzIHRoZSBMT09OR1NPTiBQQ0kgYnVzIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTYtXHQgIFN1cHBvcnQgZm9yIGV0aGVybmV0IGNvbnRyb2xsZXIgb24gTG9vbmdzb24tMksxMDAwIFNvQyBhbmQgTFM3QTEwMDAgYnJpZGdlLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NDA3PWNvbmZpZyBTVE1NQUNfUENJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MTItXHRoZWxwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQxMzpcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQxNC1cdCAgVGhpcyBkcml2ZXIgd2FzIHRlc3RlZCBvbiBYTElOWCBYQzJWMzAwMCBGRjExNTJBTVQwMjIxXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyOm9iai0kKENPTkZJR19TVE1NQUNfRVRIKSAmIzQzOz0gc3RtbWFjLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjM6c3RtbWFjLW9ianM6PSBzdG1tYWNfbWFpbi5vIHN0bW1hY19ldGh0b29sLm8gc3RtbWFjX21kaW8ubyByaW5nX21vZGUub1x0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTQtXHQgICAgICBjaGFpbl9tb2RlLm8gZHdtYWNfbGliLm8gZHdtYWMxMDAwX2NvcmUubyBkd21hYzEwMDBfZG1hLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01LVx0ICAgICAgZHdtYWMxMDBfY29yZS5vIGR3bWFjMTAwX2RtYS5vIGVuaF9kZXNjLm8gbm9ybV9kZXNjLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo2Olx0ICAgICAgbW1jX2NvcmUubyBzdG1tYWNfaHd0c3RhbXAubyBzdG1tYWNfcHRwLm8gZHdtYWM0X2Rlc2NzLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS03LVx0ICAgICAgZHdtYWM0X2RtYS5vIGR3bWFjNF9saWIubyBkd21hYzRfY29yZS5vIGR3bWFjNS5vIGh3aWYubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6ODpcdCAgICAgIHN0bW1hY190Yy5vIGR3eGdtYWMyX2NvcmUubyBkd3hnbWFjMl9kbWEubyBkd3hnbWFjMl9kZXNjcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo5Olx0ICAgICAgc3RtbWFjX3hkcC5vIHN0bW1hY19lc3QubyBzdG1tYWNfZnBlLm8gc3RtbWFjX3ZsYW4ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTA6XHQgICAgICBzdG1tYWNfcGNzLm8gJChzdG1tYWMteSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTI6c3RtbWFjLSQoQ09ORklHX1NUTU1BQ19TRUxGVEVTVFMpICYjNDM7PSBzdG1tYWNfc2VsZnRlc3RzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMTQtIyBPcmRlcmluZyBtYXR0ZXJzLiBHZW5lcmljIGRyaXZlciBtdXN0IGJlIGxhc3QuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxNTpvYmotJChDT05GSUdfU1RNTUFDX1BMQVRGT1JNKVx0JiM0Mzs9IHN0bW1hYy1wbGF0Zm9ybS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xNi1vYmotJChDT05GSUdfRFdNQUNfQU5BUklPTilcdCYjNDM7PSBkd21hYy1hbmFyaW9uLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT00NT1vYmotJChDT05GSUdfRFdNQUNfVklTQ09OVEkpXHQmIzQzOz0gZHdtYWMtdmlzY29udGkub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDY6c3RtbWFjLXBsYXRmb3JtLW9ianM6PSBzdG1tYWNfcGxhdGZvcm0ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNDctZHdtYWMtYWx0ci1zb2NmcGdhLW9ianMgOj0gZHdtYWMtc29jZnBnYS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS00OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQ5Om9iai0kKENPTkZJR19TVE1NQUNfTElCUENJKVx0JiM0Mzs9IHN0bW1hY19saWJwY2kub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTA6b2JqLSQoQ09ORklHX1NUTU1BQ19QQ0kpXHQmIzQzOz0gc3RtbWFjLXBjaS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01MS1vYmotJChDT05GSUdfRFdNQUNfSU5URUwpXHQmIzQzOz0gZHdtYWMtaW50ZWwub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTUzPW9iai0kKENPTkZJR19EV01BQ19NT1RPUkNPTU0pXHQmIzQzOz0gZHdtYWMtbW90b3Jjb21tLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjU0OnN0bW1hYy1wY2ktb2Jqczo9IHN0bW1hY19wY2kub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNTojaW5jbHVkZSBcJiMzNDtzdG1tYWMuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE3OnN0YXRpYyBpbnQganVtYm9fZnJtKHN0cnVjdCBzdG1tYWNfdHhfcXVldWUgKnR4X3EsIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTgtXHRcdCAgICAgaW50IGNzdW0pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIwLVx0dW5zaWduZWQgaW50IG5vcGFnZWRfbGVuID0gc2tiX2hlYWRsZW4oc2tiKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoyMTpcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHR4X3EtXHUwMDNlcHJpdl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIyLVx0dW5zaWduZWQgaW50IGVudHJ5ID0gdHhfcS1cdTAwM2VjdXJfdHg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTQ0LVx0LyogZG8gbm90IGNsb3NlIHRoZSBkZXNjcmlwdG9yIGFuZCBkbyBub3Qgc2V0IG93biBiaXQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo0NTpcdHN0bW1hY19wcmVwYXJlX3R4X2Rlc2MocHJpdiwgZGVzYywgMSwgYnVmX2xlbiwgY3N1bSwgU1RNTUFDX0NIQUlOX01PREUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNDYtXHRcdFx0MCwgZmFsc2UsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy02MS1cdFx0XHR0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmxlbiA9IGJtYXg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6NjI6XHRcdFx0c3RtbWFjX3ByZXBhcmVfdHhfZGVzYyhwcml2LCBkZXNjLCAwLCBibWF4LCBjc3VtLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTYzLVx0XHRcdFx0XHRTVE1NQUNfQ0hBSU5fTU9ERSwgMSwgZmFsc2UsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03NS1cdFx0XHQvKiBsYXN0IGRlc2NyaXB0b3IgY2FuIGJlIHNldCBub3cgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo3NjpcdFx0XHRzdG1tYWNfcHJlcGFyZV90eF9kZXNjKHByaXYsIGRlc2MsIDAsIGxlbiwgY3N1bSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03Ny1cdFx0XHRcdFx0U1RNTUFDX0NIQUlOX01PREUsIDEsIHRydWUsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYz05OD1zdGF0aWMgdm9pZCBpbml0X2RtYV9jaGFpbih2b2lkICpkZXMsIGRtYV9hZGRyX3QgcGh5X2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEyNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxMjg6c3RhdGljIHZvaWQgcmVmaWxsX2Rlc2MzKHN0cnVjdCBzdG1tYWNfcnhfcXVldWUgKnJ4X3EsIHN0cnVjdCBkbWFfZGVzYyAqcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xMjkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjEzMDpcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHJ4X3EtXHUwMDNlcHJpdl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEzMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE0MzpzdGF0aWMgdm9pZCBjbGVhbl9kZXNjMyhzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xLCBzdHJ1Y3QgZG1hX2Rlc2MgKnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQ0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNDU6XHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSB0eF9xLVx1MDAzZXByaXZfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNDYtXHR1bnNpZ25lZCBpbnQgZW50cnkgPSB0eF9xLVx1MDAzZWRpcnR5X3R4O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTYwOmNvbnN0IHN0cnVjdCBzdG1tYWNfbW9kZV9vcHMgY2hhaW5fbW9kZV9vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTYxLVx0LmluaXQgPSBpbml0X2RtYV9jaGFpbixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xNS0jaW5jbHVkZSBcdTAwM2NsaW51eC9uZXRkZXZpY2UuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTY6I2luY2x1ZGUgXHUwMDNjbGludXgvc3RtbWFjLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTE3LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3BoeS5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDk9c3RhdGljIGlubGluZSBib29sIGR3bWFjX2lzX3htYWMoZW51bSBkd21hY19jb3JlX3R5cGUgY29yZV90eXBlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NzE6c3RydWN0IHN0bW1hY19xX3R4X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcyLVx0dTY0X3N0YXRzX3QgdHhfYnl0ZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo3ODpzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzktXHR1NjRfc3RhdHNfdCB0eF9wYWNrZXRzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6ODY6c3RydWN0IHN0bW1hY190eHFfc3RhdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODctXHQvKiBVcGRhdGVzIHByb3RlY3RlZCBieSB0eCBxdWV1ZSBsb2NrLiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODgtXHRzdHJ1Y3QgdTY0X3N0YXRzX3N5bmMgcV9zeW5jcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjg5Olx0c3RydWN0IHN0bW1hY19xX3R4X3N0YXRzIHE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05Mi1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6OTM6XHRzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMgbmFwaTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk0LX0gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6OTY6c3RydWN0IHN0bW1hY19uYXBpX3J4X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk3LVx0dTY0X3N0YXRzX3QgcnhfYnl0ZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTAzOnN0cnVjdCBzdG1tYWNfcnhxX3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNC1cdC8qIFVwZGF0ZXMgcHJvdGVjdGVkIGJ5IE5BUEkgcG9sbCBsb2dpYy4gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNS1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTA2Olx0c3RydWN0IHN0bW1hY19uYXBpX3J4X3N0YXRzIG5hcGk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDctfSBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwOS0vKiBVcGRhdGVzIG9uIGVhY2ggQ1BVIHByb3RlY3RlZCBieSBub3QgYWxsb3dpbmcgbmVzdGVkIGlycXMuICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoxMTA6c3RydWN0IHN0bW1hY19wY3B1X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExMS1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBzeW5jcDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMTYtLyogRXh0cmEgc3RhdGlzdGljIGFuZCBkZWJ1ZyBpbmZvcm1hdGlvbiBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjExNzpzdHJ1Y3Qgc3RtbWFjX2V4dHJhX3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExOC1cdC8qIFRyYW5zbWl0IGVycm9ycyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTIzNy1cdC8qIHBlciBxdWV1ZSBzdGF0aXN0aWNzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoyMzg6XHRzdHJ1Y3Qgc3RtbWFjX3R4cV9zdGF0cyB0eHFfc3RhdHNbTVRMX01BWF9UWF9RVUVVRVNdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjM5Olx0c3RydWN0IHN0bW1hY19yeHFfc3RhdHMgcnhxX3N0YXRzW01UTF9NQVhfUlhfUVVFVUVTXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI0MDpcdHN0cnVjdCBzdG1tYWNfcGNwdV9zdGF0cyBfX3BlcmNwdSAqcGNwdV9zdGF0cztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI0MS1cdHVuc2lnbmVkIGxvbmcgcnhfZHJvcHBlZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDctLyogU2FmZXR5IEZlYXR1cmUgc3RhdGlzdGljcyBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI0ODpzdHJ1Y3Qgc3RtbWFjX3NhZmV0eV9zdGF0cyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDktXHR1bnNpZ25lZCBsb25nIG1hY19lcnJvcnNbMzJdO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI1Ni0jZGVmaW5lIFNUTU1BQ19TQUZFVFlfRkVBVF9TSVpFXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjU3Olx0KHNpemVvZihzdHJ1Y3Qgc3RtbWFjX3NhZmV0eV9zdGF0cykgLyBzaXplb2YodW5zaWduZWQgbG9uZykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDE2PXN0cnVjdCBkbWFfZmVhdHVyZXMge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTU2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjU2NTp2b2lkIHN0bW1hY19heGlfYmxlbl90b19tYXNrKHUzMiAqcmVndmFsLCBjb25zdCB1MzIgKmJsZW4sIHNpemVfdCBsZW4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNTY2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTYxMz1zdHJ1Y3QgbWFjX2RldmljZV9pbmZvIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNDpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfb3BzICptYWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTU6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2Rlc2Nfb3BzICpkZXNjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE2Olx0Y29uc3Qgc3RydWN0IHN0bW1hY19kbWFfb3BzICpkbWE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTc6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX21vZGVfb3BzICptb2RlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE4Olx0Y29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCAqcHRwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE5Olx0Y29uc3Qgc3RydWN0IHN0bW1hY190Y19vcHMgKnRjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjIwOlx0Y29uc3Qgc3RydWN0IHN0bW1hY19tbWNfb3BzICptbWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MjE6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2VzdF9vcHMgKmVzdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYyMjpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfdmxhbl9vcHMgKnZsYW47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02MjMtXHRzdHJ1Y3QgZHdfeHBjcyAqeHBjcztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NDU6c3RydWN0IHN0bW1hY19yeF9yb3V0aW5nIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY0Ni1cdHUzMiByZWdfbWFzaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTA6aW50IGR3bWFjMTAwX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTE6aW50IGR3bWFjMTAwMF9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjUyOmludCBkd21hYzRfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1MzppbnQgZHd4Z21hYzJfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1NDppbnQgZHd4bGdtYWMyX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTY6dm9pZCBzdG1tYWNfc2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCBjb25zdCB1OCBhZGRyWzZdLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjU3LVx0XHRcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTg6dm9pZCBzdG1tYWNfZ2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCB1bnNpZ25lZCBjaGFyICphZGRyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjU5LVx0XHRcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjA6dm9pZCBzdG1tYWNfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjYxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjYyOnZvaWQgc3RtbWFjX2R3bWFjNF9zZXRfbWFjX2FkZHIodm9pZCBfX2lvbWVtICppb2FkZHIsIGNvbnN0IHU4IGFkZHJbNl0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjMtXHRcdFx0XHR1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjQ6dm9pZCBzdG1tYWNfZHdtYWM0X2dldF9tYWNfYWRkcih2b2lkIF9faW9tZW0gKmlvYWRkciwgdW5zaWduZWQgY2hhciAqYWRkcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY2NS1cdFx0XHRcdHVuc2lnbmVkIGludCBoaWdoLCB1bnNpZ25lZCBpbnQgbG93KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY2Njp2b2lkIHN0bW1hY19kd21hYzRfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjY3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMS0jaW5jbHVkZSBcdTAwM2NsaW51eC9vZl9uZXQuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEyOiNpbmNsdWRlIFx1MDAzY2xpbnV4L3N0bW1hYy5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7c3RtbWFjLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxNTojaW5jbHVkZSBcJiMzNDtzdG1tYWNfcGxhdGZvcm0uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTE2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz02Mz1hbmFyaW9uX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjY0Olx0XHQgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtNjUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz05Mz1zdGF0aWMgaW50IGFuYXJpb25fZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtOTYtXHRzdHJ1Y3QgYW5hcmlvbl9nbWFjICpnbWFjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjk3Olx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzo5ODpcdHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHN0bW1hY19yZXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtOTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTAwOlx0cmV0ID0gc3RtbWFjX2dldF9wbGF0Zm9ybV9yZXNvdXJjZXMocGRldiwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAxLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEwNDpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMDUtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjExNjpcdHJldHVybiBkZXZtX3N0bW1hY19wbHRmcl9wcm9iZShwZGV2LCBwbGF0X2RhdCwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE3LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9MTI1PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFuYXJpb25fZHdtYWNfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMjgtXHRcdC5uYW1lICAgICAgICAgICA9IFwmIzM0O2FuYXJpb24tZHdtYWNcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTI5Olx0XHQucG1cdFx0PSBcdTAwMjZzdG1tYWNfcGx0ZnJfcG1fb3BzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEzMC1cdFx0Lm9mX21hdGNoX3RhYmxlID0gYW5hcmlvbl9kd21hY19tYXRjaCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIxLSNpbmNsdWRlIFx1MDAzY2xpbnV4L3Jlc2V0LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjI6I2luY2x1ZGUgXHUwMDNjbGludXgvc3RtbWFjLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI0OiNpbmNsdWRlIFwmIzM0O3N0bW1hY19wbGF0Zm9ybS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI1LSNpbmNsdWRlIFwmIzM0O2R3bWFjNC5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNj1zdGF0aWMgaW50IGR3Y19ldGhfZHdtYWNfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM3Olx0XHRcdFx0ICAgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDMtXHRcdHBsYXRfZGF0LVx1MDAzZWF4aSA9IGRldm1fa3phbGxvYyhcdTAwMjZwZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6NDQ6XHRcdFx0XHRcdCAgICAgc2l6ZW9mKHN0cnVjdCBzdG1tYWNfYXhpKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDUtXHRcdFx0XHRcdCAgICAgR0ZQX0tFUk5FTCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz05Nj1zdGF0aWMgaW50IGR3Y19xb3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6OTc6XHRcdFx0IHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjk4Olx0XHRcdCBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqc3RtbWFjX3JlcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtOTkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxMDA6XHRwbGF0X2RhdC1cdTAwM2VwY2xrID0gc3RtbWFjX3BsdGZyX2ZpbmRfY2xrKHBsYXRfZGF0LCBcJiMzNDtwaHlfcmVmX2Nsa1wmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTEwMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTExNT1zdGF0aWMgdm9pZCB0ZWdyYV9lcW9zX2ZpeF9zcGVlZCh2b2lkICpic3BfcHJpdiwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTExOS1cdGJvb2wgbmVlZHNfY2FsaWJyYXRpb24gPSBmYWxzZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTIwOlx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xMjEtXHR1MzIgdmFsdWU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDEtXHRcdC8qIENhbGlicmF0aW9uIHNob3VsZCBiZSBkb25lIHdpdGggdGhlIE1ESU8gYnVzIGlkbGUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTQyOlx0XHRzdG1tYWNfbWRpb19sb2NrKHByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE3ODpcdFx0c3RtbWFjX21kaW9fdW5sb2NrKHByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzktXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MTg2PXN0YXRpYyBpbnQgdGVncmFfZXFvc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxODc6XHRcdFx0ICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE4ODpcdFx0XHQgICAgc3RydWN0IHN0bW1hY19yZXNvdXJjZXMgKnJlcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTg5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjA0Olx0cGxhdF9kYXQtXHUwMDNlY2xrX3R4X2kgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsIFwmIzM0O3R4XCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjA1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjM3LVx0cGxhdF9kYXQtXHUwMDNlZml4X21hY19zcGVlZCA9IHRlZ3JhX2Vxb3NfZml4X3NwZWVkO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyMzg6XHRwbGF0X2RhdC1cdTAwM2VzZXRfY2xrX3R4X3JhdGUgPSBzdG1tYWNfc2V0X2Nsa190eF9yYXRlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMzktXHRwbGF0X2RhdC1cdTAwM2Vic3BfcHJpdiA9IGVxb3M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNTI9c3RhdGljIHZvaWQgdGVncmFfZXFvc19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjUzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjU0Olx0c3RydWN0IHRlZ3JhX2Vxb3MgKmVxb3MgPSBnZXRfc3RtbWFjX2JzcF9wcml2KFx1MDAyNnBkZXYtXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjU1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjYwPXN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjEtXHRpbnQgKCpwcm9iZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjYyOlx0XHQgICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2MzpcdFx0ICAgICBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqcmVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY0LVx0dm9pZCAoKnJlbW92ZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2NTpcdGNvbnN0IGNoYXIgKnN0bW1hY19jbGtfbmFtZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY2LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNjg9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgZHdjX3Fvc19kYXRhID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjktXHQucHJvYmUgPSBkd2NfcW9zX3Byb2JlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNzA6XHQuc3RtbWFjX2Nsa19uYW1lID0gXCYjMzQ7YXBiX3BjbGtcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3MS19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjczPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhIHRlZ3JhX2Vxb3NfZGF0YSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3NS1cdC5yZW1vdmUgPSB0ZWdyYV9lcW9zX3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjc2Olx0LnN0bW1hY19jbGtfbmFtZSA9IFwmIzM0O3NsYXZlX2J1c1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjc3LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNzk9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgZnNkX2Vxb3NfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjgwOlx0LnN0bW1hY19jbGtfbmFtZSA9IFwmIzM0O3NsYXZlX2J1c1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjgxLX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yODM9c3RhdGljIGludCBkd2NfZXRoX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODUtXHRjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhICpkYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODY6XHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODc6XHRzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyBzdG1tYWNfcmVzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODgtXHRpbnQgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjkxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTI6XHRtZW1zZXQoXHUwMDI2c3RtbWFjX3JlcywgMCwgc2l6ZW9mKHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjk0LVx0LyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI5NTpcdCAqIFNpbmNlIHN0bW1hY19wbGF0Zm9ybSBzdXBwb3J0cyBuYW1lIElSUSBvbmx5LCBiYXNpYyBwbGF0Zm9ybVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTYtXHQgKiByZXNvdXJjZSBpbml0aWFsaXphdGlvbiBpcyBkb25lIGluIHRoZSBnbHVlIGxvZ2ljLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTctXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjk4Olx0c3RtbWFjX3Jlcy5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTk6XHRpZiAoc3RtbWFjX3Jlcy5pcnEgXHUwMDNjIDApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwMDpcdFx0cmV0dXJuIHN0bW1hY19yZXMuaXJxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDE6XHRzdG1tYWNfcmVzLndvbF9pcnEgPSBzdG1tYWNfcmVzLmlycTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDM6XHRzdG1tYWNfcmVzLmFkZHIgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNDpcdGlmIChJU19FUlIoc3RtbWFjX3Jlcy5hZGRyKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzA1Olx0XHRyZXR1cm4gUFRSX0VSUihzdG1tYWNfcmVzLmFkZHIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNzpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzA4LVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMxNjpcdHBsYXRfZGF0LVx1MDAzZXN0bW1hY19jbGsgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMxNzpcdFx0XHRcdFx0XHQgICAgIGRhdGEtXHUwMDNlc3RtbWFjX2Nsa19uYW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTktXHRpZiAoZGF0YS1cdTAwM2Vwcm9iZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzIwOlx0XHRyZXQgPSBkYXRhLVx1MDAzZXByb2JlKHBkZXYsIHBsYXRfZGF0LCBcdTAwMjZzdG1tYWNfcmVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzIxLVx0aWYgKHJldCBcdTAwM2MgMCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMzA6XHRyZXQgPSBzdG1tYWNfZHZyX3Byb2JlKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBwbGF0X2RhdCwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMzMS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNDM9c3RhdGljIHZvaWQgZHdjX2V0aF9kd21hY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzQ3Olx0c3RtbWFjX2R2cl9yZW1vdmUoXHUwMDI2cGRldi1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNDgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNjE9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZHdjX2V0aF9kd21hY19kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNjUtXHRcdC5uYW1lICAgICAgICAgICA9IFwmIzM0O2R3Yy1ldGgtZHdtYWNcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM2NjpcdFx0LnBtICAgICAgICAgICAgID0gXHUwMDI2c3RtbWFjX3BsdGZyX3BtX29wcyxcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAwMzo0NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NDQ4MwoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDY2OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBgc3RtbWFjYCBEcml2ZXI6IEEgVGFyZ2V0ZWQgQXBwcm9hY2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYHN0bW1hY2AgZHJpdmVyLCB3aGljaCBJIGtub3cgaXMgYSBnZW5lcmljIGRyaXZlciBmb3IgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMgaW1wbGVtZW50YXRpb25zLiBBbmQgSSBzZWUgdGhhdCBRRU1VIGFjdHVhbGx5IGhhcyBgaHcvbmV0L2Rlc2lnbndhcmUuY2AsIHdoaWNoIGlzIHRoZSBlbXVsYXRvciBmb3IgdGhpcyBoYXJkd2FyZSwgd2hpY2ggaXMga2V5LiBUaGlzIGdldHMgbWUgdGhpbmtpbmcgYWJvdXQgZnV6emluZyBpdCB3aXRoIHN5emthbGxlci4gVGhlIHdob2xlIHBvaW50IGlzIHRvIGZpbmQgcmVhY2hhYmxlIGJ1Z3MsIHNvIGlmIHN5emthbGxlciBoYXMgZHVnIHNvbWV0aGluZyB1cCBpbiB0aGlzIGRyaXZlciwgd2Uga25vdyB0aGUgY29kZSBpcyBiZWluZyBoaXQgc29tZWhvdy4KClN5emthbGxlciBkb2VzIGEgZ3JlYXQgam9iIGZ1enppbmcgUUVNVSB3aXRoIHZhcmlvdXMgbWFjaGluZSBjb25maWd1cmF0aW9ucywgbGlrZSBgbWNpbXg2dWwtZXZrYCwgYHhsbngtemN1MTAyYCwgYW5kIGBhbGx3aW5uZXItaDNgLiBHb29kLCBzeXprYWxsZXIgc3VwcG9ydHMgQVJNIGFuZCBBUk02NCwgYW5kIHRoaXMgZHJpdmVyIGlzIHJlbGV2YW50IHRvIGEgdmFyaWV0eSBvZiBoYXJkd2FyZS4gU2luY2UgdGhpcyBkcml2ZXIgaXMgZW11bGF0ZWQgd2l0aGluIFFFTVUsIGl0JiMzOTtzIGRlZmluaXRlbHkgd29ydGggZnV6emluZy4KClRoZSBwYXRjaCBpdHNlbGYgbW9kaWZpZXMgYHN0bW1hY19tYWluLmNgLCB0aGUgY29yZSBkcml2ZXIgZm9yICphbGwqIERXTUFDIHZhcmlhbnRzLCBzbyBpdCBpcyBoaWdoIGltcGFjdC4gVGhpcyBhbHNvIGFkZHMgYSBgU1RNTUFDX0RPV05gIGZsYWcgdG8gcHJldmVudCBYRFAgZnJvbSBwcm9jZXNzaW5nIG5ldyBwYWNrZXRzIHdoZW4gdGhlIGludGVyZmFjZSBpcyBkb3duLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgc2lnbmFsIHRoYXQgdGhpcyBjb2RlIGlzIGludGVyZXN0aW5nIHRvIGV4cGxvcmUuIFNvLCB5ZXMsIGRlZmluaXRlbHkgd29ydGggZnV6emluZy4KClRoZSBuZXh0IHN0ZXAgaXMgdG8gbmFpbCBkb3duIHNwZWNpZmljIHN5bWJvbHMsIGFuZCBhdm9pZCB0aGUgbm9pc2UuIEkmIzM5O20gZm9jdXNpbmcgb246CgoqICAgYHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXNgCiogICBgc3RtbWFjX2RyYWluX3hkcGAKKiAgIGBzdG1tYWNfeGRwX3JlbGVhc2VgCiogICBgc3RtbWFjX3N1c3BlbmRgCiogICBgX19zdG1tYWNfb3BlbmAKKiAgIGBfX3N0bW1hY19yZWxlYXNlYAoKSSBrbm93IHRoZSBwcm9tcHQgaXMgZ3VpZGluZyBtZSwgdG8gYXZvaWQgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLiBNeSBtaW5kIGlzIGluc3RhbnRseSBldmFsdWF0aW5nIHdoZXRoZXIgdGhlc2UgZnVuY3Rpb25zIGFyZSBjb21tb24gaW4gdGhlIGRhdGEgcGF0aC4gSG1tLCBsZXQgbWUgdGhpbmsuIGBfX3N0bW1hY19vcGVuYCBhbmQgYF9fc3RtbWFjX3JlbGVhc2VgIGFyZSBpbnRlcmZhY2UgdXAvZG93biBmdW5jdGlvbnMsIHNvIG5vdCBob3QgcGF0aHMuIGBzdG1tYWNfeGRwX3htaXRfYmFja2AgYW5kIGBfX3N0bW1hY194ZHBfcnVuX3Byb2dgIGFyZSBkYXRhIHBhdGguIEdvb2QsIEkmIzM5O2xsIGF2b2lkIHRob3NlLgoKU28sIG5vdyBJIGhhdmUgYSBsaXN0IG9mIHRhcmdldHMgZm9yIGZ1enppbmcuIE5vdywgdG8gbWFrZSBzdXJlIHRoZXNlIHN5bWJvbHMgYXJlIGVuYWJsZWQgaW4gdGhlIGJ1aWxkLiBUaGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIGBzdG1tYWNgLCBzbyB0aGF0JiMzOTtzIHRoZSBrZXJuZWwgbW9kdWxlIEkgbmVlZCB0byBiZSBjb25jZXJuZWQgd2l0aC4gSSB3aWxsIGxvb2sgYXQgdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnYCBmaWxlLiBgU1RNTUFDX0VUSGAgbG9va3MgbGlrZSB0aGUgbWFpbiBjb25maWcg4oCTIGl0JiMzOTtzIGEgYHRyaXN0YXRlICYjMzQ7U1RNaWNyb2VsZWN0cm9uaWNzIDEwLzEwMC8xMDAwL0VRT1MgRXRoZXJuZXQgTUFDIHN1cHBvcnQmIzM0O2AuIFRoaXMgaXMgdGhlIG9uZSBJIG5lZWQgdG8gZm9jdXMgb24uIFdhaXQsIHRoZSBwYXRjaCBtb2RpZmllcyBYRFAtcmVsYXRlZCBjb2RlLiBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgdG8gZW5hYmxlIFhEUCBjb25kaXRpb25hbGx5IHdpdGhpbiBgc3RtbWFjYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMDM6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7WERQJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTgwPU1PRFVMRV9QQVJNX0RFU0MocGh5YWRkciwgXCYjMzQ7UGh5c2ljYWwgZGV2aWNlIGFkZHJlc3NcJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjg0Oi8qIExpbWl0IHRvIG1ha2Ugc3VyZSBYRFAgVFggYW5kIHNsb3cgcGF0aCBjYW4gY29leGlzdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04NS0jZGVmaW5lIFNUTU1BQ19YU0tfVFhfQlVER0VUX01BWFx0MjU2XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6ODk6I2RlZmluZSBTVE1NQUNfWERQX1BBU1NcdFx0MFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo5MDojZGVmaW5lIFNUTU1BQ19YRFBfQ09OU1VNRURcdEJJVCgwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo5MTojZGVmaW5lIFNUTU1BQ19YRFBfVFhcdFx0QklUKDEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjkyOiNkZWZpbmUgU1RNTUFDX1hEUF9SRURJUkVDVFx0QklUKDIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTkzLSNkZWZpbmUgU1RNTUFDX1hTS19DT05TVU1FRFx0QklUKDMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz0yNjk9c3RhdGljIHZvaWQgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yOTItLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI5MzogKiBzdG1tYWNfZHJhaW5feGRwIC0gQ2xlYW51cCBmb3IgWERQIGFwcHNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjk0LSAqIEBwcml2OiBkcml2ZXIgcHJpdmF0ZSBzdHJ1Y3R1cmVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTE1NDU9c3RhdGljIHVuc2lnbmVkIGludCBzdG1tYWNfcnhfb2Zmc2V0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTE1NDctXHRpZiAoc3RtbWFjX3hkcF9pc19lbmFibGVkKHByaXYpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoxNTQ4Olx0XHRyZXR1cm4gWERQX1BBQ0tFVF9IRUFEUk9PTTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMTU0OS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTE3MjU9c3RhdGljIHZvaWQgc3RtbWFjX2ZyZWVfdHhfYnVmZmVyKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTE3MzEtXHRpZiAodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1ZiBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MTczMjpcdCAgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0uYnVmX3R5cGUgIT0gU1RNTUFDX1RYQlVGX1RfWERQX1RYKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTE3MzMtXHRcdGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0ubWFwX2FzX3BhZ2UpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0xNzQ1LVx0aWYgKHR4X3EtXHUwMDNleGRwZltpXSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MTc0NjpcdCAgICAodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1hEUF9UWCB8fFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoxNzQ3Olx0ICAgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfWERQX05ETykpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMTc0OC1cdFx0eGRwX3JldHVybl9mcmFtZSh0eF9xLVx1MDAzZXhkcGZbaV0pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MTg4Mj1zdGF0aWMgaW50IF9faW5pdF9kbWFfcnhfZGVzY19yaW5ncyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0xOTE3LVx0aWYgKHJ4X3EtXHUwMDNleHNrX3Bvb2wpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MTkxODpcdFx0LyogUlggWERQIFpDIGJ1ZmZlciBwb29sIG1heSBub3QgYmUgcG9wdWxhdGVkLCBlLmcuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTE5MTktXHRcdCAqIHhkcHNvY2sgVFgtb25seS5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTI0Mzc9c3RhdGljIHZvaWQgZnJlZV9kbWFfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjQ0My1cdC8qIFJlbGVhc2UgdGhlIERNQSBSWCBzb2NrZXQgYnVmZmVycyBsYXRlclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoyNDQ0Olx0ICogdG8gZW5zdXJlIGFsbCBwZW5kaW5nIFhEUF9UWCBidWZmZXJzIGFyZSByZXR1cm5lZC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjQ0NS1cdCAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjY5MT1zdGF0aWMgYm9vbCBzdG1tYWNfeGRwX3htaXRfemMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCB1MzIgcXVldWUsIHUzMiBidWRnZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yNzM4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoyNzM5Olx0XHQvKiBUbyByZXR1cm4gWERQIGJ1ZmZlciB0byBYU0sgcG9vbCwgd2Ugc2ltcGxlIGNhbGxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjc0MC1cdFx0ICogeHNrX3R4X2NvbXBsZXRlZCgpLCBzbyB3ZSBkb24mIzM5O3QgbmVlZCB0byBmaWxsIHVwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz0yODI3PXN0YXRpYyBpbnQgc3RtbWFjX3R4X2NsZWFuKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IGJ1ZGdldCwgdTMyIHF1ZXVlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjg0OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6Mjg0OTpcdFx0aWYgKHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfWERQX1RYIHx8XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI4NTA6XHRcdCAgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1hEUF9ORE8pIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjg1MS1cdFx0XHR4ZHBmID0gdHhfcS1cdTAwM2V4ZHBmW2VudHJ5XTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI4OTktXHRcdGlmIChsaWtlbHkodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWYgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI5MDA6XHRcdFx0ICAgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWZfdHlwZSAhPSBTVE1NQUNfVFhCVUZfVF9YRFBfVFgpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI5MDEtXHRcdFx0aWYgKHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0ubWFwX2FzX3BhZ2UpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yOTI0LVx0XHRpZiAoeGRwZiBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MjkyNTpcdFx0ICAgIHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfWERQX1RYKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI5MjYtXHRcdFx0eGRwX3JldHVybl9mcmFtZV9yeF9uYXBpKHhkcGYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjkzMC1cdFx0aWYgKHhkcGYgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI5MzE6XHRcdCAgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1hEUF9ORE8pIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjkzMi1cdFx0XHR4ZHBfcmV0dXJuX2ZyYW1lKHhkcGYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NDI0Mj1zdGF0aWMgdm9pZCBfX3N0bW1hY19yZWxlYXNlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MjQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo0MjUwOlx0LyogU2V0IERPV04gZmxhZyB0byBwcmV2ZW50IFhEUCBmcm9tIHByb2Nlc3NpbmcgbmV3IHBhY2tldHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDI1MS1cdHNldF9iaXQoU1RNTUFDX0RPV04sIFx1MDAyNnByaXYtXHUwMDNlc3RhdGUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NTE3OD1zdGF0aWMgaW50IHN0bW1hY194ZHBfeG1pdF94ZHBmKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IHF1ZXVlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTE5MC1cdGlmIChzdG1tYWNfdHhfYXZhaWwocHJpdiwgcXVldWUpIFx1MDAzYyBTVE1NQUNfVFhfVEhSRVNIKHByaXYpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1MTkxOlx0XHRyZXR1cm4gU1RNTUFDX1hEUF9DT05TVU1FRDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTE5Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUxOTYtXHRcdHByaXYtXHUwMDNleHN0YXRzLm1heF9zZHVfdHhxX2Ryb3BbcXVldWVdJiM0MzsmIzQzOztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTE5NzpcdFx0cmV0dXJuIFNUTU1BQ19YRFBfQ09OU1VNRUQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUxOTgtXHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MjA0LVx0XHRpZiAoZG1hX21hcHBpbmdfZXJyb3IocHJpdi1cdTAwM2VkZXZpY2UsIGRtYV9hZGRyKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTIwNTpcdFx0XHRyZXR1cm4gU1RNTUFDX1hEUF9DT05TVU1FRDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTIwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTIwNzpcdFx0YnVmX3R5cGUgPSBTVE1NQUNfVFhCVUZfVF9YRFBfTkRPO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MjA4LVx0fSBlbHNlIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUyMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUyMTY6XHRcdGJ1Zl90eXBlID0gU1RNTUFDX1RYQlVGX1RfWERQX1RYO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MjE3LVx0fVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTI1MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTI1MTpcdHJldHVybiBTVE1NQUNfWERQX1RYO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MjUyLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTUyNjg9c3RhdGljIGludCBzdG1tYWNfeGRwX3htaXRfYmFjayhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01Mjg0LVx0aWYgKHVubGlrZWx5KCF4ZHBmKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTI4NTpcdFx0cmV0dXJuIFNUTU1BQ19YRFBfQ09OU1VNRUQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUyODYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MjkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1Mjk0Olx0LyogRm9yIHplcm8gY29weSBYRFBfVFggYWN0aW9uLCBkbWFfbWFwIGlzIHRydWUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTI5NS1cdHJlcyA9IHN0bW1hY194ZHBfeG1pdF94ZHBmKHByaXYsIHF1ZXVlLCB4ZHBmLCB6Yyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUyOTY6XHRpZiAocmVzID09IFNUTU1BQ19YRFBfVFgpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTI5Ny1cdFx0c3RtbWFjX2ZsdXNoX3R4X2Rlc2NyaXB0b3JzKHByaXYsIHF1ZXVlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTI5ODpcdH0gZWxzZSBpZiAocmVzID09IFNUTU1BQ19YRFBfQ09OU1VNRUQgXHUwMDI2XHUwMDI2IHpjKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUyOTktXHRcdC8qIHhkcCBoYXMgYmVlbiBmcmVlZCBieSB4ZHBfY29udmVydF9idWZmX3RvX2ZyYW1lKCksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz01MzEyPXN0YXRpYyBpbnQgX19zdG1tYWNfeGRwX3J1bl9wcm9nKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzMjAtXHRzd2l0Y2ggKGFjdCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1MzIxOlx0Y2FzZSBYRFBfUEFTUzpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTMyMjpcdFx0cmVzID0gU1RNTUFDX1hEUF9QQVNTO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzIzLVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTMyNDpcdGNhc2UgWERQX1RYOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzI1LVx0XHRyZXMgPSBzdG1tYWNfeGRwX3htaXRfYmFjayhwcml2LCB4ZHApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzI2LVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTMyNzpcdGNhc2UgWERQX1JFRElSRUNUOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzI4LVx0XHRpZiAodW5saWtlbHkodGVzdF9iaXQoU1RNTUFDX0RPV04sIFx1MDAyNnByaXYtXHUwMDNlc3RhdGUpKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTMyOTpcdFx0XHRyZXMgPSBTVE1NQUNfWERQX0NPTlNVTUVEO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzMwLVx0XHRlbHNlIGlmICh4ZHBfZG9fcmVkaXJlY3QocHJpdi1cdTAwM2VkZXYsIHhkcCwgcHJvZykgXHUwMDNjIDApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzMzE6XHRcdFx0cmVzID0gU1RNTUFDX1hEUF9DT05TVU1FRDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTMzMi1cdFx0ZWxzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1MzMzOlx0XHRcdHJlcyA9IFNUTU1BQ19YRFBfUkVESVJFQ1Q7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzMzQtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTMzNy1cdFx0ZmFsbHRocm91Z2g7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzMzg6XHRjYXNlIFhEUF9BQk9SVEVEOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzM5LVx0XHR0cmFjZV94ZHBfZXhjZXB0aW9uKHByaXYtXHUwMDNlZGV2LCBwcm9nLCBhY3QpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzQwLVx0XHRmYWxsdGhyb3VnaDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTM0MTpcdGNhc2UgWERQX0RST1A6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzNDI6XHRcdHJlcyA9IFNUTU1BQ19YRFBfQ09OU1VNRUQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzNDMtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NTM0OT1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnN0bW1hY194ZHBfcnVuX3Byb2coc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTM1Ni1cdGlmICghcHJvZykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1MzU3Olx0XHRyZXMgPSBTVE1NQUNfWERQX1BBU1M7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzNTgtXHRcdGdvdG8gb3V0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NTM2Nj1zdGF0aWMgdm9pZCBzdG1tYWNfZmluYWxpemVfeGRwX3J4KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzNzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzNzQ6XHRpZiAoeGRwX3N0YXR1cyBcdTAwMjYgU1RNTUFDX1hEUF9UWClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTM3NS1cdFx0c3RtbWFjX3R4X3RpbWVyX2FybShwcml2LCBxdWV1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzNzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzNzc6XHRpZiAoeGRwX3N0YXR1cyBcdTAwMjYgU1RNTUFDX1hEUF9SRURJUkVDVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTM3OC1cdFx0eGRwX2RvX2ZsdXNoKCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz01NDk4PXN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3hkcF9idWZmICp4c2tfYnVmZl90b19zdG1tYWNfY3R4KHN0cnVjdCB4ZHBfYnVmZiAqeGRwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01NDk5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTUwMDpcdC8qIEluIFhEUCB6ZXJvIGNvcHkgZGF0YSBwYXRoLCB4ZHAgZmllbGQgaW4gc3RydWN0IHhkcF9idWZmX3hzayBpcyB1c2VkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU1MDEtXHQgKiB0byByZXByZXNlbnQgaW5jb21pbmcgcGFja2V0LCB3aGVyZWFzIGNiIGZpZWxkIGluIHRoZSBzYW1lIHN0cnVjdHVyZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NTUwOD1zdGF0aWMgaW50IHN0bW1hY19yeF96YyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGludCBsaW1pdCwgdTMyIHF1ZXVlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTYxOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTYxOTpcdFx0LyogWERQIFpDIEZyYW1lIG9ubHkgc3VwcG9ydCBwcmltYXJ5IGJ1ZmZlcnMgZm9yIG5vdyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01NjIwLVx0XHRidWYxX2xlbiA9IHN0bW1hY19yeF9idWYxX2xlbihwcml2LCBwLCBzdGF0dXMsIGxlbik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01NjM2LVx0XHRzd2l0Y2ggKHJlcykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1NjM3Olx0XHRjYXNlIFNUTU1BQ19YRFBfUEFTUzpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTYzOC1cdFx0XHRzdG1tYWNfZGlzcGF0Y2hfc2tiX3pjKHByaXYsIHF1ZXVlLCBwLCBucCwgYnVmLVx1MDAzZXhkcCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01NjQwLVx0XHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1NjQxOlx0XHRjYXNlIFNUTU1BQ19YRFBfQ09OU1VNRUQ6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU2NDItXHRcdFx0eHNrX2J1ZmZfZnJlZShidWYtXHUwMDNleGRwKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU2NDYtXHRcdFx0YnJlYWs7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjU2NDc6XHRcdGNhc2UgU1RNTUFDX1hEUF9UWDpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTY0ODpcdFx0Y2FzZSBTVE1NQUNfWERQX1JFRElSRUNUOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01NjQ5LVx0XHRcdHhkcF9zdGF0dXMgfD0gcmVzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NTY5Mz1zdGF0aWMgaW50IHN0bW1hY19yeChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGludCBsaW1pdCwgdTMyIHF1ZXVlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTgzMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTgzMjpcdFx0XHQvKiBGb3IgTm90IFhEUF9QQVNTIHZlcmRpY3QgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTgzMy1cdFx0XHRpZiAoSVNfRVJSKHNrYikpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU4MzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjU4MzY6XHRcdFx0XHRpZiAoeGRwX3JlcyBcdTAwMjYgU1RNTUFDX1hEUF9DT05TVU1FRCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01ODM3LVx0XHRcdFx0XHRwYWdlX3Bvb2xfcHV0X3BhZ2UocnhfcS1cdTAwM2VwYWdlX3Bvb2wsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01ODQzLVx0XHRcdFx0XHQvKiBDbGVhciBza2IgYXMgaXQgd2FzIHNldCBhc1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1ODQ0Olx0XHRcdFx0XHQgKiBzdGF0dXMgYnkgWERQIHByb2dyYW0uXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU4NDUtXHRcdFx0XHRcdCAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTg1Mi1cdFx0XHRcdFx0Y29udGludWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjU4NTM6XHRcdFx0XHR9IGVsc2UgaWYgKHhkcF9yZXMgXHUwMDI2IChTVE1NQUNfWERQX1RYIHxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTg1NDpcdFx0XHRcdFx0XHQgICAgICBTVE1NQUNfWERQX1JFRElSRUNUKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01ODU1LVx0XHRcdFx0XHR4ZHBfc3RhdHVzIHw9IHhkcF9yZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01ODY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1ODY3Olx0XHRcdC8qIFhEUCBwcm9ncmFtIG1heSBleHBhbmQgb3IgcmVkdWNlIHRhaWwgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTg2OC1cdFx0XHRidWYxX2xlbiA9IGN0eC54ZHAuZGF0YV9lbmQgLSBjdHgueGRwLmRhdGE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01ODc5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1ODgwOlx0XHRcdC8qIFhEUCBwcm9ncmFtIG1heSBhZGp1c3QgaGVhZGVyICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU4ODEtXHRcdFx0aGVhZF9wYWRfbGVuID0gY3R4LnhkcC5kYXRhIC0gY3R4LnhkcC5kYXRhX2hhcmRfc3RhcnQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz02MTIyPXN0YXRpYyBpbnQgc3RtbWFjX2NoYW5nZV9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IG5ld19tdHUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02MTM1LVx0aWYgKHN0bW1hY194ZHBfaXNfZW5hYmxlZChwcml2KSBcdTAwMjZcdTAwMjYgbmV3X210dSBcdTAwM2UgRVRIX0RBVEFfTEVOKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjYxMzY6XHRcdG5ldGRldl9kYmcocHJpdi1cdTAwM2VkZXYsIFwmIzM0O0p1bWJvIGZyYW1lcyBub3Qgc3VwcG9ydGVkIGZvciBYRFBcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02MTM3LVx0XHRyZXR1cm4gLUVJTlZBTDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTY5NTY9c3RhdGljIGludCBzdG1tYWNfYnBmKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBuZXRkZXZfYnBmICpicGYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02OTYwLVx0c3dpdGNoIChicGYtXHUwMDNlY29tbWFuZCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2OTYxOlx0Y2FzZSBYRFBfU0VUVVBfUFJPRzpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjk2Mi1cdFx0cmV0dXJuIHN0bW1hY194ZHBfc2V0X3Byb2cocHJpdiwgYnBmLVx1MDAzZXByb2csIGJwZi1cdTAwM2VleHRhY2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2OTYzOlx0Y2FzZSBYRFBfU0VUVVBfWFNLX1BPT0w6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY5NjQtXHRcdHJldHVybiBzdG1tYWNfeGRwX3NldHVwX3Bvb2wocHJpdiwgYnBmLVx1MDAzZXhzay5wb29sLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9Njk3MT1zdGF0aWMgaW50IHN0bW1hY194ZHBfeG1pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgbnVtX2ZyYW1lcyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY5ODItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjY5ODM6XHRpZiAodW5saWtlbHkoZmxhZ3MgXHUwMDI2IH5YRFBfWE1JVF9GTEFHU19NQVNLKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjk4NC1cdFx0cmV0dXJuIC1FSU5WQUw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02OTk2LVx0XHRyZXMgPSBzdG1tYWNfeGRwX3htaXRfeGRwZihwcml2LCBxdWV1ZSwgZnJhbWVzW2ldLCB0cnVlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6Njk5NzpcdFx0aWYgKHJlcyA9PSBTVE1NQUNfWERQX0NPTlNVTUVEKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02OTk4LVx0XHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzAwMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzAwMzpcdGlmIChmbGFncyBcdTAwMjYgWERQX1hNSVRfRkxVU0gpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzAwNC1cdFx0c3RtbWFjX2ZsdXNoX3R4X2Rlc2NyaXB0b3JzKHByaXYsIHF1ZXVlKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTcxMTQ9dm9pZCBzdG1tYWNfeGRwX3JlbGVhc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcxMzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjcxMzQ6XHQvKiBEcmFpbiBsZWZ0b3ZlciBYRFAgYnVmZmVycyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MTM1LVx0c3RtbWFjX2RyYWluX3hkcChwcml2KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTc4MTc9c3RhdGljIGludCBfX3N0bW1hY19kdnJfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2aWNlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzkzOC1cdFx0XHQgICAgTkVUSUZfRl9SWENTVU07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjc5Mzk6XHRuZGV2LVx1MDAzZXhkcF9mZWF0dXJlcyA9IE5FVERFVl9YRFBfQUNUX0JBU0lDIHwgTkVUREVWX1hEUF9BQ1RfUkVESVJFQ1QgfFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3OTQwOlx0XHRcdCAgICAgTkVUREVWX1hEUF9BQ1RfWFNLX1pFUk9DT1BZO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03OTQxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAwMzo0NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MzY4NQoJCQkJCQkJb3V0cHV0OiAxNjgKCQkJCQkJCXRob3VnaHRzOiA4MzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqWERQIGFuZCBTVE1NQUMgQ29uZmlndXJhdGlvbiBhbmQgRm9jdXMgZm9yIEZ1enppbmcqKgoKT2theSwgc28gSSYjMzk7bSBkaXZpbmcgaW50byB0aGlzIGBzdG1tYWNgIGRyaXZlciBjb2RlLCBzcGVjaWZpY2FsbHkgdGhlIFhEUCBpbnRlZ3JhdGlvbi4gUmlnaHQgb2ZmIHRoZSBiYXQsIEkgc2VlIHRoYXQgWERQIHN1cHBvcnQgaXMgYmFrZWQgaW50byBgc3RtbWFjYCBpZiBCUEYgaXMgZW5hYmxlZC4gTm8gZGVkaWNhdGVkIGBDT05GSUdfU1RNTUFDX1hEUGAgb3B0aW9uLCB3aGljaCBzaW1wbGlmaWVzIHRoaW5ncy4gVGhlIGRyaXZlciB1c2VzIHN0YW5kYXJkIFhEUCBhY3Rpb25zIGxpa2UgYFhEUF9QQVNTYCwgYFhEUF9UWGAsIGFuZCBgWERQX1JFRElSRUNUYC4gIFRoZXJlZm9yZSwgZW5hYmxpbmcgdGhpcyBmdW5jdGlvbmFsaXR5IGhpbmdlcyBvbiBoYXZpbmcgYFNUTU1BQ19FVEhgIGFuZCBgQlBGX1NZU0NBTExgIChmb3IgWERQKSB0dXJuZWQgb24uICBgQlBGX1NZU0NBTExgIGlzIHVzdWFsbHkgYSBnaXZlbiwgc28gdGhhdCYjMzk7cyBwcm9iYWJseSBhbHJlYWR5IGVuYWJsZWQuCgpOb3csIHdoaWNoIGNvbmZpZ3VyYXRpb25zIGFyZSAqc3BlY2lmaWMqIHRvIHRoaXMgbW9kaWZpZWQgY29kZT8gSSBuZWVkIHRvIHRoaW5rIGFib3V0IGhvdyB0aGlzIHdpbGwgY29tcGlsZSBhbmQgYmUgdGVzdGFibGUuICBgU1RNTUFDX1BMQVRGT1JNYCBvciBgU1RNTUFDX1BDSWAgY291bGQgYmUgdXNlZnVsLiBJJiMzOTtsbCBkb3VibGUtY2hlY2sgdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnYCBmaWxlLiAgWXVwLCBgU1RNTUFDX0VUSGAgaXMgdGhlIHByaW1hcnkgb25lLCBhbmQgYFNUTU1BQ19QQ0lgIGVuYWJsZXMgUENJIGJ1cyBzdXBwb3J0LiAgSSBtaWdodCBhbHNvIGNvbnNpZGVyIGBEV01BQ19JTlRFTGAgb3IgYERXTUFDX0dFTkVSSUNgIGJ1dCBJJiMzOTtsbCBuZWVkIHRvIHJlbWVtYmVyIHRoYXQgdGhlc2UgYXJlIG5vdCB0aGUgbWFpbiBmb2N1cy4gTG9va2luZyBhdCB0aGUgcHJvbXB0LCBJIHNob3VsZCBvbmx5IGxpc3QgdGhlIG9uZXMgdGhhdCAqc3BlY2lmaWNhbGx5KiBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4KClNvLCBgU1RNTUFDX0VUSGAgaXMgdGhlIG1vc3QgaW1wb3J0YW50IG9uZS4gTGV0JiMzOTtzIHNlZS4uLiB0aGUgYFNUTU1BQ19QQ0lgIG9wdGlvbiBtaWdodCBiZSB1c2VmdWwgdG8gZW5zdXJlIHRoZSBQQ0kgdmFyaWFudCBjYW4gYmUgZnV6emVkLCBkZXBlbmRpbmcgb24gd2hldGhlciBTeXprYWxsZXIgaGFzIFBDSSBmdXp6aW5nLgoKQWxyaWdodCwgbGV0JiMzOTtzIG5haWwgZG93biB0aGUgZnVuY3Rpb25zIHRoaXMgY2hhbmdlIGlzIHRvdWNoaW5nOiBgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlc2AsIGBzdG1tYWNfZHJhaW5feGRwYCwgYHN0bW1hY194ZHBfcmVsZWFzZWAsIGBzdG1tYWNfc3VzcGVuZGAsIGBfX3N0bW1hY19vcGVuYCwgYW5kIGBfX3N0bW1hY19yZWxlYXNlYC4gIEhvbGQgb24sIGBfX3N0bW1hY19vcGVuYCBhbmQgYF9fc3RtbWFjX3JlbGVhc2VgIGFyZSBwcmV0dHkgc3RhbmRhcmQgbmV0ZGV2IG9wZXJhdGlvbnMuIGBzdG1tYWNfeGRwX3JlbGVhc2VgIHNwZWNpZmljYWxseSBoYW5kbGVzIFhEUCByZWxlYXNlLiBgc3RtbWFjX3N1c3BlbmRgIGRlYWxzIHdpdGggUE0gc3VzcGVuZC4gIGBzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzYCBhbmQgYHN0bW1hY19kcmFpbl94ZHBgIGFyZSBpbnRlcm5hbCwgd2hpY2ggSSYjMzk7bGwga2VlcCBpbiBtaW5kLgoKU28sIHdoaWNoIG9mIHRoZXNlIGFyZSAqZ29vZCogZm9jdXMgc3ltYm9scyBmb3IgZnV6emluZz8gYHN0bW1hY194ZHBfcmVsZWFzZWAgbG9va3MgcHJvbWlzaW5nOyBpdCYjMzk7cyBYRFAtc3BlY2lmaWMgd2l0aGluIGBzdG1tYWNgLiBgc3RtbWFjX2RyYWluX3hkcGAgYW5kIGBzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzYCBhcmUgYWxzbyBsb29raW5nIHNwZWNpZmljIGVub3VnaC4KCkFueSBvdGhlciBjb25maWd1cmF0aW9ucyB0byBjb25zaWRlcj8gTm9wZSwgbm90IHRoYXQgSSBjYW4gc2VlLgoKTGV0JiMzOTtzIHF1aWNrbHkgY29uZmlybSBgc3RtbWFjX3hkcF9yZWxlYXNlYCBpc24mIzM5O3Qgc3RhdGljLiBPa2F5LCBgdm9pZCBzdG1tYWNfeGRwX3JlbGVhc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldilgIGluIGBzdG1tYWNfbWFpbi5jYC4gVGhhdCYjMzk7cyBnb29kLgoKU28sIGhlcmUmIzM5O3MgdGhlIHN1bW1hcnk6CgpXb3J0aEZ1enppbmc6IHRydWUKRm9jdXNTeW1ib2xzOgotIHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMKLSBzdG1tYWNfZHJhaW5feGRwCi0gc3RtbWFjX3hkcF9yZWxlYXNlCi0gc3RtbWFjX3N1c3BlbmQKLSBfX3N0bW1hY19vcGVuCi0gX19zdG1tYWNfcmVsZWFzZQoKRW5hYmxlQ29uZmlnczoKLSBTVE1NQUNfRVRICi0gU1RNTUFDX1BDSQoKUmVhc29uaW5nOiBUaGlzIHBhdGNoIGFkZHJlc3NlcyBYRFAgYnVmZmVyIGRyYWluaW5nIGFuZCBuZXcgcGFja2V0IHByb2Nlc3NpbmcgZHVyaW5nIGludGVyZmFjZSBkb3duIHN0YXRlcyBpbiB0aGUgYHN0bW1hY2AgZHJpdmVyLiBJdCB0b3VjaGVzIGNvcmUgZHJpdmVyIGxvZ2ljIHZpYSB0aGUgbmV3IGBTVE1NQUNfRE9XTmAgZmxhZyBhbmQgbW9kaWZpY2F0aW9ucyB0byBvcGVuL3JlbGVhc2Uvc3VzcGVuZC4KCldhaXQsIGlzIGBzdG1tYWNfeGRwX3JlbGVhc2VgIHJlYWNoYWJsZT8gWWVzLCBpdCYjMzk7cyBjYWxsZWQgZnJvbSBgc3RtbWFjX3hkcF9zZXR1cF9wb29sYCB3aGVuIGRpc2FibGluZyBYRFAuIFdoYXQgYWJvdXQgYHN0bW1hY19zdXNwZW5kYD8gQWxzbyByZWFjaGFibGUgdmlhIHRoZSBQTSBmcmFtZXdvcmsuCgpSaWdodCwgSSYjMzk7bSBoYXBweSB3aXRoIHRoYXQgYW5hbHlzaXMuIFRpbWUgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAwMzo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U1RNTUFDX0VUSCYjMzQ7LAogICAgJiMzNDtTVE1NQUNfUENJJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyYjMzQ7LAogICAgJiMzNDtzdG1tYWNfZHJhaW5feGRwJiMzNDssCiAgICAmIzM0O3N0bW1hY194ZHBfcmVsZWFzZSYjMzQ7LAogICAgJiMzNDtzdG1tYWNfc3VzcGVuZCYjMzQ7LAogICAgJiMzNDtfX3N0bW1hY19vcGVuJiMzNDssCiAgICAmIzM0O19fc3RtbWFjX3JlbGVhc2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHN0bW1hYyBkcml2ZXIgdG8gcHJvcGVybHkgZHJhaW4gWERQIGJ1ZmZlcnMgYW5kIHByZXZlbnQgWERQIGZyb20gcHJvY2Vzc2luZyBuZXcgcGFja2V0cyB3aGVuIHRoZSBpbnRlcmZhY2UgaXMgZG93bi4gSXQgaW50cm9kdWNlcyBhIG5ldyBTVE1NQUNfRE9XTiBmbGFnIGFuZCBtb2RpZmllcyB0aGUgaW50ZXJmYWNlIG9wZW4vcmVsZWFzZS9zdXNwZW5kIHBhdGhzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gcmVhY2hhYmxlIGNvcmUgZHJpdmVyIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtTVE1NQUNfRVRIJiMzNDssCiAgICAmIzM0O1NUTU1BQ19QQ0kmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzJiMzNDssCiAgICAmIzM0O3N0bW1hY19kcmFpbl94ZHAmIzM0OywKICAgICYjMzQ7c3RtbWFjX3hkcF9yZWxlYXNlJiMzNDssCiAgICAmIzM0O3N0bW1hY19zdXNwZW5kJiMzNDssCiAgICAmIzM0O19fc3RtbWFjX29wZW4mIzM0OywKICAgICYjMzQ7X19zdG1tYWNfcmVsZWFzZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgc3RtbWFjIGRyaXZlciB0byBwcm9wZXJseSBkcmFpbiBYRFAgYnVmZmVycyBhbmQgcHJldmVudCBYRFAgZnJvbSBwcm9jZXNzaW5nIG5ldyBwYWNrZXRzIHdoZW4gdGhlIGludGVyZmFjZSBpcyBkb3duLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IFNUTU1BQ19ET1dOIGZsYWcgYW5kIG1vZGlmaWVzIHRoZSBpbnRlcmZhY2Ugb3Blbi9yZWxlYXNlL3N1c3BlbmQgcGF0aHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byByZWFjaGFibGUgY29yZSBkcml2ZXIgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wOFQwMzo0Mzo1MC44NzgwODkxMloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY5NDU4MjI1Njg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNUTU1BQ19FVEhcIixcbiAgICBcIlNUTU1BQ19QQ0lcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzXCIsXG4gICAgXCJzdG1tYWNfZHJhaW5feGRwXCIsXG4gICAgXCJzdG1tYWNfeGRwX3JlbGVhc2VcIixcbiAgICBcInN0bW1hY19zdXNwZW5kXCIsXG4gICAgXCJfX3N0bW1hY19vcGVuXCIsXG4gICAgXCJfX3N0bW1hY19yZWxlYXNlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHN0bW1hYyBkcml2ZXIgdG8gcHJvcGVybHkgZHJhaW4gWERQIGJ1ZmZlcnMgYW5kIHByZXZlbnQgWERQIGZyb20gcHJvY2Vzc2luZyBuZXcgcGFja2V0cyB3aGVuIHRoZSBpbnRlcmZhY2UgaXMgZG93bi4gSXQgaW50cm9kdWNlcyBhIG5ldyBTVE1NQUNfRE9XTiBmbGFnIGFuZCBtb2RpZmllcyB0aGUgaW50ZXJmYWNlIG9wZW4vcmVsZWFzZS9zdXNwZW5kIHBhdGhzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gcmVhY2hhYmxlIGNvcmUgZHJpdmVyIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQwMzo0Mzo1MC44NzgwOTU2OFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDc2NDQ5NzkzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgOGQzZWY4YzFkMzMyYTNjZGI4MjQ5NDI1NjY1Nzk0YTkzMzg0MzA0YlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIEp1bCA4IDAzOjQzOjQ5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXFxuaW5kZXggMmEwZDdlZmY4OGQzZmYuLjlkOTcxYWUzNWQ0OGFlIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXFxuQEAgLTI2Miw3ICsyNjIsMTEgQEAgc3RhdGljIHZvaWQgc3RtbWFjX3ZlcmlmeV9hcmdzKHZvaWQpXFxuIFxcdFxcdHByX3dhcm4oXFxcInN0bW1hYzogbW9kdWxlIHBhcmFtZXRlciAnZmxvd19jdHJsJyBpcyBvYnNvbGV0ZSAtIHBsZWFzZSByZW1vdmUgZnJvbSB5b3VyIG1vZHVsZSBjb25maWd1cmF0aW9uXFxcXG5cXFwiKTtcXG4gfVxcbiBcXG4tc3RhdGljIHZvaWQgX19zdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG4rLyoqXFxuKyAqIHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMgLSBEaXNhYmxlIGFsbCBxdWV1ZXNcXG4rICogQHByaXY6IGRyaXZlciBwcml2YXRlIHN0cnVjdHVyZVxcbisgKi9cXG4rc3RhdGljIHZvaWQgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuIHtcXG4gXFx0dTggcnhfcXVldWVzX2NudCA9IHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZXJ4X3F1ZXVlc190b191c2U7XFxuIFxcdHU4IHR4X3F1ZXVlc19jbnQgPSBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2V0eF9xdWV1ZXNfdG9fdXNlO1xcbkBAIC0yODYsMTYgKzI5MCwxNSBAQCBzdGF0aWMgdm9pZCBfX3N0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbiB9XFxuIFxcbiAvKipcXG4tICogc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyAtIERpc2FibGUgYWxsIHF1ZXVlc1xcbisgKiBzdG1tYWNfZHJhaW5feGRwIC0gQ2xlYW51cCBmb3IgWERQIGFwcHNcXG4gICogQHByaXY6IGRyaXZlciBwcml2YXRlIHN0cnVjdHVyZVxcbiAgKi9cXG4tc3RhdGljIHZvaWQgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuK3N0YXRpYyB2b2lkIHN0bW1hY19kcmFpbl94ZHAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbiB7XFxuIFxcdHU4IHJ4X3F1ZXVlc19jbnQgPSBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2VyeF9xdWV1ZXNfdG9fdXNlO1xcbiBcXHRzdHJ1Y3Qgc3RtbWFjX3J4X3F1ZXVlICpyeF9xO1xcbiBcXHR1OCBxdWV1ZTtcXG4gXFxuLVxcdC8qIHN5bmNocm9uaXplX3JjdSgpIG5lZWRlZCBmb3IgcGVuZGluZyBYRFAgYnVmZmVycyB0byBkcmFpbiAqL1xcbiBcXHRmb3IgKHF1ZXVlID0gMDsgcXVldWUgXFx1MDAzYyByeF9xdWV1ZXNfY250OyBxdWV1ZSsrKSB7XFxuIFxcdFxcdHJ4X3EgPSBcXHUwMDI2cHJpdi1cXHUwMDNlZG1hX2NvbmYucnhfcXVldWVbcXVldWVdO1xcbiBcXHRcXHRpZiAocnhfcS1cXHUwMDNleHNrX3Bvb2wpIHtcXG5AQCAtMzAzLDggKzMwNiw2IEBAIHN0YXRpYyB2b2lkIHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0fVxcbiBcXHR9XFxuLVxcbi1cXHRfX3N0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMocHJpdik7XFxuIH1cXG4gXFxuIC8qKlxcbkBAIC00MTQ5LDYgKzQxNTAsOSBAQCBzdGF0aWMgaW50IF9fc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4gXFxuIFxcdHN0bW1hY19yZXNldF9xdWV1ZXNfcGFyYW0ocHJpdik7XFxuIFxcbitcXHQvKiBDbGVhciBET1dOIGZsYWcgd2hlbiBvcGVuaW5nIHRoZSBpbnRlcmZhY2UgKi9cXG4rXFx0Y2xlYXJfYml0KFNUTU1BQ19ET1dOLCBcXHUwMDI2cHJpdi1cXHUwMDNlc3RhdGUpO1xcbitcXG4gXFx0cmV0ID0gc3RtbWFjX2h3X3NldHVwKGRldik7XFxuIFxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuIFxcdFxcdG5ldGRldl9lcnIocHJpdi1cXHUwMDNlZGV2LCBcXFwiJXM6IEh3IHNldHVwIGZhaWxlZFxcXFxuXFxcIiwgX19mdW5jX18pO1xcbkBAIC00MjQzLDYgKzQyNDcsOSBAQCBzdGF0aWMgdm9pZCBfX3N0bW1hY19yZWxlYXNlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuIFxcdC8qIFN0b3AgYW5kIGRpc2Nvbm5lY3QgdGhlIFBIWSAqL1xcbiBcXHRwaHlsaW5rX3N0b3AocHJpdi1cXHUwMDNlcGh5bGluayk7XFxuIFxcbitcXHQvKiBTZXQgRE9XTiBmbGFnIHRvIHByZXZlbnQgWERQIGZyb20gcHJvY2Vzc2luZyBuZXcgcGFja2V0cyAqL1xcbitcXHRzZXRfYml0KFNUTU1BQ19ET1dOLCBcXHUwMDI2cHJpdi1cXHUwMDNlc3RhdGUpO1xcbitcXG4gXFx0c3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhwcml2KTtcXG4gXFxuIFxcdGZvciAoY2hhbiA9IDA7IGNoYW4gXFx1MDAzYyBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2V0eF9xdWV1ZXNfdG9fdXNlOyBjaGFuKyspXFxuQEAgLTQyNTYsNiArNDI2Myw4IEBAIHN0YXRpYyB2b2lkIF9fc3RtbWFjX3JlbGVhc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4gXFx0LyogU3RvcCBUWC9SWCBETUEgYW5kIGNsZWFyIHRoZSBkZXNjcmlwdG9ycyAqL1xcbiBcXHRzdG1tYWNfc3RvcF9hbGxfZG1hKHByaXYpO1xcbiBcXG4rXFx0c3RtbWFjX2RyYWluX3hkcChwcml2KTtcXG4rXFxuIFxcdC8qIFJlbGVhc2UgYW5kIGZyZWUgdGhlIFJ4L1R4IHJlc291cmNlcyAqL1xcbiBcXHRmcmVlX2RtYV9kZXNjX3Jlc291cmNlcyhwcml2LCBcXHUwMDI2cHJpdi1cXHUwMDNlZG1hX2NvbmYpO1xcbiBcXG5AQCAtNTI2MCwxMiArNTI2OSwxOCBAQCBzdGF0aWMgaW50IHN0bW1hY194ZHBfeG1pdF9iYWNrKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG4gXFx0XFx0XFx0XFx0c3RydWN0IHhkcF9idWZmICp4ZHApXFxuIHtcXG4gXFx0Ym9vbCB6YyA9ICEhKHhkcC1cXHUwMDNlcnhxLVxcdTAwM2VtZW0udHlwZSA9PSBNRU1fVFlQRV9YU0tfQlVGRl9QT09MKTtcXG4tXFx0c3RydWN0IHhkcF9mcmFtZSAqeGRwZiA9IHhkcF9jb252ZXJ0X2J1ZmZfdG9fZnJhbWUoeGRwKTtcXG4rXFx0c3RydWN0IHhkcF9mcmFtZSAqeGRwZjtcXG4gXFx0aW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTtcXG4gXFx0c3RydWN0IG5ldGRldl9xdWV1ZSAqbnE7XFxuIFxcdGludCBxdWV1ZTtcXG4gXFx0aW50IHJlcztcXG4gXFxuK1xcdGlmICh1bmxpa2VseSh0ZXN0X2JpdChTVE1NQUNfRE9XTiwgXFx1MDAyNnByaXYtXFx1MDAzZXN0YXRlKSkpIHtcXG4rXFx0XFx0eHNrX2J1ZmZfZnJlZSh4ZHApO1xcbitcXHRcXHRyZXR1cm4gU1RNTUFDX1hTS19DT05TVU1FRDtcXG4rXFx0fVxcbitcXG4rXFx0eGRwZiA9IHhkcF9jb252ZXJ0X2J1ZmZfdG9fZnJhbWUoeGRwKTtcXG4gXFx0aWYgKHVubGlrZWx5KCF4ZHBmKSlcXG4gXFx0XFx0cmV0dXJuIFNUTU1BQ19YRFBfQ09OU1VNRUQ7XFxuIFxcbkBAIC01MzEwLDcgKzUzMjUsOSBAQCBzdGF0aWMgaW50IF9fc3RtbWFjX3hkcF9ydW5fcHJvZyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuIFxcdFxcdHJlcyA9IHN0bW1hY194ZHBfeG1pdF9iYWNrKHByaXYsIHhkcCk7XFxuIFxcdFxcdGJyZWFrO1xcbiBcXHRjYXNlIFhEUF9SRURJUkVDVDpcXG4tXFx0XFx0aWYgKHhkcF9kb19yZWRpcmVjdChwcml2LVxcdTAwM2VkZXYsIHhkcCwgcHJvZykgXFx1MDAzYyAwKVxcbitcXHRcXHRpZiAodW5saWtlbHkodGVzdF9iaXQoU1RNTUFDX0RPV04sIFxcdTAwMjZwcml2LVxcdTAwM2VzdGF0ZSkpKVxcbitcXHRcXHRcXHRyZXMgPSBTVE1NQUNfWERQX0NPTlNVTUVEO1xcbitcXHRcXHRlbHNlIGlmICh4ZHBfZG9fcmVkaXJlY3QocHJpdi1cXHUwMDNlZGV2LCB4ZHAsIHByb2cpIFxcdTAwM2MgMClcXG4gXFx0XFx0XFx0cmVzID0gU1RNTUFDX1hEUF9DT05TVU1FRDtcXG4gXFx0XFx0ZWxzZVxcbiBcXHRcXHRcXHRyZXMgPSBTVE1NQUNfWERQX1JFRElSRUNUO1xcbkBAIC02NDA0LDcgKzY0MjEsNyBAQCBzdGF0aWMgaW50IHN0bW1hY19zZXR1cF90Y19ibG9ja19jYihlbnVtIHRjX3NldHVwX3R5cGUgdHlwZSwgdm9pZCAqdHlwZV9kYXRhLFxcbiBcXHRpZiAoIXRjX2Nsc19jYW5fb2ZmbG9hZF9hbmRfY2hhaW4wKHByaXYtXFx1MDAzZWRldiwgdHlwZV9kYXRhKSlcXG4gXFx0XFx0cmV0dXJuIHJldDtcXG4gXFxuLVxcdF9fc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhwcml2KTtcXG4rXFx0c3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhwcml2KTtcXG4gXFxuIFxcdHN3aXRjaCAodHlwZSkge1xcbiBcXHRjYXNlIFRDX1NFVFVQX0NMU1UzMjpcXG5AQCAtNzExNCw2ICs3MTMxLDkgQEAgdm9pZCBzdG1tYWNfeGRwX3JlbGVhc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4gXFx0LyogU3RvcCBUWC9SWCBETUEgY2hhbm5lbHMgKi9cXG4gXFx0c3RtbWFjX3N0b3BfYWxsX2RtYShwcml2KTtcXG4gXFxuK1xcdC8qIERyYWluIGxlZnRvdmVyIFhEUCBidWZmZXJzICovXFxuK1xcdHN0bW1hY19kcmFpbl94ZHAocHJpdik7XFxuK1xcbiBcXHQvKiBSZWxlYXNlIGFuZCBmcmVlIHRoZSBSeC9UeCByZXNvdXJjZXMgKi9cXG4gXFx0ZnJlZV9kbWFfZGVzY19yZXNvdXJjZXMocHJpdiwgXFx1MDAyNnByaXYtXFx1MDAzZWRtYV9jb25mKTtcXG4gXFxuQEAgLTgyMDAsNiArODIyMCw4IEBAIGludCBzdG1tYWNfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpXFxuIFxcdC8qIFN0b3AgVFgvUlggRE1BICovXFxuIFxcdHN0bW1hY19zdG9wX2FsbF9kbWEocHJpdik7XFxuIFxcbitcXHRzdG1tYWNfZHJhaW5feGRwKHByaXYpO1xcbitcXG4gXFx0c3RtbWFjX2xlZ2FjeV9zZXJkZXNfcG93ZXJfZG93bihwcml2KTtcXG4gXFxuIFxcdC8qIEVuYWJsZSBQb3dlciBkb3duIG1vZGUgYnkgcHJvZ3JhbW1pbmcgdGhlIFBNVCByZWdzICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDAzOjQzOjUxLjM1NTE5MjIwM1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njg5ODExMTM2MzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1RNTUFDX0VUSFwiLFxuICAgIFwiU1RNTUFDX1BDSVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXNcIixcbiAgICBcInN0bW1hY19kcmFpbl94ZHBcIixcbiAgICBcInN0bW1hY194ZHBfcmVsZWFzZVwiLFxuICAgIFwic3RtbWFjX3N1c3BlbmRcIixcbiAgICBcIl9fc3RtbWFjX29wZW5cIixcbiAgICBcIl9fc3RtbWFjX3JlbGVhc2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgc3RtbWFjIGRyaXZlciB0byBwcm9wZXJseSBkcmFpbiBYRFAgYnVmZmVycyBhbmQgcHJldmVudCBYRFAgZnJvbSBwcm9jZXNzaW5nIG5ldyBwYWNrZXRzIHdoZW4gdGhlIGludGVyZmFjZSBpcyBkb3duLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IFNUTU1BQ19ET1dOIGZsYWcgYW5kIG1vZGlmaWVzIHRoZSBpbnRlcmZhY2Ugb3Blbi9yZWxlYXNlL3N1c3BlbmQgcGF0aHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byByZWFjaGFibGUgY29yZSBkcml2ZXIgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgOGQzZWY4YzFkMzMyYTNjZGI4MjQ5NDI1NjY1Nzk0YTkzMzg0MzA0YlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDggMDM6NDM6NDkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuaW5kZXggMmEwZDdlZmY4OGQzZmYuLjlkOTcxYWUzNWQ0OGFlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuQEAgLTI2Miw3ICsyNjIsMTEgQEAgc3RhdGljIHZvaWQgc3RtbWFjX3ZlcmlmeV9hcmdzKHZvaWQpXG4gXHRcdHByX3dhcm4oXCJzdG1tYWM6IG1vZHVsZSBwYXJhbWV0ZXIgJ2Zsb3dfY3RybCcgaXMgb2Jzb2xldGUgLSBwbGVhc2UgcmVtb3ZlIGZyb20geW91ciBtb2R1bGUgY29uZmlndXJhdGlvblxcblwiKTtcbiB9XG4gXG4tc3RhdGljIHZvaWQgX19zdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbisvKipcbisgKiBzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzIC0gRGlzYWJsZSBhbGwgcXVldWVzXG4rICogQHByaXY6IGRyaXZlciBwcml2YXRlIHN0cnVjdHVyZVxuKyAqL1xuK3N0YXRpYyB2b2lkIHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuIHtcbiBcdHU4IHJ4X3F1ZXVlc19jbnQgPSBwcml2LVx1MDAzZXBsYXQtXHUwMDNlcnhfcXVldWVzX3RvX3VzZTtcbiBcdHU4IHR4X3F1ZXVlc19jbnQgPSBwcml2LVx1MDAzZXBsYXQtXHUwMDNldHhfcXVldWVzX3RvX3VzZTtcbkBAIC0yODYsMTYgKzI5MCwxNSBAQCBzdGF0aWMgdm9pZCBfX3N0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuIH1cbiBcbiAvKipcbi0gKiBzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzIC0gRGlzYWJsZSBhbGwgcXVldWVzXG4rICogc3RtbWFjX2RyYWluX3hkcCAtIENsZWFudXAgZm9yIFhEUCBhcHBzXG4gICogQHByaXY6IGRyaXZlciBwcml2YXRlIHN0cnVjdHVyZVxuICAqL1xuLXN0YXRpYyB2b2lkIHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuK3N0YXRpYyB2b2lkIHN0bW1hY19kcmFpbl94ZHAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuIHtcbiBcdHU4IHJ4X3F1ZXVlc19jbnQgPSBwcml2LVx1MDAzZXBsYXQtXHUwMDNlcnhfcXVldWVzX3RvX3VzZTtcbiBcdHN0cnVjdCBzdG1tYWNfcnhfcXVldWUgKnJ4X3E7XG4gXHR1OCBxdWV1ZTtcbiBcbi1cdC8qIHN5bmNocm9uaXplX3JjdSgpIG5lZWRlZCBmb3IgcGVuZGluZyBYRFAgYnVmZmVycyB0byBkcmFpbiAqL1xuIFx0Zm9yIChxdWV1ZSA9IDA7IHF1ZXVlIFx1MDAzYyByeF9xdWV1ZXNfY250OyBxdWV1ZSsrKSB7XG4gXHRcdHJ4X3EgPSBcdTAwMjZwcml2LVx1MDAzZWRtYV9jb25mLnJ4X3F1ZXVlW3F1ZXVlXTtcbiBcdFx0aWYgKHJ4X3EtXHUwMDNleHNrX3Bvb2wpIHtcbkBAIC0zMDMsOCArMzA2LDYgQEAgc3RhdGljIHZvaWQgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4gXHRcdFx0YnJlYWs7XG4gXHRcdH1cbiBcdH1cbi1cbi1cdF9fc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhwcml2KTtcbiB9XG4gXG4gLyoqXG5AQCAtNDE0OSw2ICs0MTUwLDkgQEAgc3RhdGljIGludCBfX3N0bW1hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXG4gXHRzdG1tYWNfcmVzZXRfcXVldWVzX3BhcmFtKHByaXYpO1xuIFxuK1x0LyogQ2xlYXIgRE9XTiBmbGFnIHdoZW4gb3BlbmluZyB0aGUgaW50ZXJmYWNlICovXG4rXHRjbGVhcl9iaXQoU1RNTUFDX0RPV04sIFx1MDAyNnByaXYtXHUwMDNlc3RhdGUpO1xuK1xuIFx0cmV0ID0gc3RtbWFjX2h3X3NldHVwKGRldik7XG4gXHRpZiAocmV0IFx1MDAzYyAwKSB7XG4gXHRcdG5ldGRldl9lcnIocHJpdi1cdTAwM2VkZXYsIFwiJXM6IEh3IHNldHVwIGZhaWxlZFxcblwiLCBfX2Z1bmNfXyk7XG5AQCAtNDI0Myw2ICs0MjQ3LDkgQEAgc3RhdGljIHZvaWQgX19zdG1tYWNfcmVsZWFzZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuIFx0LyogU3RvcCBhbmQgZGlzY29ubmVjdCB0aGUgUEhZICovXG4gXHRwaHlsaW5rX3N0b3AocHJpdi1cdTAwM2VwaHlsaW5rKTtcbiBcbitcdC8qIFNldCBET1dOIGZsYWcgdG8gcHJldmVudCBYRFAgZnJvbSBwcm9jZXNzaW5nIG5ldyBwYWNrZXRzICovXG4rXHRzZXRfYml0KFNUTU1BQ19ET1dOLCBcdTAwMjZwcml2LVx1MDAzZXN0YXRlKTtcbitcbiBcdHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMocHJpdik7XG4gXG4gXHRmb3IgKGNoYW4gPSAwOyBjaGFuIFx1MDAzYyBwcml2LVx1MDAzZXBsYXQtXHUwMDNldHhfcXVldWVzX3RvX3VzZTsgY2hhbisrKVxuQEAgLTQyNTYsNiArNDI2Myw4IEBAIHN0YXRpYyB2b2lkIF9fc3RtbWFjX3JlbGVhc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbiBcdC8qIFN0b3AgVFgvUlggRE1BIGFuZCBjbGVhciB0aGUgZGVzY3JpcHRvcnMgKi9cbiBcdHN0bW1hY19zdG9wX2FsbF9kbWEocHJpdik7XG4gXG4rXHRzdG1tYWNfZHJhaW5feGRwKHByaXYpO1xuK1xuIFx0LyogUmVsZWFzZSBhbmQgZnJlZSB0aGUgUngvVHggcmVzb3VyY2VzICovXG4gXHRmcmVlX2RtYV9kZXNjX3Jlc291cmNlcyhwcml2LCBcdTAwMjZwcml2LVx1MDAzZWRtYV9jb25mKTtcbiBcbkBAIC01MjYwLDEyICs1MjY5LDE4IEBAIHN0YXRpYyBpbnQgc3RtbWFjX3hkcF94bWl0X2JhY2soc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuIFx0XHRcdFx0c3RydWN0IHhkcF9idWZmICp4ZHApXG4ge1xuIFx0Ym9vbCB6YyA9ICEhKHhkcC1cdTAwM2VyeHEtXHUwMDNlbWVtLnR5cGUgPT0gTUVNX1RZUEVfWFNLX0JVRkZfUE9PTCk7XG4tXHRzdHJ1Y3QgeGRwX2ZyYW1lICp4ZHBmID0geGRwX2NvbnZlcnRfYnVmZl90b19mcmFtZSh4ZHApO1xuK1x0c3RydWN0IHhkcF9mcmFtZSAqeGRwZjtcbiBcdGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7XG4gXHRzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpucTtcbiBcdGludCBxdWV1ZTtcbiBcdGludCByZXM7XG4gXG4rXHRpZiAodW5saWtlbHkodGVzdF9iaXQoU1RNTUFDX0RPV04sIFx1MDAyNnByaXYtXHUwMDNlc3RhdGUpKSkge1xuK1x0XHR4c2tfYnVmZl9mcmVlKHhkcCk7XG4rXHRcdHJldHVybiBTVE1NQUNfWFNLX0NPTlNVTUVEO1xuK1x0fVxuK1xuK1x0eGRwZiA9IHhkcF9jb252ZXJ0X2J1ZmZfdG9fZnJhbWUoeGRwKTtcbiBcdGlmICh1bmxpa2VseSgheGRwZikpXG4gXHRcdHJldHVybiBTVE1NQUNfWERQX0NPTlNVTUVEO1xuIFxuQEAgLTUzMTAsNyArNTMyNSw5IEBAIHN0YXRpYyBpbnQgX19zdG1tYWNfeGRwX3J1bl9wcm9nKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbiBcdFx0cmVzID0gc3RtbWFjX3hkcF94bWl0X2JhY2socHJpdiwgeGRwKTtcbiBcdFx0YnJlYWs7XG4gXHRjYXNlIFhEUF9SRURJUkVDVDpcbi1cdFx0aWYgKHhkcF9kb19yZWRpcmVjdChwcml2LVx1MDAzZWRldiwgeGRwLCBwcm9nKSBcdTAwM2MgMClcbitcdFx0aWYgKHVubGlrZWx5KHRlc3RfYml0KFNUTU1BQ19ET1dOLCBcdTAwMjZwcml2LVx1MDAzZXN0YXRlKSkpXG4rXHRcdFx0cmVzID0gU1RNTUFDX1hEUF9DT05TVU1FRDtcbitcdFx0ZWxzZSBpZiAoeGRwX2RvX3JlZGlyZWN0KHByaXYtXHUwMDNlZGV2LCB4ZHAsIHByb2cpIFx1MDAzYyAwKVxuIFx0XHRcdHJlcyA9IFNUTU1BQ19YRFBfQ09OU1VNRUQ7XG4gXHRcdGVsc2VcbiBcdFx0XHRyZXMgPSBTVE1NQUNfWERQX1JFRElSRUNUO1xuQEAgLTY0MDQsNyArNjQyMSw3IEBAIHN0YXRpYyBpbnQgc3RtbWFjX3NldHVwX3RjX2Jsb2NrX2NiKGVudW0gdGNfc2V0dXBfdHlwZSB0eXBlLCB2b2lkICp0eXBlX2RhdGEsXG4gXHRpZiAoIXRjX2Nsc19jYW5fb2ZmbG9hZF9hbmRfY2hhaW4wKHByaXYtXHUwMDNlZGV2LCB0eXBlX2RhdGEpKVxuIFx0XHRyZXR1cm4gcmV0O1xuIFxuLVx0X19zdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzKHByaXYpO1xuK1x0c3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhwcml2KTtcbiBcbiBcdHN3aXRjaCAodHlwZSkge1xuIFx0Y2FzZSBUQ19TRVRVUF9DTFNVMzI6XG5AQCAtNzExNCw2ICs3MTMxLDkgQEAgdm9pZCBzdG1tYWNfeGRwX3JlbGVhc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbiBcdC8qIFN0b3AgVFgvUlggRE1BIGNoYW5uZWxzICovXG4gXHRzdG1tYWNfc3RvcF9hbGxfZG1hKHByaXYpO1xuIFxuK1x0LyogRHJhaW4gbGVmdG92ZXIgWERQIGJ1ZmZlcnMgKi9cbitcdHN0bW1hY19kcmFpbl94ZHAocHJpdik7XG4rXG4gXHQvKiBSZWxlYXNlIGFuZCBmcmVlIHRoZSBSeC9UeCByZXNvdXJjZXMgKi9cbiBcdGZyZWVfZG1hX2Rlc2NfcmVzb3VyY2VzKHByaXYsIFx1MDAyNnByaXYtXHUwMDNlZG1hX2NvbmYpO1xuIFxuQEAgLTgyMDAsNiArODIyMCw4IEBAIGludCBzdG1tYWNfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpXG4gXHQvKiBTdG9wIFRYL1JYIERNQSAqL1xuIFx0c3RtbWFjX3N0b3BfYWxsX2RtYShwcml2KTtcbiBcbitcdHN0bW1hY19kcmFpbl94ZHAocHJpdik7XG4rXG4gXHRzdG1tYWNfbGVnYWN5X3NlcmRlc19wb3dlcl9kb3duKHByaXYpO1xuIFxuIFx0LyogRW5hYmxlIFBvd2VyIGRvd24gbW9kZSBieSBwcm9ncmFtbWluZyB0aGUgUE1UIHJlZ3MgKi9cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDAzOjQzOjUxLjM1NTE5MzI1M1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY4NTk2NjM5NTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUGF0Y2ggdG8gdGhlIFNUTU1BQyBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY2AuIEl0J3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCwgZnVuY3Rpb25hbGx5IHNwZWFraW5nLiBUaGV5J3ZlIHJlbmFtZWQgYF9fc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlc2AgdG8gYHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXNgIOKAkyBub3RoaW5nIGdyb3VuZC1icmVha2luZyB0aGVyZS4gVGhlbiwgdGhleSd2ZSBwdWxsZWQgdGhlIFhEUCBkcmFpbmluZyBsb2dpYyBvdXQgaW50byBpdHMgb3duIGZ1bmN0aW9uLCBgc3RtbWFjX2RyYWluX3hkcGAuIFNtYXJ0OyB0aGF0J3MgZ29vZCBmb3IgcmVhZGFiaWxpdHkgYW5kIHBvdGVudGlhbCByZXVzZS4gVGhlIG1lYXQgb2YgaXQgc2VlbXMgdG8gYmUgYXJvdW5kIHRoaXMgYFNUTU1BQ19ET1dOYCBmbGFnLiBUaGV5J3JlIGFkZGluZyBjaGVja3MgZm9yIGl0IGluIGEgZmV3IHBsYWNlcy4gRXNzZW50aWFsbHksIGl0IGxvb2tzIGxpa2UgdGhleSdyZSB0cnlpbmcgdG8gcHJldmVudCBYRFAgZnJvbSB0b3VjaGluZyBwYWNrZXRzIHdoZW4gdGhlIGludGVyZmFjZSBpcyBkb3duLiBNYWtlcyBzZW5zZTsgYXZvaWQgYW55IHdlaXJkIHJhY2UgY29uZGl0aW9ucyBvciBhdHRlbXB0cyB0byBwcm9jZXNzIHBhY2tldHMgb24gYSBkZWFkIGludGVyZmFjZS4gVGhleSBzZXQgYFNUTU1BQ19ET1dOYCBpbiBgX19zdG1tYWNfcmVsZWFzZWAgYW5kIGNsZWFyIGl0IGluIGBfX3N0bW1hY19vcGVuYC4gQW5kIHRoZW4sIGNyaXRpY2FsbHksIHRoZXkncmUgY2hlY2tpbmcgaXQgaW4gYHN0bW1hY194ZHBfeG1pdF9iYWNrYCwgYF9fc3RtbWFjX3hkcF9ydW5fcHJvZ2AgYW5kIGNhbGxpbmcgYHN0bW1hY19kcmFpbl94ZHBgIGluIGBfX3N0bW1hY19yZWxlYXNlYCwgYHN0bW1hY194ZHBfcmVsZWFzZWAsIGFuZCBgc3RtbWFjX3N1c3BlbmRgLiBPa2F5LCBzbyBpdCBsb29rcyBsaWtlIHRoZXkgYXJlIGNhbGxpbmcgdGhlIGRyYWluaW5nIGZ1bmN0aW9uIGluIGRpZmZlcmVudCBwbGFjZXMuXG5cbk5vdywgZnJvbSBhIHRlc3RpbmcgcGVyc3BlY3RpdmUsIHRoaXMgYnJpbmdzIHVwIHNvbWUgaW1tZWRpYXRlIHF1ZXN0aW9ucy4gVGhpcyBpcyBhICpoYXJkd2FyZSogZHJpdmVyLiBTcGVjaWZpY2FsbHksIGl0J3MgZm9yIFNUTWljcm9lbGVjdHJvbmljcyBFdGhlcm5ldCBNQUNzLCB3aGljaCBtZWFucyBpdCdzIGxpa2VseSBkZWFsaW5nIHdpdGggYWN0dWFsIGhhcmR3YXJlIHJlZ2lzdGVycy4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGNhbiB0aGlzIGJlIGZ1enplZD8gSXMgdGhlcmUgYSB2aXJ0dWFsIGNvdW50ZXJwYXJ0LCBsaWtlIGEgdmlydGlvIGRldmljZSwgdGhhdCBJIGNhbiB1c2UgdG8gZW11bGF0ZSBpdD8gUHJvYmFibHkgbm90LCBzaW5jZSBpdCdzIGFuIFNUTWljcm9lbGVjdHJvbmljcyBzcGVjaWZpYyBkcml2ZXIuIFNvLCBJIG5lZWQgdG8gY2hlY2sgaG93IGl0J3MgY29ubmVjdGVkLiBJdCBpcyBhIFBDSSBkcml2ZXI/IEkgbmVlZCB0byBsb29rIGludG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuY2AsIHdoaWNoIGlzIGEgZ29vZCBjbHVlLiBJIHdpbGwgcXVpY2tseSBydW4gYSBgZ3JlcHBlcmAgY2hlY2sgdG8gc2VlLiBJIGNhbid0IHN0YXJ0IGZ1enppbmcgc29tZXRoaW5nIHRoYXQgaXNuJ3QgY29ubmVjdGVkIHRvIHRoZSBjb3JyZWN0IGhhcmR3YXJlIG9yIHZpcnR1YWxpc2VkLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTIzLCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDI2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMDM6NDM6NTguMjE0ODU5MjM5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5NzMyMzI4MDMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RtbWFjX3BjaVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJEb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0PTEwNz1zeW50YXggKGUuZy4gZm9yIFBDSSBtb2R1bGUpOjpcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0LTEwOC1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0OjEwOTogICAgbW9kcHJvYmUgc3RtbWFjX3BjaSBbXFx1MDAzY29wdGlvblxcdTAwM2U9XFx1MDAzY1ZBTDFcXHUwMDNlLFxcdTAwM2NWQUwyXFx1MDAzZSwuLi5dXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdC0xMTAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT01Mz1vYmotJChDT05GSUdfRFdNQUNfTU9UT1JDT01NKVxcdCs9IGR3bWFjLW1vdG9yY29tbS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTQ6c3RtbWFjLXBjaS1vYmpzOj0gc3RtbWFjX3BjaS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTI1PXN0cnVjdCBpbnRlbF9wcml2X2RhdGEge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0zOS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjQwOnN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00MS1cXHR1bnNpZ25lZCBpbnQgZnVuYztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0NTpzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0NjpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgKmZ1bmM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00Ny1cXHRzaXplX3QgbmZ1bmNzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjUwOnN0cnVjdCBzdG1tYWNfcGNpX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNTEtXFx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MT1zdGF0aWMgY29uc3QgaW50IGFkbG5fdHNuX2xhbmVfcmVnc1tdID0gezZ9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5MzpzdGF0aWMgaW50IHN0bW1hY19wY2lfZmluZF9waHlfYWRkcihzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk0LVxcdFxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqZG1pX2xpc3QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NjpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgKmZ1bmNfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk3OlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhICpkbWlfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk4LVxcdGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICpkbWlfaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTc1NT1zdGF0aWMgaW50IGVobF9zZ21paV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy03NzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo3NzU6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3NnbWlpMWdfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTc3Ni1cXHQuc2V0dXAgPSBlaGxfc2dtaWlfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9Nzc5PXN0YXRpYyBpbnQgZWhsX3JnbWlpX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTc4OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjc5MDpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcmdtaWkxZ19pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNzkxLVxcdC5zZXR1cCA9IGVobF9yZ21paV9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04MTA9c3RhdGljIGludCBlaGxfcHNlMF9yZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTgxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjgxNzpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMF9yZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MTgtXFx0LnNldHVwID0gZWhsX3BzZTBfcmdtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04MjE9c3RhdGljIGludCBlaGxfcHNlMF9zZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTgzOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjgzOTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMF9zZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04NDAtXFx0LnNldHVwID0gZWhsX3BzZTBfc2dtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04NTk9c3RhdGljIGludCBlaGxfcHNlMV9yZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg2NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjg2NjpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMV9yZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04NjctXFx0LnNldHVwID0gZWhsX3BzZTFfcmdtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04NzA9c3RhdGljIGludCBlaGxfcHNlMV9zZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjg4ODpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMV9zZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04ODktXFx0LnNldHVwID0gZWhsX3BzZTFfc2dtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MTM9c3RhdGljIGludCB0Z2xfc2dtaWlfcGh5MF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5MjI6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gdGdsX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTIzLVxcdC5zZXR1cCA9IHRnbF9zZ21paV9waHkwX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTkyNj1zdGF0aWMgaW50IHRnbF9zZ21paV9waHkxX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTkzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjkzNTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyB0Z2xfc2dtaWkxZ19waHkxX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MzYtXFx0LnNldHVwID0gdGdsX3NnbWlpX3BoeTFfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTM5PXN0YXRpYyBpbnQgYWRsc19zZ21paV9waHkwX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk0OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk0OTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBhZGxzX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTUwLVxcdC5zZXR1cCA9IGFkbHNfc2dtaWlfcGh5MF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05NTM9c3RhdGljIGludCBhZGxzX3NnbWlpX3BoeTFfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTYzOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGFkbHNfc2dtaWkxZ19waHkxX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NjQtXFx0LnNldHVwID0gYWRsc19zZ21paV9waHkxX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTk5Mj1zdGF0aWMgaW50IGFkbG5fc2dtaWlfcGh5MF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTAxMTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBhZGxuX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAxMi1cXHQuc2V0dXAgPSBhZGxuX3NnbWlpX3BoeTBfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMTU6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSBnYWxpbGVvX3N0bW1hY19mdW5jX2RhdGFbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMTYtXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTAyMjpzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZG1pX2RhdGEgZ2FsaWxlb19zdG1tYWNfZG1pX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDIzLVxcdC5mdW5jID0gZ2FsaWxlb19zdG1tYWNfZnVuY19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDI2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTAyNzpzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZnVuY19kYXRhIGlvdDIwNDBfc3RtbWFjX2Z1bmNfZGF0YVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAyOC1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDM4OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSBpb3QyMDQwX3N0bW1hY19kbWlfZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMzktXFx0LmZ1bmMgPSBpb3QyMDQwX3N0bW1hY19mdW5jX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTEwNzg9c3RhdGljIGludCBxdWFya19kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwODgtXFx0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDg5OlxcdHJldCA9IHN0bW1hY19wY2lfZmluZF9waHlfYWRkcihwZGV2LCBxdWFya19wY2lfZG1pKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwOTAtXFx0aWYgKHJldCBcXHUwMDNjIDApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTExMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjExMTQ6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gcXVhcmtfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTExMTUtXFx0LnNldHVwID0gcXVhcmtfZGVmYXVsdF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0xMjMyPXN0YXRpYyBpbnQgaW50ZWxfZXRoX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTIzNC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMjM1OlxcdHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKmluZm8gPSAoc3RydWN0IHN0bW1hY19wY2lfaW5mbyAqKWlkLVxcdTAwM2Vkcml2ZXJfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEyMzYtXFx0c3RydWN0IGludGVsX3ByaXZfZGF0YSAqaW50ZWxfcHJpdjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9NzY9c3RydWN0IGxvb25nc29uX2RhdGEge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy04MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjgyOnN0cnVjdCBzdG1tYWNfcGNpX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtODMtXFx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz0xMzI9c3RhdGljIGludCBsb29uZ3Nvbl9nbWFjX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTE0MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjE0MjpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBsb29uZ3Nvbl9nbWFjX3BjaV9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTQzLVxcdC5zZXR1cCA9IGxvb25nc29uX2dtYWNfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MTY1PXN0YXRpYyBpbnQgbG9vbmdzb25fZ25ldF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxNzc6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gbG9vbmdzb25fZ25ldF9wY2lfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTE3OC1cXHQuc2V0dXAgPSBsb29uZ3Nvbl9nbmV0X2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTQ5OD1zdGF0aWMgaW50IGxvb25nc29uX2R3bWFjX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUwMS1cXHRzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyByZXMgPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjUwMjpcXHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTAzLVxcdHN0cnVjdCBsb29uZ3Nvbl9kYXRhICpsZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTM3LVxcdHBsYXQtXFx1MDAzZWZpeF9zb2NfcmVzZXQgPSBsb29uZ3Nvbl9kd21hY19maXhfcmVzZXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1Mzg6XFx0cGxhdC1cXHUwMDNlc3VzcGVuZCA9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NTM5OlxcdHBsYXQtXFx1MDAzZXJlc3VtZSA9IHN0bW1hY19wY2lfcGxhdF9yZXN1bWU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01NDAtXFx0bGQtXFx1MDAzZWRldiA9IFxcdTAwMjZwZGV2LVxcdTAwM2VkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTU0Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjU0MzpcXHRpbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cXHUwMDNlZHJpdmVyX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01NDQtXFx0cmV0ID0gaW5mby1cXHUwMDNlc2V0dXAocGRldiwgcGxhdCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0xODg9c3RhdGljIGludCBtb3RvcmNvbW1fcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0xOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MTkzOlxcdHJldCA9IHN0bW1hY19wY2lfcGxhdF9yZXN1bWUoZGV2LCBic3BfcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMTk0LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0yMDg9bW90b3Jjb21tX2RlZmF1bHRfcGxhdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMjQ4LVxcdHBsYXQtXFx1MDAzZWNvcmVfdHlwZVxcdFxcdD0gRFdNQUNfQ09SRV9HTUFDNDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzoyNDk6XFx0cGxhdC1cXHUwMDNlc3VzcGVuZFxcdFxcdD0gc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMjUwLVxcdHBsYXQtXFx1MDAzZXJlc3VtZVxcdFxcdD0gbW90b3Jjb21tX3Jlc3VtZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0xMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6MTI6aW50IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTEzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0yNS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjI2OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjI4OmludCBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTI5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy00My19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjQ0OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19wY2lfcGxhdF9yZXN1bWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy00NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuaC04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuaDo5OmludCBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmJzcF9wcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmg6MTA6aW50IHN0bW1hY19wY2lfcGxhdF9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5oLTExLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxOTpzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjAtXFx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTMzPXN0YXRpYyBpbnQgc3RtbWFjX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy00OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6NTA6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gc3RtbWFjX3BjaV9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy01MS1cXHQuc2V0dXAgPSBzdG1tYWNfZGVmYXVsdF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTU0PXN0YXRpYyBpbnQgc25wc19nbWFjNV9kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTAxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMDI6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gc25wc19nbWFjNV9wY2lfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTAzLVxcdC5zZXR1cCA9IHNucHNfZ21hYzVfZGVmYXVsdF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwNi0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTA3OiAqIHN0bW1hY19wY2lfcHJvYmVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTA4LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTE3LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMTg6c3RhdGljIGludCBzdG1tYWNfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xMTktXFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTIwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTIxOlxcdHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKmluZm8gPSAoc3RydWN0IHN0bW1hY19wY2lfaW5mbyAqKWlkLVxcdTAwM2Vkcml2ZXJfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTIyLVxcdHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xNzktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjE4MDpcXHRwbGF0LVxcdTAwM2VzdXNwZW5kID0gc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjE4MTpcXHRwbGF0LVxcdTAwM2VyZXN1bWUgPSBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xODItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTg2LS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxODc6ICogc3RtbWFjX3BjaV9yZW1vdmVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTg4LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTkxLSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxOTI6c3RhdGljIHZvaWQgc3RtbWFjX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE5My17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjAzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBzdG1tYWNfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjA0OlxcdHsgUENJX0RFVklDRV9EQVRBKFNUTU1BQywgU1RNTUFDLCBcXHUwMDI2c3RtbWFjX3BjaV9pbmZvKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMDU6XFx0eyBQQ0lfREVWSUNFX0RBVEEoU1RNSUNSTywgTUFDLCBcXHUwMDI2c3RtbWFjX3BjaV9pbmZvKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDYtXFx0eyBQQ0lfREVWSUNFX0RBVEEoU1lOT1BTWVMsIEdNQUM1X0lELCBcXHUwMDI2c25wc19nbWFjNV9wY2lfaW5mbykgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0yMTA9TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIHN0bW1hY19pZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjEyOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBzdG1tYWNfcGNpX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjEzLVxcdC5uYW1lID0gU1RNTUFDX1JFU09VUkNFX05BTUUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxNC1cXHQuaWRfdGFibGUgPSBzdG1tYWNfaWRfdGFibGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxNTpcXHQucHJvYmUgPSBzdG1tYWNfcGNpX3Byb2JlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTY6XFx0LnJlbW92ZSA9IHN0bW1hY19wY2lfcmVtb3ZlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTctXFx0LmRyaXZlciAgICAgICAgID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjIyOm1vZHVsZV9wY2lfZHJpdmVyKHN0bW1hY19wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjIzLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQwMzo0NDowMC4xODgwOTY0NjJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzkxOTA5Mjg0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSZWFjaGluZyB0aGUgU1RNTUFDIERyaXZlciBmb3IgRnV6emluZyoqXG5cbk9rYXksIHNvIGBzdG1tYWNgIGhhcyBhIFBDSSBkcml2ZXIsIGBzdG1tYWNfcGNpLmNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgUENJIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuIFNpbmNlIGl0J3MgUENJLCB0aGF0IG9wZW5zIHRoZSBkb29yIHRvIHN5emthbGxlcidzIFBDSSBmdXp6aW5nIGNhcGFiaWxpdGllcywgYXNzdW1pbmcgdGhlIGRldmljZSBpcyBlaXRoZXIgZW11bGF0ZWQgb3IgYWN0dWFsbHkgcHJlc2VudC5cblxuUmlnaHQsIHN5emthbGxlciBoYXMgYSBQQ0kgZnV6emVyLCBidXQsIGl0IHVzdWFsbHkgbmVlZHMgdGhlIGRldmljZSB0byBiZSBwcmVzZW50IG9yIGl0IGZ1enplcyB0aGUgUENJIHN1YnN5c3RlbS4gSG93ZXZlciwgc3l6a2FsbGVyICpkb2VzKiBoYXZlIGBzeXpfcGNpX2RldmljZWAgd2hpY2ggSSB0aGluayBlbXVsYXRlcyBkZXZpY2VzLiBMZXQgbWUgZG91YmxlIGNoZWNrLi4uXG5cbklzIHRoZXJlIGFub3RoZXIgd2F5IHRvIHJlYWNoIHRoaXMgY29kZSB0aG91Z2g/IGBzdG1tYWNgIGlzIGZvciBEZXNpZ25XYXJlIE1BQyAoRFdNQUMpLiBJcyBpdCByZWFjaGFibGUgaW4gUUVNVT8gUUVNVSBlbXVsYXRlcyBzZXZlcmFsIG5ldHdvcmsgZGV2aWNlcywgYnV0IG5vdCBuZWNlc3NhcmlseSBEV01BQy5cblxuVGhlIHByb21wdCBub3RlcyBhYm91dCB1bnJlYWNoYWJsZSBjb2RlIHBhdGhzIGluIHZpcnR1YWwgZW52aXJvbm1lbnRzLCBldmVuIHdpdGggZW11bGF0ZWQgaGFyZHdhcmUuIElmIGl0J3Mgbm90IGVtdWxhdGVkIGJ5IFFFTVUsIGFuZCBpdCdzIG5vdCBhIFVTQiBnYWRnZXQsIHRoZW4gd2hhdCBhcmUgbXkgb3B0aW9ucz8gSSBuZWVkIHRvIHJlbWVtYmVyIHRoYXQgc3l6a2FsbGVyIGhhcyBgc3l6X3BjaV9kZXZpY2VgLCBpdCBpbmplY3RzIFBDSSBkZXZpY2VzIHZpYSBgdmZpb2Agb3Igc29tZXRoaW5nIHNpbWlsYXI/XG5cbldhaXQsIHN5emthbGxlciAqZG9lcyogaGF2ZSBQQ0kgZnV6emluZy4gSXQncyBlaXRoZXIgYSBjdXN0b20gUUVNVSBkZXZpY2Ugb3IgdXNpbmcgb3RoZXIgbWVjaGFuaXNtcyB0byBlbXVsYXRlIHRoZW0uIE5vLCBzeXprYWxsZXIgdXNlcyBgc3l6X2dlbmV0bGlua2AgZXRjLlxuXG5MZXQncyBjaGVjayBpZiBzeXprYWxsZXIgY2FuIHJlYWNoIGBzdG1tYWNgLiBUaGVyZSdzIGEgY29tbWl0LCBzbyBsZXQgbWUgcmVhZCB0aGF0OiBBaCwgdGhlIGNvbW1pdCBzYXlzIFwic3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3LlwiIEl0IGNvdWxkIG1lYW4gc3l6a2FsbGVyIGZvdW5kIGEgYnVnLCBidXQgaXQgaXMgbm90IGd1YXJhbnRlZWQhXG5cbkkgaGF2ZSB0byBsb29rIGludG8gdGhpcyBtb3JlLiBJcyBgc3RtbWFjYCBhIHBsYXRmb3JtIGRyaXZlcj8gSWYgc28sIGl0IG5lZWRzIGEgZGV2aWNlIHRyZWUgbm9kZS4gSXQncyBoZWF2aWx5IHVzZWQgb24gQVJNIFNvQ3MuIElzIGl0IGEgUENJIGRyaXZlcj8gSXQgY2FuIGJlIHByb2JlZCBpZiBhIFBDSSBkZXZpY2Ugd2l0aCB0aGUgbWF0Y2hpbmcgdmVuZG9yL2RldmljZSBJRCBpcyBwcmVzZW50LiBEb2VzIFFFTVUgZW11bGF0ZSBhbnkgU1RNTUFDIFBDSSBkZXZpY2U/IExldCBtZSBqdXN0IGFzc3VtZSB0aGF0IHN5emthbGxlciBjYW4ndCByZWFjaCBpdCB1bmxlc3MgaXQgaXMgZW11bGF0ZWQuXG5cbldhaXQsIGRpZCBzeXprYWxsZXIgYWRkIFBDSSBmdXp6aW5nIHZpYSBgdmZpb2Agb3IgYSB2aXJ0dWFsIFBDSSBkZXZpY2U/IFN5emthbGxlciBoYXMgYHZoY2lgIGZvciBVU0IuIEZvciBQQ0ksIHRoZXJlIGlzIG5vIGdlbmVyaWMgc29mdHdhcmUgZW11bGF0b3IgdXBzdHJlYW0sIGV4Y2VwdCBpZiBzeXprYWxsZXIgdXNlcyBhIGN1c3RvbSBRRU1VIHdpdGggYSBmdXp6ZXIgUENJIGRldmljZS4gVGhhdCBtYXRjaGVzIHRoZSBwcm9tcHQsIGFib3V0IHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLiBEb2VzIFFFTVUgZW11bGF0ZSBgc3RtbWFjYD9cblxuTGV0J3MgZG8gc29tZSBkaWdnaW5nLiBJcyB0aGVyZSBhIHZpcnR1YWwgZGV2aWNlIGZvciBpdD8gTWF5YmUgaXQgaXMgdXNlZCBvbiBzb21lIEFSTSBib2FyZHMgZW11bGF0ZWQgYnkgUUVNVT8gUUVNVSBoYXMgZW11bGF0ZWQgZGV2aWNlcyBmb3IgQVJNLlxuXG5XYWl0LCBgc3RtbWFjYCBpcyBmb3IgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMgKERXTUFDKS4gUUVNVSBoYXMgYGh3L25ldC9kZXNpZ253YXJlLmNgISBPa2F5LCBub3cgd2UncmUgZ2V0dGluZyBzb21ld2hlcmUuIExldCBtZSBzZWUgaG93IGBzdG1tYWNgIG1hdGNoZXMgdXAgd2l0aCBgZGVzaWdud2FyZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExODI5LCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAzNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQwMzo0NDoxNC4xMDcxOTA5MTVaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTc1OTk1NDQsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRlc2lnbndhcmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDAzOjQ0OjE0LjE2NDc5NjY0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTE5OTM4NTcxMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIFFFTVUncyBFdGhlcm5ldCBFbXVsYXRpb24qKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgUUVNVSBoYW5kbGVzIHRoaXMgcGFydGljdWxhciBFdGhlcm5ldCBkZXZpY2UuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gc2VhcmNoIHRoZSBRRU1VIHNvdXJjZSBjb2RlIGZvciBcImR3bWFjLFwiIHRoYXQncyB0aGUgbGlrZWx5IHN0YXJ0aW5nIHBvaW50LiBJIGFscmVhZHkga25vdyB0aGF0IHRoZSBkcml2ZXIgaXMgYHN0bW1hY2AuIE5vdywgdGhhdCBuYW1lIHJpbmdzIGEgYmVsbCwgSSdtIHByZXR0eSBzdXJlIHRoZSByZWxldmFudCBzb3VyY2UgZmlsZXMgd2lsbCBiZSBuYW1lZCBzb21ldGhpbmcgbGlrZSBgZHdtYWMtKi5jYCwgSSdsbCBmb2N1cyBteSBzZWFyY2ggdGhlcmUuIFRoZSBrZXkgaXMgZ29pbmcgdG8gYmUgZGV0ZXJtaW5pbmcgaG93IFFFTVUgcmVwcmVzZW50cyB0aGUgZGV2aWNlLiBJIG5lZWQgdG8gY2hlY2sgaWYgdGhlcmUncyBhIFBDSSBJRCBhc3NvY2lhdGVkIHdpdGggdGhlIGVtdWxhdGVkIGRldmljZS4gQWx0ZXJuYXRpdmVseSwgaXQgbWlnaHQgYmUgbW9kZWxsZWQgYXMgYSBwbGF0Zm9ybSBkZXZpY2UuIEkgbmVlZCB0byBmaWd1cmUgdGhpcyBvdXQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBlbXVsYXRpb24gYXJjaGl0ZWN0dXJlLiBJJ2xsIHN0YXJ0IHdpdGggdGhlIFBDSSBJRC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTM1NzIsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQwMzo0NDoxOS4zNjQxODg5ODJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ3NjAxNTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiRFdNQUNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMDEzIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTQyPWlmIFNUTU1BQ19QTEFURk9STVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0NDpjb25maWcgRFdNQUNfRFdDX1FPU19FVEhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQ1LVxcdHRyaXN0YXRlIFxcXCJTdXBwb3J0IGZvciBzbnBzLGR3Yy1xb3MtZXRoZXJuZXQudHh0IERUIGJpbmRpbmcuXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy01MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjUyOmNvbmZpZyBEV01BQ19HRU5FUklDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo1MzpcXHR0cmlzdGF0ZSBcXFwiR2VuZXJpYyBkcml2ZXIgZm9yIERXTUFDXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNTQtXFx0ZGVmYXVsdCBTVE1NQUNfUExBVEZPUk1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTU1LVxcdGhlbHBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjU2OlxcdCAgR2VuZXJpYyBEV01BQyBkcml2ZXIgZm9yIHBsYXRmb3JtcyB0aGF0IGRvbid0IHJlcXVpcmUgYW55XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy01Ny1cXHQgIHBsYXRmb3JtIHNwZWNpZmljIGNvZGUgdG8gZnVuY3Rpb24gb3IgaXMgdXNpbmcgcGxhdGZvcm1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo2MDpjb25maWcgRFdNQUNfQU5BUklPTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNjEtXFx0dHJpc3RhdGUgXFxcIkFkYXB0cnVtIEFuYXJpb24gR01BQyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy02OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjY5OmNvbmZpZyBEV01BQ19FSUM3NzAwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy03MC1cXHR0cmlzdGF0ZSBcXFwiU3VwcG9ydCBmb3IgRXN3aW4gZWljNzcwMCBldGhlcm5ldCBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTc3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Nzg6Y29uZmlnIERXTUFDX0lOR0VOSUNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTc5LVxcdHRyaXN0YXRlIFxcXCJJbmdlbmljIE1BQyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy04OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjkwOmNvbmZpZyBEV01BQ19JUFE4MDZYXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo5MTpcXHR0cmlzdGF0ZSBcXFwiUUNBIElQUTgwNnggRFdNQUMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTkyLVxcdGRlZmF1bHQgQVJDSF9RQ09NXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTk1LVxcdGhlbHBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjk2OlxcdCAgU3VwcG9ydCBmb3IgUUNBIElQUTgwNlggRFdNQUMgRXRoZXJuZXQuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTA1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTA2OmNvbmZpZyBEV01BQ19MUEMxOFhYXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMDc6XFx0dHJpc3RhdGUgXFxcIk5YUCBMUEMxOHh4LzQzeHggRFdNQUMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEwOC1cXHRkZWZhdWx0IEFSQ0hfTFBDMThYWFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMTEtXFx0aGVscFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTEyOlxcdCAgU3VwcG9ydCBmb3IgTlhQIExQQzE4eHgvNDN4eCBEV01BQyBFdGhlcm5ldC5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjExNDpjb25maWcgRFdNQUNfTUVESUFURUtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExNS1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQyN3h4IEdNQUMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTIyOmNvbmZpZyBEV01BQ19NRVNPTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTIzLVxcdHRyaXN0YXRlIFxcXCJBbWxvZ2ljIE1lc29uIGR3bWFjIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEzMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjEzMzpjb25maWcgRFdNQUNfTlVWT1RPTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTM0LVxcdHRyaXN0YXRlIFxcXCJOdXZvdG9uIE1BMzUgZHdtYWMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTQ1OmNvbmZpZyBEV01BQ19RQ09NX0VUSFFPU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTQ2LVxcdHRyaXN0YXRlIFxcXCJRdWFsY29tbSBFVEhRT1Mgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTU0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTU1OmNvbmZpZyBEV01BQ19SRU5FU0FTX0dCRVRIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNTYtXFx0dHJpc3RhdGUgXFxcIlJlbmVzYXMgUlovVjJIKFApIEdCRVRIIGFuZCBSWi9UMkgsIFJaL04ySCBHTUFDIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE2Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE2ODpjb25maWcgRFdNQUNfUk9DS0NISVBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE2OS1cXHR0cmlzdGF0ZSBcXFwiUm9ja2NoaXAgZHdtYWMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTc4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTc5OmNvbmZpZyBEV01BQ19SWk4xXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xODAtXFx0dHJpc3RhdGUgXFxcIlJlbmVzYXMgUlovTjEgZHdtYWMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTkwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTkxOmNvbmZpZyBEV01BQ19TMzJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5Mi1cXHR0cmlzdGF0ZSBcXFwiTlhQIFMzMkcvUzMyUiBHTUFDIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwMzpjb25maWcgRFdNQUNfU09DRlBHQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjA0LVxcdHRyaXN0YXRlIFxcXCJTT0NGUEdBIGR3bWFjIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIxODpjb25maWcgRFdNQUNfU09QSEdPXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMTktXFx0dHJpc3RhdGUgXFxcIlNvcGhnbyBkd21hYyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMjk6Y29uZmlnIERXTUFDX1NQQUNFTUlUXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMzAtXFx0dHJpc3RhdGUgXFxcIlNwYWNlbWl0IGR3bWFjIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI0MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI0MTpjb25maWcgRFdNQUNfU1RBUkZJVkVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI0Mi1cXHR0cmlzdGF0ZSBcXFwiU3RhckZpdmUgZHdtYWMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjUyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjUzOmNvbmZpZyBEV01BQ19TVElcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI1NC1cXHR0cmlzdGF0ZSBcXFwiU1RpIEdNQUMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjY1OmNvbmZpZyBEV01BQ19TVE0zMlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjY2OlxcdHRyaXN0YXRlIFxcXCJTVE0zMiBEV01BQyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjY3LVxcdGRlZmF1bHQgQVJDSF9TVE0zMlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyNzc6Y29uZmlnIERXTUFDX1NVTlhJXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzgtXFx0dHJpc3RhdGUgXFxcIkFsbHdpbm5lciBHTUFDIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI4ODpjb25maWcgRFdNQUNfU1VOOElcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI4OS1cXHR0cmlzdGF0ZSBcXFwiQWxsd2lubmVyIHN1bjhpIEdNQUMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjk5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzAwOmNvbmZpZyBEV01BQ19TVU41NUlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMwMS1cXHR0cmlzdGF0ZSBcXFwiQWxsd2lubmVyIHN1bjU1aSBHTUFDMjAwIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMxMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMxMjpjb25maWcgRFdNQUNfVEhFQURcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMxMy1cXHR0cmlzdGF0ZSBcXFwiVC1IRUFEIGR3bWFjIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMyMjpjb25maWcgRFdNQUNfSU1YOFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzIzOlxcdHRyaXN0YXRlIFxcXCJOWFAgSU1YOCBEV01BQyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzI0LVxcdGRlZmF1bHQgQVJDSF9NWENcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzMzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzM0OmNvbmZpZyBEV01BQ19JTlRFTF9QTEFUXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMzUtXFx0dHJpc3RhdGUgXFxcIkludGVsIGR3bWFjIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM0My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM0NDpjb25maWcgRFdNQUNfTE9PTkdTT04xXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNDUtXFx0dHJpc3RhdGUgXFxcIkxvb25nc29uMSBHTUFDIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM1NTpjb25maWcgRFdNQUNfVEVHUkFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1Ni1cXHR0cmlzdGF0ZSBcXFwiTlZJRElBIFRlZ3JhIE1HQkUgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzY0OmNvbmZpZyBEV01BQ19WSVNDT05USVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzY1OlxcdHRyaXN0YXRlIFxcXCJUb3NoaWJhIFZpc2NvbnRpIERXTUFDIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNjYtXFx0ZGVmYXVsdCBBUkNIX1ZJU0NPTlRJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM3Mz1jb25maWcgU1RNTUFDX0xJQlBDSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNzg6Y29uZmlnIERXTUFDX0lOVEVMXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzktXFx0dHJpc3RhdGUgXFxcIkludGVsIEdNQUMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzg3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzg4OmNvbmZpZyBEV01BQ19MT09OR1NPTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzg5OlxcdHRyaXN0YXRlIFxcXCJMb29uZ3NvbiBQQ0kgRFdNQUMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM5MC1cXHRkZWZhdWx0IE1BQ0hfTE9PTkdTT042NFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozOTg6Y29uZmlnIERXTUFDX01PVE9SQ09NTVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzk5OlxcdHRyaXN0YXRlIFxcXCJNb3RvcmNvbW0gUENJIERXTUFDIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MDAtXFx0ZGVwZW5kcyBvbiBQQ0lcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDAzLVxcdGhlbHBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwNDpcXHQgIFRoaXMgZW5hYmxlcyBnbHVlIGRyaXZlciBmb3IgTW90b3Jjb21tIERXTUFDLWJhc2VkIFBDSSBFdGhlcm5ldFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA1LVxcdCAgY29udHJvbGxlcnMuIEN1cnJlbnRseSBvbmx5IFlUNjgwMSBpcyBzdXBwb3J0ZWQuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT0xNT1vYmotJChDT05GSUdfU1RNTUFDX1BMQVRGT1JNKVxcdCs9IHN0bW1hYy1wbGF0Zm9ybS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTY6b2JqLSQoQ09ORklHX0RXTUFDX0FOQVJJT04pXFx0Kz0gZHdtYWMtYW5hcmlvbi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTc6b2JqLSQoQ09ORklHX0RXTUFDX0VJQzc3MDApXFx0Kz0gZHdtYWMtZWljNzcwMC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTg6b2JqLSQoQ09ORklHX0RXTUFDX0lOR0VOSUMpXFx0Kz0gZHdtYWMtaW5nZW5pYy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTk6b2JqLSQoQ09ORklHX0RXTUFDX0lQUTgwNlgpXFx0Kz0gZHdtYWMtaXBxODA2eC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MjA6b2JqLSQoQ09ORklHX0RXTUFDX0xQQzE4WFgpXFx0Kz0gZHdtYWMtbHBjMTh4eC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MjE6b2JqLSQoQ09ORklHX0RXTUFDX01FRElBVEVLKVxcdCs9IGR3bWFjLW1lZGlhdGVrLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyMjpvYmotJChDT05GSUdfRFdNQUNfTUVTT04pXFx0Kz0gZHdtYWMtbWVzb24ubyBkd21hYy1tZXNvbjhiLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyMzpvYmotJChDT05GSUdfRFdNQUNfTlVWT1RPTilcXHQrPSBkd21hYy1udXZvdG9uLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyNDpvYmotJChDT05GSUdfRFdNQUNfUUNPTV9FVEhRT1MpXFx0Kz0gZHdtYWMtcWNvbS1ldGhxb3Mub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjI1Om9iai0kKENPTkZJR19EV01BQ19SRU5FU0FTX0dCRVRIKSArPSBkd21hYy1yZW5lc2FzLWdiZXRoLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyNjpvYmotJChDT05GSUdfRFdNQUNfUk9DS0NISVApXFx0Kz0gZHdtYWMtcmsub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjI3Om9iai0kKENPTkZJR19EV01BQ19SWk4xKVxcdCs9IGR3bWFjLXJ6bjEub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjI4Om9iai0kKENPTkZJR19EV01BQ19TMzIpXFx0XFx0Kz0gZHdtYWMtczMyLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyOTpvYmotJChDT05GSUdfRFdNQUNfU09DRlBHQSlcXHQrPSBkd21hYy1hbHRyLXNvY2ZwZ2Eub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjMwOm9iai0kKENPTkZJR19EV01BQ19TT1BIR08pXFx0Kz0gZHdtYWMtc29waGdvLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTozMTpvYmotJChDT05GSUdfRFdNQUNfU1BBQ0VNSVQpXFx0Kz0gZHdtYWMtc3BhY2VtaXQub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjMyOm9iai0kKENPTkZJR19EV01BQ19TVEFSRklWRSlcXHQrPSBkd21hYy1zdGFyZml2ZS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MzM6b2JqLSQoQ09ORklHX0RXTUFDX1NUSSlcXHRcXHQrPSBkd21hYy1zdGkub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjM0Om9iai0kKENPTkZJR19EV01BQ19TVE0zMilcXHQrPSBkd21hYy1zdG0zMi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MzU6b2JqLSQoQ09ORklHX0RXTUFDX1NVTlhJKVxcdCs9IGR3bWFjLXN1bnhpLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTozNjpvYmotJChDT05GSUdfRFdNQUNfU1VOOEkpXFx0Kz0gZHdtYWMtc3VuOGkub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjM3Om9iai0kKENPTkZJR19EV01BQ19TVU41NUkpXFx0Kz0gZHdtYWMtc3VuNTVpLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTozODpvYmotJChDT05GSUdfRFdNQUNfVEhFQUQpXFx0Kz0gZHdtYWMtdGhlYWQub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjM5Om9iai0kKENPTkZJR19EV01BQ19EV0NfUU9TX0VUSClcXHQrPSBkd21hYy1kd2MtcW9zLWV0aC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDA6b2JqLSQoQ09ORklHX0RXTUFDX0lOVEVMX1BMQVQpXFx0Kz0gZHdtYWMtaW50ZWwtcGxhdC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDE6b2JqLSQoQ09ORklHX0RXTUFDX0xPT05HU09OMSlcXHQrPSBkd21hYy1sb29uZ3NvbjEub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQyOm9iai0kKENPTkZJR19EV01BQ19HRU5FUklDKVxcdCs9IGR3bWFjLWdlbmVyaWMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQzOm9iai0kKENPTkZJR19EV01BQ19JTVg4KVxcdCs9IGR3bWFjLWlteC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDQ6b2JqLSQoQ09ORklHX0RXTUFDX1RFR1JBKVxcdCs9IGR3bWFjLXRlZ3JhLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo0NTpvYmotJChDT05GSUdfRFdNQUNfVklTQ09OVEkpXFx0Kz0gZHdtYWMtdmlzY29udGkub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTQ2LXN0bW1hYy1wbGF0Zm9ybS1vYmpzOj0gc3RtbWFjX3BsYXRmb3JtLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTUwPW9iai0kKENPTkZJR19TVE1NQUNfUENJKVxcdCs9IHN0bW1hYy1wY2kub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjUxOm9iai0kKENPTkZJR19EV01BQ19JTlRFTClcXHQrPSBkd21hYy1pbnRlbC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTI6b2JqLSQoQ09ORklHX0RXTUFDX0xPT05HU09OKVxcdCs9IGR3bWFjLWxvb25nc29uLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo1MzpvYmotJChDT05GSUdfRFdNQUNfTU9UT1JDT01NKVxcdCs9IGR3bWFjLW1vdG9yY29tbS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNTQtc3RtbWFjLXBjaS1vYmpzOj0gc3RtbWFjX3BjaS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoyOTojZGVmaW5lIERXTUFDX1NOUFNWRVJcXHRHRU5NQVNLX1UzMig3LCAwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjMwOiNkZWZpbmUgRFdNQUNfVVNFUlZFUlxcdEdFTk1BU0tfVTMyKDE1LCA4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTMxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTMyLS8qIFN5bm9wc3lzIENvcmUgdmVyc2lvbnMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDozMzojZGVmaW5lXFx0RFdNQUNfQ09SRV8zXzQwXFx0XFx0MHgzNFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM0OiNkZWZpbmVcXHREV01BQ19DT1JFXzNfNTBcXHRcXHQweDM1XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MzU6I2RlZmluZVxcdERXTUFDX0NPUkVfM183MFxcdFxcdDB4MzdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDozNjojZGVmaW5lXFx0RFdNQUNfQ09SRV80XzAwXFx0XFx0MHg0MFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM3OiNkZWZpbmUgRFdNQUNfQ09SRV80XzEwXFx0XFx0MHg0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM4OiNkZWZpbmUgRFdNQUNfQ09SRV81XzAwXFx0XFx0MHg1MFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM5OiNkZWZpbmUgRFdNQUNfQ09SRV81XzEwXFx0XFx0MHg1MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjQwOiNkZWZpbmUgRFdNQUNfQ09SRV81XzIwXFx0XFx0MHg1MlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTQxLSNkZWZpbmUgRFdYR01BQ19DT1JFXzJfMTBcXHQweDIxXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaD00OT1zdGF0aWMgaW5saW5lIGJvb2wgZHdtYWNfaXNfeG1hYyhlbnVtIGR3bWFjX2NvcmVfdHlwZSBjb3JlX3R5cGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNTAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjUxOlxcdHJldHVybiBjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNCB8fCBjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC01Mi19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kZXNjcy5oLTMtICBIZWFkZXIgRmlsZSB0byBkZXNjcmliZSB0aGUgRE1BIGRlc2NyaXB0b3JzIGFuZCByZWxhdGVkIGRlZmluaXRpb25zLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2Rlc2NzLmg6NDogIFRoaXMgaXMgZm9yIERXTUFDMTAwIGFuZCAxMDAwIGNvcmVzLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2Rlc2NzLmgtNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0yLS8qXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjM6ICogQWRhcHRydW0gQW5hcmlvbiBEV01BQyBnbHVlIGxheWVyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz0xMzM9bW9kdWxlX3BsYXRmb3JtX2RyaXZlcihhbmFyaW9uX2R3bWFjX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTM1Ok1PRFVMRV9ERVNDUklQVElPTihcXFwiQWRhcHRydW0gQW5hcmlvbiBEV01BQyBzcGVjaWZpYyBnbHVlIGxheWVyXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEzNi1NT0RVTEVfQVVUSE9SKFxcXCJBbGV4YW5kcnUgR2Fnbml1YyBcXHUwMDNjbXIubnVrZS5tZUBnbWFpbC5jb21cXHUwMDNlXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTM2PXN0YXRpYyBpbnQgZHdjX2V0aF9kd21hY19jb25maWdfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtODctXFx0LyogZHdjLXFvcyBuZWVkcyBHTUFDNCwgQUFMLCBUU08gYW5kIFBNVCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6ODg6XFx0cGxhdF9kYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy04OS1cXHRwbGF0X2RhdC1cXHUwMDNlZG1hX2NmZy1cXHUwMDNlYWFsID0gMTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYy0xLS8qXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZ2VuZXJpYy5jOjI6ICogR2VuZXJpYyBEV01BQyBwbGF0Zm9ybSBkcml2ZXJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1nZW5lcmljLmMtMy0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmMtMi0vKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlteC5jOjM6ICogZHdtYWMtaW14LmMgLSBEV01BQyBTcGVjaWZpYyBHbHVlIGxheWVyIGZvciBOWFAgaW14OFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlteC5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlteC5jPTQwMz1NT0RVTEVfQVVUSE9SKFxcXCJOWFBcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYzo0MDQ6TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJOWFAgaW14OCBEV01BQyBTcGVjaWZpYyBHbHVlIGxheWVyXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmMtNDA1LU1PRFVMRV9MSUNFTlNFKFxcXCJHUEwgdjJcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYy0yLS8qXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW5nZW5pYy5jOjM6ICogZHdtYWMtaW5nZW5pYy5jIC0gSW5nZW5pYyBTb0NzIERXTUFDIHNwZWNpZmljIGdsdWUgbGF5ZXJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmMtNC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW5nZW5pYy5jPTI4Mj1NT0RVTEVfQVVUSE9SKFxcXCLlkajnkLDmnbAgKFpob3UgWWFuamllKSBcXHUwMDNjemhvdXlhbmppZUB3YW55ZWV0ZWNoLmNvbVxcdTAwM2VcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmM6MjgzOk1PRFVMRV9ERVNDUklQVElPTihcXFwiSW5nZW5pYyBTb0NzIERXTUFDIHNwZWNpZmljIGdsdWUgbGF5ZXJcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmMtMjg0LU1PRFVMRV9MSUNFTlNFKFxcXCJHUEwgdjJcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYy0xLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwtcGxhdC5jOjI6LyogSW50ZWwgRFdNQUMgcGxhdGZvcm0gZHJpdmVyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwtcGxhdC5jLTMtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYz0xNTA9TU9EVUxFX0xJQ0VOU0UoXFxcIkdQTCB2MlxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYzoxNTE6TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJJbnRlbCBEV01BQyBwbGF0Zm9ybSBkcml2ZXJcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9NTY1PXN0YXRpYyB2b2lkIGNvbW1vbl9kZWZhdWx0X2RhdGEoc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy01NjgtXFx0cGxhdC1cXHUwMDNlY2xrX2NzciA9IFNUTU1BQ19DU1JfMjBfMzVNO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NTY5OlxcdHBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTU3MC1cXHRwbGF0LVxcdTAwM2Vmb3JjZV9zZl9kbWFfbW9kZSA9IHRydWU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTU4NT1zdGF0aWMgaW50IGludGVsX21nYmVfY29tbW9uX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTU5NS1cXHRwbGF0LVxcdTAwM2VjbGtfY3NyID0gU1RNTUFDX0NTUl8yNTBfMzAwTTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjU5NjpcXHRwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNTk3LVxcdHBsYXQtXFx1MDAzZWZvcmNlX3NmX2RtYV9tb2RlID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmgtMi0vKiBDb3B5cmlnaHQgKGMpIDIwMjAsIEludGVsIENvcnBvcmF0aW9uXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuaDozOiAqIERXTUFDIEludGVsIGhlYWRlciBmaWxlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuaC00LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmgtNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5oOjY6I2lmbmRlZiBfX0RXTUFDX0lOVEVMX0hfX1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmg6NzojZGVmaW5lIF9fRFdNQUNfSU5URUxfSF9fXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuaC04LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuaC04MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5oOjgxOiNlbmRpZiAvKiBfX0RXTUFDX0lOVEVMX0hfXyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jPTM3ND1zdGF0aWMgaW50IGlwcTgwNnhfZ21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTQ3NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmM6NDc2OlxcdHBsYXRfZGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTQ3Ny1cXHRwbGF0X2RhdC1cXHUwMDNlYnNwX3ByaXYgPSBnbWFjO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jPTUwOD1NT0RVTEVfQVVUSE9SKFxcXCJNYXRoaWV1IE9saXZhcmkgXFx1MDAzY21hdGhpZXVAY29kZWF1cm9yYS5vcmdcXHUwMDNlXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jOjUwOTpNT0RVTEVfREVTQ1JJUFRJT04oXFxcIlF1YWxjb21tIEF0aGVyb3MgSVBRODA2eCBEV01BQyBzcGVjaWZpYyBnbHVlIGxheWVyXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTUxMC1NT0RVTEVfTElDRU5TRShcXFwiRHVhbCBCU0QvR1BMXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTcyLSNkZWZpbmUgUENJX0RFVklDRV9JRF9MT09OR1NPTl9HTkVUXFx0MHg3YTEzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo3MzojZGVmaW5lIERXTUFDX0NPUkVfTVVMVElDSEFOX1YxXFx0MHgxMFxcdC8qIExvb25nc29uIGN1c3RvbSBJRCAweDEwICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo3NDojZGVmaW5lIERXTUFDX0NPUkVfTVVMVElDSEFOX1YyXFx0MHgxMlxcdC8qIExvb25nc29uIGN1c3RvbSBJRCAweDEyICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy03NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9ODY9c3RhdGljIHZvaWQgbG9vbmdzb25fZGVmYXVsdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy05NS1cXHRwbGF0LVxcdTAwM2VjbGtfY3NyID0gU1RNTUFDX0NTUl8xMDBfMTUwTTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjk2OlxcdHBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTk3LVxcdHBsYXQtXFx1MDAzZWZvcmNlX3NmX2RtYV9tb2RlID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTA4LVxcdHN3aXRjaCAobGQtXFx1MDAzZWxvb25nc29uX2lkKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxMDk6XFx0Y2FzZSBEV01BQ19DT1JFX01VTFRJQ0hBTl9WMTpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTExMC1cXHRcXHRsZC1cXHUwMDNlbXVsdGljaGFuID0gMTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTIwLVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6MTIxOlxcdGNhc2UgRFdNQUNfQ09SRV9NVUxUSUNIQU5fVjI6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xMjItXFx0XFx0bGQtXFx1MDAzZW11bHRpY2hhbiA9IDE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTMwNj1zdGF0aWMgaW50IGxvb25nc29uX2R3bWFjX3NldHVwKHZvaWQgKmFwcml2LCBzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICptYWMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTMyOC1cXHRpZiAobGQtXFx1MDAzZW11bHRpY2hhbikge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6MzI5OlxcdFxcdHByaXYtXFx1MDAzZXN5bm9wc3lzX2lkID0gRFdNQUNfQ09SRV8zXzcwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMzMwLVxcdFxcdCpkbWEgPSBkd21hYzEwMDBfZG1hX29wcztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9NDY2PXN0YXRpYyBpbnQgbG9vbmdzb25fZHdtYWNfYWNwaV9jb25maWcoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTQ3Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjQ3ODovKiBMb29uZ3NvbidzIERXTUFDIGRldmljZSBtYXkgdGFrZSBuZWFybHkgdHdvIHNlY29uZHMgdG8gY29tcGxldGUgRE1BIHJlc2V0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy00Nzktc3RhdGljIGludCBsb29uZ3Nvbl9kd21hY19maXhfcmVzZXQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz02MTQ9bW9kdWxlX3BjaV9kcml2ZXIobG9vbmdzb25fZHdtYWNfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTYxNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjYxNjpNT0RVTEVfREVTQ1JJUFRJT04oXFxcIkxvb25nc29uIERXTUFDIFBDSSBkcml2ZXJcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTYxNy1NT0RVTEVfQVVUSE9SKFxcXCJRaW5nIFpoYW5nIFxcdTAwM2N6aGFuZ3FpbmdAbG9vbmdzb24uY25cXHUwMDNlXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYy0yLS8qXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmM6MzogKiBMb29uZ3Nvbi0xIERXTUFDIGdsdWUgbGF5ZXJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYy00LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYz0yMzg9TU9EVUxFX0FVVEhPUihcXFwiS2VndWFuZyBaaGFuZyBcXHUwMDNja2VndWFuZy56aGFuZ0BnbWFpbC5jb21cXHUwMDNlXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmM6MjM5Ok1PRFVMRV9ERVNDUklQVElPTihcXFwiTG9vbmdzb24tMSBEV01BQyBnbHVlIGxheWVyXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmMtMjQwLU1PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy0xLS8qXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jOjI6ICogRFdNQUMgZ2x1ZSBmb3IgTlhQIExQQzE4eHgvTFBDNDN4eCBFdGhlcm5ldFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy0zLSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmM9NDI9c3RhdGljIGludCBscGMxOHh4X2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmMtNTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jOjU3OlxcdHBsYXRfZGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jLTU4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jPTg4PU1PRFVMRV9BVVRIT1IoXFxcIkpvYWNoaW0gRWFzdHdvb2QgXFx1MDAzY21hbmFiaWFuQGdtYWlsLmNvbVxcdTAwM2VcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmM6ODk6TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJEV01BQyBnbHVlIGZvciBMUEMxOHh4LzQzeHggRXRoZXJuZXRcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmMtOTAtTU9EVUxFX0xJQ0VOU0UoXFxcIkdQTCB2MlxcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYz02ODM9TU9EVUxFX0FVVEhPUihcXFwiQmlhbyBIdWFuZyBcXHUwMDNjYmlhby5odWFuZ0BtZWRpYXRlay5jb21cXHUwMDNlXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYzo2ODQ6TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJNZWRpYVRlayBEV01BQyBzcGVjaWZpYyBnbHVlIGxheWVyXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYy02ODUtTU9EVUxFX0xJQ0VOU0UoXFxcIkdQTCB2MlxcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb24uYy0yLS8qXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb24uYzozOiAqIEFtbG9naWMgTWVzb242IGFuZCBNZXNvbjggRFdNQUMgZ2x1ZSBsYXllclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmMtNC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb24uYz05Mz1NT0RVTEVfQVVUSE9SKFxcXCJCZW5pYW1pbm8gR2FsdmFuaSBcXHUwMDNjYi5nYWx2YW5pQGdtYWlsLmNvbVxcdTAwM2VcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jOjk0Ok1PRFVMRV9ERVNDUklQVElPTihcXFwiQW1sb2dpYyBNZXNvbjYgYW5kIE1lc29uOCBEV01BQyBnbHVlIGxheWVyXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb24uYy05NS1NT0RVTEVfTElDRU5TRShcXFwiR1BMIHYyXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmMtMi0vKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYzozOiAqIEFtbG9naWMgTWVzb244YiwgTWVzb244bTIgYW5kIEdYQkIgRFdNQUMgZ2x1ZSBsYXllclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYy00LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmM9NTE4PU1PRFVMRV9BVVRIT1IoXFxcIk1hcnRpbiBCbHVtZW5zdGluZ2wgXFx1MDAzY21hcnRpbi5ibHVtZW5zdGluZ2xAZ29vZ2xlbWFpbC5jb21cXHUwMDNlXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb244Yi5jOjUxOTpNT0RVTEVfREVTQ1JJUFRJT04oXFxcIkFtbG9naWMgTWVzb244YiwgTWVzb244bTIgYW5kIEdYQkIgRFdNQUMgZ2x1ZSBsYXllclxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYy01MjAtTU9EVUxFX0xJQ0VOU0UoXFxcIkdQTCB2MlxcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMi0vKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jOjM6ICogRFdNQUMgZ2x1ZSBkcml2ZXIgZm9yIE1vdG9yY29tbSBQQ0kgRXRoZXJuZXQgY29udHJvbGxlcnNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy00LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0yMDg9bW90b3Jjb21tX2RlZmF1bHRfcGxhdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMjQ3LVxcdHBsYXQtXFx1MDAzZWNsa19yZWZfcmF0ZVxcdD0gMTI1MDAwMDAwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jOjI0ODpcXHRwbGF0LVxcdTAwM2Vjb3JlX3R5cGVcXHRcXHQ9IERXTUFDX0NPUkVfR01BQzQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMjQ5LVxcdHBsYXQtXFx1MDAzZXN1c3BlbmRcXHRcXHQ9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MzgzPW1vZHVsZV9wY2lfZHJpdmVyKGR3bWFjX21vdG9yY29tbV9wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0zODQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6Mzg1Ok1PRFVMRV9ERVNDUklQVElPTihcXFwiRFdNQUMgZ2x1ZSBkcml2ZXIgZm9yIE1vdG9yY29tbSBQQ0kgRXRoZXJuZXQgY29udHJvbGxlcnNcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0zODYtTU9EVUxFX0FVVEhPUihcXFwiWWFvIFppIFxcdTAwM2NtZUB6aXlhby5jY1xcdTAwM2VcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYy0yLS8qXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbnV2b3Rvbi5jOjM6ICogTnV2b3RvbiBEV01BQyBzcGVjaWZpYyBnbHVlIGxheWVyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbnV2b3Rvbi5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYz0xMzY9TU9EVUxFX0FVVEhPUihcXFwiSm9leSBMdSBcXHUwMDNjYTA5ODcyMDMwNjlAZ21haWwuY29tXFx1MDAzZVxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYzoxMzc6TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJOdXZvdG9uIERXTUFDIHNwZWNpZmljIGdsdWUgbGF5ZXJcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmMtMTM4LU1PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmM9Njg0PXN0YXRpYyBpbnQgcWNvbV9ldGhxb3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmMtNzc2LVxcdHBsYXRfZGF0LVxcdTAwM2VwdHBfY2xrX2ZyZXFfY29uZmlnID0gZXRocW9zX3B0cF9jbGtfZnJlcV9jb25maWc7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYzo3Nzc6XFx0cGxhdF9kYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYy03NzgtXFx0aWYgKGV0aHFvcy1cXHUwMDNlaGFzX2VtYWNfZ2VfMylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYy0yLS8qXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmVuZXNhcy1nYmV0aC5jOjM6ICogZHdtYWMtcmVuZXNhcy1nYmV0aC5jIC0gRFdNQUMgU3BlY2lmaWMgR2x1ZSBsYXllciBmb3IgUmVuZXNhcyBHQkVUSFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYy00LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmM9MjM0PU1PRFVMRV9BVVRIT1IoXFxcIkxhZCBQcmFiaGFrYXIgXFx1MDAzY3ByYWJoYWthci5tYWhhZGV2LWxhZC5yakBicC5yZW5lc2FzLmNvbVxcdTAwM2VcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmM6MjM1Ok1PRFVMRV9ERVNDUklQVElPTihcXFwiUmVuZXNhcyBHQkVUSCBEV01BQyBTcGVjaWZpYyBHbHVlIGxheWVyXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmVuZXNhcy1nYmV0aC5jLTIzNi1NT0RVTEVfTElDRU5TRShcXFwiR1BMXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jLTItLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYzozOiAqIERPQzogZHdtYWMtcmsuYyAtIFJvY2tjaGlwIFJLMzI4OCBEV01BQyBzcGVjaWZpYyBnbHVlIGxheWVyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYy00LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jPTE1Njg9c3RhdGljIGludCBya19nbWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jLTE1OTEtXFx0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYzoxNTkyOlxcdGlmIChwbGF0X2RhdC1cXHUwMDNlY29yZV90eXBlICE9IERXTUFDX0NPUkVfR01BQzQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jOjE1OTM6XFx0XFx0cGxhdF9kYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jLTE1OTQtXFx0XFx0cGxhdF9kYXQtXFx1MDAzZXJ4X2ZpZm9fc2l6ZSA9IDQwOTY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jPTE2NDc9TU9EVUxFX0FVVEhPUihcXFwiQ2hlbi1aaGkgKFJvZ2VyIENoZW4pIFxcdTAwM2Nyb2dlci5jaGVuQHJvY2stY2hpcHMuY29tXFx1MDAzZVxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmM6MTY0ODpNT0RVTEVfREVTQ1JJUFRJT04oXFxcIlJvY2tjaGlwIFJLMzI4OCBEV01BQyBzcGVjaWZpYyBnbHVlIGxheWVyXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYy0xNjQ5LU1PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYz05MT1NT0RVTEVfQVVUSE9SKFxcXCJDbMOpbWVudCBMw6lnZXIgXFx1MDAzY2NsZW1lbnQubGVnZXJAYm9vdGxpbi5jb21cXHUwMDNlXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcnpuMS5jOjkyOk1PRFVMRV9ERVNDUklQVElPTihcXFwiUmVuZXNhcyBSWk4xIERXTUFDIHNwZWNpZmljIGdsdWUgbGF5ZXJcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yem4xLmMtOTMtTU9EVUxFX0xJQ0VOU0UoXFxcIkdQTFxcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmM9MTQ0PXN0YXRpYyBpbnQgczMyX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYy0xOTUtXFx0LyogUzMyQ0MgY29yZSBmZWF0dXJlIHNldCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXMzMi5jOjE5NjpcXHRwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXMzMi5jLTE5Ny1cXHRwbGF0LVxcdTAwM2VwbXQgPSB0cnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jPTU1OT1zdGF0aWMgdm9pZCBzb2NmcGdhX2dlbjVfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jLTU2Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM6NTYzOlxcdHBsYXRfZGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jLTU2NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYz01Njk9c3RhdGljIHZvaWQgc29jZnBnYV9hZ2lsZXg1X3NldHVwX3BsYXRfZGF0KHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy01NzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jOjU3MzpcXHRwbGF0X2RhdC1cXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9YR01BQztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNTc0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jPTY4OT1tb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHNvY2ZwZ2FfZHdtYWNfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNjkwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYzo2OTE6TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJBbHRlcmEgU09DIERXTUFDIFNwZWNpZmljIEdsdWUgbGF5ZXJcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNjkyLU1PRFVMRV9MSUNFTlNFKFxcXCJHUEwgdjJcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jLTItLypcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYzozOiAqIFNvcGhnbyBEV01BQyBwbGF0Zm9ybSBkcml2ZXJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYy00LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYz05MT1NT0RVTEVfQVVUSE9SKFxcXCJJbm9jaGkgQW1hb3RvIFxcdTAwM2Npbm9jaGlhbWFAZ21haWwuY29tXFx1MDAzZVxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jOjkyOk1PRFVMRV9ERVNDUklQVElPTihcXFwiU29waGdvIERXTUFDIHBsYXRmb3JtIGRyaXZlclxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jLTkzLU1PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmMtMi0vKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmM6MzogKiBTcGFjZW1pdCBEV01BQyBwbGF0Zm9ybSBkcml2ZXJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmM9MjI4PU1PRFVMRV9BVVRIT1IoXFxcIklub2NoaSBBbWFvdG8gXFx1MDAzY2lub2NoaWFtYUBnbWFpbC5jb21cXHUwMDNlXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3BhY2VtaXQuYzoyMjk6TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJTcGFjZW1pdCBEV01BQyBwbGF0Zm9ybSBkcml2ZXJcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jLTIzMC1NT0RVTEVfTElDRU5TRShcXFwiR1BMXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTItLypcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jOjM6ICogU3RhckZpdmUgRFdNQUMgcGxhdGZvcm0gZHJpdmVyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYy00LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTE3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmM6MTg6I2RlZmluZSBTVEFSRklWRV9EV01BQ19QSFlfSU5GVF9GSUVMRFxcdFxcdDB4N1VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTE5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYz0zMj1zdGF0aWMgaW50IHN0YXJmaXZlX2R3bWFjX3NldF9tb2RlKHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTU1LVxcdGVyciA9IHJlZ21hcF91cGRhdGVfYml0cyhyZWdtYXAsIGFyZ3NbMF0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYzo1NjpcXHRcXHRcXHRcXHQgU1RBUkZJVkVfRFdNQUNfUEhZX0lORlRfRklFTEQgXFx1MDAzY1xcdTAwM2MgYXJnc1sxXSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTU3LVxcdFxcdFxcdFxcdCBwaHlfaW50Zl9zZWwgXFx1MDAzY1xcdTAwM2MgYXJnc1sxXSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jPTE3OT1NT0RVTEVfTElDRU5TRShcXFwiR1BMXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYzoxODA6TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJTdGFyRml2ZSBEV01BQyBwbGF0Zm9ybSBkcml2ZXJcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTE4MS1NT0RVTEVfQVVUSE9SKFxcXCJFbWlsIFJlbm5lciBCZXJ0aGluZyBcXHUwMDNja2VybmVsQGVzbWlsLmRrXFx1MDAzZVxcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RpLmMtMi0vKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jOjM6ICogZHdtYWMtc3RpLmMgLSBTVE1pY3JvZWxlY3Ryb25pY3MgRFdNQUMgU3BlY2lmaWMgR2x1ZSBsYXllclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTIzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jOjI0OiNkZWZpbmUgRFdNQUNfNTBNSFpcXHQ1MDAwMDAwMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTI1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RpLmM9MTE5PXN0YXRpYyB2b2lkIHN0aWg0eHhfZml4X3JldGltZV9zcmModm9pZCAqcHJpdiwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTEzMy1cXHRcXHRcXHRzcmMgPSBUWF9SRVRJTUVfU1JDX0NMS0dFTjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYzoxMzQ6XFx0XFx0XFx0ZnJlcSA9IERXTUFDXzUwTUhaO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTEzNS1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYz0zMTI9TU9EVUxFX0FVVEhPUihcXFwiU3Jpbml2YXMgS2FuZGFnYXRsYSBcXHUwMDNjc3Jpbml2YXMua2FuZGFnYXRsYUBzdC5jb21cXHUwMDNlXFxcIik7XFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDAzOjQ0OjE5LjQxODk1MjY4NloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2MjE4MDM5MjI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlJlYWNoaW5nIHRoZSBEZXNpZ25XYXJlIE1BQyBpbiBRRU1VL1N5emthbGxlcjogQSBEZWVwIERpdmUqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBody9uZXQvZGVzaWdud2FyZS5jYCBpbiBRRU1VLCB3aGljaCBpcyB0aGUgRGVzaWduV2FyZSBNQUMuIFRoZSBxdWVzdGlvbiBpcywgY2FuIHdlIGFjdHVhbGx5IHJlYWNoIHRoaXMgaW4gYSBmdXp6ZXIgbGlrZSBTeXprYWxsZXI/XG5cbkZpcnN0LCBJIGNoZWNrZWQgd2hlcmUgdGhpcyBjb2RlIGlzIHVzZWQgd2l0aGluIFFFTVUuIEl0J3MgaW4gdmFyaW91cyBBUk0gbWFjaGluZXMsIGJ1dCBpdCBsb29rcyBsaWtlIHRoZSBEZXNpZ25XYXJlIE1BQyBpcyBzcGVjaWZpY2FsbHkgdXNlZCBpbiB0aGUgQWxsd2lubmVyIEgzIChgYWxsd2lubmVyLWgzLmNgKSwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuICBUaGlzIFFFTVUgYGRlc2lnbndhcmUuY2AgaW1wbGVtZW50cyB0aGUgRFdNQUMuXG5cblRoZSBrZXkgaXMgd2hldGhlciBTeXprYWxsZXIgY2FuIGFjdHVhbGx5IGhpdCB0aGlzIGluIGl0cyBmdXp6aW5nIGNhbXBhaWducy4gU3l6a2FsbGVyLCBvZiBjb3Vyc2UsIGRvZXMgZnV6eiBBUk0zMiBhbmQgQVJNNjQga2VybmVscyB0aHJvdWdoIFFFTVUgYW5kIGNhbiBhbHNvIGZ1enogUENJIGRldmljZXMgKmlmKiB0aGV5IGFyZSBlbXVsYXRlZC4gIFRoZW4gSSByZW1lbWJlcmVkIGBzdG1tYWNgIHdoaWNoIGFsc28gaGFzIGEgUENJIGRyaXZlciAoYHN0bW1hY19wY2kuY2ApLiBUaGUgcXVlc3Rpb24gaW1tZWRpYXRlbHkgYmVjb21lczogZG9lcyBRRU1VIG9mZmVyIFBDSSBlbXVsYXRpb24gZm9yIHRoZSBEZXNpZ25XYXJlIE1BQywgdGhhdCBTeXprYWxsZXIgY2FuIHJlYWNoP1xuXG5Ob3csIFFFTVUncyBgaHcvbmV0L2Rlc2lnbndhcmUuY2AgaXMgYWN0dWFsbHkgYSBTeXNCdXNEZXZpY2UgKHBsYXRmb3JtIGRldmljZSkuIFNvLCBjYW4gc3l6a2FsbGVyIGZ1enogcGxhdGZvcm0gZGV2aWNlcz8gSXQgY2FuIGlmIHRoZXkgYXJlIG9uIGEgYm9hcmQsIG9yIGNhbiBpbmplY3QgdGhlbS4gU3l6a2FsbGVyIGRvZXMgaGF2ZSBuZXR3b3JrIHByaW1pdGl2ZXMgc3VjaCBhcyBgc3l6X2dlbmV0bGlua2AgYW5kIGBzeXpfbmV0bGlua2AgdGhhdCBjcmVhdGUgdmlydHVhbCBpbnRlcmZhY2VzLCBidXQgYHN0bW1hY2AgaXMgYSAqaGFyZHdhcmUqIGRyaXZlci4gIEFuZCB0aGUgcHJvbXB0IHNhaWQgdGhhdCBpZiBpdCdzIGltcG9zc2libGUgdG8gcmVhY2gsIHRoZW4gSSBzaG91bGQgcmV0dXJuIGBmYWxzZWAuXG5cbkhlcmUncyB0aGUgcHJvYmxlbTogSSBoYXZlIGEgY29tbWl0IG1lc3NhZ2UgZnJvbSBhIHN5ei1jbHVzdGVyLCBpbmRpY2F0aW5nIHRoYXQgc3l6a2FsbGVyIGlzIHRlc3RpbmcgYSBwYXRjaCBmb3IgdGhpcyBkcml2ZXIuIEJ1dCB0aGlzIGRvZXNuJ3QgZ3VhcmFudGVlIHRoZSBjb2RlIHBhdGggaXMgKnJlYWNoYWJsZSouIFRlc3RpbmcgYSBwYXRjaCBkb2Vzbid0IGVxdWFsIGZ1enppbmcgdGhlIGRyaXZlciBpdHNlbGYuIFRoYXQgZG9lc24ndCBtZWFuIHRoYXQgc3l6a2FsbGVyIGNhbiBhY3RpdmVseSBmaW5kIGJ1Z3MgaW4gaXQuXG5cbkkgZGlkIHN0YXJ0IHRvIHdvbmRlciB3aGV0aGVyIHRoZXJlIHdhcyBhIGBzeXpfcGNpX2RldmljZWAgdHlwZSBjYWxsIGZvciBTeXprYWxsZXIsIHNvbWV0aGluZyB0byBlbXVsYXRlIGEgUENJIGRldmljZSBkaXJlY3RseS4gQnV0IG5vLiBTeXprYWxsZXIgdXNlcyBRRU1VIHRvIGVtdWxhdGUgdGhlIGhhcmR3YXJlLiBUaGUgY3J1Y2lhbCB0aGluZyBpcyB0aGF0IHN5emthbGxlciBkb2Vzbid0IGhhdmUgYSBgc3l6X3BjaV9kZXZpY2VgLCBpdCBkb2Vzbid0IGRvIGZ1enppbmcgdXNpbmcgYHZmaW9gIGVpdGhlci5cblxuVGhlbiBJIHNoaWZ0ZWQgbXkgZm9jdXMuIFFFTVUgKmRvZXMqIHJ1biBBUk0gbWFjaGluZXMuIENhbiBhbiBBUk0gbWFjaGluZSB1c2UgYHN0bW1hY2AgdGhyb3VnaCB0aGUgUUVNVSBlbXVsYXRpb24/IEJ1dCB0aGUgXCJ2aXJ0XCIgbWFjaGluZSBpcyB1c2VkIGluIFN5emthbGxlciB3aXRoIFFFTVUsIGJ1dCB1c2VzIGB2aXJ0aW8tbmV0YCBmb3IgbmV0d29ya2luZy5cblxuT2theSwgbGV0J3MgY2hhbmdlIHBlcnNwZWN0aXZlLiBXaGF0IGFib3V0IGlmIHRoZSB1c2VyIGNvbXBpbGVzIHRoZSBrZXJuZWwgZm9yIHg4Nl82ND8gVGhlIGBzdG1tYWNfcGNpYCBkcml2ZXIgaXMgYXZhaWxhYmxlIG9uIHg4Nl82NCAoSW50ZWwgUXVhcmssIEFwb2xsbyBMYWtlLCBldGMuKS4gQ2FuIGl0IGJlIHJlYWNoZWQgaW4gUUVNVSB4ODZfNjQ/IEJ1dCBRRU1VIGRvZXMgKm5vdCogZW11bGF0ZSBJbnRlbCBEV01BQyBQQ0kgZGV2aWNlcy5cblxuT2theSwgaXMgdGhlcmUgYW5vdGhlciB3YXk/IE1heWJlIGBzdG1tYWNgIGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgUUVNVSB4ODZfNjQuIFdoYXQgYWJvdXQgYHZldGhgIG9yIGB0dW5gPyBUaGVzZSBhcmUgdmlydHVhbC4gYHN0bW1hY2AgaXMgYSAqcGh5c2ljYWwqIGRyaXZlci4gSSBuZWVkIHRvIGJlIGFibGUgdG8gdHJpZ2dlciB0aGUgY29kZSB3aXRob3V0IHRoZSBoYXJkd2FyZS5cblxuTm8sIHRoaXMgaXMgYSBoYXJkd2FyZSBkcml2ZXIuIEl0IG5lZWRzIGhhcmR3YXJlIHJlZ2lzdGVycy4gVGhlIHByb21wdCBzYXlzLCBzcGVjaWZpY2FsbHk6IFwiQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlXCIuXG5cblRoaXMgYWxsIGNvbWVzIGRvd24gdG8gdGhlIHByb21wdCdzIGZpbmFsIHN0YXRlbWVudDogXCJJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoIHRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlwiXG5cbkdpdmVuIGFsbCBvZiB0aGlzLCBjYW4gYHN0bW1hY2AgYmUgcmVhY2hlZCBpbiBRRU1VPyBBbmQgUUVNVSBkb2VzICpub3QqIGVtdWxhdGUgYHN0bW1hY2AgUENJLiBTaW5jZSB0aGUgZ29hbCBpcyBmdXp6aW5nLCBJJ20gbGVhbmluZyB0b3dhcmQgdGhlIGNvZGUgcGF0aHMgYmVpbmcgdW5yZWFjaGFibGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3OTYwLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE4OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQwMzo0NDozNS42MzY5OTYyNFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjEwNzcxNjQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RtbWFjXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTE2MDggbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mjk9Y29uZmlnIFNUTU1BQ19QTEFURk9STVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMy1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNDpcXHQgIFRoaXMgc2VsZWN0cyB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgYnVzIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzUtXFx0ICBUaGlzIGlzIHRoZSBkcml2ZXIgdXNlZCBvbiBzZXZlcmFsIFNvQ3M6XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTYwPWNvbmZpZyBEV01BQ19BTkFSSU9OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTY2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Njc6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIEFuYXJpb24gU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy02OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Nzg9Y29uZmlnIERXTUFDX0lOR0VOSUNcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctODUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo4NjpcXHQgIFRoaXMgc2VsZWN0cyBJbmdlbmljIFNvQ3MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy04Ny1cXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBJbmdlbmljIFNvQ3NcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9OTA9Y29uZmlnIERXTUFDX0lQUTgwNlhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctOTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo5ODpcXHQgIFRoaXMgc2VsZWN0cyB0aGUgSVBRODA2eCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05OS1cXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGRvZXMgbm90IHVzZSBhbnkgb2YgdGhlIGhhcmR3YXJlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTExND1jb25maWcgRFdNQUNfTUVESUFURUtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTIwOlxcdCAgVGhpcyBzZWxlY3RzIHRoZSBNVDI3MTIgU29DIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTIyPWNvbmZpZyBEV01BQ19NRVNPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMjktXFx0ICBUaGlzIHNlbGVjdHMgdGhlIEFtbG9naWMgTWVzb24gU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjEzMDpcXHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgTWVzb242LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTMxLVxcdCAgTWVzb244LCBNZXNvbjhiIGFuZCBHWEJCIFNvQ3MuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTEzMz1jb25maWcgRFdNQUNfTlVWT1RPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNDEtXFx0ICBUaGlzIHNlbGVjdHMgdGhlIE51dm90b24gTUEzNSBzZXJpZXMgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTQyOlxcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhlIG51dm90b24tZHdtYWMgZHJpdmVyIGlzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNDMtXFx0ICB1c2VkIGZvciBNQTM1IHNlcmllcyBTb0NzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNDU9Y29uZmlnIERXTUFDX1FDT01fRVRIUU9TXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE1Mi1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgUXVhbGNvbW0gRVRIUU9TIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxNTM6XFx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE1NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE1NT1jb25maWcgRFdNQUNfUkVORVNBU19HQkVUSFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxNjQ6XFx0ICBUaGlzIHNlbGVjdHMgUmVuZXNhcyBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRldmljZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTY1LVxcdCAgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGUgUlovVjJIKFApIGZhbWlseSwgUlovVDJIIGFuZFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNjg9Y29uZmlnIERXTUFDX1JPQ0tDSElQXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3Ni1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgUm9ja2NoaXAgUkszMjg4IFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxNzc6XFx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNzk9Y29uZmlnIERXTUFDX1JaTjFcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTg3LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBSZW5lc2FzIFJaL04xIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxODg6XFx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgc3VwcG9ydCBjYW4gbWFrZSB1c2Ugb2YgYSBjdXN0b20gTUlJXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xODktXFx0ICBjb252ZXJ0ZXIgUENTIGRldmljZS5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTkxPWNvbmZpZyBEV01BQ19TMzJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTk3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTk4OlxcdCAgVGhpcyBzZWxlY3RzIE5YUCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xOTktXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGUgUzMyQ0Mgc2VyaWVzXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIwMz1jb25maWcgRFdNQUNfU09DRlBHQVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMTQtXFx0ICBUaGlzIHNlbGVjdHMgdGhlIEFsdGVyYSBTT0NGUEdBIFNvQyBnbHVlIGxheWVyIHN1cHBvcnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIxNTpcXHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMTYtXFx0ICBhcnJpYTUgYW5kIGN5Y2xvbmU1IEZQR0EgU29Dcy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjE4PWNvbmZpZyBEV01BQ19TT1BIR09cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjI1LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBTb3BoZ28gU29DIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjI2OlxcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMjctXFx0ICBldGhlcm5ldCBjb250cm9sbGVycyBvbiB2YXJpb3VzIFNvcGhnbyBTb0NzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMjk9Y29uZmlnIERXTUFDX1NQQUNFTUlUXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIzNy1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgU3BhY2VtaXQgcGxhdGZvcm0gc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMzg6XFx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIzOS1cXHQgIFNwYWNlbWl0IEszIGV0aGVybmV0IGNvbnRyb2xsZXJzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yNDE9Y29uZmlnIERXTUFDX1NUQVJGSVZFXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI0OS1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgU3RhckZpdmUgcGxhdGZvcm0gc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyNTA6XFx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI1MS1cXHQgIFN0YXJGaXZlIEpINzEwMCBhbmQgSkg3MTEwIGV0aGVybmV0IGNvbnRyb2xsZXJzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yNTM9Y29uZmlnIERXTUFDX1NUSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyNjE6XFx0ICBUaGlzIHNlbGVjdHMgU1RpIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI2Mi1cXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBTVGkgc2VyaWVzXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI2NT1jb25maWcgRFdNQUNfU1RNMzJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjczOlxcdCAgVGhpcyBzZWxlY3RzIFNUTTMyIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI3NC1cXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBTVE0zMiBzZXJpZXNcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mjc3PWNvbmZpZyBEV01BQ19TVU5YSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yODQtXFx0ICBUaGlzIHNlbGVjdHMgQWxsd2lubmVyIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjg1OlxcdCAgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIEEyMC9BMzFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI4Ni1cXHQgIEdNQUMgZXRoZXJuZXQgY29udHJvbGxlci5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mjg4PWNvbmZpZyBEV01BQ19TVU44SVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yOTYtXFx0ICBUaGlzIHNlbGVjdHMgQWxsd2lubmVyIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjk3OlxcdCAgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIEgzL0E4M1QvQTY0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yOTgtXFx0ICBFTUFDIGV0aGVybmV0IGNvbnRyb2xsZXIuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMwMD1jb25maWcgRFdNQUNfU1VONTVJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMwOC1cXHQgIFRoaXMgc2VsZWN0cyBBbGx3aW5uZXIgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMDk6XFx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgQTUyMy9UNTI3XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMTAtXFx0ICBHTUFDMjAwIGV0aGVybmV0IGNvbnRyb2xsZXIuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMxMj1jb25maWcgRFdNQUNfVEhFQURcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzE4LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBULUhFQUQgcGxhdGZvcm0gc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzE5OlxcdCAgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBULUhFQUQgVEgxNTIwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMjAtXFx0ICBldGhlcm5ldCBjb250cm9sbGVyLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMjI9Y29uZmlnIERXTUFDX0lNWDhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzMwOlxcdCAgVGhpcyBzZWxlY3RzIE5YUCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMzEtXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBpLk1YOCBzZXJpZXMgbGlrZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMzQ9Y29uZmlnIERXTUFDX0lOVEVMX1BMQVRcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzQwLVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBJbnRlbCBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNDE6XFx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZSBJbnRlbCBLZWVtIEJheVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzQyLVxcdCAgU29DLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNDQ9Y29uZmlnIERXTUFDX0xPT05HU09OMVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNTE6XFx0ICBUaGlzIHNlbGVjdHMgTG9vbmdzb24xIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1Mi1cXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIExvb25nc29uMS1iYXNlZCBib2FyZHNcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzU1PWNvbmZpZyBEV01BQ19URUdSQVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNjAtXFx0ICBmb3VuZCBvbiB0aGUgTlZJRElBIFRlZ3JhIFNvQyBkZXZpY2VzLiBUaGlzIGRyaXZlciBwcm92aWRlcyB0aGUgZ2x1ZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzYxOlxcdCAgbGF5ZXIgb24gdG9wIG9mIHRoZSBzdG1tYWMgZHJpdmVyIHJlcXVpcmVkIGZvciB0aGVzZSBOVklESUEgVGVncmEgU29DXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNjItXFx0ICBkZXZpY2VzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzM9Y29uZmlnIFNUTU1BQ19MSUJQQ0lcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzc1LVxcdGhlbHBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM3NjpcXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIFBDSSBidXMgaGVscGVycyBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzg9Y29uZmlnIERXTUFDX0lOVEVMXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM4NS1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgSW50ZWwgcGxhdGZvcm0gc3BlY2lmaWMgYnVzIHN1cHBvcnQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzg2OlxcdCAgc3RtbWFjIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSW50ZWwgUXVhcmsvRUhML1RHTC5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM4OD1jb25maWcgRFdNQUNfTE9PTkdTT05cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzk0LVxcdGhlbHBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM5NTpcXHQgIFRoaXMgc2VsZWN0cyB0aGUgTE9PTkdTT04gUENJIGJ1cyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM5Ni1cXHQgIFN1cHBvcnQgZm9yIGV0aGVybmV0IGNvbnRyb2xsZXIgb24gTG9vbmdzb24tMksxMDAwIFNvQyBhbmQgTFM3QTEwMDAgYnJpZGdlLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz00MDc9Y29uZmlnIFNUTU1BQ19QQ0lcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDEyLVxcdGhlbHBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQxMzpcXHQgIFRoaXMgc2VsZWN0cyB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgYnVzIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDE0LVxcdCAgVGhpcyBkcml2ZXIgd2FzIHRlc3RlZCBvbiBYTElOWCBYQzJWMzAwMCBGRjExNTJBTVQwMjIxXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyOm9iai0kKENPTkZJR19TVE1NQUNfRVRIKSArPSBzdG1tYWMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjM6c3RtbWFjLW9ianM6PSBzdG1tYWNfbWFpbi5vIHN0bW1hY19ldGh0b29sLm8gc3RtbWFjX21kaW8ubyByaW5nX21vZGUub1xcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS00LVxcdCAgICAgIGNoYWluX21vZGUubyBkd21hY19saWIubyBkd21hYzEwMDBfY29yZS5vIGR3bWFjMTAwMF9kbWEub1xcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01LVxcdCAgICAgIGR3bWFjMTAwX2NvcmUubyBkd21hYzEwMF9kbWEubyBlbmhfZGVzYy5vIG5vcm1fZGVzYy5vXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjY6XFx0ICAgICAgbW1jX2NvcmUubyBzdG1tYWNfaHd0c3RhbXAubyBzdG1tYWNfcHRwLm8gZHdtYWM0X2Rlc2NzLm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNy1cXHQgICAgICBkd21hYzRfZG1hLm8gZHdtYWM0X2xpYi5vIGR3bWFjNF9jb3JlLm8gZHdtYWM1Lm8gaHdpZi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo4OlxcdCAgICAgIHN0bW1hY190Yy5vIGR3eGdtYWMyX2NvcmUubyBkd3hnbWFjMl9kbWEubyBkd3hnbWFjMl9kZXNjcy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo5OlxcdCAgICAgIHN0bW1hY194ZHAubyBzdG1tYWNfZXN0Lm8gc3RtbWFjX2ZwZS5vIHN0bW1hY192bGFuLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjEwOlxcdCAgICAgIHN0bW1hY19wY3MubyAkKHN0bW1hYy15KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjEyOnN0bW1hYy0kKENPTkZJR19TVE1NQUNfU0VMRlRFU1RTKSArPSBzdG1tYWNfc2VsZnRlc3RzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xNC0jIE9yZGVyaW5nIG1hdHRlcnMuIEdlbmVyaWMgZHJpdmVyIG11c3QgYmUgbGFzdC5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxNTpvYmotJChDT05GSUdfU1RNTUFDX1BMQVRGT1JNKVxcdCs9IHN0bW1hYy1wbGF0Zm9ybS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMTYtb2JqLSQoQ09ORklHX0RXTUFDX0FOQVJJT04pXFx0Kz0gZHdtYWMtYW5hcmlvbi5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT00NT1vYmotJChDT05GSUdfRFdNQUNfVklTQ09OVEkpXFx0Kz0gZHdtYWMtdmlzY29udGkub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQ2OnN0bW1hYy1wbGF0Zm9ybS1vYmpzOj0gc3RtbWFjX3BsYXRmb3JtLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS00Ny1kd21hYy1hbHRyLXNvY2ZwZ2Etb2JqcyA6PSBkd21hYy1zb2NmcGdhLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS00OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo0OTpvYmotJChDT05GSUdfU1RNTUFDX0xJQlBDSSlcXHQrPSBzdG1tYWNfbGlicGNpLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo1MDpvYmotJChDT05GSUdfU1RNTUFDX1BDSSlcXHQrPSBzdG1tYWMtcGNpLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01MS1vYmotJChDT05GSUdfRFdNQUNfSU5URUwpXFx0Kz0gZHdtYWMtaW50ZWwub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9NTM9b2JqLSQoQ09ORklHX0RXTUFDX01PVE9SQ09NTSlcXHQrPSBkd21hYy1tb3RvcmNvbW0ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjU0OnN0bW1hYy1wY2ktb2Jqczo9IHN0bW1hY19wY2kub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNTojaW5jbHVkZSBcXFwic3RtbWFjLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNzpzdGF0aWMgaW50IGp1bWJvX2ZybShzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xOC1cXHRcXHQgICAgIGludCBjc3VtKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIwLVxcdHVuc2lnbmVkIGludCBub3BhZ2VkX2xlbiA9IHNrYl9oZWFkbGVuKHNrYik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjIxOlxcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHR4X3EtXFx1MDAzZXByaXZfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMjItXFx0dW5zaWduZWQgaW50IGVudHJ5ID0gdHhfcS1cXHUwMDNlY3VyX3R4O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTQ0LVxcdC8qIGRvIG5vdCBjbG9zZSB0aGUgZGVzY3JpcHRvciBhbmQgZG8gbm90IHNldCBvd24gYml0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjQ1OlxcdHN0bW1hY19wcmVwYXJlX3R4X2Rlc2MocHJpdiwgZGVzYywgMSwgYnVmX2xlbiwgY3N1bSwgU1RNTUFDX0NIQUlOX01PREUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTQ2LVxcdFxcdFxcdDAsIGZhbHNlLCBza2ItXFx1MDAzZWxlbik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNjEtXFx0XFx0XFx0dHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0ubGVuID0gYm1heDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6NjI6XFx0XFx0XFx0c3RtbWFjX3ByZXBhcmVfdHhfZGVzYyhwcml2LCBkZXNjLCAwLCBibWF4LCBjc3VtLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy02My1cXHRcXHRcXHRcXHRcXHRTVE1NQUNfQ0hBSU5fTU9ERSwgMSwgZmFsc2UsIHNrYi1cXHUwMDNlbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03NS1cXHRcXHRcXHQvKiBsYXN0IGRlc2NyaXB0b3IgY2FuIGJlIHNldCBub3cgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6NzY6XFx0XFx0XFx0c3RtbWFjX3ByZXBhcmVfdHhfZGVzYyhwcml2LCBkZXNjLCAwLCBsZW4sIGNzdW0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTc3LVxcdFxcdFxcdFxcdFxcdFNUTU1BQ19DSEFJTl9NT0RFLCAxLCB0cnVlLCBza2ItXFx1MDAzZWxlbik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM9OTg9c3RhdGljIHZvaWQgaW5pdF9kbWFfY2hhaW4odm9pZCAqZGVzLCBkbWFfYWRkcl90IHBoeV9hZGRyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEyNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTI4OnN0YXRpYyB2b2lkIHJlZmlsbF9kZXNjMyhzdHJ1Y3Qgc3RtbWFjX3J4X3F1ZXVlICpyeF9xLCBzdHJ1Y3QgZG1hX2Rlc2MgKnApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEyOS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjEzMDpcXHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSByeF9xLVxcdTAwM2Vwcml2X2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEzMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE0MzpzdGF0aWMgdm9pZCBjbGVhbl9kZXNjMyhzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xLCBzdHJ1Y3QgZG1hX2Rlc2MgKnApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE0NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE0NTpcXHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSB0eF9xLVxcdTAwM2Vwcml2X2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE0Ni1cXHR1bnNpZ25lZCBpbnQgZW50cnkgPSB0eF9xLVxcdTAwM2VkaXJ0eV90eDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE2MDpjb25zdCBzdHJ1Y3Qgc3RtbWFjX21vZGVfb3BzIGNoYWluX21vZGVfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNjEtXFx0LmluaXQgPSBpbml0X2RtYV9jaGFpbixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTE1LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9uZXRkZXZpY2UuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoxNjojaW5jbHVkZSBcXHUwMDNjbGludXgvc3RtbWFjLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTctI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BoeS5oXFx1MDAzZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDk9c3RhdGljIGlubGluZSBib29sIGR3bWFjX2lzX3htYWMoZW51bSBkd21hY19jb3JlX3R5cGUgY29yZV90eXBlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NzE6c3RydWN0IHN0bW1hY19xX3R4X3N0YXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC03Mi1cXHR1NjRfc3RhdHNfdCB0eF9ieXRlcztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTc3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjc4OnN0cnVjdCBzdG1tYWNfbmFwaV90eF9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzktXFx0dTY0X3N0YXRzX3QgdHhfcGFja2V0cztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjg2OnN0cnVjdCBzdG1tYWNfdHhxX3N0YXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC04Ny1cXHQvKiBVcGRhdGVzIHByb3RlY3RlZCBieSB0eCBxdWV1ZSBsb2NrLiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTg4LVxcdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBxX3N5bmNwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjg5OlxcdHN0cnVjdCBzdG1tYWNfcV90eF9zdGF0cyBxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTkwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtOTItXFx0c3RydWN0IHU2NF9zdGF0c19zeW5jIG5hcGlfc3luY3A7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6OTM6XFx0c3RydWN0IHN0bW1hY19uYXBpX3R4X3N0YXRzIG5hcGk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtOTQtfSBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjk2OnN0cnVjdCBzdG1tYWNfbmFwaV9yeF9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtOTctXFx0dTY0X3N0YXRzX3QgcnhfYnl0ZXM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTAzOnN0cnVjdCBzdG1tYWNfcnhxX3N0YXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDQtXFx0LyogVXBkYXRlcyBwcm90ZWN0ZWQgYnkgTkFQSSBwb2xsIGxvZ2ljLiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNS1cXHRzdHJ1Y3QgdTY0X3N0YXRzX3N5bmMgbmFwaV9zeW5jcDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoxMDY6XFx0c3RydWN0IHN0bW1hY19uYXBpX3J4X3N0YXRzIG5hcGk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTA3LX0gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwOS0vKiBVcGRhdGVzIG9uIGVhY2ggQ1BVIHByb3RlY3RlZCBieSBub3QgYWxsb3dpbmcgbmVzdGVkIGlycXMuICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTEwOnN0cnVjdCBzdG1tYWNfcGNwdV9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTExLVxcdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBzeW5jcDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExNi0vKiBFeHRyYSBzdGF0aXN0aWMgYW5kIGRlYnVnIGluZm9ybWF0aW9uIGV4cG9zZWQgYnkgZXRodG9vbCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjExNzpzdHJ1Y3Qgc3RtbWFjX2V4dHJhX3N0YXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMTgtXFx0LyogVHJhbnNtaXQgZXJyb3JzICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yMzctXFx0LyogcGVyIHF1ZXVlIHN0YXRpc3RpY3MgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoyMzg6XFx0c3RydWN0IHN0bW1hY190eHFfc3RhdHMgdHhxX3N0YXRzW01UTF9NQVhfVFhfUVVFVUVTXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoyMzk6XFx0c3RydWN0IHN0bW1hY19yeHFfc3RhdHMgcnhxX3N0YXRzW01UTF9NQVhfUlhfUVVFVUVTXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoyNDA6XFx0c3RydWN0IHN0bW1hY19wY3B1X3N0YXRzIF9fcGVyY3B1ICpwY3B1X3N0YXRzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI0MS1cXHR1bnNpZ25lZCBsb25nIHJ4X2Ryb3BwZWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDctLyogU2FmZXR5IEZlYXR1cmUgc3RhdGlzdGljcyBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoyNDg6c3RydWN0IHN0bW1hY19zYWZldHlfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI0OS1cXHR1bnNpZ25lZCBsb25nIG1hY19lcnJvcnNbMzJdO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMjU2LSNkZWZpbmUgU1RNTUFDX1NBRkVUWV9GRUFUX1NJWkVcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjU3OlxcdChzaXplb2Yoc3RydWN0IHN0bW1hY19zYWZldHlfc3RhdHMpIC8gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI1OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTQxNj1zdHJ1Y3QgZG1hX2ZlYXR1cmVzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTU2NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo1NjU6dm9pZCBzdG1tYWNfYXhpX2JsZW5fdG9fbWFzayh1MzIgKnJlZ3ZhbCwgY29uc3QgdTMyICpibGVuLCBzaXplX3QgbGVuKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC01NjYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaD02MTM9c3RydWN0IG1hY19kZXZpY2VfaW5mbyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE0OlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfb3BzICptYWM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE1OlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfZGVzY19vcHMgKmRlc2M7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE2OlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfZG1hX29wcyAqZG1hO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNzpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX21vZGVfb3BzICptb2RlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxODpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wICpwdHA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE5OlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfdGNfb3BzICp0YztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MjA6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19tbWNfb3BzICptbWM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjIxOlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfZXN0X29wcyAqZXN0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYyMjpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3ZsYW5fb3BzICp2bGFuO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTYyMy1cXHRzdHJ1Y3QgZHdfeHBjcyAqeHBjcztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY0NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NDU6c3RydWN0IHN0bW1hY19yeF9yb3V0aW5nIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NDYtXFx0dTMyIHJlZ19tYXNrO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjQ5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1MDppbnQgZHdtYWMxMDBfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTE6aW50IGR3bWFjMTAwMF9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1MjppbnQgZHdtYWM0X3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjUzOmludCBkd3hnbWFjMl9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1NDppbnQgZHd4bGdtYWMyX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1Njp2b2lkIHN0bW1hY19zZXRfbWFjX2FkZHIodm9pZCBfX2lvbWVtICppb2FkZHIsIGNvbnN0IHU4IGFkZHJbNl0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjU3LVxcdFxcdFxcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjU4OnZvaWQgc3RtbWFjX2dldF9tYWNfYWRkcih2b2lkIF9faW9tZW0gKmlvYWRkciwgdW5zaWduZWQgY2hhciAqYWRkcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NTktXFx0XFx0XFx0IHVuc2lnbmVkIGludCBoaWdoLCB1bnNpZ25lZCBpbnQgbG93KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjA6dm9pZCBzdG1tYWNfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY2MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjI6dm9pZCBzdG1tYWNfZHdtYWM0X3NldF9tYWNfYWRkcih2b2lkIF9faW9tZW0gKmlvYWRkciwgY29uc3QgdTggYWRkcls2XSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjMtXFx0XFx0XFx0XFx0dW5zaWduZWQgaW50IGhpZ2gsIHVuc2lnbmVkIGludCBsb3cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY2NDp2b2lkIHN0bW1hY19kd21hYzRfZ2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCB1bnNpZ25lZCBjaGFyICphZGRyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY2NS1cXHRcXHRcXHRcXHR1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjY2OnZvaWQgc3RtbWFjX2R3bWFjNF9zZXRfbWFjKHZvaWQgX19pb21lbSAqaW9hZGRyLCBib29sIGVuYWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjY3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTExLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9vZl9uZXQuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTI6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3N0bW1hYy5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTQ6I2luY2x1ZGUgXFxcInN0bW1hYy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxNTojaW5jbHVkZSBcXFwic3RtbWFjX3BsYXRmb3JtLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTE2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jPTYzPWFuYXJpb25fY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjY0OlxcdFxcdCAgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtNjUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jPTkzPXN0YXRpYyBpbnQgYW5hcmlvbl9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTk2LVxcdHN0cnVjdCBhbmFyaW9uX2dtYWMgKmdtYWM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjk3OlxcdHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjk4OlxcdHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHN0bW1hY19yZXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTk5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxMDA6XFx0cmV0ID0gc3RtbWFjX2dldF9wbGF0Zm9ybV9yZXNvdXJjZXMocGRldiwgXFx1MDAyNnN0bW1hY19yZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMDEtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEwNDpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEwNS1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjExNjpcXHRyZXR1cm4gZGV2bV9zdG1tYWNfcGx0ZnJfcHJvYmUocGRldiwgcGxhdF9kYXQsIFxcdTAwMjZzdG1tYWNfcmVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE3LX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz0xMjU9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYW5hcmlvbl9kd21hY19kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTI4LVxcdFxcdC5uYW1lICAgICAgICAgICA9IFxcXCJhbmFyaW9uLWR3bWFjXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTI5OlxcdFxcdC5wbVxcdFxcdD0gXFx1MDAyNnN0bW1hY19wbHRmcl9wbV9vcHMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEzMC1cXHRcXHQub2ZfbWF0Y2hfdGFibGUgPSBhbmFyaW9uX2R3bWFjX21hdGNoLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMS0jaW5jbHVkZSBcXHUwMDNjbGludXgvcmVzZXQuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjIyOiNpbmNsdWRlIFxcdTAwM2NsaW51eC9zdG1tYWMuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjQ6I2luY2x1ZGUgXFxcInN0bW1hY19wbGF0Zm9ybS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjUtI2luY2x1ZGUgXFxcImR3bWFjNC5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNj1zdGF0aWMgaW50IGR3Y19ldGhfZHdtYWNfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozNzpcXHRcXHRcXHRcXHQgICBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy00My1cXHRcXHRwbGF0X2RhdC1cXHUwMDNlYXhpID0gZGV2bV9remFsbG9jKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzo0NDpcXHRcXHRcXHRcXHRcXHQgICAgIHNpemVvZihzdHJ1Y3Qgc3RtbWFjX2F4aSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy00NS1cXHRcXHRcXHRcXHRcXHQgICAgIEdGUF9LRVJORUwpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz05Nj1zdGF0aWMgaW50IGR3Y19xb3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjk3OlxcdFxcdFxcdCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6OTg6XFx0XFx0XFx0IHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzICpzdG1tYWNfcmVzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtOTkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTAwOlxcdHBsYXRfZGF0LVxcdTAwM2VwY2xrID0gc3RtbWFjX3BsdGZyX2ZpbmRfY2xrKHBsYXRfZGF0LCBcXFwicGh5X3JlZl9jbGtcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTEwMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MTE1PXN0YXRpYyB2b2lkIHRlZ3JhX2Vxb3NfZml4X3NwZWVkKHZvaWQgKmJzcF9wcml2LCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xMTktXFx0Ym9vbCBuZWVkc19jYWxpYnJhdGlvbiA9IGZhbHNlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTIwOlxcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTEyMS1cXHR1MzIgdmFsdWU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTE0MS1cXHRcXHQvKiBDYWxpYnJhdGlvbiBzaG91bGQgYmUgZG9uZSB3aXRoIHRoZSBNRElPIGJ1cyBpZGxlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxNDI6XFx0XFx0c3RtbWFjX21kaW9fbG9jayhwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTE0My1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTc3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTc4OlxcdFxcdHN0bW1hY19tZGlvX3VubG9jayhwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTE3OS1cXHR9IGVsc2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0xODY9c3RhdGljIGludCB0ZWdyYV9lcW9zX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxODc6XFx0XFx0XFx0ICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxODg6XFx0XFx0XFx0ICAgIHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzICpyZXMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xODkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyMDQ6XFx0cGxhdF9kYXQtXFx1MDAzZWNsa190eF9pID0gc3RtbWFjX3BsdGZyX2ZpbmRfY2xrKHBsYXRfZGF0LCBcXFwidHhcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIwNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjM3LVxcdHBsYXRfZGF0LVxcdTAwM2VmaXhfbWFjX3NwZWVkID0gdGVncmFfZXFvc19maXhfc3BlZWQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyMzg6XFx0cGxhdF9kYXQtXFx1MDAzZXNldF9jbGtfdHhfcmF0ZSA9IHN0bW1hY19zZXRfY2xrX3R4X3JhdGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMzktXFx0cGxhdF9kYXQtXFx1MDAzZWJzcF9wcml2ID0gZXFvcztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjUyPXN0YXRpYyB2b2lkIHRlZ3JhX2Vxb3NfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNTMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjU0OlxcdHN0cnVjdCB0ZWdyYV9lcW9zICplcW9zID0gZ2V0X3N0bW1hY19ic3BfcHJpdihcXHUwMDI2cGRldi1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI1NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjYwPXN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjYxLVxcdGludCAoKnByb2JlKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjYyOlxcdFxcdCAgICAgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2MzpcXHRcXHQgICAgIHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzICpyZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY0LVxcdHZvaWQgKCpyZW1vdmUpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjY1OlxcdGNvbnN0IGNoYXIgKnN0bW1hY19jbGtfbmFtZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI2Ni19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNjg9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgZHdjX3Fvc19kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY5LVxcdC5wcm9iZSA9IGR3Y19xb3NfcHJvYmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNzA6XFx0LnN0bW1hY19jbGtfbmFtZSA9IFxcXCJhcGJfcGNsa1xcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNzEtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjczPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhIHRlZ3JhX2Vxb3NfZGF0YSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjc1LVxcdC5yZW1vdmUgPSB0ZWdyYV9lcW9zX3JlbW92ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI3NjpcXHQuc3RtbWFjX2Nsa19uYW1lID0gXFxcInNsYXZlX2J1c1xcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNzctfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9Mjc5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhIGZzZF9lcW9zX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODA6XFx0LnN0bW1hY19jbGtfbmFtZSA9IFxcXCJzbGF2ZV9idXNcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjgxLX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI4Mz1zdGF0aWMgaW50IGR3Y19ldGhfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjg1LVxcdGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgKmRhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODY6XFx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI4NzpcXHRzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyBzdG1tYWNfcmVzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjg4LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI5MjpcXHRtZW1zZXQoXFx1MDAyNnN0bW1hY19yZXMsIDAsIHNpemVvZihzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcykpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjk0LVxcdC8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjk1OlxcdCAqIFNpbmNlIHN0bW1hY19wbGF0Zm9ybSBzdXBwb3J0cyBuYW1lIElSUSBvbmx5LCBiYXNpYyBwbGF0Zm9ybVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjk2LVxcdCAqIHJlc291cmNlIGluaXRpYWxpemF0aW9uIGlzIGRvbmUgaW4gdGhlIGdsdWUgbG9naWMuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTctXFx0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTg6XFx0c3RtbWFjX3Jlcy5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjk5OlxcdGlmIChzdG1tYWNfcmVzLmlycSBcXHUwMDNjIDApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDA6XFx0XFx0cmV0dXJuIHN0bW1hY19yZXMuaXJxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzAxOlxcdHN0bW1hY19yZXMud29sX2lycSA9IHN0bW1hY19yZXMuaXJxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzAzOlxcdHN0bW1hY19yZXMuYWRkciA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNDpcXHRpZiAoSVNfRVJSKHN0bW1hY19yZXMuYWRkcikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDU6XFx0XFx0cmV0dXJuIFBUUl9FUlIoc3RtbWFjX3Jlcy5hZGRyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNzpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMDgtXFx0aWYgKElTX0VSUihwbGF0X2RhdCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMxNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMxNjpcXHRwbGF0X2RhdC1cXHUwMDNlc3RtbWFjX2NsayA9IHN0bW1hY19wbHRmcl9maW5kX2NsayhwbGF0X2RhdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMxNzpcXHRcXHRcXHRcXHRcXHRcXHQgICAgIGRhdGEtXFx1MDAzZXN0bW1hY19jbGtfbmFtZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTktXFx0aWYgKGRhdGEtXFx1MDAzZXByb2JlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzIwOlxcdFxcdHJldCA9IGRhdGEtXFx1MDAzZXByb2JlKHBkZXYsIHBsYXRfZGF0LCBcXHUwMDI2c3RtbWFjX3Jlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMjEtXFx0aWYgKHJldCBcXHUwMDNjIDApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzMwOlxcdHJldCA9IHN0bW1hY19kdnJfcHJvYmUoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgcGxhdF9kYXQsIFxcdTAwMjZzdG1tYWNfcmVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMzMS1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNDM9c3RhdGljIHZvaWQgZHdjX2V0aF9kd21hY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzQ3OlxcdHN0bW1hY19kdnJfcmVtb3ZlKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzQ4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNjE9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZHdjX2V0aF9kd21hY19kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM2NS1cXHRcXHQubmFtZSAgICAgICAgICAgPSBcXFwiZHdjLWV0aC1kd21hY1xcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozNjY6XFx0XFx0LnBtICAgICAgICAgICAgID0gXFx1MDAyNnN0bW1hY19wbHRmcl9wbV9vcHMsXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDAzOjQ0OjM1LjY5ODA3ODE5NFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDU1MTIwMzM5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBgc3RtbWFjYCBEcml2ZXI6IEEgVGFyZ2V0ZWQgQXBwcm9hY2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBzdG1tYWNgIGRyaXZlciwgd2hpY2ggSSBrbm93IGlzIGEgZ2VuZXJpYyBkcml2ZXIgZm9yIFN5bm9wc3lzIERlc2lnbldhcmUgTUFDIGltcGxlbWVudGF0aW9ucy4gQW5kIEkgc2VlIHRoYXQgUUVNVSBhY3R1YWxseSBoYXMgYGh3L25ldC9kZXNpZ253YXJlLmNgLCB3aGljaCBpcyB0aGUgZW11bGF0b3IgZm9yIHRoaXMgaGFyZHdhcmUsIHdoaWNoIGlzIGtleS4gVGhpcyBnZXRzIG1lIHRoaW5raW5nIGFib3V0IGZ1enppbmcgaXQgd2l0aCBzeXprYWxsZXIuIFRoZSB3aG9sZSBwb2ludCBpcyB0byBmaW5kIHJlYWNoYWJsZSBidWdzLCBzbyBpZiBzeXprYWxsZXIgaGFzIGR1ZyBzb21ldGhpbmcgdXAgaW4gdGhpcyBkcml2ZXIsIHdlIGtub3cgdGhlIGNvZGUgaXMgYmVpbmcgaGl0IHNvbWVob3cuXG5cblN5emthbGxlciBkb2VzIGEgZ3JlYXQgam9iIGZ1enppbmcgUUVNVSB3aXRoIHZhcmlvdXMgbWFjaGluZSBjb25maWd1cmF0aW9ucywgbGlrZSBgbWNpbXg2dWwtZXZrYCwgYHhsbngtemN1MTAyYCwgYW5kIGBhbGx3aW5uZXItaDNgLiBHb29kLCBzeXprYWxsZXIgc3VwcG9ydHMgQVJNIGFuZCBBUk02NCwgYW5kIHRoaXMgZHJpdmVyIGlzIHJlbGV2YW50IHRvIGEgdmFyaWV0eSBvZiBoYXJkd2FyZS4gU2luY2UgdGhpcyBkcml2ZXIgaXMgZW11bGF0ZWQgd2l0aGluIFFFTVUsIGl0J3MgZGVmaW5pdGVseSB3b3J0aCBmdXp6aW5nLlxuXG5UaGUgcGF0Y2ggaXRzZWxmIG1vZGlmaWVzIGBzdG1tYWNfbWFpbi5jYCwgdGhlIGNvcmUgZHJpdmVyIGZvciAqYWxsKiBEV01BQyB2YXJpYW50cywgc28gaXQgaXMgaGlnaCBpbXBhY3QuIFRoaXMgYWxzbyBhZGRzIGEgYFNUTU1BQ19ET1dOYCBmbGFnIHRvIHByZXZlbnQgWERQIGZyb20gcHJvY2Vzc2luZyBuZXcgcGFja2V0cyB3aGVuIHRoZSBpbnRlcmZhY2UgaXMgZG93bi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHNpZ25hbCB0aGF0IHRoaXMgY29kZSBpcyBpbnRlcmVzdGluZyB0byBleHBsb3JlLiBTbywgeWVzLCBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuXG5cblRoZSBuZXh0IHN0ZXAgaXMgdG8gbmFpbCBkb3duIHNwZWNpZmljIHN5bWJvbHMsIGFuZCBhdm9pZCB0aGUgbm9pc2UuIEknbSBmb2N1c2luZyBvbjpcblxuKiAgIGBzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzYFxuKiAgIGBzdG1tYWNfZHJhaW5feGRwYFxuKiAgIGBzdG1tYWNfeGRwX3JlbGVhc2VgXG4qICAgYHN0bW1hY19zdXNwZW5kYFxuKiAgIGBfX3N0bW1hY19vcGVuYFxuKiAgIGBfX3N0bW1hY19yZWxlYXNlYFxuXG5JIGtub3cgdGhlIHByb21wdCBpcyBndWlkaW5nIG1lLCB0byBhdm9pZCBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuIE15IG1pbmQgaXMgaW5zdGFudGx5IGV2YWx1YXRpbmcgd2hldGhlciB0aGVzZSBmdW5jdGlvbnMgYXJlIGNvbW1vbiBpbiB0aGUgZGF0YSBwYXRoLiBIbW0sIGxldCBtZSB0aGluay4gYF9fc3RtbWFjX29wZW5gIGFuZCBgX19zdG1tYWNfcmVsZWFzZWAgYXJlIGludGVyZmFjZSB1cC9kb3duIGZ1bmN0aW9ucywgc28gbm90IGhvdCBwYXRocy4gYHN0bW1hY194ZHBfeG1pdF9iYWNrYCBhbmQgYF9fc3RtbWFjX3hkcF9ydW5fcHJvZ2AgYXJlIGRhdGEgcGF0aC4gR29vZCwgSSdsbCBhdm9pZCB0aG9zZS5cblxuU28sIG5vdyBJIGhhdmUgYSBsaXN0IG9mIHRhcmdldHMgZm9yIGZ1enppbmcuIE5vdywgdG8gbWFrZSBzdXJlIHRoZXNlIHN5bWJvbHMgYXJlIGVuYWJsZWQgaW4gdGhlIGJ1aWxkLiBUaGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIGBzdG1tYWNgLCBzbyB0aGF0J3MgdGhlIGtlcm5lbCBtb2R1bGUgSSBuZWVkIHRvIGJlIGNvbmNlcm5lZCB3aXRoLiBJIHdpbGwgbG9vayBhdCB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWdgIGZpbGUuIGBTVE1NQUNfRVRIYCBsb29rcyBsaWtlIHRoZSBtYWluIGNvbmZpZyDigJMgaXQncyBhIGB0cmlzdGF0ZSBcIlNUTWljcm9lbGVjdHJvbmljcyAxMC8xMDAvMTAwMC9FUU9TIEV0aGVybmV0IE1BQyBzdXBwb3J0XCJgLiBUaGlzIGlzIHRoZSBvbmUgSSBuZWVkIHRvIGZvY3VzIG9uLiBXYWl0LCB0aGUgcGF0Y2ggbW9kaWZpZXMgWERQLXJlbGF0ZWQgY29kZS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRvIGVuYWJsZSBYRFAgY29uZGl0aW9uYWxseSB3aXRoaW4gYHN0bW1hY2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ0NDgzLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjY4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDAzOjQ0OjQ2LjI0OTI4NDExMloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTI3NDE3OTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiWERQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz04MD1NT0RVTEVfUEFSTV9ERVNDKHBoeWFkZHIsIFxcXCJQaHlzaWNhbCBkZXZpY2UgYWRkcmVzc1xcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjg0Oi8qIExpbWl0IHRvIG1ha2Ugc3VyZSBYRFAgVFggYW5kIHNsb3cgcGF0aCBjYW4gY29leGlzdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODUtI2RlZmluZSBTVE1NQUNfWFNLX1RYX0JVREdFVF9NQVhcXHQyNTZcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo4OTojZGVmaW5lIFNUTU1BQ19YRFBfUEFTU1xcdFxcdDBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjkwOiNkZWZpbmUgU1RNTUFDX1hEUF9DT05TVU1FRFxcdEJJVCgwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6OTE6I2RlZmluZSBTVE1NQUNfWERQX1RYXFx0XFx0QklUKDEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo5MjojZGVmaW5lIFNUTU1BQ19YRFBfUkVESVJFQ1RcXHRCSVQoMilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTkzLSNkZWZpbmUgU1RNTUFDX1hTS19DT05TVU1FRFxcdEJJVCgzKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz0yNjk9c3RhdGljIHZvaWQgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI5Mi0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI5MzogKiBzdG1tYWNfZHJhaW5feGRwIC0gQ2xlYW51cCBmb3IgWERQIGFwcHNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI5NC0gKiBAcHJpdjogZHJpdmVyIHByaXZhdGUgc3RydWN0dXJlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTE1NDU9c3RhdGljIHVuc2lnbmVkIGludCBzdG1tYWNfcnhfb2Zmc2V0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMTU0Ny1cXHRpZiAoc3RtbWFjX3hkcF9pc19lbmFibGVkKHByaXYpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MTU0ODpcXHRcXHRyZXR1cm4gWERQX1BBQ0tFVF9IRUFEUk9PTTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTE1NDktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTE3MjU9c3RhdGljIHZvaWQgc3RtbWFjX2ZyZWVfdHhfYnVmZmVyKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMTczMS1cXHRpZiAodHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtpXS5idWYgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjE3MzI6XFx0ICAgIHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbaV0uYnVmX3R5cGUgIT0gU1RNTUFDX1RYQlVGX1RfWERQX1RYKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0xNzMzLVxcdFxcdGlmICh0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2ldLm1hcF9hc19wYWdlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0xNzQ1LVxcdGlmICh0eF9xLVxcdTAwM2V4ZHBmW2ldIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoxNzQ2OlxcdCAgICAodHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtpXS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9YRFBfVFggfHxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjE3NDc6XFx0ICAgICB0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1hEUF9ORE8pKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0xNzQ4LVxcdFxcdHhkcF9yZXR1cm5fZnJhbWUodHhfcS1cXHUwMDNleGRwZltpXSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTE4ODI9c3RhdGljIGludCBfX2luaXRfZG1hX3J4X2Rlc2NfcmluZ3Moc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0xOTE3LVxcdGlmIChyeF9xLVxcdTAwM2V4c2tfcG9vbCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MTkxODpcXHRcXHQvKiBSWCBYRFAgWkMgYnVmZmVyIHBvb2wgbWF5IG5vdCBiZSBwb3B1bGF0ZWQsIGUuZy5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTE5MTktXFx0XFx0ICogeGRwc29jayBUWC1vbmx5Llxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz0yNDM3PXN0YXRpYyB2b2lkIGZyZWVfZG1hX2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjQ0My1cXHQvKiBSZWxlYXNlIHRoZSBETUEgUlggc29ja2V0IGJ1ZmZlcnMgbGF0ZXJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI0NDQ6XFx0ICogdG8gZW5zdXJlIGFsbCBwZW5kaW5nIFhEUF9UWCBidWZmZXJzIGFyZSByZXR1cm5lZC5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI0NDUtXFx0ICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTI2OTE9c3RhdGljIGJvb2wgc3RtbWFjX3hkcF94bWl0X3pjKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgdTMyIHF1ZXVlLCB1MzIgYnVkZ2V0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yNzM4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MjczOTpcXHRcXHQvKiBUbyByZXR1cm4gWERQIGJ1ZmZlciB0byBYU0sgcG9vbCwgd2Ugc2ltcGxlIGNhbGxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI3NDAtXFx0XFx0ICogeHNrX3R4X2NvbXBsZXRlZCgpLCBzbyB3ZSBkb24ndCBuZWVkIHRvIGZpbGwgdXBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjgyNz1zdGF0aWMgaW50IHN0bW1hY190eF9jbGVhbihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGludCBidWRnZXQsIHUzMiBxdWV1ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjg0OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI4NDk6XFx0XFx0aWYgKHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1hEUF9UWCB8fFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6Mjg1MDpcXHRcXHQgICAgdHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfWERQX05ETykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjg1MS1cXHRcXHRcXHR4ZHBmID0gdHhfcS1cXHUwMDNleGRwZltlbnRyeV07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI4OTktXFx0XFx0aWYgKGxpa2VseSh0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWYgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI5MDA6XFx0XFx0XFx0ICAgdHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgIT0gU1RNTUFDX1RYQlVGX1RfWERQX1RYKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjkwMS1cXHRcXHRcXHRpZiAodHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0ubWFwX2FzX3BhZ2UpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI5MjQtXFx0XFx0aWYgKHhkcGYgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI5MjU6XFx0XFx0ICAgIHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1hEUF9UWCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjkyNi1cXHRcXHRcXHR4ZHBfcmV0dXJuX2ZyYW1lX3J4X25hcGkoeGRwZik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI5MzAtXFx0XFx0aWYgKHhkcGYgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI5MzE6XFx0XFx0ICAgIHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1hEUF9ORE8pIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI5MzItXFx0XFx0XFx0eGRwX3JldHVybl9mcmFtZSh4ZHBmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NDI0Mj1zdGF0aWMgdm9pZCBfX3N0bW1hY19yZWxlYXNlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQyNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo0MjUwOlxcdC8qIFNldCBET1dOIGZsYWcgdG8gcHJldmVudCBYRFAgZnJvbSBwcm9jZXNzaW5nIG5ldyBwYWNrZXRzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MjUxLVxcdHNldF9iaXQoU1RNTUFDX0RPV04sIFxcdTAwMjZwcml2LVxcdTAwM2VzdGF0ZSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTUxNzg9c3RhdGljIGludCBzdG1tYWNfeGRwX3htaXRfeGRwZihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGludCBxdWV1ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTE5MC1cXHRpZiAoc3RtbWFjX3R4X2F2YWlsKHByaXYsIHF1ZXVlKSBcXHUwMDNjIFNUTU1BQ19UWF9USFJFU0gocHJpdikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1MTkxOlxcdFxcdHJldHVybiBTVE1NQUNfWERQX0NPTlNVTUVEO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTE5Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTE5Ni1cXHRcXHRwcml2LVxcdTAwM2V4c3RhdHMubWF4X3NkdV90eHFfZHJvcFtxdWV1ZV0rKztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUxOTc6XFx0XFx0cmV0dXJuIFNUTU1BQ19YRFBfQ09OU1VNRUQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MTk4LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTIwNC1cXHRcXHRpZiAoZG1hX21hcHBpbmdfZXJyb3IocHJpdi1cXHUwMDNlZGV2aWNlLCBkbWFfYWRkcikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1MjA1OlxcdFxcdFxcdHJldHVybiBTVE1NQUNfWERQX0NPTlNVTUVEO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTIwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUyMDc6XFx0XFx0YnVmX3R5cGUgPSBTVE1NQUNfVFhCVUZfVF9YRFBfTkRPO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTIwOC1cXHR9IGVsc2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MjE1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTIxNjpcXHRcXHRidWZfdHlwZSA9IFNUTU1BQ19UWEJVRl9UX1hEUF9UWDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUyMTctXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MjUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTI1MTpcXHRyZXR1cm4gU1RNTUFDX1hEUF9UWDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUyNTItfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz01MjY4PXN0YXRpYyBpbnQgc3RtbWFjX3hkcF94bWl0X2JhY2soc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01Mjg0LVxcdGlmICh1bmxpa2VseSgheGRwZikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1Mjg1OlxcdFxcdHJldHVybiBTVE1NQUNfWERQX0NPTlNVTUVEO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTI4Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTI5My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUyOTQ6XFx0LyogRm9yIHplcm8gY29weSBYRFBfVFggYWN0aW9uLCBkbWFfbWFwIGlzIHRydWUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUyOTUtXFx0cmVzID0gc3RtbWFjX3hkcF94bWl0X3hkcGYocHJpdiwgcXVldWUsIHhkcGYsIHpjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUyOTY6XFx0aWYgKHJlcyA9PSBTVE1NQUNfWERQX1RYKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01Mjk3LVxcdFxcdHN0bW1hY19mbHVzaF90eF9kZXNjcmlwdG9ycyhwcml2LCBxdWV1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1Mjk4OlxcdH0gZWxzZSBpZiAocmVzID09IFNUTU1BQ19YRFBfQ09OU1VNRUQgXFx1MDAyNlxcdTAwMjYgemMpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUyOTktXFx0XFx0LyogeGRwIGhhcyBiZWVuIGZyZWVkIGJ5IHhkcF9jb252ZXJ0X2J1ZmZfdG9fZnJhbWUoKSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NTMxMj1zdGF0aWMgaW50IF9fc3RtbWFjX3hkcF9ydW5fcHJvZyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzMjAtXFx0c3dpdGNoIChhY3QpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzMjE6XFx0Y2FzZSBYRFBfUEFTUzpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzMjI6XFx0XFx0cmVzID0gU1RNTUFDX1hEUF9QQVNTO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTMyMy1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzMjQ6XFx0Y2FzZSBYRFBfVFg6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzI1LVxcdFxcdHJlcyA9IHN0bW1hY194ZHBfeG1pdF9iYWNrKHByaXYsIHhkcCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzI2LVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTMyNzpcXHRjYXNlIFhEUF9SRURJUkVDVDpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzMjgtXFx0XFx0aWYgKHVubGlrZWx5KHRlc3RfYml0KFNUTU1BQ19ET1dOLCBcXHUwMDI2cHJpdi1cXHUwMDNlc3RhdGUpKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzMjk6XFx0XFx0XFx0cmVzID0gU1RNTUFDX1hEUF9DT05TVU1FRDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzMzAtXFx0XFx0ZWxzZSBpZiAoeGRwX2RvX3JlZGlyZWN0KHByaXYtXFx1MDAzZWRldiwgeGRwLCBwcm9nKSBcXHUwMDNjIDApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1MzMxOlxcdFxcdFxcdHJlcyA9IFNUTU1BQ19YRFBfQ09OU1VNRUQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzMyLVxcdFxcdGVsc2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzMzM6XFx0XFx0XFx0cmVzID0gU1RNTUFDX1hEUF9SRURJUkVDVDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzMzQtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzMzctXFx0XFx0ZmFsbHRocm91Z2g7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1MzM4OlxcdGNhc2UgWERQX0FCT1JURUQ6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzM5LVxcdFxcdHRyYWNlX3hkcF9leGNlcHRpb24ocHJpdi1cXHUwMDNlZGV2LCBwcm9nLCBhY3QpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTM0MC1cXHRcXHRmYWxsdGhyb3VnaDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzNDE6XFx0Y2FzZSBYRFBfRFJPUDpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzNDI6XFx0XFx0cmVzID0gU1RNTUFDX1hEUF9DT05TVU1FRDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzNDMtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTUzNDk9c3RhdGljIHN0cnVjdCBza19idWZmICpzdG1tYWNfeGRwX3J1bl9wcm9nKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTM1Ni1cXHRpZiAoIXByb2cpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzNTc6XFx0XFx0cmVzID0gU1RNTUFDX1hEUF9QQVNTO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTM1OC1cXHRcXHRnb3RvIG91dDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NTM2Nj1zdGF0aWMgdm9pZCBzdG1tYWNfZmluYWxpemVfeGRwX3J4KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTM3My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzNzQ6XFx0aWYgKHhkcF9zdGF0dXMgXFx1MDAyNiBTVE1NQUNfWERQX1RYKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTM3NS1cXHRcXHRzdG1tYWNfdHhfdGltZXJfYXJtKHByaXYsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1Mzc3OlxcdGlmICh4ZHBfc3RhdHVzIFxcdTAwMjYgU1RNTUFDX1hEUF9SRURJUkVDVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzNzgtXFx0XFx0eGRwX2RvX2ZsdXNoKCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTU0OTg9c3RhdGljIHN0cnVjdCBzdG1tYWNfeGRwX2J1ZmYgKnhza19idWZmX3RvX3N0bW1hY19jdHgoc3RydWN0IHhkcF9idWZmICp4ZHApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01NDk5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjU1MDA6XFx0LyogSW4gWERQIHplcm8gY29weSBkYXRhIHBhdGgsIHhkcCBmaWVsZCBpbiBzdHJ1Y3QgeGRwX2J1ZmZfeHNrIGlzIHVzZWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU1MDEtXFx0ICogdG8gcmVwcmVzZW50IGluY29taW5nIHBhY2tldCwgd2hlcmVhcyBjYiBmaWVsZCBpbiB0aGUgc2FtZSBzdHJ1Y3R1cmVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NTUwOD1zdGF0aWMgaW50IHN0bW1hY19yeF96YyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGludCBsaW1pdCwgdTMyIHF1ZXVlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01NjE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTYxOTpcXHRcXHQvKiBYRFAgWkMgRnJhbWUgb25seSBzdXBwb3J0IHByaW1hcnkgYnVmZmVycyBmb3Igbm93ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01NjIwLVxcdFxcdGJ1ZjFfbGVuID0gc3RtbWFjX3J4X2J1ZjFfbGVuKHByaXYsIHAsIHN0YXR1cywgbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTYzNi1cXHRcXHRzd2l0Y2ggKHJlcykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTYzNzpcXHRcXHRjYXNlIFNUTU1BQ19YRFBfUEFTUzpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU2MzgtXFx0XFx0XFx0c3RtbWFjX2Rpc3BhdGNoX3NrYl96Yyhwcml2LCBxdWV1ZSwgcCwgbnAsIGJ1Zi1cXHUwMDNleGRwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTY0MC1cXHRcXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjU2NDE6XFx0XFx0Y2FzZSBTVE1NQUNfWERQX0NPTlNVTUVEOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTY0Mi1cXHRcXHRcXHR4c2tfYnVmZl9mcmVlKGJ1Zi1cXHUwMDNleGRwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTY0Ni1cXHRcXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjU2NDc6XFx0XFx0Y2FzZSBTVE1NQUNfWERQX1RYOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTY0ODpcXHRcXHRjYXNlIFNUTU1BQ19YRFBfUkVESVJFQ1Q6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01NjQ5LVxcdFxcdFxcdHhkcF9zdGF0dXMgfD0gcmVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz01NjkzPXN0YXRpYyBpbnQgc3RtbWFjX3J4KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IGxpbWl0LCB1MzIgcXVldWUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU4MzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1ODMyOlxcdFxcdFxcdC8qIEZvciBOb3QgWERQX1BBU1MgdmVyZGljdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTgzMy1cXHRcXHRcXHRpZiAoSVNfRVJSKHNrYikpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTgzNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjU4MzY6XFx0XFx0XFx0XFx0aWYgKHhkcF9yZXMgXFx1MDAyNiBTVE1NQUNfWERQX0NPTlNVTUVEKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01ODM3LVxcdFxcdFxcdFxcdFxcdHBhZ2VfcG9vbF9wdXRfcGFnZShyeF9xLVxcdTAwM2VwYWdlX3Bvb2wsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU4NDMtXFx0XFx0XFx0XFx0XFx0LyogQ2xlYXIgc2tiIGFzIGl0IHdhcyBzZXQgYXNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjU4NDQ6XFx0XFx0XFx0XFx0XFx0ICogc3RhdHVzIGJ5IFhEUCBwcm9ncmFtLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTg0NS1cXHRcXHRcXHRcXHRcXHQgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTg1Mi1cXHRcXHRcXHRcXHRcXHRjb250aW51ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjU4NTM6XFx0XFx0XFx0XFx0fSBlbHNlIGlmICh4ZHBfcmVzIFxcdTAwMjYgKFNUTU1BQ19YRFBfVFggfFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTg1NDpcXHRcXHRcXHRcXHRcXHRcXHQgICAgICBTVE1NQUNfWERQX1JFRElSRUNUKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTg1NS1cXHRcXHRcXHRcXHRcXHR4ZHBfc3RhdHVzIHw9IHhkcF9yZXM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU4NjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1ODY3OlxcdFxcdFxcdC8qIFhEUCBwcm9ncmFtIG1heSBleHBhbmQgb3IgcmVkdWNlIHRhaWwgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU4NjgtXFx0XFx0XFx0YnVmMV9sZW4gPSBjdHgueGRwLmRhdGFfZW5kIC0gY3R4LnhkcC5kYXRhO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01ODc5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTg4MDpcXHRcXHRcXHQvKiBYRFAgcHJvZ3JhbSBtYXkgYWRqdXN0IGhlYWRlciAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTg4MS1cXHRcXHRcXHRoZWFkX3BhZF9sZW4gPSBjdHgueGRwLmRhdGEgLSBjdHgueGRwLmRhdGFfaGFyZF9zdGFydDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NjEyMj1zdGF0aWMgaW50IHN0bW1hY19jaGFuZ2VfbXR1KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBuZXdfbXR1KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02MTM1LVxcdGlmIChzdG1tYWNfeGRwX2lzX2VuYWJsZWQocHJpdikgXFx1MDAyNlxcdTAwMjYgbmV3X210dSBcXHUwMDNlIEVUSF9EQVRBX0xFTikge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NjEzNjpcXHRcXHRuZXRkZXZfZGJnKHByaXYtXFx1MDAzZWRldiwgXFxcIkp1bWJvIGZyYW1lcyBub3Qgc3VwcG9ydGVkIGZvciBYRFBcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjEzNy1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9Njk1Nj1zdGF0aWMgaW50IHN0bW1hY19icGYoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IG5ldGRldl9icGYgKmJwZilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjk2MC1cXHRzd2l0Y2ggKGJwZi1cXHUwMDNlY29tbWFuZCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6Njk2MTpcXHRjYXNlIFhEUF9TRVRVUF9QUk9HOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjk2Mi1cXHRcXHRyZXR1cm4gc3RtbWFjX3hkcF9zZXRfcHJvZyhwcml2LCBicGYtXFx1MDAzZXByb2csIGJwZi1cXHUwMDNlZXh0YWNrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjY5NjM6XFx0Y2FzZSBYRFBfU0VUVVBfWFNLX1BPT0w6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02OTY0LVxcdFxcdHJldHVybiBzdG1tYWNfeGRwX3NldHVwX3Bvb2wocHJpdiwgYnBmLVxcdTAwM2V4c2sucG9vbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9Njk3MT1zdGF0aWMgaW50IHN0bW1hY194ZHBfeG1pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgbnVtX2ZyYW1lcyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjk4Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjY5ODM6XFx0aWYgKHVubGlrZWx5KGZsYWdzIFxcdTAwMjYgflhEUF9YTUlUX0ZMQUdTX01BU0spKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjk4NC1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjk5Ni1cXHRcXHRyZXMgPSBzdG1tYWNfeGRwX3htaXRfeGRwZihwcml2LCBxdWV1ZSwgZnJhbWVzW2ldLCB0cnVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjY5OTc6XFx0XFx0aWYgKHJlcyA9PSBTVE1NQUNfWERQX0NPTlNVTUVEKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjk5OC1cXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzAwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjcwMDM6XFx0aWYgKGZsYWdzIFxcdTAwMjYgWERQX1hNSVRfRkxVU0gpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwMDQtXFx0XFx0c3RtbWFjX2ZsdXNoX3R4X2Rlc2NyaXB0b3JzKHByaXYsIHF1ZXVlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzExND12b2lkIHN0bW1hY194ZHBfcmVsZWFzZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MTMzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzEzNDpcXHQvKiBEcmFpbiBsZWZ0b3ZlciBYRFAgYnVmZmVycyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzEzNS1cXHRzdG1tYWNfZHJhaW5feGRwKHByaXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03ODE3PXN0YXRpYyBpbnQgX19zdG1tYWNfZHZyX3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldmljZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzkzOC1cXHRcXHRcXHQgICAgTkVUSUZfRl9SWENTVU07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3OTM5OlxcdG5kZXYtXFx1MDAzZXhkcF9mZWF0dXJlcyA9IE5FVERFVl9YRFBfQUNUX0JBU0lDIHwgTkVUREVWX1hEUF9BQ1RfUkVESVJFQ1QgfFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6Nzk0MDpcXHRcXHRcXHQgICAgIE5FVERFVl9YRFBfQUNUX1hTS19aRVJPQ09QWTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc5NDEtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDAzOjQ0OjQ2LjMwMjAzMTczN1oiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzk2MDY4NDMxOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipYRFAgYW5kIFNUTU1BQyBDb25maWd1cmF0aW9uIGFuZCBGb2N1cyBmb3IgRnV6emluZyoqXG5cbk9rYXksIHNvIEknbSBkaXZpbmcgaW50byB0aGlzIGBzdG1tYWNgIGRyaXZlciBjb2RlLCBzcGVjaWZpY2FsbHkgdGhlIFhEUCBpbnRlZ3JhdGlvbi4gUmlnaHQgb2ZmIHRoZSBiYXQsIEkgc2VlIHRoYXQgWERQIHN1cHBvcnQgaXMgYmFrZWQgaW50byBgc3RtbWFjYCBpZiBCUEYgaXMgZW5hYmxlZC4gTm8gZGVkaWNhdGVkIGBDT05GSUdfU1RNTUFDX1hEUGAgb3B0aW9uLCB3aGljaCBzaW1wbGlmaWVzIHRoaW5ncy4gVGhlIGRyaXZlciB1c2VzIHN0YW5kYXJkIFhEUCBhY3Rpb25zIGxpa2UgYFhEUF9QQVNTYCwgYFhEUF9UWGAsIGFuZCBgWERQX1JFRElSRUNUYC4gIFRoZXJlZm9yZSwgZW5hYmxpbmcgdGhpcyBmdW5jdGlvbmFsaXR5IGhpbmdlcyBvbiBoYXZpbmcgYFNUTU1BQ19FVEhgIGFuZCBgQlBGX1NZU0NBTExgIChmb3IgWERQKSB0dXJuZWQgb24uICBgQlBGX1NZU0NBTExgIGlzIHVzdWFsbHkgYSBnaXZlbiwgc28gdGhhdCdzIHByb2JhYmx5IGFscmVhZHkgZW5hYmxlZC5cblxuTm93LCB3aGljaCBjb25maWd1cmF0aW9ucyBhcmUgKnNwZWNpZmljKiB0byB0aGlzIG1vZGlmaWVkIGNvZGU/IEkgbmVlZCB0byB0aGluayBhYm91dCBob3cgdGhpcyB3aWxsIGNvbXBpbGUgYW5kIGJlIHRlc3RhYmxlLiAgYFNUTU1BQ19QTEFURk9STWAgb3IgYFNUTU1BQ19QQ0lgIGNvdWxkIGJlIHVzZWZ1bC4gSSdsbCBkb3VibGUtY2hlY2sgdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnYCBmaWxlLiAgWXVwLCBgU1RNTUFDX0VUSGAgaXMgdGhlIHByaW1hcnkgb25lLCBhbmQgYFNUTU1BQ19QQ0lgIGVuYWJsZXMgUENJIGJ1cyBzdXBwb3J0LiAgSSBtaWdodCBhbHNvIGNvbnNpZGVyIGBEV01BQ19JTlRFTGAgb3IgYERXTUFDX0dFTkVSSUNgIGJ1dCBJJ2xsIG5lZWQgdG8gcmVtZW1iZXIgdGhhdCB0aGVzZSBhcmUgbm90IHRoZSBtYWluIGZvY3VzLiBMb29raW5nIGF0IHRoZSBwcm9tcHQsIEkgc2hvdWxkIG9ubHkgbGlzdCB0aGUgb25lcyB0aGF0ICpzcGVjaWZpY2FsbHkqIGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLlxuXG5TbywgYFNUTU1BQ19FVEhgIGlzIHRoZSBtb3N0IGltcG9ydGFudCBvbmUuIExldCdzIHNlZS4uLiB0aGUgYFNUTU1BQ19QQ0lgIG9wdGlvbiBtaWdodCBiZSB1c2VmdWwgdG8gZW5zdXJlIHRoZSBQQ0kgdmFyaWFudCBjYW4gYmUgZnV6emVkLCBkZXBlbmRpbmcgb24gd2hldGhlciBTeXprYWxsZXIgaGFzIFBDSSBmdXp6aW5nLlxuXG5BbHJpZ2h0LCBsZXQncyBuYWlsIGRvd24gdGhlIGZ1bmN0aW9ucyB0aGlzIGNoYW5nZSBpcyB0b3VjaGluZzogYHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXNgLCBgc3RtbWFjX2RyYWluX3hkcGAsIGBzdG1tYWNfeGRwX3JlbGVhc2VgLCBgc3RtbWFjX3N1c3BlbmRgLCBgX19zdG1tYWNfb3BlbmAsIGFuZCBgX19zdG1tYWNfcmVsZWFzZWAuICBIb2xkIG9uLCBgX19zdG1tYWNfb3BlbmAgYW5kIGBfX3N0bW1hY19yZWxlYXNlYCBhcmUgcHJldHR5IHN0YW5kYXJkIG5ldGRldiBvcGVyYXRpb25zLiBgc3RtbWFjX3hkcF9yZWxlYXNlYCBzcGVjaWZpY2FsbHkgaGFuZGxlcyBYRFAgcmVsZWFzZS4gYHN0bW1hY19zdXNwZW5kYCBkZWFscyB3aXRoIFBNIHN1c3BlbmQuICBgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlc2AgYW5kIGBzdG1tYWNfZHJhaW5feGRwYCBhcmUgaW50ZXJuYWwsIHdoaWNoIEknbGwga2VlcCBpbiBtaW5kLlxuXG5Tbywgd2hpY2ggb2YgdGhlc2UgYXJlICpnb29kKiBmb2N1cyBzeW1ib2xzIGZvciBmdXp6aW5nPyBgc3RtbWFjX3hkcF9yZWxlYXNlYCBsb29rcyBwcm9taXNpbmc7IGl0J3MgWERQLXNwZWNpZmljIHdpdGhpbiBgc3RtbWFjYC4gYHN0bW1hY19kcmFpbl94ZHBgIGFuZCBgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlc2AgYXJlIGFsc28gbG9va2luZyBzcGVjaWZpYyBlbm91Z2guXG5cbkFueSBvdGhlciBjb25maWd1cmF0aW9ucyB0byBjb25zaWRlcj8gTm9wZSwgbm90IHRoYXQgSSBjYW4gc2VlLlxuXG5MZXQncyBxdWlja2x5IGNvbmZpcm0gYHN0bW1hY194ZHBfcmVsZWFzZWAgaXNuJ3Qgc3RhdGljLiBPa2F5LCBgdm9pZCBzdG1tYWNfeGRwX3JlbGVhc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldilgIGluIGBzdG1tYWNfbWFpbi5jYC4gVGhhdCdzIGdvb2QuXG5cblNvLCBoZXJlJ3MgdGhlIHN1bW1hcnk6XG5cbldvcnRoRnV6emluZzogdHJ1ZVxuRm9jdXNTeW1ib2xzOlxuLSBzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzXG4tIHN0bW1hY19kcmFpbl94ZHBcbi0gc3RtbWFjX3hkcF9yZWxlYXNlXG4tIHN0bW1hY19zdXNwZW5kXG4tIF9fc3RtbWFjX29wZW5cbi0gX19zdG1tYWNfcmVsZWFzZVxuXG5FbmFibGVDb25maWdzOlxuLSBTVE1NQUNfRVRIXG4tIFNUTU1BQ19QQ0lcblxuUmVhc29uaW5nOiBUaGlzIHBhdGNoIGFkZHJlc3NlcyBYRFAgYnVmZmVyIGRyYWluaW5nIGFuZCBuZXcgcGFja2V0IHByb2Nlc3NpbmcgZHVyaW5nIGludGVyZmFjZSBkb3duIHN0YXRlcyBpbiB0aGUgYHN0bW1hY2AgZHJpdmVyLiBJdCB0b3VjaGVzIGNvcmUgZHJpdmVyIGxvZ2ljIHZpYSB0aGUgbmV3IGBTVE1NQUNfRE9XTmAgZmxhZyBhbmQgbW9kaWZpY2F0aW9ucyB0byBvcGVuL3JlbGVhc2Uvc3VzcGVuZC5cblxuV2FpdCwgaXMgYHN0bW1hY194ZHBfcmVsZWFzZWAgcmVhY2hhYmxlPyBZZXMsIGl0J3MgY2FsbGVkIGZyb20gYHN0bW1hY194ZHBfc2V0dXBfcG9vbGAgd2hlbiBkaXNhYmxpbmcgWERQLiBXaGF0IGFib3V0IGBzdG1tYWNfc3VzcGVuZGA/IEFsc28gcmVhY2hhYmxlIHZpYSB0aGUgUE0gZnJhbWV3b3JrLlxuXG5SaWdodCwgSSdtIGhhcHB5IHdpdGggdGhhdCBhbmFseXNpcy4gVGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUzNjg1LCJPdXRwdXRUb2tlbnMiOjE2OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjgzOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQwMzo0NTowMC4yNjI3MTkzMDZaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MzU4Mjg0MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1RNTUFDX0VUSFwiLFxuICAgIFwiU1RNTUFDX1BDSVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXNcIixcbiAgICBcInN0bW1hY19kcmFpbl94ZHBcIixcbiAgICBcInN0bW1hY194ZHBfcmVsZWFzZVwiLFxuICAgIFwic3RtbWFjX3N1c3BlbmRcIixcbiAgICBcIl9fc3RtbWFjX29wZW5cIixcbiAgICBcIl9fc3RtbWFjX3JlbGVhc2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgc3RtbWFjIGRyaXZlciB0byBwcm9wZXJseSBkcmFpbiBYRFAgYnVmZmVycyBhbmQgcHJldmVudCBYRFAgZnJvbSBwcm9jZXNzaW5nIG5ldyBwYWNrZXRzIHdoZW4gdGhlIGludGVyZmFjZSBpcyBkb3duLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IFNUTU1BQ19ET1dOIGZsYWcgYW5kIG1vZGlmaWVzIHRoZSBpbnRlcmZhY2Ugb3Blbi9yZWxlYXNlL3N1c3BlbmQgcGF0aHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byByZWFjaGFibGUgY29yZSBkcml2ZXIgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1RNTUFDX0VUSFwiLFxuICAgIFwiU1RNTUFDX1BDSVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXNcIixcbiAgICBcInN0bW1hY19kcmFpbl94ZHBcIixcbiAgICBcInN0bW1hY194ZHBfcmVsZWFzZVwiLFxuICAgIFwic3RtbWFjX3N1c3BlbmRcIixcbiAgICBcIl9fc3RtbWFjX29wZW5cIixcbiAgICBcIl9fc3RtbWFjX3JlbGVhc2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgc3RtbWFjIGRyaXZlciB0byBwcm9wZXJseSBkcmFpbiBYRFAgYnVmZmVycyBhbmQgcHJldmVudCBYRFAgZnJvbSBwcm9jZXNzaW5nIG5ldyBwYWNrZXRzIHdoZW4gdGhlIGludGVyZmFjZSBpcyBkb3duLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IFNUTU1BQ19ET1dOIGZsYWcgYW5kIG1vZGlmaWVzIHRoZSBpbnRlcmZhY2Ugb3Blbi9yZWxlYXNlL3N1c3BlbmQgcGF0aHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byByZWFjaGFibGUgY29yZSBkcml2ZXIgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowjfxq4[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-08 03:33:44 +0000 UTC FinishedAt: 2026-07-08 03:45:02 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "60444706aa17616efc03190d099ac347e28b3d0a", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "STMMAC_PCI" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "60444706aa17616efc03190d099ac347e28b3d0a", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "STMMAC_PCI" ], "series_id": "561039ed-fdb2-4c94-a40e-974aa021d5f1" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "stmmac_disable_all_queues", "stmmac_drain_xdp", "stmmac_xdp_release", "stmmac_suspend", "__stmmac_open", "__stmmac_release" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDAzOjQzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BDSSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3N0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMmIzM0OywKICAgICYjMzQ7c3RtbWFjX2RyYWluX3hkcCYjMzQ7LAogICAgJiMzNDtzdG1tYWNfeGRwX3JlbGVhc2UmIzM0OywKICAgICYjMzQ7c3RtbWFjX3N1c3BlbmQmIzM0OywKICAgICYjMzQ7X19zdG1tYWNfb3BlbiYjMzQ7LAogICAgJiMzNDtfX3N0bW1hY19yZWxlYXNlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBzdG1tYWMgZHJpdmVyIHRvIHByb3Blcmx5IGRyYWluIFhEUCBidWZmZXJzIGFuZCBwcmV2ZW50IFhEUCBmcm9tIHByb2Nlc3NpbmcgbmV3IHBhY2tldHMgd2hlbiB0aGUgaW50ZXJmYWNlIGlzIGRvd24uIEl0IGludHJvZHVjZXMgYSBuZXcgU1RNTUFDX0RPV04gZmxhZyBhbmQgbW9kaWZpZXMgdGhlIGludGVyZmFjZSBvcGVuL3JlbGVhc2Uvc3VzcGVuZCBwYXRocy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHJlYWNoYWJsZSBjb3JlIGRyaXZlciBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAwMzo0MzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDhkM2VmOGMxZDMzMmEzY2RiODI0OTQyNTY2NTc5NGE5MzM4NDMwNGJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCA4IDAzOjQzOjQ5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG5pbmRleCAyYTBkN2VmZjg4ZDNmZi4uOWQ5NzFhZTM1ZDQ4YWUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG5AQCAtMjYyLDcgJiM0MzsyNjIsMTEgQEAgc3RhdGljIHZvaWQgc3RtbWFjX3ZlcmlmeV9hcmdzKHZvaWQpXG4gXHRcdHByX3dhcm4oXCYjMzQ7c3RtbWFjOiBtb2R1bGUgcGFyYW1ldGVyICYjMzk7Zmxvd19jdHJsJiMzOTsgaXMgb2Jzb2xldGUgLSBwbGVhc2UgcmVtb3ZlIGZyb20geW91ciBtb2R1bGUgY29uZmlndXJhdGlvblxcblwmIzM0Oyk7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIF9fc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4mIzQzOy8qKlxuJiM0MzsgKiBzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzIC0gRGlzYWJsZSBhbGwgcXVldWVzXG4mIzQzOyAqIEBwcml2OiBkcml2ZXIgcHJpdmF0ZSBzdHJ1Y3R1cmVcbiYjNDM7ICovXG4mIzQzO3N0YXRpYyB2b2lkIHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuIHtcbiBcdHU4IHJ4X3F1ZXVlc19jbnQgPSBwcml2LVx1MDAzZXBsYXQtXHUwMDNlcnhfcXVldWVzX3RvX3VzZTtcbiBcdHU4IHR4X3F1ZXVlc19jbnQgPSBwcml2LVx1MDAzZXBsYXQtXHUwMDNldHhfcXVldWVzX3RvX3VzZTtcbkBAIC0yODYsMTYgJiM0MzsyOTAsMTUgQEAgc3RhdGljIHZvaWQgX19zdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbiB9XG4gXG4gLyoqXG4tICogc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyAtIERpc2FibGUgYWxsIHF1ZXVlc1xuJiM0MzsgKiBzdG1tYWNfZHJhaW5feGRwIC0gQ2xlYW51cCBmb3IgWERQIGFwcHNcbiAgKiBAcHJpdjogZHJpdmVyIHByaXZhdGUgc3RydWN0dXJlXG4gICovXG4tc3RhdGljIHZvaWQgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4mIzQzO3N0YXRpYyB2b2lkIHN0bW1hY19kcmFpbl94ZHAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuIHtcbiBcdHU4IHJ4X3F1ZXVlc19jbnQgPSBwcml2LVx1MDAzZXBsYXQtXHUwMDNlcnhfcXVldWVzX3RvX3VzZTtcbiBcdHN0cnVjdCBzdG1tYWNfcnhfcXVldWUgKnJ4X3E7XG4gXHR1OCBxdWV1ZTtcbiBcbi1cdC8qIHN5bmNocm9uaXplX3JjdSgpIG5lZWRlZCBmb3IgcGVuZGluZyBYRFAgYnVmZmVycyB0byBkcmFpbiAqL1xuIFx0Zm9yIChxdWV1ZSA9IDA7IHF1ZXVlIFx1MDAzYyByeF9xdWV1ZXNfY250OyBxdWV1ZSYjNDM7JiM0MzspIHtcbiBcdFx0cnhfcSA9IFx1MDAyNnByaXYtXHUwMDNlZG1hX2NvbmYucnhfcXVldWVbcXVldWVdO1xuIFx0XHRpZiAocnhfcS1cdTAwM2V4c2tfcG9vbCkge1xuQEAgLTMwMyw4ICYjNDM7MzA2LDYgQEAgc3RhdGljIHZvaWQgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4gXHRcdFx0YnJlYWs7XG4gXHRcdH1cbiBcdH1cbi1cbi1cdF9fc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhwcml2KTtcbiB9XG4gXG4gLyoqXG5AQCAtNDE0OSw2ICYjNDM7NDE1MCw5IEBAIHN0YXRpYyBpbnQgX19zdG1tYWNfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFxuIFx0c3RtbWFjX3Jlc2V0X3F1ZXVlc19wYXJhbShwcml2KTtcbiBcbiYjNDM7XHQvKiBDbGVhciBET1dOIGZsYWcgd2hlbiBvcGVuaW5nIHRoZSBpbnRlcmZhY2UgKi9cbiYjNDM7XHRjbGVhcl9iaXQoU1RNTUFDX0RPV04sIFx1MDAyNnByaXYtXHUwMDNlc3RhdGUpO1xuJiM0MztcbiBcdHJldCA9IHN0bW1hY19od19zZXR1cChkZXYpO1xuIFx0aWYgKHJldCBcdTAwM2MgMCkge1xuIFx0XHRuZXRkZXZfZXJyKHByaXYtXHUwMDNlZGV2LCBcJiMzNDslczogSHcgc2V0dXAgZmFpbGVkXFxuXCYjMzQ7LCBfX2Z1bmNfXyk7XG5AQCAtNDI0Myw2ICYjNDM7NDI0Nyw5IEBAIHN0YXRpYyB2b2lkIF9fc3RtbWFjX3JlbGVhc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbiBcdC8qIFN0b3AgYW5kIGRpc2Nvbm5lY3QgdGhlIFBIWSAqL1xuIFx0cGh5bGlua19zdG9wKHByaXYtXHUwMDNlcGh5bGluayk7XG4gXG4mIzQzO1x0LyogU2V0IERPV04gZmxhZyB0byBwcmV2ZW50IFhEUCBmcm9tIHByb2Nlc3NpbmcgbmV3IHBhY2tldHMgKi9cbiYjNDM7XHRzZXRfYml0KFNUTU1BQ19ET1dOLCBcdTAwMjZwcml2LVx1MDAzZXN0YXRlKTtcbiYjNDM7XG4gXHRzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzKHByaXYpO1xuIFxuIFx0Zm9yIChjaGFuID0gMDsgY2hhbiBcdTAwM2MgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZXR4X3F1ZXVlc190b191c2U7IGNoYW4mIzQzOyYjNDM7KVxuQEAgLTQyNTYsNiAmIzQzOzQyNjMsOCBAQCBzdGF0aWMgdm9pZCBfX3N0bW1hY19yZWxlYXNlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4gXHQvKiBTdG9wIFRYL1JYIERNQSBhbmQgY2xlYXIgdGhlIGRlc2NyaXB0b3JzICovXG4gXHRzdG1tYWNfc3RvcF9hbGxfZG1hKHByaXYpO1xuIFxuJiM0MztcdHN0bW1hY19kcmFpbl94ZHAocHJpdik7XG4mIzQzO1xuIFx0LyogUmVsZWFzZSBhbmQgZnJlZSB0aGUgUngvVHggcmVzb3VyY2VzICovXG4gXHRmcmVlX2RtYV9kZXNjX3Jlc291cmNlcyhwcml2LCBcdTAwMjZwcml2LVx1MDAzZWRtYV9jb25mKTtcbiBcbkBAIC01MjYwLDEyICYjNDM7NTI2OSwxOCBAQCBzdGF0aWMgaW50IHN0bW1hY194ZHBfeG1pdF9iYWNrKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbiBcdFx0XHRcdHN0cnVjdCB4ZHBfYnVmZiAqeGRwKVxuIHtcbiBcdGJvb2wgemMgPSAhISh4ZHAtXHUwMDNlcnhxLVx1MDAzZW1lbS50eXBlID09IE1FTV9UWVBFX1hTS19CVUZGX1BPT0wpO1xuLVx0c3RydWN0IHhkcF9mcmFtZSAqeGRwZiA9IHhkcF9jb252ZXJ0X2J1ZmZfdG9fZnJhbWUoeGRwKTtcbiYjNDM7XHRzdHJ1Y3QgeGRwX2ZyYW1lICp4ZHBmO1xuIFx0aW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTtcbiBcdHN0cnVjdCBuZXRkZXZfcXVldWUgKm5xO1xuIFx0aW50IHF1ZXVlO1xuIFx0aW50IHJlcztcbiBcbiYjNDM7XHRpZiAodW5saWtlbHkodGVzdF9iaXQoU1RNTUFDX0RPV04sIFx1MDAyNnByaXYtXHUwMDNlc3RhdGUpKSkge1xuJiM0MztcdFx0eHNrX2J1ZmZfZnJlZSh4ZHApO1xuJiM0MztcdFx0cmV0dXJuIFNUTU1BQ19YU0tfQ09OU1VNRUQ7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHR4ZHBmID0geGRwX2NvbnZlcnRfYnVmZl90b19mcmFtZSh4ZHApO1xuIFx0aWYgKHVubGlrZWx5KCF4ZHBmKSlcbiBcdFx0cmV0dXJuIFNUTU1BQ19YRFBfQ09OU1VNRUQ7XG4gXG5AQCAtNTMxMCw3ICYjNDM7NTMyNSw5IEBAIHN0YXRpYyBpbnQgX19zdG1tYWNfeGRwX3J1bl9wcm9nKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbiBcdFx0cmVzID0gc3RtbWFjX3hkcF94bWl0X2JhY2socHJpdiwgeGRwKTtcbiBcdFx0YnJlYWs7XG4gXHRjYXNlIFhEUF9SRURJUkVDVDpcbi1cdFx0aWYgKHhkcF9kb19yZWRpcmVjdChwcml2LVx1MDAzZWRldiwgeGRwLCBwcm9nKSBcdTAwM2MgMClcbiYjNDM7XHRcdGlmICh1bmxpa2VseSh0ZXN0X2JpdChTVE1NQUNfRE9XTiwgXHUwMDI2cHJpdi1cdTAwM2VzdGF0ZSkpKVxuJiM0MztcdFx0XHRyZXMgPSBTVE1NQUNfWERQX0NPTlNVTUVEO1xuJiM0MztcdFx0ZWxzZSBpZiAoeGRwX2RvX3JlZGlyZWN0KHByaXYtXHUwMDNlZGV2LCB4ZHAsIHByb2cpIFx1MDAzYyAwKVxuIFx0XHRcdHJlcyA9IFNUTU1BQ19YRFBfQ09OU1VNRUQ7XG4gXHRcdGVsc2VcbiBcdFx0XHRyZXMgPSBTVE1NQUNfWERQX1JFRElSRUNUO1xuQEAgLTY0MDQsNyAmIzQzOzY0MjEsNyBAQCBzdGF0aWMgaW50IHN0bW1hY19zZXR1cF90Y19ibG9ja19jYihlbnVtIHRjX3NldHVwX3R5cGUgdHlwZSwgdm9pZCAqdHlwZV9kYXRhLFxuIFx0aWYgKCF0Y19jbHNfY2FuX29mZmxvYWRfYW5kX2NoYWluMChwcml2LVx1MDAzZWRldiwgdHlwZV9kYXRhKSlcbiBcdFx0cmV0dXJuIHJldDtcbiBcbi1cdF9fc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhwcml2KTtcbiYjNDM7XHRzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzKHByaXYpO1xuIFxuIFx0c3dpdGNoICh0eXBlKSB7XG4gXHRjYXNlIFRDX1NFVFVQX0NMU1UzMjpcbkBAIC03MTE0LDYgJiM0Mzs3MTMxLDkgQEAgdm9pZCBzdG1tYWNfeGRwX3JlbGVhc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbiBcdC8qIFN0b3AgVFgvUlggRE1BIGNoYW5uZWxzICovXG4gXHRzdG1tYWNfc3RvcF9hbGxfZG1hKHByaXYpO1xuIFxuJiM0MztcdC8qIERyYWluIGxlZnRvdmVyIFhEUCBidWZmZXJzICovXG4mIzQzO1x0c3RtbWFjX2RyYWluX3hkcChwcml2KTtcbiYjNDM7XG4gXHQvKiBSZWxlYXNlIGFuZCBmcmVlIHRoZSBSeC9UeCByZXNvdXJjZXMgKi9cbiBcdGZyZWVfZG1hX2Rlc2NfcmVzb3VyY2VzKHByaXYsIFx1MDAyNnByaXYtXHUwMDNlZG1hX2NvbmYpO1xuIFxuQEAgLTgyMDAsNiAmIzQzOzgyMjAsOCBAQCBpbnQgc3RtbWFjX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KVxuIFx0LyogU3RvcCBUWC9SWCBETUEgKi9cbiBcdHN0bW1hY19zdG9wX2FsbF9kbWEocHJpdik7XG4gXG4mIzQzO1x0c3RtbWFjX2RyYWluX3hkcChwcml2KTtcbiYjNDM7XG4gXHRzdG1tYWNfbGVnYWN5X3NlcmRlc19wb3dlcl9kb3duKHByaXYpO1xuIFxuIFx0LyogRW5hYmxlIFBvd2VyIGRvd24gbW9kZSBieSBwcm9ncmFtbWluZyB0aGUgUE1UIHJlZ3MgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAwMzo0MzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtTVE1NQUNfRVRIJiMzNDssCiAgICAmIzM0O1NUTU1BQ19QQ0kmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzJiMzNDssCiAgICAmIzM0O3N0bW1hY19kcmFpbl94ZHAmIzM0OywKICAgICYjMzQ7c3RtbWFjX3hkcF9yZWxlYXNlJiMzNDssCiAgICAmIzM0O3N0bW1hY19zdXNwZW5kJiMzNDssCiAgICAmIzM0O19fc3RtbWFjX29wZW4mIzM0OywKICAgICYjMzQ7X19zdG1tYWNfcmVsZWFzZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgc3RtbWFjIGRyaXZlciB0byBwcm9wZXJseSBkcmFpbiBYRFAgYnVmZmVycyBhbmQgcHJldmVudCBYRFAgZnJvbSBwcm9jZXNzaW5nIG5ldyBwYWNrZXRzIHdoZW4gdGhlIGludGVyZmFjZSBpcyBkb3duLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IFNUTU1BQ19ET1dOIGZsYWcgYW5kIG1vZGlmaWVzIHRoZSBpbnRlcmZhY2Ugb3Blbi9yZWxlYXNlL3N1c3BlbmQgcGF0aHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byByZWFjaGFibGUgY29yZSBkcml2ZXIgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDhkM2VmOGMxZDMzMmEzY2RiODI0OTQyNTY2NTc5NGE5MzM4NDMwNGIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEp1bCA4IDAzOjQzOjQ5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKaW5kZXggMmEwZDdlZmY4OGQzZmYuLjlkOTcxYWUzNWQ0OGFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKQEAgLTI2Miw3ICYjNDM7MjYyLDExIEBAIHN0YXRpYyB2b2lkIHN0bW1hY192ZXJpZnlfYXJncyh2b2lkKQogCQlwcl93YXJuKCYjMzQ7c3RtbWFjOiBtb2R1bGUgcGFyYW1ldGVyICYjMzk7Zmxvd19jdHJsJiMzOTsgaXMgb2Jzb2xldGUgLSBwbGVhc2UgcmVtb3ZlIGZyb20geW91ciBtb2R1bGUgY29uZmlndXJhdGlvblxuJiMzNDspOwogfQogCi1zdGF0aWMgdm9pZCBfX3N0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KQomIzQzOy8qKgomIzQzOyAqIHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMgLSBEaXNhYmxlIGFsbCBxdWV1ZXMKJiM0MzsgKiBAcHJpdjogZHJpdmVyIHByaXZhdGUgc3RydWN0dXJlCiYjNDM7ICovCiYjNDM7c3RhdGljIHZvaWQgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpCiB7CiAJdTggcnhfcXVldWVzX2NudCA9IHByaXYtJmd0O3BsYXQtJmd0O3J4X3F1ZXVlc190b191c2U7CiAJdTggdHhfcXVldWVzX2NudCA9IHByaXYtJmd0O3BsYXQtJmd0O3R4X3F1ZXVlc190b191c2U7CkBAIC0yODYsMTYgJiM0MzsyOTAsMTUgQEAgc3RhdGljIHZvaWQgX19zdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdikKIH0KIAogLyoqCi0gKiBzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzIC0gRGlzYWJsZSBhbGwgcXVldWVzCiYjNDM7ICogc3RtbWFjX2RyYWluX3hkcCAtIENsZWFudXAgZm9yIFhEUCBhcHBzCiAgKiBAcHJpdjogZHJpdmVyIHByaXZhdGUgc3RydWN0dXJlCiAgKi8KLXN0YXRpYyB2b2lkIHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KQomIzQzO3N0YXRpYyB2b2lkIHN0bW1hY19kcmFpbl94ZHAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KQogewogCXU4IHJ4X3F1ZXVlc19jbnQgPSBwcml2LSZndDtwbGF0LSZndDtyeF9xdWV1ZXNfdG9fdXNlOwogCXN0cnVjdCBzdG1tYWNfcnhfcXVldWUgKnJ4X3E7CiAJdTggcXVldWU7CiAKLQkvKiBzeW5jaHJvbml6ZV9yY3UoKSBuZWVkZWQgZm9yIHBlbmRpbmcgWERQIGJ1ZmZlcnMgdG8gZHJhaW4gKi8KIAlmb3IgKHF1ZXVlID0gMDsgcXVldWUgJmx0OyByeF9xdWV1ZXNfY250OyBxdWV1ZSYjNDM7JiM0MzspIHsKIAkJcnhfcSA9ICZhbXA7cHJpdi0mZ3Q7ZG1hX2NvbmYucnhfcXVldWVbcXVldWVdOwogCQlpZiAocnhfcS0mZ3Q7eHNrX3Bvb2wpIHsKQEAgLTMwMyw4ICYjNDM7MzA2LDYgQEAgc3RhdGljIHZvaWQgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpCiAJCQlicmVhazsKIAkJfQogCX0KLQotCV9fc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhwcml2KTsKIH0KIAogLyoqCkBAIC00MTQ5LDYgJiM0Mzs0MTUwLDkgQEAgc3RhdGljIGludCBfX3N0bW1hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAKIAlzdG1tYWNfcmVzZXRfcXVldWVzX3BhcmFtKHByaXYpOwogCiYjNDM7CS8qIENsZWFyIERPV04gZmxhZyB3aGVuIG9wZW5pbmcgdGhlIGludGVyZmFjZSAqLwomIzQzOwljbGVhcl9iaXQoU1RNTUFDX0RPV04sICZhbXA7cHJpdi0mZ3Q7c3RhdGUpOwomIzQzOwogCXJldCA9IHN0bW1hY19od19zZXR1cChkZXYpOwogCWlmIChyZXQgJmx0OyAwKSB7CiAJCW5ldGRldl9lcnIocHJpdi0mZ3Q7ZGV2LCAmIzM0OyVzOiBIdyBzZXR1cCBmYWlsZWRcbiYjMzQ7LCBfX2Z1bmNfXyk7CkBAIC00MjQzLDYgJiM0Mzs0MjQ3LDkgQEAgc3RhdGljIHZvaWQgX19zdG1tYWNfcmVsZWFzZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCS8qIFN0b3AgYW5kIGRpc2Nvbm5lY3QgdGhlIFBIWSAqLwogCXBoeWxpbmtfc3RvcChwcml2LSZndDtwaHlsaW5rKTsKIAomIzQzOwkvKiBTZXQgRE9XTiBmbGFnIHRvIHByZXZlbnQgWERQIGZyb20gcHJvY2Vzc2luZyBuZXcgcGFja2V0cyAqLwomIzQzOwlzZXRfYml0KFNUTU1BQ19ET1dOLCAmYW1wO3ByaXYtJmd0O3N0YXRlKTsKJiM0MzsKIAlzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzKHByaXYpOwogCiAJZm9yIChjaGFuID0gMDsgY2hhbiAmbHQ7IHByaXYtJmd0O3BsYXQtJmd0O3R4X3F1ZXVlc190b191c2U7IGNoYW4mIzQzOyYjNDM7KQpAQCAtNDI1Niw2ICYjNDM7NDI2Myw4IEBAIHN0YXRpYyB2b2lkIF9fc3RtbWFjX3JlbGVhc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkvKiBTdG9wIFRYL1JYIERNQSBhbmQgY2xlYXIgdGhlIGRlc2NyaXB0b3JzICovCiAJc3RtbWFjX3N0b3BfYWxsX2RtYShwcml2KTsKIAomIzQzOwlzdG1tYWNfZHJhaW5feGRwKHByaXYpOwomIzQzOwogCS8qIFJlbGVhc2UgYW5kIGZyZWUgdGhlIFJ4L1R4IHJlc291cmNlcyAqLwogCWZyZWVfZG1hX2Rlc2NfcmVzb3VyY2VzKHByaXYsICZhbXA7cHJpdi0mZ3Q7ZG1hX2NvbmYpOwogCkBAIC01MjYwLDEyICYjNDM7NTI2OSwxOCBAQCBzdGF0aWMgaW50IHN0bW1hY194ZHBfeG1pdF9iYWNrKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwKIAkJCQlzdHJ1Y3QgeGRwX2J1ZmYgKnhkcCkKIHsKIAlib29sIHpjID0gISEoeGRwLSZndDtyeHEtJmd0O21lbS50eXBlID09IE1FTV9UWVBFX1hTS19CVUZGX1BPT0wpOwotCXN0cnVjdCB4ZHBfZnJhbWUgKnhkcGYgPSB4ZHBfY29udmVydF9idWZmX3RvX2ZyYW1lKHhkcCk7CiYjNDM7CXN0cnVjdCB4ZHBfZnJhbWUgKnhkcGY7CiAJaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKIAlzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpucTsKIAlpbnQgcXVldWU7CiAJaW50IHJlczsKIAomIzQzOwlpZiAodW5saWtlbHkodGVzdF9iaXQoU1RNTUFDX0RPV04sICZhbXA7cHJpdi0mZ3Q7c3RhdGUpKSkgewomIzQzOwkJeHNrX2J1ZmZfZnJlZSh4ZHApOwomIzQzOwkJcmV0dXJuIFNUTU1BQ19YU0tfQ09OU1VNRUQ7CiYjNDM7CX0KJiM0MzsKJiM0MzsJeGRwZiA9IHhkcF9jb252ZXJ0X2J1ZmZfdG9fZnJhbWUoeGRwKTsKIAlpZiAodW5saWtlbHkoIXhkcGYpKQogCQlyZXR1cm4gU1RNTUFDX1hEUF9DT05TVU1FRDsKIApAQCAtNTMxMCw3ICYjNDM7NTMyNSw5IEBAIHN0YXRpYyBpbnQgX19zdG1tYWNfeGRwX3J1bl9wcm9nKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwKIAkJcmVzID0gc3RtbWFjX3hkcF94bWl0X2JhY2socHJpdiwgeGRwKTsKIAkJYnJlYWs7CiAJY2FzZSBYRFBfUkVESVJFQ1Q6Ci0JCWlmICh4ZHBfZG9fcmVkaXJlY3QocHJpdi0mZ3Q7ZGV2LCB4ZHAsIHByb2cpICZsdDsgMCkKJiM0MzsJCWlmICh1bmxpa2VseSh0ZXN0X2JpdChTVE1NQUNfRE9XTiwgJmFtcDtwcml2LSZndDtzdGF0ZSkpKQomIzQzOwkJCXJlcyA9IFNUTU1BQ19YRFBfQ09OU1VNRUQ7CiYjNDM7CQllbHNlIGlmICh4ZHBfZG9fcmVkaXJlY3QocHJpdi0mZ3Q7ZGV2LCB4ZHAsIHByb2cpICZsdDsgMCkKIAkJCXJlcyA9IFNUTU1BQ19YRFBfQ09OU1VNRUQ7CiAJCWVsc2UKIAkJCXJlcyA9IFNUTU1BQ19YRFBfUkVESVJFQ1Q7CkBAIC02NDA0LDcgJiM0Mzs2NDIxLDcgQEAgc3RhdGljIGludCBzdG1tYWNfc2V0dXBfdGNfYmxvY2tfY2IoZW51bSB0Y19zZXR1cF90eXBlIHR5cGUsIHZvaWQgKnR5cGVfZGF0YSwKIAlpZiAoIXRjX2Nsc19jYW5fb2ZmbG9hZF9hbmRfY2hhaW4wKHByaXYtJmd0O2RldiwgdHlwZV9kYXRhKSkKIAkJcmV0dXJuIHJldDsKIAotCV9fc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhwcml2KTsKJiM0MzsJc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhwcml2KTsKIAogCXN3aXRjaCAodHlwZSkgewogCWNhc2UgVENfU0VUVVBfQ0xTVTMyOgpAQCAtNzExNCw2ICYjNDM7NzEzMSw5IEBAIHZvaWQgc3RtbWFjX3hkcF9yZWxlYXNlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJLyogU3RvcCBUWC9SWCBETUEgY2hhbm5lbHMgKi8KIAlzdG1tYWNfc3RvcF9hbGxfZG1hKHByaXYpOwogCiYjNDM7CS8qIERyYWluIGxlZnRvdmVyIFhEUCBidWZmZXJzICovCiYjNDM7CXN0bW1hY19kcmFpbl94ZHAocHJpdik7CiYjNDM7CiAJLyogUmVsZWFzZSBhbmQgZnJlZSB0aGUgUngvVHggcmVzb3VyY2VzICovCiAJZnJlZV9kbWFfZGVzY19yZXNvdXJjZXMocHJpdiwgJmFtcDtwcml2LSZndDtkbWFfY29uZik7CiAKQEAgLTgyMDAsNiAmIzQzOzgyMjAsOCBAQCBpbnQgc3RtbWFjX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQogCS8qIFN0b3AgVFgvUlggRE1BICovCiAJc3RtbWFjX3N0b3BfYWxsX2RtYShwcml2KTsKIAomIzQzOwlzdG1tYWNfZHJhaW5feGRwKHByaXYpOwomIzQzOwogCXN0bW1hY19sZWdhY3lfc2VyZGVzX3Bvd2VyX2Rvd24ocHJpdik7CiAKIAkvKiBFbmFibGUgUG93ZXIgZG93biBtb2RlIGJ5IHByb2dyYW1taW5nIHRoZSBQTVQgcmVncyAqLwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAwMzo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTIzCgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogNDI2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBhdGNoIHRvIHRoZSBTVE1NQUMgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY2AuIEl0JiMzOTtzIHByZXR0eSBzdHJhaWdodGZvcndhcmQsIGZ1bmN0aW9uYWxseSBzcGVha2luZy4gVGhleSYjMzk7dmUgcmVuYW1lZCBgX19zdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzYCB0byBgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlc2Ag4oCTIG5vdGhpbmcgZ3JvdW5kLWJyZWFraW5nIHRoZXJlLiBUaGVuLCB0aGV5JiMzOTt2ZSBwdWxsZWQgdGhlIFhEUCBkcmFpbmluZyBsb2dpYyBvdXQgaW50byBpdHMgb3duIGZ1bmN0aW9uLCBgc3RtbWFjX2RyYWluX3hkcGAuIFNtYXJ0OyB0aGF0JiMzOTtzIGdvb2QgZm9yIHJlYWRhYmlsaXR5IGFuZCBwb3RlbnRpYWwgcmV1c2UuIFRoZSBtZWF0IG9mIGl0IHNlZW1zIHRvIGJlIGFyb3VuZCB0aGlzIGBTVE1NQUNfRE9XTmAgZmxhZy4gVGhleSYjMzk7cmUgYWRkaW5nIGNoZWNrcyBmb3IgaXQgaW4gYSBmZXcgcGxhY2VzLiBFc3NlbnRpYWxseSwgaXQgbG9va3MgbGlrZSB0aGV5JiMzOTtyZSB0cnlpbmcgdG8gcHJldmVudCBYRFAgZnJvbSB0b3VjaGluZyBwYWNrZXRzIHdoZW4gdGhlIGludGVyZmFjZSBpcyBkb3duLiBNYWtlcyBzZW5zZTsgYXZvaWQgYW55IHdlaXJkIHJhY2UgY29uZGl0aW9ucyBvciBhdHRlbXB0cyB0byBwcm9jZXNzIHBhY2tldHMgb24gYSBkZWFkIGludGVyZmFjZS4gVGhleSBzZXQgYFNUTU1BQ19ET1dOYCBpbiBgX19zdG1tYWNfcmVsZWFzZWAgYW5kIGNsZWFyIGl0IGluIGBfX3N0bW1hY19vcGVuYC4gQW5kIHRoZW4sIGNyaXRpY2FsbHksIHRoZXkmIzM5O3JlIGNoZWNraW5nIGl0IGluIGBzdG1tYWNfeGRwX3htaXRfYmFja2AsIGBfX3N0bW1hY194ZHBfcnVuX3Byb2dgIGFuZCBjYWxsaW5nIGBzdG1tYWNfZHJhaW5feGRwYCBpbiBgX19zdG1tYWNfcmVsZWFzZWAsIGBzdG1tYWNfeGRwX3JlbGVhc2VgLCBhbmQgYHN0bW1hY19zdXNwZW5kYC4gT2theSwgc28gaXQgbG9va3MgbGlrZSB0aGV5IGFyZSBjYWxsaW5nIHRoZSBkcmFpbmluZyBmdW5jdGlvbiBpbiBkaWZmZXJlbnQgcGxhY2VzLgoKTm93LCBmcm9tIGEgdGVzdGluZyBwZXJzcGVjdGl2ZSwgdGhpcyBicmluZ3MgdXAgc29tZSBpbW1lZGlhdGUgcXVlc3Rpb25zLiBUaGlzIGlzIGEgKmhhcmR3YXJlKiBkcml2ZXIuIFNwZWNpZmljYWxseSwgaXQmIzM5O3MgZm9yIFNUTWljcm9lbGVjdHJvbmljcyBFdGhlcm5ldCBNQUNzLCB3aGljaCBtZWFucyBpdCYjMzk7cyBsaWtlbHkgZGVhbGluZyB3aXRoIGFjdHVhbCBoYXJkd2FyZSByZWdpc3RlcnMuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gdGhpcyBiZSBmdXp6ZWQ/IElzIHRoZXJlIGEgdmlydHVhbCBjb3VudGVycGFydCwgbGlrZSBhIHZpcnRpbyBkZXZpY2UsIHRoYXQgSSBjYW4gdXNlIHRvIGVtdWxhdGUgaXQ/IFByb2JhYmx5IG5vdCwgc2luY2UgaXQmIzM5O3MgYW4gU1RNaWNyb2VsZWN0cm9uaWNzIHNwZWNpZmljIGRyaXZlci4gU28sIEkgbmVlZCB0byBjaGVjayBob3cgaXQmIzM5O3MgY29ubmVjdGVkLiBJdCBpcyBhIFBDSSBkcml2ZXI/IEkgbmVlZCB0byBsb29rIGludG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuY2AsIHdoaWNoIGlzIGEgZ29vZCBjbHVlLiBJIHdpbGwgcXVpY2tseSBydW4gYSBgZ3JlcHBlcmAgY2hlY2sgdG8gc2VlLiBJIGNhbiYjMzk7dCBzdGFydCBmdXp6aW5nIHNvbWV0aGluZyB0aGF0IGlzbiYjMzk7dCBjb25uZWN0ZWQgdG8gdGhlIGNvcnJlY3QgaGFyZHdhcmUgb3IgdmlydHVhbGlzZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMDM6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RtbWFjX3BjaSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0PTEwNz1zeW50YXggKGUuZy4gZm9yIFBDSSBtb2R1bGUpOjpcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy5yc3QtMTA4LVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdDoxMDk6ICAgIG1vZHByb2JlIHN0bW1hY19wY2kgW1x1MDAzY29wdGlvblx1MDAzZT1cdTAwM2NWQUwxXHUwMDNlLFx1MDAzY1ZBTDJcdTAwM2UsLi4uXVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdC0xMTAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9NTM9b2JqLSQoQ09ORklHX0RXTUFDX01PVE9SQ09NTSlcdCYjNDM7PSBkd21hYy1tb3RvcmNvbW0ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTQ6c3RtbWFjLXBjaS1vYmpzOj0gc3RtbWFjX3BjaS5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0yNT1zdHJ1Y3QgaW50ZWxfcHJpdl9kYXRhIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTM5LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0MDpzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00MS1cdHVuc2lnbmVkIGludCBmdW5jO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjQ1OnN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NDY6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgKmZ1bmM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTQ3LVx0c2l6ZV90IG5mdW5jcztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo1MDpzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNTEtXHRpbnQgKCpzZXR1cCkoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MT1zdGF0aWMgY29uc3QgaW50IGFkbG5fdHNuX2xhbmVfcmVnc1tdID0gezZ9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTM6c3RhdGljIGludCBzdG1tYWNfcGNpX2ZpbmRfcGh5X2FkZHIoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk0LVx0XHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICpkbWlfbGlzdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NjpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSAqZnVuY19kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NzpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhICpkbWlfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTgtXHRjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqZG1pX2lkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9NzU1PXN0YXRpYyBpbnQgZWhsX3NnbWlpX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy03NzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjc3NTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfc2dtaWkxZ19pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy03NzYtXHQuc2V0dXAgPSBlaGxfc2dtaWlfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTc3OT1zdGF0aWMgaW50IGVobF9yZ21paV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNzg5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo3OTA6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3JnbWlpMWdfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNzkxLVx0LnNldHVwID0gZWhsX3JnbWlpX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04MTA9c3RhdGljIGludCBlaGxfcHNlMF9yZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjgxNzpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMF9yZ21paTFnX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTgxOC1cdC5zZXR1cCA9IGVobF9wc2UwX3JnbWlpMWdfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTgyMT1zdGF0aWMgaW50IGVobF9wc2UwX3NnbWlpMWdfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTgzOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6ODM5OnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGVobF9wc2UwX3NnbWlpMWdfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODQwLVx0LnNldHVwID0gZWhsX3BzZTBfc2dtaWkxZ19kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODU5PXN0YXRpYyBpbnQgZWhsX3BzZTFfcmdtaWkxZ19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODY1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4NjY6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3BzZTFfcmdtaWkxZ19pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04NjctXHQuc2V0dXAgPSBlaGxfcHNlMV9yZ21paTFnX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04NzA9c3RhdGljIGludCBlaGxfcHNlMV9zZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04ODctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjg4ODpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMV9zZ21paTFnX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg4OS1cdC5zZXR1cCA9IGVobF9wc2UxX3NnbWlpMWdfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTkxMz1zdGF0aWMgaW50IHRnbF9zZ21paV9waHkwX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjkyMjpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyB0Z2xfc2dtaWkxZ19waHkwX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTkyMy1cdC5zZXR1cCA9IHRnbF9zZ21paV9waHkwX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MjY9c3RhdGljIGludCB0Z2xfc2dtaWlfcGh5MV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5MzU6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gdGdsX3NnbWlpMWdfcGh5MV9pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MzYtXHQuc2V0dXAgPSB0Z2xfc2dtaWlfcGh5MV9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTM5PXN0YXRpYyBpbnQgYWRsc19zZ21paV9waHkwX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NDgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk0OTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBhZGxzX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NTAtXHQuc2V0dXAgPSBhZGxzX3NnbWlpX3BoeTBfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTk1Mz1zdGF0aWMgaW50IGFkbHNfc2dtaWlfcGh5MV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NjM6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gYWRsc19zZ21paTFnX3BoeTFfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTY0LVx0LnNldHVwID0gYWRsc19zZ21paV9waHkxX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05OTI9c3RhdGljIGludCBhZGxuX3NnbWlpX3BoeTBfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMTE6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gYWRsbl9zZ21paTFnX3BoeTBfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAxMi1cdC5zZXR1cCA9IGFkbG5fc2dtaWlfcGh5MF9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAxNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTAxNTpzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZnVuY19kYXRhIGdhbGlsZW9fc3RtbWFjX2Z1bmNfZGF0YVtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDE2LVx0e1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTAyMjpzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZG1pX2RhdGEgZ2FsaWxlb19zdG1tYWNfZG1pX2RhdGEgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMjMtXHQuZnVuYyA9IGdhbGlsZW9fc3RtbWFjX2Z1bmNfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMjc6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSBpb3QyMDQwX3N0bW1hY19mdW5jX2RhdGFbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAyOC1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMzg6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhIGlvdDIwNDBfc3RtbWFjX2RtaV9kYXRhID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDM5LVx0LmZ1bmMgPSBpb3QyMDQwX3N0bW1hY19mdW5jX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0xMDc4PXN0YXRpYyBpbnQgcXVhcmtfZGVmYXVsdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTA4OC1cdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDg5Olx0cmV0ID0gc3RtbWFjX3BjaV9maW5kX3BoeV9hZGRyKHBkZXYsIHF1YXJrX3BjaV9kbWkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDkwLVx0aWYgKHJldCBcdTAwM2MgMCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTExMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTExNDpzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBxdWFya19pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMTE1LVx0LnNldHVwID0gcXVhcmtfZGVmYXVsdF9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MTIzMj1zdGF0aWMgaW50IGludGVsX2V0aF9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMjM0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTIzNTpcdHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKmluZm8gPSAoc3RydWN0IHN0bW1hY19wY2lfaW5mbyAqKWlkLVx1MDAzZWRyaXZlcl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMjM2LVx0c3RydWN0IGludGVsX3ByaXZfZGF0YSAqaW50ZWxfcHJpdjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTc2PXN0cnVjdCBsb29uZ3Nvbl9kYXRhIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo4MjpzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtODMtXHRpbnQgKCpzZXR1cCkoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz0xMzI9c3RhdGljIGludCBsb29uZ3Nvbl9nbWFjX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xNDEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjE0MjpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBsb29uZ3Nvbl9nbWFjX3BjaV9pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xNDMtXHQuc2V0dXAgPSBsb29uZ3Nvbl9nbWFjX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz0xNjU9c3RhdGljIGludCBsb29uZ3Nvbl9nbmV0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xNzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjE3NzpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBsb29uZ3Nvbl9nbmV0X3BjaV9pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xNzgtXHQuc2V0dXAgPSBsb29uZ3Nvbl9nbmV0X2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz00OTg9c3RhdGljIGludCBsb29uZ3Nvbl9kd21hY19wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTAxLVx0c3RydWN0IHN0bW1hY19yZXNvdXJjZXMgcmVzID0ge307XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjUwMjpcdHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKmluZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUwMy1cdHN0cnVjdCBsb29uZ3Nvbl9kYXRhICpsZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUzNy1cdHBsYXQtXHUwMDNlZml4X3NvY19yZXNldCA9IGxvb25nc29uX2R3bWFjX2ZpeF9yZXNldDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NTM4Olx0cGxhdC1cdTAwM2VzdXNwZW5kID0gc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjUzOTpcdHBsYXQtXHUwMDNlcmVzdW1lID0gc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQwLVx0bGQtXHUwMDNlZGV2ID0gXHUwMDI2cGRldi1cdTAwM2VkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01NDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjU0MzpcdGluZm8gPSAoc3RydWN0IHN0bW1hY19wY2lfaW5mbyAqKWlkLVx1MDAzZWRyaXZlcl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01NDQtXHRyZXQgPSBpbmZvLVx1MDAzZXNldHVwKHBkZXYsIHBsYXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jPTE4OD1zdGF0aWMgaW50IG1vdG9yY29tbV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0xOTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzoxOTM6XHRyZXQgPSBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKGRldiwgYnNwX3ByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMTk0LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0yMDg9bW90b3Jjb21tX2RlZmF1bHRfcGxhdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI0OC1cdHBsYXQtXHUwMDNlY29yZV90eXBlXHRcdD0gRFdNQUNfQ09SRV9HTUFDNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jOjI0OTpcdHBsYXQtXHUwMDNlc3VzcGVuZFx0XHQ9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMjUwLVx0cGxhdC1cdTAwM2VyZXN1bWVcdFx0PSBtb3RvcmNvbW1fcmVzdW1lO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0xMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYzoxMjppbnQgc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0xMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTI1LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYzoyNjpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6Mjg6aW50IHN0bW1hY19wY2lfcGxhdF9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0yOS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTQzLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYzo0NDpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy00NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmgtOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuaDo5OmludCBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmJzcF9wcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuaDoxMDppbnQgc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmJzcF9wcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuaC0xMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTk6c3RydWN0IHN0bW1hY19wY2lfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjAtXHRpbnQgKCpzZXR1cCkoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTMzPXN0YXRpYyBpbnQgc3RtbWFjX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtNDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6NTA6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gc3RtbWFjX3BjaV9pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTUxLVx0LnNldHVwID0gc3RtbWFjX2RlZmF1bHRfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9NTQ9c3RhdGljIGludCBzbnBzX2dtYWM1X2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTAxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjEwMjpzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBzbnBzX2dtYWM1X3BjaV9pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwMy1cdC5zZXR1cCA9IHNucHNfZ21hYzVfZGVmYXVsdF9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xMDYtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTA3OiAqIHN0bW1hY19wY2lfcHJvYmVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xMDgtICpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTE3LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjExODpzdGF0aWMgaW50IHN0bW1hY19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTE5LVx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTIwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMjE6XHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xMjItXHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE3OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxODA6XHRwbGF0LVx1MDAzZXN1c3BlbmQgPSBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxODE6XHRwbGF0LVx1MDAzZXJlc3VtZSA9IHN0bW1hY19wY2lfcGxhdF9yZXN1bWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTgyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xODYtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTg3OiAqIHN0bW1hY19wY2lfcmVtb3ZlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTg4LSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE5MS0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxOTI6c3RhdGljIHZvaWQgc3RtbWFjX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTkzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjAzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBzdG1tYWNfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMDQ6XHR7IFBDSV9ERVZJQ0VfREFUQShTVE1NQUMsIFNUTU1BQywgXHUwMDI2c3RtbWFjX3BjaV9pbmZvKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIwNTpcdHsgUENJX0RFVklDRV9EQVRBKFNUTUlDUk8sIE1BQywgXHUwMDI2c3RtbWFjX3BjaV9pbmZvKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIwNi1cdHsgUENJX0RFVklDRV9EQVRBKFNZTk9QU1lTLCBHTUFDNV9JRCwgXHUwMDI2c25wc19nbWFjNV9wY2lfaW5mbykgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjEwPU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBzdG1tYWNfaWRfdGFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTI6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIHN0bW1hY19wY2lfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMy1cdC5uYW1lID0gU1RNTUFDX1JFU09VUkNFX05BTUUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjE0LVx0LmlkX3RhYmxlID0gc3RtbWFjX2lkX3RhYmxlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxNTpcdC5wcm9iZSA9IHN0bW1hY19wY2lfcHJvYmUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjE2Olx0LnJlbW92ZSA9IHN0bW1hY19wY2lfcmVtb3ZlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxNy1cdC5kcml2ZXIgICAgICAgICA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIyMjptb2R1bGVfcGNpX2RyaXZlcihzdG1tYWNfcGNpX2RyaXZlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjIzLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDAzOjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDExODI5CgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTAzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipSZWFjaGluZyB0aGUgU1RNTUFDIERyaXZlciBmb3IgRnV6emluZyoqCgpPa2F5LCBzbyBgc3RtbWFjYCBoYXMgYSBQQ0kgZHJpdmVyLCBgc3RtbWFjX3BjaS5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIFBDSSBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLiBTaW5jZSBpdCYjMzk7cyBQQ0ksIHRoYXQgb3BlbnMgdGhlIGRvb3IgdG8gc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6aW5nIGNhcGFiaWxpdGllcywgYXNzdW1pbmcgdGhlIGRldmljZSBpcyBlaXRoZXIgZW11bGF0ZWQgb3IgYWN0dWFsbHkgcHJlc2VudC4KClJpZ2h0LCBzeXprYWxsZXIgaGFzIGEgUENJIGZ1enplciwgYnV0LCBpdCB1c3VhbGx5IG5lZWRzIHRoZSBkZXZpY2UgdG8gYmUgcHJlc2VudCBvciBpdCBmdXp6ZXMgdGhlIFBDSSBzdWJzeXN0ZW0uIEhvd2V2ZXIsIHN5emthbGxlciAqZG9lcyogaGF2ZSBgc3l6X3BjaV9kZXZpY2VgIHdoaWNoIEkgdGhpbmsgZW11bGF0ZXMgZGV2aWNlcy4gTGV0IG1lIGRvdWJsZSBjaGVjay4uLgoKSXMgdGhlcmUgYW5vdGhlciB3YXkgdG8gcmVhY2ggdGhpcyBjb2RlIHRob3VnaD8gYHN0bW1hY2AgaXMgZm9yIERlc2lnbldhcmUgTUFDIChEV01BQykuIElzIGl0IHJlYWNoYWJsZSBpbiBRRU1VPyBRRU1VIGVtdWxhdGVzIHNldmVyYWwgbmV0d29yayBkZXZpY2VzLCBidXQgbm90IG5lY2Vzc2FyaWx5IERXTUFDLgoKVGhlIHByb21wdCBub3RlcyBhYm91dCB1bnJlYWNoYWJsZSBjb2RlIHBhdGhzIGluIHZpcnR1YWwgZW52aXJvbm1lbnRzLCBldmVuIHdpdGggZW11bGF0ZWQgaGFyZHdhcmUuIElmIGl0JiMzOTtzIG5vdCBlbXVsYXRlZCBieSBRRU1VLCBhbmQgaXQmIzM5O3Mgbm90IGEgVVNCIGdhZGdldCwgdGhlbiB3aGF0IGFyZSBteSBvcHRpb25zPyBJIG5lZWQgdG8gcmVtZW1iZXIgdGhhdCBzeXprYWxsZXIgaGFzIGBzeXpfcGNpX2RldmljZWAsIGl0IGluamVjdHMgUENJIGRldmljZXMgdmlhIGB2ZmlvYCBvciBzb21ldGhpbmcgc2ltaWxhcj8KCldhaXQsIHN5emthbGxlciAqZG9lcyogaGF2ZSBQQ0kgZnV6emluZy4gSXQmIzM5O3MgZWl0aGVyIGEgY3VzdG9tIFFFTVUgZGV2aWNlIG9yIHVzaW5nIG90aGVyIG1lY2hhbmlzbXMgdG8gZW11bGF0ZSB0aGVtLiBObywgc3l6a2FsbGVyIHVzZXMgYHN5el9nZW5ldGxpbmtgIGV0Yy4KCkxldCYjMzk7cyBjaGVjayBpZiBzeXprYWxsZXIgY2FuIHJlYWNoIGBzdG1tYWNgLiBUaGVyZSYjMzk7cyBhIGNvbW1pdCwgc28gbGV0IG1lIHJlYWQgdGhhdDogQWgsIHRoZSBjb21taXQgc2F5cyAmIzM0O3N5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldy4mIzM0OyBJdCBjb3VsZCBtZWFuIHN5emthbGxlciBmb3VuZCBhIGJ1ZywgYnV0IGl0IGlzIG5vdCBndWFyYW50ZWVkIQoKSSBoYXZlIHRvIGxvb2sgaW50byB0aGlzIG1vcmUuIElzIGBzdG1tYWNgIGEgcGxhdGZvcm0gZHJpdmVyPyBJZiBzbywgaXQgbmVlZHMgYSBkZXZpY2UgdHJlZSBub2RlLiBJdCYjMzk7cyBoZWF2aWx5IHVzZWQgb24gQVJNIFNvQ3MuIElzIGl0IGEgUENJIGRyaXZlcj8gSXQgY2FuIGJlIHByb2JlZCBpZiBhIFBDSSBkZXZpY2Ugd2l0aCB0aGUgbWF0Y2hpbmcgdmVuZG9yL2RldmljZSBJRCBpcyBwcmVzZW50LiBEb2VzIFFFTVUgZW11bGF0ZSBhbnkgU1RNTUFDIFBDSSBkZXZpY2U/IExldCBtZSBqdXN0IGFzc3VtZSB0aGF0IHN5emthbGxlciBjYW4mIzM5O3QgcmVhY2ggaXQgdW5sZXNzIGl0IGlzIGVtdWxhdGVkLgoKV2FpdCwgZGlkIHN5emthbGxlciBhZGQgUENJIGZ1enppbmcgdmlhIGB2ZmlvYCBvciBhIHZpcnR1YWwgUENJIGRldmljZT8gU3l6a2FsbGVyIGhhcyBgdmhjaWAgZm9yIFVTQi4gRm9yIFBDSSwgdGhlcmUgaXMgbm8gZ2VuZXJpYyBzb2Z0d2FyZSBlbXVsYXRvciB1cHN0cmVhbSwgZXhjZXB0IGlmIHN5emthbGxlciB1c2VzIGEgY3VzdG9tIFFFTVUgd2l0aCBhIGZ1enplciBQQ0kgZGV2aWNlLiBUaGF0IG1hdGNoZXMgdGhlIHByb21wdCwgYWJvdXQgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuIERvZXMgUUVNVSBlbXVsYXRlIGBzdG1tYWNgPwoKTGV0JiMzOTtzIGRvIHNvbWUgZGlnZ2luZy4gSXMgdGhlcmUgYSB2aXJ0dWFsIGRldmljZSBmb3IgaXQ/IE1heWJlIGl0IGlzIHVzZWQgb24gc29tZSBBUk0gYm9hcmRzIGVtdWxhdGVkIGJ5IFFFTVU/IFFFTVUgaGFzIGVtdWxhdGVkIGRldmljZXMgZm9yIEFSTS4KCldhaXQsIGBzdG1tYWNgIGlzIGZvciBTeW5vcHN5cyBEZXNpZ25XYXJlIE1BQyAoRFdNQUMpLiBRRU1VIGhhcyBgaHcvbmV0L2Rlc2lnbndhcmUuY2AhIE9rYXksIG5vdyB3ZSYjMzk7cmUgZ2V0dGluZyBzb21ld2hlcmUuIExldCBtZSBzZWUgaG93IGBzdG1tYWNgIG1hdGNoZXMgdXAgd2l0aCBgZGVzaWdud2FyZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMDM6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkZXNpZ253YXJlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDAzOjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzNTcyCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogNjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBRRU1VJiMzOTtzIEV0aGVybmV0IEVtdWxhdGlvbioqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgUUVNVSBoYW5kbGVzIHRoaXMgcGFydGljdWxhciBFdGhlcm5ldCBkZXZpY2UuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gc2VhcmNoIHRoZSBRRU1VIHNvdXJjZSBjb2RlIGZvciAmIzM0O2R3bWFjLCYjMzQ7IHRoYXQmIzM5O3MgdGhlIGxpa2VseSBzdGFydGluZyBwb2ludC4gSSBhbHJlYWR5IGtub3cgdGhhdCB0aGUgZHJpdmVyIGlzIGBzdG1tYWNgLiBOb3csIHRoYXQgbmFtZSByaW5ncyBhIGJlbGwsIEkmIzM5O20gcHJldHR5IHN1cmUgdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcyB3aWxsIGJlIG5hbWVkIHNvbWV0aGluZyBsaWtlIGBkd21hYy0qLmNgLCBJJiMzOTtsbCBmb2N1cyBteSBzZWFyY2ggdGhlcmUuIFRoZSBrZXkgaXMgZ29pbmcgdG8gYmUgZGV0ZXJtaW5pbmcgaG93IFFFTVUgcmVwcmVzZW50cyB0aGUgZGV2aWNlLiBJIG5lZWQgdG8gY2hlY2sgaWYgdGhlcmUmIzM5O3MgYSBQQ0kgSUQgYXNzb2NpYXRlZCB3aXRoIHRoZSBlbXVsYXRlZCBkZXZpY2UuIEFsdGVybmF0aXZlbHksIGl0IG1pZ2h0IGJlIG1vZGVsbGVkIGFzIGEgcGxhdGZvcm0gZGV2aWNlLiBJIG5lZWQgdG8gZmlndXJlIHRoaXMgb3V0IHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgZW11bGF0aW9uIGFyY2hpdGVjdHVyZS4gSSYjMzk7bGwgc3RhcnQgd2l0aCB0aGUgUENJIElELgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDAzOjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0RXTUFDJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDEwMTMgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NDI9aWYgU1RNTUFDX1BMQVRGT1JNXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0NDpjb25maWcgRFdNQUNfRFdDX1FPU19FVEhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDUtXHR0cmlzdGF0ZSBcJiMzNDtTdXBwb3J0IGZvciBzbnBzLGR3Yy1xb3MtZXRoZXJuZXQudHh0IERUIGJpbmRpbmcuXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy01MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NTI6Y29uZmlnIERXTUFDX0dFTkVSSUNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NTM6XHR0cmlzdGF0ZSBcJiMzNDtHZW5lcmljIGRyaXZlciBmb3IgRFdNQUNcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNTQtXHRkZWZhdWx0IFNUTU1BQ19QTEFURk9STVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy01NS1cdGhlbHBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NTY6XHQgIEdlbmVyaWMgRFdNQUMgZHJpdmVyIGZvciBwbGF0Zm9ybXMgdGhhdCBkb24mIzM5O3QgcmVxdWlyZSBhbnlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNTctXHQgIHBsYXRmb3JtIHNwZWNpZmljIGNvZGUgdG8gZnVuY3Rpb24gb3IgaXMgdXNpbmcgcGxhdGZvcm1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTU5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo2MDpjb25maWcgRFdNQUNfQU5BUklPTlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy02MS1cdHRyaXN0YXRlIFwmIzM0O0FkYXB0cnVtIEFuYXJpb24gR01BQyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy02OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Njk6Y29uZmlnIERXTUFDX0VJQzc3MDBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNzAtXHR0cmlzdGF0ZSBcJiMzNDtTdXBwb3J0IGZvciBFc3dpbiBlaWM3NzAwIGV0aGVybmV0IGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjc4OmNvbmZpZyBEV01BQ19JTkdFTklDXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTc5LVx0dHJpc3RhdGUgXCYjMzQ7SW5nZW5pYyBNQUMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjkwOmNvbmZpZyBEV01BQ19JUFE4MDZYXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjkxOlx0dHJpc3RhdGUgXCYjMzQ7UUNBIElQUTgwNnggRFdNQUMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05Mi1cdGRlZmF1bHQgQVJDSF9RQ09NXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05NS1cdGhlbHBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6OTY6XHQgIFN1cHBvcnQgZm9yIFFDQSBJUFE4MDZYIERXTUFDIEV0aGVybmV0LlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05Ny1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEwNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTA2OmNvbmZpZyBEV01BQ19MUEMxOFhYXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjEwNzpcdHRyaXN0YXRlIFwmIzM0O05YUCBMUEMxOHh4LzQzeHggRFdNQUMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMDgtXHRkZWZhdWx0IEFSQ0hfTFBDMThYWFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTExLVx0aGVscFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMTI6XHQgIFN1cHBvcnQgZm9yIE5YUCBMUEMxOHh4LzQzeHggRFdNQUMgRXRoZXJuZXQuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTE0OmNvbmZpZyBEV01BQ19NRURJQVRFS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMTUtXHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDI3eHggR01BQyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjEyMjpjb25maWcgRFdNQUNfTUVTT05cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTIzLVx0dHJpc3RhdGUgXCYjMzQ7QW1sb2dpYyBNZXNvbiBkd21hYyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjEzMzpjb25maWcgRFdNQUNfTlVWT1RPTlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMzQtXHR0cmlzdGF0ZSBcJiMzNDtOdXZvdG9uIE1BMzUgZHdtYWMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxNDU6Y29uZmlnIERXTUFDX1FDT01fRVRIUU9TXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE0Ni1cdHRyaXN0YXRlIFwmIzM0O1F1YWxjb21tIEVUSFFPUyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE1NTpjb25maWcgRFdNQUNfUkVORVNBU19HQkVUSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNTYtXHR0cmlzdGF0ZSBcJiMzNDtSZW5lc2FzIFJaL1YySChQKSBHQkVUSCBhbmQgUlovVDJILCBSWi9OMkggR01BQyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE2ODpjb25maWcgRFdNQUNfUk9DS0NISVBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTY5LVx0dHJpc3RhdGUgXCYjMzQ7Um9ja2NoaXAgZHdtYWMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTc4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxNzk6Y29uZmlnIERXTUFDX1JaTjFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTgwLVx0dHJpc3RhdGUgXCYjMzQ7UmVuZXNhcyBSWi9OMSBkd21hYyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xOTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE5MTpjb25maWcgRFdNQUNfUzMyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5Mi1cdHRyaXN0YXRlIFwmIzM0O05YUCBTMzJHL1MzMlIgR01BQyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwMzpjb25maWcgRFdNQUNfU09DRlBHQVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMDQtXHR0cmlzdGF0ZSBcJiMzNDtTT0NGUEdBIGR3bWFjIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjE4OmNvbmZpZyBEV01BQ19TT1BIR09cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjE5LVx0dHJpc3RhdGUgXCYjMzQ7U29waGdvIGR3bWFjIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIyOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjI5OmNvbmZpZyBEV01BQ19TUEFDRU1JVFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMzAtXHR0cmlzdGF0ZSBcJiMzNDtTcGFjZW1pdCBkd21hYyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI0MTpjb25maWcgRFdNQUNfU1RBUkZJVkVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjQyLVx0dHJpc3RhdGUgXCYjMzQ7U3RhckZpdmUgZHdtYWMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjUyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyNTM6Y29uZmlnIERXTUFDX1NUSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNTQtXHR0cmlzdGF0ZSBcJiMzNDtTVGkgR01BQyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI2NTpjb25maWcgRFdNQUNfU1RNMzJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjY2Olx0dHJpc3RhdGUgXCYjMzQ7U1RNMzIgRFdNQUMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjctXHRkZWZhdWx0IEFSQ0hfU1RNMzJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI3Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjc3OmNvbmZpZyBEV01BQ19TVU5YSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzgtXHR0cmlzdGF0ZSBcJiMzNDtBbGx3aW5uZXIgR01BQyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yODctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI4ODpjb25maWcgRFdNQUNfU1VOOElcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjg5LVx0dHJpc3RhdGUgXCYjMzQ7QWxsd2lubmVyIHN1bjhpIEdNQUMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjk5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMDA6Y29uZmlnIERXTUFDX1NVTjU1SVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMDEtXHR0cmlzdGF0ZSBcJiMzNDtBbGx3aW5uZXIgc3VuNTVpIEdNQUMyMDAgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMTI6Y29uZmlnIERXTUFDX1RIRUFEXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMxMy1cdHRyaXN0YXRlIFwmIzM0O1QtSEVBRCBkd21hYyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMyMjpjb25maWcgRFdNQUNfSU1YOFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMjM6XHR0cmlzdGF0ZSBcJiMzNDtOWFAgSU1YOCBEV01BQyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMyNC1cdGRlZmF1bHQgQVJDSF9NWENcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzM0OmNvbmZpZyBEV01BQ19JTlRFTF9QTEFUXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzNS1cdHRyaXN0YXRlIFwmIzM0O0ludGVsIGR3bWFjIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM0My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzQ0OmNvbmZpZyBEV01BQ19MT09OR1NPTjFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzQ1LVx0dHJpc3RhdGUgXCYjMzQ7TG9vbmdzb24xIEdNQUMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNTU6Y29uZmlnIERXTUFDX1RFR1JBXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1Ni1cdHRyaXN0YXRlIFwmIzM0O05WSURJQSBUZWdyYSBNR0JFIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzY0OmNvbmZpZyBEV01BQ19WSVNDT05USVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNjU6XHR0cmlzdGF0ZSBcJiMzNDtUb3NoaWJhIFZpc2NvbnRpIERXTUFDIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzY2LVx0ZGVmYXVsdCBBUkNIX1ZJU0NPTlRJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzM9Y29uZmlnIFNUTU1BQ19MSUJQQ0lcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzc4OmNvbmZpZyBEV01BQ19JTlRFTFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzktXHR0cmlzdGF0ZSBcJiMzNDtJbnRlbCBHTUFDIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM4Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzg4OmNvbmZpZyBEV01BQ19MT09OR1NPTlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozODk6XHR0cmlzdGF0ZSBcJiMzNDtMb29uZ3NvbiBQQ0kgRFdNQUMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTAtXHRkZWZhdWx0IE1BQ0hfTE9PTkdTT042NFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzk3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozOTg6Y29uZmlnIERXTUFDX01PVE9SQ09NTVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozOTk6XHR0cmlzdGF0ZSBcJiMzNDtNb3RvcmNvbW0gUENJIERXTUFDIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDAwLVx0ZGVwZW5kcyBvbiBQQ0lcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwMy1cdGhlbHBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NDA0Olx0ICBUaGlzIGVuYWJsZXMgZ2x1ZSBkcml2ZXIgZm9yIE1vdG9yY29tbSBEV01BQy1iYXNlZCBQQ0kgRXRoZXJuZXRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA1LVx0ICBjb250cm9sbGVycy4gQ3VycmVudGx5IG9ubHkgWVQ2ODAxIGlzIHN1cHBvcnRlZC5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT0xNT1vYmotJChDT05GSUdfU1RNTUFDX1BMQVRGT1JNKVx0JiM0Mzs9IHN0bW1hYy1wbGF0Zm9ybS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxNjpvYmotJChDT05GSUdfRFdNQUNfQU5BUklPTilcdCYjNDM7PSBkd21hYy1hbmFyaW9uLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjE3Om9iai0kKENPTkZJR19EV01BQ19FSUM3NzAwKVx0JiM0Mzs9IGR3bWFjLWVpYzc3MDAub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTg6b2JqLSQoQ09ORklHX0RXTUFDX0lOR0VOSUMpXHQmIzQzOz0gZHdtYWMtaW5nZW5pYy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxOTpvYmotJChDT05GSUdfRFdNQUNfSVBRODA2WClcdCYjNDM7PSBkd21hYy1pcHE4MDZ4Lm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjIwOm9iai0kKENPTkZJR19EV01BQ19MUEMxOFhYKVx0JiM0Mzs9IGR3bWFjLWxwYzE4eHgub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MjE6b2JqLSQoQ09ORklHX0RXTUFDX01FRElBVEVLKVx0JiM0Mzs9IGR3bWFjLW1lZGlhdGVrLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjIyOm9iai0kKENPTkZJR19EV01BQ19NRVNPTilcdCYjNDM7PSBkd21hYy1tZXNvbi5vIGR3bWFjLW1lc29uOGIub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MjM6b2JqLSQoQ09ORklHX0RXTUFDX05VVk9UT04pXHQmIzQzOz0gZHdtYWMtbnV2b3Rvbi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyNDpvYmotJChDT05GSUdfRFdNQUNfUUNPTV9FVEhRT1MpXHQmIzQzOz0gZHdtYWMtcWNvbS1ldGhxb3Mub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MjU6b2JqLSQoQ09ORklHX0RXTUFDX1JFTkVTQVNfR0JFVEgpICYjNDM7PSBkd21hYy1yZW5lc2FzLWdiZXRoLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjI2Om9iai0kKENPTkZJR19EV01BQ19ST0NLQ0hJUClcdCYjNDM7PSBkd21hYy1yay5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyNzpvYmotJChDT05GSUdfRFdNQUNfUlpOMSlcdCYjNDM7PSBkd21hYy1yem4xLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjI4Om9iai0kKENPTkZJR19EV01BQ19TMzIpXHRcdCYjNDM7PSBkd21hYy1zMzIub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6Mjk6b2JqLSQoQ09ORklHX0RXTUFDX1NPQ0ZQR0EpXHQmIzQzOz0gZHdtYWMtYWx0ci1zb2NmcGdhLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjMwOm9iai0kKENPTkZJR19EV01BQ19TT1BIR08pXHQmIzQzOz0gZHdtYWMtc29waGdvLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjMxOm9iai0kKENPTkZJR19EV01BQ19TUEFDRU1JVClcdCYjNDM7PSBkd21hYy1zcGFjZW1pdC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTozMjpvYmotJChDT05GSUdfRFdNQUNfU1RBUkZJVkUpXHQmIzQzOz0gZHdtYWMtc3RhcmZpdmUub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MzM6b2JqLSQoQ09ORklHX0RXTUFDX1NUSSlcdFx0JiM0Mzs9IGR3bWFjLXN0aS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTozNDpvYmotJChDT05GSUdfRFdNQUNfU1RNMzIpXHQmIzQzOz0gZHdtYWMtc3RtMzIub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MzU6b2JqLSQoQ09ORklHX0RXTUFDX1NVTlhJKVx0JiM0Mzs9IGR3bWFjLXN1bnhpLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjM2Om9iai0kKENPTkZJR19EV01BQ19TVU44SSlcdCYjNDM7PSBkd21hYy1zdW44aS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTozNzpvYmotJChDT05GSUdfRFdNQUNfU1VONTVJKVx0JiM0Mzs9IGR3bWFjLXN1bjU1aS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTozODpvYmotJChDT05GSUdfRFdNQUNfVEhFQUQpXHQmIzQzOz0gZHdtYWMtdGhlYWQub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6Mzk6b2JqLSQoQ09ORklHX0RXTUFDX0RXQ19RT1NfRVRIKVx0JiM0Mzs9IGR3bWFjLWR3Yy1xb3MtZXRoLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQwOm9iai0kKENPTkZJR19EV01BQ19JTlRFTF9QTEFUKVx0JiM0Mzs9IGR3bWFjLWludGVsLXBsYXQub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDE6b2JqLSQoQ09ORklHX0RXTUFDX0xPT05HU09OMSlcdCYjNDM7PSBkd21hYy1sb29uZ3NvbjEub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDI6b2JqLSQoQ09ORklHX0RXTUFDX0dFTkVSSUMpXHQmIzQzOz0gZHdtYWMtZ2VuZXJpYy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo0MzpvYmotJChDT05GSUdfRFdNQUNfSU1YOClcdCYjNDM7PSBkd21hYy1pbXgub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDQ6b2JqLSQoQ09ORklHX0RXTUFDX1RFR1JBKVx0JiM0Mzs9IGR3bWFjLXRlZ3JhLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQ1Om9iai0kKENPTkZJR19EV01BQ19WSVNDT05USSlcdCYjNDM7PSBkd21hYy12aXNjb250aS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS00Ni1zdG1tYWMtcGxhdGZvcm0tb2Jqczo9IHN0bW1hY19wbGF0Zm9ybS5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9NTA9b2JqLSQoQ09ORklHX1NUTU1BQ19QQ0kpXHQmIzQzOz0gc3RtbWFjLXBjaS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo1MTpvYmotJChDT05GSUdfRFdNQUNfSU5URUwpXHQmIzQzOz0gZHdtYWMtaW50ZWwub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTI6b2JqLSQoQ09ORklHX0RXTUFDX0xPT05HU09OKVx0JiM0Mzs9IGR3bWFjLWxvb25nc29uLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjUzOm9iai0kKENPTkZJR19EV01BQ19NT1RPUkNPTU0pXHQmIzQzOz0gZHdtYWMtbW90b3Jjb21tLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTU0LXN0bW1hYy1wY2ktb2Jqczo9IHN0bW1hY19wY2kub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6Mjk6I2RlZmluZSBEV01BQ19TTlBTVkVSXHRHRU5NQVNLX1UzMig3LCAwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MzA6I2RlZmluZSBEV01BQ19VU0VSVkVSXHRHRU5NQVNLX1UzMigxNSwgOClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMzItLyogU3lub3BzeXMgQ29yZSB2ZXJzaW9ucyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MzM6I2RlZmluZVx0RFdNQUNfQ09SRV8zXzQwXHRcdDB4MzRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM0OiNkZWZpbmVcdERXTUFDX0NPUkVfM181MFx0XHQweDM1XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDozNTojZGVmaW5lXHREV01BQ19DT1JFXzNfNzBcdFx0MHgzN1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MzY6I2RlZmluZVx0RFdNQUNfQ09SRV80XzAwXHRcdDB4NDBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM3OiNkZWZpbmUgRFdNQUNfQ09SRV80XzEwXHRcdDB4NDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM4OiNkZWZpbmUgRFdNQUNfQ09SRV81XzAwXHRcdDB4NTBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM5OiNkZWZpbmUgRFdNQUNfQ09SRV81XzEwXHRcdDB4NTFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjQwOiNkZWZpbmUgRFdNQUNfQ09SRV81XzIwXHRcdDB4NTJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTQxLSNkZWZpbmUgRFdYR01BQ19DT1JFXzJfMTBcdDB4MjFcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaD00OT1zdGF0aWMgaW5saW5lIGJvb2wgZHdtYWNfaXNfeG1hYyhlbnVtIGR3bWFjX2NvcmVfdHlwZSBjb3JlX3R5cGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC01MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo1MTpcdHJldHVybiBjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNCB8fCBjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTUyLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kZXNjcy5oLTMtICBIZWFkZXIgRmlsZSB0byBkZXNjcmliZSB0aGUgRE1BIGRlc2NyaXB0b3JzIGFuZCByZWxhdGVkIGRlZmluaXRpb25zLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZGVzY3MuaDo0OiAgVGhpcyBpcyBmb3IgRFdNQUMxMDAgYW5kIDEwMDAgY29yZXMuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kZXNjcy5oLTUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTItLypcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzozOiAqIEFkYXB0cnVtIEFuYXJpb24gRFdNQUMgZ2x1ZSBsYXllclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9MTMzPW1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoYW5hcmlvbl9kd21hY19kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxMzU6TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O0FkYXB0cnVtIEFuYXJpb24gRFdNQUMgc3BlY2lmaWMgZ2x1ZSBsYXllclwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTM2LU1PRFVMRV9BVVRIT1IoXCYjMzQ7QWxleGFuZHJ1IEdhZ25pdWMgXHUwMDNjbXIubnVrZS5tZUBnbWFpbC5jb21cdTAwM2VcJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MzY9c3RhdGljIGludCBkd2NfZXRoX2R3bWFjX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtODctXHQvKiBkd2MtcW9zIG5lZWRzIEdNQUM0LCBBQUwsIFRTTyBhbmQgUE1UICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjg4Olx0cGxhdF9kYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtODktXHRwbGF0X2RhdC1cdTAwM2VkbWFfY2ZnLVx1MDAzZWFhbCA9IDE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZ2VuZXJpYy5jLTEtLypcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYzoyOiAqIEdlbmVyaWMgRFdNQUMgcGxhdGZvcm0gZHJpdmVyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1nZW5lcmljLmMtMy0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlteC5jLTItLypcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlteC5jOjM6ICogZHdtYWMtaW14LmMgLSBEV01BQyBTcGVjaWZpYyBHbHVlIGxheWVyIGZvciBOWFAgaW14OFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlteC5jPTQwMz1NT0RVTEVfQVVUSE9SKFwmIzM0O05YUFwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYzo0MDQ6TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O05YUCBpbXg4IERXTUFDIFNwZWNpZmljIEdsdWUgbGF5ZXJcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmMtNDA1LU1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTCB2MlwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW5nZW5pYy5jLTItLypcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYzozOiAqIGR3bWFjLWluZ2VuaWMuYyAtIEluZ2VuaWMgU29DcyBEV01BQyBzcGVjaWZpYyBnbHVlIGxheWVyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYz0yODI9TU9EVUxFX0FVVEhPUihcJiMzNDvlkajnkLDmnbAgKFpob3UgWWFuamllKSBcdTAwM2N6aG91eWFuamllQHdhbnllZXRlY2guY29tXHUwMDNlXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYzoyODM6TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O0luZ2VuaWMgU29DcyBEV01BQyBzcGVjaWZpYyBnbHVlIGxheWVyXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYy0yODQtTU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMIHYyXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmMtMS0vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwtcGxhdC5jOjI6LyogSW50ZWwgRFdNQUMgcGxhdGZvcm0gZHJpdmVyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmMtMy0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYz0xNTA9TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMIHYyXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYzoxNTE6TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O0ludGVsIERXTUFDIHBsYXRmb3JtIGRyaXZlclwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz01NjU9c3RhdGljIHZvaWQgY29tbW9uX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy01NjgtXHRwbGF0LVx1MDAzZWNsa19jc3IgPSBTVE1NQUNfQ1NSXzIwXzM1TTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NTY5Olx0cGxhdC1cdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTU3MC1cdHBsYXQtXHUwMDNlZm9yY2Vfc2ZfZG1hX21vZGUgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9NTg1PXN0YXRpYyBpbnQgaW50ZWxfbWdiZV9jb21tb25fZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTU5NS1cdHBsYXQtXHUwMDNlY2xrX2NzciA9IFNUTU1BQ19DU1JfMjUwXzMwME07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjU5NjpcdHBsYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNTk3LVx0cGxhdC1cdTAwM2Vmb3JjZV9zZl9kbWFfbW9kZSA9IDA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuaC0yLS8qIENvcHlyaWdodCAoYykgMjAyMCwgSW50ZWwgQ29ycG9yYXRpb25cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmg6MzogKiBEV01BQyBJbnRlbCBoZWFkZXIgZmlsZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuaC00LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuaC01LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuaDo2OiNpZm5kZWYgX19EV01BQ19JTlRFTF9IX19cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmg6NzojZGVmaW5lIF9fRFdNQUNfSU5URUxfSF9fXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5oLTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuaC04MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmg6ODE6I2VuZGlmIC8qIF9fRFdNQUNfSU5URUxfSF9fICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jPTM3ND1zdGF0aWMgaW50IGlwcTgwNnhfZ21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlwcTgwNnguYy00NzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmM6NDc2Olx0cGxhdF9kYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTQ3Ny1cdHBsYXRfZGF0LVx1MDAzZWJzcF9wcml2ID0gZ21hYztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmM9NTA4PU1PRFVMRV9BVVRIT1IoXCYjMzQ7TWF0aGlldSBPbGl2YXJpIFx1MDAzY21hdGhpZXVAY29kZWF1cm9yYS5vcmdcdTAwM2VcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jOjUwOTpNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7UXVhbGNvbW0gQXRoZXJvcyBJUFE4MDZ4IERXTUFDIHNwZWNpZmljIGdsdWUgbGF5ZXJcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTUxMC1NT0RVTEVfTElDRU5TRShcJiMzNDtEdWFsIEJTRC9HUExcJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNzItI2RlZmluZSBQQ0lfREVWSUNFX0lEX0xPT05HU09OX0dORVRcdDB4N2ExM1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo3MzojZGVmaW5lIERXTUFDX0NPUkVfTVVMVElDSEFOX1YxXHQweDEwXHQvKiBMb29uZ3NvbiBjdXN0b20gSUQgMHgxMCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo3NDojZGVmaW5lIERXTUFDX0NPUkVfTVVMVElDSEFOX1YyXHQweDEyXHQvKiBMb29uZ3NvbiBjdXN0b20gSUQgMHgxMiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy03NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTg2PXN0YXRpYyB2b2lkIGxvb25nc29uX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTk1LVx0cGxhdC1cdTAwM2VjbGtfY3NyID0gU1RNTUFDX0NTUl8xMDBfMTUwTTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6OTY6XHRwbGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtOTctXHRwbGF0LVx1MDAzZWZvcmNlX3NmX2RtYV9tb2RlID0gdHJ1ZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTEwOC1cdHN3aXRjaCAobGQtXHUwMDNlbG9vbmdzb25faWQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6MTA5Olx0Y2FzZSBEV01BQ19DT1JFX01VTFRJQ0hBTl9WMTpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTEwLVx0XHRsZC1cdTAwM2VtdWx0aWNoYW4gPSAxO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTIwLVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6MTIxOlx0Y2FzZSBEV01BQ19DT1JFX01VTFRJQ0hBTl9WMjpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTIyLVx0XHRsZC1cdTAwM2VtdWx0aWNoYW4gPSAxO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MzA2PXN0YXRpYyBpbnQgbG9vbmdzb25fZHdtYWNfc2V0dXAodm9pZCAqYXByaXYsIHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKm1hYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTMyOC1cdGlmIChsZC1cdTAwM2VtdWx0aWNoYW4pIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6MzI5Olx0XHRwcml2LVx1MDAzZXN5bm9wc3lzX2lkID0gRFdNQUNfQ09SRV8zXzcwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0zMzAtXHRcdCpkbWEgPSBkd21hYzEwMDBfZG1hX29wcztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTQ2Nj1zdGF0aWMgaW50IGxvb25nc29uX2R3bWFjX2FjcGlfY29uZmlnKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNDc3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo0Nzg6LyogTG9vbmdzb24mIzM5O3MgRFdNQUMgZGV2aWNlIG1heSB0YWtlIG5lYXJseSB0d28gc2Vjb25kcyB0byBjb21wbGV0ZSBETUEgcmVzZXQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNDc5LXN0YXRpYyBpbnQgbG9vbmdzb25fZHdtYWNfZml4X3Jlc2V0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTYxND1tb2R1bGVfcGNpX2RyaXZlcihsb29uZ3Nvbl9kd21hY19kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy02MTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjYxNjpNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7TG9vbmdzb24gRFdNQUMgUENJIGRyaXZlclwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTYxNy1NT0RVTEVfQVVUSE9SKFwmIzM0O1FpbmcgWmhhbmcgXHUwMDNjemhhbmdxaW5nQGxvb25nc29uLmNuXHUwMDNlXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYy0yLS8qXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYzozOiAqIExvb25nc29uLTEgRFdNQUMgZ2x1ZSBsYXllclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uMS5jPTIzOD1NT0RVTEVfQVVUSE9SKFwmIzM0O0tlZ3VhbmcgWmhhbmcgXHUwMDNja2VndWFuZy56aGFuZ0BnbWFpbC5jb21cdTAwM2VcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmM6MjM5Ok1PRFVMRV9ERVNDUklQVElPTihcJiMzNDtMb29uZ3Nvbi0xIERXTUFDIGdsdWUgbGF5ZXJcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmMtMjQwLU1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTFwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jLTEtLypcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYzoyOiAqIERXTUFDIGdsdWUgZm9yIE5YUCBMUEMxOHh4L0xQQzQzeHggRXRoZXJuZXRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy0zLSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jPTQyPXN0YXRpYyBpbnQgbHBjMTh4eF9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy01Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYzo1NzpcdHBsYXRfZGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy01OC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmM9ODg9TU9EVUxFX0FVVEhPUihcJiMzNDtKb2FjaGltIEVhc3R3b29kIFx1MDAzY21hbmFiaWFuQGdtYWlsLmNvbVx1MDAzZVwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmM6ODk6TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O0RXTUFDIGdsdWUgZm9yIExQQzE4eHgvNDN4eCBFdGhlcm5ldFwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmMtOTAtTU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMIHYyXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jPTY4Mz1NT0RVTEVfQVVUSE9SKFwmIzM0O0JpYW8gSHVhbmcgXHUwMDNjYmlhby5odWFuZ0BtZWRpYXRlay5jb21cdTAwM2VcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYzo2ODQ6TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O01lZGlhVGVrIERXTUFDIHNwZWNpZmljIGdsdWUgbGF5ZXJcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYy02ODUtTU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMIHYyXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jLTItLypcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmM6MzogKiBBbWxvZ2ljIE1lc29uNiBhbmQgTWVzb244IERXTUFDIGdsdWUgbGF5ZXJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmM9OTM9TU9EVUxFX0FVVEhPUihcJiMzNDtCZW5pYW1pbm8gR2FsdmFuaSBcdTAwM2NiLmdhbHZhbmlAZ21haWwuY29tXHUwMDNlXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmM6OTQ6TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O0FtbG9naWMgTWVzb242IGFuZCBNZXNvbjggRFdNQUMgZ2x1ZSBsYXllclwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jLTk1LU1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTCB2MlwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb244Yi5jLTItLypcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYzozOiAqIEFtbG9naWMgTWVzb244YiwgTWVzb244bTIgYW5kIEdYQkIgRFdNQUMgZ2x1ZSBsYXllclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb244Yi5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmM9NTE4PU1PRFVMRV9BVVRIT1IoXCYjMzQ7TWFydGluIEJsdW1lbnN0aW5nbCBcdTAwM2NtYXJ0aW4uYmx1bWVuc3RpbmdsQGdvb2dsZW1haWwuY29tXHUwMDNlXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYzo1MTk6TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O0FtbG9naWMgTWVzb244YiwgTWVzb244bTIgYW5kIEdYQkIgRFdNQUMgZ2x1ZSBsYXllclwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmMtNTIwLU1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTCB2MlwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMi0vKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MzogKiBEV01BQyBnbHVlIGRyaXZlciBmb3IgTW90b3Jjb21tIFBDSSBFdGhlcm5ldCBjb250cm9sbGVyc1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jPTIwOD1tb3RvcmNvbW1fZGVmYXVsdF9wbGF0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMjQ3LVx0cGxhdC1cdTAwM2VjbGtfcmVmX3JhdGVcdD0gMTI1MDAwMDAwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MjQ4Olx0cGxhdC1cdTAwM2Vjb3JlX3R5cGVcdFx0PSBEV01BQ19DT1JFX0dNQUM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMjQ5LVx0cGxhdC1cdTAwM2VzdXNwZW5kXHRcdD0gc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MzgzPW1vZHVsZV9wY2lfZHJpdmVyKGR3bWFjX21vdG9yY29tbV9wY2lfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTM4NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jOjM4NTpNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7RFdNQUMgZ2x1ZSBkcml2ZXIgZm9yIE1vdG9yY29tbSBQQ0kgRXRoZXJuZXQgY29udHJvbGxlcnNcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMzg2LU1PRFVMRV9BVVRIT1IoXCYjMzQ7WWFvIFppIFx1MDAzY21lQHppeWFvLmNjXHUwMDNlXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmMtMi0vKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbnV2b3Rvbi5jOjM6ICogTnV2b3RvbiBEV01BQyBzcGVjaWZpYyBnbHVlIGxheWVyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYz0xMzY9TU9EVUxFX0FVVEhPUihcJiMzNDtKb2V5IEx1IFx1MDAzY2EwOTg3MjAzMDY5QGdtYWlsLmNvbVx1MDAzZVwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmM6MTM3Ok1PRFVMRV9ERVNDUklQVElPTihcJiMzNDtOdXZvdG9uIERXTUFDIHNwZWNpZmljIGdsdWUgbGF5ZXJcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbnV2b3Rvbi5jLTEzOC1NT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmM9Njg0PXN0YXRpYyBpbnQgcWNvbV9ldGhxb3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1xY29tLWV0aHFvcy5jLTc3Ni1cdHBsYXRfZGF0LVx1MDAzZXB0cF9jbGtfZnJlcV9jb25maWcgPSBldGhxb3NfcHRwX2Nsa19mcmVxX2NvbmZpZztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmM6Nzc3Olx0cGxhdF9kYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9HTUFDNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmMtNzc4LVx0aWYgKGV0aHFvcy1cdTAwM2VoYXNfZW1hY19nZV8zKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYy0yLS8qXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmM6MzogKiBkd21hYy1yZW5lc2FzLWdiZXRoLmMgLSBEV01BQyBTcGVjaWZpYyBHbHVlIGxheWVyIGZvciBSZW5lc2FzIEdCRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYz0yMzQ9TU9EVUxFX0FVVEhPUihcJiMzNDtMYWQgUHJhYmhha2FyIFx1MDAzY3ByYWJoYWthci5tYWhhZGV2LWxhZC5yakBicC5yZW5lc2FzLmNvbVx1MDAzZVwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmM6MjM1Ok1PRFVMRV9ERVNDUklQVElPTihcJiMzNDtSZW5lc2FzIEdCRVRIIERXTUFDIFNwZWNpZmljIEdsdWUgbGF5ZXJcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmVuZXNhcy1nYmV0aC5jLTIzNi1NT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmMtMi0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmM6MzogKiBET0M6IGR3bWFjLXJrLmMgLSBSb2NrY2hpcCBSSzMyODggRFdNQUMgc3BlY2lmaWMgZ2x1ZSBsYXllclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYy00LSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYz0xNTY4PXN0YXRpYyBpbnQgcmtfZ21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmMtMTU5MS1cdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYzoxNTkyOlx0aWYgKHBsYXRfZGF0LVx1MDAzZWNvcmVfdHlwZSAhPSBEV01BQ19DT1JFX0dNQUM0KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jOjE1OTM6XHRcdHBsYXRfZGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmMtMTU5NC1cdFx0cGxhdF9kYXQtXHUwMDNlcnhfZmlmb19zaXplID0gNDA5Njtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jPTE2NDc9TU9EVUxFX0FVVEhPUihcJiMzNDtDaGVuLVpoaSAoUm9nZXIgQ2hlbikgXHUwMDNjcm9nZXIuY2hlbkByb2NrLWNoaXBzLmNvbVx1MDAzZVwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jOjE2NDg6TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O1JvY2tjaGlwIFJLMzI4OCBEV01BQyBzcGVjaWZpYyBnbHVlIGxheWVyXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmMtMTY0OS1NT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYz05MT1NT0RVTEVfQVVUSE9SKFwmIzM0O0Nsw6ltZW50IEzDqWdlciBcdTAwM2NjbGVtZW50LmxlZ2VyQGJvb3RsaW4uY29tXHUwMDNlXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYzo5MjpNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7UmVuZXNhcyBSWk4xIERXTUFDIHNwZWNpZmljIGdsdWUgbGF5ZXJcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcnpuMS5jLTkzLU1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTFwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmM9MTQ0PXN0YXRpYyBpbnQgczMyX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmMtMTk1LVx0LyogUzMyQ0MgY29yZSBmZWF0dXJlIHNldCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmM6MTk2Olx0cGxhdC1cdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmMtMTk3LVx0cGxhdC1cdTAwM2VwbXQgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYz01NTk9c3RhdGljIHZvaWQgc29jZnBnYV9nZW41X3NldHVwX3BsYXRfZGF0KHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNTYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jOjU2MzpcdHBsYXRfZGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy01NjQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jPTU2OT1zdGF0aWMgdm9pZCBzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy01NzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM6NTczOlx0cGxhdF9kYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9YR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy01NzQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jPTY4OT1tb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHNvY2ZwZ2FfZHdtYWNfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy02OTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM6NjkxOk1PRFVMRV9ERVNDUklQVElPTihcJiMzNDtBbHRlcmEgU09DIERXTUFDIFNwZWNpZmljIEdsdWUgbGF5ZXJcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jLTY5Mi1NT0RVTEVfTElDRU5TRShcJiMzNDtHUEwgdjJcJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jLTItLypcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jOjM6ICogU29waGdvIERXTUFDIHBsYXRmb3JtIGRyaXZlclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29waGdvLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jPTkxPU1PRFVMRV9BVVRIT1IoXCYjMzQ7SW5vY2hpIEFtYW90byBcdTAwM2Npbm9jaGlhbWFAZ21haWwuY29tXHUwMDNlXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jOjkyOk1PRFVMRV9ERVNDUklQVElPTihcJiMzNDtTb3BoZ28gRFdNQUMgcGxhdGZvcm0gZHJpdmVyXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jLTkzLU1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTFwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3BhY2VtaXQuYy0yLS8qXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jOjM6ICogU3BhY2VtaXQgRFdNQUMgcGxhdGZvcm0gZHJpdmVyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jPTIyOD1NT0RVTEVfQVVUSE9SKFwmIzM0O0lub2NoaSBBbWFvdG8gXHUwMDNjaW5vY2hpYW1hQGdtYWlsLmNvbVx1MDAzZVwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jOjIyOTpNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7U3BhY2VtaXQgRFdNQUMgcGxhdGZvcm0gZHJpdmVyXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmMtMjMwLU1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTFwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYy0yLS8qXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jOjM6ICogU3RhckZpdmUgRFdNQUMgcGxhdGZvcm0gZHJpdmVyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTE3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYzoxODojZGVmaW5lIFNUQVJGSVZFX0RXTUFDX1BIWV9JTkZUX0ZJRUxEXHRcdDB4N1VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmMtMTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYz0zMj1zdGF0aWMgaW50IHN0YXJmaXZlX2R3bWFjX3NldF9tb2RlKHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYy01NS1cdGVyciA9IHJlZ21hcF91cGRhdGVfYml0cyhyZWdtYXAsIGFyZ3NbMF0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jOjU2Olx0XHRcdFx0IFNUQVJGSVZFX0RXTUFDX1BIWV9JTkZUX0ZJRUxEIFx1MDAzY1x1MDAzYyBhcmdzWzFdLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYy01Ny1cdFx0XHRcdCBwaHlfaW50Zl9zZWwgXHUwMDNjXHUwMDNjIGFyZ3NbMV0pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmM9MTc5PU1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTFwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jOjE4MDpNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7U3RhckZpdmUgRFdNQUMgcGxhdGZvcm0gZHJpdmVyXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmMtMTgxLU1PRFVMRV9BVVRIT1IoXCYjMzQ7RW1pbCBSZW5uZXIgQmVydGhpbmcgXHUwMDNja2VybmVsQGVzbWlsLmRrXHUwMDNlXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYy0yLS8qXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYzozOiAqIGR3bWFjLXN0aS5jIC0gU1RNaWNyb2VsZWN0cm9uaWNzIERXTUFDIFNwZWNpZmljIEdsdWUgbGF5ZXJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYy0yMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jOjI0OiNkZWZpbmUgRFdNQUNfNTBNSFpcdDUwMDAwMDAwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYy0yNS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYz0xMTk9c3RhdGljIHZvaWQgc3RpaDR4eF9maXhfcmV0aW1lX3NyYyh2b2lkICpwcml2LCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTEzMy1cdFx0XHRzcmMgPSBUWF9SRVRJTUVfU1JDX0NMS0dFTjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jOjEzNDpcdFx0XHRmcmVxID0gRFdNQUNfNTBNSFo7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYy0xMzUtXHRcdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYz0zMTI9TU9EVUxFX0FVVEhPUihcJiMzNDtTcmluaXZhcyBLYW5kYWdhdGxhIFx1MDAzY3NyaW5pdmFzLmthbmRhZ2F0bGFAc3QuY29tXHUwMDNlXCYjMzQ7KTtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDAzOjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3OTYwCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTE4OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipSZWFjaGluZyB0aGUgRGVzaWduV2FyZSBNQUMgaW4gUUVNVS9TeXprYWxsZXI6IEEgRGVlcCBEaXZlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBody9uZXQvZGVzaWdud2FyZS5jYCBpbiBRRU1VLCB3aGljaCBpcyB0aGUgRGVzaWduV2FyZSBNQUMuIFRoZSBxdWVzdGlvbiBpcywgY2FuIHdlIGFjdHVhbGx5IHJlYWNoIHRoaXMgaW4gYSBmdXp6ZXIgbGlrZSBTeXprYWxsZXI/CgpGaXJzdCwgSSBjaGVja2VkIHdoZXJlIHRoaXMgY29kZSBpcyB1c2VkIHdpdGhpbiBRRU1VLiBJdCYjMzk7cyBpbiB2YXJpb3VzIEFSTSBtYWNoaW5lcywgYnV0IGl0IGxvb2tzIGxpa2UgdGhlIERlc2lnbldhcmUgTUFDIGlzIHNwZWNpZmljYWxseSB1c2VkIGluIHRoZSBBbGx3aW5uZXIgSDMgKGBhbGx3aW5uZXItaDMuY2ApLCB3aGljaCBpcyBpbnRlcmVzdGluZy4gIFRoaXMgUUVNVSBgZGVzaWdud2FyZS5jYCBpbXBsZW1lbnRzIHRoZSBEV01BQy4KClRoZSBrZXkgaXMgd2hldGhlciBTeXprYWxsZXIgY2FuIGFjdHVhbGx5IGhpdCB0aGlzIGluIGl0cyBmdXp6aW5nIGNhbXBhaWducy4gU3l6a2FsbGVyLCBvZiBjb3Vyc2UsIGRvZXMgZnV6eiBBUk0zMiBhbmQgQVJNNjQga2VybmVscyB0aHJvdWdoIFFFTVUgYW5kIGNhbiBhbHNvIGZ1enogUENJIGRldmljZXMgKmlmKiB0aGV5IGFyZSBlbXVsYXRlZC4gIFRoZW4gSSByZW1lbWJlcmVkIGBzdG1tYWNgIHdoaWNoIGFsc28gaGFzIGEgUENJIGRyaXZlciAoYHN0bW1hY19wY2kuY2ApLiBUaGUgcXVlc3Rpb24gaW1tZWRpYXRlbHkgYmVjb21lczogZG9lcyBRRU1VIG9mZmVyIFBDSSBlbXVsYXRpb24gZm9yIHRoZSBEZXNpZ25XYXJlIE1BQywgdGhhdCBTeXprYWxsZXIgY2FuIHJlYWNoPwoKTm93LCBRRU1VJiMzOTtzIGBody9uZXQvZGVzaWdud2FyZS5jYCBpcyBhY3R1YWxseSBhIFN5c0J1c0RldmljZSAocGxhdGZvcm0gZGV2aWNlKS4gU28sIGNhbiBzeXprYWxsZXIgZnV6eiBwbGF0Zm9ybSBkZXZpY2VzPyBJdCBjYW4gaWYgdGhleSBhcmUgb24gYSBib2FyZCwgb3IgY2FuIGluamVjdCB0aGVtLiBTeXprYWxsZXIgZG9lcyBoYXZlIG5ldHdvcmsgcHJpbWl0aXZlcyBzdWNoIGFzIGBzeXpfZ2VuZXRsaW5rYCBhbmQgYHN5el9uZXRsaW5rYCB0aGF0IGNyZWF0ZSB2aXJ0dWFsIGludGVyZmFjZXMsIGJ1dCBgc3RtbWFjYCBpcyBhICpoYXJkd2FyZSogZHJpdmVyLiAgQW5kIHRoZSBwcm9tcHQgc2FpZCB0aGF0IGlmIGl0JiMzOTtzIGltcG9zc2libGUgdG8gcmVhY2gsIHRoZW4gSSBzaG91bGQgcmV0dXJuIGBmYWxzZWAuCgpIZXJlJiMzOTtzIHRoZSBwcm9ibGVtOiBJIGhhdmUgYSBjb21taXQgbWVzc2FnZSBmcm9tIGEgc3l6LWNsdXN0ZXIsIGluZGljYXRpbmcgdGhhdCBzeXprYWxsZXIgaXMgdGVzdGluZyBhIHBhdGNoIGZvciB0aGlzIGRyaXZlci4gQnV0IHRoaXMgZG9lc24mIzM5O3QgZ3VhcmFudGVlIHRoZSBjb2RlIHBhdGggaXMgKnJlYWNoYWJsZSouIFRlc3RpbmcgYSBwYXRjaCBkb2VzbiYjMzk7dCBlcXVhbCBmdXp6aW5nIHRoZSBkcml2ZXIgaXRzZWxmLiBUaGF0IGRvZXNuJiMzOTt0IG1lYW4gdGhhdCBzeXprYWxsZXIgY2FuIGFjdGl2ZWx5IGZpbmQgYnVncyBpbiBpdC4KCkkgZGlkIHN0YXJ0IHRvIHdvbmRlciB3aGV0aGVyIHRoZXJlIHdhcyBhIGBzeXpfcGNpX2RldmljZWAgdHlwZSBjYWxsIGZvciBTeXprYWxsZXIsIHNvbWV0aGluZyB0byBlbXVsYXRlIGEgUENJIGRldmljZSBkaXJlY3RseS4gQnV0IG5vLiBTeXprYWxsZXIgdXNlcyBRRU1VIHRvIGVtdWxhdGUgdGhlIGhhcmR3YXJlLiBUaGUgY3J1Y2lhbCB0aGluZyBpcyB0aGF0IHN5emthbGxlciBkb2VzbiYjMzk7dCBoYXZlIGEgYHN5el9wY2lfZGV2aWNlYCwgaXQgZG9lc24mIzM5O3QgZG8gZnV6emluZyB1c2luZyBgdmZpb2AgZWl0aGVyLgoKVGhlbiBJIHNoaWZ0ZWQgbXkgZm9jdXMuIFFFTVUgKmRvZXMqIHJ1biBBUk0gbWFjaGluZXMuIENhbiBhbiBBUk0gbWFjaGluZSB1c2UgYHN0bW1hY2AgdGhyb3VnaCB0aGUgUUVNVSBlbXVsYXRpb24/IEJ1dCB0aGUgJiMzNDt2aXJ0JiMzNDsgbWFjaGluZSBpcyB1c2VkIGluIFN5emthbGxlciB3aXRoIFFFTVUsIGJ1dCB1c2VzIGB2aXJ0aW8tbmV0YCBmb3IgbmV0d29ya2luZy4KCk9rYXksIGxldCYjMzk7cyBjaGFuZ2UgcGVyc3BlY3RpdmUuIFdoYXQgYWJvdXQgaWYgdGhlIHVzZXIgY29tcGlsZXMgdGhlIGtlcm5lbCBmb3IgeDg2XzY0PyBUaGUgYHN0bW1hY19wY2lgIGRyaXZlciBpcyBhdmFpbGFibGUgb24geDg2XzY0IChJbnRlbCBRdWFyaywgQXBvbGxvIExha2UsIGV0Yy4pLiBDYW4gaXQgYmUgcmVhY2hlZCBpbiBRRU1VIHg4Nl82ND8gQnV0IFFFTVUgZG9lcyAqbm90KiBlbXVsYXRlIEludGVsIERXTUFDIFBDSSBkZXZpY2VzLgoKT2theSwgaXMgdGhlcmUgYW5vdGhlciB3YXk/IE1heWJlIGBzdG1tYWNgIGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgUUVNVSB4ODZfNjQuIFdoYXQgYWJvdXQgYHZldGhgIG9yIGB0dW5gPyBUaGVzZSBhcmUgdmlydHVhbC4gYHN0bW1hY2AgaXMgYSAqcGh5c2ljYWwqIGRyaXZlci4gSSBuZWVkIHRvIGJlIGFibGUgdG8gdHJpZ2dlciB0aGUgY29kZSB3aXRob3V0IHRoZSBoYXJkd2FyZS4KCk5vLCB0aGlzIGlzIGEgaGFyZHdhcmUgZHJpdmVyLiBJdCBuZWVkcyBoYXJkd2FyZSByZWdpc3RlcnMuIFRoZSBwcm9tcHQgc2F5cywgc3BlY2lmaWNhbGx5OiAmIzM0O0NvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSYjMzQ7LgoKVGhpcyBhbGwgY29tZXMgZG93biB0byB0aGUgcHJvbXB0JiMzOTtzIGZpbmFsIHN0YXRlbWVudDogJiMzNDtJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoIHRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLiYjMzQ7CgpHaXZlbiBhbGwgb2YgdGhpcywgY2FuIGBzdG1tYWNgIGJlIHJlYWNoZWQgaW4gUUVNVT8gQW5kIFFFTVUgZG9lcyAqbm90KiBlbXVsYXRlIGBzdG1tYWNgIFBDSS4gU2luY2UgdGhlIGdvYWwgaXMgZnV6emluZywgSSYjMzk7bSBsZWFuaW5nIHRvd2FyZCB0aGUgY29kZSBwYXRocyBiZWluZyB1bnJlYWNoYWJsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMDM6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RtbWFjJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDExNjA4IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI5PWNvbmZpZyBTVE1NQUNfUExBVEZPUk1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzLVx0aGVscFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNDpcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1LVx0ICBUaGlzIGlzIHRoZSBkcml2ZXIgdXNlZCBvbiBzZXZlcmFsIFNvQ3M6XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz02MD1jb25maWcgRFdNQUNfQU5BUklPTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjY3Olx0ICBUaGlzIHNlbGVjdHMgdGhlIEFuYXJpb24gU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTY4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Nzg9Y29uZmlnIERXTUFDX0lOR0VOSUNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo4NjpcdCAgVGhpcyBzZWxlY3RzIEluZ2VuaWMgU29DcyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctODctXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBJbmdlbmljIFNvQ3Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTkwPWNvbmZpZyBEV01BQ19JUFE4MDZYXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6OTg6XHQgIFRoaXMgc2VsZWN0cyB0aGUgSVBRODA2eCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTk5LVx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBkb2VzIG5vdCB1c2UgYW55IG9mIHRoZSBoYXJkd2FyZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTE0PWNvbmZpZyBEV01BQ19NRURJQVRFS1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMjA6XHQgIFRoaXMgc2VsZWN0cyB0aGUgTVQyNzEyIFNvQyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMjI9Y29uZmlnIERXTUFDX01FU09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMjktXHQgIFRoaXMgc2VsZWN0cyB0aGUgQW1sb2dpYyBNZXNvbiBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMzA6XHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgTWVzb242LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMzEtXHQgIE1lc29uOCwgTWVzb244YiBhbmQgR1hCQiBTb0NzLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTMzPWNvbmZpZyBEV01BQ19OVVZPVE9OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNDEtXHQgIFRoaXMgc2VsZWN0cyB0aGUgTnV2b3RvbiBNQTM1IHNlcmllcyBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE0MjpcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhlIG51dm90b24tZHdtYWMgZHJpdmVyIGlzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE0My1cdCAgdXNlZCBmb3IgTUEzNSBzZXJpZXMgU29Dcy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE0NT1jb25maWcgRFdNQUNfUUNPTV9FVEhRT1Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE1Mi1cdCAgVGhpcyBzZWxlY3RzIHRoZSBRdWFsY29tbSBFVEhRT1MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTUzOlx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNTU9Y29uZmlnIERXTUFDX1JFTkVTQVNfR0JFVEhcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTY0Olx0ICBUaGlzIHNlbGVjdHMgUmVuZXNhcyBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRldmljZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNjUtXHQgIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFJaL1YySChQKSBmYW1pbHksIFJaL1QySCBhbmRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE2OD1jb25maWcgRFdNQUNfUk9DS0NISVBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3Ni1cdCAgVGhpcyBzZWxlY3RzIHRoZSBSb2NrY2hpcCBSSzMyODggU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTc3Olx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTc5PWNvbmZpZyBEV01BQ19SWk4xXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xODctXHQgIFRoaXMgc2VsZWN0cyB0aGUgUmVuZXNhcyBSWi9OMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxODg6XHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBzdXBwb3J0IGNhbiBtYWtlIHVzZSBvZiBhIGN1c3RvbSBNSUlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTg5LVx0ICBjb252ZXJ0ZXIgUENTIGRldmljZS5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE5MT1jb25maWcgRFdNQUNfUzMyXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xOTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE5ODpcdCAgVGhpcyBzZWxlY3RzIE5YUCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5OS1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFMzMkNDIHNlcmllc1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjAzPWNvbmZpZyBEV01BQ19TT0NGUEdBXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMTQtXHQgIFRoaXMgc2VsZWN0cyB0aGUgQWx0ZXJhIFNPQ0ZQR0EgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMTU6XHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxNi1cdCAgYXJyaWE1IGFuZCBjeWNsb25lNSBGUEdBIFNvQ3MuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMTg9Y29uZmlnIERXTUFDX1NPUEhHT1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjI1LVx0ICBUaGlzIHNlbGVjdHMgdGhlIFNvcGhnbyBTb0Mgc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIyNjpcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIyNy1cdCAgZXRoZXJuZXQgY29udHJvbGxlcnMgb24gdmFyaW91cyBTb3BoZ28gU29Dcy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIyOT1jb25maWcgRFdNQUNfU1BBQ0VNSVRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIzNy1cdCAgVGhpcyBzZWxlY3RzIHRoZSBTcGFjZW1pdCBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjM4Olx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjM5LVx0ICBTcGFjZW1pdCBLMyBldGhlcm5ldCBjb250cm9sbGVycy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI0MT1jb25maWcgRFdNQUNfU1RBUkZJVkVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI0OS1cdCAgVGhpcyBzZWxlY3RzIHRoZSBTdGFyRml2ZSBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjUwOlx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjUxLVx0ICBTdGFyRml2ZSBKSDcxMDAgYW5kIEpINzExMCBldGhlcm5ldCBjb250cm9sbGVycy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI1Mz1jb25maWcgRFdNQUNfU1RJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI2MTpcdCAgVGhpcyBzZWxlY3RzIFNUaSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI2Mi1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBvbiBmb3IgdGhlIFNUaSBzZXJpZXNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI2NT1jb25maWcgRFdNQUNfU1RNMzJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjczOlx0ICBUaGlzIHNlbGVjdHMgU1RNMzIgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzQtXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBTVE0zMiBzZXJpZXNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI3Nz1jb25maWcgRFdNQUNfU1VOWElcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI4NC1cdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjg1Olx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgQTIwL0EzMVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yODYtXHQgIEdNQUMgZXRoZXJuZXQgY29udHJvbGxlci5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI4OD1jb25maWcgRFdNQUNfU1VOOElcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI5Ni1cdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjk3Olx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSDMvQTgzVC9BNjRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjk4LVx0ICBFTUFDIGV0aGVybmV0IGNvbnRyb2xsZXIuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMDA9Y29uZmlnIERXTUFDX1NVTjU1SVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzA4LVx0ICBUaGlzIHNlbGVjdHMgQWxsd2lubmVyIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMDk6XHQgIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBBNTIzL1Q1MjdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzEwLVx0ICBHTUFDMjAwIGV0aGVybmV0IGNvbnRyb2xsZXIuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMTI9Y29uZmlnIERXTUFDX1RIRUFEXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMTgtXHQgIFRoaXMgc2VsZWN0cyB0aGUgVC1IRUFEIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzE5Olx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIFQtSEVBRCBUSDE1MjBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzIwLVx0ICBldGhlcm5ldCBjb250cm9sbGVyLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzIyPWNvbmZpZyBEV01BQ19JTVg4XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMzMDpcdCAgVGhpcyBzZWxlY3RzIE5YUCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzMS1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgaS5NWDggc2VyaWVzIGxpa2Vcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMzND1jb25maWcgRFdNQUNfSU5URUxfUExBVFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzQwLVx0ICBUaGlzIHNlbGVjdHMgdGhlIEludGVsIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzQxOlx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZSBJbnRlbCBLZWVtIEJheVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNDItXHQgIFNvQy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM0ND1jb25maWcgRFdNQUNfTE9PTkdTT04xXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM1MTpcdCAgVGhpcyBzZWxlY3RzIExvb25nc29uMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1Mi1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgTG9vbmdzb24xLWJhc2VkIGJvYXJkc1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzU1PWNvbmZpZyBEV01BQ19URUdSQVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzYwLVx0ICBmb3VuZCBvbiB0aGUgTlZJRElBIFRlZ3JhIFNvQyBkZXZpY2VzLiBUaGlzIGRyaXZlciBwcm92aWRlcyB0aGUgZ2x1ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNjE6XHQgIGxheWVyIG9uIHRvcCBvZiB0aGUgc3RtbWFjIGRyaXZlciByZXF1aXJlZCBmb3IgdGhlc2UgTlZJRElBIFRlZ3JhIFNvQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNjItXHQgIGRldmljZXMuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzM9Y29uZmlnIFNUTU1BQ19MSUJQQ0lcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3NS1cdGhlbHBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzc2Olx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBQQ0kgYnVzIGhlbHBlcnMgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM3OD1jb25maWcgRFdNQUNfSU5URUxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM4NS1cdCAgVGhpcyBzZWxlY3RzIHRoZSBJbnRlbCBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM4NjpcdCAgc3RtbWFjIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSW50ZWwgUXVhcmsvRUhML1RHTC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zODg9Y29uZmlnIERXTUFDX0xPT05HU09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTQtXHRoZWxwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM5NTpcdCAgVGhpcyBzZWxlY3RzIHRoZSBMT09OR1NPTiBQQ0kgYnVzIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTYtXHQgIFN1cHBvcnQgZm9yIGV0aGVybmV0IGNvbnRyb2xsZXIgb24gTG9vbmdzb24tMksxMDAwIFNvQyBhbmQgTFM3QTEwMDAgYnJpZGdlLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NDA3PWNvbmZpZyBTVE1NQUNfUENJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MTItXHRoZWxwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQxMzpcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQxNC1cdCAgVGhpcyBkcml2ZXIgd2FzIHRlc3RlZCBvbiBYTElOWCBYQzJWMzAwMCBGRjExNTJBTVQwMjIxXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyOm9iai0kKENPTkZJR19TVE1NQUNfRVRIKSAmIzQzOz0gc3RtbWFjLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjM6c3RtbWFjLW9ianM6PSBzdG1tYWNfbWFpbi5vIHN0bW1hY19ldGh0b29sLm8gc3RtbWFjX21kaW8ubyByaW5nX21vZGUub1x0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTQtXHQgICAgICBjaGFpbl9tb2RlLm8gZHdtYWNfbGliLm8gZHdtYWMxMDAwX2NvcmUubyBkd21hYzEwMDBfZG1hLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01LVx0ICAgICAgZHdtYWMxMDBfY29yZS5vIGR3bWFjMTAwX2RtYS5vIGVuaF9kZXNjLm8gbm9ybV9kZXNjLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo2Olx0ICAgICAgbW1jX2NvcmUubyBzdG1tYWNfaHd0c3RhbXAubyBzdG1tYWNfcHRwLm8gZHdtYWM0X2Rlc2NzLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS03LVx0ICAgICAgZHdtYWM0X2RtYS5vIGR3bWFjNF9saWIubyBkd21hYzRfY29yZS5vIGR3bWFjNS5vIGh3aWYubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6ODpcdCAgICAgIHN0bW1hY190Yy5vIGR3eGdtYWMyX2NvcmUubyBkd3hnbWFjMl9kbWEubyBkd3hnbWFjMl9kZXNjcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo5Olx0ICAgICAgc3RtbWFjX3hkcC5vIHN0bW1hY19lc3QubyBzdG1tYWNfZnBlLm8gc3RtbWFjX3ZsYW4ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTA6XHQgICAgICBzdG1tYWNfcGNzLm8gJChzdG1tYWMteSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTI6c3RtbWFjLSQoQ09ORklHX1NUTU1BQ19TRUxGVEVTVFMpICYjNDM7PSBzdG1tYWNfc2VsZnRlc3RzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMTQtIyBPcmRlcmluZyBtYXR0ZXJzLiBHZW5lcmljIGRyaXZlciBtdXN0IGJlIGxhc3QuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxNTpvYmotJChDT05GSUdfU1RNTUFDX1BMQVRGT1JNKVx0JiM0Mzs9IHN0bW1hYy1wbGF0Zm9ybS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xNi1vYmotJChDT05GSUdfRFdNQUNfQU5BUklPTilcdCYjNDM7PSBkd21hYy1hbmFyaW9uLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT00NT1vYmotJChDT05GSUdfRFdNQUNfVklTQ09OVEkpXHQmIzQzOz0gZHdtYWMtdmlzY29udGkub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDY6c3RtbWFjLXBsYXRmb3JtLW9ianM6PSBzdG1tYWNfcGxhdGZvcm0ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNDctZHdtYWMtYWx0ci1zb2NmcGdhLW9ianMgOj0gZHdtYWMtc29jZnBnYS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS00OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQ5Om9iai0kKENPTkZJR19TVE1NQUNfTElCUENJKVx0JiM0Mzs9IHN0bW1hY19saWJwY2kub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTA6b2JqLSQoQ09ORklHX1NUTU1BQ19QQ0kpXHQmIzQzOz0gc3RtbWFjLXBjaS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01MS1vYmotJChDT05GSUdfRFdNQUNfSU5URUwpXHQmIzQzOz0gZHdtYWMtaW50ZWwub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTUzPW9iai0kKENPTkZJR19EV01BQ19NT1RPUkNPTU0pXHQmIzQzOz0gZHdtYWMtbW90b3Jjb21tLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjU0OnN0bW1hYy1wY2ktb2Jqczo9IHN0bW1hY19wY2kub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNTojaW5jbHVkZSBcJiMzNDtzdG1tYWMuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE3OnN0YXRpYyBpbnQganVtYm9fZnJtKHN0cnVjdCBzdG1tYWNfdHhfcXVldWUgKnR4X3EsIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTgtXHRcdCAgICAgaW50IGNzdW0pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIwLVx0dW5zaWduZWQgaW50IG5vcGFnZWRfbGVuID0gc2tiX2hlYWRsZW4oc2tiKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoyMTpcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHR4X3EtXHUwMDNlcHJpdl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIyLVx0dW5zaWduZWQgaW50IGVudHJ5ID0gdHhfcS1cdTAwM2VjdXJfdHg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTQ0LVx0LyogZG8gbm90IGNsb3NlIHRoZSBkZXNjcmlwdG9yIGFuZCBkbyBub3Qgc2V0IG93biBiaXQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo0NTpcdHN0bW1hY19wcmVwYXJlX3R4X2Rlc2MocHJpdiwgZGVzYywgMSwgYnVmX2xlbiwgY3N1bSwgU1RNTUFDX0NIQUlOX01PREUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNDYtXHRcdFx0MCwgZmFsc2UsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy02MS1cdFx0XHR0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmxlbiA9IGJtYXg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6NjI6XHRcdFx0c3RtbWFjX3ByZXBhcmVfdHhfZGVzYyhwcml2LCBkZXNjLCAwLCBibWF4LCBjc3VtLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTYzLVx0XHRcdFx0XHRTVE1NQUNfQ0hBSU5fTU9ERSwgMSwgZmFsc2UsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03NS1cdFx0XHQvKiBsYXN0IGRlc2NyaXB0b3IgY2FuIGJlIHNldCBub3cgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo3NjpcdFx0XHRzdG1tYWNfcHJlcGFyZV90eF9kZXNjKHByaXYsIGRlc2MsIDAsIGxlbiwgY3N1bSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03Ny1cdFx0XHRcdFx0U1RNTUFDX0NIQUlOX01PREUsIDEsIHRydWUsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYz05OD1zdGF0aWMgdm9pZCBpbml0X2RtYV9jaGFpbih2b2lkICpkZXMsIGRtYV9hZGRyX3QgcGh5X2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEyNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxMjg6c3RhdGljIHZvaWQgcmVmaWxsX2Rlc2MzKHN0cnVjdCBzdG1tYWNfcnhfcXVldWUgKnJ4X3EsIHN0cnVjdCBkbWFfZGVzYyAqcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xMjkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjEzMDpcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHJ4X3EtXHUwMDNlcHJpdl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEzMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE0MzpzdGF0aWMgdm9pZCBjbGVhbl9kZXNjMyhzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xLCBzdHJ1Y3QgZG1hX2Rlc2MgKnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQ0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNDU6XHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSB0eF9xLVx1MDAzZXByaXZfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNDYtXHR1bnNpZ25lZCBpbnQgZW50cnkgPSB0eF9xLVx1MDAzZWRpcnR5X3R4O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTYwOmNvbnN0IHN0cnVjdCBzdG1tYWNfbW9kZV9vcHMgY2hhaW5fbW9kZV9vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTYxLVx0LmluaXQgPSBpbml0X2RtYV9jaGFpbixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xNS0jaW5jbHVkZSBcdTAwM2NsaW51eC9uZXRkZXZpY2UuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTY6I2luY2x1ZGUgXHUwMDNjbGludXgvc3RtbWFjLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTE3LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3BoeS5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDk9c3RhdGljIGlubGluZSBib29sIGR3bWFjX2lzX3htYWMoZW51bSBkd21hY19jb3JlX3R5cGUgY29yZV90eXBlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NzE6c3RydWN0IHN0bW1hY19xX3R4X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcyLVx0dTY0X3N0YXRzX3QgdHhfYnl0ZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo3ODpzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzktXHR1NjRfc3RhdHNfdCB0eF9wYWNrZXRzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6ODY6c3RydWN0IHN0bW1hY190eHFfc3RhdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODctXHQvKiBVcGRhdGVzIHByb3RlY3RlZCBieSB0eCBxdWV1ZSBsb2NrLiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODgtXHRzdHJ1Y3QgdTY0X3N0YXRzX3N5bmMgcV9zeW5jcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjg5Olx0c3RydWN0IHN0bW1hY19xX3R4X3N0YXRzIHE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05Mi1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6OTM6XHRzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMgbmFwaTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk0LX0gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6OTY6c3RydWN0IHN0bW1hY19uYXBpX3J4X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk3LVx0dTY0X3N0YXRzX3QgcnhfYnl0ZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTAzOnN0cnVjdCBzdG1tYWNfcnhxX3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNC1cdC8qIFVwZGF0ZXMgcHJvdGVjdGVkIGJ5IE5BUEkgcG9sbCBsb2dpYy4gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNS1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTA2Olx0c3RydWN0IHN0bW1hY19uYXBpX3J4X3N0YXRzIG5hcGk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDctfSBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwOS0vKiBVcGRhdGVzIG9uIGVhY2ggQ1BVIHByb3RlY3RlZCBieSBub3QgYWxsb3dpbmcgbmVzdGVkIGlycXMuICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoxMTA6c3RydWN0IHN0bW1hY19wY3B1X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExMS1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBzeW5jcDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMTYtLyogRXh0cmEgc3RhdGlzdGljIGFuZCBkZWJ1ZyBpbmZvcm1hdGlvbiBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjExNzpzdHJ1Y3Qgc3RtbWFjX2V4dHJhX3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExOC1cdC8qIFRyYW5zbWl0IGVycm9ycyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTIzNy1cdC8qIHBlciBxdWV1ZSBzdGF0aXN0aWNzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoyMzg6XHRzdHJ1Y3Qgc3RtbWFjX3R4cV9zdGF0cyB0eHFfc3RhdHNbTVRMX01BWF9UWF9RVUVVRVNdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjM5Olx0c3RydWN0IHN0bW1hY19yeHFfc3RhdHMgcnhxX3N0YXRzW01UTF9NQVhfUlhfUVVFVUVTXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI0MDpcdHN0cnVjdCBzdG1tYWNfcGNwdV9zdGF0cyBfX3BlcmNwdSAqcGNwdV9zdGF0cztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI0MS1cdHVuc2lnbmVkIGxvbmcgcnhfZHJvcHBlZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDctLyogU2FmZXR5IEZlYXR1cmUgc3RhdGlzdGljcyBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI0ODpzdHJ1Y3Qgc3RtbWFjX3NhZmV0eV9zdGF0cyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDktXHR1bnNpZ25lZCBsb25nIG1hY19lcnJvcnNbMzJdO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI1Ni0jZGVmaW5lIFNUTU1BQ19TQUZFVFlfRkVBVF9TSVpFXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjU3Olx0KHNpemVvZihzdHJ1Y3Qgc3RtbWFjX3NhZmV0eV9zdGF0cykgLyBzaXplb2YodW5zaWduZWQgbG9uZykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDE2PXN0cnVjdCBkbWFfZmVhdHVyZXMge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTU2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjU2NTp2b2lkIHN0bW1hY19heGlfYmxlbl90b19tYXNrKHUzMiAqcmVndmFsLCBjb25zdCB1MzIgKmJsZW4sIHNpemVfdCBsZW4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNTY2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTYxMz1zdHJ1Y3QgbWFjX2RldmljZV9pbmZvIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNDpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfb3BzICptYWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTU6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2Rlc2Nfb3BzICpkZXNjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE2Olx0Y29uc3Qgc3RydWN0IHN0bW1hY19kbWFfb3BzICpkbWE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTc6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX21vZGVfb3BzICptb2RlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE4Olx0Y29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCAqcHRwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE5Olx0Y29uc3Qgc3RydWN0IHN0bW1hY190Y19vcHMgKnRjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjIwOlx0Y29uc3Qgc3RydWN0IHN0bW1hY19tbWNfb3BzICptbWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MjE6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2VzdF9vcHMgKmVzdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYyMjpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfdmxhbl9vcHMgKnZsYW47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02MjMtXHRzdHJ1Y3QgZHdfeHBjcyAqeHBjcztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NDU6c3RydWN0IHN0bW1hY19yeF9yb3V0aW5nIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY0Ni1cdHUzMiByZWdfbWFzaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTA6aW50IGR3bWFjMTAwX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTE6aW50IGR3bWFjMTAwMF9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjUyOmludCBkd21hYzRfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1MzppbnQgZHd4Z21hYzJfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1NDppbnQgZHd4bGdtYWMyX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTY6dm9pZCBzdG1tYWNfc2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCBjb25zdCB1OCBhZGRyWzZdLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjU3LVx0XHRcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTg6dm9pZCBzdG1tYWNfZ2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCB1bnNpZ25lZCBjaGFyICphZGRyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjU5LVx0XHRcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjA6dm9pZCBzdG1tYWNfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjYxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjYyOnZvaWQgc3RtbWFjX2R3bWFjNF9zZXRfbWFjX2FkZHIodm9pZCBfX2lvbWVtICppb2FkZHIsIGNvbnN0IHU4IGFkZHJbNl0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjMtXHRcdFx0XHR1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjQ6dm9pZCBzdG1tYWNfZHdtYWM0X2dldF9tYWNfYWRkcih2b2lkIF9faW9tZW0gKmlvYWRkciwgdW5zaWduZWQgY2hhciAqYWRkcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY2NS1cdFx0XHRcdHVuc2lnbmVkIGludCBoaWdoLCB1bnNpZ25lZCBpbnQgbG93KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY2Njp2b2lkIHN0bW1hY19kd21hYzRfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjY3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMS0jaW5jbHVkZSBcdTAwM2NsaW51eC9vZl9uZXQuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEyOiNpbmNsdWRlIFx1MDAzY2xpbnV4L3N0bW1hYy5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7c3RtbWFjLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxNTojaW5jbHVkZSBcJiMzNDtzdG1tYWNfcGxhdGZvcm0uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTE2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz02Mz1hbmFyaW9uX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjY0Olx0XHQgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtNjUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz05Mz1zdGF0aWMgaW50IGFuYXJpb25fZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtOTYtXHRzdHJ1Y3QgYW5hcmlvbl9nbWFjICpnbWFjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjk3Olx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzo5ODpcdHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHN0bW1hY19yZXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtOTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTAwOlx0cmV0ID0gc3RtbWFjX2dldF9wbGF0Zm9ybV9yZXNvdXJjZXMocGRldiwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAxLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEwNDpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMDUtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjExNjpcdHJldHVybiBkZXZtX3N0bW1hY19wbHRmcl9wcm9iZShwZGV2LCBwbGF0X2RhdCwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE3LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9MTI1PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFuYXJpb25fZHdtYWNfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMjgtXHRcdC5uYW1lICAgICAgICAgICA9IFwmIzM0O2FuYXJpb24tZHdtYWNcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTI5Olx0XHQucG1cdFx0PSBcdTAwMjZzdG1tYWNfcGx0ZnJfcG1fb3BzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEzMC1cdFx0Lm9mX21hdGNoX3RhYmxlID0gYW5hcmlvbl9kd21hY19tYXRjaCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIxLSNpbmNsdWRlIFx1MDAzY2xpbnV4L3Jlc2V0LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjI6I2luY2x1ZGUgXHUwMDNjbGludXgvc3RtbWFjLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI0OiNpbmNsdWRlIFwmIzM0O3N0bW1hY19wbGF0Zm9ybS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI1LSNpbmNsdWRlIFwmIzM0O2R3bWFjNC5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNj1zdGF0aWMgaW50IGR3Y19ldGhfZHdtYWNfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM3Olx0XHRcdFx0ICAgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDMtXHRcdHBsYXRfZGF0LVx1MDAzZWF4aSA9IGRldm1fa3phbGxvYyhcdTAwMjZwZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6NDQ6XHRcdFx0XHRcdCAgICAgc2l6ZW9mKHN0cnVjdCBzdG1tYWNfYXhpKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDUtXHRcdFx0XHRcdCAgICAgR0ZQX0tFUk5FTCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz05Nj1zdGF0aWMgaW50IGR3Y19xb3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6OTc6XHRcdFx0IHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjk4Olx0XHRcdCBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqc3RtbWFjX3JlcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtOTkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxMDA6XHRwbGF0X2RhdC1cdTAwM2VwY2xrID0gc3RtbWFjX3BsdGZyX2ZpbmRfY2xrKHBsYXRfZGF0LCBcJiMzNDtwaHlfcmVmX2Nsa1wmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTEwMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTExNT1zdGF0aWMgdm9pZCB0ZWdyYV9lcW9zX2ZpeF9zcGVlZCh2b2lkICpic3BfcHJpdiwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTExOS1cdGJvb2wgbmVlZHNfY2FsaWJyYXRpb24gPSBmYWxzZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTIwOlx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xMjEtXHR1MzIgdmFsdWU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDEtXHRcdC8qIENhbGlicmF0aW9uIHNob3VsZCBiZSBkb25lIHdpdGggdGhlIE1ESU8gYnVzIGlkbGUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTQyOlx0XHRzdG1tYWNfbWRpb19sb2NrKHByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE3ODpcdFx0c3RtbWFjX21kaW9fdW5sb2NrKHByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzktXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MTg2PXN0YXRpYyBpbnQgdGVncmFfZXFvc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxODc6XHRcdFx0ICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE4ODpcdFx0XHQgICAgc3RydWN0IHN0bW1hY19yZXNvdXJjZXMgKnJlcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTg5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjA0Olx0cGxhdF9kYXQtXHUwMDNlY2xrX3R4X2kgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsIFwmIzM0O3R4XCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjA1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjM3LVx0cGxhdF9kYXQtXHUwMDNlZml4X21hY19zcGVlZCA9IHRlZ3JhX2Vxb3NfZml4X3NwZWVkO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyMzg6XHRwbGF0X2RhdC1cdTAwM2VzZXRfY2xrX3R4X3JhdGUgPSBzdG1tYWNfc2V0X2Nsa190eF9yYXRlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMzktXHRwbGF0X2RhdC1cdTAwM2Vic3BfcHJpdiA9IGVxb3M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNTI9c3RhdGljIHZvaWQgdGVncmFfZXFvc19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjUzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjU0Olx0c3RydWN0IHRlZ3JhX2Vxb3MgKmVxb3MgPSBnZXRfc3RtbWFjX2JzcF9wcml2KFx1MDAyNnBkZXYtXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjU1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjYwPXN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjEtXHRpbnQgKCpwcm9iZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjYyOlx0XHQgICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2MzpcdFx0ICAgICBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqcmVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY0LVx0dm9pZCAoKnJlbW92ZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2NTpcdGNvbnN0IGNoYXIgKnN0bW1hY19jbGtfbmFtZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY2LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNjg9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgZHdjX3Fvc19kYXRhID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjktXHQucHJvYmUgPSBkd2NfcW9zX3Byb2JlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNzA6XHQuc3RtbWFjX2Nsa19uYW1lID0gXCYjMzQ7YXBiX3BjbGtcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3MS19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjczPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhIHRlZ3JhX2Vxb3NfZGF0YSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3NS1cdC5yZW1vdmUgPSB0ZWdyYV9lcW9zX3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjc2Olx0LnN0bW1hY19jbGtfbmFtZSA9IFwmIzM0O3NsYXZlX2J1c1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjc3LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNzk9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgZnNkX2Vxb3NfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjgwOlx0LnN0bW1hY19jbGtfbmFtZSA9IFwmIzM0O3NsYXZlX2J1c1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjgxLX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yODM9c3RhdGljIGludCBkd2NfZXRoX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODUtXHRjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhICpkYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODY6XHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODc6XHRzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyBzdG1tYWNfcmVzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODgtXHRpbnQgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjkxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTI6XHRtZW1zZXQoXHUwMDI2c3RtbWFjX3JlcywgMCwgc2l6ZW9mKHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjk0LVx0LyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI5NTpcdCAqIFNpbmNlIHN0bW1hY19wbGF0Zm9ybSBzdXBwb3J0cyBuYW1lIElSUSBvbmx5LCBiYXNpYyBwbGF0Zm9ybVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTYtXHQgKiByZXNvdXJjZSBpbml0aWFsaXphdGlvbiBpcyBkb25lIGluIHRoZSBnbHVlIGxvZ2ljLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTctXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjk4Olx0c3RtbWFjX3Jlcy5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTk6XHRpZiAoc3RtbWFjX3Jlcy5pcnEgXHUwMDNjIDApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwMDpcdFx0cmV0dXJuIHN0bW1hY19yZXMuaXJxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDE6XHRzdG1tYWNfcmVzLndvbF9pcnEgPSBzdG1tYWNfcmVzLmlycTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDM6XHRzdG1tYWNfcmVzLmFkZHIgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNDpcdGlmIChJU19FUlIoc3RtbWFjX3Jlcy5hZGRyKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzA1Olx0XHRyZXR1cm4gUFRSX0VSUihzdG1tYWNfcmVzLmFkZHIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNzpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzA4LVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMxNjpcdHBsYXRfZGF0LVx1MDAzZXN0bW1hY19jbGsgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMxNzpcdFx0XHRcdFx0XHQgICAgIGRhdGEtXHUwMDNlc3RtbWFjX2Nsa19uYW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTktXHRpZiAoZGF0YS1cdTAwM2Vwcm9iZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzIwOlx0XHRyZXQgPSBkYXRhLVx1MDAzZXByb2JlKHBkZXYsIHBsYXRfZGF0LCBcdTAwMjZzdG1tYWNfcmVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzIxLVx0aWYgKHJldCBcdTAwM2MgMCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMzA6XHRyZXQgPSBzdG1tYWNfZHZyX3Byb2JlKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBwbGF0X2RhdCwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMzMS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNDM9c3RhdGljIHZvaWQgZHdjX2V0aF9kd21hY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzQ3Olx0c3RtbWFjX2R2cl9yZW1vdmUoXHUwMDI2cGRldi1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNDgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNjE9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZHdjX2V0aF9kd21hY19kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNjUtXHRcdC5uYW1lICAgICAgICAgICA9IFwmIzM0O2R3Yy1ldGgtZHdtYWNcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM2NjpcdFx0LnBtICAgICAgICAgICAgID0gXHUwMDI2c3RtbWFjX3BsdGZyX3BtX29wcyxcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAwMzo0NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NDQ4MwoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDY2OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBgc3RtbWFjYCBEcml2ZXI6IEEgVGFyZ2V0ZWQgQXBwcm9hY2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYHN0bW1hY2AgZHJpdmVyLCB3aGljaCBJIGtub3cgaXMgYSBnZW5lcmljIGRyaXZlciBmb3IgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMgaW1wbGVtZW50YXRpb25zLiBBbmQgSSBzZWUgdGhhdCBRRU1VIGFjdHVhbGx5IGhhcyBgaHcvbmV0L2Rlc2lnbndhcmUuY2AsIHdoaWNoIGlzIHRoZSBlbXVsYXRvciBmb3IgdGhpcyBoYXJkd2FyZSwgd2hpY2ggaXMga2V5LiBUaGlzIGdldHMgbWUgdGhpbmtpbmcgYWJvdXQgZnV6emluZyBpdCB3aXRoIHN5emthbGxlci4gVGhlIHdob2xlIHBvaW50IGlzIHRvIGZpbmQgcmVhY2hhYmxlIGJ1Z3MsIHNvIGlmIHN5emthbGxlciBoYXMgZHVnIHNvbWV0aGluZyB1cCBpbiB0aGlzIGRyaXZlciwgd2Uga25vdyB0aGUgY29kZSBpcyBiZWluZyBoaXQgc29tZWhvdy4KClN5emthbGxlciBkb2VzIGEgZ3JlYXQgam9iIGZ1enppbmcgUUVNVSB3aXRoIHZhcmlvdXMgbWFjaGluZSBjb25maWd1cmF0aW9ucywgbGlrZSBgbWNpbXg2dWwtZXZrYCwgYHhsbngtemN1MTAyYCwgYW5kIGBhbGx3aW5uZXItaDNgLiBHb29kLCBzeXprYWxsZXIgc3VwcG9ydHMgQVJNIGFuZCBBUk02NCwgYW5kIHRoaXMgZHJpdmVyIGlzIHJlbGV2YW50IHRvIGEgdmFyaWV0eSBvZiBoYXJkd2FyZS4gU2luY2UgdGhpcyBkcml2ZXIgaXMgZW11bGF0ZWQgd2l0aGluIFFFTVUsIGl0JiMzOTtzIGRlZmluaXRlbHkgd29ydGggZnV6emluZy4KClRoZSBwYXRjaCBpdHNlbGYgbW9kaWZpZXMgYHN0bW1hY19tYWluLmNgLCB0aGUgY29yZSBkcml2ZXIgZm9yICphbGwqIERXTUFDIHZhcmlhbnRzLCBzbyBpdCBpcyBoaWdoIGltcGFjdC4gVGhpcyBhbHNvIGFkZHMgYSBgU1RNTUFDX0RPV05gIGZsYWcgdG8gcHJldmVudCBYRFAgZnJvbSBwcm9jZXNzaW5nIG5ldyBwYWNrZXRzIHdoZW4gdGhlIGludGVyZmFjZSBpcyBkb3duLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgc2lnbmFsIHRoYXQgdGhpcyBjb2RlIGlzIGludGVyZXN0aW5nIHRvIGV4cGxvcmUuIFNvLCB5ZXMsIGRlZmluaXRlbHkgd29ydGggZnV6emluZy4KClRoZSBuZXh0IHN0ZXAgaXMgdG8gbmFpbCBkb3duIHNwZWNpZmljIHN5bWJvbHMsIGFuZCBhdm9pZCB0aGUgbm9pc2UuIEkmIzM5O20gZm9jdXNpbmcgb246CgoqICAgYHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXNgCiogICBgc3RtbWFjX2RyYWluX3hkcGAKKiAgIGBzdG1tYWNfeGRwX3JlbGVhc2VgCiogICBgc3RtbWFjX3N1c3BlbmRgCiogICBgX19zdG1tYWNfb3BlbmAKKiAgIGBfX3N0bW1hY19yZWxlYXNlYAoKSSBrbm93IHRoZSBwcm9tcHQgaXMgZ3VpZGluZyBtZSwgdG8gYXZvaWQgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLiBNeSBtaW5kIGlzIGluc3RhbnRseSBldmFsdWF0aW5nIHdoZXRoZXIgdGhlc2UgZnVuY3Rpb25zIGFyZSBjb21tb24gaW4gdGhlIGRhdGEgcGF0aC4gSG1tLCBsZXQgbWUgdGhpbmsuIGBfX3N0bW1hY19vcGVuYCBhbmQgYF9fc3RtbWFjX3JlbGVhc2VgIGFyZSBpbnRlcmZhY2UgdXAvZG93biBmdW5jdGlvbnMsIHNvIG5vdCBob3QgcGF0aHMuIGBzdG1tYWNfeGRwX3htaXRfYmFja2AgYW5kIGBfX3N0bW1hY194ZHBfcnVuX3Byb2dgIGFyZSBkYXRhIHBhdGguIEdvb2QsIEkmIzM5O2xsIGF2b2lkIHRob3NlLgoKU28sIG5vdyBJIGhhdmUgYSBsaXN0IG9mIHRhcmdldHMgZm9yIGZ1enppbmcuIE5vdywgdG8gbWFrZSBzdXJlIHRoZXNlIHN5bWJvbHMgYXJlIGVuYWJsZWQgaW4gdGhlIGJ1aWxkLiBUaGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIGBzdG1tYWNgLCBzbyB0aGF0JiMzOTtzIHRoZSBrZXJuZWwgbW9kdWxlIEkgbmVlZCB0byBiZSBjb25jZXJuZWQgd2l0aC4gSSB3aWxsIGxvb2sgYXQgdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnYCBmaWxlLiBgU1RNTUFDX0VUSGAgbG9va3MgbGlrZSB0aGUgbWFpbiBjb25maWcg4oCTIGl0JiMzOTtzIGEgYHRyaXN0YXRlICYjMzQ7U1RNaWNyb2VsZWN0cm9uaWNzIDEwLzEwMC8xMDAwL0VRT1MgRXRoZXJuZXQgTUFDIHN1cHBvcnQmIzM0O2AuIFRoaXMgaXMgdGhlIG9uZSBJIG5lZWQgdG8gZm9jdXMgb24uIFdhaXQsIHRoZSBwYXRjaCBtb2RpZmllcyBYRFAtcmVsYXRlZCBjb2RlLiBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgdG8gZW5hYmxlIFhEUCBjb25kaXRpb25hbGx5IHdpdGhpbiBgc3RtbWFjYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMDM6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7WERQJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTgwPU1PRFVMRV9QQVJNX0RFU0MocGh5YWRkciwgXCYjMzQ7UGh5c2ljYWwgZGV2aWNlIGFkZHJlc3NcJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjg0Oi8qIExpbWl0IHRvIG1ha2Ugc3VyZSBYRFAgVFggYW5kIHNsb3cgcGF0aCBjYW4gY29leGlzdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04NS0jZGVmaW5lIFNUTU1BQ19YU0tfVFhfQlVER0VUX01BWFx0MjU2XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6ODk6I2RlZmluZSBTVE1NQUNfWERQX1BBU1NcdFx0MFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo5MDojZGVmaW5lIFNUTU1BQ19YRFBfQ09OU1VNRURcdEJJVCgwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo5MTojZGVmaW5lIFNUTU1BQ19YRFBfVFhcdFx0QklUKDEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjkyOiNkZWZpbmUgU1RNTUFDX1hEUF9SRURJUkVDVFx0QklUKDIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTkzLSNkZWZpbmUgU1RNTUFDX1hTS19DT05TVU1FRFx0QklUKDMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz0yNjk9c3RhdGljIHZvaWQgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yOTItLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI5MzogKiBzdG1tYWNfZHJhaW5feGRwIC0gQ2xlYW51cCBmb3IgWERQIGFwcHNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjk0LSAqIEBwcml2OiBkcml2ZXIgcHJpdmF0ZSBzdHJ1Y3R1cmVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTE1NDU9c3RhdGljIHVuc2lnbmVkIGludCBzdG1tYWNfcnhfb2Zmc2V0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTE1NDctXHRpZiAoc3RtbWFjX3hkcF9pc19lbmFibGVkKHByaXYpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoxNTQ4Olx0XHRyZXR1cm4gWERQX1BBQ0tFVF9IRUFEUk9PTTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMTU0OS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTE3MjU9c3RhdGljIHZvaWQgc3RtbWFjX2ZyZWVfdHhfYnVmZmVyKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTE3MzEtXHRpZiAodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1ZiBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MTczMjpcdCAgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0uYnVmX3R5cGUgIT0gU1RNTUFDX1RYQlVGX1RfWERQX1RYKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTE3MzMtXHRcdGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0ubWFwX2FzX3BhZ2UpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0xNzQ1LVx0aWYgKHR4X3EtXHUwMDNleGRwZltpXSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MTc0NjpcdCAgICAodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1hEUF9UWCB8fFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoxNzQ3Olx0ICAgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfWERQX05ETykpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMTc0OC1cdFx0eGRwX3JldHVybl9mcmFtZSh0eF9xLVx1MDAzZXhkcGZbaV0pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MTg4Mj1zdGF0aWMgaW50IF9faW5pdF9kbWFfcnhfZGVzY19yaW5ncyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0xOTE3LVx0aWYgKHJ4X3EtXHUwMDNleHNrX3Bvb2wpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MTkxODpcdFx0LyogUlggWERQIFpDIGJ1ZmZlciBwb29sIG1heSBub3QgYmUgcG9wdWxhdGVkLCBlLmcuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTE5MTktXHRcdCAqIHhkcHNvY2sgVFgtb25seS5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTI0Mzc9c3RhdGljIHZvaWQgZnJlZV9kbWFfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjQ0My1cdC8qIFJlbGVhc2UgdGhlIERNQSBSWCBzb2NrZXQgYnVmZmVycyBsYXRlclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoyNDQ0Olx0ICogdG8gZW5zdXJlIGFsbCBwZW5kaW5nIFhEUF9UWCBidWZmZXJzIGFyZSByZXR1cm5lZC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjQ0NS1cdCAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjY5MT1zdGF0aWMgYm9vbCBzdG1tYWNfeGRwX3htaXRfemMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCB1MzIgcXVldWUsIHUzMiBidWRnZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yNzM4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoyNzM5Olx0XHQvKiBUbyByZXR1cm4gWERQIGJ1ZmZlciB0byBYU0sgcG9vbCwgd2Ugc2ltcGxlIGNhbGxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjc0MC1cdFx0ICogeHNrX3R4X2NvbXBsZXRlZCgpLCBzbyB3ZSBkb24mIzM5O3QgbmVlZCB0byBmaWxsIHVwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz0yODI3PXN0YXRpYyBpbnQgc3RtbWFjX3R4X2NsZWFuKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IGJ1ZGdldCwgdTMyIHF1ZXVlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjg0OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6Mjg0OTpcdFx0aWYgKHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfWERQX1RYIHx8XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI4NTA6XHRcdCAgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1hEUF9ORE8pIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjg1MS1cdFx0XHR4ZHBmID0gdHhfcS1cdTAwM2V4ZHBmW2VudHJ5XTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI4OTktXHRcdGlmIChsaWtlbHkodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWYgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI5MDA6XHRcdFx0ICAgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWZfdHlwZSAhPSBTVE1NQUNfVFhCVUZfVF9YRFBfVFgpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI5MDEtXHRcdFx0aWYgKHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0ubWFwX2FzX3BhZ2UpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yOTI0LVx0XHRpZiAoeGRwZiBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MjkyNTpcdFx0ICAgIHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfWERQX1RYKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI5MjYtXHRcdFx0eGRwX3JldHVybl9mcmFtZV9yeF9uYXBpKHhkcGYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjkzMC1cdFx0aWYgKHhkcGYgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI5MzE6XHRcdCAgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1hEUF9ORE8pIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjkzMi1cdFx0XHR4ZHBfcmV0dXJuX2ZyYW1lKHhkcGYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NDI0Mj1zdGF0aWMgdm9pZCBfX3N0bW1hY19yZWxlYXNlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MjQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo0MjUwOlx0LyogU2V0IERPV04gZmxhZyB0byBwcmV2ZW50IFhEUCBmcm9tIHByb2Nlc3NpbmcgbmV3IHBhY2tldHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDI1MS1cdHNldF9iaXQoU1RNTUFDX0RPV04sIFx1MDAyNnByaXYtXHUwMDNlc3RhdGUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NTE3OD1zdGF0aWMgaW50IHN0bW1hY194ZHBfeG1pdF94ZHBmKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IHF1ZXVlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTE5MC1cdGlmIChzdG1tYWNfdHhfYXZhaWwocHJpdiwgcXVldWUpIFx1MDAzYyBTVE1NQUNfVFhfVEhSRVNIKHByaXYpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1MTkxOlx0XHRyZXR1cm4gU1RNTUFDX1hEUF9DT05TVU1FRDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTE5Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUxOTYtXHRcdHByaXYtXHUwMDNleHN0YXRzLm1heF9zZHVfdHhxX2Ryb3BbcXVldWVdJiM0MzsmIzQzOztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTE5NzpcdFx0cmV0dXJuIFNUTU1BQ19YRFBfQ09OU1VNRUQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUxOTgtXHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MjA0LVx0XHRpZiAoZG1hX21hcHBpbmdfZXJyb3IocHJpdi1cdTAwM2VkZXZpY2UsIGRtYV9hZGRyKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTIwNTpcdFx0XHRyZXR1cm4gU1RNTUFDX1hEUF9DT05TVU1FRDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTIwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTIwNzpcdFx0YnVmX3R5cGUgPSBTVE1NQUNfVFhCVUZfVF9YRFBfTkRPO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MjA4LVx0fSBlbHNlIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUyMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUyMTY6XHRcdGJ1Zl90eXBlID0gU1RNTUFDX1RYQlVGX1RfWERQX1RYO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MjE3LVx0fVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTI1MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTI1MTpcdHJldHVybiBTVE1NQUNfWERQX1RYO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MjUyLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTUyNjg9c3RhdGljIGludCBzdG1tYWNfeGRwX3htaXRfYmFjayhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01Mjg0LVx0aWYgKHVubGlrZWx5KCF4ZHBmKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTI4NTpcdFx0cmV0dXJuIFNUTU1BQ19YRFBfQ09OU1VNRUQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUyODYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MjkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1Mjk0Olx0LyogRm9yIHplcm8gY29weSBYRFBfVFggYWN0aW9uLCBkbWFfbWFwIGlzIHRydWUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTI5NS1cdHJlcyA9IHN0bW1hY194ZHBfeG1pdF94ZHBmKHByaXYsIHF1ZXVlLCB4ZHBmLCB6Yyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUyOTY6XHRpZiAocmVzID09IFNUTU1BQ19YRFBfVFgpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTI5Ny1cdFx0c3RtbWFjX2ZsdXNoX3R4X2Rlc2NyaXB0b3JzKHByaXYsIHF1ZXVlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTI5ODpcdH0gZWxzZSBpZiAocmVzID09IFNUTU1BQ19YRFBfQ09OU1VNRUQgXHUwMDI2XHUwMDI2IHpjKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUyOTktXHRcdC8qIHhkcCBoYXMgYmVlbiBmcmVlZCBieSB4ZHBfY29udmVydF9idWZmX3RvX2ZyYW1lKCksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz01MzEyPXN0YXRpYyBpbnQgX19zdG1tYWNfeGRwX3J1bl9wcm9nKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzMjAtXHRzd2l0Y2ggKGFjdCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1MzIxOlx0Y2FzZSBYRFBfUEFTUzpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTMyMjpcdFx0cmVzID0gU1RNTUFDX1hEUF9QQVNTO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzIzLVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTMyNDpcdGNhc2UgWERQX1RYOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzI1LVx0XHRyZXMgPSBzdG1tYWNfeGRwX3htaXRfYmFjayhwcml2LCB4ZHApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzI2LVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTMyNzpcdGNhc2UgWERQX1JFRElSRUNUOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzI4LVx0XHRpZiAodW5saWtlbHkodGVzdF9iaXQoU1RNTUFDX0RPV04sIFx1MDAyNnByaXYtXHUwMDNlc3RhdGUpKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTMyOTpcdFx0XHRyZXMgPSBTVE1NQUNfWERQX0NPTlNVTUVEO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzMwLVx0XHRlbHNlIGlmICh4ZHBfZG9fcmVkaXJlY3QocHJpdi1cdTAwM2VkZXYsIHhkcCwgcHJvZykgXHUwMDNjIDApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzMzE6XHRcdFx0cmVzID0gU1RNTUFDX1hEUF9DT05TVU1FRDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTMzMi1cdFx0ZWxzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1MzMzOlx0XHRcdHJlcyA9IFNUTU1BQ19YRFBfUkVESVJFQ1Q7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzMzQtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTMzNy1cdFx0ZmFsbHRocm91Z2g7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzMzg6XHRjYXNlIFhEUF9BQk9SVEVEOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzM5LVx0XHR0cmFjZV94ZHBfZXhjZXB0aW9uKHByaXYtXHUwMDNlZGV2LCBwcm9nLCBhY3QpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzQwLVx0XHRmYWxsdGhyb3VnaDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTM0MTpcdGNhc2UgWERQX0RST1A6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzNDI6XHRcdHJlcyA9IFNUTU1BQ19YRFBfQ09OU1VNRUQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzNDMtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NTM0OT1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnN0bW1hY194ZHBfcnVuX3Byb2coc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTM1Ni1cdGlmICghcHJvZykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1MzU3Olx0XHRyZXMgPSBTVE1NQUNfWERQX1BBU1M7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzNTgtXHRcdGdvdG8gb3V0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NTM2Nj1zdGF0aWMgdm9pZCBzdG1tYWNfZmluYWxpemVfeGRwX3J4KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzNzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzNzQ6XHRpZiAoeGRwX3N0YXR1cyBcdTAwMjYgU1RNTUFDX1hEUF9UWClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTM3NS1cdFx0c3RtbWFjX3R4X3RpbWVyX2FybShwcml2LCBxdWV1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzNzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzNzc6XHRpZiAoeGRwX3N0YXR1cyBcdTAwMjYgU1RNTUFDX1hEUF9SRURJUkVDVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTM3OC1cdFx0eGRwX2RvX2ZsdXNoKCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz01NDk4PXN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3hkcF9idWZmICp4c2tfYnVmZl90b19zdG1tYWNfY3R4KHN0cnVjdCB4ZHBfYnVmZiAqeGRwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01NDk5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTUwMDpcdC8qIEluIFhEUCB6ZXJvIGNvcHkgZGF0YSBwYXRoLCB4ZHAgZmllbGQgaW4gc3RydWN0IHhkcF9idWZmX3hzayBpcyB1c2VkXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU1MDEtXHQgKiB0byByZXByZXNlbnQgaW5jb21pbmcgcGFja2V0LCB3aGVyZWFzIGNiIGZpZWxkIGluIHRoZSBzYW1lIHN0cnVjdHVyZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NTUwOD1zdGF0aWMgaW50IHN0bW1hY19yeF96YyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGludCBsaW1pdCwgdTMyIHF1ZXVlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTYxOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTYxOTpcdFx0LyogWERQIFpDIEZyYW1lIG9ubHkgc3VwcG9ydCBwcmltYXJ5IGJ1ZmZlcnMgZm9yIG5vdyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01NjIwLVx0XHRidWYxX2xlbiA9IHN0bW1hY19yeF9idWYxX2xlbihwcml2LCBwLCBzdGF0dXMsIGxlbik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01NjM2LVx0XHRzd2l0Y2ggKHJlcykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1NjM3Olx0XHRjYXNlIFNUTU1BQ19YRFBfUEFTUzpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTYzOC1cdFx0XHRzdG1tYWNfZGlzcGF0Y2hfc2tiX3pjKHByaXYsIHF1ZXVlLCBwLCBucCwgYnVmLVx1MDAzZXhkcCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01NjQwLVx0XHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1NjQxOlx0XHRjYXNlIFNUTU1BQ19YRFBfQ09OU1VNRUQ6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU2NDItXHRcdFx0eHNrX2J1ZmZfZnJlZShidWYtXHUwMDNleGRwKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU2NDYtXHRcdFx0YnJlYWs7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjU2NDc6XHRcdGNhc2UgU1RNTUFDX1hEUF9UWDpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTY0ODpcdFx0Y2FzZSBTVE1NQUNfWERQX1JFRElSRUNUOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01NjQ5LVx0XHRcdHhkcF9zdGF0dXMgfD0gcmVzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NTY5Mz1zdGF0aWMgaW50IHN0bW1hY19yeChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGludCBsaW1pdCwgdTMyIHF1ZXVlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTgzMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTgzMjpcdFx0XHQvKiBGb3IgTm90IFhEUF9QQVNTIHZlcmRpY3QgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTgzMy1cdFx0XHRpZiAoSVNfRVJSKHNrYikpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU4MzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjU4MzY6XHRcdFx0XHRpZiAoeGRwX3JlcyBcdTAwMjYgU1RNTUFDX1hEUF9DT05TVU1FRCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01ODM3LVx0XHRcdFx0XHRwYWdlX3Bvb2xfcHV0X3BhZ2UocnhfcS1cdTAwM2VwYWdlX3Bvb2wsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01ODQzLVx0XHRcdFx0XHQvKiBDbGVhciBza2IgYXMgaXQgd2FzIHNldCBhc1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1ODQ0Olx0XHRcdFx0XHQgKiBzdGF0dXMgYnkgWERQIHByb2dyYW0uXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU4NDUtXHRcdFx0XHRcdCAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTg1Mi1cdFx0XHRcdFx0Y29udGludWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjU4NTM6XHRcdFx0XHR9IGVsc2UgaWYgKHhkcF9yZXMgXHUwMDI2IChTVE1NQUNfWERQX1RYIHxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTg1NDpcdFx0XHRcdFx0XHQgICAgICBTVE1NQUNfWERQX1JFRElSRUNUKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01ODU1LVx0XHRcdFx0XHR4ZHBfc3RhdHVzIHw9IHhkcF9yZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01ODY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1ODY3Olx0XHRcdC8qIFhEUCBwcm9ncmFtIG1heSBleHBhbmQgb3IgcmVkdWNlIHRhaWwgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTg2OC1cdFx0XHRidWYxX2xlbiA9IGN0eC54ZHAuZGF0YV9lbmQgLSBjdHgueGRwLmRhdGE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01ODc5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1ODgwOlx0XHRcdC8qIFhEUCBwcm9ncmFtIG1heSBhZGp1c3QgaGVhZGVyICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU4ODEtXHRcdFx0aGVhZF9wYWRfbGVuID0gY3R4LnhkcC5kYXRhIC0gY3R4LnhkcC5kYXRhX2hhcmRfc3RhcnQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz02MTIyPXN0YXRpYyBpbnQgc3RtbWFjX2NoYW5nZV9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IG5ld19tdHUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02MTM1LVx0aWYgKHN0bW1hY194ZHBfaXNfZW5hYmxlZChwcml2KSBcdTAwMjZcdTAwMjYgbmV3X210dSBcdTAwM2UgRVRIX0RBVEFfTEVOKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjYxMzY6XHRcdG5ldGRldl9kYmcocHJpdi1cdTAwM2VkZXYsIFwmIzM0O0p1bWJvIGZyYW1lcyBub3Qgc3VwcG9ydGVkIGZvciBYRFBcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02MTM3LVx0XHRyZXR1cm4gLUVJTlZBTDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTY5NTY9c3RhdGljIGludCBzdG1tYWNfYnBmKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBuZXRkZXZfYnBmICpicGYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02OTYwLVx0c3dpdGNoIChicGYtXHUwMDNlY29tbWFuZCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2OTYxOlx0Y2FzZSBYRFBfU0VUVVBfUFJPRzpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjk2Mi1cdFx0cmV0dXJuIHN0bW1hY194ZHBfc2V0X3Byb2cocHJpdiwgYnBmLVx1MDAzZXByb2csIGJwZi1cdTAwM2VleHRhY2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2OTYzOlx0Y2FzZSBYRFBfU0VUVVBfWFNLX1BPT0w6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY5NjQtXHRcdHJldHVybiBzdG1tYWNfeGRwX3NldHVwX3Bvb2wocHJpdiwgYnBmLVx1MDAzZXhzay5wb29sLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9Njk3MT1zdGF0aWMgaW50IHN0bW1hY194ZHBfeG1pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgbnVtX2ZyYW1lcyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY5ODItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjY5ODM6XHRpZiAodW5saWtlbHkoZmxhZ3MgXHUwMDI2IH5YRFBfWE1JVF9GTEFHU19NQVNLKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjk4NC1cdFx0cmV0dXJuIC1FSU5WQUw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02OTk2LVx0XHRyZXMgPSBzdG1tYWNfeGRwX3htaXRfeGRwZihwcml2LCBxdWV1ZSwgZnJhbWVzW2ldLCB0cnVlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6Njk5NzpcdFx0aWYgKHJlcyA9PSBTVE1NQUNfWERQX0NPTlNVTUVEKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02OTk4LVx0XHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzAwMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzAwMzpcdGlmIChmbGFncyBcdTAwMjYgWERQX1hNSVRfRkxVU0gpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzAwNC1cdFx0c3RtbWFjX2ZsdXNoX3R4X2Rlc2NyaXB0b3JzKHByaXYsIHF1ZXVlKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTcxMTQ9dm9pZCBzdG1tYWNfeGRwX3JlbGVhc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcxMzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjcxMzQ6XHQvKiBEcmFpbiBsZWZ0b3ZlciBYRFAgYnVmZmVycyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MTM1LVx0c3RtbWFjX2RyYWluX3hkcChwcml2KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTc4MTc9c3RhdGljIGludCBfX3N0bW1hY19kdnJfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2aWNlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzkzOC1cdFx0XHQgICAgTkVUSUZfRl9SWENTVU07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjc5Mzk6XHRuZGV2LVx1MDAzZXhkcF9mZWF0dXJlcyA9IE5FVERFVl9YRFBfQUNUX0JBU0lDIHwgTkVUREVWX1hEUF9BQ1RfUkVESVJFQ1QgfFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3OTQwOlx0XHRcdCAgICAgTkVUREVWX1hEUF9BQ1RfWFNLX1pFUk9DT1BZO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03OTQxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAwMzo0NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MzY4NQoJCQkJCQkJb3V0cHV0OiAxNjgKCQkJCQkJCXRob3VnaHRzOiA4MzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqWERQIGFuZCBTVE1NQUMgQ29uZmlndXJhdGlvbiBhbmQgRm9jdXMgZm9yIEZ1enppbmcqKgoKT2theSwgc28gSSYjMzk7bSBkaXZpbmcgaW50byB0aGlzIGBzdG1tYWNgIGRyaXZlciBjb2RlLCBzcGVjaWZpY2FsbHkgdGhlIFhEUCBpbnRlZ3JhdGlvbi4gUmlnaHQgb2ZmIHRoZSBiYXQsIEkgc2VlIHRoYXQgWERQIHN1cHBvcnQgaXMgYmFrZWQgaW50byBgc3RtbWFjYCBpZiBCUEYgaXMgZW5hYmxlZC4gTm8gZGVkaWNhdGVkIGBDT05GSUdfU1RNTUFDX1hEUGAgb3B0aW9uLCB3aGljaCBzaW1wbGlmaWVzIHRoaW5ncy4gVGhlIGRyaXZlciB1c2VzIHN0YW5kYXJkIFhEUCBhY3Rpb25zIGxpa2UgYFhEUF9QQVNTYCwgYFhEUF9UWGAsIGFuZCBgWERQX1JFRElSRUNUYC4gIFRoZXJlZm9yZSwgZW5hYmxpbmcgdGhpcyBmdW5jdGlvbmFsaXR5IGhpbmdlcyBvbiBoYXZpbmcgYFNUTU1BQ19FVEhgIGFuZCBgQlBGX1NZU0NBTExgIChmb3IgWERQKSB0dXJuZWQgb24uICBgQlBGX1NZU0NBTExgIGlzIHVzdWFsbHkgYSBnaXZlbiwgc28gdGhhdCYjMzk7cyBwcm9iYWJseSBhbHJlYWR5IGVuYWJsZWQuCgpOb3csIHdoaWNoIGNvbmZpZ3VyYXRpb25zIGFyZSAqc3BlY2lmaWMqIHRvIHRoaXMgbW9kaWZpZWQgY29kZT8gSSBuZWVkIHRvIHRoaW5rIGFib3V0IGhvdyB0aGlzIHdpbGwgY29tcGlsZSBhbmQgYmUgdGVzdGFibGUuICBgU1RNTUFDX1BMQVRGT1JNYCBvciBgU1RNTUFDX1BDSWAgY291bGQgYmUgdXNlZnVsLiBJJiMzOTtsbCBkb3VibGUtY2hlY2sgdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnYCBmaWxlLiAgWXVwLCBgU1RNTUFDX0VUSGAgaXMgdGhlIHByaW1hcnkgb25lLCBhbmQgYFNUTU1BQ19QQ0lgIGVuYWJsZXMgUENJIGJ1cyBzdXBwb3J0LiAgSSBtaWdodCBhbHNvIGNvbnNpZGVyIGBEV01BQ19JTlRFTGAgb3IgYERXTUFDX0dFTkVSSUNgIGJ1dCBJJiMzOTtsbCBuZWVkIHRvIHJlbWVtYmVyIHRoYXQgdGhlc2UgYXJlIG5vdCB0aGUgbWFpbiBmb2N1cy4gTG9va2luZyBhdCB0aGUgcHJvbXB0LCBJIHNob3VsZCBvbmx5IGxpc3QgdGhlIG9uZXMgdGhhdCAqc3BlY2lmaWNhbGx5KiBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4KClNvLCBgU1RNTUFDX0VUSGAgaXMgdGhlIG1vc3QgaW1wb3J0YW50IG9uZS4gTGV0JiMzOTtzIHNlZS4uLiB0aGUgYFNUTU1BQ19QQ0lgIG9wdGlvbiBtaWdodCBiZSB1c2VmdWwgdG8gZW5zdXJlIHRoZSBQQ0kgdmFyaWFudCBjYW4gYmUgZnV6emVkLCBkZXBlbmRpbmcgb24gd2hldGhlciBTeXprYWxsZXIgaGFzIFBDSSBmdXp6aW5nLgoKQWxyaWdodCwgbGV0JiMzOTtzIG5haWwgZG93biB0aGUgZnVuY3Rpb25zIHRoaXMgY2hhbmdlIGlzIHRvdWNoaW5nOiBgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlc2AsIGBzdG1tYWNfZHJhaW5feGRwYCwgYHN0bW1hY194ZHBfcmVsZWFzZWAsIGBzdG1tYWNfc3VzcGVuZGAsIGBfX3N0bW1hY19vcGVuYCwgYW5kIGBfX3N0bW1hY19yZWxlYXNlYC4gIEhvbGQgb24sIGBfX3N0bW1hY19vcGVuYCBhbmQgYF9fc3RtbWFjX3JlbGVhc2VgIGFyZSBwcmV0dHkgc3RhbmRhcmQgbmV0ZGV2IG9wZXJhdGlvbnMuIGBzdG1tYWNfeGRwX3JlbGVhc2VgIHNwZWNpZmljYWxseSBoYW5kbGVzIFhEUCByZWxlYXNlLiBgc3RtbWFjX3N1c3BlbmRgIGRlYWxzIHdpdGggUE0gc3VzcGVuZC4gIGBzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzYCBhbmQgYHN0bW1hY19kcmFpbl94ZHBgIGFyZSBpbnRlcm5hbCwgd2hpY2ggSSYjMzk7bGwga2VlcCBpbiBtaW5kLgoKU28sIHdoaWNoIG9mIHRoZXNlIGFyZSAqZ29vZCogZm9jdXMgc3ltYm9scyBmb3IgZnV6emluZz8gYHN0bW1hY194ZHBfcmVsZWFzZWAgbG9va3MgcHJvbWlzaW5nOyBpdCYjMzk7cyBYRFAtc3BlY2lmaWMgd2l0aGluIGBzdG1tYWNgLiBgc3RtbWFjX2RyYWluX3hkcGAgYW5kIGBzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzYCBhcmUgYWxzbyBsb29raW5nIHNwZWNpZmljIGVub3VnaC4KCkFueSBvdGhlciBjb25maWd1cmF0aW9ucyB0byBjb25zaWRlcj8gTm9wZSwgbm90IHRoYXQgSSBjYW4gc2VlLgoKTGV0JiMzOTtzIHF1aWNrbHkgY29uZmlybSBgc3RtbWFjX3hkcF9yZWxlYXNlYCBpc24mIzM5O3Qgc3RhdGljLiBPa2F5LCBgdm9pZCBzdG1tYWNfeGRwX3JlbGVhc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldilgIGluIGBzdG1tYWNfbWFpbi5jYC4gVGhhdCYjMzk7cyBnb29kLgoKU28sIGhlcmUmIzM5O3MgdGhlIHN1bW1hcnk6CgpXb3J0aEZ1enppbmc6IHRydWUKRm9jdXNTeW1ib2xzOgotIHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMKLSBzdG1tYWNfZHJhaW5feGRwCi0gc3RtbWFjX3hkcF9yZWxlYXNlCi0gc3RtbWFjX3N1c3BlbmQKLSBfX3N0bW1hY19vcGVuCi0gX19zdG1tYWNfcmVsZWFzZQoKRW5hYmxlQ29uZmlnczoKLSBTVE1NQUNfRVRICi0gU1RNTUFDX1BDSQoKUmVhc29uaW5nOiBUaGlzIHBhdGNoIGFkZHJlc3NlcyBYRFAgYnVmZmVyIGRyYWluaW5nIGFuZCBuZXcgcGFja2V0IHByb2Nlc3NpbmcgZHVyaW5nIGludGVyZmFjZSBkb3duIHN0YXRlcyBpbiB0aGUgYHN0bW1hY2AgZHJpdmVyLiBJdCB0b3VjaGVzIGNvcmUgZHJpdmVyIGxvZ2ljIHZpYSB0aGUgbmV3IGBTVE1NQUNfRE9XTmAgZmxhZyBhbmQgbW9kaWZpY2F0aW9ucyB0byBvcGVuL3JlbGVhc2Uvc3VzcGVuZC4KCldhaXQsIGlzIGBzdG1tYWNfeGRwX3JlbGVhc2VgIHJlYWNoYWJsZT8gWWVzLCBpdCYjMzk7cyBjYWxsZWQgZnJvbSBgc3RtbWFjX3hkcF9zZXR1cF9wb29sYCB3aGVuIGRpc2FibGluZyBYRFAuIFdoYXQgYWJvdXQgYHN0bW1hY19zdXNwZW5kYD8gQWxzbyByZWFjaGFibGUgdmlhIHRoZSBQTSBmcmFtZXdvcmsuCgpSaWdodCwgSSYjMzk7bSBoYXBweSB3aXRoIHRoYXQgYW5hbHlzaXMuIFRpbWUgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAwMzo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U1RNTUFDX0VUSCYjMzQ7LAogICAgJiMzNDtTVE1NQUNfUENJJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyYjMzQ7LAogICAgJiMzNDtzdG1tYWNfZHJhaW5feGRwJiMzNDssCiAgICAmIzM0O3N0bW1hY194ZHBfcmVsZWFzZSYjMzQ7LAogICAgJiMzNDtzdG1tYWNfc3VzcGVuZCYjMzQ7LAogICAgJiMzNDtfX3N0bW1hY19vcGVuJiMzNDssCiAgICAmIzM0O19fc3RtbWFjX3JlbGVhc2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHN0bW1hYyBkcml2ZXIgdG8gcHJvcGVybHkgZHJhaW4gWERQIGJ1ZmZlcnMgYW5kIHByZXZlbnQgWERQIGZyb20gcHJvY2Vzc2luZyBuZXcgcGFja2V0cyB3aGVuIHRoZSBpbnRlcmZhY2UgaXMgZG93bi4gSXQgaW50cm9kdWNlcyBhIG5ldyBTVE1NQUNfRE9XTiBmbGFnIGFuZCBtb2RpZmllcyB0aGUgaW50ZXJmYWNlIG9wZW4vcmVsZWFzZS9zdXNwZW5kIHBhdGhzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gcmVhY2hhYmxlIGNvcmUgZHJpdmVyIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtTVE1NQUNfRVRIJiMzNDssCiAgICAmIzM0O1NUTU1BQ19QQ0kmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzJiMzNDssCiAgICAmIzM0O3N0bW1hY19kcmFpbl94ZHAmIzM0OywKICAgICYjMzQ7c3RtbWFjX3hkcF9yZWxlYXNlJiMzNDssCiAgICAmIzM0O3N0bW1hY19zdXNwZW5kJiMzNDssCiAgICAmIzM0O19fc3RtbWFjX29wZW4mIzM0OywKICAgICYjMzQ7X19zdG1tYWNfcmVsZWFzZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgc3RtbWFjIGRyaXZlciB0byBwcm9wZXJseSBkcmFpbiBYRFAgYnVmZmVycyBhbmQgcHJldmVudCBYRFAgZnJvbSBwcm9jZXNzaW5nIG5ldyBwYWNrZXRzIHdoZW4gdGhlIGludGVyZmFjZSBpcyBkb3duLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IFNUTU1BQ19ET1dOIGZsYWcgYW5kIG1vZGlmaWVzIHRoZSBpbnRlcmZhY2Ugb3Blbi9yZWxlYXNlL3N1c3BlbmQgcGF0aHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byByZWFjaGFibGUgY29yZSBkcml2ZXIgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wOFQwMzo0Mzo1MC44NzgwODkxMloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY5NDU4MjI1Njg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNUTU1BQ19FVEhcIixcbiAgICBcIlNUTU1BQ19QQ0lcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzXCIsXG4gICAgXCJzdG1tYWNfZHJhaW5feGRwXCIsXG4gICAgXCJzdG1tYWNfeGRwX3JlbGVhc2VcIixcbiAgICBcInN0bW1hY19zdXNwZW5kXCIsXG4gICAgXCJfX3N0bW1hY19vcGVuXCIsXG4gICAgXCJfX3N0bW1hY19yZWxlYXNlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHN0bW1hYyBkcml2ZXIgdG8gcHJvcGVybHkgZHJhaW4gWERQIGJ1ZmZlcnMgYW5kIHByZXZlbnQgWERQIGZyb20gcHJvY2Vzc2luZyBuZXcgcGFja2V0cyB3aGVuIHRoZSBpbnRlcmZhY2UgaXMgZG93bi4gSXQgaW50cm9kdWNlcyBhIG5ldyBTVE1NQUNfRE9XTiBmbGFnIGFuZCBtb2RpZmllcyB0aGUgaW50ZXJmYWNlIG9wZW4vcmVsZWFzZS9zdXNwZW5kIHBhdGhzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gcmVhY2hhYmxlIGNvcmUgZHJpdmVyIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQwMzo0Mzo1MC44NzgwOTU2OFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDc2NDQ5NzkzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgOGQzZWY4YzFkMzMyYTNjZGI4MjQ5NDI1NjY1Nzk0YTkzMzg0MzA0YlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIEp1bCA4IDAzOjQzOjQ5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXFxuaW5kZXggMmEwZDdlZmY4OGQzZmYuLjlkOTcxYWUzNWQ0OGFlIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXFxuQEAgLTI2Miw3ICsyNjIsMTEgQEAgc3RhdGljIHZvaWQgc3RtbWFjX3ZlcmlmeV9hcmdzKHZvaWQpXFxuIFxcdFxcdHByX3dhcm4oXFxcInN0bW1hYzogbW9kdWxlIHBhcmFtZXRlciAnZmxvd19jdHJsJyBpcyBvYnNvbGV0ZSAtIHBsZWFzZSByZW1vdmUgZnJvbSB5b3VyIG1vZHVsZSBjb25maWd1cmF0aW9uXFxcXG5cXFwiKTtcXG4gfVxcbiBcXG4tc3RhdGljIHZvaWQgX19zdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG4rLyoqXFxuKyAqIHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMgLSBEaXNhYmxlIGFsbCBxdWV1ZXNcXG4rICogQHByaXY6IGRyaXZlciBwcml2YXRlIHN0cnVjdHVyZVxcbisgKi9cXG4rc3RhdGljIHZvaWQgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuIHtcXG4gXFx0dTggcnhfcXVldWVzX2NudCA9IHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZXJ4X3F1ZXVlc190b191c2U7XFxuIFxcdHU4IHR4X3F1ZXVlc19jbnQgPSBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2V0eF9xdWV1ZXNfdG9fdXNlO1xcbkBAIC0yODYsMTYgKzI5MCwxNSBAQCBzdGF0aWMgdm9pZCBfX3N0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbiB9XFxuIFxcbiAvKipcXG4tICogc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyAtIERpc2FibGUgYWxsIHF1ZXVlc1xcbisgKiBzdG1tYWNfZHJhaW5feGRwIC0gQ2xlYW51cCBmb3IgWERQIGFwcHNcXG4gICogQHByaXY6IGRyaXZlciBwcml2YXRlIHN0cnVjdHVyZVxcbiAgKi9cXG4tc3RhdGljIHZvaWQgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuK3N0YXRpYyB2b2lkIHN0bW1hY19kcmFpbl94ZHAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbiB7XFxuIFxcdHU4IHJ4X3F1ZXVlc19jbnQgPSBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2VyeF9xdWV1ZXNfdG9fdXNlO1xcbiBcXHRzdHJ1Y3Qgc3RtbWFjX3J4X3F1ZXVlICpyeF9xO1xcbiBcXHR1OCBxdWV1ZTtcXG4gXFxuLVxcdC8qIHN5bmNocm9uaXplX3JjdSgpIG5lZWRlZCBmb3IgcGVuZGluZyBYRFAgYnVmZmVycyB0byBkcmFpbiAqL1xcbiBcXHRmb3IgKHF1ZXVlID0gMDsgcXVldWUgXFx1MDAzYyByeF9xdWV1ZXNfY250OyBxdWV1ZSsrKSB7XFxuIFxcdFxcdHJ4X3EgPSBcXHUwMDI2cHJpdi1cXHUwMDNlZG1hX2NvbmYucnhfcXVldWVbcXVldWVdO1xcbiBcXHRcXHRpZiAocnhfcS1cXHUwMDNleHNrX3Bvb2wpIHtcXG5AQCAtMzAzLDggKzMwNiw2IEBAIHN0YXRpYyB2b2lkIHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0fVxcbiBcXHR9XFxuLVxcbi1cXHRfX3N0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMocHJpdik7XFxuIH1cXG4gXFxuIC8qKlxcbkBAIC00MTQ5LDYgKzQxNTAsOSBAQCBzdGF0aWMgaW50IF9fc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4gXFxuIFxcdHN0bW1hY19yZXNldF9xdWV1ZXNfcGFyYW0ocHJpdik7XFxuIFxcbitcXHQvKiBDbGVhciBET1dOIGZsYWcgd2hlbiBvcGVuaW5nIHRoZSBpbnRlcmZhY2UgKi9cXG4rXFx0Y2xlYXJfYml0KFNUTU1BQ19ET1dOLCBcXHUwMDI2cHJpdi1cXHUwMDNlc3RhdGUpO1xcbitcXG4gXFx0cmV0ID0gc3RtbWFjX2h3X3NldHVwKGRldik7XFxuIFxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuIFxcdFxcdG5ldGRldl9lcnIocHJpdi1cXHUwMDNlZGV2LCBcXFwiJXM6IEh3IHNldHVwIGZhaWxlZFxcXFxuXFxcIiwgX19mdW5jX18pO1xcbkBAIC00MjQzLDYgKzQyNDcsOSBAQCBzdGF0aWMgdm9pZCBfX3N0bW1hY19yZWxlYXNlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuIFxcdC8qIFN0b3AgYW5kIGRpc2Nvbm5lY3QgdGhlIFBIWSAqL1xcbiBcXHRwaHlsaW5rX3N0b3AocHJpdi1cXHUwMDNlcGh5bGluayk7XFxuIFxcbitcXHQvKiBTZXQgRE9XTiBmbGFnIHRvIHByZXZlbnQgWERQIGZyb20gcHJvY2Vzc2luZyBuZXcgcGFja2V0cyAqL1xcbitcXHRzZXRfYml0KFNUTU1BQ19ET1dOLCBcXHUwMDI2cHJpdi1cXHUwMDNlc3RhdGUpO1xcbitcXG4gXFx0c3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhwcml2KTtcXG4gXFxuIFxcdGZvciAoY2hhbiA9IDA7IGNoYW4gXFx1MDAzYyBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2V0eF9xdWV1ZXNfdG9fdXNlOyBjaGFuKyspXFxuQEAgLTQyNTYsNiArNDI2Myw4IEBAIHN0YXRpYyB2b2lkIF9fc3RtbWFjX3JlbGVhc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4gXFx0LyogU3RvcCBUWC9SWCBETUEgYW5kIGNsZWFyIHRoZSBkZXNjcmlwdG9ycyAqL1xcbiBcXHRzdG1tYWNfc3RvcF9hbGxfZG1hKHByaXYpO1xcbiBcXG4rXFx0c3RtbWFjX2RyYWluX3hkcChwcml2KTtcXG4rXFxuIFxcdC8qIFJlbGVhc2UgYW5kIGZyZWUgdGhlIFJ4L1R4IHJlc291cmNlcyAqL1xcbiBcXHRmcmVlX2RtYV9kZXNjX3Jlc291cmNlcyhwcml2LCBcXHUwMDI2cHJpdi1cXHUwMDNlZG1hX2NvbmYpO1xcbiBcXG5AQCAtNTI2MCwxMiArNTI2OSwxOCBAQCBzdGF0aWMgaW50IHN0bW1hY194ZHBfeG1pdF9iYWNrKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG4gXFx0XFx0XFx0XFx0c3RydWN0IHhkcF9idWZmICp4ZHApXFxuIHtcXG4gXFx0Ym9vbCB6YyA9ICEhKHhkcC1cXHUwMDNlcnhxLVxcdTAwM2VtZW0udHlwZSA9PSBNRU1fVFlQRV9YU0tfQlVGRl9QT09MKTtcXG4tXFx0c3RydWN0IHhkcF9mcmFtZSAqeGRwZiA9IHhkcF9jb252ZXJ0X2J1ZmZfdG9fZnJhbWUoeGRwKTtcXG4rXFx0c3RydWN0IHhkcF9mcmFtZSAqeGRwZjtcXG4gXFx0aW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTtcXG4gXFx0c3RydWN0IG5ldGRldl9xdWV1ZSAqbnE7XFxuIFxcdGludCBxdWV1ZTtcXG4gXFx0aW50IHJlcztcXG4gXFxuK1xcdGlmICh1bmxpa2VseSh0ZXN0X2JpdChTVE1NQUNfRE9XTiwgXFx1MDAyNnByaXYtXFx1MDAzZXN0YXRlKSkpIHtcXG4rXFx0XFx0eHNrX2J1ZmZfZnJlZSh4ZHApO1xcbitcXHRcXHRyZXR1cm4gU1RNTUFDX1hTS19DT05TVU1FRDtcXG4rXFx0fVxcbitcXG4rXFx0eGRwZiA9IHhkcF9jb252ZXJ0X2J1ZmZfdG9fZnJhbWUoeGRwKTtcXG4gXFx0aWYgKHVubGlrZWx5KCF4ZHBmKSlcXG4gXFx0XFx0cmV0dXJuIFNUTU1BQ19YRFBfQ09OU1VNRUQ7XFxuIFxcbkBAIC01MzEwLDcgKzUzMjUsOSBAQCBzdGF0aWMgaW50IF9fc3RtbWFjX3hkcF9ydW5fcHJvZyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuIFxcdFxcdHJlcyA9IHN0bW1hY194ZHBfeG1pdF9iYWNrKHByaXYsIHhkcCk7XFxuIFxcdFxcdGJyZWFrO1xcbiBcXHRjYXNlIFhEUF9SRURJUkVDVDpcXG4tXFx0XFx0aWYgKHhkcF9kb19yZWRpcmVjdChwcml2LVxcdTAwM2VkZXYsIHhkcCwgcHJvZykgXFx1MDAzYyAwKVxcbitcXHRcXHRpZiAodW5saWtlbHkodGVzdF9iaXQoU1RNTUFDX0RPV04sIFxcdTAwMjZwcml2LVxcdTAwM2VzdGF0ZSkpKVxcbitcXHRcXHRcXHRyZXMgPSBTVE1NQUNfWERQX0NPTlNVTUVEO1xcbitcXHRcXHRlbHNlIGlmICh4ZHBfZG9fcmVkaXJlY3QocHJpdi1cXHUwMDNlZGV2LCB4ZHAsIHByb2cpIFxcdTAwM2MgMClcXG4gXFx0XFx0XFx0cmVzID0gU1RNTUFDX1hEUF9DT05TVU1FRDtcXG4gXFx0XFx0ZWxzZVxcbiBcXHRcXHRcXHRyZXMgPSBTVE1NQUNfWERQX1JFRElSRUNUO1xcbkBAIC02NDA0LDcgKzY0MjEsNyBAQCBzdGF0aWMgaW50IHN0bW1hY19zZXR1cF90Y19ibG9ja19jYihlbnVtIHRjX3NldHVwX3R5cGUgdHlwZSwgdm9pZCAqdHlwZV9kYXRhLFxcbiBcXHRpZiAoIXRjX2Nsc19jYW5fb2ZmbG9hZF9hbmRfY2hhaW4wKHByaXYtXFx1MDAzZWRldiwgdHlwZV9kYXRhKSlcXG4gXFx0XFx0cmV0dXJuIHJldDtcXG4gXFxuLVxcdF9fc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhwcml2KTtcXG4rXFx0c3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhwcml2KTtcXG4gXFxuIFxcdHN3aXRjaCAodHlwZSkge1xcbiBcXHRjYXNlIFRDX1NFVFVQX0NMU1UzMjpcXG5AQCAtNzExNCw2ICs3MTMxLDkgQEAgdm9pZCBzdG1tYWNfeGRwX3JlbGVhc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4gXFx0LyogU3RvcCBUWC9SWCBETUEgY2hhbm5lbHMgKi9cXG4gXFx0c3RtbWFjX3N0b3BfYWxsX2RtYShwcml2KTtcXG4gXFxuK1xcdC8qIERyYWluIGxlZnRvdmVyIFhEUCBidWZmZXJzICovXFxuK1xcdHN0bW1hY19kcmFpbl94ZHAocHJpdik7XFxuK1xcbiBcXHQvKiBSZWxlYXNlIGFuZCBmcmVlIHRoZSBSeC9UeCByZXNvdXJjZXMgKi9cXG4gXFx0ZnJlZV9kbWFfZGVzY19yZXNvdXJjZXMocHJpdiwgXFx1MDAyNnByaXYtXFx1MDAzZWRtYV9jb25mKTtcXG4gXFxuQEAgLTgyMDAsNiArODIyMCw4IEBAIGludCBzdG1tYWNfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpXFxuIFxcdC8qIFN0b3AgVFgvUlggRE1BICovXFxuIFxcdHN0bW1hY19zdG9wX2FsbF9kbWEocHJpdik7XFxuIFxcbitcXHRzdG1tYWNfZHJhaW5feGRwKHByaXYpO1xcbitcXG4gXFx0c3RtbWFjX2xlZ2FjeV9zZXJkZXNfcG93ZXJfZG93bihwcml2KTtcXG4gXFxuIFxcdC8qIEVuYWJsZSBQb3dlciBkb3duIG1vZGUgYnkgcHJvZ3JhbW1pbmcgdGhlIFBNVCByZWdzICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDAzOjQzOjUxLjM1NTE5MjIwM1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njg5ODExMTM2MzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1RNTUFDX0VUSFwiLFxuICAgIFwiU1RNTUFDX1BDSVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXNcIixcbiAgICBcInN0bW1hY19kcmFpbl94ZHBcIixcbiAgICBcInN0bW1hY194ZHBfcmVsZWFzZVwiLFxuICAgIFwic3RtbWFjX3N1c3BlbmRcIixcbiAgICBcIl9fc3RtbWFjX29wZW5cIixcbiAgICBcIl9fc3RtbWFjX3JlbGVhc2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgc3RtbWFjIGRyaXZlciB0byBwcm9wZXJseSBkcmFpbiBYRFAgYnVmZmVycyBhbmQgcHJldmVudCBYRFAgZnJvbSBwcm9jZXNzaW5nIG5ldyBwYWNrZXRzIHdoZW4gdGhlIGludGVyZmFjZSBpcyBkb3duLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IFNUTU1BQ19ET1dOIGZsYWcgYW5kIG1vZGlmaWVzIHRoZSBpbnRlcmZhY2Ugb3Blbi9yZWxlYXNlL3N1c3BlbmQgcGF0aHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byByZWFjaGFibGUgY29yZSBkcml2ZXIgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgOGQzZWY4YzFkMzMyYTNjZGI4MjQ5NDI1NjY1Nzk0YTkzMzg0MzA0YlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDggMDM6NDM6NDkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuaW5kZXggMmEwZDdlZmY4OGQzZmYuLjlkOTcxYWUzNWQ0OGFlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuQEAgLTI2Miw3ICsyNjIsMTEgQEAgc3RhdGljIHZvaWQgc3RtbWFjX3ZlcmlmeV9hcmdzKHZvaWQpXG4gXHRcdHByX3dhcm4oXCJzdG1tYWM6IG1vZHVsZSBwYXJhbWV0ZXIgJ2Zsb3dfY3RybCcgaXMgb2Jzb2xldGUgLSBwbGVhc2UgcmVtb3ZlIGZyb20geW91ciBtb2R1bGUgY29uZmlndXJhdGlvblxcblwiKTtcbiB9XG4gXG4tc3RhdGljIHZvaWQgX19zdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbisvKipcbisgKiBzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzIC0gRGlzYWJsZSBhbGwgcXVldWVzXG4rICogQHByaXY6IGRyaXZlciBwcml2YXRlIHN0cnVjdHVyZVxuKyAqL1xuK3N0YXRpYyB2b2lkIHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuIHtcbiBcdHU4IHJ4X3F1ZXVlc19jbnQgPSBwcml2LVx1MDAzZXBsYXQtXHUwMDNlcnhfcXVldWVzX3RvX3VzZTtcbiBcdHU4IHR4X3F1ZXVlc19jbnQgPSBwcml2LVx1MDAzZXBsYXQtXHUwMDNldHhfcXVldWVzX3RvX3VzZTtcbkBAIC0yODYsMTYgKzI5MCwxNSBAQCBzdGF0aWMgdm9pZCBfX3N0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuIH1cbiBcbiAvKipcbi0gKiBzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzIC0gRGlzYWJsZSBhbGwgcXVldWVzXG4rICogc3RtbWFjX2RyYWluX3hkcCAtIENsZWFudXAgZm9yIFhEUCBhcHBzXG4gICogQHByaXY6IGRyaXZlciBwcml2YXRlIHN0cnVjdHVyZVxuICAqL1xuLXN0YXRpYyB2b2lkIHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuK3N0YXRpYyB2b2lkIHN0bW1hY19kcmFpbl94ZHAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuIHtcbiBcdHU4IHJ4X3F1ZXVlc19jbnQgPSBwcml2LVx1MDAzZXBsYXQtXHUwMDNlcnhfcXVldWVzX3RvX3VzZTtcbiBcdHN0cnVjdCBzdG1tYWNfcnhfcXVldWUgKnJ4X3E7XG4gXHR1OCBxdWV1ZTtcbiBcbi1cdC8qIHN5bmNocm9uaXplX3JjdSgpIG5lZWRlZCBmb3IgcGVuZGluZyBYRFAgYnVmZmVycyB0byBkcmFpbiAqL1xuIFx0Zm9yIChxdWV1ZSA9IDA7IHF1ZXVlIFx1MDAzYyByeF9xdWV1ZXNfY250OyBxdWV1ZSsrKSB7XG4gXHRcdHJ4X3EgPSBcdTAwMjZwcml2LVx1MDAzZWRtYV9jb25mLnJ4X3F1ZXVlW3F1ZXVlXTtcbiBcdFx0aWYgKHJ4X3EtXHUwMDNleHNrX3Bvb2wpIHtcbkBAIC0zMDMsOCArMzA2LDYgQEAgc3RhdGljIHZvaWQgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4gXHRcdFx0YnJlYWs7XG4gXHRcdH1cbiBcdH1cbi1cbi1cdF9fc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhwcml2KTtcbiB9XG4gXG4gLyoqXG5AQCAtNDE0OSw2ICs0MTUwLDkgQEAgc3RhdGljIGludCBfX3N0bW1hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXG4gXHRzdG1tYWNfcmVzZXRfcXVldWVzX3BhcmFtKHByaXYpO1xuIFxuK1x0LyogQ2xlYXIgRE9XTiBmbGFnIHdoZW4gb3BlbmluZyB0aGUgaW50ZXJmYWNlICovXG4rXHRjbGVhcl9iaXQoU1RNTUFDX0RPV04sIFx1MDAyNnByaXYtXHUwMDNlc3RhdGUpO1xuK1xuIFx0cmV0ID0gc3RtbWFjX2h3X3NldHVwKGRldik7XG4gXHRpZiAocmV0IFx1MDAzYyAwKSB7XG4gXHRcdG5ldGRldl9lcnIocHJpdi1cdTAwM2VkZXYsIFwiJXM6IEh3IHNldHVwIGZhaWxlZFxcblwiLCBfX2Z1bmNfXyk7XG5AQCAtNDI0Myw2ICs0MjQ3LDkgQEAgc3RhdGljIHZvaWQgX19zdG1tYWNfcmVsZWFzZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuIFx0LyogU3RvcCBhbmQgZGlzY29ubmVjdCB0aGUgUEhZICovXG4gXHRwaHlsaW5rX3N0b3AocHJpdi1cdTAwM2VwaHlsaW5rKTtcbiBcbitcdC8qIFNldCBET1dOIGZsYWcgdG8gcHJldmVudCBYRFAgZnJvbSBwcm9jZXNzaW5nIG5ldyBwYWNrZXRzICovXG4rXHRzZXRfYml0KFNUTU1BQ19ET1dOLCBcdTAwMjZwcml2LVx1MDAzZXN0YXRlKTtcbitcbiBcdHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXMocHJpdik7XG4gXG4gXHRmb3IgKGNoYW4gPSAwOyBjaGFuIFx1MDAzYyBwcml2LVx1MDAzZXBsYXQtXHUwMDNldHhfcXVldWVzX3RvX3VzZTsgY2hhbisrKVxuQEAgLTQyNTYsNiArNDI2Myw4IEBAIHN0YXRpYyB2b2lkIF9fc3RtbWFjX3JlbGVhc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbiBcdC8qIFN0b3AgVFgvUlggRE1BIGFuZCBjbGVhciB0aGUgZGVzY3JpcHRvcnMgKi9cbiBcdHN0bW1hY19zdG9wX2FsbF9kbWEocHJpdik7XG4gXG4rXHRzdG1tYWNfZHJhaW5feGRwKHByaXYpO1xuK1xuIFx0LyogUmVsZWFzZSBhbmQgZnJlZSB0aGUgUngvVHggcmVzb3VyY2VzICovXG4gXHRmcmVlX2RtYV9kZXNjX3Jlc291cmNlcyhwcml2LCBcdTAwMjZwcml2LVx1MDAzZWRtYV9jb25mKTtcbiBcbkBAIC01MjYwLDEyICs1MjY5LDE4IEBAIHN0YXRpYyBpbnQgc3RtbWFjX3hkcF94bWl0X2JhY2soc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuIFx0XHRcdFx0c3RydWN0IHhkcF9idWZmICp4ZHApXG4ge1xuIFx0Ym9vbCB6YyA9ICEhKHhkcC1cdTAwM2VyeHEtXHUwMDNlbWVtLnR5cGUgPT0gTUVNX1RZUEVfWFNLX0JVRkZfUE9PTCk7XG4tXHRzdHJ1Y3QgeGRwX2ZyYW1lICp4ZHBmID0geGRwX2NvbnZlcnRfYnVmZl90b19mcmFtZSh4ZHApO1xuK1x0c3RydWN0IHhkcF9mcmFtZSAqeGRwZjtcbiBcdGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7XG4gXHRzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpucTtcbiBcdGludCBxdWV1ZTtcbiBcdGludCByZXM7XG4gXG4rXHRpZiAodW5saWtlbHkodGVzdF9iaXQoU1RNTUFDX0RPV04sIFx1MDAyNnByaXYtXHUwMDNlc3RhdGUpKSkge1xuK1x0XHR4c2tfYnVmZl9mcmVlKHhkcCk7XG4rXHRcdHJldHVybiBTVE1NQUNfWFNLX0NPTlNVTUVEO1xuK1x0fVxuK1xuK1x0eGRwZiA9IHhkcF9jb252ZXJ0X2J1ZmZfdG9fZnJhbWUoeGRwKTtcbiBcdGlmICh1bmxpa2VseSgheGRwZikpXG4gXHRcdHJldHVybiBTVE1NQUNfWERQX0NPTlNVTUVEO1xuIFxuQEAgLTUzMTAsNyArNTMyNSw5IEBAIHN0YXRpYyBpbnQgX19zdG1tYWNfeGRwX3J1bl9wcm9nKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbiBcdFx0cmVzID0gc3RtbWFjX3hkcF94bWl0X2JhY2socHJpdiwgeGRwKTtcbiBcdFx0YnJlYWs7XG4gXHRjYXNlIFhEUF9SRURJUkVDVDpcbi1cdFx0aWYgKHhkcF9kb19yZWRpcmVjdChwcml2LVx1MDAzZWRldiwgeGRwLCBwcm9nKSBcdTAwM2MgMClcbitcdFx0aWYgKHVubGlrZWx5KHRlc3RfYml0KFNUTU1BQ19ET1dOLCBcdTAwMjZwcml2LVx1MDAzZXN0YXRlKSkpXG4rXHRcdFx0cmVzID0gU1RNTUFDX1hEUF9DT05TVU1FRDtcbitcdFx0ZWxzZSBpZiAoeGRwX2RvX3JlZGlyZWN0KHByaXYtXHUwMDNlZGV2LCB4ZHAsIHByb2cpIFx1MDAzYyAwKVxuIFx0XHRcdHJlcyA9IFNUTU1BQ19YRFBfQ09OU1VNRUQ7XG4gXHRcdGVsc2VcbiBcdFx0XHRyZXMgPSBTVE1NQUNfWERQX1JFRElSRUNUO1xuQEAgLTY0MDQsNyArNjQyMSw3IEBAIHN0YXRpYyBpbnQgc3RtbWFjX3NldHVwX3RjX2Jsb2NrX2NiKGVudW0gdGNfc2V0dXBfdHlwZSB0eXBlLCB2b2lkICp0eXBlX2RhdGEsXG4gXHRpZiAoIXRjX2Nsc19jYW5fb2ZmbG9hZF9hbmRfY2hhaW4wKHByaXYtXHUwMDNlZGV2LCB0eXBlX2RhdGEpKVxuIFx0XHRyZXR1cm4gcmV0O1xuIFxuLVx0X19zdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzKHByaXYpO1xuK1x0c3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhwcml2KTtcbiBcbiBcdHN3aXRjaCAodHlwZSkge1xuIFx0Y2FzZSBUQ19TRVRVUF9DTFNVMzI6XG5AQCAtNzExNCw2ICs3MTMxLDkgQEAgdm9pZCBzdG1tYWNfeGRwX3JlbGVhc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbiBcdC8qIFN0b3AgVFgvUlggRE1BIGNoYW5uZWxzICovXG4gXHRzdG1tYWNfc3RvcF9hbGxfZG1hKHByaXYpO1xuIFxuK1x0LyogRHJhaW4gbGVmdG92ZXIgWERQIGJ1ZmZlcnMgKi9cbitcdHN0bW1hY19kcmFpbl94ZHAocHJpdik7XG4rXG4gXHQvKiBSZWxlYXNlIGFuZCBmcmVlIHRoZSBSeC9UeCByZXNvdXJjZXMgKi9cbiBcdGZyZWVfZG1hX2Rlc2NfcmVzb3VyY2VzKHByaXYsIFx1MDAyNnByaXYtXHUwMDNlZG1hX2NvbmYpO1xuIFxuQEAgLTgyMDAsNiArODIyMCw4IEBAIGludCBzdG1tYWNfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpXG4gXHQvKiBTdG9wIFRYL1JYIERNQSAqL1xuIFx0c3RtbWFjX3N0b3BfYWxsX2RtYShwcml2KTtcbiBcbitcdHN0bW1hY19kcmFpbl94ZHAocHJpdik7XG4rXG4gXHRzdG1tYWNfbGVnYWN5X3NlcmRlc19wb3dlcl9kb3duKHByaXYpO1xuIFxuIFx0LyogRW5hYmxlIFBvd2VyIGRvd24gbW9kZSBieSBwcm9ncmFtbWluZyB0aGUgUE1UIHJlZ3MgKi9cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDAzOjQzOjUxLjM1NTE5MzI1M1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY4NTk2NjM5NTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUGF0Y2ggdG8gdGhlIFNUTU1BQyBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY2AuIEl0J3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCwgZnVuY3Rpb25hbGx5IHNwZWFraW5nLiBUaGV5J3ZlIHJlbmFtZWQgYF9fc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlc2AgdG8gYHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXNgIOKAkyBub3RoaW5nIGdyb3VuZC1icmVha2luZyB0aGVyZS4gVGhlbiwgdGhleSd2ZSBwdWxsZWQgdGhlIFhEUCBkcmFpbmluZyBsb2dpYyBvdXQgaW50byBpdHMgb3duIGZ1bmN0aW9uLCBgc3RtbWFjX2RyYWluX3hkcGAuIFNtYXJ0OyB0aGF0J3MgZ29vZCBmb3IgcmVhZGFiaWxpdHkgYW5kIHBvdGVudGlhbCByZXVzZS4gVGhlIG1lYXQgb2YgaXQgc2VlbXMgdG8gYmUgYXJvdW5kIHRoaXMgYFNUTU1BQ19ET1dOYCBmbGFnLiBUaGV5J3JlIGFkZGluZyBjaGVja3MgZm9yIGl0IGluIGEgZmV3IHBsYWNlcy4gRXNzZW50aWFsbHksIGl0IGxvb2tzIGxpa2UgdGhleSdyZSB0cnlpbmcgdG8gcHJldmVudCBYRFAgZnJvbSB0b3VjaGluZyBwYWNrZXRzIHdoZW4gdGhlIGludGVyZmFjZSBpcyBkb3duLiBNYWtlcyBzZW5zZTsgYXZvaWQgYW55IHdlaXJkIHJhY2UgY29uZGl0aW9ucyBvciBhdHRlbXB0cyB0byBwcm9jZXNzIHBhY2tldHMgb24gYSBkZWFkIGludGVyZmFjZS4gVGhleSBzZXQgYFNUTU1BQ19ET1dOYCBpbiBgX19zdG1tYWNfcmVsZWFzZWAgYW5kIGNsZWFyIGl0IGluIGBfX3N0bW1hY19vcGVuYC4gQW5kIHRoZW4sIGNyaXRpY2FsbHksIHRoZXkncmUgY2hlY2tpbmcgaXQgaW4gYHN0bW1hY194ZHBfeG1pdF9iYWNrYCwgYF9fc3RtbWFjX3hkcF9ydW5fcHJvZ2AgYW5kIGNhbGxpbmcgYHN0bW1hY19kcmFpbl94ZHBgIGluIGBfX3N0bW1hY19yZWxlYXNlYCwgYHN0bW1hY194ZHBfcmVsZWFzZWAsIGFuZCBgc3RtbWFjX3N1c3BlbmRgLiBPa2F5LCBzbyBpdCBsb29rcyBsaWtlIHRoZXkgYXJlIGNhbGxpbmcgdGhlIGRyYWluaW5nIGZ1bmN0aW9uIGluIGRpZmZlcmVudCBwbGFjZXMuXG5cbk5vdywgZnJvbSBhIHRlc3RpbmcgcGVyc3BlY3RpdmUsIHRoaXMgYnJpbmdzIHVwIHNvbWUgaW1tZWRpYXRlIHF1ZXN0aW9ucy4gVGhpcyBpcyBhICpoYXJkd2FyZSogZHJpdmVyLiBTcGVjaWZpY2FsbHksIGl0J3MgZm9yIFNUTWljcm9lbGVjdHJvbmljcyBFdGhlcm5ldCBNQUNzLCB3aGljaCBtZWFucyBpdCdzIGxpa2VseSBkZWFsaW5nIHdpdGggYWN0dWFsIGhhcmR3YXJlIHJlZ2lzdGVycy4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGNhbiB0aGlzIGJlIGZ1enplZD8gSXMgdGhlcmUgYSB2aXJ0dWFsIGNvdW50ZXJwYXJ0LCBsaWtlIGEgdmlydGlvIGRldmljZSwgdGhhdCBJIGNhbiB1c2UgdG8gZW11bGF0ZSBpdD8gUHJvYmFibHkgbm90LCBzaW5jZSBpdCdzIGFuIFNUTWljcm9lbGVjdHJvbmljcyBzcGVjaWZpYyBkcml2ZXIuIFNvLCBJIG5lZWQgdG8gY2hlY2sgaG93IGl0J3MgY29ubmVjdGVkLiBJdCBpcyBhIFBDSSBkcml2ZXI/IEkgbmVlZCB0byBsb29rIGludG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuY2AsIHdoaWNoIGlzIGEgZ29vZCBjbHVlLiBJIHdpbGwgcXVpY2tseSBydW4gYSBgZ3JlcHBlcmAgY2hlY2sgdG8gc2VlLiBJIGNhbid0IHN0YXJ0IGZ1enppbmcgc29tZXRoaW5nIHRoYXQgaXNuJ3QgY29ubmVjdGVkIHRvIHRoZSBjb3JyZWN0IGhhcmR3YXJlIG9yIHZpcnR1YWxpc2VkLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTIzLCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDI2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMDM6NDM6NTguMjE0ODU5MjM5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5NzMyMzI4MDMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RtbWFjX3BjaVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJEb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0PTEwNz1zeW50YXggKGUuZy4gZm9yIFBDSSBtb2R1bGUpOjpcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0LTEwOC1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMucnN0OjEwOTogICAgbW9kcHJvYmUgc3RtbWFjX3BjaSBbXFx1MDAzY29wdGlvblxcdTAwM2U9XFx1MDAzY1ZBTDFcXHUwMDNlLFxcdTAwM2NWQUwyXFx1MDAzZSwuLi5dXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLnJzdC0xMTAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT01Mz1vYmotJChDT05GSUdfRFdNQUNfTU9UT1JDT01NKVxcdCs9IGR3bWFjLW1vdG9yY29tbS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTQ6c3RtbWFjLXBjaS1vYmpzOj0gc3RtbWFjX3BjaS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTI1PXN0cnVjdCBpbnRlbF9wcml2X2RhdGEge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0zOS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjQwOnN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00MS1cXHR1bnNpZ25lZCBpbnQgZnVuYztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0NTpzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0NjpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgKmZ1bmM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00Ny1cXHRzaXplX3QgbmZ1bmNzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjUwOnN0cnVjdCBzdG1tYWNfcGNpX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNTEtXFx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MT1zdGF0aWMgY29uc3QgaW50IGFkbG5fdHNuX2xhbmVfcmVnc1tdID0gezZ9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5MzpzdGF0aWMgaW50IHN0bW1hY19wY2lfZmluZF9waHlfYWRkcihzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk0LVxcdFxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqZG1pX2xpc3QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NjpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgKmZ1bmNfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk3OlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhICpkbWlfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk4LVxcdGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICpkbWlfaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTc1NT1zdGF0aWMgaW50IGVobF9zZ21paV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy03NzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo3NzU6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3NnbWlpMWdfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTc3Ni1cXHQuc2V0dXAgPSBlaGxfc2dtaWlfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9Nzc5PXN0YXRpYyBpbnQgZWhsX3JnbWlpX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTc4OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjc5MDpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcmdtaWkxZ19pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNzkxLVxcdC5zZXR1cCA9IGVobF9yZ21paV9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04MTA9c3RhdGljIGludCBlaGxfcHNlMF9yZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTgxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjgxNzpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMF9yZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MTgtXFx0LnNldHVwID0gZWhsX3BzZTBfcmdtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04MjE9c3RhdGljIGludCBlaGxfcHNlMF9zZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTgzOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjgzOTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMF9zZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04NDAtXFx0LnNldHVwID0gZWhsX3BzZTBfc2dtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04NTk9c3RhdGljIGludCBlaGxfcHNlMV9yZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg2NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjg2NjpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMV9yZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04NjctXFx0LnNldHVwID0gZWhsX3BzZTFfcmdtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04NzA9c3RhdGljIGludCBlaGxfcHNlMV9zZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjg4ODpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMV9zZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04ODktXFx0LnNldHVwID0gZWhsX3BzZTFfc2dtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MTM9c3RhdGljIGludCB0Z2xfc2dtaWlfcGh5MF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5MjI6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gdGdsX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTIzLVxcdC5zZXR1cCA9IHRnbF9zZ21paV9waHkwX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTkyNj1zdGF0aWMgaW50IHRnbF9zZ21paV9waHkxX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTkzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjkzNTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyB0Z2xfc2dtaWkxZ19waHkxX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MzYtXFx0LnNldHVwID0gdGdsX3NnbWlpX3BoeTFfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTM5PXN0YXRpYyBpbnQgYWRsc19zZ21paV9waHkwX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk0OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk0OTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBhZGxzX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTUwLVxcdC5zZXR1cCA9IGFkbHNfc2dtaWlfcGh5MF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05NTM9c3RhdGljIGludCBhZGxzX3NnbWlpX3BoeTFfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTYzOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGFkbHNfc2dtaWkxZ19waHkxX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NjQtXFx0LnNldHVwID0gYWRsc19zZ21paV9waHkxX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTk5Mj1zdGF0aWMgaW50IGFkbG5fc2dtaWlfcGh5MF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTAxMTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBhZGxuX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAxMi1cXHQuc2V0dXAgPSBhZGxuX3NnbWlpX3BoeTBfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMTU6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSBnYWxpbGVvX3N0bW1hY19mdW5jX2RhdGFbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMTYtXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTAyMjpzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZG1pX2RhdGEgZ2FsaWxlb19zdG1tYWNfZG1pX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDIzLVxcdC5mdW5jID0gZ2FsaWxlb19zdG1tYWNfZnVuY19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDI2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTAyNzpzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZnVuY19kYXRhIGlvdDIwNDBfc3RtbWFjX2Z1bmNfZGF0YVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAyOC1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDM4OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSBpb3QyMDQwX3N0bW1hY19kbWlfZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMzktXFx0LmZ1bmMgPSBpb3QyMDQwX3N0bW1hY19mdW5jX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTEwNzg9c3RhdGljIGludCBxdWFya19kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwODgtXFx0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDg5OlxcdHJldCA9IHN0bW1hY19wY2lfZmluZF9waHlfYWRkcihwZGV2LCBxdWFya19wY2lfZG1pKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwOTAtXFx0aWYgKHJldCBcXHUwMDNjIDApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTExMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjExMTQ6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gcXVhcmtfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTExMTUtXFx0LnNldHVwID0gcXVhcmtfZGVmYXVsdF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0xMjMyPXN0YXRpYyBpbnQgaW50ZWxfZXRoX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTIzNC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMjM1OlxcdHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKmluZm8gPSAoc3RydWN0IHN0bW1hY19wY2lfaW5mbyAqKWlkLVxcdTAwM2Vkcml2ZXJfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEyMzYtXFx0c3RydWN0IGludGVsX3ByaXZfZGF0YSAqaW50ZWxfcHJpdjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9NzY9c3RydWN0IGxvb25nc29uX2RhdGEge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy04MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjgyOnN0cnVjdCBzdG1tYWNfcGNpX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtODMtXFx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz0xMzI9c3RhdGljIGludCBsb29uZ3Nvbl9nbWFjX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTE0MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjE0MjpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBsb29uZ3Nvbl9nbWFjX3BjaV9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTQzLVxcdC5zZXR1cCA9IGxvb25nc29uX2dtYWNfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MTY1PXN0YXRpYyBpbnQgbG9vbmdzb25fZ25ldF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxNzc6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gbG9vbmdzb25fZ25ldF9wY2lfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTE3OC1cXHQuc2V0dXAgPSBsb29uZ3Nvbl9nbmV0X2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTQ5OD1zdGF0aWMgaW50IGxvb25nc29uX2R3bWFjX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUwMS1cXHRzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyByZXMgPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjUwMjpcXHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTAzLVxcdHN0cnVjdCBsb29uZ3Nvbl9kYXRhICpsZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTM3LVxcdHBsYXQtXFx1MDAzZWZpeF9zb2NfcmVzZXQgPSBsb29uZ3Nvbl9kd21hY19maXhfcmVzZXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1Mzg6XFx0cGxhdC1cXHUwMDNlc3VzcGVuZCA9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NTM5OlxcdHBsYXQtXFx1MDAzZXJlc3VtZSA9IHN0bW1hY19wY2lfcGxhdF9yZXN1bWU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01NDAtXFx0bGQtXFx1MDAzZWRldiA9IFxcdTAwMjZwZGV2LVxcdTAwM2VkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTU0Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjU0MzpcXHRpbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cXHUwMDNlZHJpdmVyX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01NDQtXFx0cmV0ID0gaW5mby1cXHUwMDNlc2V0dXAocGRldiwgcGxhdCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0xODg9c3RhdGljIGludCBtb3RvcmNvbW1fcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0xOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MTkzOlxcdHJldCA9IHN0bW1hY19wY2lfcGxhdF9yZXN1bWUoZGV2LCBic3BfcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMTk0LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0yMDg9bW90b3Jjb21tX2RlZmF1bHRfcGxhdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMjQ4LVxcdHBsYXQtXFx1MDAzZWNvcmVfdHlwZVxcdFxcdD0gRFdNQUNfQ09SRV9HTUFDNDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzoyNDk6XFx0cGxhdC1cXHUwMDNlc3VzcGVuZFxcdFxcdD0gc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMjUwLVxcdHBsYXQtXFx1MDAzZXJlc3VtZVxcdFxcdD0gbW90b3Jjb21tX3Jlc3VtZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0xMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6MTI6aW50IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTEzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0yNS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjI2OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjI4OmludCBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTI5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy00My19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjQ0OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19wY2lfcGxhdF9yZXN1bWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy00NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuaC04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuaDo5OmludCBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmJzcF9wcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmg6MTA6aW50IHN0bW1hY19wY2lfcGxhdF9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5oLTExLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxOTpzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjAtXFx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTMzPXN0YXRpYyBpbnQgc3RtbWFjX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy00OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6NTA6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gc3RtbWFjX3BjaV9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy01MS1cXHQuc2V0dXAgPSBzdG1tYWNfZGVmYXVsdF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTU0PXN0YXRpYyBpbnQgc25wc19nbWFjNV9kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTAxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMDI6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gc25wc19nbWFjNV9wY2lfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTAzLVxcdC5zZXR1cCA9IHNucHNfZ21hYzVfZGVmYXVsdF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwNi0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTA3OiAqIHN0bW1hY19wY2lfcHJvYmVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTA4LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTE3LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMTg6c3RhdGljIGludCBzdG1tYWNfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xMTktXFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTIwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTIxOlxcdHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKmluZm8gPSAoc3RydWN0IHN0bW1hY19wY2lfaW5mbyAqKWlkLVxcdTAwM2Vkcml2ZXJfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTIyLVxcdHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xNzktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjE4MDpcXHRwbGF0LVxcdTAwM2VzdXNwZW5kID0gc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjE4MTpcXHRwbGF0LVxcdTAwM2VyZXN1bWUgPSBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xODItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTg2LS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxODc6ICogc3RtbWFjX3BjaV9yZW1vdmVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTg4LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTkxLSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxOTI6c3RhdGljIHZvaWQgc3RtbWFjX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE5My17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjAzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBzdG1tYWNfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjA0OlxcdHsgUENJX0RFVklDRV9EQVRBKFNUTU1BQywgU1RNTUFDLCBcXHUwMDI2c3RtbWFjX3BjaV9pbmZvKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMDU6XFx0eyBQQ0lfREVWSUNFX0RBVEEoU1RNSUNSTywgTUFDLCBcXHUwMDI2c3RtbWFjX3BjaV9pbmZvKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDYtXFx0eyBQQ0lfREVWSUNFX0RBVEEoU1lOT1BTWVMsIEdNQUM1X0lELCBcXHUwMDI2c25wc19nbWFjNV9wY2lfaW5mbykgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0yMTA9TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIHN0bW1hY19pZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjEyOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBzdG1tYWNfcGNpX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjEzLVxcdC5uYW1lID0gU1RNTUFDX1JFU09VUkNFX05BTUUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxNC1cXHQuaWRfdGFibGUgPSBzdG1tYWNfaWRfdGFibGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxNTpcXHQucHJvYmUgPSBzdG1tYWNfcGNpX3Byb2JlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTY6XFx0LnJlbW92ZSA9IHN0bW1hY19wY2lfcmVtb3ZlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTctXFx0LmRyaXZlciAgICAgICAgID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjIyOm1vZHVsZV9wY2lfZHJpdmVyKHN0bW1hY19wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjIzLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQwMzo0NDowMC4xODgwOTY0NjJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzkxOTA5Mjg0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSZWFjaGluZyB0aGUgU1RNTUFDIERyaXZlciBmb3IgRnV6emluZyoqXG5cbk9rYXksIHNvIGBzdG1tYWNgIGhhcyBhIFBDSSBkcml2ZXIsIGBzdG1tYWNfcGNpLmNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgUENJIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuIFNpbmNlIGl0J3MgUENJLCB0aGF0IG9wZW5zIHRoZSBkb29yIHRvIHN5emthbGxlcidzIFBDSSBmdXp6aW5nIGNhcGFiaWxpdGllcywgYXNzdW1pbmcgdGhlIGRldmljZSBpcyBlaXRoZXIgZW11bGF0ZWQgb3IgYWN0dWFsbHkgcHJlc2VudC5cblxuUmlnaHQsIHN5emthbGxlciBoYXMgYSBQQ0kgZnV6emVyLCBidXQsIGl0IHVzdWFsbHkgbmVlZHMgdGhlIGRldmljZSB0byBiZSBwcmVzZW50IG9yIGl0IGZ1enplcyB0aGUgUENJIHN1YnN5c3RlbS4gSG93ZXZlciwgc3l6a2FsbGVyICpkb2VzKiBoYXZlIGBzeXpfcGNpX2RldmljZWAgd2hpY2ggSSB0aGluayBlbXVsYXRlcyBkZXZpY2VzLiBMZXQgbWUgZG91YmxlIGNoZWNrLi4uXG5cbklzIHRoZXJlIGFub3RoZXIgd2F5IHRvIHJlYWNoIHRoaXMgY29kZSB0aG91Z2g/IGBzdG1tYWNgIGlzIGZvciBEZXNpZ25XYXJlIE1BQyAoRFdNQUMpLiBJcyBpdCByZWFjaGFibGUgaW4gUUVNVT8gUUVNVSBlbXVsYXRlcyBzZXZlcmFsIG5ldHdvcmsgZGV2aWNlcywgYnV0IG5vdCBuZWNlc3NhcmlseSBEV01BQy5cblxuVGhlIHByb21wdCBub3RlcyBhYm91dCB1bnJlYWNoYWJsZSBjb2RlIHBhdGhzIGluIHZpcnR1YWwgZW52aXJvbm1lbnRzLCBldmVuIHdpdGggZW11bGF0ZWQgaGFyZHdhcmUuIElmIGl0J3Mgbm90IGVtdWxhdGVkIGJ5IFFFTVUsIGFuZCBpdCdzIG5vdCBhIFVTQiBnYWRnZXQsIHRoZW4gd2hhdCBhcmUgbXkgb3B0aW9ucz8gSSBuZWVkIHRvIHJlbWVtYmVyIHRoYXQgc3l6a2FsbGVyIGhhcyBgc3l6X3BjaV9kZXZpY2VgLCBpdCBpbmplY3RzIFBDSSBkZXZpY2VzIHZpYSBgdmZpb2Agb3Igc29tZXRoaW5nIHNpbWlsYXI/XG5cbldhaXQsIHN5emthbGxlciAqZG9lcyogaGF2ZSBQQ0kgZnV6emluZy4gSXQncyBlaXRoZXIgYSBjdXN0b20gUUVNVSBkZXZpY2Ugb3IgdXNpbmcgb3RoZXIgbWVjaGFuaXNtcyB0byBlbXVsYXRlIHRoZW0uIE5vLCBzeXprYWxsZXIgdXNlcyBgc3l6X2dlbmV0bGlua2AgZXRjLlxuXG5MZXQncyBjaGVjayBpZiBzeXprYWxsZXIgY2FuIHJlYWNoIGBzdG1tYWNgLiBUaGVyZSdzIGEgY29tbWl0LCBzbyBsZXQgbWUgcmVhZCB0aGF0OiBBaCwgdGhlIGNvbW1pdCBzYXlzIFwic3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3LlwiIEl0IGNvdWxkIG1lYW4gc3l6a2FsbGVyIGZvdW5kIGEgYnVnLCBidXQgaXQgaXMgbm90IGd1YXJhbnRlZWQhXG5cbkkgaGF2ZSB0byBsb29rIGludG8gdGhpcyBtb3JlLiBJcyBgc3RtbWFjYCBhIHBsYXRmb3JtIGRyaXZlcj8gSWYgc28sIGl0IG5lZWRzIGEgZGV2aWNlIHRyZWUgbm9kZS4gSXQncyBoZWF2aWx5IHVzZWQgb24gQVJNIFNvQ3MuIElzIGl0IGEgUENJIGRyaXZlcj8gSXQgY2FuIGJlIHByb2JlZCBpZiBhIFBDSSBkZXZpY2Ugd2l0aCB0aGUgbWF0Y2hpbmcgdmVuZG9yL2RldmljZSBJRCBpcyBwcmVzZW50LiBEb2VzIFFFTVUgZW11bGF0ZSBhbnkgU1RNTUFDIFBDSSBkZXZpY2U/IExldCBtZSBqdXN0IGFzc3VtZSB0aGF0IHN5emthbGxlciBjYW4ndCByZWFjaCBpdCB1bmxlc3MgaXQgaXMgZW11bGF0ZWQuXG5cbldhaXQsIGRpZCBzeXprYWxsZXIgYWRkIFBDSSBmdXp6aW5nIHZpYSBgdmZpb2Agb3IgYSB2aXJ0dWFsIFBDSSBkZXZpY2U/IFN5emthbGxlciBoYXMgYHZoY2lgIGZvciBVU0IuIEZvciBQQ0ksIHRoZXJlIGlzIG5vIGdlbmVyaWMgc29mdHdhcmUgZW11bGF0b3IgdXBzdHJlYW0sIGV4Y2VwdCBpZiBzeXprYWxsZXIgdXNlcyBhIGN1c3RvbSBRRU1VIHdpdGggYSBmdXp6ZXIgUENJIGRldmljZS4gVGhhdCBtYXRjaGVzIHRoZSBwcm9tcHQsIGFib3V0IHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLiBEb2VzIFFFTVUgZW11bGF0ZSBgc3RtbWFjYD9cblxuTGV0J3MgZG8gc29tZSBkaWdnaW5nLiBJcyB0aGVyZSBhIHZpcnR1YWwgZGV2aWNlIGZvciBpdD8gTWF5YmUgaXQgaXMgdXNlZCBvbiBzb21lIEFSTSBib2FyZHMgZW11bGF0ZWQgYnkgUUVNVT8gUUVNVSBoYXMgZW11bGF0ZWQgZGV2aWNlcyBmb3IgQVJNLlxuXG5XYWl0LCBgc3RtbWFjYCBpcyBmb3IgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMgKERXTUFDKS4gUUVNVSBoYXMgYGh3L25ldC9kZXNpZ253YXJlLmNgISBPa2F5LCBub3cgd2UncmUgZ2V0dGluZyBzb21ld2hlcmUuIExldCBtZSBzZWUgaG93IGBzdG1tYWNgIG1hdGNoZXMgdXAgd2l0aCBgZGVzaWdud2FyZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExODI5LCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAzNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQwMzo0NDoxNC4xMDcxOTA5MTVaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTc1OTk1NDQsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRlc2lnbndhcmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDAzOjQ0OjE0LjE2NDc5NjY0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTE5OTM4NTcxMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIFFFTVUncyBFdGhlcm5ldCBFbXVsYXRpb24qKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgUUVNVSBoYW5kbGVzIHRoaXMgcGFydGljdWxhciBFdGhlcm5ldCBkZXZpY2UuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gc2VhcmNoIHRoZSBRRU1VIHNvdXJjZSBjb2RlIGZvciBcImR3bWFjLFwiIHRoYXQncyB0aGUgbGlrZWx5IHN0YXJ0aW5nIHBvaW50LiBJIGFscmVhZHkga25vdyB0aGF0IHRoZSBkcml2ZXIgaXMgYHN0bW1hY2AuIE5vdywgdGhhdCBuYW1lIHJpbmdzIGEgYmVsbCwgSSdtIHByZXR0eSBzdXJlIHRoZSByZWxldmFudCBzb3VyY2UgZmlsZXMgd2lsbCBiZSBuYW1lZCBzb21ldGhpbmcgbGlrZSBgZHdtYWMtKi5jYCwgSSdsbCBmb2N1cyBteSBzZWFyY2ggdGhlcmUuIFRoZSBrZXkgaXMgZ29pbmcgdG8gYmUgZGV0ZXJtaW5pbmcgaG93IFFFTVUgcmVwcmVzZW50cyB0aGUgZGV2aWNlLiBJIG5lZWQgdG8gY2hlY2sgaWYgdGhlcmUncyBhIFBDSSBJRCBhc3NvY2lhdGVkIHdpdGggdGhlIGVtdWxhdGVkIGRldmljZS4gQWx0ZXJuYXRpdmVseSwgaXQgbWlnaHQgYmUgbW9kZWxsZWQgYXMgYSBwbGF0Zm9ybSBkZXZpY2UuIEkgbmVlZCB0byBmaWd1cmUgdGhpcyBvdXQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBlbXVsYXRpb24gYXJjaGl0ZWN0dXJlLiBJJ2xsIHN0YXJ0IHdpdGggdGhlIFBDSSBJRC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTM1NzIsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQwMzo0NDoxOS4zNjQxODg5ODJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ3NjAxNTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiRFdNQUNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMDEzIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTQyPWlmIFNUTU1BQ19QTEFURk9STVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0NDpjb25maWcgRFdNQUNfRFdDX1FPU19FVEhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQ1LVxcdHRyaXN0YXRlIFxcXCJTdXBwb3J0IGZvciBzbnBzLGR3Yy1xb3MtZXRoZXJuZXQudHh0IERUIGJpbmRpbmcuXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy01MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjUyOmNvbmZpZyBEV01BQ19HRU5FUklDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo1MzpcXHR0cmlzdGF0ZSBcXFwiR2VuZXJpYyBkcml2ZXIgZm9yIERXTUFDXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNTQtXFx0ZGVmYXVsdCBTVE1NQUNfUExBVEZPUk1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTU1LVxcdGhlbHBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjU2OlxcdCAgR2VuZXJpYyBEV01BQyBkcml2ZXIgZm9yIHBsYXRmb3JtcyB0aGF0IGRvbid0IHJlcXVpcmUgYW55XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy01Ny1cXHQgIHBsYXRmb3JtIHNwZWNpZmljIGNvZGUgdG8gZnVuY3Rpb24gb3IgaXMgdXNpbmcgcGxhdGZvcm1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo2MDpjb25maWcgRFdNQUNfQU5BUklPTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNjEtXFx0dHJpc3RhdGUgXFxcIkFkYXB0cnVtIEFuYXJpb24gR01BQyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy02OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjY5OmNvbmZpZyBEV01BQ19FSUM3NzAwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy03MC1cXHR0cmlzdGF0ZSBcXFwiU3VwcG9ydCBmb3IgRXN3aW4gZWljNzcwMCBldGhlcm5ldCBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTc3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Nzg6Y29uZmlnIERXTUFDX0lOR0VOSUNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTc5LVxcdHRyaXN0YXRlIFxcXCJJbmdlbmljIE1BQyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy04OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjkwOmNvbmZpZyBEV01BQ19JUFE4MDZYXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo5MTpcXHR0cmlzdGF0ZSBcXFwiUUNBIElQUTgwNnggRFdNQUMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTkyLVxcdGRlZmF1bHQgQVJDSF9RQ09NXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTk1LVxcdGhlbHBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjk2OlxcdCAgU3VwcG9ydCBmb3IgUUNBIElQUTgwNlggRFdNQUMgRXRoZXJuZXQuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTA1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTA2OmNvbmZpZyBEV01BQ19MUEMxOFhYXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMDc6XFx0dHJpc3RhdGUgXFxcIk5YUCBMUEMxOHh4LzQzeHggRFdNQUMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEwOC1cXHRkZWZhdWx0IEFSQ0hfTFBDMThYWFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMTEtXFx0aGVscFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTEyOlxcdCAgU3VwcG9ydCBmb3IgTlhQIExQQzE4eHgvNDN4eCBEV01BQyBFdGhlcm5ldC5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjExNDpjb25maWcgRFdNQUNfTUVESUFURUtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExNS1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQyN3h4IEdNQUMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTIyOmNvbmZpZyBEV01BQ19NRVNPTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTIzLVxcdHRyaXN0YXRlIFxcXCJBbWxvZ2ljIE1lc29uIGR3bWFjIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEzMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjEzMzpjb25maWcgRFdNQUNfTlVWT1RPTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTM0LVxcdHRyaXN0YXRlIFxcXCJOdXZvdG9uIE1BMzUgZHdtYWMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTQ1OmNvbmZpZyBEV01BQ19RQ09NX0VUSFFPU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTQ2LVxcdHRyaXN0YXRlIFxcXCJRdWFsY29tbSBFVEhRT1Mgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTU0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTU1OmNvbmZpZyBEV01BQ19SRU5FU0FTX0dCRVRIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNTYtXFx0dHJpc3RhdGUgXFxcIlJlbmVzYXMgUlovVjJIKFApIEdCRVRIIGFuZCBSWi9UMkgsIFJaL04ySCBHTUFDIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE2Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE2ODpjb25maWcgRFdNQUNfUk9DS0NISVBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE2OS1cXHR0cmlzdGF0ZSBcXFwiUm9ja2NoaXAgZHdtYWMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTc4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTc5OmNvbmZpZyBEV01BQ19SWk4xXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xODAtXFx0dHJpc3RhdGUgXFxcIlJlbmVzYXMgUlovTjEgZHdtYWMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTkwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTkxOmNvbmZpZyBEV01BQ19TMzJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5Mi1cXHR0cmlzdGF0ZSBcXFwiTlhQIFMzMkcvUzMyUiBHTUFDIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwMzpjb25maWcgRFdNQUNfU09DRlBHQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjA0LVxcdHRyaXN0YXRlIFxcXCJTT0NGUEdBIGR3bWFjIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIxODpjb25maWcgRFdNQUNfU09QSEdPXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMTktXFx0dHJpc3RhdGUgXFxcIlNvcGhnbyBkd21hYyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMjk6Y29uZmlnIERXTUFDX1NQQUNFTUlUXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMzAtXFx0dHJpc3RhdGUgXFxcIlNwYWNlbWl0IGR3bWFjIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI0MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI0MTpjb25maWcgRFdNQUNfU1RBUkZJVkVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI0Mi1cXHR0cmlzdGF0ZSBcXFwiU3RhckZpdmUgZHdtYWMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjUyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjUzOmNvbmZpZyBEV01BQ19TVElcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI1NC1cXHR0cmlzdGF0ZSBcXFwiU1RpIEdNQUMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjY1OmNvbmZpZyBEV01BQ19TVE0zMlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjY2OlxcdHRyaXN0YXRlIFxcXCJTVE0zMiBEV01BQyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjY3LVxcdGRlZmF1bHQgQVJDSF9TVE0zMlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyNzc6Y29uZmlnIERXTUFDX1NVTlhJXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzgtXFx0dHJpc3RhdGUgXFxcIkFsbHdpbm5lciBHTUFDIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI4ODpjb25maWcgRFdNQUNfU1VOOElcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI4OS1cXHR0cmlzdGF0ZSBcXFwiQWxsd2lubmVyIHN1bjhpIEdNQUMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjk5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzAwOmNvbmZpZyBEV01BQ19TVU41NUlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMwMS1cXHR0cmlzdGF0ZSBcXFwiQWxsd2lubmVyIHN1bjU1aSBHTUFDMjAwIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMxMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMxMjpjb25maWcgRFdNQUNfVEhFQURcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMxMy1cXHR0cmlzdGF0ZSBcXFwiVC1IRUFEIGR3bWFjIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMyMjpjb25maWcgRFdNQUNfSU1YOFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzIzOlxcdHRyaXN0YXRlIFxcXCJOWFAgSU1YOCBEV01BQyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzI0LVxcdGRlZmF1bHQgQVJDSF9NWENcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzMzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzM0OmNvbmZpZyBEV01BQ19JTlRFTF9QTEFUXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMzUtXFx0dHJpc3RhdGUgXFxcIkludGVsIGR3bWFjIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM0My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM0NDpjb25maWcgRFdNQUNfTE9PTkdTT04xXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNDUtXFx0dHJpc3RhdGUgXFxcIkxvb25nc29uMSBHTUFDIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM1NTpjb25maWcgRFdNQUNfVEVHUkFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1Ni1cXHR0cmlzdGF0ZSBcXFwiTlZJRElBIFRlZ3JhIE1HQkUgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzY0OmNvbmZpZyBEV01BQ19WSVNDT05USVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzY1OlxcdHRyaXN0YXRlIFxcXCJUb3NoaWJhIFZpc2NvbnRpIERXTUFDIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNjYtXFx0ZGVmYXVsdCBBUkNIX1ZJU0NPTlRJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM3Mz1jb25maWcgU1RNTUFDX0xJQlBDSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNzg6Y29uZmlnIERXTUFDX0lOVEVMXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzktXFx0dHJpc3RhdGUgXFxcIkludGVsIEdNQUMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzg3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzg4OmNvbmZpZyBEV01BQ19MT09OR1NPTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzg5OlxcdHRyaXN0YXRlIFxcXCJMb29uZ3NvbiBQQ0kgRFdNQUMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM5MC1cXHRkZWZhdWx0IE1BQ0hfTE9PTkdTT042NFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozOTg6Y29uZmlnIERXTUFDX01PVE9SQ09NTVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzk5OlxcdHRyaXN0YXRlIFxcXCJNb3RvcmNvbW0gUENJIERXTUFDIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MDAtXFx0ZGVwZW5kcyBvbiBQQ0lcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDAzLVxcdGhlbHBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwNDpcXHQgIFRoaXMgZW5hYmxlcyBnbHVlIGRyaXZlciBmb3IgTW90b3Jjb21tIERXTUFDLWJhc2VkIFBDSSBFdGhlcm5ldFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA1LVxcdCAgY29udHJvbGxlcnMuIEN1cnJlbnRseSBvbmx5IFlUNjgwMSBpcyBzdXBwb3J0ZWQuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT0xNT1vYmotJChDT05GSUdfU1RNTUFDX1BMQVRGT1JNKVxcdCs9IHN0bW1hYy1wbGF0Zm9ybS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTY6b2JqLSQoQ09ORklHX0RXTUFDX0FOQVJJT04pXFx0Kz0gZHdtYWMtYW5hcmlvbi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTc6b2JqLSQoQ09ORklHX0RXTUFDX0VJQzc3MDApXFx0Kz0gZHdtYWMtZWljNzcwMC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTg6b2JqLSQoQ09ORklHX0RXTUFDX0lOR0VOSUMpXFx0Kz0gZHdtYWMtaW5nZW5pYy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTk6b2JqLSQoQ09ORklHX0RXTUFDX0lQUTgwNlgpXFx0Kz0gZHdtYWMtaXBxODA2eC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MjA6b2JqLSQoQ09ORklHX0RXTUFDX0xQQzE4WFgpXFx0Kz0gZHdtYWMtbHBjMTh4eC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MjE6b2JqLSQoQ09ORklHX0RXTUFDX01FRElBVEVLKVxcdCs9IGR3bWFjLW1lZGlhdGVrLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyMjpvYmotJChDT05GSUdfRFdNQUNfTUVTT04pXFx0Kz0gZHdtYWMtbWVzb24ubyBkd21hYy1tZXNvbjhiLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyMzpvYmotJChDT05GSUdfRFdNQUNfTlVWT1RPTilcXHQrPSBkd21hYy1udXZvdG9uLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyNDpvYmotJChDT05GSUdfRFdNQUNfUUNPTV9FVEhRT1MpXFx0Kz0gZHdtYWMtcWNvbS1ldGhxb3Mub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjI1Om9iai0kKENPTkZJR19EV01BQ19SRU5FU0FTX0dCRVRIKSArPSBkd21hYy1yZW5lc2FzLWdiZXRoLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyNjpvYmotJChDT05GSUdfRFdNQUNfUk9DS0NISVApXFx0Kz0gZHdtYWMtcmsub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjI3Om9iai0kKENPTkZJR19EV01BQ19SWk4xKVxcdCs9IGR3bWFjLXJ6bjEub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjI4Om9iai0kKENPTkZJR19EV01BQ19TMzIpXFx0XFx0Kz0gZHdtYWMtczMyLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyOTpvYmotJChDT05GSUdfRFdNQUNfU09DRlBHQSlcXHQrPSBkd21hYy1hbHRyLXNvY2ZwZ2Eub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjMwOm9iai0kKENPTkZJR19EV01BQ19TT1BIR08pXFx0Kz0gZHdtYWMtc29waGdvLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTozMTpvYmotJChDT05GSUdfRFdNQUNfU1BBQ0VNSVQpXFx0Kz0gZHdtYWMtc3BhY2VtaXQub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjMyOm9iai0kKENPTkZJR19EV01BQ19TVEFSRklWRSlcXHQrPSBkd21hYy1zdGFyZml2ZS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MzM6b2JqLSQoQ09ORklHX0RXTUFDX1NUSSlcXHRcXHQrPSBkd21hYy1zdGkub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjM0Om9iai0kKENPTkZJR19EV01BQ19TVE0zMilcXHQrPSBkd21hYy1zdG0zMi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MzU6b2JqLSQoQ09ORklHX0RXTUFDX1NVTlhJKVxcdCs9IGR3bWFjLXN1bnhpLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTozNjpvYmotJChDT05GSUdfRFdNQUNfU1VOOEkpXFx0Kz0gZHdtYWMtc3VuOGkub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjM3Om9iai0kKENPTkZJR19EV01BQ19TVU41NUkpXFx0Kz0gZHdtYWMtc3VuNTVpLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTozODpvYmotJChDT05GSUdfRFdNQUNfVEhFQUQpXFx0Kz0gZHdtYWMtdGhlYWQub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjM5Om9iai0kKENPTkZJR19EV01BQ19EV0NfUU9TX0VUSClcXHQrPSBkd21hYy1kd2MtcW9zLWV0aC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDA6b2JqLSQoQ09ORklHX0RXTUFDX0lOVEVMX1BMQVQpXFx0Kz0gZHdtYWMtaW50ZWwtcGxhdC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDE6b2JqLSQoQ09ORklHX0RXTUFDX0xPT05HU09OMSlcXHQrPSBkd21hYy1sb29uZ3NvbjEub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQyOm9iai0kKENPTkZJR19EV01BQ19HRU5FUklDKVxcdCs9IGR3bWFjLWdlbmVyaWMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQzOm9iai0kKENPTkZJR19EV01BQ19JTVg4KVxcdCs9IGR3bWFjLWlteC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDQ6b2JqLSQoQ09ORklHX0RXTUFDX1RFR1JBKVxcdCs9IGR3bWFjLXRlZ3JhLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo0NTpvYmotJChDT05GSUdfRFdNQUNfVklTQ09OVEkpXFx0Kz0gZHdtYWMtdmlzY29udGkub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTQ2LXN0bW1hYy1wbGF0Zm9ybS1vYmpzOj0gc3RtbWFjX3BsYXRmb3JtLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTUwPW9iai0kKENPTkZJR19TVE1NQUNfUENJKVxcdCs9IHN0bW1hYy1wY2kub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjUxOm9iai0kKENPTkZJR19EV01BQ19JTlRFTClcXHQrPSBkd21hYy1pbnRlbC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTI6b2JqLSQoQ09ORklHX0RXTUFDX0xPT05HU09OKVxcdCs9IGR3bWFjLWxvb25nc29uLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo1MzpvYmotJChDT05GSUdfRFdNQUNfTU9UT1JDT01NKVxcdCs9IGR3bWFjLW1vdG9yY29tbS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNTQtc3RtbWFjLXBjaS1vYmpzOj0gc3RtbWFjX3BjaS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoyOTojZGVmaW5lIERXTUFDX1NOUFNWRVJcXHRHRU5NQVNLX1UzMig3LCAwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjMwOiNkZWZpbmUgRFdNQUNfVVNFUlZFUlxcdEdFTk1BU0tfVTMyKDE1LCA4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTMxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTMyLS8qIFN5bm9wc3lzIENvcmUgdmVyc2lvbnMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDozMzojZGVmaW5lXFx0RFdNQUNfQ09SRV8zXzQwXFx0XFx0MHgzNFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM0OiNkZWZpbmVcXHREV01BQ19DT1JFXzNfNTBcXHRcXHQweDM1XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MzU6I2RlZmluZVxcdERXTUFDX0NPUkVfM183MFxcdFxcdDB4MzdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDozNjojZGVmaW5lXFx0RFdNQUNfQ09SRV80XzAwXFx0XFx0MHg0MFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM3OiNkZWZpbmUgRFdNQUNfQ09SRV80XzEwXFx0XFx0MHg0MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM4OiNkZWZpbmUgRFdNQUNfQ09SRV81XzAwXFx0XFx0MHg1MFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjM5OiNkZWZpbmUgRFdNQUNfQ09SRV81XzEwXFx0XFx0MHg1MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjQwOiNkZWZpbmUgRFdNQUNfQ09SRV81XzIwXFx0XFx0MHg1MlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTQxLSNkZWZpbmUgRFdYR01BQ19DT1JFXzJfMTBcXHQweDIxXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaD00OT1zdGF0aWMgaW5saW5lIGJvb2wgZHdtYWNfaXNfeG1hYyhlbnVtIGR3bWFjX2NvcmVfdHlwZSBjb3JlX3R5cGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNTAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjUxOlxcdHJldHVybiBjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9HTUFDNCB8fCBjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC01Mi19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kZXNjcy5oLTMtICBIZWFkZXIgRmlsZSB0byBkZXNjcmliZSB0aGUgRE1BIGRlc2NyaXB0b3JzIGFuZCByZWxhdGVkIGRlZmluaXRpb25zLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2Rlc2NzLmg6NDogIFRoaXMgaXMgZm9yIERXTUFDMTAwIGFuZCAxMDAwIGNvcmVzLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2Rlc2NzLmgtNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0yLS8qXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjM6ICogQWRhcHRydW0gQW5hcmlvbiBEV01BQyBnbHVlIGxheWVyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz0xMzM9bW9kdWxlX3BsYXRmb3JtX2RyaXZlcihhbmFyaW9uX2R3bWFjX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTM1Ok1PRFVMRV9ERVNDUklQVElPTihcXFwiQWRhcHRydW0gQW5hcmlvbiBEV01BQyBzcGVjaWZpYyBnbHVlIGxheWVyXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEzNi1NT0RVTEVfQVVUSE9SKFxcXCJBbGV4YW5kcnUgR2Fnbml1YyBcXHUwMDNjbXIubnVrZS5tZUBnbWFpbC5jb21cXHUwMDNlXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTM2PXN0YXRpYyBpbnQgZHdjX2V0aF9kd21hY19jb25maWdfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtODctXFx0LyogZHdjLXFvcyBuZWVkcyBHTUFDNCwgQUFMLCBUU08gYW5kIFBNVCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6ODg6XFx0cGxhdF9kYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy04OS1cXHRwbGF0X2RhdC1cXHUwMDNlZG1hX2NmZy1cXHUwMDNlYWFsID0gMTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYy0xLS8qXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZ2VuZXJpYy5jOjI6ICogR2VuZXJpYyBEV01BQyBwbGF0Zm9ybSBkcml2ZXJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1nZW5lcmljLmMtMy0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmMtMi0vKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlteC5jOjM6ICogZHdtYWMtaW14LmMgLSBEV01BQyBTcGVjaWZpYyBHbHVlIGxheWVyIGZvciBOWFAgaW14OFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlteC5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlteC5jPTQwMz1NT0RVTEVfQVVUSE9SKFxcXCJOWFBcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYzo0MDQ6TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJOWFAgaW14OCBEV01BQyBTcGVjaWZpYyBHbHVlIGxheWVyXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmMtNDA1LU1PRFVMRV9MSUNFTlNFKFxcXCJHUEwgdjJcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYy0yLS8qXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW5nZW5pYy5jOjM6ICogZHdtYWMtaW5nZW5pYy5jIC0gSW5nZW5pYyBTb0NzIERXTUFDIHNwZWNpZmljIGdsdWUgbGF5ZXJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmMtNC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW5nZW5pYy5jPTI4Mj1NT0RVTEVfQVVUSE9SKFxcXCLlkajnkLDmnbAgKFpob3UgWWFuamllKSBcXHUwMDNjemhvdXlhbmppZUB3YW55ZWV0ZWNoLmNvbVxcdTAwM2VcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmM6MjgzOk1PRFVMRV9ERVNDUklQVElPTihcXFwiSW5nZW5pYyBTb0NzIERXTUFDIHNwZWNpZmljIGdsdWUgbGF5ZXJcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmMtMjg0LU1PRFVMRV9MSUNFTlNFKFxcXCJHUEwgdjJcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYy0xLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwtcGxhdC5jOjI6LyogSW50ZWwgRFdNQUMgcGxhdGZvcm0gZHJpdmVyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwtcGxhdC5jLTMtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYz0xNTA9TU9EVUxFX0xJQ0VOU0UoXFxcIkdQTCB2MlxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYzoxNTE6TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJJbnRlbCBEV01BQyBwbGF0Zm9ybSBkcml2ZXJcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9NTY1PXN0YXRpYyB2b2lkIGNvbW1vbl9kZWZhdWx0X2RhdGEoc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy01NjgtXFx0cGxhdC1cXHUwMDNlY2xrX2NzciA9IFNUTU1BQ19DU1JfMjBfMzVNO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NTY5OlxcdHBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTU3MC1cXHRwbGF0LVxcdTAwM2Vmb3JjZV9zZl9kbWFfbW9kZSA9IHRydWU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTU4NT1zdGF0aWMgaW50IGludGVsX21nYmVfY29tbW9uX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTU5NS1cXHRwbGF0LVxcdTAwM2VjbGtfY3NyID0gU1RNTUFDX0NTUl8yNTBfMzAwTTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjU5NjpcXHRwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNTk3LVxcdHBsYXQtXFx1MDAzZWZvcmNlX3NmX2RtYV9tb2RlID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmgtMi0vKiBDb3B5cmlnaHQgKGMpIDIwMjAsIEludGVsIENvcnBvcmF0aW9uXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuaDozOiAqIERXTUFDIEludGVsIGhlYWRlciBmaWxlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuaC00LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmgtNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5oOjY6I2lmbmRlZiBfX0RXTUFDX0lOVEVMX0hfX1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmg6NzojZGVmaW5lIF9fRFdNQUNfSU5URUxfSF9fXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuaC04LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuaC04MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5oOjgxOiNlbmRpZiAvKiBfX0RXTUFDX0lOVEVMX0hfXyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jPTM3ND1zdGF0aWMgaW50IGlwcTgwNnhfZ21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTQ3NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmM6NDc2OlxcdHBsYXRfZGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTQ3Ny1cXHRwbGF0X2RhdC1cXHUwMDNlYnNwX3ByaXYgPSBnbWFjO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jPTUwOD1NT0RVTEVfQVVUSE9SKFxcXCJNYXRoaWV1IE9saXZhcmkgXFx1MDAzY21hdGhpZXVAY29kZWF1cm9yYS5vcmdcXHUwMDNlXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jOjUwOTpNT0RVTEVfREVTQ1JJUFRJT04oXFxcIlF1YWxjb21tIEF0aGVyb3MgSVBRODA2eCBEV01BQyBzcGVjaWZpYyBnbHVlIGxheWVyXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTUxMC1NT0RVTEVfTElDRU5TRShcXFwiRHVhbCBCU0QvR1BMXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTcyLSNkZWZpbmUgUENJX0RFVklDRV9JRF9MT09OR1NPTl9HTkVUXFx0MHg3YTEzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo3MzojZGVmaW5lIERXTUFDX0NPUkVfTVVMVElDSEFOX1YxXFx0MHgxMFxcdC8qIExvb25nc29uIGN1c3RvbSBJRCAweDEwICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo3NDojZGVmaW5lIERXTUFDX0NPUkVfTVVMVElDSEFOX1YyXFx0MHgxMlxcdC8qIExvb25nc29uIGN1c3RvbSBJRCAweDEyICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy03NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9ODY9c3RhdGljIHZvaWQgbG9vbmdzb25fZGVmYXVsdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy05NS1cXHRwbGF0LVxcdTAwM2VjbGtfY3NyID0gU1RNTUFDX0NTUl8xMDBfMTUwTTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjk2OlxcdHBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTk3LVxcdHBsYXQtXFx1MDAzZWZvcmNlX3NmX2RtYV9tb2RlID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTA4LVxcdHN3aXRjaCAobGQtXFx1MDAzZWxvb25nc29uX2lkKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxMDk6XFx0Y2FzZSBEV01BQ19DT1JFX01VTFRJQ0hBTl9WMTpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTExMC1cXHRcXHRsZC1cXHUwMDNlbXVsdGljaGFuID0gMTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTIwLVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6MTIxOlxcdGNhc2UgRFdNQUNfQ09SRV9NVUxUSUNIQU5fVjI6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xMjItXFx0XFx0bGQtXFx1MDAzZW11bHRpY2hhbiA9IDE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTMwNj1zdGF0aWMgaW50IGxvb25nc29uX2R3bWFjX3NldHVwKHZvaWQgKmFwcml2LCBzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICptYWMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTMyOC1cXHRpZiAobGQtXFx1MDAzZW11bHRpY2hhbikge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6MzI5OlxcdFxcdHByaXYtXFx1MDAzZXN5bm9wc3lzX2lkID0gRFdNQUNfQ09SRV8zXzcwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMzMwLVxcdFxcdCpkbWEgPSBkd21hYzEwMDBfZG1hX29wcztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9NDY2PXN0YXRpYyBpbnQgbG9vbmdzb25fZHdtYWNfYWNwaV9jb25maWcoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTQ3Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjQ3ODovKiBMb29uZ3NvbidzIERXTUFDIGRldmljZSBtYXkgdGFrZSBuZWFybHkgdHdvIHNlY29uZHMgdG8gY29tcGxldGUgRE1BIHJlc2V0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy00Nzktc3RhdGljIGludCBsb29uZ3Nvbl9kd21hY19maXhfcmVzZXQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz02MTQ9bW9kdWxlX3BjaV9kcml2ZXIobG9vbmdzb25fZHdtYWNfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTYxNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjYxNjpNT0RVTEVfREVTQ1JJUFRJT04oXFxcIkxvb25nc29uIERXTUFDIFBDSSBkcml2ZXJcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTYxNy1NT0RVTEVfQVVUSE9SKFxcXCJRaW5nIFpoYW5nIFxcdTAwM2N6aGFuZ3FpbmdAbG9vbmdzb24uY25cXHUwMDNlXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYy0yLS8qXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmM6MzogKiBMb29uZ3Nvbi0xIERXTUFDIGdsdWUgbGF5ZXJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYy00LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYz0yMzg9TU9EVUxFX0FVVEhPUihcXFwiS2VndWFuZyBaaGFuZyBcXHUwMDNja2VndWFuZy56aGFuZ0BnbWFpbC5jb21cXHUwMDNlXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmM6MjM5Ok1PRFVMRV9ERVNDUklQVElPTihcXFwiTG9vbmdzb24tMSBEV01BQyBnbHVlIGxheWVyXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmMtMjQwLU1PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy0xLS8qXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jOjI6ICogRFdNQUMgZ2x1ZSBmb3IgTlhQIExQQzE4eHgvTFBDNDN4eCBFdGhlcm5ldFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy0zLSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmM9NDI9c3RhdGljIGludCBscGMxOHh4X2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmMtNTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jOjU3OlxcdHBsYXRfZGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jLTU4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jPTg4PU1PRFVMRV9BVVRIT1IoXFxcIkpvYWNoaW0gRWFzdHdvb2QgXFx1MDAzY21hbmFiaWFuQGdtYWlsLmNvbVxcdTAwM2VcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmM6ODk6TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJEV01BQyBnbHVlIGZvciBMUEMxOHh4LzQzeHggRXRoZXJuZXRcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmMtOTAtTU9EVUxFX0xJQ0VOU0UoXFxcIkdQTCB2MlxcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYz02ODM9TU9EVUxFX0FVVEhPUihcXFwiQmlhbyBIdWFuZyBcXHUwMDNjYmlhby5odWFuZ0BtZWRpYXRlay5jb21cXHUwMDNlXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYzo2ODQ6TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJNZWRpYVRlayBEV01BQyBzcGVjaWZpYyBnbHVlIGxheWVyXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYy02ODUtTU9EVUxFX0xJQ0VOU0UoXFxcIkdQTCB2MlxcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb24uYy0yLS8qXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb24uYzozOiAqIEFtbG9naWMgTWVzb242IGFuZCBNZXNvbjggRFdNQUMgZ2x1ZSBsYXllclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmMtNC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb24uYz05Mz1NT0RVTEVfQVVUSE9SKFxcXCJCZW5pYW1pbm8gR2FsdmFuaSBcXHUwMDNjYi5nYWx2YW5pQGdtYWlsLmNvbVxcdTAwM2VcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jOjk0Ok1PRFVMRV9ERVNDUklQVElPTihcXFwiQW1sb2dpYyBNZXNvbjYgYW5kIE1lc29uOCBEV01BQyBnbHVlIGxheWVyXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb24uYy05NS1NT0RVTEVfTElDRU5TRShcXFwiR1BMIHYyXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmMtMi0vKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYzozOiAqIEFtbG9naWMgTWVzb244YiwgTWVzb244bTIgYW5kIEdYQkIgRFdNQUMgZ2x1ZSBsYXllclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYy00LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmM9NTE4PU1PRFVMRV9BVVRIT1IoXFxcIk1hcnRpbiBCbHVtZW5zdGluZ2wgXFx1MDAzY21hcnRpbi5ibHVtZW5zdGluZ2xAZ29vZ2xlbWFpbC5jb21cXHUwMDNlXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb244Yi5jOjUxOTpNT0RVTEVfREVTQ1JJUFRJT04oXFxcIkFtbG9naWMgTWVzb244YiwgTWVzb244bTIgYW5kIEdYQkIgRFdNQUMgZ2x1ZSBsYXllclxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYy01MjAtTU9EVUxFX0xJQ0VOU0UoXFxcIkdQTCB2MlxcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMi0vKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jOjM6ICogRFdNQUMgZ2x1ZSBkcml2ZXIgZm9yIE1vdG9yY29tbSBQQ0kgRXRoZXJuZXQgY29udHJvbGxlcnNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy00LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0yMDg9bW90b3Jjb21tX2RlZmF1bHRfcGxhdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMjQ3LVxcdHBsYXQtXFx1MDAzZWNsa19yZWZfcmF0ZVxcdD0gMTI1MDAwMDAwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jOjI0ODpcXHRwbGF0LVxcdTAwM2Vjb3JlX3R5cGVcXHRcXHQ9IERXTUFDX0NPUkVfR01BQzQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMjQ5LVxcdHBsYXQtXFx1MDAzZXN1c3BlbmRcXHRcXHQ9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MzgzPW1vZHVsZV9wY2lfZHJpdmVyKGR3bWFjX21vdG9yY29tbV9wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0zODQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6Mzg1Ok1PRFVMRV9ERVNDUklQVElPTihcXFwiRFdNQUMgZ2x1ZSBkcml2ZXIgZm9yIE1vdG9yY29tbSBQQ0kgRXRoZXJuZXQgY29udHJvbGxlcnNcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0zODYtTU9EVUxFX0FVVEhPUihcXFwiWWFvIFppIFxcdTAwM2NtZUB6aXlhby5jY1xcdTAwM2VcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYy0yLS8qXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbnV2b3Rvbi5jOjM6ICogTnV2b3RvbiBEV01BQyBzcGVjaWZpYyBnbHVlIGxheWVyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbnV2b3Rvbi5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYz0xMzY9TU9EVUxFX0FVVEhPUihcXFwiSm9leSBMdSBcXHUwMDNjYTA5ODcyMDMwNjlAZ21haWwuY29tXFx1MDAzZVxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYzoxMzc6TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJOdXZvdG9uIERXTUFDIHNwZWNpZmljIGdsdWUgbGF5ZXJcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmMtMTM4LU1PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmM9Njg0PXN0YXRpYyBpbnQgcWNvbV9ldGhxb3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmMtNzc2LVxcdHBsYXRfZGF0LVxcdTAwM2VwdHBfY2xrX2ZyZXFfY29uZmlnID0gZXRocW9zX3B0cF9jbGtfZnJlcV9jb25maWc7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYzo3Nzc6XFx0cGxhdF9kYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQzQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYy03NzgtXFx0aWYgKGV0aHFvcy1cXHUwMDNlaGFzX2VtYWNfZ2VfMylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYy0yLS8qXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmVuZXNhcy1nYmV0aC5jOjM6ICogZHdtYWMtcmVuZXNhcy1nYmV0aC5jIC0gRFdNQUMgU3BlY2lmaWMgR2x1ZSBsYXllciBmb3IgUmVuZXNhcyBHQkVUSFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYy00LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmM9MjM0PU1PRFVMRV9BVVRIT1IoXFxcIkxhZCBQcmFiaGFrYXIgXFx1MDAzY3ByYWJoYWthci5tYWhhZGV2LWxhZC5yakBicC5yZW5lc2FzLmNvbVxcdTAwM2VcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmM6MjM1Ok1PRFVMRV9ERVNDUklQVElPTihcXFwiUmVuZXNhcyBHQkVUSCBEV01BQyBTcGVjaWZpYyBHbHVlIGxheWVyXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmVuZXNhcy1nYmV0aC5jLTIzNi1NT0RVTEVfTElDRU5TRShcXFwiR1BMXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jLTItLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYzozOiAqIERPQzogZHdtYWMtcmsuYyAtIFJvY2tjaGlwIFJLMzI4OCBEV01BQyBzcGVjaWZpYyBnbHVlIGxheWVyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYy00LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jPTE1Njg9c3RhdGljIGludCBya19nbWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jLTE1OTEtXFx0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYzoxNTkyOlxcdGlmIChwbGF0X2RhdC1cXHUwMDNlY29yZV90eXBlICE9IERXTUFDX0NPUkVfR01BQzQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jOjE1OTM6XFx0XFx0cGxhdF9kYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfR01BQztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jLTE1OTQtXFx0XFx0cGxhdF9kYXQtXFx1MDAzZXJ4X2ZpZm9fc2l6ZSA9IDQwOTY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jPTE2NDc9TU9EVUxFX0FVVEhPUihcXFwiQ2hlbi1aaGkgKFJvZ2VyIENoZW4pIFxcdTAwM2Nyb2dlci5jaGVuQHJvY2stY2hpcHMuY29tXFx1MDAzZVxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmM6MTY0ODpNT0RVTEVfREVTQ1JJUFRJT04oXFxcIlJvY2tjaGlwIFJLMzI4OCBEV01BQyBzcGVjaWZpYyBnbHVlIGxheWVyXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYy0xNjQ5LU1PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYz05MT1NT0RVTEVfQVVUSE9SKFxcXCJDbMOpbWVudCBMw6lnZXIgXFx1MDAzY2NsZW1lbnQubGVnZXJAYm9vdGxpbi5jb21cXHUwMDNlXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcnpuMS5jOjkyOk1PRFVMRV9ERVNDUklQVElPTihcXFwiUmVuZXNhcyBSWk4xIERXTUFDIHNwZWNpZmljIGdsdWUgbGF5ZXJcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yem4xLmMtOTMtTU9EVUxFX0xJQ0VOU0UoXFxcIkdQTFxcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmM9MTQ0PXN0YXRpYyBpbnQgczMyX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYy0xOTUtXFx0LyogUzMyQ0MgY29yZSBmZWF0dXJlIHNldCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXMzMi5jOjE5NjpcXHRwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXMzMi5jLTE5Ny1cXHRwbGF0LVxcdTAwM2VwbXQgPSB0cnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jPTU1OT1zdGF0aWMgdm9pZCBzb2NmcGdhX2dlbjVfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jLTU2Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM6NTYzOlxcdHBsYXRfZGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX0dNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jLTU2NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYz01Njk9c3RhdGljIHZvaWQgc29jZnBnYV9hZ2lsZXg1X3NldHVwX3BsYXRfZGF0KHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy01NzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jOjU3MzpcXHRwbGF0X2RhdC1cXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9YR01BQztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNTc0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jPTY4OT1tb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHNvY2ZwZ2FfZHdtYWNfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNjkwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYzo2OTE6TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJBbHRlcmEgU09DIERXTUFDIFNwZWNpZmljIEdsdWUgbGF5ZXJcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNjkyLU1PRFVMRV9MSUNFTlNFKFxcXCJHUEwgdjJcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jLTItLypcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYzozOiAqIFNvcGhnbyBEV01BQyBwbGF0Zm9ybSBkcml2ZXJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYy00LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYz05MT1NT0RVTEVfQVVUSE9SKFxcXCJJbm9jaGkgQW1hb3RvIFxcdTAwM2Npbm9jaGlhbWFAZ21haWwuY29tXFx1MDAzZVxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jOjkyOk1PRFVMRV9ERVNDUklQVElPTihcXFwiU29waGdvIERXTUFDIHBsYXRmb3JtIGRyaXZlclxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jLTkzLU1PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmMtMi0vKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmM6MzogKiBTcGFjZW1pdCBEV01BQyBwbGF0Zm9ybSBkcml2ZXJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmM9MjI4PU1PRFVMRV9BVVRIT1IoXFxcIklub2NoaSBBbWFvdG8gXFx1MDAzY2lub2NoaWFtYUBnbWFpbC5jb21cXHUwMDNlXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3BhY2VtaXQuYzoyMjk6TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJTcGFjZW1pdCBEV01BQyBwbGF0Zm9ybSBkcml2ZXJcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jLTIzMC1NT0RVTEVfTElDRU5TRShcXFwiR1BMXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTItLypcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jOjM6ICogU3RhckZpdmUgRFdNQUMgcGxhdGZvcm0gZHJpdmVyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYy00LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTE3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmM6MTg6I2RlZmluZSBTVEFSRklWRV9EV01BQ19QSFlfSU5GVF9GSUVMRFxcdFxcdDB4N1VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTE5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYz0zMj1zdGF0aWMgaW50IHN0YXJmaXZlX2R3bWFjX3NldF9tb2RlKHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTU1LVxcdGVyciA9IHJlZ21hcF91cGRhdGVfYml0cyhyZWdtYXAsIGFyZ3NbMF0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYzo1NjpcXHRcXHRcXHRcXHQgU1RBUkZJVkVfRFdNQUNfUEhZX0lORlRfRklFTEQgXFx1MDAzY1xcdTAwM2MgYXJnc1sxXSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTU3LVxcdFxcdFxcdFxcdCBwaHlfaW50Zl9zZWwgXFx1MDAzY1xcdTAwM2MgYXJnc1sxXSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jPTE3OT1NT0RVTEVfTElDRU5TRShcXFwiR1BMXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYzoxODA6TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJTdGFyRml2ZSBEV01BQyBwbGF0Zm9ybSBkcml2ZXJcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTE4MS1NT0RVTEVfQVVUSE9SKFxcXCJFbWlsIFJlbm5lciBCZXJ0aGluZyBcXHUwMDNja2VybmVsQGVzbWlsLmRrXFx1MDAzZVxcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RpLmMtMi0vKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jOjM6ICogZHdtYWMtc3RpLmMgLSBTVE1pY3JvZWxlY3Ryb25pY3MgRFdNQUMgU3BlY2lmaWMgR2x1ZSBsYXllclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTIzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jOjI0OiNkZWZpbmUgRFdNQUNfNTBNSFpcXHQ1MDAwMDAwMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTI1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RpLmM9MTE5PXN0YXRpYyB2b2lkIHN0aWg0eHhfZml4X3JldGltZV9zcmModm9pZCAqcHJpdiwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTEzMy1cXHRcXHRcXHRzcmMgPSBUWF9SRVRJTUVfU1JDX0NMS0dFTjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYzoxMzQ6XFx0XFx0XFx0ZnJlcSA9IERXTUFDXzUwTUhaO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTEzNS1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYz0zMTI9TU9EVUxFX0FVVEhPUihcXFwiU3Jpbml2YXMgS2FuZGFnYXRsYSBcXHUwMDNjc3Jpbml2YXMua2FuZGFnYXRsYUBzdC5jb21cXHUwMDNlXFxcIik7XFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDAzOjQ0OjE5LjQxODk1MjY4NloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2MjE4MDM5MjI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlJlYWNoaW5nIHRoZSBEZXNpZ25XYXJlIE1BQyBpbiBRRU1VL1N5emthbGxlcjogQSBEZWVwIERpdmUqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBody9uZXQvZGVzaWdud2FyZS5jYCBpbiBRRU1VLCB3aGljaCBpcyB0aGUgRGVzaWduV2FyZSBNQUMuIFRoZSBxdWVzdGlvbiBpcywgY2FuIHdlIGFjdHVhbGx5IHJlYWNoIHRoaXMgaW4gYSBmdXp6ZXIgbGlrZSBTeXprYWxsZXI/XG5cbkZpcnN0LCBJIGNoZWNrZWQgd2hlcmUgdGhpcyBjb2RlIGlzIHVzZWQgd2l0aGluIFFFTVUuIEl0J3MgaW4gdmFyaW91cyBBUk0gbWFjaGluZXMsIGJ1dCBpdCBsb29rcyBsaWtlIHRoZSBEZXNpZ25XYXJlIE1BQyBpcyBzcGVjaWZpY2FsbHkgdXNlZCBpbiB0aGUgQWxsd2lubmVyIEgzIChgYWxsd2lubmVyLWgzLmNgKSwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuICBUaGlzIFFFTVUgYGRlc2lnbndhcmUuY2AgaW1wbGVtZW50cyB0aGUgRFdNQUMuXG5cblRoZSBrZXkgaXMgd2hldGhlciBTeXprYWxsZXIgY2FuIGFjdHVhbGx5IGhpdCB0aGlzIGluIGl0cyBmdXp6aW5nIGNhbXBhaWducy4gU3l6a2FsbGVyLCBvZiBjb3Vyc2UsIGRvZXMgZnV6eiBBUk0zMiBhbmQgQVJNNjQga2VybmVscyB0aHJvdWdoIFFFTVUgYW5kIGNhbiBhbHNvIGZ1enogUENJIGRldmljZXMgKmlmKiB0aGV5IGFyZSBlbXVsYXRlZC4gIFRoZW4gSSByZW1lbWJlcmVkIGBzdG1tYWNgIHdoaWNoIGFsc28gaGFzIGEgUENJIGRyaXZlciAoYHN0bW1hY19wY2kuY2ApLiBUaGUgcXVlc3Rpb24gaW1tZWRpYXRlbHkgYmVjb21lczogZG9lcyBRRU1VIG9mZmVyIFBDSSBlbXVsYXRpb24gZm9yIHRoZSBEZXNpZ25XYXJlIE1BQywgdGhhdCBTeXprYWxsZXIgY2FuIHJlYWNoP1xuXG5Ob3csIFFFTVUncyBgaHcvbmV0L2Rlc2lnbndhcmUuY2AgaXMgYWN0dWFsbHkgYSBTeXNCdXNEZXZpY2UgKHBsYXRmb3JtIGRldmljZSkuIFNvLCBjYW4gc3l6a2FsbGVyIGZ1enogcGxhdGZvcm0gZGV2aWNlcz8gSXQgY2FuIGlmIHRoZXkgYXJlIG9uIGEgYm9hcmQsIG9yIGNhbiBpbmplY3QgdGhlbS4gU3l6a2FsbGVyIGRvZXMgaGF2ZSBuZXR3b3JrIHByaW1pdGl2ZXMgc3VjaCBhcyBgc3l6X2dlbmV0bGlua2AgYW5kIGBzeXpfbmV0bGlua2AgdGhhdCBjcmVhdGUgdmlydHVhbCBpbnRlcmZhY2VzLCBidXQgYHN0bW1hY2AgaXMgYSAqaGFyZHdhcmUqIGRyaXZlci4gIEFuZCB0aGUgcHJvbXB0IHNhaWQgdGhhdCBpZiBpdCdzIGltcG9zc2libGUgdG8gcmVhY2gsIHRoZW4gSSBzaG91bGQgcmV0dXJuIGBmYWxzZWAuXG5cbkhlcmUncyB0aGUgcHJvYmxlbTogSSBoYXZlIGEgY29tbWl0IG1lc3NhZ2UgZnJvbSBhIHN5ei1jbHVzdGVyLCBpbmRpY2F0aW5nIHRoYXQgc3l6a2FsbGVyIGlzIHRlc3RpbmcgYSBwYXRjaCBmb3IgdGhpcyBkcml2ZXIuIEJ1dCB0aGlzIGRvZXNuJ3QgZ3VhcmFudGVlIHRoZSBjb2RlIHBhdGggaXMgKnJlYWNoYWJsZSouIFRlc3RpbmcgYSBwYXRjaCBkb2Vzbid0IGVxdWFsIGZ1enppbmcgdGhlIGRyaXZlciBpdHNlbGYuIFRoYXQgZG9lc24ndCBtZWFuIHRoYXQgc3l6a2FsbGVyIGNhbiBhY3RpdmVseSBmaW5kIGJ1Z3MgaW4gaXQuXG5cbkkgZGlkIHN0YXJ0IHRvIHdvbmRlciB3aGV0aGVyIHRoZXJlIHdhcyBhIGBzeXpfcGNpX2RldmljZWAgdHlwZSBjYWxsIGZvciBTeXprYWxsZXIsIHNvbWV0aGluZyB0byBlbXVsYXRlIGEgUENJIGRldmljZSBkaXJlY3RseS4gQnV0IG5vLiBTeXprYWxsZXIgdXNlcyBRRU1VIHRvIGVtdWxhdGUgdGhlIGhhcmR3YXJlLiBUaGUgY3J1Y2lhbCB0aGluZyBpcyB0aGF0IHN5emthbGxlciBkb2Vzbid0IGhhdmUgYSBgc3l6X3BjaV9kZXZpY2VgLCBpdCBkb2Vzbid0IGRvIGZ1enppbmcgdXNpbmcgYHZmaW9gIGVpdGhlci5cblxuVGhlbiBJIHNoaWZ0ZWQgbXkgZm9jdXMuIFFFTVUgKmRvZXMqIHJ1biBBUk0gbWFjaGluZXMuIENhbiBhbiBBUk0gbWFjaGluZSB1c2UgYHN0bW1hY2AgdGhyb3VnaCB0aGUgUUVNVSBlbXVsYXRpb24/IEJ1dCB0aGUgXCJ2aXJ0XCIgbWFjaGluZSBpcyB1c2VkIGluIFN5emthbGxlciB3aXRoIFFFTVUsIGJ1dCB1c2VzIGB2aXJ0aW8tbmV0YCBmb3IgbmV0d29ya2luZy5cblxuT2theSwgbGV0J3MgY2hhbmdlIHBlcnNwZWN0aXZlLiBXaGF0IGFib3V0IGlmIHRoZSB1c2VyIGNvbXBpbGVzIHRoZSBrZXJuZWwgZm9yIHg4Nl82ND8gVGhlIGBzdG1tYWNfcGNpYCBkcml2ZXIgaXMgYXZhaWxhYmxlIG9uIHg4Nl82NCAoSW50ZWwgUXVhcmssIEFwb2xsbyBMYWtlLCBldGMuKS4gQ2FuIGl0IGJlIHJlYWNoZWQgaW4gUUVNVSB4ODZfNjQ/IEJ1dCBRRU1VIGRvZXMgKm5vdCogZW11bGF0ZSBJbnRlbCBEV01BQyBQQ0kgZGV2aWNlcy5cblxuT2theSwgaXMgdGhlcmUgYW5vdGhlciB3YXk/IE1heWJlIGBzdG1tYWNgIGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgUUVNVSB4ODZfNjQuIFdoYXQgYWJvdXQgYHZldGhgIG9yIGB0dW5gPyBUaGVzZSBhcmUgdmlydHVhbC4gYHN0bW1hY2AgaXMgYSAqcGh5c2ljYWwqIGRyaXZlci4gSSBuZWVkIHRvIGJlIGFibGUgdG8gdHJpZ2dlciB0aGUgY29kZSB3aXRob3V0IHRoZSBoYXJkd2FyZS5cblxuTm8sIHRoaXMgaXMgYSBoYXJkd2FyZSBkcml2ZXIuIEl0IG5lZWRzIGhhcmR3YXJlIHJlZ2lzdGVycy4gVGhlIHByb21wdCBzYXlzLCBzcGVjaWZpY2FsbHk6IFwiQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlXCIuXG5cblRoaXMgYWxsIGNvbWVzIGRvd24gdG8gdGhlIHByb21wdCdzIGZpbmFsIHN0YXRlbWVudDogXCJJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoIHRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlwiXG5cbkdpdmVuIGFsbCBvZiB0aGlzLCBjYW4gYHN0bW1hY2AgYmUgcmVhY2hlZCBpbiBRRU1VPyBBbmQgUUVNVSBkb2VzICpub3QqIGVtdWxhdGUgYHN0bW1hY2AgUENJLiBTaW5jZSB0aGUgZ29hbCBpcyBmdXp6aW5nLCBJJ20gbGVhbmluZyB0b3dhcmQgdGhlIGNvZGUgcGF0aHMgYmVpbmcgdW5yZWFjaGFibGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3OTYwLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE4OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQwMzo0NDozNS42MzY5OTYyNFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjEwNzcxNjQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RtbWFjXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTE2MDggbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mjk9Y29uZmlnIFNUTU1BQ19QTEFURk9STVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMy1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNDpcXHQgIFRoaXMgc2VsZWN0cyB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgYnVzIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzUtXFx0ICBUaGlzIGlzIHRoZSBkcml2ZXIgdXNlZCBvbiBzZXZlcmFsIFNvQ3M6XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTYwPWNvbmZpZyBEV01BQ19BTkFSSU9OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTY2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Njc6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIEFuYXJpb24gU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy02OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Nzg9Y29uZmlnIERXTUFDX0lOR0VOSUNcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctODUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo4NjpcXHQgIFRoaXMgc2VsZWN0cyBJbmdlbmljIFNvQ3MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy04Ny1cXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBJbmdlbmljIFNvQ3NcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9OTA9Y29uZmlnIERXTUFDX0lQUTgwNlhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctOTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo5ODpcXHQgIFRoaXMgc2VsZWN0cyB0aGUgSVBRODA2eCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05OS1cXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGRvZXMgbm90IHVzZSBhbnkgb2YgdGhlIGhhcmR3YXJlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTExND1jb25maWcgRFdNQUNfTUVESUFURUtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTIwOlxcdCAgVGhpcyBzZWxlY3RzIHRoZSBNVDI3MTIgU29DIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTIyPWNvbmZpZyBEV01BQ19NRVNPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMjktXFx0ICBUaGlzIHNlbGVjdHMgdGhlIEFtbG9naWMgTWVzb24gU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjEzMDpcXHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgTWVzb242LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTMxLVxcdCAgTWVzb244LCBNZXNvbjhiIGFuZCBHWEJCIFNvQ3MuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTEzMz1jb25maWcgRFdNQUNfTlVWT1RPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNDEtXFx0ICBUaGlzIHNlbGVjdHMgdGhlIE51dm90b24gTUEzNSBzZXJpZXMgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTQyOlxcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhlIG51dm90b24tZHdtYWMgZHJpdmVyIGlzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNDMtXFx0ICB1c2VkIGZvciBNQTM1IHNlcmllcyBTb0NzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNDU9Y29uZmlnIERXTUFDX1FDT01fRVRIUU9TXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE1Mi1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgUXVhbGNvbW0gRVRIUU9TIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxNTM6XFx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE1NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE1NT1jb25maWcgRFdNQUNfUkVORVNBU19HQkVUSFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxNjQ6XFx0ICBUaGlzIHNlbGVjdHMgUmVuZXNhcyBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRldmljZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTY1LVxcdCAgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGUgUlovVjJIKFApIGZhbWlseSwgUlovVDJIIGFuZFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNjg9Y29uZmlnIERXTUFDX1JPQ0tDSElQXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3Ni1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgUm9ja2NoaXAgUkszMjg4IFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxNzc6XFx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNzk9Y29uZmlnIERXTUFDX1JaTjFcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTg3LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBSZW5lc2FzIFJaL04xIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxODg6XFx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgc3VwcG9ydCBjYW4gbWFrZSB1c2Ugb2YgYSBjdXN0b20gTUlJXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xODktXFx0ICBjb252ZXJ0ZXIgUENTIGRldmljZS5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTkxPWNvbmZpZyBEV01BQ19TMzJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTk3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTk4OlxcdCAgVGhpcyBzZWxlY3RzIE5YUCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xOTktXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGUgUzMyQ0Mgc2VyaWVzXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIwMz1jb25maWcgRFdNQUNfU09DRlBHQVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMTQtXFx0ICBUaGlzIHNlbGVjdHMgdGhlIEFsdGVyYSBTT0NGUEdBIFNvQyBnbHVlIGxheWVyIHN1cHBvcnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIxNTpcXHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMTYtXFx0ICBhcnJpYTUgYW5kIGN5Y2xvbmU1IEZQR0EgU29Dcy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjE4PWNvbmZpZyBEV01BQ19TT1BIR09cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjI1LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBTb3BoZ28gU29DIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjI2OlxcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMjctXFx0ICBldGhlcm5ldCBjb250cm9sbGVycyBvbiB2YXJpb3VzIFNvcGhnbyBTb0NzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMjk9Y29uZmlnIERXTUFDX1NQQUNFTUlUXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIzNy1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgU3BhY2VtaXQgcGxhdGZvcm0gc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMzg6XFx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIzOS1cXHQgIFNwYWNlbWl0IEszIGV0aGVybmV0IGNvbnRyb2xsZXJzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yNDE9Y29uZmlnIERXTUFDX1NUQVJGSVZFXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI0OS1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgU3RhckZpdmUgcGxhdGZvcm0gc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyNTA6XFx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI1MS1cXHQgIFN0YXJGaXZlIEpINzEwMCBhbmQgSkg3MTEwIGV0aGVybmV0IGNvbnRyb2xsZXJzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yNTM9Y29uZmlnIERXTUFDX1NUSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyNjE6XFx0ICBUaGlzIHNlbGVjdHMgU1RpIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI2Mi1cXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBTVGkgc2VyaWVzXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI2NT1jb25maWcgRFdNQUNfU1RNMzJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjczOlxcdCAgVGhpcyBzZWxlY3RzIFNUTTMyIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI3NC1cXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBTVE0zMiBzZXJpZXNcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mjc3PWNvbmZpZyBEV01BQ19TVU5YSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yODQtXFx0ICBUaGlzIHNlbGVjdHMgQWxsd2lubmVyIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjg1OlxcdCAgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIEEyMC9BMzFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI4Ni1cXHQgIEdNQUMgZXRoZXJuZXQgY29udHJvbGxlci5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mjg4PWNvbmZpZyBEV01BQ19TVU44SVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yOTYtXFx0ICBUaGlzIHNlbGVjdHMgQWxsd2lubmVyIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjk3OlxcdCAgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIEgzL0E4M1QvQTY0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yOTgtXFx0ICBFTUFDIGV0aGVybmV0IGNvbnRyb2xsZXIuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMwMD1jb25maWcgRFdNQUNfU1VONTVJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMwOC1cXHQgIFRoaXMgc2VsZWN0cyBBbGx3aW5uZXIgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMDk6XFx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgQTUyMy9UNTI3XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMTAtXFx0ICBHTUFDMjAwIGV0aGVybmV0IGNvbnRyb2xsZXIuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMxMj1jb25maWcgRFdNQUNfVEhFQURcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzE4LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBULUhFQUQgcGxhdGZvcm0gc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzE5OlxcdCAgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBULUhFQUQgVEgxNTIwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMjAtXFx0ICBldGhlcm5ldCBjb250cm9sbGVyLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMjI9Y29uZmlnIERXTUFDX0lNWDhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzMwOlxcdCAgVGhpcyBzZWxlY3RzIE5YUCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMzEtXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBpLk1YOCBzZXJpZXMgbGlrZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMzQ9Y29uZmlnIERXTUFDX0lOVEVMX1BMQVRcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzQwLVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBJbnRlbCBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNDE6XFx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZSBJbnRlbCBLZWVtIEJheVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzQyLVxcdCAgU29DLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNDQ9Y29uZmlnIERXTUFDX0xPT05HU09OMVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNTE6XFx0ICBUaGlzIHNlbGVjdHMgTG9vbmdzb24xIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1Mi1cXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIExvb25nc29uMS1iYXNlZCBib2FyZHNcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzU1PWNvbmZpZyBEV01BQ19URUdSQVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNjAtXFx0ICBmb3VuZCBvbiB0aGUgTlZJRElBIFRlZ3JhIFNvQyBkZXZpY2VzLiBUaGlzIGRyaXZlciBwcm92aWRlcyB0aGUgZ2x1ZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzYxOlxcdCAgbGF5ZXIgb24gdG9wIG9mIHRoZSBzdG1tYWMgZHJpdmVyIHJlcXVpcmVkIGZvciB0aGVzZSBOVklESUEgVGVncmEgU29DXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNjItXFx0ICBkZXZpY2VzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzM9Y29uZmlnIFNUTU1BQ19MSUJQQ0lcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzc1LVxcdGhlbHBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM3NjpcXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIFBDSSBidXMgaGVscGVycyBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzg9Y29uZmlnIERXTUFDX0lOVEVMXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM4NS1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgSW50ZWwgcGxhdGZvcm0gc3BlY2lmaWMgYnVzIHN1cHBvcnQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzg2OlxcdCAgc3RtbWFjIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSW50ZWwgUXVhcmsvRUhML1RHTC5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM4OD1jb25maWcgRFdNQUNfTE9PTkdTT05cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzk0LVxcdGhlbHBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM5NTpcXHQgIFRoaXMgc2VsZWN0cyB0aGUgTE9PTkdTT04gUENJIGJ1cyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM5Ni1cXHQgIFN1cHBvcnQgZm9yIGV0aGVybmV0IGNvbnRyb2xsZXIgb24gTG9vbmdzb24tMksxMDAwIFNvQyBhbmQgTFM3QTEwMDAgYnJpZGdlLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz00MDc9Y29uZmlnIFNUTU1BQ19QQ0lcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDEyLVxcdGhlbHBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQxMzpcXHQgIFRoaXMgc2VsZWN0cyB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgYnVzIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDE0LVxcdCAgVGhpcyBkcml2ZXIgd2FzIHRlc3RlZCBvbiBYTElOWCBYQzJWMzAwMCBGRjExNTJBTVQwMjIxXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyOm9iai0kKENPTkZJR19TVE1NQUNfRVRIKSArPSBzdG1tYWMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjM6c3RtbWFjLW9ianM6PSBzdG1tYWNfbWFpbi5vIHN0bW1hY19ldGh0b29sLm8gc3RtbWFjX21kaW8ubyByaW5nX21vZGUub1xcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS00LVxcdCAgICAgIGNoYWluX21vZGUubyBkd21hY19saWIubyBkd21hYzEwMDBfY29yZS5vIGR3bWFjMTAwMF9kbWEub1xcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01LVxcdCAgICAgIGR3bWFjMTAwX2NvcmUubyBkd21hYzEwMF9kbWEubyBlbmhfZGVzYy5vIG5vcm1fZGVzYy5vXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjY6XFx0ICAgICAgbW1jX2NvcmUubyBzdG1tYWNfaHd0c3RhbXAubyBzdG1tYWNfcHRwLm8gZHdtYWM0X2Rlc2NzLm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNy1cXHQgICAgICBkd21hYzRfZG1hLm8gZHdtYWM0X2xpYi5vIGR3bWFjNF9jb3JlLm8gZHdtYWM1Lm8gaHdpZi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo4OlxcdCAgICAgIHN0bW1hY190Yy5vIGR3eGdtYWMyX2NvcmUubyBkd3hnbWFjMl9kbWEubyBkd3hnbWFjMl9kZXNjcy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo5OlxcdCAgICAgIHN0bW1hY194ZHAubyBzdG1tYWNfZXN0Lm8gc3RtbWFjX2ZwZS5vIHN0bW1hY192bGFuLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjEwOlxcdCAgICAgIHN0bW1hY19wY3MubyAkKHN0bW1hYy15KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjEyOnN0bW1hYy0kKENPTkZJR19TVE1NQUNfU0VMRlRFU1RTKSArPSBzdG1tYWNfc2VsZnRlc3RzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xNC0jIE9yZGVyaW5nIG1hdHRlcnMuIEdlbmVyaWMgZHJpdmVyIG11c3QgYmUgbGFzdC5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxNTpvYmotJChDT05GSUdfU1RNTUFDX1BMQVRGT1JNKVxcdCs9IHN0bW1hYy1wbGF0Zm9ybS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMTYtb2JqLSQoQ09ORklHX0RXTUFDX0FOQVJJT04pXFx0Kz0gZHdtYWMtYW5hcmlvbi5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT00NT1vYmotJChDT05GSUdfRFdNQUNfVklTQ09OVEkpXFx0Kz0gZHdtYWMtdmlzY29udGkub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQ2OnN0bW1hYy1wbGF0Zm9ybS1vYmpzOj0gc3RtbWFjX3BsYXRmb3JtLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS00Ny1kd21hYy1hbHRyLXNvY2ZwZ2Etb2JqcyA6PSBkd21hYy1zb2NmcGdhLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS00OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo0OTpvYmotJChDT05GSUdfU1RNTUFDX0xJQlBDSSlcXHQrPSBzdG1tYWNfbGlicGNpLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo1MDpvYmotJChDT05GSUdfU1RNTUFDX1BDSSlcXHQrPSBzdG1tYWMtcGNpLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01MS1vYmotJChDT05GSUdfRFdNQUNfSU5URUwpXFx0Kz0gZHdtYWMtaW50ZWwub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9NTM9b2JqLSQoQ09ORklHX0RXTUFDX01PVE9SQ09NTSlcXHQrPSBkd21hYy1tb3RvcmNvbW0ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjU0OnN0bW1hYy1wY2ktb2Jqczo9IHN0bW1hY19wY2kub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNTojaW5jbHVkZSBcXFwic3RtbWFjLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNzpzdGF0aWMgaW50IGp1bWJvX2ZybShzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xOC1cXHRcXHQgICAgIGludCBjc3VtKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIwLVxcdHVuc2lnbmVkIGludCBub3BhZ2VkX2xlbiA9IHNrYl9oZWFkbGVuKHNrYik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjIxOlxcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHR4X3EtXFx1MDAzZXByaXZfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMjItXFx0dW5zaWduZWQgaW50IGVudHJ5ID0gdHhfcS1cXHUwMDNlY3VyX3R4O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTQ0LVxcdC8qIGRvIG5vdCBjbG9zZSB0aGUgZGVzY3JpcHRvciBhbmQgZG8gbm90IHNldCBvd24gYml0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjQ1OlxcdHN0bW1hY19wcmVwYXJlX3R4X2Rlc2MocHJpdiwgZGVzYywgMSwgYnVmX2xlbiwgY3N1bSwgU1RNTUFDX0NIQUlOX01PREUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTQ2LVxcdFxcdFxcdDAsIGZhbHNlLCBza2ItXFx1MDAzZWxlbik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNjEtXFx0XFx0XFx0dHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0ubGVuID0gYm1heDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6NjI6XFx0XFx0XFx0c3RtbWFjX3ByZXBhcmVfdHhfZGVzYyhwcml2LCBkZXNjLCAwLCBibWF4LCBjc3VtLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy02My1cXHRcXHRcXHRcXHRcXHRTVE1NQUNfQ0hBSU5fTU9ERSwgMSwgZmFsc2UsIHNrYi1cXHUwMDNlbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03NS1cXHRcXHRcXHQvKiBsYXN0IGRlc2NyaXB0b3IgY2FuIGJlIHNldCBub3cgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6NzY6XFx0XFx0XFx0c3RtbWFjX3ByZXBhcmVfdHhfZGVzYyhwcml2LCBkZXNjLCAwLCBsZW4sIGNzdW0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTc3LVxcdFxcdFxcdFxcdFxcdFNUTU1BQ19DSEFJTl9NT0RFLCAxLCB0cnVlLCBza2ItXFx1MDAzZWxlbik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM9OTg9c3RhdGljIHZvaWQgaW5pdF9kbWFfY2hhaW4odm9pZCAqZGVzLCBkbWFfYWRkcl90IHBoeV9hZGRyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEyNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTI4OnN0YXRpYyB2b2lkIHJlZmlsbF9kZXNjMyhzdHJ1Y3Qgc3RtbWFjX3J4X3F1ZXVlICpyeF9xLCBzdHJ1Y3QgZG1hX2Rlc2MgKnApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEyOS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjEzMDpcXHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSByeF9xLVxcdTAwM2Vwcml2X2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEzMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE0MzpzdGF0aWMgdm9pZCBjbGVhbl9kZXNjMyhzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xLCBzdHJ1Y3QgZG1hX2Rlc2MgKnApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE0NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE0NTpcXHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSB0eF9xLVxcdTAwM2Vwcml2X2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE0Ni1cXHR1bnNpZ25lZCBpbnQgZW50cnkgPSB0eF9xLVxcdTAwM2VkaXJ0eV90eDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE2MDpjb25zdCBzdHJ1Y3Qgc3RtbWFjX21vZGVfb3BzIGNoYWluX21vZGVfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNjEtXFx0LmluaXQgPSBpbml0X2RtYV9jaGFpbixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTE1LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9uZXRkZXZpY2UuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoxNjojaW5jbHVkZSBcXHUwMDNjbGludXgvc3RtbWFjLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTctI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BoeS5oXFx1MDAzZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDk9c3RhdGljIGlubGluZSBib29sIGR3bWFjX2lzX3htYWMoZW51bSBkd21hY19jb3JlX3R5cGUgY29yZV90eXBlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NzE6c3RydWN0IHN0bW1hY19xX3R4X3N0YXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC03Mi1cXHR1NjRfc3RhdHNfdCB0eF9ieXRlcztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTc3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjc4OnN0cnVjdCBzdG1tYWNfbmFwaV90eF9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzktXFx0dTY0X3N0YXRzX3QgdHhfcGFja2V0cztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjg2OnN0cnVjdCBzdG1tYWNfdHhxX3N0YXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC04Ny1cXHQvKiBVcGRhdGVzIHByb3RlY3RlZCBieSB0eCBxdWV1ZSBsb2NrLiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTg4LVxcdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBxX3N5bmNwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjg5OlxcdHN0cnVjdCBzdG1tYWNfcV90eF9zdGF0cyBxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTkwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtOTItXFx0c3RydWN0IHU2NF9zdGF0c19zeW5jIG5hcGlfc3luY3A7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6OTM6XFx0c3RydWN0IHN0bW1hY19uYXBpX3R4X3N0YXRzIG5hcGk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtOTQtfSBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjk2OnN0cnVjdCBzdG1tYWNfbmFwaV9yeF9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtOTctXFx0dTY0X3N0YXRzX3QgcnhfYnl0ZXM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTAzOnN0cnVjdCBzdG1tYWNfcnhxX3N0YXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDQtXFx0LyogVXBkYXRlcyBwcm90ZWN0ZWQgYnkgTkFQSSBwb2xsIGxvZ2ljLiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNS1cXHRzdHJ1Y3QgdTY0X3N0YXRzX3N5bmMgbmFwaV9zeW5jcDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoxMDY6XFx0c3RydWN0IHN0bW1hY19uYXBpX3J4X3N0YXRzIG5hcGk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTA3LX0gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwOS0vKiBVcGRhdGVzIG9uIGVhY2ggQ1BVIHByb3RlY3RlZCBieSBub3QgYWxsb3dpbmcgbmVzdGVkIGlycXMuICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTEwOnN0cnVjdCBzdG1tYWNfcGNwdV9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTExLVxcdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBzeW5jcDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExNi0vKiBFeHRyYSBzdGF0aXN0aWMgYW5kIGRlYnVnIGluZm9ybWF0aW9uIGV4cG9zZWQgYnkgZXRodG9vbCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjExNzpzdHJ1Y3Qgc3RtbWFjX2V4dHJhX3N0YXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMTgtXFx0LyogVHJhbnNtaXQgZXJyb3JzICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yMzctXFx0LyogcGVyIHF1ZXVlIHN0YXRpc3RpY3MgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoyMzg6XFx0c3RydWN0IHN0bW1hY190eHFfc3RhdHMgdHhxX3N0YXRzW01UTF9NQVhfVFhfUVVFVUVTXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoyMzk6XFx0c3RydWN0IHN0bW1hY19yeHFfc3RhdHMgcnhxX3N0YXRzW01UTF9NQVhfUlhfUVVFVUVTXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoyNDA6XFx0c3RydWN0IHN0bW1hY19wY3B1X3N0YXRzIF9fcGVyY3B1ICpwY3B1X3N0YXRzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI0MS1cXHR1bnNpZ25lZCBsb25nIHJ4X2Ryb3BwZWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDctLyogU2FmZXR5IEZlYXR1cmUgc3RhdGlzdGljcyBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoyNDg6c3RydWN0IHN0bW1hY19zYWZldHlfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI0OS1cXHR1bnNpZ25lZCBsb25nIG1hY19lcnJvcnNbMzJdO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMjU2LSNkZWZpbmUgU1RNTUFDX1NBRkVUWV9GRUFUX1NJWkVcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjU3OlxcdChzaXplb2Yoc3RydWN0IHN0bW1hY19zYWZldHlfc3RhdHMpIC8gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI1OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTQxNj1zdHJ1Y3QgZG1hX2ZlYXR1cmVzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTU2NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo1NjU6dm9pZCBzdG1tYWNfYXhpX2JsZW5fdG9fbWFzayh1MzIgKnJlZ3ZhbCwgY29uc3QgdTMyICpibGVuLCBzaXplX3QgbGVuKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC01NjYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaD02MTM9c3RydWN0IG1hY19kZXZpY2VfaW5mbyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE0OlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfb3BzICptYWM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE1OlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfZGVzY19vcHMgKmRlc2M7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE2OlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfZG1hX29wcyAqZG1hO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNzpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX21vZGVfb3BzICptb2RlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxODpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wICpwdHA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE5OlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfdGNfb3BzICp0YztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MjA6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19tbWNfb3BzICptbWM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjIxOlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfZXN0X29wcyAqZXN0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYyMjpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3ZsYW5fb3BzICp2bGFuO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTYyMy1cXHRzdHJ1Y3QgZHdfeHBjcyAqeHBjcztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY0NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NDU6c3RydWN0IHN0bW1hY19yeF9yb3V0aW5nIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NDYtXFx0dTMyIHJlZ19tYXNrO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjQ5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1MDppbnQgZHdtYWMxMDBfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTE6aW50IGR3bWFjMTAwMF9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1MjppbnQgZHdtYWM0X3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjUzOmludCBkd3hnbWFjMl9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1NDppbnQgZHd4bGdtYWMyX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1Njp2b2lkIHN0bW1hY19zZXRfbWFjX2FkZHIodm9pZCBfX2lvbWVtICppb2FkZHIsIGNvbnN0IHU4IGFkZHJbNl0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjU3LVxcdFxcdFxcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjU4OnZvaWQgc3RtbWFjX2dldF9tYWNfYWRkcih2b2lkIF9faW9tZW0gKmlvYWRkciwgdW5zaWduZWQgY2hhciAqYWRkcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NTktXFx0XFx0XFx0IHVuc2lnbmVkIGludCBoaWdoLCB1bnNpZ25lZCBpbnQgbG93KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjA6dm9pZCBzdG1tYWNfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY2MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjI6dm9pZCBzdG1tYWNfZHdtYWM0X3NldF9tYWNfYWRkcih2b2lkIF9faW9tZW0gKmlvYWRkciwgY29uc3QgdTggYWRkcls2XSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjMtXFx0XFx0XFx0XFx0dW5zaWduZWQgaW50IGhpZ2gsIHVuc2lnbmVkIGludCBsb3cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY2NDp2b2lkIHN0bW1hY19kd21hYzRfZ2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCB1bnNpZ25lZCBjaGFyICphZGRyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY2NS1cXHRcXHRcXHRcXHR1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjY2OnZvaWQgc3RtbWFjX2R3bWFjNF9zZXRfbWFjKHZvaWQgX19pb21lbSAqaW9hZGRyLCBib29sIGVuYWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjY3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTExLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9vZl9uZXQuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTI6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3N0bW1hYy5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTQ6I2luY2x1ZGUgXFxcInN0bW1hYy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxNTojaW5jbHVkZSBcXFwic3RtbWFjX3BsYXRmb3JtLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTE2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jPTYzPWFuYXJpb25fY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjY0OlxcdFxcdCAgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtNjUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jPTkzPXN0YXRpYyBpbnQgYW5hcmlvbl9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTk2LVxcdHN0cnVjdCBhbmFyaW9uX2dtYWMgKmdtYWM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjk3OlxcdHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjk4OlxcdHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHN0bW1hY19yZXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTk5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxMDA6XFx0cmV0ID0gc3RtbWFjX2dldF9wbGF0Zm9ybV9yZXNvdXJjZXMocGRldiwgXFx1MDAyNnN0bW1hY19yZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMDEtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEwNDpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEwNS1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjExNjpcXHRyZXR1cm4gZGV2bV9zdG1tYWNfcGx0ZnJfcHJvYmUocGRldiwgcGxhdF9kYXQsIFxcdTAwMjZzdG1tYWNfcmVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE3LX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz0xMjU9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYW5hcmlvbl9kd21hY19kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTI4LVxcdFxcdC5uYW1lICAgICAgICAgICA9IFxcXCJhbmFyaW9uLWR3bWFjXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTI5OlxcdFxcdC5wbVxcdFxcdD0gXFx1MDAyNnN0bW1hY19wbHRmcl9wbV9vcHMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEzMC1cXHRcXHQub2ZfbWF0Y2hfdGFibGUgPSBhbmFyaW9uX2R3bWFjX21hdGNoLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMS0jaW5jbHVkZSBcXHUwMDNjbGludXgvcmVzZXQuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjIyOiNpbmNsdWRlIFxcdTAwM2NsaW51eC9zdG1tYWMuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjQ6I2luY2x1ZGUgXFxcInN0bW1hY19wbGF0Zm9ybS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjUtI2luY2x1ZGUgXFxcImR3bWFjNC5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNj1zdGF0aWMgaW50IGR3Y19ldGhfZHdtYWNfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozNzpcXHRcXHRcXHRcXHQgICBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy00My1cXHRcXHRwbGF0X2RhdC1cXHUwMDNlYXhpID0gZGV2bV9remFsbG9jKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzo0NDpcXHRcXHRcXHRcXHRcXHQgICAgIHNpemVvZihzdHJ1Y3Qgc3RtbWFjX2F4aSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy00NS1cXHRcXHRcXHRcXHRcXHQgICAgIEdGUF9LRVJORUwpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz05Nj1zdGF0aWMgaW50IGR3Y19xb3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjk3OlxcdFxcdFxcdCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6OTg6XFx0XFx0XFx0IHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzICpzdG1tYWNfcmVzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtOTkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTAwOlxcdHBsYXRfZGF0LVxcdTAwM2VwY2xrID0gc3RtbWFjX3BsdGZyX2ZpbmRfY2xrKHBsYXRfZGF0LCBcXFwicGh5X3JlZl9jbGtcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTEwMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MTE1PXN0YXRpYyB2b2lkIHRlZ3JhX2Vxb3NfZml4X3NwZWVkKHZvaWQgKmJzcF9wcml2LCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xMTktXFx0Ym9vbCBuZWVkc19jYWxpYnJhdGlvbiA9IGZhbHNlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTIwOlxcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTEyMS1cXHR1MzIgdmFsdWU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTE0MS1cXHRcXHQvKiBDYWxpYnJhdGlvbiBzaG91bGQgYmUgZG9uZSB3aXRoIHRoZSBNRElPIGJ1cyBpZGxlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxNDI6XFx0XFx0c3RtbWFjX21kaW9fbG9jayhwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTE0My1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTc3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTc4OlxcdFxcdHN0bW1hY19tZGlvX3VubG9jayhwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTE3OS1cXHR9IGVsc2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0xODY9c3RhdGljIGludCB0ZWdyYV9lcW9zX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxODc6XFx0XFx0XFx0ICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxODg6XFx0XFx0XFx0ICAgIHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzICpyZXMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xODkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyMDQ6XFx0cGxhdF9kYXQtXFx1MDAzZWNsa190eF9pID0gc3RtbWFjX3BsdGZyX2ZpbmRfY2xrKHBsYXRfZGF0LCBcXFwidHhcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIwNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjM3LVxcdHBsYXRfZGF0LVxcdTAwM2VmaXhfbWFjX3NwZWVkID0gdGVncmFfZXFvc19maXhfc3BlZWQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyMzg6XFx0cGxhdF9kYXQtXFx1MDAzZXNldF9jbGtfdHhfcmF0ZSA9IHN0bW1hY19zZXRfY2xrX3R4X3JhdGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMzktXFx0cGxhdF9kYXQtXFx1MDAzZWJzcF9wcml2ID0gZXFvcztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjUyPXN0YXRpYyB2b2lkIHRlZ3JhX2Vxb3NfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNTMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjU0OlxcdHN0cnVjdCB0ZWdyYV9lcW9zICplcW9zID0gZ2V0X3N0bW1hY19ic3BfcHJpdihcXHUwMDI2cGRldi1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI1NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjYwPXN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjYxLVxcdGludCAoKnByb2JlKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjYyOlxcdFxcdCAgICAgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2MzpcXHRcXHQgICAgIHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzICpyZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY0LVxcdHZvaWQgKCpyZW1vdmUpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjY1OlxcdGNvbnN0IGNoYXIgKnN0bW1hY19jbGtfbmFtZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI2Ni19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNjg9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgZHdjX3Fvc19kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY5LVxcdC5wcm9iZSA9IGR3Y19xb3NfcHJvYmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNzA6XFx0LnN0bW1hY19jbGtfbmFtZSA9IFxcXCJhcGJfcGNsa1xcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNzEtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjczPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhIHRlZ3JhX2Vxb3NfZGF0YSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjc1LVxcdC5yZW1vdmUgPSB0ZWdyYV9lcW9zX3JlbW92ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI3NjpcXHQuc3RtbWFjX2Nsa19uYW1lID0gXFxcInNsYXZlX2J1c1xcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNzctfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9Mjc5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhIGZzZF9lcW9zX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODA6XFx0LnN0bW1hY19jbGtfbmFtZSA9IFxcXCJzbGF2ZV9idXNcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjgxLX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI4Mz1zdGF0aWMgaW50IGR3Y19ldGhfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjg1LVxcdGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgKmRhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODY6XFx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI4NzpcXHRzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyBzdG1tYWNfcmVzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjg4LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI5MjpcXHRtZW1zZXQoXFx1MDAyNnN0bW1hY19yZXMsIDAsIHNpemVvZihzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcykpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjk0LVxcdC8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjk1OlxcdCAqIFNpbmNlIHN0bW1hY19wbGF0Zm9ybSBzdXBwb3J0cyBuYW1lIElSUSBvbmx5LCBiYXNpYyBwbGF0Zm9ybVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjk2LVxcdCAqIHJlc291cmNlIGluaXRpYWxpemF0aW9uIGlzIGRvbmUgaW4gdGhlIGdsdWUgbG9naWMuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTctXFx0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTg6XFx0c3RtbWFjX3Jlcy5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjk5OlxcdGlmIChzdG1tYWNfcmVzLmlycSBcXHUwMDNjIDApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDA6XFx0XFx0cmV0dXJuIHN0bW1hY19yZXMuaXJxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzAxOlxcdHN0bW1hY19yZXMud29sX2lycSA9IHN0bW1hY19yZXMuaXJxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzAzOlxcdHN0bW1hY19yZXMuYWRkciA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNDpcXHRpZiAoSVNfRVJSKHN0bW1hY19yZXMuYWRkcikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDU6XFx0XFx0cmV0dXJuIFBUUl9FUlIoc3RtbWFjX3Jlcy5hZGRyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNzpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMDgtXFx0aWYgKElTX0VSUihwbGF0X2RhdCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMxNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMxNjpcXHRwbGF0X2RhdC1cXHUwMDNlc3RtbWFjX2NsayA9IHN0bW1hY19wbHRmcl9maW5kX2NsayhwbGF0X2RhdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMxNzpcXHRcXHRcXHRcXHRcXHRcXHQgICAgIGRhdGEtXFx1MDAzZXN0bW1hY19jbGtfbmFtZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTktXFx0aWYgKGRhdGEtXFx1MDAzZXByb2JlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzIwOlxcdFxcdHJldCA9IGRhdGEtXFx1MDAzZXByb2JlKHBkZXYsIHBsYXRfZGF0LCBcXHUwMDI2c3RtbWFjX3Jlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMjEtXFx0aWYgKHJldCBcXHUwMDNjIDApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzMwOlxcdHJldCA9IHN0bW1hY19kdnJfcHJvYmUoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgcGxhdF9kYXQsIFxcdTAwMjZzdG1tYWNfcmVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMzMS1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNDM9c3RhdGljIHZvaWQgZHdjX2V0aF9kd21hY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzQ3OlxcdHN0bW1hY19kdnJfcmVtb3ZlKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzQ4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNjE9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZHdjX2V0aF9kd21hY19kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM2NS1cXHRcXHQubmFtZSAgICAgICAgICAgPSBcXFwiZHdjLWV0aC1kd21hY1xcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozNjY6XFx0XFx0LnBtICAgICAgICAgICAgID0gXFx1MDAyNnN0bW1hY19wbHRmcl9wbV9vcHMsXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDAzOjQ0OjM1LjY5ODA3ODE5NFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDU1MTIwMzM5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBgc3RtbWFjYCBEcml2ZXI6IEEgVGFyZ2V0ZWQgQXBwcm9hY2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBzdG1tYWNgIGRyaXZlciwgd2hpY2ggSSBrbm93IGlzIGEgZ2VuZXJpYyBkcml2ZXIgZm9yIFN5bm9wc3lzIERlc2lnbldhcmUgTUFDIGltcGxlbWVudGF0aW9ucy4gQW5kIEkgc2VlIHRoYXQgUUVNVSBhY3R1YWxseSBoYXMgYGh3L25ldC9kZXNpZ253YXJlLmNgLCB3aGljaCBpcyB0aGUgZW11bGF0b3IgZm9yIHRoaXMgaGFyZHdhcmUsIHdoaWNoIGlzIGtleS4gVGhpcyBnZXRzIG1lIHRoaW5raW5nIGFib3V0IGZ1enppbmcgaXQgd2l0aCBzeXprYWxsZXIuIFRoZSB3aG9sZSBwb2ludCBpcyB0byBmaW5kIHJlYWNoYWJsZSBidWdzLCBzbyBpZiBzeXprYWxsZXIgaGFzIGR1ZyBzb21ldGhpbmcgdXAgaW4gdGhpcyBkcml2ZXIsIHdlIGtub3cgdGhlIGNvZGUgaXMgYmVpbmcgaGl0IHNvbWVob3cuXG5cblN5emthbGxlciBkb2VzIGEgZ3JlYXQgam9iIGZ1enppbmcgUUVNVSB3aXRoIHZhcmlvdXMgbWFjaGluZSBjb25maWd1cmF0aW9ucywgbGlrZSBgbWNpbXg2dWwtZXZrYCwgYHhsbngtemN1MTAyYCwgYW5kIGBhbGx3aW5uZXItaDNgLiBHb29kLCBzeXprYWxsZXIgc3VwcG9ydHMgQVJNIGFuZCBBUk02NCwgYW5kIHRoaXMgZHJpdmVyIGlzIHJlbGV2YW50IHRvIGEgdmFyaWV0eSBvZiBoYXJkd2FyZS4gU2luY2UgdGhpcyBkcml2ZXIgaXMgZW11bGF0ZWQgd2l0aGluIFFFTVUsIGl0J3MgZGVmaW5pdGVseSB3b3J0aCBmdXp6aW5nLlxuXG5UaGUgcGF0Y2ggaXRzZWxmIG1vZGlmaWVzIGBzdG1tYWNfbWFpbi5jYCwgdGhlIGNvcmUgZHJpdmVyIGZvciAqYWxsKiBEV01BQyB2YXJpYW50cywgc28gaXQgaXMgaGlnaCBpbXBhY3QuIFRoaXMgYWxzbyBhZGRzIGEgYFNUTU1BQ19ET1dOYCBmbGFnIHRvIHByZXZlbnQgWERQIGZyb20gcHJvY2Vzc2luZyBuZXcgcGFja2V0cyB3aGVuIHRoZSBpbnRlcmZhY2UgaXMgZG93bi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHNpZ25hbCB0aGF0IHRoaXMgY29kZSBpcyBpbnRlcmVzdGluZyB0byBleHBsb3JlLiBTbywgeWVzLCBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuXG5cblRoZSBuZXh0IHN0ZXAgaXMgdG8gbmFpbCBkb3duIHNwZWNpZmljIHN5bWJvbHMsIGFuZCBhdm9pZCB0aGUgbm9pc2UuIEknbSBmb2N1c2luZyBvbjpcblxuKiAgIGBzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzYFxuKiAgIGBzdG1tYWNfZHJhaW5feGRwYFxuKiAgIGBzdG1tYWNfeGRwX3JlbGVhc2VgXG4qICAgYHN0bW1hY19zdXNwZW5kYFxuKiAgIGBfX3N0bW1hY19vcGVuYFxuKiAgIGBfX3N0bW1hY19yZWxlYXNlYFxuXG5JIGtub3cgdGhlIHByb21wdCBpcyBndWlkaW5nIG1lLCB0byBhdm9pZCBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuIE15IG1pbmQgaXMgaW5zdGFudGx5IGV2YWx1YXRpbmcgd2hldGhlciB0aGVzZSBmdW5jdGlvbnMgYXJlIGNvbW1vbiBpbiB0aGUgZGF0YSBwYXRoLiBIbW0sIGxldCBtZSB0aGluay4gYF9fc3RtbWFjX29wZW5gIGFuZCBgX19zdG1tYWNfcmVsZWFzZWAgYXJlIGludGVyZmFjZSB1cC9kb3duIGZ1bmN0aW9ucywgc28gbm90IGhvdCBwYXRocy4gYHN0bW1hY194ZHBfeG1pdF9iYWNrYCBhbmQgYF9fc3RtbWFjX3hkcF9ydW5fcHJvZ2AgYXJlIGRhdGEgcGF0aC4gR29vZCwgSSdsbCBhdm9pZCB0aG9zZS5cblxuU28sIG5vdyBJIGhhdmUgYSBsaXN0IG9mIHRhcmdldHMgZm9yIGZ1enppbmcuIE5vdywgdG8gbWFrZSBzdXJlIHRoZXNlIHN5bWJvbHMgYXJlIGVuYWJsZWQgaW4gdGhlIGJ1aWxkLiBUaGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIGBzdG1tYWNgLCBzbyB0aGF0J3MgdGhlIGtlcm5lbCBtb2R1bGUgSSBuZWVkIHRvIGJlIGNvbmNlcm5lZCB3aXRoLiBJIHdpbGwgbG9vayBhdCB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWdgIGZpbGUuIGBTVE1NQUNfRVRIYCBsb29rcyBsaWtlIHRoZSBtYWluIGNvbmZpZyDigJMgaXQncyBhIGB0cmlzdGF0ZSBcIlNUTWljcm9lbGVjdHJvbmljcyAxMC8xMDAvMTAwMC9FUU9TIEV0aGVybmV0IE1BQyBzdXBwb3J0XCJgLiBUaGlzIGlzIHRoZSBvbmUgSSBuZWVkIHRvIGZvY3VzIG9uLiBXYWl0LCB0aGUgcGF0Y2ggbW9kaWZpZXMgWERQLXJlbGF0ZWQgY29kZS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRvIGVuYWJsZSBYRFAgY29uZGl0aW9uYWxseSB3aXRoaW4gYHN0bW1hY2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ0NDgzLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjY4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDAzOjQ0OjQ2LjI0OTI4NDExMloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTI3NDE3OTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiWERQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz04MD1NT0RVTEVfUEFSTV9ERVNDKHBoeWFkZHIsIFxcXCJQaHlzaWNhbCBkZXZpY2UgYWRkcmVzc1xcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjg0Oi8qIExpbWl0IHRvIG1ha2Ugc3VyZSBYRFAgVFggYW5kIHNsb3cgcGF0aCBjYW4gY29leGlzdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODUtI2RlZmluZSBTVE1NQUNfWFNLX1RYX0JVREdFVF9NQVhcXHQyNTZcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo4OTojZGVmaW5lIFNUTU1BQ19YRFBfUEFTU1xcdFxcdDBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjkwOiNkZWZpbmUgU1RNTUFDX1hEUF9DT05TVU1FRFxcdEJJVCgwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6OTE6I2RlZmluZSBTVE1NQUNfWERQX1RYXFx0XFx0QklUKDEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo5MjojZGVmaW5lIFNUTU1BQ19YRFBfUkVESVJFQ1RcXHRCSVQoMilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTkzLSNkZWZpbmUgU1RNTUFDX1hTS19DT05TVU1FRFxcdEJJVCgzKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz0yNjk9c3RhdGljIHZvaWQgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI5Mi0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI5MzogKiBzdG1tYWNfZHJhaW5feGRwIC0gQ2xlYW51cCBmb3IgWERQIGFwcHNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI5NC0gKiBAcHJpdjogZHJpdmVyIHByaXZhdGUgc3RydWN0dXJlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTE1NDU9c3RhdGljIHVuc2lnbmVkIGludCBzdG1tYWNfcnhfb2Zmc2V0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMTU0Ny1cXHRpZiAoc3RtbWFjX3hkcF9pc19lbmFibGVkKHByaXYpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MTU0ODpcXHRcXHRyZXR1cm4gWERQX1BBQ0tFVF9IRUFEUk9PTTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTE1NDktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTE3MjU9c3RhdGljIHZvaWQgc3RtbWFjX2ZyZWVfdHhfYnVmZmVyKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMTczMS1cXHRpZiAodHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtpXS5idWYgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjE3MzI6XFx0ICAgIHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbaV0uYnVmX3R5cGUgIT0gU1RNTUFDX1RYQlVGX1RfWERQX1RYKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0xNzMzLVxcdFxcdGlmICh0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2ldLm1hcF9hc19wYWdlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0xNzQ1LVxcdGlmICh0eF9xLVxcdTAwM2V4ZHBmW2ldIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoxNzQ2OlxcdCAgICAodHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtpXS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9YRFBfVFggfHxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjE3NDc6XFx0ICAgICB0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1hEUF9ORE8pKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0xNzQ4LVxcdFxcdHhkcF9yZXR1cm5fZnJhbWUodHhfcS1cXHUwMDNleGRwZltpXSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTE4ODI9c3RhdGljIGludCBfX2luaXRfZG1hX3J4X2Rlc2NfcmluZ3Moc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0xOTE3LVxcdGlmIChyeF9xLVxcdTAwM2V4c2tfcG9vbCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MTkxODpcXHRcXHQvKiBSWCBYRFAgWkMgYnVmZmVyIHBvb2wgbWF5IG5vdCBiZSBwb3B1bGF0ZWQsIGUuZy5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTE5MTktXFx0XFx0ICogeGRwc29jayBUWC1vbmx5Llxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz0yNDM3PXN0YXRpYyB2b2lkIGZyZWVfZG1hX2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjQ0My1cXHQvKiBSZWxlYXNlIHRoZSBETUEgUlggc29ja2V0IGJ1ZmZlcnMgbGF0ZXJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI0NDQ6XFx0ICogdG8gZW5zdXJlIGFsbCBwZW5kaW5nIFhEUF9UWCBidWZmZXJzIGFyZSByZXR1cm5lZC5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI0NDUtXFx0ICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTI2OTE9c3RhdGljIGJvb2wgc3RtbWFjX3hkcF94bWl0X3pjKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgdTMyIHF1ZXVlLCB1MzIgYnVkZ2V0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yNzM4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MjczOTpcXHRcXHQvKiBUbyByZXR1cm4gWERQIGJ1ZmZlciB0byBYU0sgcG9vbCwgd2Ugc2ltcGxlIGNhbGxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI3NDAtXFx0XFx0ICogeHNrX3R4X2NvbXBsZXRlZCgpLCBzbyB3ZSBkb24ndCBuZWVkIHRvIGZpbGwgdXBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjgyNz1zdGF0aWMgaW50IHN0bW1hY190eF9jbGVhbihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGludCBidWRnZXQsIHUzMiBxdWV1ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjg0OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI4NDk6XFx0XFx0aWYgKHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1hEUF9UWCB8fFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6Mjg1MDpcXHRcXHQgICAgdHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfWERQX05ETykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjg1MS1cXHRcXHRcXHR4ZHBmID0gdHhfcS1cXHUwMDNleGRwZltlbnRyeV07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI4OTktXFx0XFx0aWYgKGxpa2VseSh0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWYgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI5MDA6XFx0XFx0XFx0ICAgdHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgIT0gU1RNTUFDX1RYQlVGX1RfWERQX1RYKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjkwMS1cXHRcXHRcXHRpZiAodHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0ubWFwX2FzX3BhZ2UpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI5MjQtXFx0XFx0aWYgKHhkcGYgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI5MjU6XFx0XFx0ICAgIHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1hEUF9UWCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjkyNi1cXHRcXHRcXHR4ZHBfcmV0dXJuX2ZyYW1lX3J4X25hcGkoeGRwZik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI5MzAtXFx0XFx0aWYgKHhkcGYgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI5MzE6XFx0XFx0ICAgIHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1hEUF9ORE8pIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI5MzItXFx0XFx0XFx0eGRwX3JldHVybl9mcmFtZSh4ZHBmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NDI0Mj1zdGF0aWMgdm9pZCBfX3N0bW1hY19yZWxlYXNlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQyNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo0MjUwOlxcdC8qIFNldCBET1dOIGZsYWcgdG8gcHJldmVudCBYRFAgZnJvbSBwcm9jZXNzaW5nIG5ldyBwYWNrZXRzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MjUxLVxcdHNldF9iaXQoU1RNTUFDX0RPV04sIFxcdTAwMjZwcml2LVxcdTAwM2VzdGF0ZSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTUxNzg9c3RhdGljIGludCBzdG1tYWNfeGRwX3htaXRfeGRwZihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGludCBxdWV1ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTE5MC1cXHRpZiAoc3RtbWFjX3R4X2F2YWlsKHByaXYsIHF1ZXVlKSBcXHUwMDNjIFNUTU1BQ19UWF9USFJFU0gocHJpdikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1MTkxOlxcdFxcdHJldHVybiBTVE1NQUNfWERQX0NPTlNVTUVEO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTE5Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTE5Ni1cXHRcXHRwcml2LVxcdTAwM2V4c3RhdHMubWF4X3NkdV90eHFfZHJvcFtxdWV1ZV0rKztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUxOTc6XFx0XFx0cmV0dXJuIFNUTU1BQ19YRFBfQ09OU1VNRUQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MTk4LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTIwNC1cXHRcXHRpZiAoZG1hX21hcHBpbmdfZXJyb3IocHJpdi1cXHUwMDNlZGV2aWNlLCBkbWFfYWRkcikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1MjA1OlxcdFxcdFxcdHJldHVybiBTVE1NQUNfWERQX0NPTlNVTUVEO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTIwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUyMDc6XFx0XFx0YnVmX3R5cGUgPSBTVE1NQUNfVFhCVUZfVF9YRFBfTkRPO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTIwOC1cXHR9IGVsc2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MjE1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTIxNjpcXHRcXHRidWZfdHlwZSA9IFNUTU1BQ19UWEJVRl9UX1hEUF9UWDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUyMTctXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MjUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTI1MTpcXHRyZXR1cm4gU1RNTUFDX1hEUF9UWDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUyNTItfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz01MjY4PXN0YXRpYyBpbnQgc3RtbWFjX3hkcF94bWl0X2JhY2soc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01Mjg0LVxcdGlmICh1bmxpa2VseSgheGRwZikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1Mjg1OlxcdFxcdHJldHVybiBTVE1NQUNfWERQX0NPTlNVTUVEO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTI4Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTI5My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUyOTQ6XFx0LyogRm9yIHplcm8gY29weSBYRFBfVFggYWN0aW9uLCBkbWFfbWFwIGlzIHRydWUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUyOTUtXFx0cmVzID0gc3RtbWFjX3hkcF94bWl0X3hkcGYocHJpdiwgcXVldWUsIHhkcGYsIHpjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUyOTY6XFx0aWYgKHJlcyA9PSBTVE1NQUNfWERQX1RYKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01Mjk3LVxcdFxcdHN0bW1hY19mbHVzaF90eF9kZXNjcmlwdG9ycyhwcml2LCBxdWV1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1Mjk4OlxcdH0gZWxzZSBpZiAocmVzID09IFNUTU1BQ19YRFBfQ09OU1VNRUQgXFx1MDAyNlxcdTAwMjYgemMpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUyOTktXFx0XFx0LyogeGRwIGhhcyBiZWVuIGZyZWVkIGJ5IHhkcF9jb252ZXJ0X2J1ZmZfdG9fZnJhbWUoKSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NTMxMj1zdGF0aWMgaW50IF9fc3RtbWFjX3hkcF9ydW5fcHJvZyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzMjAtXFx0c3dpdGNoIChhY3QpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzMjE6XFx0Y2FzZSBYRFBfUEFTUzpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzMjI6XFx0XFx0cmVzID0gU1RNTUFDX1hEUF9QQVNTO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTMyMy1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzMjQ6XFx0Y2FzZSBYRFBfVFg6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzI1LVxcdFxcdHJlcyA9IHN0bW1hY194ZHBfeG1pdF9iYWNrKHByaXYsIHhkcCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzI2LVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTMyNzpcXHRjYXNlIFhEUF9SRURJUkVDVDpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzMjgtXFx0XFx0aWYgKHVubGlrZWx5KHRlc3RfYml0KFNUTU1BQ19ET1dOLCBcXHUwMDI2cHJpdi1cXHUwMDNlc3RhdGUpKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzMjk6XFx0XFx0XFx0cmVzID0gU1RNTUFDX1hEUF9DT05TVU1FRDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzMzAtXFx0XFx0ZWxzZSBpZiAoeGRwX2RvX3JlZGlyZWN0KHByaXYtXFx1MDAzZWRldiwgeGRwLCBwcm9nKSBcXHUwMDNjIDApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1MzMxOlxcdFxcdFxcdHJlcyA9IFNUTU1BQ19YRFBfQ09OU1VNRUQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzMyLVxcdFxcdGVsc2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzMzM6XFx0XFx0XFx0cmVzID0gU1RNTUFDX1hEUF9SRURJUkVDVDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzMzQtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzMzctXFx0XFx0ZmFsbHRocm91Z2g7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1MzM4OlxcdGNhc2UgWERQX0FCT1JURUQ6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01MzM5LVxcdFxcdHRyYWNlX3hkcF9leGNlcHRpb24ocHJpdi1cXHUwMDNlZGV2LCBwcm9nLCBhY3QpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTM0MC1cXHRcXHRmYWxsdGhyb3VnaDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzNDE6XFx0Y2FzZSBYRFBfRFJPUDpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzNDI6XFx0XFx0cmVzID0gU1RNTUFDX1hEUF9DT05TVU1FRDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzNDMtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTUzNDk9c3RhdGljIHN0cnVjdCBza19idWZmICpzdG1tYWNfeGRwX3J1bl9wcm9nKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTM1Ni1cXHRpZiAoIXByb2cpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzNTc6XFx0XFx0cmVzID0gU1RNTUFDX1hEUF9QQVNTO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTM1OC1cXHRcXHRnb3RvIG91dDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NTM2Nj1zdGF0aWMgdm9pZCBzdG1tYWNfZmluYWxpemVfeGRwX3J4KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTM3My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjUzNzQ6XFx0aWYgKHhkcF9zdGF0dXMgXFx1MDAyNiBTVE1NQUNfWERQX1RYKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTM3NS1cXHRcXHRzdG1tYWNfdHhfdGltZXJfYXJtKHByaXYsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1Mzc3OlxcdGlmICh4ZHBfc3RhdHVzIFxcdTAwMjYgU1RNTUFDX1hEUF9SRURJUkVDVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTUzNzgtXFx0XFx0eGRwX2RvX2ZsdXNoKCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTU0OTg9c3RhdGljIHN0cnVjdCBzdG1tYWNfeGRwX2J1ZmYgKnhza19idWZmX3RvX3N0bW1hY19jdHgoc3RydWN0IHhkcF9idWZmICp4ZHApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01NDk5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjU1MDA6XFx0LyogSW4gWERQIHplcm8gY29weSBkYXRhIHBhdGgsIHhkcCBmaWVsZCBpbiBzdHJ1Y3QgeGRwX2J1ZmZfeHNrIGlzIHVzZWRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU1MDEtXFx0ICogdG8gcmVwcmVzZW50IGluY29taW5nIHBhY2tldCwgd2hlcmVhcyBjYiBmaWVsZCBpbiB0aGUgc2FtZSBzdHJ1Y3R1cmVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NTUwOD1zdGF0aWMgaW50IHN0bW1hY19yeF96YyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGludCBsaW1pdCwgdTMyIHF1ZXVlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01NjE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTYxOTpcXHRcXHQvKiBYRFAgWkMgRnJhbWUgb25seSBzdXBwb3J0IHByaW1hcnkgYnVmZmVycyBmb3Igbm93ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01NjIwLVxcdFxcdGJ1ZjFfbGVuID0gc3RtbWFjX3J4X2J1ZjFfbGVuKHByaXYsIHAsIHN0YXR1cywgbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTYzNi1cXHRcXHRzd2l0Y2ggKHJlcykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTYzNzpcXHRcXHRjYXNlIFNUTU1BQ19YRFBfUEFTUzpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU2MzgtXFx0XFx0XFx0c3RtbWFjX2Rpc3BhdGNoX3NrYl96Yyhwcml2LCBxdWV1ZSwgcCwgbnAsIGJ1Zi1cXHUwMDNleGRwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTY0MC1cXHRcXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjU2NDE6XFx0XFx0Y2FzZSBTVE1NQUNfWERQX0NPTlNVTUVEOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTY0Mi1cXHRcXHRcXHR4c2tfYnVmZl9mcmVlKGJ1Zi1cXHUwMDNleGRwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTY0Ni1cXHRcXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjU2NDc6XFx0XFx0Y2FzZSBTVE1NQUNfWERQX1RYOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTY0ODpcXHRcXHRjYXNlIFNUTU1BQ19YRFBfUkVESVJFQ1Q6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01NjQ5LVxcdFxcdFxcdHhkcF9zdGF0dXMgfD0gcmVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz01NjkzPXN0YXRpYyBpbnQgc3RtbWFjX3J4KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IGxpbWl0LCB1MzIgcXVldWUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU4MzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1ODMyOlxcdFxcdFxcdC8qIEZvciBOb3QgWERQX1BBU1MgdmVyZGljdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTgzMy1cXHRcXHRcXHRpZiAoSVNfRVJSKHNrYikpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTgzNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjU4MzY6XFx0XFx0XFx0XFx0aWYgKHhkcF9yZXMgXFx1MDAyNiBTVE1NQUNfWERQX0NPTlNVTUVEKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01ODM3LVxcdFxcdFxcdFxcdFxcdHBhZ2VfcG9vbF9wdXRfcGFnZShyeF9xLVxcdTAwM2VwYWdlX3Bvb2wsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU4NDMtXFx0XFx0XFx0XFx0XFx0LyogQ2xlYXIgc2tiIGFzIGl0IHdhcyBzZXQgYXNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjU4NDQ6XFx0XFx0XFx0XFx0XFx0ICogc3RhdHVzIGJ5IFhEUCBwcm9ncmFtLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTg0NS1cXHRcXHRcXHRcXHRcXHQgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTg1Mi1cXHRcXHRcXHRcXHRcXHRjb250aW51ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjU4NTM6XFx0XFx0XFx0XFx0fSBlbHNlIGlmICh4ZHBfcmVzIFxcdTAwMjYgKFNUTU1BQ19YRFBfVFggfFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTg1NDpcXHRcXHRcXHRcXHRcXHRcXHQgICAgICBTVE1NQUNfWERQX1JFRElSRUNUKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTg1NS1cXHRcXHRcXHRcXHRcXHR4ZHBfc3RhdHVzIHw9IHhkcF9yZXM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU4NjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo1ODY3OlxcdFxcdFxcdC8qIFhEUCBwcm9ncmFtIG1heSBleHBhbmQgb3IgcmVkdWNlIHRhaWwgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU4NjgtXFx0XFx0XFx0YnVmMV9sZW4gPSBjdHgueGRwLmRhdGFfZW5kIC0gY3R4LnhkcC5kYXRhO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01ODc5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTg4MDpcXHRcXHRcXHQvKiBYRFAgcHJvZ3JhbSBtYXkgYWRqdXN0IGhlYWRlciAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTg4MS1cXHRcXHRcXHRoZWFkX3BhZF9sZW4gPSBjdHgueGRwLmRhdGEgLSBjdHgueGRwLmRhdGFfaGFyZF9zdGFydDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NjEyMj1zdGF0aWMgaW50IHN0bW1hY19jaGFuZ2VfbXR1KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBuZXdfbXR1KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02MTM1LVxcdGlmIChzdG1tYWNfeGRwX2lzX2VuYWJsZWQocHJpdikgXFx1MDAyNlxcdTAwMjYgbmV3X210dSBcXHUwMDNlIEVUSF9EQVRBX0xFTikge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NjEzNjpcXHRcXHRuZXRkZXZfZGJnKHByaXYtXFx1MDAzZWRldiwgXFxcIkp1bWJvIGZyYW1lcyBub3Qgc3VwcG9ydGVkIGZvciBYRFBcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjEzNy1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9Njk1Nj1zdGF0aWMgaW50IHN0bW1hY19icGYoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IG5ldGRldl9icGYgKmJwZilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjk2MC1cXHRzd2l0Y2ggKGJwZi1cXHUwMDNlY29tbWFuZCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6Njk2MTpcXHRjYXNlIFhEUF9TRVRVUF9QUk9HOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjk2Mi1cXHRcXHRyZXR1cm4gc3RtbWFjX3hkcF9zZXRfcHJvZyhwcml2LCBicGYtXFx1MDAzZXByb2csIGJwZi1cXHUwMDNlZXh0YWNrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjY5NjM6XFx0Y2FzZSBYRFBfU0VUVVBfWFNLX1BPT0w6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02OTY0LVxcdFxcdHJldHVybiBzdG1tYWNfeGRwX3NldHVwX3Bvb2wocHJpdiwgYnBmLVxcdTAwM2V4c2sucG9vbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9Njk3MT1zdGF0aWMgaW50IHN0bW1hY194ZHBfeG1pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgbnVtX2ZyYW1lcyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjk4Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjY5ODM6XFx0aWYgKHVubGlrZWx5KGZsYWdzIFxcdTAwMjYgflhEUF9YTUlUX0ZMQUdTX01BU0spKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjk4NC1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjk5Ni1cXHRcXHRyZXMgPSBzdG1tYWNfeGRwX3htaXRfeGRwZihwcml2LCBxdWV1ZSwgZnJhbWVzW2ldLCB0cnVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjY5OTc6XFx0XFx0aWYgKHJlcyA9PSBTVE1NQUNfWERQX0NPTlNVTUVEKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjk5OC1cXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzAwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjcwMDM6XFx0aWYgKGZsYWdzIFxcdTAwMjYgWERQX1hNSVRfRkxVU0gpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwMDQtXFx0XFx0c3RtbWFjX2ZsdXNoX3R4X2Rlc2NyaXB0b3JzKHByaXYsIHF1ZXVlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzExND12b2lkIHN0bW1hY194ZHBfcmVsZWFzZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MTMzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzEzNDpcXHQvKiBEcmFpbiBsZWZ0b3ZlciBYRFAgYnVmZmVycyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzEzNS1cXHRzdG1tYWNfZHJhaW5feGRwKHByaXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03ODE3PXN0YXRpYyBpbnQgX19zdG1tYWNfZHZyX3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldmljZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzkzOC1cXHRcXHRcXHQgICAgTkVUSUZfRl9SWENTVU07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3OTM5OlxcdG5kZXYtXFx1MDAzZXhkcF9mZWF0dXJlcyA9IE5FVERFVl9YRFBfQUNUX0JBU0lDIHwgTkVUREVWX1hEUF9BQ1RfUkVESVJFQ1QgfFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6Nzk0MDpcXHRcXHRcXHQgICAgIE5FVERFVl9YRFBfQUNUX1hTS19aRVJPQ09QWTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc5NDEtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDAzOjQ0OjQ2LjMwMjAzMTczN1oiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzk2MDY4NDMxOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipYRFAgYW5kIFNUTU1BQyBDb25maWd1cmF0aW9uIGFuZCBGb2N1cyBmb3IgRnV6emluZyoqXG5cbk9rYXksIHNvIEknbSBkaXZpbmcgaW50byB0aGlzIGBzdG1tYWNgIGRyaXZlciBjb2RlLCBzcGVjaWZpY2FsbHkgdGhlIFhEUCBpbnRlZ3JhdGlvbi4gUmlnaHQgb2ZmIHRoZSBiYXQsIEkgc2VlIHRoYXQgWERQIHN1cHBvcnQgaXMgYmFrZWQgaW50byBgc3RtbWFjYCBpZiBCUEYgaXMgZW5hYmxlZC4gTm8gZGVkaWNhdGVkIGBDT05GSUdfU1RNTUFDX1hEUGAgb3B0aW9uLCB3aGljaCBzaW1wbGlmaWVzIHRoaW5ncy4gVGhlIGRyaXZlciB1c2VzIHN0YW5kYXJkIFhEUCBhY3Rpb25zIGxpa2UgYFhEUF9QQVNTYCwgYFhEUF9UWGAsIGFuZCBgWERQX1JFRElSRUNUYC4gIFRoZXJlZm9yZSwgZW5hYmxpbmcgdGhpcyBmdW5jdGlvbmFsaXR5IGhpbmdlcyBvbiBoYXZpbmcgYFNUTU1BQ19FVEhgIGFuZCBgQlBGX1NZU0NBTExgIChmb3IgWERQKSB0dXJuZWQgb24uICBgQlBGX1NZU0NBTExgIGlzIHVzdWFsbHkgYSBnaXZlbiwgc28gdGhhdCdzIHByb2JhYmx5IGFscmVhZHkgZW5hYmxlZC5cblxuTm93LCB3aGljaCBjb25maWd1cmF0aW9ucyBhcmUgKnNwZWNpZmljKiB0byB0aGlzIG1vZGlmaWVkIGNvZGU/IEkgbmVlZCB0byB0aGluayBhYm91dCBob3cgdGhpcyB3aWxsIGNvbXBpbGUgYW5kIGJlIHRlc3RhYmxlLiAgYFNUTU1BQ19QTEFURk9STWAgb3IgYFNUTU1BQ19QQ0lgIGNvdWxkIGJlIHVzZWZ1bC4gSSdsbCBkb3VibGUtY2hlY2sgdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnYCBmaWxlLiAgWXVwLCBgU1RNTUFDX0VUSGAgaXMgdGhlIHByaW1hcnkgb25lLCBhbmQgYFNUTU1BQ19QQ0lgIGVuYWJsZXMgUENJIGJ1cyBzdXBwb3J0LiAgSSBtaWdodCBhbHNvIGNvbnNpZGVyIGBEV01BQ19JTlRFTGAgb3IgYERXTUFDX0dFTkVSSUNgIGJ1dCBJJ2xsIG5lZWQgdG8gcmVtZW1iZXIgdGhhdCB0aGVzZSBhcmUgbm90IHRoZSBtYWluIGZvY3VzLiBMb29raW5nIGF0IHRoZSBwcm9tcHQsIEkgc2hvdWxkIG9ubHkgbGlzdCB0aGUgb25lcyB0aGF0ICpzcGVjaWZpY2FsbHkqIGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLlxuXG5TbywgYFNUTU1BQ19FVEhgIGlzIHRoZSBtb3N0IGltcG9ydGFudCBvbmUuIExldCdzIHNlZS4uLiB0aGUgYFNUTU1BQ19QQ0lgIG9wdGlvbiBtaWdodCBiZSB1c2VmdWwgdG8gZW5zdXJlIHRoZSBQQ0kgdmFyaWFudCBjYW4gYmUgZnV6emVkLCBkZXBlbmRpbmcgb24gd2hldGhlciBTeXprYWxsZXIgaGFzIFBDSSBmdXp6aW5nLlxuXG5BbHJpZ2h0LCBsZXQncyBuYWlsIGRvd24gdGhlIGZ1bmN0aW9ucyB0aGlzIGNoYW5nZSBpcyB0b3VjaGluZzogYHN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXNgLCBgc3RtbWFjX2RyYWluX3hkcGAsIGBzdG1tYWNfeGRwX3JlbGVhc2VgLCBgc3RtbWFjX3N1c3BlbmRgLCBgX19zdG1tYWNfb3BlbmAsIGFuZCBgX19zdG1tYWNfcmVsZWFzZWAuICBIb2xkIG9uLCBgX19zdG1tYWNfb3BlbmAgYW5kIGBfX3N0bW1hY19yZWxlYXNlYCBhcmUgcHJldHR5IHN0YW5kYXJkIG5ldGRldiBvcGVyYXRpb25zLiBgc3RtbWFjX3hkcF9yZWxlYXNlYCBzcGVjaWZpY2FsbHkgaGFuZGxlcyBYRFAgcmVsZWFzZS4gYHN0bW1hY19zdXNwZW5kYCBkZWFscyB3aXRoIFBNIHN1c3BlbmQuICBgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlc2AgYW5kIGBzdG1tYWNfZHJhaW5feGRwYCBhcmUgaW50ZXJuYWwsIHdoaWNoIEknbGwga2VlcCBpbiBtaW5kLlxuXG5Tbywgd2hpY2ggb2YgdGhlc2UgYXJlICpnb29kKiBmb2N1cyBzeW1ib2xzIGZvciBmdXp6aW5nPyBgc3RtbWFjX3hkcF9yZWxlYXNlYCBsb29rcyBwcm9taXNpbmc7IGl0J3MgWERQLXNwZWNpZmljIHdpdGhpbiBgc3RtbWFjYC4gYHN0bW1hY19kcmFpbl94ZHBgIGFuZCBgc3RtbWFjX2Rpc2FibGVfYWxsX3F1ZXVlc2AgYXJlIGFsc28gbG9va2luZyBzcGVjaWZpYyBlbm91Z2guXG5cbkFueSBvdGhlciBjb25maWd1cmF0aW9ucyB0byBjb25zaWRlcj8gTm9wZSwgbm90IHRoYXQgSSBjYW4gc2VlLlxuXG5MZXQncyBxdWlja2x5IGNvbmZpcm0gYHN0bW1hY194ZHBfcmVsZWFzZWAgaXNuJ3Qgc3RhdGljLiBPa2F5LCBgdm9pZCBzdG1tYWNfeGRwX3JlbGVhc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldilgIGluIGBzdG1tYWNfbWFpbi5jYC4gVGhhdCdzIGdvb2QuXG5cblNvLCBoZXJlJ3MgdGhlIHN1bW1hcnk6XG5cbldvcnRoRnV6emluZzogdHJ1ZVxuRm9jdXNTeW1ib2xzOlxuLSBzdG1tYWNfZGlzYWJsZV9hbGxfcXVldWVzXG4tIHN0bW1hY19kcmFpbl94ZHBcbi0gc3RtbWFjX3hkcF9yZWxlYXNlXG4tIHN0bW1hY19zdXNwZW5kXG4tIF9fc3RtbWFjX29wZW5cbi0gX19zdG1tYWNfcmVsZWFzZVxuXG5FbmFibGVDb25maWdzOlxuLSBTVE1NQUNfRVRIXG4tIFNUTU1BQ19QQ0lcblxuUmVhc29uaW5nOiBUaGlzIHBhdGNoIGFkZHJlc3NlcyBYRFAgYnVmZmVyIGRyYWluaW5nIGFuZCBuZXcgcGFja2V0IHByb2Nlc3NpbmcgZHVyaW5nIGludGVyZmFjZSBkb3duIHN0YXRlcyBpbiB0aGUgYHN0bW1hY2AgZHJpdmVyLiBJdCB0b3VjaGVzIGNvcmUgZHJpdmVyIGxvZ2ljIHZpYSB0aGUgbmV3IGBTVE1NQUNfRE9XTmAgZmxhZyBhbmQgbW9kaWZpY2F0aW9ucyB0byBvcGVuL3JlbGVhc2Uvc3VzcGVuZC5cblxuV2FpdCwgaXMgYHN0bW1hY194ZHBfcmVsZWFzZWAgcmVhY2hhYmxlPyBZZXMsIGl0J3MgY2FsbGVkIGZyb20gYHN0bW1hY194ZHBfc2V0dXBfcG9vbGAgd2hlbiBkaXNhYmxpbmcgWERQLiBXaGF0IGFib3V0IGBzdG1tYWNfc3VzcGVuZGA/IEFsc28gcmVhY2hhYmxlIHZpYSB0aGUgUE0gZnJhbWV3b3JrLlxuXG5SaWdodCwgSSdtIGhhcHB5IHdpdGggdGhhdCBhbmFseXNpcy4gVGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUzNjg1LCJPdXRwdXRUb2tlbnMiOjE2OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjgzOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQwMzo0NTowMC4yNjI3MTkzMDZaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MzU4Mjg0MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1RNTUFDX0VUSFwiLFxuICAgIFwiU1RNTUFDX1BDSVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXNcIixcbiAgICBcInN0bW1hY19kcmFpbl94ZHBcIixcbiAgICBcInN0bW1hY194ZHBfcmVsZWFzZVwiLFxuICAgIFwic3RtbWFjX3N1c3BlbmRcIixcbiAgICBcIl9fc3RtbWFjX29wZW5cIixcbiAgICBcIl9fc3RtbWFjX3JlbGVhc2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgc3RtbWFjIGRyaXZlciB0byBwcm9wZXJseSBkcmFpbiBYRFAgYnVmZmVycyBhbmQgcHJldmVudCBYRFAgZnJvbSBwcm9jZXNzaW5nIG5ldyBwYWNrZXRzIHdoZW4gdGhlIGludGVyZmFjZSBpcyBkb3duLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IFNUTU1BQ19ET1dOIGZsYWcgYW5kIG1vZGlmaWVzIHRoZSBpbnRlcmZhY2Ugb3Blbi9yZWxlYXNlL3N1c3BlbmQgcGF0aHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byByZWFjaGFibGUgY29yZSBkcml2ZXIgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1RNTUFDX0VUSFwiLFxuICAgIFwiU1RNTUFDX1BDSVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInN0bW1hY19kaXNhYmxlX2FsbF9xdWV1ZXNcIixcbiAgICBcInN0bW1hY19kcmFpbl94ZHBcIixcbiAgICBcInN0bW1hY194ZHBfcmVsZWFzZVwiLFxuICAgIFwic3RtbWFjX3N1c3BlbmRcIixcbiAgICBcIl9fc3RtbWFjX29wZW5cIixcbiAgICBcIl9fc3RtbWFjX3JlbGVhc2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgc3RtbWFjIGRyaXZlciB0byBwcm9wZXJseSBkcmFpbiBYRFAgYnVmZmVycyBhbmQgcHJldmVudCBYRFAgZnJvbSBwcm9jZXNzaW5nIG5ldyBwYWNrZXRzIHdoZW4gdGhlIGludGVyZmFjZSBpcyBkb3duLiBJdCBpbnRyb2R1Y2VzIGEgbmV3IFNUTU1BQ19ET1dOIGZsYWcgYW5kIG1vZGlmaWVzIHRoZSBpbnRlcmZhY2Ugb3Blbi9yZWxlYXNlL3N1c3BlbmQgcGF0aHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byByZWFjaGFibGUgY29yZSBkcml2ZXIgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowjfxq4[1] Phase: Succeeded StartedAt: 2026-07-08 03:45:12 +0000 UTC FinishedAt: 2026-07-08 03:45:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-08 03:45:12 +0000 UTC FinishedAt: 2026-07-08 03:45:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[2] Phase: Succeeded StartedAt: 2026-07-08 03:45:12 +0000 UTC FinishedAt: 2026-07-08 05:07:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-08 03:45:12 +0000 UTC FinishedAt: 2026-07-08 05:07:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-08 03:45:12 +0000 UTC FinishedAt: 2026-07-08 03:45:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-08 03:45:12 +0000 UTC FinishedAt: 2026-07-08 03:45:16 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.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-workflowjfxq4/series-workflowjfxq4-convert-artifact-408330211/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-08 03:45:22 +0000 UTC FinishedAt: 2026-07-08 04:21:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-08 03:45:22 +0000 UTC FinishedAt: 2026-07-08 04:21:44 +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:*49749e4b-c140-4a5f-bb01-5bc31ac0c1c4,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-workflowjfxq4/series-workflowjfxq4-convert-artifact-408330211/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": "03ff389d-0521-4ef9-8c38-e8fff4944b55", "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-workflowjfxq4/series-workflowjfxq4-build-action-3631397713/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-08 03:45:22 +0000 UTC FinishedAt: 2026-07-08 04:21:34 +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:*49749e4b-c140-4a5f-bb01-5bc31ac0c1c4,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-workflowjfxq4/series-workflowjfxq4-convert-artifact-408330211/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": "03ff389d-0521-4ef9-8c38-e8fff4944b55", "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-workflowjfxq4/series-workflowjfxq4-build-action-3631397713/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-08 04:21:44 +0000 UTC FinishedAt: 2026-07-08 04:21:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-08 04:21:44 +0000 UTC FinishedAt: 2026-07-08 04:21:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-08 04:21:44 +0000 UTC FinishedAt: 2026-07-08 04:22:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-08 04:21:44 +0000 UTC FinishedAt: 2026-07-08 04:21:55 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.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-workflowjfxq4/series-workflowjfxq4-convert-artifact-1196777242/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-08 04:22:04 +0000 UTC FinishedAt: 2026-07-08 04:24:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-08 04:22:04 +0000 UTC FinishedAt: 2026-07-08 04:24:31 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*03ff389d-0521-4ef9-8c38-e8fff4944b55,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-workflowjfxq4/series-workflowjfxq4-build-action-3631397713/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-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-08 04:24:41 +0000 UTC FinishedAt: 2026-07-08 04:24:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-08 04:24:41 +0000 UTC FinishedAt: 2026-07-08 04:24:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-08 04:24:41 +0000 UTC FinishedAt: 2026-07-08 05:02:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-08 04:24:41 +0000 UTC FinishedAt: 2026-07-08 05:02: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:*49749e4b-c140-4a5f-bb01-5bc31ac0c1c4,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-workflowjfxq4/series-workflowjfxq4-convert-artifact-1196777242/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": "6ebdd6b7-c9e6-4ccc-bc35-366b6b8ca9f0", "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-workflowjfxq4/series-workflowjfxq4-build-action-1574767358/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-08 04:24:41 +0000 UTC FinishedAt: 2026-07-08 05:01:42 +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:*49749e4b-c140-4a5f-bb01-5bc31ac0c1c4,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-workflowjfxq4/series-workflowjfxq4-convert-artifact-1196777242/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": "6ebdd6b7-c9e6-4ccc-bc35-366b6b8ca9f0", "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-workflowjfxq4/series-workflowjfxq4-build-action-1574767358/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-08 05:02:55 +0000 UTC FinishedAt: 2026-07-08 05:02:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-08 05:02:55 +0000 UTC FinishedAt: 2026-07-08 05:02:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-08 05:02:55 +0000 UTC FinishedAt: 2026-07-08 05:05:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-08 05:02:55 +0000 UTC FinishedAt: 2026-07-08 05:04:58 +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:*6ebdd6b7-c9e6-4ccc-bc35-366b6b8ca9f0,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-workflowjfxq4/series-workflowjfxq4-build-action-1574767358/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-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-08 05:05:07 +0000 UTC FinishedAt: 2026-07-08 05:07:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-08 05:05:07 +0000 UTC FinishedAt: 2026-07-08 05:07:48 +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":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*03ff389d-0521-4ef9-8c38-e8fff4944b55,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*6ebdd6b7-c9e6-4ccc-bc35-366b6b8ca9f0,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-workflowjfxq4/series-workflowjfxq4-build-action-3631397713/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-workflowjfxq4/series-workflowjfxq4-build-action-1574767358/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-08 05:05:07 +0000 UTC FinishedAt: 2026-07-08 05:05:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-08 05:05:07 +0000 UTC FinishedAt: 2026-07-08 05:05:13 +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":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowjfxq4/series-workflowjfxq4-convert-artifact-4154216911/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-08 05:05:07 +0000 UTC FinishedAt: 2026-07-08 05:05:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-08 05:05:07 +0000 UTC FinishedAt: 2026-07-08 05:05:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-08 05:05:07 +0000 UTC FinishedAt: 2026-07-08 05:05:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-08 05:05:18 +0000 UTC FinishedAt: 2026-07-08 05:07:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjfxq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_disable_all_queues","stmmac_drain_xdp","stmmac_xdp_release","stmmac_suspend","__stmmac_open","__stmmac_release"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"60444706aa17616efc03190d099ac347e28b3d0a","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI"],"series_id":"561039ed-fdb2-4c94-a40e-974aa021d5f1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-08 05:05:18 +0000 UTC FinishedAt: 2026-07-08 05:07:27 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*03ff389d-0521-4ef9-8c38-e8fff4944b55,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*6ebdd6b7-c9e6-4ccc-bc35-366b6b8ca9f0,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-workflowjfxq4/series-workflowjfxq4-build-action-3631397713/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-workflowjfxq4/series-workflowjfxq4-build-action-1574767358/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-workflowjfxq4/series-workflowjfxq4-convert-artifact-4154216911/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,}