Name: series-workflowql248 Phase: Succeeded StartedAt: 2026-08-02 18:32:31 +0000 UTC FinishedAt: 2026-08-02 20:48:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[0] Phase: Succeeded StartedAt: 2026-08-02 18:32:31 +0000 UTC FinishedAt: 2026-08-02 18:59:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[0].run-triage Phase: Succeeded StartedAt: 2026-08-02 18:32:31 +0000 UTC FinishedAt: 2026-08-02 18:59:04 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BLK_DEV_DRBD" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BLK_DEV_DRBD" ], "series_id": "23467aa1-a1b4-4462-80e4-a2cb55827bb7" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "drbd_nl_resource_opts_doit", "drbd_nl_new_resource_doit", "drbd_nl_chg_disk_opts_doit", "drbd_nl_attach_doit", "drbd_nl_chg_net_opts_doit", "drbd_nl_connect_doit" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDE4OjU3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JMS19ERVZfRFJCRCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2RyYmRfbmxfcmVzb3VyY2Vfb3B0c19kb2l0JiMzNDssCiAgICAmIzM0O2RyYmRfbmxfbmV3X3Jlc291cmNlX2RvaXQmIzM0OywKICAgICYjMzQ7ZHJiZF9ubF9jaGdfZGlza19vcHRzX2RvaXQmIzM0OywKICAgICYjMzQ7ZHJiZF9ubF9hdHRhY2hfZG9pdCYjMzQ7LAogICAgJiMzNDtkcmJkX25sX2NoZ19uZXRfb3B0c19kb2l0JiMzNDssCiAgICAmIzM0O2RyYmRfbmxfY29ubmVjdF9kb2l0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBuZXRsaW5rIHBvbGljeSBsZW5ndGhzIGZvciBOTEFfTlVMX1NUUklORyBhdHRyaWJ1dGVzIGluIHRoZSBEUkJEIGRyaXZlciwgZml4aW5nIGEgYnVnIHdoZXJlIHRoZSBsZW5ndGggaW5jbHVkZWQgdGhlIE5VTCBieXRlLCBhbmQgaW5jcmVhc2VzIHRoZSBtYXhpbXVtIENQVSBtYXNrIHNpemUuIFRoaXMgYWZmZWN0cyBob3cgbmV0bGluayBtZXNzYWdlcyBhcmUgdmFsaWRhdGVkIGFuZCBwYXJzZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMTg6NTc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA0OWRiYzRlYzgyZGQ2NjZjYzA5MjljY2U4M2YxMTMxY2I1ZTIzY2Y3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBBdWcgMiAxODo1NzozNSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYyBiL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jXG5pbmRleCBmYjQ0Yjk0OGNlYzg3Li41YjY2OGU3ODA1MWJhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jXG5AQCAtNTEsOCAmIzQzOzUxLDggQEAgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9kaXNjb25uZWN0X3Bhcm1zX25sX3BvbGljeVtEUkJEX0FfRElTQ09OTkVDVF9QQVJNU19cbiB9O1xuIFxuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfZGlza19jb25mX25sX3BvbGljeVtEUkJEX0FfRElTS19DT05GX0RJU0FCTEVfV1JJVEVfU0FNRSAmIzQzOyAxXSA9IHtcbi1cdFtEUkJEX0FfRElTS19DT05GX0JBQ0tJTkdfREVWXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCwgfSxcbi1cdFtEUkJEX0FfRElTS19DT05GX01FVEFfREVWXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCwgfSxcbiYjNDM7XHRbRFJCRF9BX0RJU0tfQ09ORl9CQUNLSU5HX0RFVl0gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSAxMjggLSAxLCB9LFxuJiM0MztcdFtEUkJEX0FfRElTS19DT05GX01FVEFfREVWXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCAtIDEsIH0sXG4gXHRbRFJCRF9BX0RJU0tfQ09ORl9NRVRBX0RFVl9JRFhdID0geyAudHlwZSA9IE5MQV9VMzIsIH0sXG4gXHRbRFJCRF9BX0RJU0tfQ09ORl9ESVNLX1NJWkVdID0geyAudHlwZSA9IE5MQV9VNjQsIH0sXG4gXHRbRFJCRF9BX0RJU0tfQ09ORl9NQVhfQklPX0JWRUNTXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuQEAgLTgwLDE3ICYjNDM7ODAsMTcgQEAgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9kaXNrX2NvbmZfbmxfcG9saWN5W0RSQkRfQV9ESVNLX0NPTkZfRElTQUJMRV9XUklURV9cbiBcbiBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX2RyYmRfY2ZnX2NvbnRleHRfbmxfcG9saWN5W0RSQkRfQV9EUkJEX0NGR19DT05URVhUX0NUWF9QRUVSX0FERFIgJiM0MzsgMV0gPSB7XG4gXHRbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX1ZPTFVNRV0gPSB7IC50eXBlID0gTkxBX1UzMiwgfSxcbi1cdFtEUkJEX0FfRFJCRF9DRkdfQ09OVEVYVF9DVFhfUkVTT1VSQ0VfTkFNRV0gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSAxMjgsIH0sXG4mIzQzO1x0W0RSQkRfQV9EUkJEX0NGR19DT05URVhUX0NUWF9SRVNPVVJDRV9OQU1FXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCAtIDEsIH0sXG4gXHRbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX01ZX0FERFJdID0gTkxBX1BPTElDWV9NQVhfTEVOKDEyOCksXG4gXHRbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX1BFRVJfQUREUl0gPSBOTEFfUE9MSUNZX01BWF9MRU4oMTI4KSxcbiB9O1xuIFxuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfbmV0X2NvbmZfbmxfcG9saWN5W0RSQkRfQV9ORVRfQ09ORl9TT0NLX0NIRUNLX1RJTUVPICYjNDM7IDFdID0ge1xuLVx0W0RSQkRfQV9ORVRfQ09ORl9TSEFSRURfU0VDUkVUXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYLCB9LFxuLVx0W0RSQkRfQV9ORVRfQ09ORl9DUkFNX0hNQUNfQUxHXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYLCB9LFxuLVx0W0RSQkRfQV9ORVRfQ09ORl9JTlRFR1JJVFlfQUxHXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYLCB9LFxuLVx0W0RSQkRfQV9ORVRfQ09ORl9WRVJJRllfQUxHXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYLCB9LFxuLVx0W0RSQkRfQV9ORVRfQ09ORl9DU1VNU19BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVgsIH0sXG4mIzQzO1x0W0RSQkRfQV9ORVRfQ09ORl9TSEFSRURfU0VDUkVUXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYIC0gMSwgfSxcbiYjNDM7XHRbRFJCRF9BX05FVF9DT05GX0NSQU1fSE1BQ19BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVggLSAxLCB9LFxuJiM0MztcdFtEUkJEX0FfTkVUX0NPTkZfSU5URUdSSVRZX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCAtIDEsIH0sXG4mIzQzO1x0W0RSQkRfQV9ORVRfQ09ORl9WRVJJRllfQUxHXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYIC0gMSwgfSxcbiYjNDM7XHRbRFJCRF9BX05FVF9DT05GX0NTVU1TX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCAtIDEsIH0sXG4gXHRbRFJCRF9BX05FVF9DT05GX1dJUkVfUFJPVE9DT0xdID0geyAudHlwZSA9IE5MQV9VMzIsIH0sXG4gXHRbRFJCRF9BX05FVF9DT05GX0NPTk5FQ1RfSU5UXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuIFx0W0RSQkRfQV9ORVRfQ09ORl9USU1FT1VUXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuQEAgLTE0Myw3ICYjNDM7MTQzLDcgQEAgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9wZWVyX2RldmljZV9zdGF0aXN0aWNzX25sX3BvbGljeVtEUkJEX0FfUEVFUl9ERVZJQ0VcbiB9O1xuIFxuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfcmVzX29wdHNfbmxfcG9saWN5W0RSQkRfQV9SRVNfT1BUU19PTl9OT19EQVRBICYjNDM7IDFdID0ge1xuLVx0W0RSQkRfQV9SRVNfT1BUU19DUFVfTUFTS10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBEUkJEX0NQVV9NQVNLX1NJWkUsIH0sXG4mIzQzO1x0W0RSQkRfQV9SRVNfT1BUU19DUFVfTUFTS10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBEUkJEX0NQVV9NQVNLX1NJWkUgLSAxLCB9LFxuIFx0W0RSQkRfQV9SRVNfT1BUU19PTl9OT19EQVRBXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuIH07XG4gXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2RyYmQuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9kcmJkLmhcbmluZGV4IGNmMWVjM2ViODcyZjAuLjEzMjdjZTEwMDZhYzggMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvZHJiZC5oXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL3VhcGkvbGludXgvZHJiZC5oXG5AQCAtMzY4LDcgJiM0MzszNjgsMTIgQEAgZW51bSB3cml0ZV9vcmRlcmluZ19lIHtcbiAjZGVmaW5lIERSQkRfTURfSU5ERVhfRkxFWF9FWFQgLTJcbiAjZGVmaW5lIERSQkRfTURfSU5ERVhfRkxFWF9JTlQgLTNcbiBcbi0jZGVmaW5lIERSQkRfQ1BVX01BU0tfU0laRSAzMlxuJiM0MzsvKlxuJiM0MzsgKiBNYXhpbXVtIHNpemUgb2YgdGhlIGNwdS1tYXNrIHN0cmluZywgaW5jbHVkaW5nIHRoZSB0ZXJtaW5hdGluZyBOVUwuXG4mIzQzOyAqIFRoZSBuZXRsaW5rIHBvbGljeSBhY2NlcHRzIERSQkRfQ1BVX01BU0tfU0laRSAtIDEgY2hhcmFjdGVycywgd2hpY2ggaXNcbiYjNDM7ICogZW5vdWdoIGZvciBhIGZ1bGwgbWFzayBjb3ZlcmluZyA5MDggQ1BVcy5cbiYjNDM7ICovXG4mIzQzOyNkZWZpbmUgRFJCRF9DUFVfTUFTS19TSVpFIDI1NlxuIFxuIC8qKlxuICAqIHN0cnVjdCBkcmJkX2dlbmxtc2doZHIgLSBEUkJEIHNwZWNpZmljIGhlYWRlciB1c2VkIGluIE5FVExJTktfR0VORVJJQyByZXF1ZXN0c1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDE4OjU3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCTEtfREVWX0RSQkQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdCYjMzQ7LAogICAgJiMzNDtkcmJkX25sX25ld19yZXNvdXJjZV9kb2l0JiMzNDssCiAgICAmIzM0O2RyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0JiMzNDssCiAgICAmIzM0O2RyYmRfbmxfYXR0YWNoX2RvaXQmIzM0OywKICAgICYjMzQ7ZHJiZF9ubF9jaGdfbmV0X29wdHNfZG9pdCYjMzQ7LAogICAgJiMzNDtkcmJkX25sX2Nvbm5lY3RfZG9pdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbmV0bGluayBwb2xpY3kgbGVuZ3RocyBmb3IgTkxBX05VTF9TVFJJTkcgYXR0cmlidXRlcyBpbiB0aGUgRFJCRCBkcml2ZXIsIGZpeGluZyBhIGJ1ZyB3aGVyZSB0aGUgbGVuZ3RoIGluY2x1ZGVkIHRoZSBOVUwgYnl0ZSwgYW5kIGluY3JlYXNlcyB0aGUgbWF4aW11bSBDUFUgbWFzayBzaXplLiBUaGlzIGFmZmVjdHMgaG93IG5ldGxpbmsgbWVzc2FnZXMgYXJlIHZhbGlkYXRlZCBhbmQgcGFyc2VkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNDlkYmM0ZWM4MmRkNjY2Y2MwOTI5Y2NlODNmMTEzMWNiNWUyM2NmNwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTdW4gQXVnIDIgMTg6NTc6MzUgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYyBiL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jCmluZGV4IGZiNDRiOTQ4Y2VjODcuLjViNjY4ZTc4MDUxYmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jCkBAIC01MSw4ICYjNDM7NTEsOCBAQCBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX2Rpc2Nvbm5lY3RfcGFybXNfbmxfcG9saWN5W0RSQkRfQV9ESVNDT05ORUNUX1BBUk1TXwogfTsKIAogY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9kaXNrX2NvbmZfbmxfcG9saWN5W0RSQkRfQV9ESVNLX0NPTkZfRElTQUJMRV9XUklURV9TQU1FICYjNDM7IDFdID0gewotCVtEUkJEX0FfRElTS19DT05GX0JBQ0tJTkdfREVWXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCwgfSwKLQlbRFJCRF9BX0RJU0tfQ09ORl9NRVRBX0RFVl0gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSAxMjgsIH0sCiYjNDM7CVtEUkJEX0FfRElTS19DT05GX0JBQ0tJTkdfREVWXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCAtIDEsIH0sCiYjNDM7CVtEUkJEX0FfRElTS19DT05GX01FVEFfREVWXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCAtIDEsIH0sCiAJW0RSQkRfQV9ESVNLX0NPTkZfTUVUQV9ERVZfSURYXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LAogCVtEUkJEX0FfRElTS19DT05GX0RJU0tfU0laRV0gPSB7IC50eXBlID0gTkxBX1U2NCwgfSwKIAlbRFJCRF9BX0RJU0tfQ09ORl9NQVhfQklPX0JWRUNTXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LApAQCAtODAsMTcgJiM0Mzs4MCwxNyBAQCBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX2Rpc2tfY29uZl9ubF9wb2xpY3lbRFJCRF9BX0RJU0tfQ09ORl9ESVNBQkxFX1dSSVRFXwogCiBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX2RyYmRfY2ZnX2NvbnRleHRfbmxfcG9saWN5W0RSQkRfQV9EUkJEX0NGR19DT05URVhUX0NUWF9QRUVSX0FERFIgJiM0MzsgMV0gPSB7CiAJW0RSQkRfQV9EUkJEX0NGR19DT05URVhUX0NUWF9WT0xVTUVdID0geyAudHlwZSA9IE5MQV9VMzIsIH0sCi0JW0RSQkRfQV9EUkJEX0NGR19DT05URVhUX0NUWF9SRVNPVVJDRV9OQU1FXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCwgfSwKJiM0MzsJW0RSQkRfQV9EUkJEX0NGR19DT05URVhUX0NUWF9SRVNPVVJDRV9OQU1FXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCAtIDEsIH0sCiAJW0RSQkRfQV9EUkJEX0NGR19DT05URVhUX0NUWF9NWV9BRERSXSA9IE5MQV9QT0xJQ1lfTUFYX0xFTigxMjgpLAogCVtEUkJEX0FfRFJCRF9DRkdfQ09OVEVYVF9DVFhfUEVFUl9BRERSXSA9IE5MQV9QT0xJQ1lfTUFYX0xFTigxMjgpLAogfTsKIAogY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9uZXRfY29uZl9ubF9wb2xpY3lbRFJCRF9BX05FVF9DT05GX1NPQ0tfQ0hFQ0tfVElNRU8gJiM0MzsgMV0gPSB7Ci0JW0RSQkRfQV9ORVRfQ09ORl9TSEFSRURfU0VDUkVUXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYLCB9LAotCVtEUkJEX0FfTkVUX0NPTkZfQ1JBTV9ITUFDX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCwgfSwKLQlbRFJCRF9BX05FVF9DT05GX0lOVEVHUklUWV9BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVgsIH0sCi0JW0RSQkRfQV9ORVRfQ09ORl9WRVJJRllfQUxHXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYLCB9LAotCVtEUkJEX0FfTkVUX0NPTkZfQ1NVTVNfQUxHXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYLCB9LAomIzQzOwlbRFJCRF9BX05FVF9DT05GX1NIQVJFRF9TRUNSRVRdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVggLSAxLCB9LAomIzQzOwlbRFJCRF9BX05FVF9DT05GX0NSQU1fSE1BQ19BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVggLSAxLCB9LAomIzQzOwlbRFJCRF9BX05FVF9DT05GX0lOVEVHUklUWV9BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVggLSAxLCB9LAomIzQzOwlbRFJCRF9BX05FVF9DT05GX1ZFUklGWV9BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVggLSAxLCB9LAomIzQzOwlbRFJCRF9BX05FVF9DT05GX0NTVU1TX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCAtIDEsIH0sCiAJW0RSQkRfQV9ORVRfQ09ORl9XSVJFX1BST1RPQ09MXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LAogCVtEUkJEX0FfTkVUX0NPTkZfQ09OTkVDVF9JTlRdID0geyAudHlwZSA9IE5MQV9VMzIsIH0sCiAJW0RSQkRfQV9ORVRfQ09ORl9USU1FT1VUXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LApAQCAtMTQzLDcgJiM0MzsxNDMsNyBAQCBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX3BlZXJfZGV2aWNlX3N0YXRpc3RpY3NfbmxfcG9saWN5W0RSQkRfQV9QRUVSX0RFVklDRQogfTsKIAogY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9yZXNfb3B0c19ubF9wb2xpY3lbRFJCRF9BX1JFU19PUFRTX09OX05PX0RBVEEgJiM0MzsgMV0gPSB7Ci0JW0RSQkRfQV9SRVNfT1BUU19DUFVfTUFTS10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBEUkJEX0NQVV9NQVNLX1NJWkUsIH0sCiYjNDM7CVtEUkJEX0FfUkVTX09QVFNfQ1BVX01BU0tdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gRFJCRF9DUFVfTUFTS19TSVpFIC0gMSwgfSwKIAlbRFJCRF9BX1JFU19PUFRTX09OX05PX0RBVEFdID0geyAudHlwZSA9IE5MQV9VMzIsIH0sCiB9OwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvZHJiZC5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2RyYmQuaAppbmRleCBjZjFlYzNlYjg3MmYwLi4xMzI3Y2UxMDA2YWM4IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvZHJiZC5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvdWFwaS9saW51eC9kcmJkLmgKQEAgLTM2OCw3ICYjNDM7MzY4LDEyIEBAIGVudW0gd3JpdGVfb3JkZXJpbmdfZSB7CiAjZGVmaW5lIERSQkRfTURfSU5ERVhfRkxFWF9FWFQgLTIKICNkZWZpbmUgRFJCRF9NRF9JTkRFWF9GTEVYX0lOVCAtMwogCi0jZGVmaW5lIERSQkRfQ1BVX01BU0tfU0laRSAzMgomIzQzOy8qCiYjNDM7ICogTWF4aW11bSBzaXplIG9mIHRoZSBjcHUtbWFzayBzdHJpbmcsIGluY2x1ZGluZyB0aGUgdGVybWluYXRpbmcgTlVMLgomIzQzOyAqIFRoZSBuZXRsaW5rIHBvbGljeSBhY2NlcHRzIERSQkRfQ1BVX01BU0tfU0laRSAtIDEgY2hhcmFjdGVycywgd2hpY2ggaXMKJiM0MzsgKiBlbm91Z2ggZm9yIGEgZnVsbCBtYXNrIGNvdmVyaW5nIDkwOCBDUFVzLgomIzQzOyAqLwomIzQzOyNkZWZpbmUgRFJCRF9DUFVfTUFTS19TSVpFIDI1NgogCiAvKioKICAqIHN0cnVjdCBkcmJkX2dlbmxtc2doZHIgLSBEUkJEIHNwZWNpZmljIGhlYWRlciB1c2VkIGluIE5FVExJTktfR0VORVJJQyByZXF1ZXN0cwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjQxCgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogMzE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRFJCRCBOZXRsaW5rIFBvbGljeSBMZW5ndGggQ2hhbmdlKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYGRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jYCBhbmQgYGluY2x1ZGUvdWFwaS9saW51eC9kcmJkLmhgLiBSaWdodCBvZmYgdGhlIGJhdCwgSSBzZWUgaXQmIzM5O3MgZGVhbGluZyB3aXRoIG5ldGxpbmsgcG9saWN5IGxlbmd0aHMgZm9yIERSQkQsIHdoaWNoIGlzIGEgYmxvY2sgZGV2aWNlIGRyaXZlciDigJMgYWx3YXlzIGludGVyZXN0aW5nIHRlcnJpdG9yeS4gSXQgc2VlbXMgbGlrZSB0aGUgY29yZSBjaGFuZ2UgcmV2b2x2ZXMgYXJvdW5kIHN1YnRyYWN0aW5nIDEgZnJvbSB0aGUgbGVuZ3RoIG9mIGBOTEFfTlVMX1NUUklOR2AgcG9saWNpZXMuIEZvciBpbnN0YW5jZSwgdGhlIGxlbmd0aCBvZiBgRFJCRF9BX0RJU0tfQ09ORl9CQUNLSU5HX0RFVmAgaXMgbm93IGAxMjggLSAxYCwgYW5kIHNvIG9uLiBTaW1pbGFybHksIGBEUkJEX0NQVV9NQVNLX1NJWkVgIGhhcyBiZWVuIGJ1bXBlZCBmcm9tIDMyIHRvIDI1NiBpbiB0aGUgaGVhZGVyIGZpbGUuCgpUaGlzIGRlZmluaXRlbHkgaGFzIGZ1bmN0aW9uYWwgaW1wbGljYXRpb25zIGJlY2F1c2UgdGhlc2UgcG9saWNpZXMgZGljdGF0ZSBob3cgZGF0YSBpcyBmb3JtYXR0ZWQgYW5kIGV4Y2hhbmdlZCBvdmVyIG5ldGxpbmsuIEEgY2hhbmdlIGluIGxlbmd0aCBsaWtlIHRoaXMgY291bGQgYWZmZWN0IGhvdyBleGlzdGluZyBjb25maWd1cmF0aW9ucyBhbmQgY29tbXVuaWNhdGlvbiB3aWxsIHdvcmsgd2l0aCB0aGlzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aHkgdGhpcyBjaGFuZ2Ugd2FzIG5lY2Vzc2FyeS4gV2hhdCYjMzk7cyB0aGUgcmF0aW9uYWxlIGJlaGluZCB0aGlzPyBJcyB0aGVyZSBhIHBlcmZvcm1hbmNlIGJlbmVmaXQ/IElzIGl0IHJlbGF0ZWQgdG8gYSBzcGVjaWZpYyBidWcgZml4IG9yIG5ldyBmZWF0dXJlPwoKQmVmb3JlIEkgZGlnIGludG8gdGhlIHNwZWNpZmljcyBvZiB0aGUgY2hhbmdlLCBJJiMzOTtsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gVGltZSB0byB1c2UgYGdyZXBwZXJgIGFuZCBsb29rIGZvciB0aGUgYGNvbmZpZyBCTEtfREVWX0RSQkRgIG9wdGlvbiBvciBhbnl0aGluZyBzaW1pbGFyIGluIHRoZSBLY29uZmlnIGZpbGVzLiBUaGF0IHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyBEUkJEIGlzIGNvbmZpZ3VyZWQgYW5kIG1pZ2h0IHNoZWQgc29tZSBsaWdodCBvbiB0aGUgbW90aXZhdGlvbiBmb3IgdGhlIHBvbGljeSBsZW5ndGggbW9kaWZpY2F0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDE4OjU3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBCTEtfREVWX0RSQkQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ibG9jay9kcmJkL0tjb25maWc9Nj1jb21tZW50IFwmIzM0O0RSQkQgZGlzYWJsZWQgYmVjYXVzZSBQUk9DX0ZTIG9yIElORVQgbm90IHNlbGVjdGVkXCYjMzQ7XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL0tjb25maWctOC1cbmRyaXZlcnMvYmxvY2svZHJiZC9LY29uZmlnOjk6Y29uZmlnIEJMS19ERVZfRFJCRFxuZHJpdmVycy9ibG9jay9kcmJkL0tjb25maWctMTAtXHR0cmlzdGF0ZSBcJiMzNDtEUkJEIERpc3RyaWJ1dGVkIFJlcGxpY2F0ZWQgQmxvY2sgRGV2aWNlIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NDEzCgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gSGVyZSYjMzk7cyBob3cgSSYjMzk7ZCBhcHByb2FjaCB0aGF0IGtlcm5lbCBjb25maWd1cmF0aW9uIGZpbGUsIHRoaW5raW5nIGFsb3VkOgoKKipFeGFtaW5pbmcgdGhlIERSQkQgS2NvbmZpZyBmb3IgQ29udGV4dCoqCgpSaWdodCwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBmb3IgRFJCRCwgdGhlIERpc3RyaWJ1dGVkIFJlcGxpY2F0ZWQgQmxvY2sgRGV2aWNlLiBUaGF0IGBkcml2ZXJzL2Jsb2NrL2RyYmQvS2NvbmZpZ2AgZmlsZSBzaG91bGQgYmUgdGhlIGtleSB0byBmaWd1cmluZyBvdXQgd2hhdCBvdGhlciBjb21wb25lbnRzIG9yIGZlYXR1cmVzIG5lZWQgdG8gYmUgZW5hYmxlZCBvciBhcmUgYXQgbGVhc3QgcmVsYXRlZCB0byBpdC4gSSYjMzk7bGwgbmVlZCB0byBzZWUgd2hpY2ggc3ltYm9scyBhcmUgZGVmaW5lZCwgd2hhdCBvdGhlciBLY29uZmlnIGZpbGVzIGl0IGluY2x1ZGVzIChpZiBhbnkpLCBhbmQgd2hpY2ggb3RoZXIga2VybmVsIGZlYXR1cmVzIHRoZSBEUkJEIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWx5IG9uLCBvciBpbiB0dXJuLCBtaWdodCBpbmZsdWVuY2UuIEl0IGlzIGFsd2F5cyBhIGdvb2QgaWRlYSB0byBjb25zaWRlciBhbGwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBhbiBhcmVhLCBzbyBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBgc2VsZWN0YCwgYGRlcGVuZHMgb25gLCBhbmQgYGRlZmF1bHRgIHN0YXRlbWVudHMgdGhhdCB3b3VsZCBjbHVlIG1lIGludG8gdGhlIGJ1aWxkIGRlcGVuZGVuY2llcywgYXMgd2VsbCBhcyBhbnkgY29uZGl0aW9uYWwgbG9naWMgd2hpY2ggY291bGQgcHJvdmlkZSBjbHVlcyBhcyB0byBidWlsZCBjb25mbGljdHMuIFRoaXMgaXMgYSBjcnVjaWFsIGZpcnN0IHN0ZXAgZm9yIHVuZGVyc3RhbmRpbmcgaG93IERSQkQgZml0cyBpbnRvIHRoZSBicm9hZGVyIGtlcm5lbCBlY29zeXN0ZW0sIHdoYXQgaXRzIHJlcXVpcmVtZW50cyBhcmUsIGFuZCBhbnkgcG90ZW50aWFsIGNvbmZsaWN0cyB0aGF0IG1heSBleGlzdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvYmxvY2svZHJiZC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0I1xuICAgMzpcdCMgRFJCRCBkZXZpY2UgZHJpdmVyIGNvbmZpZ3VyYXRpb25cbiAgIDQ6XHQjXG4gICA1Olx0XG4gICA2Olx0Y29tbWVudCBcJiMzNDtEUkJEIGRpc2FibGVkIGJlY2F1c2UgUFJPQ19GUyBvciBJTkVUIG5vdCBzZWxlY3RlZFwmIzM0O1xuICAgNzpcdFx0ZGVwZW5kcyBvbiBQUk9DX0ZTPSYjMzk7biYjMzk7IHx8IElORVQ9JiMzOTtuJiMzOTtcbiAgIDg6XHRcbiAgIDk6XHRjb25maWcgQkxLX0RFVl9EUkJEXG4gIDEwOlx0XHR0cmlzdGF0ZSBcJiMzNDtEUkJEIERpc3RyaWJ1dGVkIFJlcGxpY2F0ZWQgQmxvY2sgRGV2aWNlIHN1cHBvcnRcJiMzNDtcbiAgMTE6XHRcdGRlcGVuZHMgb24gUFJPQ19GUyBcdTAwMjZcdTAwMjYgSU5FVFxuICAxMjpcdFx0c2VsZWN0IExSVV9DQUNIRVxuICAxMzpcdFx0c2VsZWN0IENSQzMyXG4gIDE0Olx0XHRoZWxwXG4gIDE1Olx0XG4gIDE2Olx0XHQgIE5PVEU6IEluIG9yZGVyIHRvIGF1dGhlbnRpY2F0ZSBjb25uZWN0aW9ucyB5b3UgaGF2ZSB0byBzZWxlY3RcbiAgMTc6XHRcdCAgQ1JZUFRPX0hNQUMgYW5kIGEgaGFzaCBmdW5jdGlvbiBhcyB3ZWxsLlxuICAxODpcdFxuICAxOTpcdFx0ICBEUkJEIGlzIGEgc2hhcmVkLW5vdGhpbmcsIHN5bmNocm9ub3VzbHkgcmVwbGljYXRlZCBibG9jayBkZXZpY2UuIEl0XG4gIDIwOlx0XHQgIGlzIGRlc2lnbmVkIHRvIHNlcnZlIGFzIGEgYnVpbGRpbmcgYmxvY2sgZm9yIGhpZ2ggYXZhaWxhYmlsaXR5XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMTg6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDk2MQoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDEzNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgTmV0bGluayBQb2xpY3kgTGVuZ3RocyBpbiB0aGUgRFJCRCBLZXJuZWwgTW9kdWxlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCBzZWVtcyB0byBiZSBkZWFsaW5nIHdpdGggbW9kaWZpY2F0aW9ucyB0byBuZXRsaW5rIHBvbGljeSBsZW5ndGhzIHdpdGhpbiB0aGUgYEJMS19ERVZfRFJCRGAgY29uZmlndXJhdGlvbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHRyYWNlIHRoZSBpbXBhY3Qgb2YgdGhpcyBjaGFuZ2UuIEl0JiMzOTtzIGNydWNpYWwgdG8gdW5kZXJzdGFuZCB3aGljaCBmdW5jdGlvbnMgcmVseSBvbiB0aGVzZSBzcGVjaWZpYyBwb2xpY2llcy4KCkxldCYjMzk7cyBzZWUsIHRoZSByZWxldmFudCBwb2xpY2llcyBiZWluZyBhbHRlcmVkIGFyZTogYGRyYmRfZGlzY29ubmVjdF9wYXJtc19ubF9wb2xpY3lgLCBgZHJiZF9kaXNrX2NvbmZfbmxfcG9saWN5YCwgYGRyYmRfZHJiZF9jZmdfY29udGV4dF9ubF9wb2xpY3lgLCBgZHJiZF9uZXRfY29uZl9ubF9wb2xpY3lgLCBgZHJiZF9wZWVyX2RldmljZV9zdGF0aXN0aWNzX25sX3BvbGljeWAsIGFuZCBgZHJiZF9yZXNfb3B0c19ubF9wb2xpY3lgLiBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgdGhlc2UgYXJlIGJlaW5nIHVzZWQsIGJlY2F1c2UgYSBjaGFuZ2UgaW4gdGhlaXIgbGVuZ3RoIGNvdWxkIGhhdmUgcmVwZXJjdXNzaW9ucyBpbiBvdGhlciBhcmVhcy4KCkEgcXVpY2sgYGdyZXBgIHNob3VsZCByZXZlYWwgdGhlIGZ1bmN0aW9uIGNhbGxzIG9yIGNvZGUgc2VjdGlvbnMgd2hlcmUgdGhlc2UgcG9saWNpZXMgYXJlIHJlZmVyZW5jZWQuIEkmIzM5O2xsIG5lZWQgdG8gcGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgcGFyYW1ldGVyIHBhcnNpbmcgYW5kIGRhdGEgdmFsaWRhdGlvbiB3aXRoaW4gdGhvc2UgZnVuY3Rpb25zLiBUaGlzIHNob3VsZCBpZGVudGlmeSB0aGUgZG93bnN0cmVhbSBlZmZlY3RzIG9mIHRoaXMgcGF0Y2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMTg6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZHJiZF9kaXNrX2NvbmZfbmxfcG9saWN5JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTQ5PWNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfZGlzY29ubmVjdF9wYXJtc19ubF9wb2xpY3lbRFJCRF9BX0RJU0NPTk5FQ1RfUEFSTVNfRk9SQ0VfRElTQ09OTkVDVCAmIzQzOyAxXSA9IHtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01Mi1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUzOmNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfZGlza19jb25mX25sX3BvbGljeVtEUkJEX0FfRElTS19DT05GX0RJU0FCTEVfV1JJVEVfU0FNRSAmIzQzOyAxXSA9IHtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU0LVx0W0RSQkRfQV9ESVNLX0NPTkZfQkFDS0lOR19ERVZdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gMTI4IC0gMSwgfSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz0yMjg9c3RhdGljIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfYXR0YWNoX25sX3BvbGljeVtEUkJEX05MQV9ESVNLX0NPTkYgJiM0MzsgMV0gPSB7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0yMjktXHRbRFJCRF9OTEFfQ0ZHX0NPTlRFWFRdID0gTkxBX1BPTElDWV9ORVNURUQoZHJiZF9kcmJkX2NmZ19jb250ZXh0X25sX3BvbGljeSksXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzoyMzA6XHRbRFJCRF9OTEFfRElTS19DT05GXSA9IE5MQV9QT0xJQ1lfTkVTVEVEKGRyYmRfZGlza19jb25mX25sX3BvbGljeSksXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0yMzEtfTtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz0zMTQ9c3RhdGljIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfY2hnX2Rpc2tfb3B0c19ubF9wb2xpY3lbRFJCRF9OTEFfRElTS19DT05GICYjNDM7IDFdID0ge1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzE1LVx0W0RSQkRfTkxBX0NGR19DT05URVhUXSA9IE5MQV9QT0xJQ1lfTkVTVEVEKGRyYmRfZHJiZF9jZmdfY29udGV4dF9ubF9wb2xpY3kpLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6MzE2Olx0W0RSQkRfTkxBX0RJU0tfQ09ORl0gPSBOTEFfUE9MSUNZX05FU1RFRChkcmJkX2Rpc2tfY29uZl9ubF9wb2xpY3kpLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzE3LX07XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM9NzAzPXN0YXRpYyBpbnQgX19kaXNrX2NvbmZfZnJvbV9hdHRycyhzdHJ1Y3QgZGlza19jb25mICpzLFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTcxOS1cdFx0cmV0dXJuIC1FTk9NRU07XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo3MjA6XHRlcnIgPSBubGFfcGFyc2VfbmVzdGVkX2RlcHJlY2F0ZWQobnRiLCBtYXh0eXBlLCB0bGEsIGRyYmRfZGlza19jb25mX25sX3BvbGljeSwgTlVMTCk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy03MjEtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oPTE5PWV4dGVybiBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX2Rpc2Nvbm5lY3RfcGFybXNfbmxfcG9saWN5W0RSQkRfQV9ESVNDT05ORUNUX1BBUk1TX0ZPUkNFX0RJU0NPTk5FQ1QgJiM0MzsgMV07XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDoyMDpleHRlcm4gY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9kaXNrX2NvbmZfbmxfcG9saWN5W0RSQkRfQV9ESVNLX0NPTkZfRElTQUJMRV9XUklURV9TQU1FICYjNDM7IDFdO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtMjEtZXh0ZXJuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfZHJiZF9jZmdfY29udGV4dF9ubF9wb2xpY3lbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX1BFRVJfQUREUiAmIzQzOyAxXTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MjgyCgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2Vzcywga2VlcGluZyBpbiBtaW5kIEkmIzM5O20gc3BlYWtpbmcgdG8gYSBmZWxsb3cgZXhwZXJ0OgoKKipJbnZlc3RpZ2F0aW5nIGBkcmJkX3Jlc19vcHRzX25sX3BvbGljeWAqKgoKQWxyaWdodCwgdGltZSB0byBnZXQgdG8gd29yay4gRmlyc3QsIG15IGJyYWluIGp1bXBzIHJpZ2h0IHRvIHRoZSBpZGVhIG9mIHVzaW5nIGBncmVwYC4gSXQmIzM5O3MgdGhlIG1vc3QgZGlyZWN0IGFuZCBlZmZpY2llbnQgd2F5IHRvIGxvY2F0ZSBhIHNwZWNpZmljIHN0cmluZyBsaWtlIGBkcmJkX3Jlc19vcHRzX25sX3BvbGljeWAsIGVzcGVjaWFsbHkgd2hlbiBJJiMzOTttIGRlYWxpbmcgd2l0aCBjb25maWd1cmF0aW9uIGZpbGVzIG9yIHNvdXJjZSBjb2RlLiBJIGtub3cgZnJvbSBleHBlcmllbmNlIHRoYXQgYGdyZXBgIHdpbGwgcXVpY2tseSBzY2FuIGEgbGFyZ2UgY29ycHVzIG9mIHRleHQgYW5kIHBpbnBvaW50IGV4YWN0bHkgd2hlcmUgdGhpcyBwYXJ0aWN1bGFyIHZhcmlhYmxlIG9yIHBvbGljeSBpcyBiZWluZyB1c2VkLiBUaGF0JiMzOTtzIHRoZSBwZXJmZWN0IHN0YXJ0aW5nIHBvaW50IHRvIHVuZGVyc3RhbmQgaXRzIGNvbnRleHQuIExldCYjMzk7cyBzZWUgd2hhdCB3ZSBjYW4gZGlnIHVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkcmJkX3Jlc19vcHRzX25sX3BvbGljeSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz0xMzQ9Y29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9wZWVyX2RldmljZV9zdGF0aXN0aWNzX25sX3BvbGljeVtEUkJEX0FfUEVFUl9ERVZJQ0VfU1RBVElTVElDU19QRUVSX0RFVl9GTEFHUyAmIzQzOyAxXSA9IHtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0xNDQtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzoxNDU6Y29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9yZXNfb3B0c19ubF9wb2xpY3lbRFJCRF9BX1JFU19PUFRTX09OX05PX0RBVEEgJiM0MzsgMV0gPSB7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0xNDYtXHRbRFJCRF9BX1JFU19PUFRTX0NQVV9NQVNLXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IERSQkRfQ1BVX01BU0tfU0laRSAtIDEsIH0sXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM9MTk5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX25ld19yZXNvdXJjZV9ubF9wb2xpY3lbRFJCRF9OTEFfUkVTT1VSQ0VfT1BUUyAmIzQzOyAxXSA9IHtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTIwMC1cdFtEUkJEX05MQV9DRkdfQ09OVEVYVF0gPSBOTEFfUE9MSUNZX05FU1RFRChkcmJkX2RyYmRfY2ZnX2NvbnRleHRfbmxfcG9saWN5KSxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjIwMTpcdFtEUkJEX05MQV9SRVNPVVJDRV9PUFRTXSA9IE5MQV9QT0xJQ1lfTkVTVEVEKGRyYmRfcmVzX29wdHNfbmxfcG9saWN5KSxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTIwMi19O1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTIxMD1zdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9yZXNvdXJjZV9vcHRzX25sX3BvbGljeVtEUkJEX05MQV9SRVNPVVJDRV9PUFRTICYjNDM7IDFdID0ge1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMjExLVx0W0RSQkRfTkxBX0NGR19DT05URVhUXSA9IE5MQV9QT0xJQ1lfTkVTVEVEKGRyYmRfZHJiZF9jZmdfY29udGV4dF9ubF9wb2xpY3kpLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6MjEyOlx0W0RSQkRfTkxBX1JFU09VUkNFX09QVFNdID0gTkxBX1BPTElDWV9ORVNURUQoZHJiZF9yZXNfb3B0c19ubF9wb2xpY3kpLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMjEzLX07XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM9ODYwPXN0YXRpYyBpbnQgX19yZXNfb3B0c19mcm9tX2F0dHJzKHN0cnVjdCByZXNfb3B0cyAqcyxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy04NzYtXHRcdHJldHVybiAtRU5PTUVNO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6ODc3Olx0ZXJyID0gbmxhX3BhcnNlX25lc3RlZF9kZXByZWNhdGVkKG50YiwgbWF4dHlwZSwgdGxhLCBkcmJkX3Jlc19vcHRzX25sX3BvbGljeSwgTlVMTCk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy04NzgtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oPTI1PWV4dGVybiBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX3BlZXJfZGV2aWNlX3N0YXRpc3RpY3NfbmxfcG9saWN5W0RSQkRfQV9QRUVSX0RFVklDRV9TVEFUSVNUSUNTX1BFRVJfREVWX0ZMQUdTICYjNDM7IDFdO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6MjY6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfcmVzX29wdHNfbmxfcG9saWN5W0RSQkRfQV9SRVNfT1BUU19PTl9OT19EQVRBICYjNDM7IDFdO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtMjctZXh0ZXJuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfcmVzaXplX3Bhcm1zX25sX3BvbGljeVtEUkJEX0FfUkVTSVpFX1BBUk1TX0FMX1NUUklQRV9TSVpFICYjNDM7IDFdO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3NDE5CgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogODAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZyb20gbXkgZXhwZXJ0IHBlcnNwZWN0aXZlOgoKKipEaXZpbmcgaW50byB0aGUgTmV0bGluayBQb2xpY3kgUGF0Y2gqKgoKUmlnaHQsIHNvIHRoaXMgcGF0Y2ggaXMgY2xlYXJseSBtZXNzaW5nIHdpdGggbmV0bGluayBwb2xpY2llcy4gVGhhdCBtZWFucyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIHRoZSBmcmFtZXdvcmsgZm9yIHBhcnNpbmcgbmV0bGluayBtZXNzYWdlcywgd2hpY2ggaXMgYWx3YXlzIGEgY3JpdGljYWwgYXJlYS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgdGhlIHNjb3BlIG9mIHRoZXNlIGNoYW5nZXMuIEkgc2VlIGZ1bmN0aW9ucyBsaWtlIGBfX2Rpc2tfY29uZl9mcm9tX2F0dHJzYCwgYF9fcmVzX29wdHNfZnJvbV9hdHRyc2AsIGFuZCBgX19uZXRfY29uZl9mcm9tX2F0dHJzYCBtZW50aW9uZWQuIFRoZXkmIzM5O3JlIGVpdGhlciBnZW5lcmF0ZWQgb3IgaGFuZC1jb2RlZCB0byBzcGVjaWZpY2FsbHkgcGFyc2UgYXR0cmlidXRlcyB3aXRoaW4gdGhvc2UgbmV0bGluayBtZXNzYWdlcywgYW5kIEkgbmVlZCB0byBzZWUgaWYgdGhlIHBhdGNoIGlzIGNoYW5naW5nIGV4aXN0aW5nIHBvbGljaWVzLCBhZGRpbmcgbmV3IG9uZXMsIG9yIGJvdGguIFRoZXNlICYjMzQ7ZnJvbV9hdHRycyYjMzQ7IGZ1bmN0aW9ucyBhcmUgdXN1YWxseSBwcmV0dHkgY3J1Y2lhbCBmb3IgYW55IG5ldGxpbmsgc3Vic3lzdGVtLgoKVGhlIGtleSBub3cgaXMgdG8gdHJhY2UgdGhlIGltcGFjdC4gTGV0JiMzOTtzIHN0YXJ0IHdpdGggYF9fcmVzX29wdHNfZnJvbV9hdHRyc2AgYW5kIHNlZSB3aGVyZSBpdCYjMzk7cyBhY3R1YWxseSBiZWluZyAqdXNlZCouIFVuZGVyc3RhbmRpbmcgdGhlIGNhbGwgc2l0ZXMgd2lsbCBpbW1lZGlhdGVseSBoaWdobGlnaHQgdGhlIHN1YnN5c3RlbXMgb3IgZmVhdHVyZXMgdGhpcyBwYXRjaCB0b3VjaGVzLCBhbmQgZnJvbSB0aGVyZSBJIGNhbiBhc3Nlc3MgdGhlIHBvdGVudGlhbCByaXBwbGUgZWZmZWN0cyBhbmQgZGV0ZXJtaW5lIHRoZSByaXNrIGludm9sdmVkIHdpdGggdGhpcyBwYXRjaC4gVGhpcyBpcyBnb2luZyB0byBiZSBteSBpbW1lZGlhdGUgbmV4dCBzdGVwOyBnZXQgdGhlIHVzZS1jYXNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtfX3Jlc19vcHRzX2Zyb21fYXR0cnMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM9ODUzPWludCBkaXNrX2NvbmZfbnRiX2Zyb21fYXR0cnMoXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtODU5LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6ODYwOnN0YXRpYyBpbnQgX19yZXNfb3B0c19mcm9tX2F0dHJzKHN0cnVjdCByZXNfb3B0cyAqcyxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTg2MS1cdFx0c3RydWN0IG5sYXR0ciAqKipyZXRfbmVzdGVkX2F0dHJpYnV0ZV90YWJsZSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz04OTc9aW50IHJlc19vcHRzX2Zyb21fYXR0cnMoc3RydWN0IHJlc19vcHRzICpzLFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTg5OS17XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo5MDA6XHRyZXR1cm4gX19yZXNfb3B0c19mcm9tX2F0dHJzKHMsIE5VTEwsIGluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtOTAxLX1cbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz05MDM9aW50IHJlc19vcHRzX250Yl9mcm9tX2F0dHJzKFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTkwNi17XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo5MDc6XHRyZXR1cm4gX19yZXNfb3B0c19mcm9tX2F0dHJzKE5VTEwsIHJldF9uZXN0ZWRfYXR0cmlidXRlX3RhYmxlLCBpbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTkwOC19XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDE4OjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgxNjMKCQkJCQkJCW91dHB1dDogMjEKCQkJCQkJCXRob3VnaHRzOiAxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIG15c2VsZjoKCioqVHJhY2luZyB0aGUgVXNhZ2Ugb2YgYHJlc19vcHRzX2Zyb21fYXR0cnNgKioKCk9rYXksIHNvIEkmIzM5O20gdHJ5aW5nIHRvIHVuZGVyc3RhbmQgaG93IGByZXNfb3B0c19mcm9tX2F0dHJzYCBpcyB1dGlsaXplZCB3aXRoaW4gdGhpcyBjb2RlLiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGJ1enppbmcgaW4gbXkgbWluZCBpczogKndoZXJlKiBleGFjdGx5IGRvZXMgdGhpcyBmdW5jdGlvbiBnZXQgY2FsbGVkPyBJIG5lZWQgdG8gdHJhY2sgZG93biBhbGwgaW5zdGFuY2VzIG9mIGl0cyB1c2UgdG8gZ3Jhc3AgaXRzIHJvbGUgaW4gdGhlIG92ZXJhbGwgYXJjaGl0ZWN0dXJlLiBJIGtub3cgdGhpcyBzZWVtcyBlbGVtZW50YXJ5IHRvIGFuIGV4cGVydCwgYnV0IGl0JiMzOTtzIHRoZSBmdW5kYW1lbnRhbCBmaXJzdCBzdGVwLiBVbmRlcnN0YW5kaW5nIHVzYWdlIHBhdHRlcm5zIG9mdGVuIHVuY292ZXJzIHN1YnRsZSBkZXBlbmRlbmNpZXMgb3IgYXNzdW1wdGlvbnMuIExldCYjMzk7cyBzZWUgaG93IGFuZCB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGVtcGxveWVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtyZXNfb3B0c19mcm9tX2F0dHJzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9Mjk5Mz1pbnQgZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMwMDktXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMwMTA6XHRlcnIgPSByZXNfb3B0c19mcm9tX2F0dHJzKFx1MDAyNnJlc19vcHRzLCBpbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzAxMS1cdGlmIChlcnIgXHUwMDI2XHUwMDI2IGVyciAhPSAtRU5PTVNHKSB7XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz00MzI5PWludCBkcmJkX25sX25ld19yZXNvdXJjZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MzQzLVx0c2V0X3Jlc19vcHRzX2RlZmF1bHRzKFx1MDAyNnJlc19vcHRzKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDM0NDpcdGVyciA9IHJlc19vcHRzX2Zyb21fYXR0cnMoXHUwMDI2cmVzX29wdHMsIGluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MzQ1LVx0aWYgKGVyciBcdTAwMjZcdTAwMjYgZXJyICE9IC1FTk9NU0cpIHtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz04NTM9aW50IGRpc2tfY29uZl9udGJfZnJvbV9hdHRycyhcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy04NTktXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo4NjA6c3RhdGljIGludCBfX3Jlc19vcHRzX2Zyb21fYXR0cnMoc3RydWN0IHJlc19vcHRzICpzLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtODYxLVx0XHRzdHJ1Y3QgbmxhdHRyICoqKnJldF9uZXN0ZWRfYXR0cmlidXRlX3RhYmxlLFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTg5Ni1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjg5NzppbnQgcmVzX29wdHNfZnJvbV9hdHRycyhzdHJ1Y3QgcmVzX29wdHMgKnMsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy04OTgtXHRcdFx0XHRzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtODk5LXtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjkwMDpcdHJldHVybiBfX3Jlc19vcHRzX2Zyb21fYXR0cnMocywgTlVMTCwgaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy05MDEtfVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTkwMz1pbnQgcmVzX29wdHNfbnRiX2Zyb21fYXR0cnMoXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtOTA2LXtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjkwNzpcdHJldHVybiBfX3Jlc19vcHRzX2Zyb21fYXR0cnMoTlVMTCwgcmV0X25lc3RlZF9hdHRyaWJ1dGVfdGFibGUsIGluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtOTA4LX1cbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaD0zMTg9dm9pZCBzZXRfZGlza19jb25mX2RlZmF1bHRzKHN0cnVjdCBkaXNrX2NvbmYgKngpO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtMzE5LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6MzIwOmludCByZXNfb3B0c19mcm9tX2F0dHJzKHN0cnVjdCByZXNfb3B0cyAqcywgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaC0zMjEtaW50IHJlc19vcHRzX250Yl9mcm9tX2F0dHJzKHN0cnVjdCBubGF0dHIgKioqcmV0X25lc3RlZF9hdHRyaWJ1dGVfdGFibGUsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5MjI2CgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogNTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhlc2UgRFJCRCBuZXRsaW5rIGNvbW1hbmRzLiBJJiMzOTttIHNlZWluZyBhIHBhdHRlcm4gaGVyZTogYGRyYmRfbmxfcmVzb3VyY2Vfb3B0c19kb2l0YCwgYGRyYmRfbmxfbmV3X3Jlc291cmNlX2RvaXRgLCBgZHJiZF9ubF9kaXNrX2NvbmZfZG9pdGAsIGFuZCBzbyBvbi4gUHJldHR5IHN0YW5kYXJkIG5ldGxpbmsgbmFtaW5nIGNvbnZlbnRpb24sIHJlYWxseS4gTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgdW5kZXJseWluZyBzdHJ1Y3R1cmUsIHNvIHRoZSBmaXJzdCB0aGluZyBJJiMzOTtsbCBkbyBpcyB6ZXJvIGluIG9uIHRoZSBuZXRsaW5rIG9wZXJhdGlvbnMgc3RydWN0dXJlIGl0c2VsZi4gVGltZSB0byBsb2NhdGUgdGhhdC4gSXQgaG9sZHMgdGhlIGtleSB0byBob3cgdGhlc2UgY29tbWFuZHMgYXJlIGRlZmluZWQgYW5kIGhhbmRsZWQuIEZpbmRpbmcgdGhhdCBzdHJ1Y3R1cmUgd2lsbCBiZSB0aGUgbGF1bmNocGFkIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBlbnRpcmUgbmV0bGluayBjb21tYW5kIGZyYW1ld29yayBpbiB0aGlzIGNvbnRleHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDE4OjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RyYmRfbmxfcmVzb3VyY2Vfb3B0c19kb2l0JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9Mjg1Nz1pbnQgZHJiZF9ubF9yZXNpemVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjk5Mi1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6Mjk5MzppbnQgZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjk5NC17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM9MzU5PWNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyBkcmJkX25sX29wc1szMl0gPSB7XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDE0LVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQxNTpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQxNi1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaD01MD1pbnQgZHJiZF9ubF9kZWxfcmVzb3VyY2VfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjUxOmludCBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oLTUyLWludCBkcmJkX25sX2Nvbm5lY3RfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMTg6NTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTkwNgoJCQkJCQkJb3V0cHV0OiAyMwoJCQkJCQkJdGhvdWdodHM6IDI5NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBEUkJEIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdHdlYWtpbmcgYERSQkRfQ1BVX01BU0tfU0laRWAgZnJvbSAzMiB0byAyNTYuIFRoYXQmIzM5O3MgYSBzdHJhaWdodGZvcndhcmQgY2hhbmdlLCBwb3RlbnRpYWxseSBpbXBhY3RpbmcgcGVyZm9ybWFuY2Ugb3IgcmVzb3VyY2UgdXNhZ2UgaWYgbm90IG9wdGltaXplZCwgYnV0IHRoZSBtb3JlIGludGVyZXN0aW5nIHBhcnQgaXMgdGhlIGBOTEFfTlVMX1NUUklOR2AgZml4LiBMZXQgbWUgc2VlLi4uIHRoZXkmIzM5O3ZlIGNvcnJlY3RlZCBhIGJ1ZyByZWxhdGVkIHRvIHRoZSBsZW5ndGggY2FsY3VsYXRpb24sIHNwZWNpZmljYWxseSBob3cgdGhlIE5VTCB0ZXJtaW5hdG9yIGlzIGhhbmRsZWQgd2l0aGluIE5ldGxpbmsgYXR0cmlidXRlIGxlbmd0aCBjaGVja3MuIEhhbmcgb24sIHdhc24mIzM5O3QgdGhlcmUgc29tZXRoaW5nIGFib3V0IGBOTEFfTlVMX1NUUklOR2AgYW5kIHRoZSBgLmxlbmAgbWVtYmVyIGluIGBubGFfcG9saWN5YD8gRG9lcyB0aGF0IGluZGVlZCByZXByZXNlbnQgdGhlIG1heGltdW0gc3RyaW5nIGxlbmd0aCAqd2l0aG91dCogdGhlIE5VTCBieXRlLCBhcyBpbiwgdGhlIHBheWxvYWQgc2l6ZT8gUmlnaHQsIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhlIGBubGFfcG9saWN5YCBkZWZpbml0aW9uIGZvciBgTkxBX05VTF9TVFJJTkdgIGp1c3QgdG8gYmUgY2VydGFpbi4gSXQmIzM5O3MgbGlrZWx5IHRoZSBjb21taXQgbWVzc2FnZSByZWZlcmVuY2VzIHRoaXMgJiMzNDttYXhsZW4gLSAxJiMzNDsgY29uY2VwdCwgSSYjMzk7ZCBiZXQuCgpSZWdhcmRsZXNzLCB0aGlzIGFmZmVjdHMgbmV0bGluayBtZXNzYWdlIHZhbGlkYXRpb24sIHdoaWNoIG1lYW5zIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGtlcm5lbCYjMzk7cyBuZXRsaW5rIEFQSSBmb3IgRFJCRC4gVGhhdCYjMzk7cyBhIHJlZCBmbGFnLiBUaGlzIG5lZWRzIHRvIGJlIGZ1enplZCwgZ2l2ZW4gdGhhdCBpdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgYmxvY2sgZHJpdmVyIGFuZCBEUkJELCBvZiBjb3Vyc2UsIGlzIHRoZSBkcml2ZXIgaW4gcXVlc3Rpb24uIFdlJiMzOTtsbCBuZWVkIGBCTEtfREVWX0RSQkRgIGVuYWJsZWQgZm9yIHRlc3RpbmcuIEFuZCBvZiBjb3Vyc2UsIERSQkQgZGVwZW5kcyBvbiBib3RoIGBQUk9DX0ZTYCBhbmQgYElORVRgLiBJIHdvbmRlciBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzIGluIHBsYXkgaGVyZS4gTGV0JiMzOTtzIHNlZS4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkZXBlbmRzIG9uIEJMS19ERVZfRFJCRCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2Jsb2NrL2RyYmQvS2NvbmZpZz00Mj1jb25maWcgRFJCRF9GQVVMVF9JTkpFQ1RJT05cbmRyaXZlcnMvYmxvY2svZHJiZC9LY29uZmlnLTQzLVx0Ym9vbCBcJiMzNDtEUkJEIGZhdWx0IGluamVjdGlvblwmIzM0O1xuZHJpdmVycy9ibG9jay9kcmJkL0tjb25maWc6NDQ6XHRkZXBlbmRzIG9uIEJMS19ERVZfRFJCRFxuZHJpdmVycy9ibG9jay9kcmJkL0tjb25maWctNDUtXHRoZWxwXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDE4OjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwNjUyCgkJCQkJCQlvdXRwdXQ6IDIzCgkJCQkJCQl0aG91Z2h0czogMTg4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBEUkJEIENvbmZpZ3VyYXRpb24gQ2hhbmdlcyoqCgpPa2F5LCBzbyBJIHNlZSBgQkxLX0RFVl9EUkJEYCBhcyB0aGUgY2VudHJhbCBjb25maWd1cmF0aW9uIHBvaW50IGhlcmUuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byB6ZXJvIGluIG9uIHRoYXQuIExldCYjMzk7cyBzZWUsIHdoYXQgZWxzZSBpcyBzaWduaWZpY2FudD8gQWgsIGl0JiMzOTtzIG5vdCBmdW5jdGlvbnMgdGhhdCB3ZXJlIG1vZGlmaWVkIGRpcmVjdGx5LCBidXQgcmF0aGVyIHRoZXNlIGRhdGEgc3RydWN0dXJlcyBsaWtlIGBkcmJkX2Rpc2tfY29uZl9ubF9wb2xpY3lgLCBgZHJiZF9uZXRfY29uZl9ubF9wb2xpY3lgLCBldGMuIFRoaXMgbWVhbnMgdGhlIGNvcmUgY29uZmlnICpwb2xpY2llcyogYXJlIHdoYXQmIzM5O3MgZ2V0dGluZyBhZGp1c3RlZC4gVGhlIGZ1bmN0aW9ucyB0aGF0IGFyZSAqdXNpbmcqIHRob3NlIHBvbGljaWVzIGFyZSB0aGUgaW50ZXJlc3RpbmcgYml0cy4gSSBzZWUgYF9fZGlza19jb25mX2Zyb21fYXR0cnNgLCBgX19yZXNfb3B0c19mcm9tX2F0dHJzYCwgZXRjLiBUaG9zZSBhcmUga2V5LCBhcyB0aGV5JiMzOTtyZSB0aGUgY29uc3VtZXJzLiBOb3csIGxldCYjMzk7cyBsb29rIGF0IHRoZSBuZXRsaW5rIGhhbmRsZXJzLi4uIHRoZXNlIHdpbGwgbGlrZWx5IGJlIHdoZXJlIHRoZSBtYWdpYyBoYXBwZW5zLCBhbmQgdGhlIGNvbmZpZyBpcyBhY3R1YWxseSBhcHBsaWVkIG9yIG1vZGlmaWVkLiBJJiMzOTt2ZSBnb3QgYSBsaXN0IGhlcmU6IGBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdGAsIGBkcmJkX25sX25ld19yZXNvdXJjZV9kb2l0YCwgYGRyYmRfbmxfZGlza19jb25mX2RvaXRgLCBgZHJiZF9ubF9uZXRfY29uZl9kb2l0YCwgYGRyYmRfbmxfZGlzY29ubmVjdF9kb2l0YCwgYGRyYmRfbmxfYXR0YWNoX2RvaXRgLCBhbmQgYGRyYmRfbmxfY29ubmVjdF9kb2l0YC4gVGhvc2UgbmV0bGluayBoYW5kbGVycyBhcmUgZGVmaW5pdGVseSBnb2luZyB0byBiZSBteSBGb2N1c1N5bWJvbHMgZm9yIGZ1cnRoZXIgZXhhbWluYXRpb24uIFRoYXQmIzM5O3Mgd2hlcmUgdGhlIHJlYWwgbG9naWMgaXMgYmVpbmcgaW52b2tlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMTg6NTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZHJiZF9ubF8uKl9kb2l0JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9Nzk5PXN0YXRpYyBpbnQgZHJiZF9ubF9zZXRfcm9sZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtODM4LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo4Mzk6aW50IGRyYmRfbmxfcHJpbWFyeV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTg0MC17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy04NDMtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjg0NDppbnQgZHJiZF9ubF9zZWNvbmRhcnlfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy04NDUte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9OTEzPWNoYXIgKnBwc2l6ZShjaGFyICpidWYsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtOTQyLS8qIE5vdGUgdGhlc2UgYXJlIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjk0MzogKiBkcmJkX25sX3N1c3BlbmRfaW9fZG9pdC9kcmJkX25sX3Jlc3VtZV9pb19kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy05NDQtICogd2hpY2ggYXJlIChzdWIpIHN0YXRlIGNoYW5nZXMgdHJpZ2dlcmVkIGJ5IGFkbWluIChkcmJkc2V0dXApLFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MTUzMT1zdGF0aWMgaW50IGRpc2tfb3B0c19jaGVja19hbF9zaXplKHN0cnVjdCBkcmJkX2RldmljZSAqZGV2aWNlLCBzdHJ1Y3QgZGlza19jb25mICpkYylcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTE1NTQtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjE1NTU6aW50IGRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTE1NTYte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MTc4MT12b2lkIGRyYmRfYmFja2luZ19kZXZfZnJlZShzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSwgc3RydWN0IGRyYmRfYmFja2luZ19kZXYgKmxkZXYpXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0xNzkzLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoxNzk0OmludCBkcmJkX25sX2F0dGFjaF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTE3OTUte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MjIxOD1zdGF0aWMgaW50IGFkbV9kZXRhY2goc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UsIGludCBmb3JjZSlcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTIyMzMtICogT25seSB0aGVuIHdlIGhhdmUgZmluYWxseSBkZXRhY2hlZC4gKi9cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MjIzNDppbnQgZHJiZF9ubF9kZXRhY2hfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yMjM1LXtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTI0MjQ9c3RhdGljIHZvaWQgZnJlZV9jcnlwdG8oc3RydWN0IGNyeXB0byAqY3J5cHRvKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjQzMS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MjQzMjppbnQgZHJiZF9ubF9jaGdfbmV0X29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yNDMzLXtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTI1NzQ9c3RhdGljIHZvaWQgcGVlcl9kZXZpY2VfdG9faW5mbyhzdHJ1Y3QgcGVlcl9kZXZpY2VfaW5mbyAqaW5mbyxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI1ODYtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjI1ODc6aW50IGRyYmRfbmxfY29ubmVjdF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI1ODgte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MjczNj1zdGF0aWMgZW51bSBkcmJkX3N0YXRlX3J2IGNvbm5fdHJ5X2Rpc2Nvbm5lY3Qoc3RydWN0IGRyYmRfY29ubmVjdGlvbiAqY29ubmVjdGlvbiwgYm9vbCBmb3JjZSlcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI4MDEtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjI4MDI6aW50IGRyYmRfbmxfZGlzY29ubmVjdF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI4MDMte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9Mjg0MT12b2lkIHJlc3luY19hZnRlcl9vbmxpbmVfZ3JvdyhzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSlcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI4NTYtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjI4NTc6aW50IGRyYmRfbmxfcmVzaXplX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjg1OC17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yOTkyLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoyOTkzOmludCBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yOTk0LXtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMwMzAtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMwMzE6aW50IGRyYmRfbmxfaW52YWxpZGF0ZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMwMzIte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MzA5OT1zdGF0aWMgaW50IGRyYmRfYm1pb19zZXRfc3VzcF9hbChzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMxMDgtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMxMDk6aW50IGRyYmRfbmxfaW52YWxfcGVlcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMxMTAte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzE1OS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MzE2MDppbnQgZHJiZF9ubF9wYXVzZV9zeW5jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzE2MS17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMTc5LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMTgwOmludCBkcmJkX25sX3Jlc3VtZV9zeW5jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzE4MS17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjA3LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMjA4OmludCBkcmJkX25sX3N1c3BlbmRfaW9fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjA5LXtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMyMTItXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMyMTM6aW50IGRyYmRfbmxfcmVzdW1lX2lvX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzIxNC17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjY4LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMjY5OmludCBkcmJkX25sX291dGRhdGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjcwLXtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTM4MDE9c3RhdGljIGludCBubGFfcHV0X3N0YXR1c19pbmZvKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBkcmJkX2RldmljZSAqZGV2aWNlLFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzgxMy1cdCAqXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjM4MTQ6XHQgKiBJZiBzaWIgPT0gTlVMTCwgdGhpcyBpcyBkcmJkX25sX2dldF9zdGF0dXNfZG9pdCwgZXhlY3V0ZWQgc3luY2hyb25vdXNseVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zODE1LVx0ICogaW4gdGhlIGNvbnRleHQgb2YgdGhlIHJlcXVlc3RpbmcgdXNlciBwcm9jZXNzLiBFeGNsdWRlIHNlbnNpdGl2ZVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzk1MC1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6Mzk1MTppbnQgZHJiZF9ubF9nZXRfc3RhdHVzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzk1Mi17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz00MTAzPWludCBkcmJkX25sX2dldF9zdGF0dXNfZHVtcGl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYilcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQxNTAtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjQxNTE6aW50IGRyYmRfbmxfZ2V0X3RpbWVvdXRfdHlwZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQxNTIte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDE3OS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDE4MDppbnQgZHJiZF9ubF9zdGFydF9vdl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQxODEte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDIyNS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDIyNjppbnQgZHJiZF9ubF9uZXdfY191dWlkX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDIyNy17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz00MzIwPXN0YXRpYyB2b2lkIHJlc291cmNlX3RvX2luZm8oc3RydWN0IHJlc291cmNlX2luZm8gKmluZm8sXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MzI4LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0MzI5OmludCBkcmJkX25sX25ld19yZXNvdXJjZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQzMzAte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDM4NT1zdGF0aWMgdm9pZCBkZXZpY2VfdG9faW5mbyhzdHJ1Y3QgZGV2aWNlX2luZm8gKmluZm8sXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MzkxLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0MzkyOmludCBkcmJkX25sX25ld19taW5vcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQzOTMte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDQ2Mj1zdGF0aWMgZW51bSBkcmJkX3JldF9jb2RlIGFkbV9kZWxfbWlub3Ioc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UpXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00NDk4LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0NDk5OmludCBkcmJkX25sX2RlbF9taW5vcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQ1MDAte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDUxOD1zdGF0aWMgaW50IGFkbV9kZWxfcmVzb3VyY2Uoc3RydWN0IGRyYmRfcmVzb3VyY2UgKnJlc291cmNlKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDU0Ny1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDU0ODppbnQgZHJiZF9ubF9kb3duX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDU0OS17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00NjEwLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0NjExOmludCBkcmJkX25sX2RlbF9yZXNvdXJjZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQ2MTIte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTM1OT1jb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgZHJiZF9ubF9vcHNbMzJdID0ge1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTM2Mi1cdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzozNjM6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9nZXRfc3RhdHVzX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zNjQtXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzc4LVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM3OTpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX25ld19taW5vcl9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzgwLVx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTM4Ny1cdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzozODg6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9kZWxfbWlub3JfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTM4OS1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zOTYtXHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6Mzk3Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfbmV3X3Jlc291cmNlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zOTgtXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDA1LVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQwNjpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX2RlbF9yZXNvdXJjZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDA3LVx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQxNC1cdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MTU6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MTYtXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDIzLVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQyNDpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX2Nvbm5lY3RfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQyNS1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MzItXHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDMzOlx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfZGlzY29ubmVjdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDM0LVx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ0MS1cdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0NDI6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9hdHRhY2hfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ0My1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NTAtXHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDUxOlx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfcmVzaXplX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NTItXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDU5LVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ2MDpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX3ByaW1hcnlfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ2MS1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NjgtXHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDY5Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfc2Vjb25kYXJ5X2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NzAtXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDc3LVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ3ODpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX25ld19jX3V1aWRfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ3OS1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00ODYtXHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDg3Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfc3RhcnRfb3ZfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ4OC1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00OTUtXHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDk2Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfZGV0YWNoX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00OTctXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTA0LVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUwNTpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX2ludmFsaWRhdGVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUwNi1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MTMtXHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTE0Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfaW52YWxfcGVlcl9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTE1LVx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUyMi1cdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1MjM6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9wYXVzZV9zeW5jX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MjQtXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTMxLVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUzMjpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX3Jlc3VtZV9zeW5jX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MzMtXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTQwLVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU0MTpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX3N1c3BlbmRfaW9fZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU0Mi1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NDktXHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTUwOlx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfcmVzdW1lX2lvX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NTEtXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTU4LVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU1OTpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX291dGRhdGVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU2MC1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NjctXHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTY4Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfZ2V0X3RpbWVvdXRfdHlwZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTY5LVx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU3Ni1cdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1Nzc6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9kb3duX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NzgtXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTg1LVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU4NjpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX2NoZ19kaXNrX29wdHNfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU4Ny1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01OTQtXHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTk1Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfY2hnX25ldF9vcHRzX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01OTYtXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg9NDM9aW50IGRyYmRfYWRtX2R1bXBfcGVlcl9kZXZpY2VzX2RvbmUoc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oLTQ0LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NDU6aW50IGRyYmRfbmxfZ2V0X3N0YXR1c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtNDYtaW50IGRyYmRfbmxfZ2V0X3N0YXR1c19kdW1waXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjQ3OmludCBkcmJkX25sX25ld19taW5vcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NDg6aW50IGRyYmRfbmxfZGVsX21pbm9yX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo0OTppbnQgZHJiZF9ubF9uZXdfcmVzb3VyY2VfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjUwOmludCBkcmJkX25sX2RlbF9yZXNvdXJjZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTE6aW50IGRyYmRfbmxfcmVzb3VyY2Vfb3B0c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTI6aW50IGRyYmRfbmxfY29ubmVjdF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTM6aW50IGRyYmRfbmxfZGlzY29ubmVjdF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTQ6aW50IGRyYmRfbmxfYXR0YWNoX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo1NTppbnQgZHJiZF9ubF9yZXNpemVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjU2OmludCBkcmJkX25sX3ByaW1hcnlfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjU3OmludCBkcmJkX25sX3NlY29uZGFyeV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTg6aW50IGRyYmRfbmxfbmV3X2NfdXVpZF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTk6aW50IGRyYmRfbmxfc3RhcnRfb3ZfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjYwOmludCBkcmJkX25sX2RldGFjaF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NjE6aW50IGRyYmRfbmxfaW52YWxpZGF0ZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NjI6aW50IGRyYmRfbmxfaW52YWxfcGVlcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NjM6aW50IGRyYmRfbmxfcGF1c2Vfc3luY19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NjQ6aW50IGRyYmRfbmxfcmVzdW1lX3N5bmNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY1OmludCBkcmJkX25sX3N1c3BlbmRfaW9fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY2OmludCBkcmJkX25sX3Jlc3VtZV9pb19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6Njc6aW50IGRyYmRfbmxfb3V0ZGF0ZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6Njg6aW50IGRyYmRfbmxfZ2V0X3RpbWVvdXRfdHlwZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6Njk6aW50IGRyYmRfbmxfZG93bl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NzA6aW50IGRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NzE6aW50IGRyYmRfbmxfY2hnX25ldF9vcHRzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaC03Mi1pbnQgZHJiZF9ubF9nZXRfcmVzb3VyY2VzX2R1bXBpdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODg4NwoJCQkJCQkJb3V0cHV0OiAxNzgKCQkJCQkJCXRob3VnaHRzOiAyNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIERSQkQgTmV0bGluayBQb2xpY3kgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0d2Vha2luZyB0aGUgbmV0bGluayBwb2xpY3kgbGVuZ3Rocywgc3BlY2lmaWNhbGx5IGZvciBgTkxBX05VTF9TVFJJTkdgIGF0dHJpYnV0ZXMgd2l0aGluIHRoZSBEUkJEIGRyaXZlci4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgaXQmIzM5O3MgZml4aW5nIGEgYnVnIOKAkyBzb21ldGhpbmcgYWJvdXQgdGhlIGxlbmd0aCBjYWxjdWxhdGlvbiBwcmV2aW91c2x5IGluY2x1ZGluZyB0aGUgTlVMIGJ5dGUsIHdoaWNoIGlzIGluY29ycmVjdC4gSXQgYWxzbyBsb29rcyBsaWtlIHRoZSBwYXRjaCBpcyBpbmNyZWFzaW5nIHRoZSBtYXhpbXVtIENQVSBtYXNrIHNpemUsIHdoaWNoIGlzIGEgZ29vZCB0aGluZyB0byBlbnN1cmUgdGhlcmUgaXNuJiMzOTt0IGEgaGFyZCBsaW1pdC4gVGhpcyBpcyBkZWZpbml0ZWx5IGdvaW5nIHRvIGltcGFjdCBob3cgdGhlIGRyaXZlciB2YWxpZGF0ZXMgYW5kIHBhcnNlcyB0aG9zZSBpbmNvbWluZyBuZXRsaW5rIG1lc3NhZ2VzLgoKTm93LCBsZXQmIzM5O3MgYnJlYWsgZG93biB0aGUgaW1wbGljYXRpb25zLiBUaGUgYWZmZWN0ZWQgZnVuY3Rpb25zIGFyZSB0aGUgb25lcyBwYXJzaW5nIHRoZXNlIGF0dHJpYnV0ZXM6IGBfX2Rpc2tfY29uZl9mcm9tX2F0dHJzYCwgYF9fcmVzX29wdHNfZnJvbV9hdHRyc2AsIGBfX25ldF9jb25mX2Zyb21fYXR0cnNgLCBhbmQgc28gb24uIFRoZXNlIGFyZSBhbGwgY2FsbGVkIGZyb20gdmFyaW91cyBgZG9pdGAgZnVuY3Rpb25zIGludm9sdmVkIGluIHJlc291cmNlIG9wZXJhdGlvbnM6IGBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdGAsIGBkcmJkX25sX25ld19yZXNvdXJjZV9kb2l0YCwgYGRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0YCwgYGRyYmRfbmxfYXR0YWNoX2RvaXRgLCBgZHJiZF9ubF9jaGdfbmV0X29wdHNfZG9pdGAsIGFuZCBgZHJiZF9ubF9jb25uZWN0X2RvaXRgLiBJJiMzOTtsbCB3YW50IHRvIGtlZXAgYW4gZXllIG9uIHRoZXNlIGFzIEZvY3VzU3ltYm9scyBzaW5jZSBjaGFuZ2VzIGhlcmUgY2FuIHJpcHBsZSB0aHJvdWdoIHRoZSBlbnRpcmUgcmVzb3VyY2UgY29uZmlndXJhdGlvbiBhbmQgbWFuYWdlbWVudCBmbG93LgoKQWxyaWdodCwgbGV0JiMzOTtzIG1ha2UgYSBxdWljayBub3RlIGFib3V0IGNvbmZpZ3MuIFdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYEJMS19ERVZfRFJCRGAgaGVyZS4gTm90aGluZyBvdmVybHkgY29tcGxleCwgaXQgZGVwZW5kcyBvbiBgUFJPQ19GU2AgYW5kIGBJTkVUYC4gTm90aGluZyB0byB3b3JyeSBhYm91dC4gVGhlc2UgYXJlIHN0YW5kYXJkIGFuZCB1c3VhbGx5IGVuYWJsZWQsIHNvIEkmIzM5O2xsIGp1c3QgbGlzdCBgQkxLX0RFVl9EUkJEYCBhcyB0aGUga2V5IGNvbmZpZyB0byByZW1lbWJlci4gTm8gb3RoZXIgY29uZmlncyBuZWVkIHRvIGJlIG5vdGVkLCB0aGUgZGVwZW5kZW5jaWVzIGFyZSB0cml2aWFsLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QkxLX0RFVl9EUkJEJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXQmIzM0OywKICAgICYjMzQ7ZHJiZF9ubF9uZXdfcmVzb3VyY2VfZG9pdCYjMzQ7LAogICAgJiMzNDtkcmJkX25sX2NoZ19kaXNrX29wdHNfZG9pdCYjMzQ7LAogICAgJiMzNDtkcmJkX25sX2F0dGFjaF9kb2l0JiMzNDssCiAgICAmIzM0O2RyYmRfbmxfY2hnX25ldF9vcHRzX2RvaXQmIzM0OywKICAgICYjMzQ7ZHJiZF9ubF9jb25uZWN0X2RvaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG5ldGxpbmsgcG9saWN5IGxlbmd0aHMgZm9yIE5MQV9OVUxfU1RSSU5HIGF0dHJpYnV0ZXMgaW4gdGhlIERSQkQgZHJpdmVyLCBmaXhpbmcgYSBidWcgd2hlcmUgdGhlIGxlbmd0aCBpbmNsdWRlZCB0aGUgTlVMIGJ5dGUsIGFuZCBpbmNyZWFzZXMgdGhlIG1heGltdW0gQ1BVIG1hc2sgc2l6ZS4gVGhpcyBhZmZlY3RzIGhvdyBuZXRsaW5rIG1lc3NhZ2VzIGFyZSB2YWxpZGF0ZWQgYW5kIHBhcnNlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QkxLX0RFVl9EUkJEJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXQmIzM0OywKICAgICYjMzQ7ZHJiZF9ubF9uZXdfcmVzb3VyY2VfZG9pdCYjMzQ7LAogICAgJiMzNDtkcmJkX25sX2NoZ19kaXNrX29wdHNfZG9pdCYjMzQ7LAogICAgJiMzNDtkcmJkX25sX2F0dGFjaF9kb2l0JiMzNDssCiAgICAmIzM0O2RyYmRfbmxfY2hnX25ldF9vcHRzX2RvaXQmIzM0OywKICAgICYjMzQ7ZHJiZF9ubF9jb25uZWN0X2RvaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG5ldGxpbmsgcG9saWN5IGxlbmd0aHMgZm9yIE5MQV9OVUxfU1RSSU5HIGF0dHJpYnV0ZXMgaW4gdGhlIERSQkQgZHJpdmVyLCBmaXhpbmcgYSBidWcgd2hlcmUgdGhlIGxlbmd0aCBpbmNsdWRlZCB0aGUgTlVMIGJ5dGUsIGFuZCBpbmNyZWFzZXMgdGhlIG1heGltdW0gQ1BVIG1hc2sgc2l6ZS4gVGhpcyBhZmZlY3RzIGhvdyBuZXRsaW5rIG1lc3NhZ2VzIGFyZSB2YWxpZGF0ZWQgYW5kIHBhcnNlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDE4OjU3OjM3LjAxMzk4NTI3NloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyODA5NDA0MTY5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJMS19ERVZfRFJCRFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImRyYmRfbmxfcmVzb3VyY2Vfb3B0c19kb2l0XCIsXG4gICAgXCJkcmJkX25sX25ld19yZXNvdXJjZV9kb2l0XCIsXG4gICAgXCJkcmJkX25sX2NoZ19kaXNrX29wdHNfZG9pdFwiLFxuICAgIFwiZHJiZF9ubF9hdHRhY2hfZG9pdFwiLFxuICAgIFwiZHJiZF9ubF9jaGdfbmV0X29wdHNfZG9pdFwiLFxuICAgIFwiZHJiZF9ubF9jb25uZWN0X2RvaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbmV0bGluayBwb2xpY3kgbGVuZ3RocyBmb3IgTkxBX05VTF9TVFJJTkcgYXR0cmlidXRlcyBpbiB0aGUgRFJCRCBkcml2ZXIsIGZpeGluZyBhIGJ1ZyB3aGVyZSB0aGUgbGVuZ3RoIGluY2x1ZGVkIHRoZSBOVUwgYnl0ZSwgYW5kIGluY3JlYXNlcyB0aGUgbWF4aW11bSBDUFUgbWFzayBzaXplLiBUaGlzIGFmZmVjdHMgaG93IG5ldGxpbmsgbWVzc2FnZXMgYXJlIHZhbGlkYXRlZCBhbmQgcGFyc2VkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQxODo1NzozNy4wMTM5OTQ5NzZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2OTE5MjYwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDQ5ZGJjNGVjODJkZDY2NmNjMDkyOWNjZTgzZjExMzFjYjVlMjNjZjdcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBBdWcgMiAxODo1NzozNSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYyBiL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jXFxuaW5kZXggZmI0NGI5NDhjZWM4Ny4uNWI2NjhlNzgwNTFiYSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uY1xcbisrKyBiL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jXFxuQEAgLTUxLDggKzUxLDggQEAgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9kaXNjb25uZWN0X3Bhcm1zX25sX3BvbGljeVtEUkJEX0FfRElTQ09OTkVDVF9QQVJNU19cXG4gfTtcXG4gXFxuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfZGlza19jb25mX25sX3BvbGljeVtEUkJEX0FfRElTS19DT05GX0RJU0FCTEVfV1JJVEVfU0FNRSArIDFdID0ge1xcbi1cXHRbRFJCRF9BX0RJU0tfQ09ORl9CQUNLSU5HX0RFVl0gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSAxMjgsIH0sXFxuLVxcdFtEUkJEX0FfRElTS19DT05GX01FVEFfREVWXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCwgfSxcXG4rXFx0W0RSQkRfQV9ESVNLX0NPTkZfQkFDS0lOR19ERVZdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gMTI4IC0gMSwgfSxcXG4rXFx0W0RSQkRfQV9ESVNLX0NPTkZfTUVUQV9ERVZdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gMTI4IC0gMSwgfSxcXG4gXFx0W0RSQkRfQV9ESVNLX0NPTkZfTUVUQV9ERVZfSURYXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxcbiBcXHRbRFJCRF9BX0RJU0tfQ09ORl9ESVNLX1NJWkVdID0geyAudHlwZSA9IE5MQV9VNjQsIH0sXFxuIFxcdFtEUkJEX0FfRElTS19DT05GX01BWF9CSU9fQlZFQ1NdID0geyAudHlwZSA9IE5MQV9VMzIsIH0sXFxuQEAgLTgwLDE3ICs4MCwxNyBAQCBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX2Rpc2tfY29uZl9ubF9wb2xpY3lbRFJCRF9BX0RJU0tfQ09ORl9ESVNBQkxFX1dSSVRFX1xcbiBcXG4gY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9kcmJkX2NmZ19jb250ZXh0X25sX3BvbGljeVtEUkJEX0FfRFJCRF9DRkdfQ09OVEVYVF9DVFhfUEVFUl9BRERSICsgMV0gPSB7XFxuIFxcdFtEUkJEX0FfRFJCRF9DRkdfQ09OVEVYVF9DVFhfVk9MVU1FXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxcbi1cXHRbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX1JFU09VUkNFX05BTUVdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gMTI4LCB9LFxcbitcXHRbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX1JFU09VUkNFX05BTUVdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gMTI4IC0gMSwgfSxcXG4gXFx0W0RSQkRfQV9EUkJEX0NGR19DT05URVhUX0NUWF9NWV9BRERSXSA9IE5MQV9QT0xJQ1lfTUFYX0xFTigxMjgpLFxcbiBcXHRbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX1BFRVJfQUREUl0gPSBOTEFfUE9MSUNZX01BWF9MRU4oMTI4KSxcXG4gfTtcXG4gXFxuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfbmV0X2NvbmZfbmxfcG9saWN5W0RSQkRfQV9ORVRfQ09ORl9TT0NLX0NIRUNLX1RJTUVPICsgMV0gPSB7XFxuLVxcdFtEUkJEX0FfTkVUX0NPTkZfU0hBUkVEX1NFQ1JFVF0gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCwgfSxcXG4tXFx0W0RSQkRfQV9ORVRfQ09ORl9DUkFNX0hNQUNfQUxHXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYLCB9LFxcbi1cXHRbRFJCRF9BX05FVF9DT05GX0lOVEVHUklUWV9BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVgsIH0sXFxuLVxcdFtEUkJEX0FfTkVUX0NPTkZfVkVSSUZZX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCwgfSxcXG4tXFx0W0RSQkRfQV9ORVRfQ09ORl9DU1VNU19BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVgsIH0sXFxuK1xcdFtEUkJEX0FfTkVUX0NPTkZfU0hBUkVEX1NFQ1JFVF0gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCAtIDEsIH0sXFxuK1xcdFtEUkJEX0FfTkVUX0NPTkZfQ1JBTV9ITUFDX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCAtIDEsIH0sXFxuK1xcdFtEUkJEX0FfTkVUX0NPTkZfSU5URUdSSVRZX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCAtIDEsIH0sXFxuK1xcdFtEUkJEX0FfTkVUX0NPTkZfVkVSSUZZX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCAtIDEsIH0sXFxuK1xcdFtEUkJEX0FfTkVUX0NPTkZfQ1NVTVNfQUxHXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYIC0gMSwgfSxcXG4gXFx0W0RSQkRfQV9ORVRfQ09ORl9XSVJFX1BST1RPQ09MXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxcbiBcXHRbRFJCRF9BX05FVF9DT05GX0NPTk5FQ1RfSU5UXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxcbiBcXHRbRFJCRF9BX05FVF9DT05GX1RJTUVPVVRdID0geyAudHlwZSA9IE5MQV9VMzIsIH0sXFxuQEAgLTE0Myw3ICsxNDMsNyBAQCBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX3BlZXJfZGV2aWNlX3N0YXRpc3RpY3NfbmxfcG9saWN5W0RSQkRfQV9QRUVSX0RFVklDRVxcbiB9O1xcbiBcXG4gY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9yZXNfb3B0c19ubF9wb2xpY3lbRFJCRF9BX1JFU19PUFRTX09OX05PX0RBVEEgKyAxXSA9IHtcXG4tXFx0W0RSQkRfQV9SRVNfT1BUU19DUFVfTUFTS10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBEUkJEX0NQVV9NQVNLX1NJWkUsIH0sXFxuK1xcdFtEUkJEX0FfUkVTX09QVFNfQ1BVX01BU0tdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gRFJCRF9DUFVfTUFTS19TSVpFIC0gMSwgfSxcXG4gXFx0W0RSQkRfQV9SRVNfT1BUU19PTl9OT19EQVRBXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxcbiB9O1xcbiBcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2RyYmQuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9kcmJkLmhcXG5pbmRleCBjZjFlYzNlYjg3MmYwLi4xMzI3Y2UxMDA2YWM4IDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9kcmJkLmhcXG4rKysgYi9pbmNsdWRlL3VhcGkvbGludXgvZHJiZC5oXFxuQEAgLTM2OCw3ICszNjgsMTIgQEAgZW51bSB3cml0ZV9vcmRlcmluZ19lIHtcXG4gI2RlZmluZSBEUkJEX01EX0lOREVYX0ZMRVhfRVhUIC0yXFxuICNkZWZpbmUgRFJCRF9NRF9JTkRFWF9GTEVYX0lOVCAtM1xcbiBcXG4tI2RlZmluZSBEUkJEX0NQVV9NQVNLX1NJWkUgMzJcXG4rLypcXG4rICogTWF4aW11bSBzaXplIG9mIHRoZSBjcHUtbWFzayBzdHJpbmcsIGluY2x1ZGluZyB0aGUgdGVybWluYXRpbmcgTlVMLlxcbisgKiBUaGUgbmV0bGluayBwb2xpY3kgYWNjZXB0cyBEUkJEX0NQVV9NQVNLX1NJWkUgLSAxIGNoYXJhY3RlcnMsIHdoaWNoIGlzXFxuKyAqIGVub3VnaCBmb3IgYSBmdWxsIG1hc2sgY292ZXJpbmcgOTA4IENQVXMuXFxuKyAqL1xcbisjZGVmaW5lIERSQkRfQ1BVX01BU0tfU0laRSAyNTZcXG4gXFxuIC8qKlxcbiAgKiBzdHJ1Y3QgZHJiZF9nZW5sbXNnaGRyIC0gRFJCRCBzcGVjaWZpYyBoZWFkZXIgdXNlZCBpbiBORVRMSU5LX0dFTkVSSUMgcmVxdWVzdHNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMTg6NTc6MzcuMzg0MTQ3OTIxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NjI0MzkyMzE3MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQkxLX0RFVl9EUkJEXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXRcIixcbiAgICBcImRyYmRfbmxfbmV3X3Jlc291cmNlX2RvaXRcIixcbiAgICBcImRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0XCIsXG4gICAgXCJkcmJkX25sX2F0dGFjaF9kb2l0XCIsXG4gICAgXCJkcmJkX25sX2NoZ19uZXRfb3B0c19kb2l0XCIsXG4gICAgXCJkcmJkX25sX2Nvbm5lY3RfZG9pdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBuZXRsaW5rIHBvbGljeSBsZW5ndGhzIGZvciBOTEFfTlVMX1NUUklORyBhdHRyaWJ1dGVzIGluIHRoZSBEUkJEIGRyaXZlciwgZml4aW5nIGEgYnVnIHdoZXJlIHRoZSBsZW5ndGggaW5jbHVkZWQgdGhlIE5VTCBieXRlLCBhbmQgaW5jcmVhc2VzIHRoZSBtYXhpbXVtIENQVSBtYXNrIHNpemUuIFRoaXMgYWZmZWN0cyBob3cgbmV0bGluayBtZXNzYWdlcyBhcmUgdmFsaWRhdGVkIGFuZCBwYXJzZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDQ5ZGJjNGVjODJkZDY2NmNjMDkyOWNjZTgzZjExMzFjYjVlMjNjZjdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEF1ZyAyIDE4OjU3OjM1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMgYi9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uY1xuaW5kZXggZmI0NGI5NDhjZWM4Ny4uNWI2NjhlNzgwNTFiYSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jXG4rKysgYi9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uY1xuQEAgLTUxLDggKzUxLDggQEAgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9kaXNjb25uZWN0X3Bhcm1zX25sX3BvbGljeVtEUkJEX0FfRElTQ09OTkVDVF9QQVJNU19cbiB9O1xuIFxuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfZGlza19jb25mX25sX3BvbGljeVtEUkJEX0FfRElTS19DT05GX0RJU0FCTEVfV1JJVEVfU0FNRSArIDFdID0ge1xuLVx0W0RSQkRfQV9ESVNLX0NPTkZfQkFDS0lOR19ERVZdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gMTI4LCB9LFxuLVx0W0RSQkRfQV9ESVNLX0NPTkZfTUVUQV9ERVZdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gMTI4LCB9LFxuK1x0W0RSQkRfQV9ESVNLX0NPTkZfQkFDS0lOR19ERVZdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gMTI4IC0gMSwgfSxcbitcdFtEUkJEX0FfRElTS19DT05GX01FVEFfREVWXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCAtIDEsIH0sXG4gXHRbRFJCRF9BX0RJU0tfQ09ORl9NRVRBX0RFVl9JRFhdID0geyAudHlwZSA9IE5MQV9VMzIsIH0sXG4gXHRbRFJCRF9BX0RJU0tfQ09ORl9ESVNLX1NJWkVdID0geyAudHlwZSA9IE5MQV9VNjQsIH0sXG4gXHRbRFJCRF9BX0RJU0tfQ09ORl9NQVhfQklPX0JWRUNTXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuQEAgLTgwLDE3ICs4MCwxNyBAQCBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX2Rpc2tfY29uZl9ubF9wb2xpY3lbRFJCRF9BX0RJU0tfQ09ORl9ESVNBQkxFX1dSSVRFX1xuIFxuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfZHJiZF9jZmdfY29udGV4dF9ubF9wb2xpY3lbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX1BFRVJfQUREUiArIDFdID0ge1xuIFx0W0RSQkRfQV9EUkJEX0NGR19DT05URVhUX0NUWF9WT0xVTUVdID0geyAudHlwZSA9IE5MQV9VMzIsIH0sXG4tXHRbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX1JFU09VUkNFX05BTUVdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gMTI4LCB9LFxuK1x0W0RSQkRfQV9EUkJEX0NGR19DT05URVhUX0NUWF9SRVNPVVJDRV9OQU1FXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCAtIDEsIH0sXG4gXHRbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX01ZX0FERFJdID0gTkxBX1BPTElDWV9NQVhfTEVOKDEyOCksXG4gXHRbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX1BFRVJfQUREUl0gPSBOTEFfUE9MSUNZX01BWF9MRU4oMTI4KSxcbiB9O1xuIFxuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfbmV0X2NvbmZfbmxfcG9saWN5W0RSQkRfQV9ORVRfQ09ORl9TT0NLX0NIRUNLX1RJTUVPICsgMV0gPSB7XG4tXHRbRFJCRF9BX05FVF9DT05GX1NIQVJFRF9TRUNSRVRdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVgsIH0sXG4tXHRbRFJCRF9BX05FVF9DT05GX0NSQU1fSE1BQ19BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVgsIH0sXG4tXHRbRFJCRF9BX05FVF9DT05GX0lOVEVHUklUWV9BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVgsIH0sXG4tXHRbRFJCRF9BX05FVF9DT05GX1ZFUklGWV9BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVgsIH0sXG4tXHRbRFJCRF9BX05FVF9DT05GX0NTVU1TX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCwgfSxcbitcdFtEUkJEX0FfTkVUX0NPTkZfU0hBUkVEX1NFQ1JFVF0gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCAtIDEsIH0sXG4rXHRbRFJCRF9BX05FVF9DT05GX0NSQU1fSE1BQ19BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVggLSAxLCB9LFxuK1x0W0RSQkRfQV9ORVRfQ09ORl9JTlRFR1JJVFlfQUxHXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYIC0gMSwgfSxcbitcdFtEUkJEX0FfTkVUX0NPTkZfVkVSSUZZX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCAtIDEsIH0sXG4rXHRbRFJCRF9BX05FVF9DT05GX0NTVU1TX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCAtIDEsIH0sXG4gXHRbRFJCRF9BX05FVF9DT05GX1dJUkVfUFJPVE9DT0xdID0geyAudHlwZSA9IE5MQV9VMzIsIH0sXG4gXHRbRFJCRF9BX05FVF9DT05GX0NPTk5FQ1RfSU5UXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuIFx0W0RSQkRfQV9ORVRfQ09ORl9USU1FT1VUXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuQEAgLTE0Myw3ICsxNDMsNyBAQCBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX3BlZXJfZGV2aWNlX3N0YXRpc3RpY3NfbmxfcG9saWN5W0RSQkRfQV9QRUVSX0RFVklDRVxuIH07XG4gXG4gY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9yZXNfb3B0c19ubF9wb2xpY3lbRFJCRF9BX1JFU19PUFRTX09OX05PX0RBVEEgKyAxXSA9IHtcbi1cdFtEUkJEX0FfUkVTX09QVFNfQ1BVX01BU0tdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gRFJCRF9DUFVfTUFTS19TSVpFLCB9LFxuK1x0W0RSQkRfQV9SRVNfT1BUU19DUFVfTUFTS10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBEUkJEX0NQVV9NQVNLX1NJWkUgLSAxLCB9LFxuIFx0W0RSQkRfQV9SRVNfT1BUU19PTl9OT19EQVRBXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuIH07XG4gXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2RyYmQuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9kcmJkLmhcbmluZGV4IGNmMWVjM2ViODcyZjAuLjEzMjdjZTEwMDZhYzggMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvZHJiZC5oXG4rKysgYi9pbmNsdWRlL3VhcGkvbGludXgvZHJiZC5oXG5AQCAtMzY4LDcgKzM2OCwxMiBAQCBlbnVtIHdyaXRlX29yZGVyaW5nX2Uge1xuICNkZWZpbmUgRFJCRF9NRF9JTkRFWF9GTEVYX0VYVCAtMlxuICNkZWZpbmUgRFJCRF9NRF9JTkRFWF9GTEVYX0lOVCAtM1xuIFxuLSNkZWZpbmUgRFJCRF9DUFVfTUFTS19TSVpFIDMyXG4rLypcbisgKiBNYXhpbXVtIHNpemUgb2YgdGhlIGNwdS1tYXNrIHN0cmluZywgaW5jbHVkaW5nIHRoZSB0ZXJtaW5hdGluZyBOVUwuXG4rICogVGhlIG5ldGxpbmsgcG9saWN5IGFjY2VwdHMgRFJCRF9DUFVfTUFTS19TSVpFIC0gMSBjaGFyYWN0ZXJzLCB3aGljaCBpc1xuKyAqIGVub3VnaCBmb3IgYSBmdWxsIG1hc2sgY292ZXJpbmcgOTA4IENQVXMuXG4rICovXG4rI2RlZmluZSBEUkJEX0NQVV9NQVNLX1NJWkUgMjU2XG4gXG4gLyoqXG4gICogc3RydWN0IGRyYmRfZ2VubG1zZ2hkciAtIERSQkQgc3BlY2lmaWMgaGVhZGVyIHVzZWQgaW4gTkVUTElOS19HRU5FUklDIHJlcXVlc3RzXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQxODo1NzozNy4zODQxNTAxNjFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NjMwMDc5MzYwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRFJCRCBOZXRsaW5rIFBvbGljeSBMZW5ndGggQ2hhbmdlKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmNgIGFuZCBgaW5jbHVkZS91YXBpL2xpbnV4L2RyYmQuaGAuIFJpZ2h0IG9mZiB0aGUgYmF0LCBJIHNlZSBpdCdzIGRlYWxpbmcgd2l0aCBuZXRsaW5rIHBvbGljeSBsZW5ndGhzIGZvciBEUkJELCB3aGljaCBpcyBhIGJsb2NrIGRldmljZSBkcml2ZXIg4oCTIGFsd2F5cyBpbnRlcmVzdGluZyB0ZXJyaXRvcnkuIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgY2hhbmdlIHJldm9sdmVzIGFyb3VuZCBzdWJ0cmFjdGluZyAxIGZyb20gdGhlIGxlbmd0aCBvZiBgTkxBX05VTF9TVFJJTkdgIHBvbGljaWVzLiBGb3IgaW5zdGFuY2UsIHRoZSBsZW5ndGggb2YgYERSQkRfQV9ESVNLX0NPTkZfQkFDS0lOR19ERVZgIGlzIG5vdyBgMTI4IC0gMWAsIGFuZCBzbyBvbi4gU2ltaWxhcmx5LCBgRFJCRF9DUFVfTUFTS19TSVpFYCBoYXMgYmVlbiBidW1wZWQgZnJvbSAzMiB0byAyNTYgaW4gdGhlIGhlYWRlciBmaWxlLlxuXG5UaGlzIGRlZmluaXRlbHkgaGFzIGZ1bmN0aW9uYWwgaW1wbGljYXRpb25zIGJlY2F1c2UgdGhlc2UgcG9saWNpZXMgZGljdGF0ZSBob3cgZGF0YSBpcyBmb3JtYXR0ZWQgYW5kIGV4Y2hhbmdlZCBvdmVyIG5ldGxpbmsuIEEgY2hhbmdlIGluIGxlbmd0aCBsaWtlIHRoaXMgY291bGQgYWZmZWN0IGhvdyBleGlzdGluZyBjb25maWd1cmF0aW9ucyBhbmQgY29tbXVuaWNhdGlvbiB3aWxsIHdvcmsgd2l0aCB0aGlzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aHkgdGhpcyBjaGFuZ2Ugd2FzIG5lY2Vzc2FyeS4gV2hhdCdzIHRoZSByYXRpb25hbGUgYmVoaW5kIHRoaXM/IElzIHRoZXJlIGEgcGVyZm9ybWFuY2UgYmVuZWZpdD8gSXMgaXQgcmVsYXRlZCB0byBhIHNwZWNpZmljIGJ1ZyBmaXggb3IgbmV3IGZlYXR1cmU/XG5cbkJlZm9yZSBJIGRpZyBpbnRvIHRoZSBzcGVjaWZpY3Mgb2YgdGhlIGNoYW5nZSwgSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gVGltZSB0byB1c2UgYGdyZXBwZXJgIGFuZCBsb29rIGZvciB0aGUgYGNvbmZpZyBCTEtfREVWX0RSQkRgIG9wdGlvbiBvciBhbnl0aGluZyBzaW1pbGFyIGluIHRoZSBLY29uZmlnIGZpbGVzLiBUaGF0IHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyBEUkJEIGlzIGNvbmZpZ3VyZWQgYW5kIG1pZ2h0IHNoZWQgc29tZSBsaWdodCBvbiB0aGUgbW90aXZhdGlvbiBmb3IgdGhlIHBvbGljeSBsZW5ndGggbW9kaWZpY2F0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjQxLCJPdXRwdXRUb2tlbnMiOjIyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzE5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMTg6NTc6NDMuMDE0MjMxMzAxWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMjk4MDk3NzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEJMS19ERVZfRFJCRFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2Jsb2NrL2RyYmQvS2NvbmZpZz02PWNvbW1lbnQgXFxcIkRSQkQgZGlzYWJsZWQgYmVjYXVzZSBQUk9DX0ZTIG9yIElORVQgbm90IHNlbGVjdGVkXFxcIlxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL0tjb25maWctOC1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvS2NvbmZpZzo5OmNvbmZpZyBCTEtfREVWX0RSQkRcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvS2NvbmZpZy0xMC1cXHR0cmlzdGF0ZSBcXFwiRFJCRCBEaXN0cmlidXRlZCBSZXBsaWNhdGVkIEJsb2NrIERldmljZSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQxODo1Nzo0NS4yNDQwNDc3NDhaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjA4NDE2NjY0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcy4gSGVyZSdzIGhvdyBJJ2QgYXBwcm9hY2ggdGhhdCBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlLCB0aGlua2luZyBhbG91ZDpcblxuKipFeGFtaW5pbmcgdGhlIERSQkQgS2NvbmZpZyBmb3IgQ29udGV4dCoqXG5cblJpZ2h0LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgZGVwZW5kZW5jaWVzIGZvciBEUkJELCB0aGUgRGlzdHJpYnV0ZWQgUmVwbGljYXRlZCBCbG9jayBEZXZpY2UuIFRoYXQgYGRyaXZlcnMvYmxvY2svZHJiZC9LY29uZmlnYCBmaWxlIHNob3VsZCBiZSB0aGUga2V5IHRvIGZpZ3VyaW5nIG91dCB3aGF0IG90aGVyIGNvbXBvbmVudHMgb3IgZmVhdHVyZXMgbmVlZCB0byBiZSBlbmFibGVkIG9yIGFyZSBhdCBsZWFzdCByZWxhdGVkIHRvIGl0LiBJJ2xsIG5lZWQgdG8gc2VlIHdoaWNoIHN5bWJvbHMgYXJlIGRlZmluZWQsIHdoYXQgb3RoZXIgS2NvbmZpZyBmaWxlcyBpdCBpbmNsdWRlcyAoaWYgYW55KSwgYW5kIHdoaWNoIG90aGVyIGtlcm5lbCBmZWF0dXJlcyB0aGUgRFJCRCBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVseSBvbiwgb3IgaW4gdHVybiwgbWlnaHQgaW5mbHVlbmNlLiBJdCBpcyBhbHdheXMgYSBnb29kIGlkZWEgdG8gY29uc2lkZXIgYWxsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgYW4gYXJlYSwgc28gSSdsbCBiZSBsb29raW5nIGZvciBgc2VsZWN0YCwgYGRlcGVuZHMgb25gLCBhbmQgYGRlZmF1bHRgIHN0YXRlbWVudHMgdGhhdCB3b3VsZCBjbHVlIG1lIGludG8gdGhlIGJ1aWxkIGRlcGVuZGVuY2llcywgYXMgd2VsbCBhcyBhbnkgY29uZGl0aW9uYWwgbG9naWMgd2hpY2ggY291bGQgcHJvdmlkZSBjbHVlcyBhcyB0byBidWlsZCBjb25mbGljdHMuIFRoaXMgaXMgYSBjcnVjaWFsIGZpcnN0IHN0ZXAgZm9yIHVuZGVyc3RhbmRpbmcgaG93IERSQkQgZml0cyBpbnRvIHRoZSBicm9hZGVyIGtlcm5lbCBlY29zeXN0ZW0sIHdoYXQgaXRzIHJlcXVpcmVtZW50cyBhcmUsIGFuZCBhbnkgcG90ZW50aWFsIGNvbmZsaWN0cyB0aGF0IG1heSBleGlzdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDQxMywiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDE4OjU3OjQ4LjQ1MjQ2OTAwMloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkwOTUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvYmxvY2svZHJiZC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHQjXFxuICAgMzpcXHQjIERSQkQgZGV2aWNlIGRyaXZlciBjb25maWd1cmF0aW9uXFxuICAgNDpcXHQjXFxuICAgNTpcXHRcXG4gICA2OlxcdGNvbW1lbnQgXFxcIkRSQkQgZGlzYWJsZWQgYmVjYXVzZSBQUk9DX0ZTIG9yIElORVQgbm90IHNlbGVjdGVkXFxcIlxcbiAgIDc6XFx0XFx0ZGVwZW5kcyBvbiBQUk9DX0ZTPSduJyB8fCBJTkVUPSduJ1xcbiAgIDg6XFx0XFxuICAgOTpcXHRjb25maWcgQkxLX0RFVl9EUkJEXFxuICAxMDpcXHRcXHR0cmlzdGF0ZSBcXFwiRFJCRCBEaXN0cmlidXRlZCBSZXBsaWNhdGVkIEJsb2NrIERldmljZSBzdXBwb3J0XFxcIlxcbiAgMTE6XFx0XFx0ZGVwZW5kcyBvbiBQUk9DX0ZTIFxcdTAwMjZcXHUwMDI2IElORVRcXG4gIDEyOlxcdFxcdHNlbGVjdCBMUlVfQ0FDSEVcXG4gIDEzOlxcdFxcdHNlbGVjdCBDUkMzMlxcbiAgMTQ6XFx0XFx0aGVscFxcbiAgMTU6XFx0XFxuICAxNjpcXHRcXHQgIE5PVEU6IEluIG9yZGVyIHRvIGF1dGhlbnRpY2F0ZSBjb25uZWN0aW9ucyB5b3UgaGF2ZSB0byBzZWxlY3RcXG4gIDE3OlxcdFxcdCAgQ1JZUFRPX0hNQUMgYW5kIGEgaGFzaCBmdW5jdGlvbiBhcyB3ZWxsLlxcbiAgMTg6XFx0XFxuICAxOTpcXHRcXHQgIERSQkQgaXMgYSBzaGFyZWQtbm90aGluZywgc3luY2hyb25vdXNseSByZXBsaWNhdGVkIGJsb2NrIGRldmljZS4gSXRcXG4gIDIwOlxcdFxcdCAgaXMgZGVzaWduZWQgdG8gc2VydmUgYXMgYSBidWlsZGluZyBibG9jayBmb3IgaGlnaCBhdmFpbGFiaWxpdHlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMTg6NTc6NDguNDUyNTYyNzkyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY2MjA0MDIxOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgTmV0bGluayBQb2xpY3kgTGVuZ3RocyBpbiB0aGUgRFJCRCBLZXJuZWwgTW9kdWxlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQgc2VlbXMgdG8gYmUgZGVhbGluZyB3aXRoIG1vZGlmaWNhdGlvbnMgdG8gbmV0bGluayBwb2xpY3kgbGVuZ3RocyB3aXRoaW4gdGhlIGBCTEtfREVWX0RSQkRgIGNvbmZpZ3VyYXRpb24uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byB0cmFjZSB0aGUgaW1wYWN0IG9mIHRoaXMgY2hhbmdlLiBJdCdzIGNydWNpYWwgdG8gdW5kZXJzdGFuZCB3aGljaCBmdW5jdGlvbnMgcmVseSBvbiB0aGVzZSBzcGVjaWZpYyBwb2xpY2llcy5cblxuTGV0J3Mgc2VlLCB0aGUgcmVsZXZhbnQgcG9saWNpZXMgYmVpbmcgYWx0ZXJlZCBhcmU6IGBkcmJkX2Rpc2Nvbm5lY3RfcGFybXNfbmxfcG9saWN5YCwgYGRyYmRfZGlza19jb25mX25sX3BvbGljeWAsIGBkcmJkX2RyYmRfY2ZnX2NvbnRleHRfbmxfcG9saWN5YCwgYGRyYmRfbmV0X2NvbmZfbmxfcG9saWN5YCwgYGRyYmRfcGVlcl9kZXZpY2Vfc3RhdGlzdGljc19ubF9wb2xpY3lgLCBhbmQgYGRyYmRfcmVzX29wdHNfbmxfcG9saWN5YC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZXNlIGFyZSBiZWluZyB1c2VkLCBiZWNhdXNlIGEgY2hhbmdlIGluIHRoZWlyIGxlbmd0aCBjb3VsZCBoYXZlIHJlcGVyY3Vzc2lvbnMgaW4gb3RoZXIgYXJlYXMuXG5cbkEgcXVpY2sgYGdyZXBgIHNob3VsZCByZXZlYWwgdGhlIGZ1bmN0aW9uIGNhbGxzIG9yIGNvZGUgc2VjdGlvbnMgd2hlcmUgdGhlc2UgcG9saWNpZXMgYXJlIHJlZmVyZW5jZWQuIEknbGwgbmVlZCB0byBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSBwYXJhbWV0ZXIgcGFyc2luZyBhbmQgZGF0YSB2YWxpZGF0aW9uIHdpdGhpbiB0aG9zZSBmdW5jdGlvbnMuIFRoaXMgc2hvdWxkIGlkZW50aWZ5IHRoZSBkb3duc3RyZWFtIGVmZmVjdHMgb2YgdGhpcyBwYXRjaC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDk2MSwiT3V0cHV0VG9rZW5zIjoyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDE4OjU3OjUyLjExNDYwNTc0WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMjIzNjA3NzgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZHJiZF9kaXNrX2NvbmZfbmxfcG9saWN5XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTQ5PWNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfZGlzY29ubmVjdF9wYXJtc19ubF9wb2xpY3lbRFJCRF9BX0RJU0NPTk5FQ1RfUEFSTVNfRk9SQ0VfRElTQ09OTkVDVCArIDFdID0ge1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTItXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTM6Y29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9kaXNrX2NvbmZfbmxfcG9saWN5W0RSQkRfQV9ESVNLX0NPTkZfRElTQUJMRV9XUklURV9TQU1FICsgMV0gPSB7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTQtXFx0W0RSQkRfQV9ESVNLX0NPTkZfQkFDS0lOR19ERVZdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gMTI4IC0gMSwgfSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTIyOD1zdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9hdHRhY2hfbmxfcG9saWN5W0RSQkRfTkxBX0RJU0tfQ09ORiArIDFdID0ge1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTIyOS1cXHRbRFJCRF9OTEFfQ0ZHX0NPTlRFWFRdID0gTkxBX1BPTElDWV9ORVNURUQoZHJiZF9kcmJkX2NmZ19jb250ZXh0X25sX3BvbGljeSksXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6MjMwOlxcdFtEUkJEX05MQV9ESVNLX0NPTkZdID0gTkxBX1BPTElDWV9ORVNURUQoZHJiZF9kaXNrX2NvbmZfbmxfcG9saWN5KSxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0yMzEtfTtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTMxND1zdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9jaGdfZGlza19vcHRzX25sX3BvbGljeVtEUkJEX05MQV9ESVNLX0NPTkYgKyAxXSA9IHtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zMTUtXFx0W0RSQkRfTkxBX0NGR19DT05URVhUXSA9IE5MQV9QT0xJQ1lfTkVTVEVEKGRyYmRfZHJiZF9jZmdfY29udGV4dF9ubF9wb2xpY3kpLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjMxNjpcXHRbRFJCRF9OTEFfRElTS19DT05GXSA9IE5MQV9QT0xJQ1lfTkVTVEVEKGRyYmRfZGlza19jb25mX25sX3BvbGljeSksXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzE3LX07XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz03MDM9c3RhdGljIGludCBfX2Rpc2tfY29uZl9mcm9tX2F0dHJzKHN0cnVjdCBkaXNrX2NvbmYgKnMsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy03MTktXFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NzIwOlxcdGVyciA9IG5sYV9wYXJzZV9uZXN0ZWRfZGVwcmVjYXRlZChudGIsIG1heHR5cGUsIHRsYSwgZHJiZF9kaXNrX2NvbmZfbmxfcG9saWN5LCBOVUxMKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy03MjEtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oPTE5PWV4dGVybiBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX2Rpc2Nvbm5lY3RfcGFybXNfbmxfcG9saWN5W0RSQkRfQV9ESVNDT05ORUNUX1BBUk1TX0ZPUkNFX0RJU0NPTk5FQ1QgKyAxXTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDoyMDpleHRlcm4gY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9kaXNrX2NvbmZfbmxfcG9saWN5W0RSQkRfQV9ESVNLX0NPTkZfRElTQUJMRV9XUklURV9TQU1FICsgMV07XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtMjEtZXh0ZXJuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfZHJiZF9jZmdfY29udGV4dF9ubF9wb2xpY3lbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX1BFRVJfQUREUiArIDFdO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQxODo1Nzo1NC4zMzY5NzA0MDhaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNzkwMTg0ODkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2Vzcywga2VlcGluZyBpbiBtaW5kIEknbSBzcGVha2luZyB0byBhIGZlbGxvdyBleHBlcnQ6XG5cbioqSW52ZXN0aWdhdGluZyBgZHJiZF9yZXNfb3B0c19ubF9wb2xpY3lgKipcblxuQWxyaWdodCwgdGltZSB0byBnZXQgdG8gd29yay4gRmlyc3QsIG15IGJyYWluIGp1bXBzIHJpZ2h0IHRvIHRoZSBpZGVhIG9mIHVzaW5nIGBncmVwYC4gSXQncyB0aGUgbW9zdCBkaXJlY3QgYW5kIGVmZmljaWVudCB3YXkgdG8gbG9jYXRlIGEgc3BlY2lmaWMgc3RyaW5nIGxpa2UgYGRyYmRfcmVzX29wdHNfbmxfcG9saWN5YCwgZXNwZWNpYWxseSB3aGVuIEknbSBkZWFsaW5nIHdpdGggY29uZmlndXJhdGlvbiBmaWxlcyBvciBzb3VyY2UgY29kZS4gSSBrbm93IGZyb20gZXhwZXJpZW5jZSB0aGF0IGBncmVwYCB3aWxsIHF1aWNrbHkgc2NhbiBhIGxhcmdlIGNvcnB1cyBvZiB0ZXh0IGFuZCBwaW5wb2ludCBleGFjdGx5IHdoZXJlIHRoaXMgcGFydGljdWxhciB2YXJpYWJsZSBvciBwb2xpY3kgaXMgYmVpbmcgdXNlZC4gVGhhdCdzIHRoZSBwZXJmZWN0IHN0YXJ0aW5nIHBvaW50IHRvIHVuZGVyc3RhbmQgaXRzIGNvbnRleHQuIExldCdzIHNlZSB3aGF0IHdlIGNhbiBkaWcgdXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYyODIsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQxODo1Nzo1Ny4xMjcxNTc5MjhaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzMDIyNzQyMzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZHJiZF9yZXNfb3B0c19ubF9wb2xpY3lcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM9MTM0PWNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfcGVlcl9kZXZpY2Vfc3RhdGlzdGljc19ubF9wb2xpY3lbRFJCRF9BX1BFRVJfREVWSUNFX1NUQVRJU1RJQ1NfUEVFUl9ERVZfRkxBR1MgKyAxXSA9IHtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTE0NC1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzoxNDU6Y29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9yZXNfb3B0c19ubF9wb2xpY3lbRFJCRF9BX1JFU19PUFRTX09OX05PX0RBVEEgKyAxXSA9IHtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0xNDYtXFx0W0RSQkRfQV9SRVNfT1BUU19DUFVfTUFTS10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBEUkJEX0NQVV9NQVNLX1NJWkUgLSAxLCB9LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM9MTk5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX25ld19yZXNvdXJjZV9ubF9wb2xpY3lbRFJCRF9OTEFfUkVTT1VSQ0VfT1BUUyArIDFdID0ge1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTIwMC1cXHRbRFJCRF9OTEFfQ0ZHX0NPTlRFWFRdID0gTkxBX1BPTElDWV9ORVNURUQoZHJiZF9kcmJkX2NmZ19jb250ZXh0X25sX3BvbGljeSksXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6MjAxOlxcdFtEUkJEX05MQV9SRVNPVVJDRV9PUFRTXSA9IE5MQV9QT0xJQ1lfTkVTVEVEKGRyYmRfcmVzX29wdHNfbmxfcG9saWN5KSxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0yMDItfTtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTIxMD1zdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9yZXNvdXJjZV9vcHRzX25sX3BvbGljeVtEUkJEX05MQV9SRVNPVVJDRV9PUFRTICsgMV0gPSB7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMjExLVxcdFtEUkJEX05MQV9DRkdfQ09OVEVYVF0gPSBOTEFfUE9MSUNZX05FU1RFRChkcmJkX2RyYmRfY2ZnX2NvbnRleHRfbmxfcG9saWN5KSxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzoyMTI6XFx0W0RSQkRfTkxBX1JFU09VUkNFX09QVFNdID0gTkxBX1BPTElDWV9ORVNURUQoZHJiZF9yZXNfb3B0c19ubF9wb2xpY3kpLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTIxMy19O1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM9ODYwPXN0YXRpYyBpbnQgX19yZXNfb3B0c19mcm9tX2F0dHJzKHN0cnVjdCByZXNfb3B0cyAqcyxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTg3Ni1cXHRcXHRyZXR1cm4gLUVOT01FTTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo4Nzc6XFx0ZXJyID0gbmxhX3BhcnNlX25lc3RlZF9kZXByZWNhdGVkKG50YiwgbWF4dHlwZSwgdGxhLCBkcmJkX3Jlc19vcHRzX25sX3BvbGljeSwgTlVMTCk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtODc4LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaD0yNT1leHRlcm4gY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9wZWVyX2RldmljZV9zdGF0aXN0aWNzX25sX3BvbGljeVtEUkJEX0FfUEVFUl9ERVZJQ0VfU1RBVElTVElDU19QRUVSX0RFVl9GTEFHUyArIDFdO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjI2OmV4dGVybiBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX3Jlc19vcHRzX25sX3BvbGljeVtEUkJEX0FfUkVTX09QVFNfT05fTk9fREFUQSArIDFdO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oLTI3LWV4dGVybiBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX3Jlc2l6ZV9wYXJtc19ubF9wb2xpY3lbRFJCRF9BX1JFU0laRV9QQVJNU19BTF9TVFJJUEVfU0laRSArIDFdO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQxODo1Nzo1OS40Mjk0Mzg5NjVaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzkzNzQyMTYxMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIG15IGV4cGVydCBwZXJzcGVjdGl2ZTpcblxuKipEaXZpbmcgaW50byB0aGUgTmV0bGluayBQb2xpY3kgUGF0Y2gqKlxuXG5SaWdodCwgc28gdGhpcyBwYXRjaCBpcyBjbGVhcmx5IG1lc3Npbmcgd2l0aCBuZXRsaW5rIHBvbGljaWVzLiBUaGF0IG1lYW5zIHdlJ3JlIGRlYWxpbmcgd2l0aCB0aGUgZnJhbWV3b3JrIGZvciBwYXJzaW5nIG5ldGxpbmsgbWVzc2FnZXMsIHdoaWNoIGlzIGFsd2F5cyBhIGNyaXRpY2FsIGFyZWEuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaWd1cmUgb3V0IHRoZSBzY29wZSBvZiB0aGVzZSBjaGFuZ2VzLiBJIHNlZSBmdW5jdGlvbnMgbGlrZSBgX19kaXNrX2NvbmZfZnJvbV9hdHRyc2AsIGBfX3Jlc19vcHRzX2Zyb21fYXR0cnNgLCBhbmQgYF9fbmV0X2NvbmZfZnJvbV9hdHRyc2AgbWVudGlvbmVkLiBUaGV5J3JlIGVpdGhlciBnZW5lcmF0ZWQgb3IgaGFuZC1jb2RlZCB0byBzcGVjaWZpY2FsbHkgcGFyc2UgYXR0cmlidXRlcyB3aXRoaW4gdGhvc2UgbmV0bGluayBtZXNzYWdlcywgYW5kIEkgbmVlZCB0byBzZWUgaWYgdGhlIHBhdGNoIGlzIGNoYW5naW5nIGV4aXN0aW5nIHBvbGljaWVzLCBhZGRpbmcgbmV3IG9uZXMsIG9yIGJvdGguIFRoZXNlIFwiZnJvbV9hdHRyc1wiIGZ1bmN0aW9ucyBhcmUgdXN1YWxseSBwcmV0dHkgY3J1Y2lhbCBmb3IgYW55IG5ldGxpbmsgc3Vic3lzdGVtLlxuXG5UaGUga2V5IG5vdyBpcyB0byB0cmFjZSB0aGUgaW1wYWN0LiBMZXQncyBzdGFydCB3aXRoIGBfX3Jlc19vcHRzX2Zyb21fYXR0cnNgIGFuZCBzZWUgd2hlcmUgaXQncyBhY3R1YWxseSBiZWluZyAqdXNlZCouIFVuZGVyc3RhbmRpbmcgdGhlIGNhbGwgc2l0ZXMgd2lsbCBpbW1lZGlhdGVseSBoaWdobGlnaHQgdGhlIHN1YnN5c3RlbXMgb3IgZmVhdHVyZXMgdGhpcyBwYXRjaCB0b3VjaGVzLCBhbmQgZnJvbSB0aGVyZSBJIGNhbiBhc3Nlc3MgdGhlIHBvdGVudGlhbCByaXBwbGUgZWZmZWN0cyBhbmQgZGV0ZXJtaW5lIHRoZSByaXNrIGludm9sdmVkIHdpdGggdGhpcyBwYXRjaC4gVGhpcyBpcyBnb2luZyB0byBiZSBteSBpbW1lZGlhdGUgbmV4dCBzdGVwOyBnZXQgdGhlIHVzZS1jYXNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3NDE5LCJPdXRwdXRUb2tlbnMiOjIyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMTg6NTg6MDMuMzY2ODYzNzE4WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzEwNzI2MDQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9fcmVzX29wdHNfZnJvbV9hdHRyc1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz04NTM9aW50IGRpc2tfY29uZl9udGJfZnJvbV9hdHRycyhcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTg1OS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo4NjA6c3RhdGljIGludCBfX3Jlc19vcHRzX2Zyb21fYXR0cnMoc3RydWN0IHJlc19vcHRzICpzLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTg2MS1cXHRcXHRzdHJ1Y3QgbmxhdHRyICoqKnJldF9uZXN0ZWRfYXR0cmlidXRlX3RhYmxlLFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM9ODk3PWludCByZXNfb3B0c19mcm9tX2F0dHJzKHN0cnVjdCByZXNfb3B0cyAqcyxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTg5OS17XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6OTAwOlxcdHJldHVybiBfX3Jlc19vcHRzX2Zyb21fYXR0cnMocywgTlVMTCwgaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtOTAxLX1cXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTkwMz1pbnQgcmVzX29wdHNfbnRiX2Zyb21fYXR0cnMoXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy05MDYte1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjkwNzpcXHRyZXR1cm4gX19yZXNfb3B0c19mcm9tX2F0dHJzKE5VTEwsIHJldF9uZXN0ZWRfYXR0cmlidXRlX3RhYmxlLCBpbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy05MDgtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQxODo1ODowNS42Nzc1OTc3NjVaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjgwMjE1NDY0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgbXlzZWxmOlxuXG4qKlRyYWNpbmcgdGhlIFVzYWdlIG9mIGByZXNfb3B0c19mcm9tX2F0dHJzYCoqXG5cbk9rYXksIHNvIEknbSB0cnlpbmcgdG8gdW5kZXJzdGFuZCBob3cgYHJlc19vcHRzX2Zyb21fYXR0cnNgIGlzIHV0aWxpemVkIHdpdGhpbiB0aGlzIGNvZGUuIFRoZSBpbW1lZGlhdGUgcXVlc3Rpb24gYnV6emluZyBpbiBteSBtaW5kIGlzOiAqd2hlcmUqIGV4YWN0bHkgZG9lcyB0aGlzIGZ1bmN0aW9uIGdldCBjYWxsZWQ/IEkgbmVlZCB0byB0cmFjayBkb3duIGFsbCBpbnN0YW5jZXMgb2YgaXRzIHVzZSB0byBncmFzcCBpdHMgcm9sZSBpbiB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUuIEkga25vdyB0aGlzIHNlZW1zIGVsZW1lbnRhcnkgdG8gYW4gZXhwZXJ0LCBidXQgaXQncyB0aGUgZnVuZGFtZW50YWwgZmlyc3Qgc3RlcC4gVW5kZXJzdGFuZGluZyB1c2FnZSBwYXR0ZXJucyBvZnRlbiB1bmNvdmVycyBzdWJ0bGUgZGVwZW5kZW5jaWVzIG9yIGFzc3VtcHRpb25zLiBMZXQncyBzZWUgaG93IGFuZCB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGVtcGxveWVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MTYzLCJPdXRwdXRUb2tlbnMiOjIxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMTg6NTg6MDguNDc5NzU1OTU1WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNjQxODI2MzYyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJlc19vcHRzX2Zyb21fYXR0cnNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz0yOTkzPWludCBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMDA5LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MzAxMDpcXHRlcnIgPSByZXNfb3B0c19mcm9tX2F0dHJzKFxcdTAwMjZyZXNfb3B0cywgaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMDExLVxcdGlmIChlcnIgXFx1MDAyNlxcdTAwMjYgZXJyICE9IC1FTk9NU0cpIHtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDMyOT1pbnQgZHJiZF9ubF9uZXdfcmVzb3VyY2VfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MzQzLVxcdHNldF9yZXNfb3B0c19kZWZhdWx0cyhcXHUwMDI2cmVzX29wdHMpO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDM0NDpcXHRlcnIgPSByZXNfb3B0c19mcm9tX2F0dHJzKFxcdTAwMjZyZXNfb3B0cywgaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MzQ1LVxcdGlmIChlcnIgXFx1MDAyNlxcdTAwMjYgZXJyICE9IC1FTk9NU0cpIHtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTg1Mz1pbnQgZGlza19jb25mX250Yl9mcm9tX2F0dHJzKFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtODU5LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjg2MDpzdGF0aWMgaW50IF9fcmVzX29wdHNfZnJvbV9hdHRycyhzdHJ1Y3QgcmVzX29wdHMgKnMsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtODYxLVxcdFxcdHN0cnVjdCBubGF0dHIgKioqcmV0X25lc3RlZF9hdHRyaWJ1dGVfdGFibGUsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy04OTYtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6ODk3OmludCByZXNfb3B0c19mcm9tX2F0dHJzKHN0cnVjdCByZXNfb3B0cyAqcyxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy04OTgtXFx0XFx0XFx0XFx0c3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy04OTkte1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjkwMDpcXHRyZXR1cm4gX19yZXNfb3B0c19mcm9tX2F0dHJzKHMsIE5VTEwsIGluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTkwMS19XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz05MDM9aW50IHJlc19vcHRzX250Yl9mcm9tX2F0dHJzKFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtOTA2LXtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo5MDc6XFx0cmV0dXJuIF9fcmVzX29wdHNfZnJvbV9hdHRycyhOVUxMLCByZXRfbmVzdGVkX2F0dHJpYnV0ZV90YWJsZSwgaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtOTA4LX1cXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oPTMxOD12b2lkIHNldF9kaXNrX2NvbmZfZGVmYXVsdHMoc3RydWN0IGRpc2tfY29uZiAqeCk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtMzE5LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjMyMDppbnQgcmVzX29wdHNfZnJvbV9hdHRycyhzdHJ1Y3QgcmVzX29wdHMgKnMsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oLTMyMS1pbnQgcmVzX29wdHNfbnRiX2Zyb21fYXR0cnMoc3RydWN0IG5sYXR0ciAqKipyZXRfbmVzdGVkX2F0dHJpYnV0ZV90YWJsZSwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDE4OjU4OjExLjEyMTU4NzA5N1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjM4OTcxMzgzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhlc2UgRFJCRCBuZXRsaW5rIGNvbW1hbmRzLiBJJ20gc2VlaW5nIGEgcGF0dGVybiBoZXJlOiBgZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXRgLCBgZHJiZF9ubF9uZXdfcmVzb3VyY2VfZG9pdGAsIGBkcmJkX25sX2Rpc2tfY29uZl9kb2l0YCwgYW5kIHNvIG9uLiBQcmV0dHkgc3RhbmRhcmQgbmV0bGluayBuYW1pbmcgY29udmVudGlvbiwgcmVhbGx5LiBOb3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSB1bmRlcmx5aW5nIHN0cnVjdHVyZSwgc28gdGhlIGZpcnN0IHRoaW5nIEknbGwgZG8gaXMgemVybyBpbiBvbiB0aGUgbmV0bGluayBvcGVyYXRpb25zIHN0cnVjdHVyZSBpdHNlbGYuIFRpbWUgdG8gbG9jYXRlIHRoYXQuIEl0IGhvbGRzIHRoZSBrZXkgdG8gaG93IHRoZXNlIGNvbW1hbmRzIGFyZSBkZWZpbmVkIGFuZCBoYW5kbGVkLiBGaW5kaW5nIHRoYXQgc3RydWN0dXJlIHdpbGwgYmUgdGhlIGxhdW5jaHBhZCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgZW50aXJlIG5ldGxpbmsgY29tbWFuZCBmcmFtZXdvcmsgaW4gdGhpcyBjb250ZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo5MjI2LCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMTg6NTg6MTQuMzYwNTYyOTJaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxNzA0OTQ0MjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz0yODU3PWludCBkcmJkX25sX3Jlc2l6ZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI5OTItXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoyOTkzOmludCBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjk5NC17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz0zNTk9Y29uc3Qgc3RydWN0IGdlbmxfc3BsaXRfb3BzIGRyYmRfbmxfb3BzWzMyXSA9IHtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQxNC1cXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDE1OlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MTYtXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaD01MD1pbnQgZHJiZF9ubF9kZWxfcmVzb3VyY2VfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo1MTppbnQgZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtNTItaW50IGRyYmRfbmxfY29ubmVjdF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQxODo1ODoxNi41MzEwNjI3MTlaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjY4NzY4MzM3NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBEUkJEIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0d2Vha2luZyBgRFJCRF9DUFVfTUFTS19TSVpFYCBmcm9tIDMyIHRvIDI1Ni4gVGhhdCdzIGEgc3RyYWlnaHRmb3J3YXJkIGNoYW5nZSwgcG90ZW50aWFsbHkgaW1wYWN0aW5nIHBlcmZvcm1hbmNlIG9yIHJlc291cmNlIHVzYWdlIGlmIG5vdCBvcHRpbWl6ZWQsIGJ1dCB0aGUgbW9yZSBpbnRlcmVzdGluZyBwYXJ0IGlzIHRoZSBgTkxBX05VTF9TVFJJTkdgIGZpeC4gTGV0IG1lIHNlZS4uLiB0aGV5J3ZlIGNvcnJlY3RlZCBhIGJ1ZyByZWxhdGVkIHRvIHRoZSBsZW5ndGggY2FsY3VsYXRpb24sIHNwZWNpZmljYWxseSBob3cgdGhlIE5VTCB0ZXJtaW5hdG9yIGlzIGhhbmRsZWQgd2l0aGluIE5ldGxpbmsgYXR0cmlidXRlIGxlbmd0aCBjaGVja3MuIEhhbmcgb24sIHdhc24ndCB0aGVyZSBzb21ldGhpbmcgYWJvdXQgYE5MQV9OVUxfU1RSSU5HYCBhbmQgdGhlIGAubGVuYCBtZW1iZXIgaW4gYG5sYV9wb2xpY3lgPyBEb2VzIHRoYXQgaW5kZWVkIHJlcHJlc2VudCB0aGUgbWF4aW11bSBzdHJpbmcgbGVuZ3RoICp3aXRob3V0KiB0aGUgTlVMIGJ5dGUsIGFzIGluLCB0aGUgcGF5bG9hZCBzaXplPyBSaWdodCwgSSBuZWVkIHRvIGRvdWJsZS1jaGVjayB0aGUgYG5sYV9wb2xpY3lgIGRlZmluaXRpb24gZm9yIGBOTEFfTlVMX1NUUklOR2AganVzdCB0byBiZSBjZXJ0YWluLiBJdCdzIGxpa2VseSB0aGUgY29tbWl0IG1lc3NhZ2UgcmVmZXJlbmNlcyB0aGlzIFwibWF4bGVuIC0gMVwiIGNvbmNlcHQsIEknZCBiZXQuXG5cblJlZ2FyZGxlc3MsIHRoaXMgYWZmZWN0cyBuZXRsaW5rIG1lc3NhZ2UgdmFsaWRhdGlvbiwgd2hpY2ggbWVhbnMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUga2VybmVsJ3MgbmV0bGluayBBUEkgZm9yIERSQkQuIFRoYXQncyBhIHJlZCBmbGFnLiBUaGlzIG5lZWRzIHRvIGJlIGZ1enplZCwgZ2l2ZW4gdGhhdCBpdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBibG9jayBkcml2ZXIgYW5kIERSQkQsIG9mIGNvdXJzZSwgaXMgdGhlIGRyaXZlciBpbiBxdWVzdGlvbi4gV2UnbGwgbmVlZCBgQkxLX0RFVl9EUkJEYCBlbmFibGVkIGZvciB0ZXN0aW5nLiBBbmQgb2YgY291cnNlLCBEUkJEIGRlcGVuZHMgb24gYm90aCBgUFJPQ19GU2AgYW5kIGBJTkVUYC4gSSB3b25kZXIgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcyBpbiBwbGF5IGhlcmUuIExldCdzIHNlZS4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo5OTA2LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjk2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDE4OjU4OjIzLjIxODc0OTE5M1oiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQyNTc1ODE1NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uIEJMS19ERVZfRFJCRFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2Jsb2NrL2RyYmQvS2NvbmZpZz00Mj1jb25maWcgRFJCRF9GQVVMVF9JTkpFQ1RJT05cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvS2NvbmZpZy00My1cXHRib29sIFxcXCJEUkJEIGZhdWx0IGluamVjdGlvblxcXCJcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvS2NvbmZpZzo0NDpcXHRkZXBlbmRzIG9uIEJMS19ERVZfRFJCRFxcbmRyaXZlcnMvYmxvY2svZHJiZC9LY29uZmlnLTQ1LVxcdGhlbHBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMTg6NTg6MjUuNjQ0NTE5OTQ4WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3Mzk1MDM1OTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIERSQkQgQ29uZmlndXJhdGlvbiBDaGFuZ2VzKipcblxuT2theSwgc28gSSBzZWUgYEJMS19ERVZfRFJCRGAgYXMgdGhlIGNlbnRyYWwgY29uZmlndXJhdGlvbiBwb2ludCBoZXJlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gemVybyBpbiBvbiB0aGF0LiBMZXQncyBzZWUsIHdoYXQgZWxzZSBpcyBzaWduaWZpY2FudD8gQWgsIGl0J3Mgbm90IGZ1bmN0aW9ucyB0aGF0IHdlcmUgbW9kaWZpZWQgZGlyZWN0bHksIGJ1dCByYXRoZXIgdGhlc2UgZGF0YSBzdHJ1Y3R1cmVzIGxpa2UgYGRyYmRfZGlza19jb25mX25sX3BvbGljeWAsIGBkcmJkX25ldF9jb25mX25sX3BvbGljeWAsIGV0Yy4gVGhpcyBtZWFucyB0aGUgY29yZSBjb25maWcgKnBvbGljaWVzKiBhcmUgd2hhdCdzIGdldHRpbmcgYWRqdXN0ZWQuIFRoZSBmdW5jdGlvbnMgdGhhdCBhcmUgKnVzaW5nKiB0aG9zZSBwb2xpY2llcyBhcmUgdGhlIGludGVyZXN0aW5nIGJpdHMuIEkgc2VlIGBfX2Rpc2tfY29uZl9mcm9tX2F0dHJzYCwgYF9fcmVzX29wdHNfZnJvbV9hdHRyc2AsIGV0Yy4gVGhvc2UgYXJlIGtleSwgYXMgdGhleSdyZSB0aGUgY29uc3VtZXJzLiBOb3csIGxldCdzIGxvb2sgYXQgdGhlIG5ldGxpbmsgaGFuZGxlcnMuLi4gdGhlc2Ugd2lsbCBsaWtlbHkgYmUgd2hlcmUgdGhlIG1hZ2ljIGhhcHBlbnMsIGFuZCB0aGUgY29uZmlnIGlzIGFjdHVhbGx5IGFwcGxpZWQgb3IgbW9kaWZpZWQuIEkndmUgZ290IGEgbGlzdCBoZXJlOiBgZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXRgLCBgZHJiZF9ubF9uZXdfcmVzb3VyY2VfZG9pdGAsIGBkcmJkX25sX2Rpc2tfY29uZl9kb2l0YCwgYGRyYmRfbmxfbmV0X2NvbmZfZG9pdGAsIGBkcmJkX25sX2Rpc2Nvbm5lY3RfZG9pdGAsIGBkcmJkX25sX2F0dGFjaF9kb2l0YCwgYW5kIGBkcmJkX25sX2Nvbm5lY3RfZG9pdGAuIFRob3NlIG5ldGxpbmsgaGFuZGxlcnMgYXJlIGRlZmluaXRlbHkgZ29pbmcgdG8gYmUgbXkgRm9jdXNTeW1ib2xzIGZvciBmdXJ0aGVyIGV4YW1pbmF0aW9uLiBUaGF0J3Mgd2hlcmUgdGhlIHJlYWwgbG9naWMgaXMgYmVpbmcgaW52b2tlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTA2NTIsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxODgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMTg6NTg6MzAuMzg0MDI3NDcxWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTc2NDc1OTgzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRyYmRfbmxfLipfZG9pdFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTc5OT1zdGF0aWMgaW50IGRyYmRfbmxfc2V0X3JvbGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtODM4LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6ODM5OmludCBkcmJkX25sX3ByaW1hcnlfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtODQwLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtODQzLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6ODQ0OmludCBkcmJkX25sX3NlY29uZGFyeV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy04NDUte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz05MTM9Y2hhciAqcHBzaXplKGNoYXIgKmJ1ZiwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUpXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTk0Mi0vKiBOb3RlIHRoZXNlIGFyZSBub3QgdG8gYmUgY29uZnVzZWQgd2l0aFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6OTQzOiAqIGRyYmRfbmxfc3VzcGVuZF9pb19kb2l0L2RyYmRfbmxfcmVzdW1lX2lvX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy05NDQtICogd2hpY2ggYXJlIChzdWIpIHN0YXRlIGNoYW5nZXMgdHJpZ2dlcmVkIGJ5IGFkbWluIChkcmJkc2V0dXApLFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz0xNTMxPXN0YXRpYyBpbnQgZGlza19vcHRzX2NoZWNrX2FsX3NpemUoc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UsIHN0cnVjdCBkaXNrX2NvbmYgKmRjKVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0xNTU0LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MTU1NTppbnQgZHJiZF9ubF9jaGdfZGlza19vcHRzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTE1NTYte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz0xNzgxPXZvaWQgZHJiZF9iYWNraW5nX2Rldl9mcmVlKHN0cnVjdCBkcmJkX2RldmljZSAqZGV2aWNlLCBzdHJ1Y3QgZHJiZF9iYWNraW5nX2RldiAqbGRldilcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMTc5My1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjE3OTQ6aW50IGRyYmRfbmxfYXR0YWNoX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTE3OTUte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz0yMjE4PXN0YXRpYyBpbnQgYWRtX2RldGFjaChzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSwgaW50IGZvcmNlKVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yMjMzLSAqIE9ubHkgdGhlbiB3ZSBoYXZlIGZpbmFsbHkgZGV0YWNoZWQuICovXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoyMjM0OmludCBkcmJkX25sX2RldGFjaF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yMjM1LXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MjQyND1zdGF0aWMgdm9pZCBmcmVlX2NyeXB0byhzdHJ1Y3QgY3J5cHRvICpjcnlwdG8pXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI0MzEtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoyNDMyOmludCBkcmJkX25sX2NoZ19uZXRfb3B0c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yNDMzLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MjU3ND1zdGF0aWMgdm9pZCBwZWVyX2RldmljZV90b19pbmZvKHN0cnVjdCBwZWVyX2RldmljZV9pbmZvICppbmZvLFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yNTg2LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MjU4NzppbnQgZHJiZF9ubF9jb25uZWN0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI1ODgte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz0yNzM2PXN0YXRpYyBlbnVtIGRyYmRfc3RhdGVfcnYgY29ubl90cnlfZGlzY29ubmVjdChzdHJ1Y3QgZHJiZF9jb25uZWN0aW9uICpjb25uZWN0aW9uLCBib29sIGZvcmNlKVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yODAxLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MjgwMjppbnQgZHJiZF9ubF9kaXNjb25uZWN0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI4MDMte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz0yODQxPXZvaWQgcmVzeW5jX2FmdGVyX29ubGluZV9ncm93KHN0cnVjdCBkcmJkX2RldmljZSAqZGV2aWNlKVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yODU2LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6Mjg1NzppbnQgZHJiZF9ubF9yZXNpemVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjg1OC17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI5OTItXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoyOTkzOmludCBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjk5NC17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMwMzAtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMDMxOmludCBkcmJkX25sX2ludmFsaWRhdGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzAzMi17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTMwOTk9c3RhdGljIGludCBkcmJkX2JtaW9fc2V0X3N1c3BfYWwoc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMxMDgtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMTA5OmludCBkcmJkX25sX2ludmFsX3BlZXJfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzExMC17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMxNTktXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMTYwOmludCBkcmJkX25sX3BhdXNlX3N5bmNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzE2MS17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMxNzktXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMTgwOmludCBkcmJkX25sX3Jlc3VtZV9zeW5jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMxODEte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjA3LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MzIwODppbnQgZHJiZF9ubF9zdXNwZW5kX2lvX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMyMDkte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjEyLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MzIxMzppbnQgZHJiZF9ubF9yZXN1bWVfaW9fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzIxNC17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMyNjgtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMjY5OmludCBkcmJkX25sX291dGRhdGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzI3MC17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTM4MDE9c3RhdGljIGludCBubGFfcHV0X3N0YXR1c19pbmZvKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBkcmJkX2RldmljZSAqZGV2aWNlLFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zODEzLVxcdCAqXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozODE0OlxcdCAqIElmIHNpYiA9PSBOVUxMLCB0aGlzIGlzIGRyYmRfbmxfZ2V0X3N0YXR1c19kb2l0LCBleGVjdXRlZCBzeW5jaHJvbm91c2x5XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zODE1LVxcdCAqIGluIHRoZSBjb250ZXh0IG9mIHRoZSByZXF1ZXN0aW5nIHVzZXIgcHJvY2Vzcy4gRXhjbHVkZSBzZW5zaXRpdmVcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzk1MC1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjM5NTE6aW50IGRyYmRfbmxfZ2V0X3N0YXR1c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zOTUyLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDEwMz1pbnQgZHJiZF9ubF9nZXRfc3RhdHVzX2R1bXBpdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQxNTAtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0MTUxOmludCBkcmJkX25sX2dldF90aW1lb3V0X3R5cGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDE1Mi17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQxNzktXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0MTgwOmludCBkcmJkX25sX3N0YXJ0X292X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQxODEte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MjI1LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDIyNjppbnQgZHJiZF9ubF9uZXdfY191dWlkX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQyMjcte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz00MzIwPXN0YXRpYyB2b2lkIHJlc291cmNlX3RvX2luZm8oc3RydWN0IHJlc291cmNlX2luZm8gKmluZm8sXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQzMjgtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0MzI5OmludCBkcmJkX25sX25ld19yZXNvdXJjZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MzMwLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDM4NT1zdGF0aWMgdm9pZCBkZXZpY2VfdG9faW5mbyhzdHJ1Y3QgZGV2aWNlX2luZm8gKmluZm8sXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQzOTEtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0MzkyOmludCBkcmJkX25sX25ld19taW5vcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MzkzLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDQ2Mj1zdGF0aWMgZW51bSBkcmJkX3JldF9jb2RlIGFkbV9kZWxfbWlub3Ioc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UpXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQ0OTgtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0NDk5OmludCBkcmJkX25sX2RlbF9taW5vcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00NTAwLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDUxOD1zdGF0aWMgaW50IGFkbV9kZWxfcmVzb3VyY2Uoc3RydWN0IGRyYmRfcmVzb3VyY2UgKnJlc291cmNlKVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00NTQ3LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDU0ODppbnQgZHJiZF9ubF9kb3duX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQ1NDkte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00NjEwLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDYxMTppbnQgZHJiZF9ubF9kZWxfcmVzb3VyY2VfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDYxMi17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz0zNTk9Y29uc3Qgc3RydWN0IGdlbmxfc3BsaXRfb3BzIGRyYmRfbmxfb3BzWzMyXSA9IHtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTM2Mi1cXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6MzYzOlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2dldF9zdGF0dXNfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zNjQtXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zNzgtXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM3OTpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9uZXdfbWlub3JfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zODAtXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zODctXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM4ODpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9kZWxfbWlub3JfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zODktXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zOTYtXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM5NzpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9uZXdfcmVzb3VyY2VfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zOTgtXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MDUtXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQwNjpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9kZWxfcmVzb3VyY2VfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MDctXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MTQtXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQxNTpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDE2LVxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDIzLVxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MjQ6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfY29ubmVjdF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQyNS1cXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQzMi1cXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDMzOlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2Rpc2Nvbm5lY3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MzQtXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NDEtXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ0MjpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9hdHRhY2hfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NDMtXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NTAtXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ1MTpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9yZXNpemVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NTItXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NTktXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ2MDpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9wcmltYXJ5X2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDYxLVxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDY4LVxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0Njk6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfc2Vjb25kYXJ5X2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDcwLVxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDc3LVxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0Nzg6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfbmV3X2NfdXVpZF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ3OS1cXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ4Ni1cXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDg3OlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX3N0YXJ0X292X2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDg4LVxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDk1LVxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0OTY6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfZGV0YWNoX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDk3LVxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTA0LVxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1MDU6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfaW52YWxpZGF0ZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUwNi1cXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUxMy1cXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTE0OlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2ludmFsX3BlZXJfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MTUtXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MjItXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUyMzpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9wYXVzZV9zeW5jX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTI0LVxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTMxLVxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1MzI6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfcmVzdW1lX3N5bmNfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MzMtXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NDAtXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU0MTpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9zdXNwZW5kX2lvX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTQyLVxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTQ5LVxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1NTA6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfcmVzdW1lX2lvX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTUxLVxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTU4LVxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1NTk6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfb3V0ZGF0ZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU2MC1cXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU2Ny1cXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTY4OlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2dldF90aW1lb3V0X3R5cGVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NjktXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NzYtXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU3NzpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9kb3duX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTc4LVxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTg1LVxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1ODY6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU4Ny1cXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU5NC1cXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTk1OlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2NoZ19uZXRfb3B0c19kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU5Ni1cXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oPTQzPWludCBkcmJkX2FkbV9kdW1wX3BlZXJfZGV2aWNlc19kb25lKHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYik7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtNDQtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NDU6aW50IGRyYmRfbmxfZ2V0X3N0YXR1c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oLTQ2LWludCBkcmJkX25sX2dldF9zdGF0dXNfZHVtcGl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYik7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NDc6aW50IGRyYmRfbmxfbmV3X21pbm9yX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NDg6aW50IGRyYmRfbmxfZGVsX21pbm9yX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NDk6aW50IGRyYmRfbmxfbmV3X3Jlc291cmNlX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTA6aW50IGRyYmRfbmxfZGVsX3Jlc291cmNlX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTE6aW50IGRyYmRfbmxfcmVzb3VyY2Vfb3B0c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjUyOmludCBkcmJkX25sX2Nvbm5lY3RfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo1MzppbnQgZHJiZF9ubF9kaXNjb25uZWN0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTQ6aW50IGRyYmRfbmxfYXR0YWNoX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTU6aW50IGRyYmRfbmxfcmVzaXplX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTY6aW50IGRyYmRfbmxfcHJpbWFyeV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjU3OmludCBkcmJkX25sX3NlY29uZGFyeV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjU4OmludCBkcmJkX25sX25ld19jX3V1aWRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo1OTppbnQgZHJiZF9ubF9zdGFydF9vdl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjYwOmludCBkcmJkX25sX2RldGFjaF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjYxOmludCBkcmJkX25sX2ludmFsaWRhdGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo2MjppbnQgZHJiZF9ubF9pbnZhbF9wZWVyX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NjM6aW50IGRyYmRfbmxfcGF1c2Vfc3luY19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY0OmludCBkcmJkX25sX3Jlc3VtZV9zeW5jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NjU6aW50IGRyYmRfbmxfc3VzcGVuZF9pb19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY2OmludCBkcmJkX25sX3Jlc3VtZV9pb19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY3OmludCBkcmJkX25sX291dGRhdGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo2ODppbnQgZHJiZF9ubF9nZXRfdGltZW91dF90eXBlX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6Njk6aW50IGRyYmRfbmxfZG93bl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjcwOmludCBkcmJkX25sX2NoZ19kaXNrX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo3MTppbnQgZHJiZF9ubF9jaGdfbmV0X29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaC03Mi1pbnQgZHJiZF9ubF9nZXRfcmVzb3VyY2VzX2R1bXBpdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQxODo1ODozMi45NjA1NjU5NzRaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjczOTY4ODU4MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgRFJCRCBOZXRsaW5rIFBvbGljeSBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdHdlYWtpbmcgdGhlIG5ldGxpbmsgcG9saWN5IGxlbmd0aHMsIHNwZWNpZmljYWxseSBmb3IgYE5MQV9OVUxfU1RSSU5HYCBhdHRyaWJ1dGVzIHdpdGhpbiB0aGUgRFJCRCBkcml2ZXIuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGl0J3MgZml4aW5nIGEgYnVnIOKAkyBzb21ldGhpbmcgYWJvdXQgdGhlIGxlbmd0aCBjYWxjdWxhdGlvbiBwcmV2aW91c2x5IGluY2x1ZGluZyB0aGUgTlVMIGJ5dGUsIHdoaWNoIGlzIGluY29ycmVjdC4gSXQgYWxzbyBsb29rcyBsaWtlIHRoZSBwYXRjaCBpcyBpbmNyZWFzaW5nIHRoZSBtYXhpbXVtIENQVSBtYXNrIHNpemUsIHdoaWNoIGlzIGEgZ29vZCB0aGluZyB0byBlbnN1cmUgdGhlcmUgaXNuJ3QgYSBoYXJkIGxpbWl0LiBUaGlzIGlzIGRlZmluaXRlbHkgZ29pbmcgdG8gaW1wYWN0IGhvdyB0aGUgZHJpdmVyIHZhbGlkYXRlcyBhbmQgcGFyc2VzIHRob3NlIGluY29taW5nIG5ldGxpbmsgbWVzc2FnZXMuXG5cbk5vdywgbGV0J3MgYnJlYWsgZG93biB0aGUgaW1wbGljYXRpb25zLiBUaGUgYWZmZWN0ZWQgZnVuY3Rpb25zIGFyZSB0aGUgb25lcyBwYXJzaW5nIHRoZXNlIGF0dHJpYnV0ZXM6IGBfX2Rpc2tfY29uZl9mcm9tX2F0dHJzYCwgYF9fcmVzX29wdHNfZnJvbV9hdHRyc2AsIGBfX25ldF9jb25mX2Zyb21fYXR0cnNgLCBhbmQgc28gb24uIFRoZXNlIGFyZSBhbGwgY2FsbGVkIGZyb20gdmFyaW91cyBgZG9pdGAgZnVuY3Rpb25zIGludm9sdmVkIGluIHJlc291cmNlIG9wZXJhdGlvbnM6IGBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdGAsIGBkcmJkX25sX25ld19yZXNvdXJjZV9kb2l0YCwgYGRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0YCwgYGRyYmRfbmxfYXR0YWNoX2RvaXRgLCBgZHJiZF9ubF9jaGdfbmV0X29wdHNfZG9pdGAsIGFuZCBgZHJiZF9ubF9jb25uZWN0X2RvaXRgLiBJJ2xsIHdhbnQgdG8ga2VlcCBhbiBleWUgb24gdGhlc2UgYXMgRm9jdXNTeW1ib2xzIHNpbmNlIGNoYW5nZXMgaGVyZSBjYW4gcmlwcGxlIHRocm91Z2ggdGhlIGVudGlyZSByZXNvdXJjZSBjb25maWd1cmF0aW9uIGFuZCBtYW5hZ2VtZW50IGZsb3cuXG5cbkFscmlnaHQsIGxldCdzIG1ha2UgYSBxdWljayBub3RlIGFib3V0IGNvbmZpZ3MuIFdlJ3JlIGRlYWxpbmcgd2l0aCBgQkxLX0RFVl9EUkJEYCBoZXJlLiBOb3RoaW5nIG92ZXJseSBjb21wbGV4LCBpdCBkZXBlbmRzIG9uIGBQUk9DX0ZTYCBhbmQgYElORVRgLiBOb3RoaW5nIHRvIHdvcnJ5IGFib3V0LiBUaGVzZSBhcmUgc3RhbmRhcmQgYW5kIHVzdWFsbHkgZW5hYmxlZCwgc28gSSdsbCBqdXN0IGxpc3QgYEJMS19ERVZfRFJCRGAgYXMgdGhlIGtleSBjb25maWcgdG8gcmVtZW1iZXIuIE5vIG90aGVyIGNvbmZpZ3MgbmVlZCB0byBiZSBub3RlZCwgdGhlIGRlcGVuZGVuY2llcyBhcmUgdHJpdmlhbC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg4ODcsIk91dHB1dFRva2VucyI6MTc4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjc4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDE4OjU4OjM5LjcwMDI1Njg5N1oiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyMzExOTc3OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQkxLX0RFVl9EUkJEXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXRcIixcbiAgICBcImRyYmRfbmxfbmV3X3Jlc291cmNlX2RvaXRcIixcbiAgICBcImRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0XCIsXG4gICAgXCJkcmJkX25sX2F0dGFjaF9kb2l0XCIsXG4gICAgXCJkcmJkX25sX2NoZ19uZXRfb3B0c19kb2l0XCIsXG4gICAgXCJkcmJkX25sX2Nvbm5lY3RfZG9pdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBuZXRsaW5rIHBvbGljeSBsZW5ndGhzIGZvciBOTEFfTlVMX1NUUklORyBhdHRyaWJ1dGVzIGluIHRoZSBEUkJEIGRyaXZlciwgZml4aW5nIGEgYnVnIHdoZXJlIHRoZSBsZW5ndGggaW5jbHVkZWQgdGhlIE5VTCBieXRlLCBhbmQgaW5jcmVhc2VzIHRoZSBtYXhpbXVtIENQVSBtYXNrIHNpemUuIFRoaXMgYWZmZWN0cyBob3cgbmV0bGluayBtZXNzYWdlcyBhcmUgdmFsaWRhdGVkIGFuZCBwYXJzZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQkxLX0RFVl9EUkJEXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXRcIixcbiAgICBcImRyYmRfbmxfbmV3X3Jlc291cmNlX2RvaXRcIixcbiAgICBcImRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0XCIsXG4gICAgXCJkcmJkX25sX2F0dGFjaF9kb2l0XCIsXG4gICAgXCJkcmJkX25sX2NoZ19uZXRfb3B0c19kb2l0XCIsXG4gICAgXCJkcmJkX25sX2Nvbm5lY3RfZG9pdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBuZXRsaW5rIHBvbGljeSBsZW5ndGhzIGZvciBOTEFfTlVMX1NUUklORyBhdHRyaWJ1dGVzIGluIHRoZSBEUkJEIGRyaXZlciwgZml4aW5nIGEgYnVnIHdoZXJlIHRoZSBsZW5ndGggaW5jbHVkZWQgdGhlIE5VTCBieXRlLCBhbmQgaW5jcmVhc2VzIHRoZSBtYXhpbXVtIENQVSBtYXNrIHNpemUuIFRoaXMgYWZmZWN0cyBob3cgbmV0bGluayBtZXNzYWdlcyBhcmUgdmFsaWRhdGVkIGFuZCBwYXJzZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowql248[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-02 18:32:31 +0000 UTC FinishedAt: 2026-08-02 18:58:41 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BLK_DEV_DRBD" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BLK_DEV_DRBD" ], "series_id": "23467aa1-a1b4-4462-80e4-a2cb55827bb7" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "drbd_nl_resource_opts_doit", "drbd_nl_new_resource_doit", "drbd_nl_chg_disk_opts_doit", "drbd_nl_attach_doit", "drbd_nl_chg_net_opts_doit", "drbd_nl_connect_doit" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDE4OjU3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JMS19ERVZfRFJCRCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2RyYmRfbmxfcmVzb3VyY2Vfb3B0c19kb2l0JiMzNDssCiAgICAmIzM0O2RyYmRfbmxfbmV3X3Jlc291cmNlX2RvaXQmIzM0OywKICAgICYjMzQ7ZHJiZF9ubF9jaGdfZGlza19vcHRzX2RvaXQmIzM0OywKICAgICYjMzQ7ZHJiZF9ubF9hdHRhY2hfZG9pdCYjMzQ7LAogICAgJiMzNDtkcmJkX25sX2NoZ19uZXRfb3B0c19kb2l0JiMzNDssCiAgICAmIzM0O2RyYmRfbmxfY29ubmVjdF9kb2l0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBuZXRsaW5rIHBvbGljeSBsZW5ndGhzIGZvciBOTEFfTlVMX1NUUklORyBhdHRyaWJ1dGVzIGluIHRoZSBEUkJEIGRyaXZlciwgZml4aW5nIGEgYnVnIHdoZXJlIHRoZSBsZW5ndGggaW5jbHVkZWQgdGhlIE5VTCBieXRlLCBhbmQgaW5jcmVhc2VzIHRoZSBtYXhpbXVtIENQVSBtYXNrIHNpemUuIFRoaXMgYWZmZWN0cyBob3cgbmV0bGluayBtZXNzYWdlcyBhcmUgdmFsaWRhdGVkIGFuZCBwYXJzZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMTg6NTc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA0OWRiYzRlYzgyZGQ2NjZjYzA5MjljY2U4M2YxMTMxY2I1ZTIzY2Y3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBBdWcgMiAxODo1NzozNSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYyBiL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jXG5pbmRleCBmYjQ0Yjk0OGNlYzg3Li41YjY2OGU3ODA1MWJhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jXG5AQCAtNTEsOCAmIzQzOzUxLDggQEAgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9kaXNjb25uZWN0X3Bhcm1zX25sX3BvbGljeVtEUkJEX0FfRElTQ09OTkVDVF9QQVJNU19cbiB9O1xuIFxuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfZGlza19jb25mX25sX3BvbGljeVtEUkJEX0FfRElTS19DT05GX0RJU0FCTEVfV1JJVEVfU0FNRSAmIzQzOyAxXSA9IHtcbi1cdFtEUkJEX0FfRElTS19DT05GX0JBQ0tJTkdfREVWXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCwgfSxcbi1cdFtEUkJEX0FfRElTS19DT05GX01FVEFfREVWXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCwgfSxcbiYjNDM7XHRbRFJCRF9BX0RJU0tfQ09ORl9CQUNLSU5HX0RFVl0gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSAxMjggLSAxLCB9LFxuJiM0MztcdFtEUkJEX0FfRElTS19DT05GX01FVEFfREVWXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCAtIDEsIH0sXG4gXHRbRFJCRF9BX0RJU0tfQ09ORl9NRVRBX0RFVl9JRFhdID0geyAudHlwZSA9IE5MQV9VMzIsIH0sXG4gXHRbRFJCRF9BX0RJU0tfQ09ORl9ESVNLX1NJWkVdID0geyAudHlwZSA9IE5MQV9VNjQsIH0sXG4gXHRbRFJCRF9BX0RJU0tfQ09ORl9NQVhfQklPX0JWRUNTXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuQEAgLTgwLDE3ICYjNDM7ODAsMTcgQEAgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9kaXNrX2NvbmZfbmxfcG9saWN5W0RSQkRfQV9ESVNLX0NPTkZfRElTQUJMRV9XUklURV9cbiBcbiBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX2RyYmRfY2ZnX2NvbnRleHRfbmxfcG9saWN5W0RSQkRfQV9EUkJEX0NGR19DT05URVhUX0NUWF9QRUVSX0FERFIgJiM0MzsgMV0gPSB7XG4gXHRbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX1ZPTFVNRV0gPSB7IC50eXBlID0gTkxBX1UzMiwgfSxcbi1cdFtEUkJEX0FfRFJCRF9DRkdfQ09OVEVYVF9DVFhfUkVTT1VSQ0VfTkFNRV0gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSAxMjgsIH0sXG4mIzQzO1x0W0RSQkRfQV9EUkJEX0NGR19DT05URVhUX0NUWF9SRVNPVVJDRV9OQU1FXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCAtIDEsIH0sXG4gXHRbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX01ZX0FERFJdID0gTkxBX1BPTElDWV9NQVhfTEVOKDEyOCksXG4gXHRbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX1BFRVJfQUREUl0gPSBOTEFfUE9MSUNZX01BWF9MRU4oMTI4KSxcbiB9O1xuIFxuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfbmV0X2NvbmZfbmxfcG9saWN5W0RSQkRfQV9ORVRfQ09ORl9TT0NLX0NIRUNLX1RJTUVPICYjNDM7IDFdID0ge1xuLVx0W0RSQkRfQV9ORVRfQ09ORl9TSEFSRURfU0VDUkVUXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYLCB9LFxuLVx0W0RSQkRfQV9ORVRfQ09ORl9DUkFNX0hNQUNfQUxHXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYLCB9LFxuLVx0W0RSQkRfQV9ORVRfQ09ORl9JTlRFR1JJVFlfQUxHXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYLCB9LFxuLVx0W0RSQkRfQV9ORVRfQ09ORl9WRVJJRllfQUxHXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYLCB9LFxuLVx0W0RSQkRfQV9ORVRfQ09ORl9DU1VNU19BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVgsIH0sXG4mIzQzO1x0W0RSQkRfQV9ORVRfQ09ORl9TSEFSRURfU0VDUkVUXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYIC0gMSwgfSxcbiYjNDM7XHRbRFJCRF9BX05FVF9DT05GX0NSQU1fSE1BQ19BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVggLSAxLCB9LFxuJiM0MztcdFtEUkJEX0FfTkVUX0NPTkZfSU5URUdSSVRZX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCAtIDEsIH0sXG4mIzQzO1x0W0RSQkRfQV9ORVRfQ09ORl9WRVJJRllfQUxHXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYIC0gMSwgfSxcbiYjNDM7XHRbRFJCRF9BX05FVF9DT05GX0NTVU1TX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCAtIDEsIH0sXG4gXHRbRFJCRF9BX05FVF9DT05GX1dJUkVfUFJPVE9DT0xdID0geyAudHlwZSA9IE5MQV9VMzIsIH0sXG4gXHRbRFJCRF9BX05FVF9DT05GX0NPTk5FQ1RfSU5UXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuIFx0W0RSQkRfQV9ORVRfQ09ORl9USU1FT1VUXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuQEAgLTE0Myw3ICYjNDM7MTQzLDcgQEAgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9wZWVyX2RldmljZV9zdGF0aXN0aWNzX25sX3BvbGljeVtEUkJEX0FfUEVFUl9ERVZJQ0VcbiB9O1xuIFxuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfcmVzX29wdHNfbmxfcG9saWN5W0RSQkRfQV9SRVNfT1BUU19PTl9OT19EQVRBICYjNDM7IDFdID0ge1xuLVx0W0RSQkRfQV9SRVNfT1BUU19DUFVfTUFTS10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBEUkJEX0NQVV9NQVNLX1NJWkUsIH0sXG4mIzQzO1x0W0RSQkRfQV9SRVNfT1BUU19DUFVfTUFTS10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBEUkJEX0NQVV9NQVNLX1NJWkUgLSAxLCB9LFxuIFx0W0RSQkRfQV9SRVNfT1BUU19PTl9OT19EQVRBXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuIH07XG4gXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2RyYmQuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9kcmJkLmhcbmluZGV4IGNmMWVjM2ViODcyZjAuLjEzMjdjZTEwMDZhYzggMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvZHJiZC5oXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL3VhcGkvbGludXgvZHJiZC5oXG5AQCAtMzY4LDcgJiM0MzszNjgsMTIgQEAgZW51bSB3cml0ZV9vcmRlcmluZ19lIHtcbiAjZGVmaW5lIERSQkRfTURfSU5ERVhfRkxFWF9FWFQgLTJcbiAjZGVmaW5lIERSQkRfTURfSU5ERVhfRkxFWF9JTlQgLTNcbiBcbi0jZGVmaW5lIERSQkRfQ1BVX01BU0tfU0laRSAzMlxuJiM0MzsvKlxuJiM0MzsgKiBNYXhpbXVtIHNpemUgb2YgdGhlIGNwdS1tYXNrIHN0cmluZywgaW5jbHVkaW5nIHRoZSB0ZXJtaW5hdGluZyBOVUwuXG4mIzQzOyAqIFRoZSBuZXRsaW5rIHBvbGljeSBhY2NlcHRzIERSQkRfQ1BVX01BU0tfU0laRSAtIDEgY2hhcmFjdGVycywgd2hpY2ggaXNcbiYjNDM7ICogZW5vdWdoIGZvciBhIGZ1bGwgbWFzayBjb3ZlcmluZyA5MDggQ1BVcy5cbiYjNDM7ICovXG4mIzQzOyNkZWZpbmUgRFJCRF9DUFVfTUFTS19TSVpFIDI1NlxuIFxuIC8qKlxuICAqIHN0cnVjdCBkcmJkX2dlbmxtc2doZHIgLSBEUkJEIHNwZWNpZmljIGhlYWRlciB1c2VkIGluIE5FVExJTktfR0VORVJJQyByZXF1ZXN0c1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDE4OjU3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCTEtfREVWX0RSQkQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdCYjMzQ7LAogICAgJiMzNDtkcmJkX25sX25ld19yZXNvdXJjZV9kb2l0JiMzNDssCiAgICAmIzM0O2RyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0JiMzNDssCiAgICAmIzM0O2RyYmRfbmxfYXR0YWNoX2RvaXQmIzM0OywKICAgICYjMzQ7ZHJiZF9ubF9jaGdfbmV0X29wdHNfZG9pdCYjMzQ7LAogICAgJiMzNDtkcmJkX25sX2Nvbm5lY3RfZG9pdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbmV0bGluayBwb2xpY3kgbGVuZ3RocyBmb3IgTkxBX05VTF9TVFJJTkcgYXR0cmlidXRlcyBpbiB0aGUgRFJCRCBkcml2ZXIsIGZpeGluZyBhIGJ1ZyB3aGVyZSB0aGUgbGVuZ3RoIGluY2x1ZGVkIHRoZSBOVUwgYnl0ZSwgYW5kIGluY3JlYXNlcyB0aGUgbWF4aW11bSBDUFUgbWFzayBzaXplLiBUaGlzIGFmZmVjdHMgaG93IG5ldGxpbmsgbWVzc2FnZXMgYXJlIHZhbGlkYXRlZCBhbmQgcGFyc2VkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNDlkYmM0ZWM4MmRkNjY2Y2MwOTI5Y2NlODNmMTEzMWNiNWUyM2NmNwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTdW4gQXVnIDIgMTg6NTc6MzUgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYyBiL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jCmluZGV4IGZiNDRiOTQ4Y2VjODcuLjViNjY4ZTc4MDUxYmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jCkBAIC01MSw4ICYjNDM7NTEsOCBAQCBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX2Rpc2Nvbm5lY3RfcGFybXNfbmxfcG9saWN5W0RSQkRfQV9ESVNDT05ORUNUX1BBUk1TXwogfTsKIAogY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9kaXNrX2NvbmZfbmxfcG9saWN5W0RSQkRfQV9ESVNLX0NPTkZfRElTQUJMRV9XUklURV9TQU1FICYjNDM7IDFdID0gewotCVtEUkJEX0FfRElTS19DT05GX0JBQ0tJTkdfREVWXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCwgfSwKLQlbRFJCRF9BX0RJU0tfQ09ORl9NRVRBX0RFVl0gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSAxMjgsIH0sCiYjNDM7CVtEUkJEX0FfRElTS19DT05GX0JBQ0tJTkdfREVWXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCAtIDEsIH0sCiYjNDM7CVtEUkJEX0FfRElTS19DT05GX01FVEFfREVWXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCAtIDEsIH0sCiAJW0RSQkRfQV9ESVNLX0NPTkZfTUVUQV9ERVZfSURYXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LAogCVtEUkJEX0FfRElTS19DT05GX0RJU0tfU0laRV0gPSB7IC50eXBlID0gTkxBX1U2NCwgfSwKIAlbRFJCRF9BX0RJU0tfQ09ORl9NQVhfQklPX0JWRUNTXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LApAQCAtODAsMTcgJiM0Mzs4MCwxNyBAQCBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX2Rpc2tfY29uZl9ubF9wb2xpY3lbRFJCRF9BX0RJU0tfQ09ORl9ESVNBQkxFX1dSSVRFXwogCiBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX2RyYmRfY2ZnX2NvbnRleHRfbmxfcG9saWN5W0RSQkRfQV9EUkJEX0NGR19DT05URVhUX0NUWF9QRUVSX0FERFIgJiM0MzsgMV0gPSB7CiAJW0RSQkRfQV9EUkJEX0NGR19DT05URVhUX0NUWF9WT0xVTUVdID0geyAudHlwZSA9IE5MQV9VMzIsIH0sCi0JW0RSQkRfQV9EUkJEX0NGR19DT05URVhUX0NUWF9SRVNPVVJDRV9OQU1FXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCwgfSwKJiM0MzsJW0RSQkRfQV9EUkJEX0NGR19DT05URVhUX0NUWF9SRVNPVVJDRV9OQU1FXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCAtIDEsIH0sCiAJW0RSQkRfQV9EUkJEX0NGR19DT05URVhUX0NUWF9NWV9BRERSXSA9IE5MQV9QT0xJQ1lfTUFYX0xFTigxMjgpLAogCVtEUkJEX0FfRFJCRF9DRkdfQ09OVEVYVF9DVFhfUEVFUl9BRERSXSA9IE5MQV9QT0xJQ1lfTUFYX0xFTigxMjgpLAogfTsKIAogY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9uZXRfY29uZl9ubF9wb2xpY3lbRFJCRF9BX05FVF9DT05GX1NPQ0tfQ0hFQ0tfVElNRU8gJiM0MzsgMV0gPSB7Ci0JW0RSQkRfQV9ORVRfQ09ORl9TSEFSRURfU0VDUkVUXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYLCB9LAotCVtEUkJEX0FfTkVUX0NPTkZfQ1JBTV9ITUFDX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCwgfSwKLQlbRFJCRF9BX05FVF9DT05GX0lOVEVHUklUWV9BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVgsIH0sCi0JW0RSQkRfQV9ORVRfQ09ORl9WRVJJRllfQUxHXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYLCB9LAotCVtEUkJEX0FfTkVUX0NPTkZfQ1NVTVNfQUxHXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYLCB9LAomIzQzOwlbRFJCRF9BX05FVF9DT05GX1NIQVJFRF9TRUNSRVRdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVggLSAxLCB9LAomIzQzOwlbRFJCRF9BX05FVF9DT05GX0NSQU1fSE1BQ19BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVggLSAxLCB9LAomIzQzOwlbRFJCRF9BX05FVF9DT05GX0lOVEVHUklUWV9BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVggLSAxLCB9LAomIzQzOwlbRFJCRF9BX05FVF9DT05GX1ZFUklGWV9BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVggLSAxLCB9LAomIzQzOwlbRFJCRF9BX05FVF9DT05GX0NTVU1TX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCAtIDEsIH0sCiAJW0RSQkRfQV9ORVRfQ09ORl9XSVJFX1BST1RPQ09MXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LAogCVtEUkJEX0FfTkVUX0NPTkZfQ09OTkVDVF9JTlRdID0geyAudHlwZSA9IE5MQV9VMzIsIH0sCiAJW0RSQkRfQV9ORVRfQ09ORl9USU1FT1VUXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LApAQCAtMTQzLDcgJiM0MzsxNDMsNyBAQCBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX3BlZXJfZGV2aWNlX3N0YXRpc3RpY3NfbmxfcG9saWN5W0RSQkRfQV9QRUVSX0RFVklDRQogfTsKIAogY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9yZXNfb3B0c19ubF9wb2xpY3lbRFJCRF9BX1JFU19PUFRTX09OX05PX0RBVEEgJiM0MzsgMV0gPSB7Ci0JW0RSQkRfQV9SRVNfT1BUU19DUFVfTUFTS10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBEUkJEX0NQVV9NQVNLX1NJWkUsIH0sCiYjNDM7CVtEUkJEX0FfUkVTX09QVFNfQ1BVX01BU0tdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gRFJCRF9DUFVfTUFTS19TSVpFIC0gMSwgfSwKIAlbRFJCRF9BX1JFU19PUFRTX09OX05PX0RBVEFdID0geyAudHlwZSA9IE5MQV9VMzIsIH0sCiB9OwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvZHJiZC5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2RyYmQuaAppbmRleCBjZjFlYzNlYjg3MmYwLi4xMzI3Y2UxMDA2YWM4IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvZHJiZC5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvdWFwaS9saW51eC9kcmJkLmgKQEAgLTM2OCw3ICYjNDM7MzY4LDEyIEBAIGVudW0gd3JpdGVfb3JkZXJpbmdfZSB7CiAjZGVmaW5lIERSQkRfTURfSU5ERVhfRkxFWF9FWFQgLTIKICNkZWZpbmUgRFJCRF9NRF9JTkRFWF9GTEVYX0lOVCAtMwogCi0jZGVmaW5lIERSQkRfQ1BVX01BU0tfU0laRSAzMgomIzQzOy8qCiYjNDM7ICogTWF4aW11bSBzaXplIG9mIHRoZSBjcHUtbWFzayBzdHJpbmcsIGluY2x1ZGluZyB0aGUgdGVybWluYXRpbmcgTlVMLgomIzQzOyAqIFRoZSBuZXRsaW5rIHBvbGljeSBhY2NlcHRzIERSQkRfQ1BVX01BU0tfU0laRSAtIDEgY2hhcmFjdGVycywgd2hpY2ggaXMKJiM0MzsgKiBlbm91Z2ggZm9yIGEgZnVsbCBtYXNrIGNvdmVyaW5nIDkwOCBDUFVzLgomIzQzOyAqLwomIzQzOyNkZWZpbmUgRFJCRF9DUFVfTUFTS19TSVpFIDI1NgogCiAvKioKICAqIHN0cnVjdCBkcmJkX2dlbmxtc2doZHIgLSBEUkJEIHNwZWNpZmljIGhlYWRlciB1c2VkIGluIE5FVExJTktfR0VORVJJQyByZXF1ZXN0cwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjQxCgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogMzE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRFJCRCBOZXRsaW5rIFBvbGljeSBMZW5ndGggQ2hhbmdlKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYGRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jYCBhbmQgYGluY2x1ZGUvdWFwaS9saW51eC9kcmJkLmhgLiBSaWdodCBvZmYgdGhlIGJhdCwgSSBzZWUgaXQmIzM5O3MgZGVhbGluZyB3aXRoIG5ldGxpbmsgcG9saWN5IGxlbmd0aHMgZm9yIERSQkQsIHdoaWNoIGlzIGEgYmxvY2sgZGV2aWNlIGRyaXZlciDigJMgYWx3YXlzIGludGVyZXN0aW5nIHRlcnJpdG9yeS4gSXQgc2VlbXMgbGlrZSB0aGUgY29yZSBjaGFuZ2UgcmV2b2x2ZXMgYXJvdW5kIHN1YnRyYWN0aW5nIDEgZnJvbSB0aGUgbGVuZ3RoIG9mIGBOTEFfTlVMX1NUUklOR2AgcG9saWNpZXMuIEZvciBpbnN0YW5jZSwgdGhlIGxlbmd0aCBvZiBgRFJCRF9BX0RJU0tfQ09ORl9CQUNLSU5HX0RFVmAgaXMgbm93IGAxMjggLSAxYCwgYW5kIHNvIG9uLiBTaW1pbGFybHksIGBEUkJEX0NQVV9NQVNLX1NJWkVgIGhhcyBiZWVuIGJ1bXBlZCBmcm9tIDMyIHRvIDI1NiBpbiB0aGUgaGVhZGVyIGZpbGUuCgpUaGlzIGRlZmluaXRlbHkgaGFzIGZ1bmN0aW9uYWwgaW1wbGljYXRpb25zIGJlY2F1c2UgdGhlc2UgcG9saWNpZXMgZGljdGF0ZSBob3cgZGF0YSBpcyBmb3JtYXR0ZWQgYW5kIGV4Y2hhbmdlZCBvdmVyIG5ldGxpbmsuIEEgY2hhbmdlIGluIGxlbmd0aCBsaWtlIHRoaXMgY291bGQgYWZmZWN0IGhvdyBleGlzdGluZyBjb25maWd1cmF0aW9ucyBhbmQgY29tbXVuaWNhdGlvbiB3aWxsIHdvcmsgd2l0aCB0aGlzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aHkgdGhpcyBjaGFuZ2Ugd2FzIG5lY2Vzc2FyeS4gV2hhdCYjMzk7cyB0aGUgcmF0aW9uYWxlIGJlaGluZCB0aGlzPyBJcyB0aGVyZSBhIHBlcmZvcm1hbmNlIGJlbmVmaXQ/IElzIGl0IHJlbGF0ZWQgdG8gYSBzcGVjaWZpYyBidWcgZml4IG9yIG5ldyBmZWF0dXJlPwoKQmVmb3JlIEkgZGlnIGludG8gdGhlIHNwZWNpZmljcyBvZiB0aGUgY2hhbmdlLCBJJiMzOTtsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gVGltZSB0byB1c2UgYGdyZXBwZXJgIGFuZCBsb29rIGZvciB0aGUgYGNvbmZpZyBCTEtfREVWX0RSQkRgIG9wdGlvbiBvciBhbnl0aGluZyBzaW1pbGFyIGluIHRoZSBLY29uZmlnIGZpbGVzLiBUaGF0IHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyBEUkJEIGlzIGNvbmZpZ3VyZWQgYW5kIG1pZ2h0IHNoZWQgc29tZSBsaWdodCBvbiB0aGUgbW90aXZhdGlvbiBmb3IgdGhlIHBvbGljeSBsZW5ndGggbW9kaWZpY2F0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDE4OjU3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBCTEtfREVWX0RSQkQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ibG9jay9kcmJkL0tjb25maWc9Nj1jb21tZW50IFwmIzM0O0RSQkQgZGlzYWJsZWQgYmVjYXVzZSBQUk9DX0ZTIG9yIElORVQgbm90IHNlbGVjdGVkXCYjMzQ7XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL0tjb25maWctOC1cbmRyaXZlcnMvYmxvY2svZHJiZC9LY29uZmlnOjk6Y29uZmlnIEJMS19ERVZfRFJCRFxuZHJpdmVycy9ibG9jay9kcmJkL0tjb25maWctMTAtXHR0cmlzdGF0ZSBcJiMzNDtEUkJEIERpc3RyaWJ1dGVkIFJlcGxpY2F0ZWQgQmxvY2sgRGV2aWNlIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NDEzCgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gSGVyZSYjMzk7cyBob3cgSSYjMzk7ZCBhcHByb2FjaCB0aGF0IGtlcm5lbCBjb25maWd1cmF0aW9uIGZpbGUsIHRoaW5raW5nIGFsb3VkOgoKKipFeGFtaW5pbmcgdGhlIERSQkQgS2NvbmZpZyBmb3IgQ29udGV4dCoqCgpSaWdodCwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBmb3IgRFJCRCwgdGhlIERpc3RyaWJ1dGVkIFJlcGxpY2F0ZWQgQmxvY2sgRGV2aWNlLiBUaGF0IGBkcml2ZXJzL2Jsb2NrL2RyYmQvS2NvbmZpZ2AgZmlsZSBzaG91bGQgYmUgdGhlIGtleSB0byBmaWd1cmluZyBvdXQgd2hhdCBvdGhlciBjb21wb25lbnRzIG9yIGZlYXR1cmVzIG5lZWQgdG8gYmUgZW5hYmxlZCBvciBhcmUgYXQgbGVhc3QgcmVsYXRlZCB0byBpdC4gSSYjMzk7bGwgbmVlZCB0byBzZWUgd2hpY2ggc3ltYm9scyBhcmUgZGVmaW5lZCwgd2hhdCBvdGhlciBLY29uZmlnIGZpbGVzIGl0IGluY2x1ZGVzIChpZiBhbnkpLCBhbmQgd2hpY2ggb3RoZXIga2VybmVsIGZlYXR1cmVzIHRoZSBEUkJEIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWx5IG9uLCBvciBpbiB0dXJuLCBtaWdodCBpbmZsdWVuY2UuIEl0IGlzIGFsd2F5cyBhIGdvb2QgaWRlYSB0byBjb25zaWRlciBhbGwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBhbiBhcmVhLCBzbyBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBgc2VsZWN0YCwgYGRlcGVuZHMgb25gLCBhbmQgYGRlZmF1bHRgIHN0YXRlbWVudHMgdGhhdCB3b3VsZCBjbHVlIG1lIGludG8gdGhlIGJ1aWxkIGRlcGVuZGVuY2llcywgYXMgd2VsbCBhcyBhbnkgY29uZGl0aW9uYWwgbG9naWMgd2hpY2ggY291bGQgcHJvdmlkZSBjbHVlcyBhcyB0byBidWlsZCBjb25mbGljdHMuIFRoaXMgaXMgYSBjcnVjaWFsIGZpcnN0IHN0ZXAgZm9yIHVuZGVyc3RhbmRpbmcgaG93IERSQkQgZml0cyBpbnRvIHRoZSBicm9hZGVyIGtlcm5lbCBlY29zeXN0ZW0sIHdoYXQgaXRzIHJlcXVpcmVtZW50cyBhcmUsIGFuZCBhbnkgcG90ZW50aWFsIGNvbmZsaWN0cyB0aGF0IG1heSBleGlzdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvYmxvY2svZHJiZC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0I1xuICAgMzpcdCMgRFJCRCBkZXZpY2UgZHJpdmVyIGNvbmZpZ3VyYXRpb25cbiAgIDQ6XHQjXG4gICA1Olx0XG4gICA2Olx0Y29tbWVudCBcJiMzNDtEUkJEIGRpc2FibGVkIGJlY2F1c2UgUFJPQ19GUyBvciBJTkVUIG5vdCBzZWxlY3RlZFwmIzM0O1xuICAgNzpcdFx0ZGVwZW5kcyBvbiBQUk9DX0ZTPSYjMzk7biYjMzk7IHx8IElORVQ9JiMzOTtuJiMzOTtcbiAgIDg6XHRcbiAgIDk6XHRjb25maWcgQkxLX0RFVl9EUkJEXG4gIDEwOlx0XHR0cmlzdGF0ZSBcJiMzNDtEUkJEIERpc3RyaWJ1dGVkIFJlcGxpY2F0ZWQgQmxvY2sgRGV2aWNlIHN1cHBvcnRcJiMzNDtcbiAgMTE6XHRcdGRlcGVuZHMgb24gUFJPQ19GUyBcdTAwMjZcdTAwMjYgSU5FVFxuICAxMjpcdFx0c2VsZWN0IExSVV9DQUNIRVxuICAxMzpcdFx0c2VsZWN0IENSQzMyXG4gIDE0Olx0XHRoZWxwXG4gIDE1Olx0XG4gIDE2Olx0XHQgIE5PVEU6IEluIG9yZGVyIHRvIGF1dGhlbnRpY2F0ZSBjb25uZWN0aW9ucyB5b3UgaGF2ZSB0byBzZWxlY3RcbiAgMTc6XHRcdCAgQ1JZUFRPX0hNQUMgYW5kIGEgaGFzaCBmdW5jdGlvbiBhcyB3ZWxsLlxuICAxODpcdFxuICAxOTpcdFx0ICBEUkJEIGlzIGEgc2hhcmVkLW5vdGhpbmcsIHN5bmNocm9ub3VzbHkgcmVwbGljYXRlZCBibG9jayBkZXZpY2UuIEl0XG4gIDIwOlx0XHQgIGlzIGRlc2lnbmVkIHRvIHNlcnZlIGFzIGEgYnVpbGRpbmcgYmxvY2sgZm9yIGhpZ2ggYXZhaWxhYmlsaXR5XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMTg6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDk2MQoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDEzNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgTmV0bGluayBQb2xpY3kgTGVuZ3RocyBpbiB0aGUgRFJCRCBLZXJuZWwgTW9kdWxlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCBzZWVtcyB0byBiZSBkZWFsaW5nIHdpdGggbW9kaWZpY2F0aW9ucyB0byBuZXRsaW5rIHBvbGljeSBsZW5ndGhzIHdpdGhpbiB0aGUgYEJMS19ERVZfRFJCRGAgY29uZmlndXJhdGlvbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHRyYWNlIHRoZSBpbXBhY3Qgb2YgdGhpcyBjaGFuZ2UuIEl0JiMzOTtzIGNydWNpYWwgdG8gdW5kZXJzdGFuZCB3aGljaCBmdW5jdGlvbnMgcmVseSBvbiB0aGVzZSBzcGVjaWZpYyBwb2xpY2llcy4KCkxldCYjMzk7cyBzZWUsIHRoZSByZWxldmFudCBwb2xpY2llcyBiZWluZyBhbHRlcmVkIGFyZTogYGRyYmRfZGlzY29ubmVjdF9wYXJtc19ubF9wb2xpY3lgLCBgZHJiZF9kaXNrX2NvbmZfbmxfcG9saWN5YCwgYGRyYmRfZHJiZF9jZmdfY29udGV4dF9ubF9wb2xpY3lgLCBgZHJiZF9uZXRfY29uZl9ubF9wb2xpY3lgLCBgZHJiZF9wZWVyX2RldmljZV9zdGF0aXN0aWNzX25sX3BvbGljeWAsIGFuZCBgZHJiZF9yZXNfb3B0c19ubF9wb2xpY3lgLiBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgdGhlc2UgYXJlIGJlaW5nIHVzZWQsIGJlY2F1c2UgYSBjaGFuZ2UgaW4gdGhlaXIgbGVuZ3RoIGNvdWxkIGhhdmUgcmVwZXJjdXNzaW9ucyBpbiBvdGhlciBhcmVhcy4KCkEgcXVpY2sgYGdyZXBgIHNob3VsZCByZXZlYWwgdGhlIGZ1bmN0aW9uIGNhbGxzIG9yIGNvZGUgc2VjdGlvbnMgd2hlcmUgdGhlc2UgcG9saWNpZXMgYXJlIHJlZmVyZW5jZWQuIEkmIzM5O2xsIG5lZWQgdG8gcGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgcGFyYW1ldGVyIHBhcnNpbmcgYW5kIGRhdGEgdmFsaWRhdGlvbiB3aXRoaW4gdGhvc2UgZnVuY3Rpb25zLiBUaGlzIHNob3VsZCBpZGVudGlmeSB0aGUgZG93bnN0cmVhbSBlZmZlY3RzIG9mIHRoaXMgcGF0Y2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMTg6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZHJiZF9kaXNrX2NvbmZfbmxfcG9saWN5JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTQ5PWNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfZGlzY29ubmVjdF9wYXJtc19ubF9wb2xpY3lbRFJCRF9BX0RJU0NPTk5FQ1RfUEFSTVNfRk9SQ0VfRElTQ09OTkVDVCAmIzQzOyAxXSA9IHtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01Mi1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUzOmNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfZGlza19jb25mX25sX3BvbGljeVtEUkJEX0FfRElTS19DT05GX0RJU0FCTEVfV1JJVEVfU0FNRSAmIzQzOyAxXSA9IHtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU0LVx0W0RSQkRfQV9ESVNLX0NPTkZfQkFDS0lOR19ERVZdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gMTI4IC0gMSwgfSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz0yMjg9c3RhdGljIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfYXR0YWNoX25sX3BvbGljeVtEUkJEX05MQV9ESVNLX0NPTkYgJiM0MzsgMV0gPSB7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0yMjktXHRbRFJCRF9OTEFfQ0ZHX0NPTlRFWFRdID0gTkxBX1BPTElDWV9ORVNURUQoZHJiZF9kcmJkX2NmZ19jb250ZXh0X25sX3BvbGljeSksXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzoyMzA6XHRbRFJCRF9OTEFfRElTS19DT05GXSA9IE5MQV9QT0xJQ1lfTkVTVEVEKGRyYmRfZGlza19jb25mX25sX3BvbGljeSksXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0yMzEtfTtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz0zMTQ9c3RhdGljIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfY2hnX2Rpc2tfb3B0c19ubF9wb2xpY3lbRFJCRF9OTEFfRElTS19DT05GICYjNDM7IDFdID0ge1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzE1LVx0W0RSQkRfTkxBX0NGR19DT05URVhUXSA9IE5MQV9QT0xJQ1lfTkVTVEVEKGRyYmRfZHJiZF9jZmdfY29udGV4dF9ubF9wb2xpY3kpLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6MzE2Olx0W0RSQkRfTkxBX0RJU0tfQ09ORl0gPSBOTEFfUE9MSUNZX05FU1RFRChkcmJkX2Rpc2tfY29uZl9ubF9wb2xpY3kpLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzE3LX07XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM9NzAzPXN0YXRpYyBpbnQgX19kaXNrX2NvbmZfZnJvbV9hdHRycyhzdHJ1Y3QgZGlza19jb25mICpzLFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTcxOS1cdFx0cmV0dXJuIC1FTk9NRU07XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo3MjA6XHRlcnIgPSBubGFfcGFyc2VfbmVzdGVkX2RlcHJlY2F0ZWQobnRiLCBtYXh0eXBlLCB0bGEsIGRyYmRfZGlza19jb25mX25sX3BvbGljeSwgTlVMTCk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy03MjEtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oPTE5PWV4dGVybiBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX2Rpc2Nvbm5lY3RfcGFybXNfbmxfcG9saWN5W0RSQkRfQV9ESVNDT05ORUNUX1BBUk1TX0ZPUkNFX0RJU0NPTk5FQ1QgJiM0MzsgMV07XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDoyMDpleHRlcm4gY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9kaXNrX2NvbmZfbmxfcG9saWN5W0RSQkRfQV9ESVNLX0NPTkZfRElTQUJMRV9XUklURV9TQU1FICYjNDM7IDFdO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtMjEtZXh0ZXJuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfZHJiZF9jZmdfY29udGV4dF9ubF9wb2xpY3lbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX1BFRVJfQUREUiAmIzQzOyAxXTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MjgyCgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2Vzcywga2VlcGluZyBpbiBtaW5kIEkmIzM5O20gc3BlYWtpbmcgdG8gYSBmZWxsb3cgZXhwZXJ0OgoKKipJbnZlc3RpZ2F0aW5nIGBkcmJkX3Jlc19vcHRzX25sX3BvbGljeWAqKgoKQWxyaWdodCwgdGltZSB0byBnZXQgdG8gd29yay4gRmlyc3QsIG15IGJyYWluIGp1bXBzIHJpZ2h0IHRvIHRoZSBpZGVhIG9mIHVzaW5nIGBncmVwYC4gSXQmIzM5O3MgdGhlIG1vc3QgZGlyZWN0IGFuZCBlZmZpY2llbnQgd2F5IHRvIGxvY2F0ZSBhIHNwZWNpZmljIHN0cmluZyBsaWtlIGBkcmJkX3Jlc19vcHRzX25sX3BvbGljeWAsIGVzcGVjaWFsbHkgd2hlbiBJJiMzOTttIGRlYWxpbmcgd2l0aCBjb25maWd1cmF0aW9uIGZpbGVzIG9yIHNvdXJjZSBjb2RlLiBJIGtub3cgZnJvbSBleHBlcmllbmNlIHRoYXQgYGdyZXBgIHdpbGwgcXVpY2tseSBzY2FuIGEgbGFyZ2UgY29ycHVzIG9mIHRleHQgYW5kIHBpbnBvaW50IGV4YWN0bHkgd2hlcmUgdGhpcyBwYXJ0aWN1bGFyIHZhcmlhYmxlIG9yIHBvbGljeSBpcyBiZWluZyB1c2VkLiBUaGF0JiMzOTtzIHRoZSBwZXJmZWN0IHN0YXJ0aW5nIHBvaW50IHRvIHVuZGVyc3RhbmQgaXRzIGNvbnRleHQuIExldCYjMzk7cyBzZWUgd2hhdCB3ZSBjYW4gZGlnIHVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkcmJkX3Jlc19vcHRzX25sX3BvbGljeSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz0xMzQ9Y29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9wZWVyX2RldmljZV9zdGF0aXN0aWNzX25sX3BvbGljeVtEUkJEX0FfUEVFUl9ERVZJQ0VfU1RBVElTVElDU19QRUVSX0RFVl9GTEFHUyAmIzQzOyAxXSA9IHtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0xNDQtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzoxNDU6Y29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9yZXNfb3B0c19ubF9wb2xpY3lbRFJCRF9BX1JFU19PUFRTX09OX05PX0RBVEEgJiM0MzsgMV0gPSB7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0xNDYtXHRbRFJCRF9BX1JFU19PUFRTX0NQVV9NQVNLXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IERSQkRfQ1BVX01BU0tfU0laRSAtIDEsIH0sXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM9MTk5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX25ld19yZXNvdXJjZV9ubF9wb2xpY3lbRFJCRF9OTEFfUkVTT1VSQ0VfT1BUUyAmIzQzOyAxXSA9IHtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTIwMC1cdFtEUkJEX05MQV9DRkdfQ09OVEVYVF0gPSBOTEFfUE9MSUNZX05FU1RFRChkcmJkX2RyYmRfY2ZnX2NvbnRleHRfbmxfcG9saWN5KSxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjIwMTpcdFtEUkJEX05MQV9SRVNPVVJDRV9PUFRTXSA9IE5MQV9QT0xJQ1lfTkVTVEVEKGRyYmRfcmVzX29wdHNfbmxfcG9saWN5KSxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTIwMi19O1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTIxMD1zdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9yZXNvdXJjZV9vcHRzX25sX3BvbGljeVtEUkJEX05MQV9SRVNPVVJDRV9PUFRTICYjNDM7IDFdID0ge1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMjExLVx0W0RSQkRfTkxBX0NGR19DT05URVhUXSA9IE5MQV9QT0xJQ1lfTkVTVEVEKGRyYmRfZHJiZF9jZmdfY29udGV4dF9ubF9wb2xpY3kpLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6MjEyOlx0W0RSQkRfTkxBX1JFU09VUkNFX09QVFNdID0gTkxBX1BPTElDWV9ORVNURUQoZHJiZF9yZXNfb3B0c19ubF9wb2xpY3kpLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMjEzLX07XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM9ODYwPXN0YXRpYyBpbnQgX19yZXNfb3B0c19mcm9tX2F0dHJzKHN0cnVjdCByZXNfb3B0cyAqcyxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy04NzYtXHRcdHJldHVybiAtRU5PTUVNO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6ODc3Olx0ZXJyID0gbmxhX3BhcnNlX25lc3RlZF9kZXByZWNhdGVkKG50YiwgbWF4dHlwZSwgdGxhLCBkcmJkX3Jlc19vcHRzX25sX3BvbGljeSwgTlVMTCk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy04NzgtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oPTI1PWV4dGVybiBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX3BlZXJfZGV2aWNlX3N0YXRpc3RpY3NfbmxfcG9saWN5W0RSQkRfQV9QRUVSX0RFVklDRV9TVEFUSVNUSUNTX1BFRVJfREVWX0ZMQUdTICYjNDM7IDFdO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6MjY6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfcmVzX29wdHNfbmxfcG9saWN5W0RSQkRfQV9SRVNfT1BUU19PTl9OT19EQVRBICYjNDM7IDFdO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtMjctZXh0ZXJuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfcmVzaXplX3Bhcm1zX25sX3BvbGljeVtEUkJEX0FfUkVTSVpFX1BBUk1TX0FMX1NUUklQRV9TSVpFICYjNDM7IDFdO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3NDE5CgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogODAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZyb20gbXkgZXhwZXJ0IHBlcnNwZWN0aXZlOgoKKipEaXZpbmcgaW50byB0aGUgTmV0bGluayBQb2xpY3kgUGF0Y2gqKgoKUmlnaHQsIHNvIHRoaXMgcGF0Y2ggaXMgY2xlYXJseSBtZXNzaW5nIHdpdGggbmV0bGluayBwb2xpY2llcy4gVGhhdCBtZWFucyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIHRoZSBmcmFtZXdvcmsgZm9yIHBhcnNpbmcgbmV0bGluayBtZXNzYWdlcywgd2hpY2ggaXMgYWx3YXlzIGEgY3JpdGljYWwgYXJlYS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgdGhlIHNjb3BlIG9mIHRoZXNlIGNoYW5nZXMuIEkgc2VlIGZ1bmN0aW9ucyBsaWtlIGBfX2Rpc2tfY29uZl9mcm9tX2F0dHJzYCwgYF9fcmVzX29wdHNfZnJvbV9hdHRyc2AsIGFuZCBgX19uZXRfY29uZl9mcm9tX2F0dHJzYCBtZW50aW9uZWQuIFRoZXkmIzM5O3JlIGVpdGhlciBnZW5lcmF0ZWQgb3IgaGFuZC1jb2RlZCB0byBzcGVjaWZpY2FsbHkgcGFyc2UgYXR0cmlidXRlcyB3aXRoaW4gdGhvc2UgbmV0bGluayBtZXNzYWdlcywgYW5kIEkgbmVlZCB0byBzZWUgaWYgdGhlIHBhdGNoIGlzIGNoYW5naW5nIGV4aXN0aW5nIHBvbGljaWVzLCBhZGRpbmcgbmV3IG9uZXMsIG9yIGJvdGguIFRoZXNlICYjMzQ7ZnJvbV9hdHRycyYjMzQ7IGZ1bmN0aW9ucyBhcmUgdXN1YWxseSBwcmV0dHkgY3J1Y2lhbCBmb3IgYW55IG5ldGxpbmsgc3Vic3lzdGVtLgoKVGhlIGtleSBub3cgaXMgdG8gdHJhY2UgdGhlIGltcGFjdC4gTGV0JiMzOTtzIHN0YXJ0IHdpdGggYF9fcmVzX29wdHNfZnJvbV9hdHRyc2AgYW5kIHNlZSB3aGVyZSBpdCYjMzk7cyBhY3R1YWxseSBiZWluZyAqdXNlZCouIFVuZGVyc3RhbmRpbmcgdGhlIGNhbGwgc2l0ZXMgd2lsbCBpbW1lZGlhdGVseSBoaWdobGlnaHQgdGhlIHN1YnN5c3RlbXMgb3IgZmVhdHVyZXMgdGhpcyBwYXRjaCB0b3VjaGVzLCBhbmQgZnJvbSB0aGVyZSBJIGNhbiBhc3Nlc3MgdGhlIHBvdGVudGlhbCByaXBwbGUgZWZmZWN0cyBhbmQgZGV0ZXJtaW5lIHRoZSByaXNrIGludm9sdmVkIHdpdGggdGhpcyBwYXRjaC4gVGhpcyBpcyBnb2luZyB0byBiZSBteSBpbW1lZGlhdGUgbmV4dCBzdGVwOyBnZXQgdGhlIHVzZS1jYXNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtfX3Jlc19vcHRzX2Zyb21fYXR0cnMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM9ODUzPWludCBkaXNrX2NvbmZfbnRiX2Zyb21fYXR0cnMoXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtODU5LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6ODYwOnN0YXRpYyBpbnQgX19yZXNfb3B0c19mcm9tX2F0dHJzKHN0cnVjdCByZXNfb3B0cyAqcyxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTg2MS1cdFx0c3RydWN0IG5sYXR0ciAqKipyZXRfbmVzdGVkX2F0dHJpYnV0ZV90YWJsZSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz04OTc9aW50IHJlc19vcHRzX2Zyb21fYXR0cnMoc3RydWN0IHJlc19vcHRzICpzLFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTg5OS17XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo5MDA6XHRyZXR1cm4gX19yZXNfb3B0c19mcm9tX2F0dHJzKHMsIE5VTEwsIGluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtOTAxLX1cbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz05MDM9aW50IHJlc19vcHRzX250Yl9mcm9tX2F0dHJzKFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTkwNi17XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo5MDc6XHRyZXR1cm4gX19yZXNfb3B0c19mcm9tX2F0dHJzKE5VTEwsIHJldF9uZXN0ZWRfYXR0cmlidXRlX3RhYmxlLCBpbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTkwOC19XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDE4OjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgxNjMKCQkJCQkJCW91dHB1dDogMjEKCQkJCQkJCXRob3VnaHRzOiAxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIG15c2VsZjoKCioqVHJhY2luZyB0aGUgVXNhZ2Ugb2YgYHJlc19vcHRzX2Zyb21fYXR0cnNgKioKCk9rYXksIHNvIEkmIzM5O20gdHJ5aW5nIHRvIHVuZGVyc3RhbmQgaG93IGByZXNfb3B0c19mcm9tX2F0dHJzYCBpcyB1dGlsaXplZCB3aXRoaW4gdGhpcyBjb2RlLiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGJ1enppbmcgaW4gbXkgbWluZCBpczogKndoZXJlKiBleGFjdGx5IGRvZXMgdGhpcyBmdW5jdGlvbiBnZXQgY2FsbGVkPyBJIG5lZWQgdG8gdHJhY2sgZG93biBhbGwgaW5zdGFuY2VzIG9mIGl0cyB1c2UgdG8gZ3Jhc3AgaXRzIHJvbGUgaW4gdGhlIG92ZXJhbGwgYXJjaGl0ZWN0dXJlLiBJIGtub3cgdGhpcyBzZWVtcyBlbGVtZW50YXJ5IHRvIGFuIGV4cGVydCwgYnV0IGl0JiMzOTtzIHRoZSBmdW5kYW1lbnRhbCBmaXJzdCBzdGVwLiBVbmRlcnN0YW5kaW5nIHVzYWdlIHBhdHRlcm5zIG9mdGVuIHVuY292ZXJzIHN1YnRsZSBkZXBlbmRlbmNpZXMgb3IgYXNzdW1wdGlvbnMuIExldCYjMzk7cyBzZWUgaG93IGFuZCB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGVtcGxveWVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtyZXNfb3B0c19mcm9tX2F0dHJzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9Mjk5Mz1pbnQgZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMwMDktXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMwMTA6XHRlcnIgPSByZXNfb3B0c19mcm9tX2F0dHJzKFx1MDAyNnJlc19vcHRzLCBpbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzAxMS1cdGlmIChlcnIgXHUwMDI2XHUwMDI2IGVyciAhPSAtRU5PTVNHKSB7XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz00MzI5PWludCBkcmJkX25sX25ld19yZXNvdXJjZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MzQzLVx0c2V0X3Jlc19vcHRzX2RlZmF1bHRzKFx1MDAyNnJlc19vcHRzKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDM0NDpcdGVyciA9IHJlc19vcHRzX2Zyb21fYXR0cnMoXHUwMDI2cmVzX29wdHMsIGluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MzQ1LVx0aWYgKGVyciBcdTAwMjZcdTAwMjYgZXJyICE9IC1FTk9NU0cpIHtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz04NTM9aW50IGRpc2tfY29uZl9udGJfZnJvbV9hdHRycyhcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy04NTktXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo4NjA6c3RhdGljIGludCBfX3Jlc19vcHRzX2Zyb21fYXR0cnMoc3RydWN0IHJlc19vcHRzICpzLFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtODYxLVx0XHRzdHJ1Y3QgbmxhdHRyICoqKnJldF9uZXN0ZWRfYXR0cmlidXRlX3RhYmxlLFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTg5Ni1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjg5NzppbnQgcmVzX29wdHNfZnJvbV9hdHRycyhzdHJ1Y3QgcmVzX29wdHMgKnMsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy04OTgtXHRcdFx0XHRzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtODk5LXtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjkwMDpcdHJldHVybiBfX3Jlc19vcHRzX2Zyb21fYXR0cnMocywgTlVMTCwgaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy05MDEtfVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTkwMz1pbnQgcmVzX29wdHNfbnRiX2Zyb21fYXR0cnMoXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtOTA2LXtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjkwNzpcdHJldHVybiBfX3Jlc19vcHRzX2Zyb21fYXR0cnMoTlVMTCwgcmV0X25lc3RlZF9hdHRyaWJ1dGVfdGFibGUsIGluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtOTA4LX1cbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaD0zMTg9dm9pZCBzZXRfZGlza19jb25mX2RlZmF1bHRzKHN0cnVjdCBkaXNrX2NvbmYgKngpO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtMzE5LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6MzIwOmludCByZXNfb3B0c19mcm9tX2F0dHJzKHN0cnVjdCByZXNfb3B0cyAqcywgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaC0zMjEtaW50IHJlc19vcHRzX250Yl9mcm9tX2F0dHJzKHN0cnVjdCBubGF0dHIgKioqcmV0X25lc3RlZF9hdHRyaWJ1dGVfdGFibGUsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5MjI2CgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogNTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhlc2UgRFJCRCBuZXRsaW5rIGNvbW1hbmRzLiBJJiMzOTttIHNlZWluZyBhIHBhdHRlcm4gaGVyZTogYGRyYmRfbmxfcmVzb3VyY2Vfb3B0c19kb2l0YCwgYGRyYmRfbmxfbmV3X3Jlc291cmNlX2RvaXRgLCBgZHJiZF9ubF9kaXNrX2NvbmZfZG9pdGAsIGFuZCBzbyBvbi4gUHJldHR5IHN0YW5kYXJkIG5ldGxpbmsgbmFtaW5nIGNvbnZlbnRpb24sIHJlYWxseS4gTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgdW5kZXJseWluZyBzdHJ1Y3R1cmUsIHNvIHRoZSBmaXJzdCB0aGluZyBJJiMzOTtsbCBkbyBpcyB6ZXJvIGluIG9uIHRoZSBuZXRsaW5rIG9wZXJhdGlvbnMgc3RydWN0dXJlIGl0c2VsZi4gVGltZSB0byBsb2NhdGUgdGhhdC4gSXQgaG9sZHMgdGhlIGtleSB0byBob3cgdGhlc2UgY29tbWFuZHMgYXJlIGRlZmluZWQgYW5kIGhhbmRsZWQuIEZpbmRpbmcgdGhhdCBzdHJ1Y3R1cmUgd2lsbCBiZSB0aGUgbGF1bmNocGFkIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBlbnRpcmUgbmV0bGluayBjb21tYW5kIGZyYW1ld29yayBpbiB0aGlzIGNvbnRleHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDE4OjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RyYmRfbmxfcmVzb3VyY2Vfb3B0c19kb2l0JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9Mjg1Nz1pbnQgZHJiZF9ubF9yZXNpemVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjk5Mi1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6Mjk5MzppbnQgZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjk5NC17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM9MzU5PWNvbnN0IHN0cnVjdCBnZW5sX3NwbGl0X29wcyBkcmJkX25sX29wc1szMl0gPSB7XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDE0LVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQxNTpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQxNi1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaD01MD1pbnQgZHJiZF9ubF9kZWxfcmVzb3VyY2VfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjUxOmludCBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oLTUyLWludCBkcmJkX25sX2Nvbm5lY3RfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMTg6NTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTkwNgoJCQkJCQkJb3V0cHV0OiAyMwoJCQkJCQkJdGhvdWdodHM6IDI5NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBEUkJEIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdHdlYWtpbmcgYERSQkRfQ1BVX01BU0tfU0laRWAgZnJvbSAzMiB0byAyNTYuIFRoYXQmIzM5O3MgYSBzdHJhaWdodGZvcndhcmQgY2hhbmdlLCBwb3RlbnRpYWxseSBpbXBhY3RpbmcgcGVyZm9ybWFuY2Ugb3IgcmVzb3VyY2UgdXNhZ2UgaWYgbm90IG9wdGltaXplZCwgYnV0IHRoZSBtb3JlIGludGVyZXN0aW5nIHBhcnQgaXMgdGhlIGBOTEFfTlVMX1NUUklOR2AgZml4LiBMZXQgbWUgc2VlLi4uIHRoZXkmIzM5O3ZlIGNvcnJlY3RlZCBhIGJ1ZyByZWxhdGVkIHRvIHRoZSBsZW5ndGggY2FsY3VsYXRpb24sIHNwZWNpZmljYWxseSBob3cgdGhlIE5VTCB0ZXJtaW5hdG9yIGlzIGhhbmRsZWQgd2l0aGluIE5ldGxpbmsgYXR0cmlidXRlIGxlbmd0aCBjaGVja3MuIEhhbmcgb24sIHdhc24mIzM5O3QgdGhlcmUgc29tZXRoaW5nIGFib3V0IGBOTEFfTlVMX1NUUklOR2AgYW5kIHRoZSBgLmxlbmAgbWVtYmVyIGluIGBubGFfcG9saWN5YD8gRG9lcyB0aGF0IGluZGVlZCByZXByZXNlbnQgdGhlIG1heGltdW0gc3RyaW5nIGxlbmd0aCAqd2l0aG91dCogdGhlIE5VTCBieXRlLCBhcyBpbiwgdGhlIHBheWxvYWQgc2l6ZT8gUmlnaHQsIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhlIGBubGFfcG9saWN5YCBkZWZpbml0aW9uIGZvciBgTkxBX05VTF9TVFJJTkdgIGp1c3QgdG8gYmUgY2VydGFpbi4gSXQmIzM5O3MgbGlrZWx5IHRoZSBjb21taXQgbWVzc2FnZSByZWZlcmVuY2VzIHRoaXMgJiMzNDttYXhsZW4gLSAxJiMzNDsgY29uY2VwdCwgSSYjMzk7ZCBiZXQuCgpSZWdhcmRsZXNzLCB0aGlzIGFmZmVjdHMgbmV0bGluayBtZXNzYWdlIHZhbGlkYXRpb24sIHdoaWNoIG1lYW5zIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGtlcm5lbCYjMzk7cyBuZXRsaW5rIEFQSSBmb3IgRFJCRC4gVGhhdCYjMzk7cyBhIHJlZCBmbGFnLiBUaGlzIG5lZWRzIHRvIGJlIGZ1enplZCwgZ2l2ZW4gdGhhdCBpdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgYmxvY2sgZHJpdmVyIGFuZCBEUkJELCBvZiBjb3Vyc2UsIGlzIHRoZSBkcml2ZXIgaW4gcXVlc3Rpb24uIFdlJiMzOTtsbCBuZWVkIGBCTEtfREVWX0RSQkRgIGVuYWJsZWQgZm9yIHRlc3RpbmcuIEFuZCBvZiBjb3Vyc2UsIERSQkQgZGVwZW5kcyBvbiBib3RoIGBQUk9DX0ZTYCBhbmQgYElORVRgLiBJIHdvbmRlciBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzIGluIHBsYXkgaGVyZS4gTGV0JiMzOTtzIHNlZS4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkZXBlbmRzIG9uIEJMS19ERVZfRFJCRCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2Jsb2NrL2RyYmQvS2NvbmZpZz00Mj1jb25maWcgRFJCRF9GQVVMVF9JTkpFQ1RJT05cbmRyaXZlcnMvYmxvY2svZHJiZC9LY29uZmlnLTQzLVx0Ym9vbCBcJiMzNDtEUkJEIGZhdWx0IGluamVjdGlvblwmIzM0O1xuZHJpdmVycy9ibG9jay9kcmJkL0tjb25maWc6NDQ6XHRkZXBlbmRzIG9uIEJMS19ERVZfRFJCRFxuZHJpdmVycy9ibG9jay9kcmJkL0tjb25maWctNDUtXHRoZWxwXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDE4OjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwNjUyCgkJCQkJCQlvdXRwdXQ6IDIzCgkJCQkJCQl0aG91Z2h0czogMTg4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBEUkJEIENvbmZpZ3VyYXRpb24gQ2hhbmdlcyoqCgpPa2F5LCBzbyBJIHNlZSBgQkxLX0RFVl9EUkJEYCBhcyB0aGUgY2VudHJhbCBjb25maWd1cmF0aW9uIHBvaW50IGhlcmUuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byB6ZXJvIGluIG9uIHRoYXQuIExldCYjMzk7cyBzZWUsIHdoYXQgZWxzZSBpcyBzaWduaWZpY2FudD8gQWgsIGl0JiMzOTtzIG5vdCBmdW5jdGlvbnMgdGhhdCB3ZXJlIG1vZGlmaWVkIGRpcmVjdGx5LCBidXQgcmF0aGVyIHRoZXNlIGRhdGEgc3RydWN0dXJlcyBsaWtlIGBkcmJkX2Rpc2tfY29uZl9ubF9wb2xpY3lgLCBgZHJiZF9uZXRfY29uZl9ubF9wb2xpY3lgLCBldGMuIFRoaXMgbWVhbnMgdGhlIGNvcmUgY29uZmlnICpwb2xpY2llcyogYXJlIHdoYXQmIzM5O3MgZ2V0dGluZyBhZGp1c3RlZC4gVGhlIGZ1bmN0aW9ucyB0aGF0IGFyZSAqdXNpbmcqIHRob3NlIHBvbGljaWVzIGFyZSB0aGUgaW50ZXJlc3RpbmcgYml0cy4gSSBzZWUgYF9fZGlza19jb25mX2Zyb21fYXR0cnNgLCBgX19yZXNfb3B0c19mcm9tX2F0dHJzYCwgZXRjLiBUaG9zZSBhcmUga2V5LCBhcyB0aGV5JiMzOTtyZSB0aGUgY29uc3VtZXJzLiBOb3csIGxldCYjMzk7cyBsb29rIGF0IHRoZSBuZXRsaW5rIGhhbmRsZXJzLi4uIHRoZXNlIHdpbGwgbGlrZWx5IGJlIHdoZXJlIHRoZSBtYWdpYyBoYXBwZW5zLCBhbmQgdGhlIGNvbmZpZyBpcyBhY3R1YWxseSBhcHBsaWVkIG9yIG1vZGlmaWVkLiBJJiMzOTt2ZSBnb3QgYSBsaXN0IGhlcmU6IGBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdGAsIGBkcmJkX25sX25ld19yZXNvdXJjZV9kb2l0YCwgYGRyYmRfbmxfZGlza19jb25mX2RvaXRgLCBgZHJiZF9ubF9uZXRfY29uZl9kb2l0YCwgYGRyYmRfbmxfZGlzY29ubmVjdF9kb2l0YCwgYGRyYmRfbmxfYXR0YWNoX2RvaXRgLCBhbmQgYGRyYmRfbmxfY29ubmVjdF9kb2l0YC4gVGhvc2UgbmV0bGluayBoYW5kbGVycyBhcmUgZGVmaW5pdGVseSBnb2luZyB0byBiZSBteSBGb2N1c1N5bWJvbHMgZm9yIGZ1cnRoZXIgZXhhbWluYXRpb24uIFRoYXQmIzM5O3Mgd2hlcmUgdGhlIHJlYWwgbG9naWMgaXMgYmVpbmcgaW52b2tlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMTg6NTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZHJiZF9ubF8uKl9kb2l0JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9Nzk5PXN0YXRpYyBpbnQgZHJiZF9ubF9zZXRfcm9sZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtODM4LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo4Mzk6aW50IGRyYmRfbmxfcHJpbWFyeV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTg0MC17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy04NDMtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjg0NDppbnQgZHJiZF9ubF9zZWNvbmRhcnlfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy04NDUte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9OTEzPWNoYXIgKnBwc2l6ZShjaGFyICpidWYsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtOTQyLS8qIE5vdGUgdGhlc2UgYXJlIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjk0MzogKiBkcmJkX25sX3N1c3BlbmRfaW9fZG9pdC9kcmJkX25sX3Jlc3VtZV9pb19kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy05NDQtICogd2hpY2ggYXJlIChzdWIpIHN0YXRlIGNoYW5nZXMgdHJpZ2dlcmVkIGJ5IGFkbWluIChkcmJkc2V0dXApLFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MTUzMT1zdGF0aWMgaW50IGRpc2tfb3B0c19jaGVja19hbF9zaXplKHN0cnVjdCBkcmJkX2RldmljZSAqZGV2aWNlLCBzdHJ1Y3QgZGlza19jb25mICpkYylcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTE1NTQtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjE1NTU6aW50IGRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTE1NTYte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MTc4MT12b2lkIGRyYmRfYmFja2luZ19kZXZfZnJlZShzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSwgc3RydWN0IGRyYmRfYmFja2luZ19kZXYgKmxkZXYpXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0xNzkzLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoxNzk0OmludCBkcmJkX25sX2F0dGFjaF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTE3OTUte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MjIxOD1zdGF0aWMgaW50IGFkbV9kZXRhY2goc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UsIGludCBmb3JjZSlcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTIyMzMtICogT25seSB0aGVuIHdlIGhhdmUgZmluYWxseSBkZXRhY2hlZC4gKi9cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MjIzNDppbnQgZHJiZF9ubF9kZXRhY2hfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yMjM1LXtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTI0MjQ9c3RhdGljIHZvaWQgZnJlZV9jcnlwdG8oc3RydWN0IGNyeXB0byAqY3J5cHRvKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjQzMS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MjQzMjppbnQgZHJiZF9ubF9jaGdfbmV0X29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yNDMzLXtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTI1NzQ9c3RhdGljIHZvaWQgcGVlcl9kZXZpY2VfdG9faW5mbyhzdHJ1Y3QgcGVlcl9kZXZpY2VfaW5mbyAqaW5mbyxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI1ODYtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjI1ODc6aW50IGRyYmRfbmxfY29ubmVjdF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI1ODgte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MjczNj1zdGF0aWMgZW51bSBkcmJkX3N0YXRlX3J2IGNvbm5fdHJ5X2Rpc2Nvbm5lY3Qoc3RydWN0IGRyYmRfY29ubmVjdGlvbiAqY29ubmVjdGlvbiwgYm9vbCBmb3JjZSlcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI4MDEtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjI4MDI6aW50IGRyYmRfbmxfZGlzY29ubmVjdF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI4MDMte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9Mjg0MT12b2lkIHJlc3luY19hZnRlcl9vbmxpbmVfZ3JvdyhzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSlcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI4NTYtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjI4NTc6aW50IGRyYmRfbmxfcmVzaXplX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjg1OC17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yOTkyLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoyOTkzOmludCBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yOTk0LXtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMwMzAtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMwMzE6aW50IGRyYmRfbmxfaW52YWxpZGF0ZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMwMzIte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MzA5OT1zdGF0aWMgaW50IGRyYmRfYm1pb19zZXRfc3VzcF9hbChzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMxMDgtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMxMDk6aW50IGRyYmRfbmxfaW52YWxfcGVlcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMxMTAte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzE1OS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MzE2MDppbnQgZHJiZF9ubF9wYXVzZV9zeW5jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzE2MS17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMTc5LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMTgwOmludCBkcmJkX25sX3Jlc3VtZV9zeW5jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzE4MS17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjA3LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMjA4OmludCBkcmJkX25sX3N1c3BlbmRfaW9fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjA5LXtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMyMTItXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjMyMTM6aW50IGRyYmRfbmxfcmVzdW1lX2lvX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzIxNC17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjY4LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMjY5OmludCBkcmJkX25sX291dGRhdGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjcwLXtcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTM4MDE9c3RhdGljIGludCBubGFfcHV0X3N0YXR1c19pbmZvKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBkcmJkX2RldmljZSAqZGV2aWNlLFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzgxMy1cdCAqXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjM4MTQ6XHQgKiBJZiBzaWIgPT0gTlVMTCwgdGhpcyBpcyBkcmJkX25sX2dldF9zdGF0dXNfZG9pdCwgZXhlY3V0ZWQgc3luY2hyb25vdXNseVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zODE1LVx0ICogaW4gdGhlIGNvbnRleHQgb2YgdGhlIHJlcXVlc3RpbmcgdXNlciBwcm9jZXNzLiBFeGNsdWRlIHNlbnNpdGl2ZVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzk1MC1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6Mzk1MTppbnQgZHJiZF9ubF9nZXRfc3RhdHVzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzk1Mi17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz00MTAzPWludCBkcmJkX25sX2dldF9zdGF0dXNfZHVtcGl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYilcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQxNTAtXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjQxNTE6aW50IGRyYmRfbmxfZ2V0X3RpbWVvdXRfdHlwZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQxNTIte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDE3OS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDE4MDppbnQgZHJiZF9ubF9zdGFydF9vdl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQxODEte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDIyNS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDIyNjppbnQgZHJiZF9ubF9uZXdfY191dWlkX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDIyNy17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz00MzIwPXN0YXRpYyB2b2lkIHJlc291cmNlX3RvX2luZm8oc3RydWN0IHJlc291cmNlX2luZm8gKmluZm8sXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MzI4LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0MzI5OmludCBkcmJkX25sX25ld19yZXNvdXJjZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQzMzAte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDM4NT1zdGF0aWMgdm9pZCBkZXZpY2VfdG9faW5mbyhzdHJ1Y3QgZGV2aWNlX2luZm8gKmluZm8sXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MzkxLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0MzkyOmludCBkcmJkX25sX25ld19taW5vcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQzOTMte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDQ2Mj1zdGF0aWMgZW51bSBkcmJkX3JldF9jb2RlIGFkbV9kZWxfbWlub3Ioc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UpXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00NDk4LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0NDk5OmludCBkcmJkX25sX2RlbF9taW5vcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQ1MDAte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDUxOD1zdGF0aWMgaW50IGFkbV9kZWxfcmVzb3VyY2Uoc3RydWN0IGRyYmRfcmVzb3VyY2UgKnJlc291cmNlKVxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDU0Ny1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDU0ODppbnQgZHJiZF9ubF9kb3duX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDU0OS17XG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00NjEwLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0NjExOmludCBkcmJkX25sX2RlbF9yZXNvdXJjZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQ2MTIte1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTM1OT1jb25zdCBzdHJ1Y3QgZ2VubF9zcGxpdF9vcHMgZHJiZF9ubF9vcHNbMzJdID0ge1xuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTM2Mi1cdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzozNjM6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9nZXRfc3RhdHVzX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zNjQtXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzc4LVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM3OTpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX25ld19taW5vcl9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzgwLVx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTM4Ny1cdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzozODg6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9kZWxfbWlub3JfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTM4OS1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zOTYtXHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6Mzk3Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfbmV3X3Jlc291cmNlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zOTgtXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDA1LVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQwNjpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX2RlbF9yZXNvdXJjZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDA3LVx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQxNC1cdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MTU6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MTYtXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDIzLVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQyNDpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX2Nvbm5lY3RfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQyNS1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MzItXHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDMzOlx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfZGlzY29ubmVjdF9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDM0LVx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ0MS1cdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0NDI6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9hdHRhY2hfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ0My1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NTAtXHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDUxOlx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfcmVzaXplX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NTItXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDU5LVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ2MDpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX3ByaW1hcnlfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ2MS1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NjgtXHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDY5Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfc2Vjb25kYXJ5X2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NzAtXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDc3LVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ3ODpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX25ld19jX3V1aWRfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ3OS1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00ODYtXHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDg3Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfc3RhcnRfb3ZfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ4OC1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00OTUtXHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDk2Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfZGV0YWNoX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00OTctXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTA0LVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUwNTpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX2ludmFsaWRhdGVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUwNi1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MTMtXHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTE0Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfaW52YWxfcGVlcl9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTE1LVx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUyMi1cdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1MjM6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9wYXVzZV9zeW5jX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MjQtXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTMxLVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUzMjpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX3Jlc3VtZV9zeW5jX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MzMtXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTQwLVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU0MTpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX3N1c3BlbmRfaW9fZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU0Mi1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NDktXHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTUwOlx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfcmVzdW1lX2lvX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NTEtXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTU4LVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU1OTpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX291dGRhdGVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU2MC1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NjctXHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTY4Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfZ2V0X3RpbWVvdXRfdHlwZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTY5LVx0XHQucG9zdF9kb2l0XHQ9IGRyYmRfcG9zdF9kb2l0LFxuLS1cbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU3Ni1cdFx0LnByZV9kb2l0XHQ9IGRyYmRfcHJlX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1Nzc6XHRcdC5kb2l0XHRcdD0gZHJiZF9ubF9kb3duX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NzgtXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTg1LVx0XHQucHJlX2RvaXRcdD0gZHJiZF9wcmVfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU4NjpcdFx0LmRvaXRcdFx0PSBkcmJkX25sX2NoZ19kaXNrX29wdHNfZG9pdCxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU4Ny1cdFx0LnBvc3RfZG9pdFx0PSBkcmJkX3Bvc3RfZG9pdCxcbi0tXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01OTQtXHRcdC5wcmVfZG9pdFx0PSBkcmJkX3ByZV9kb2l0LFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTk1Olx0XHQuZG9pdFx0XHQ9IGRyYmRfbmxfY2hnX25ldF9vcHRzX2RvaXQsXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01OTYtXHRcdC5wb3N0X2RvaXRcdD0gZHJiZF9wb3N0X2RvaXQsXG4tLVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg9NDM9aW50IGRyYmRfYWRtX2R1bXBfcGVlcl9kZXZpY2VzX2RvbmUoc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oLTQ0LVxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NDU6aW50IGRyYmRfbmxfZ2V0X3N0YXR1c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtNDYtaW50IGRyYmRfbmxfZ2V0X3N0YXR1c19kdW1waXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjQ3OmludCBkcmJkX25sX25ld19taW5vcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NDg6aW50IGRyYmRfbmxfZGVsX21pbm9yX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo0OTppbnQgZHJiZF9ubF9uZXdfcmVzb3VyY2VfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjUwOmludCBkcmJkX25sX2RlbF9yZXNvdXJjZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTE6aW50IGRyYmRfbmxfcmVzb3VyY2Vfb3B0c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTI6aW50IGRyYmRfbmxfY29ubmVjdF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTM6aW50IGRyYmRfbmxfZGlzY29ubmVjdF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTQ6aW50IGRyYmRfbmxfYXR0YWNoX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo1NTppbnQgZHJiZF9ubF9yZXNpemVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjU2OmludCBkcmJkX25sX3ByaW1hcnlfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjU3OmludCBkcmJkX25sX3NlY29uZGFyeV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTg6aW50IGRyYmRfbmxfbmV3X2NfdXVpZF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTk6aW50IGRyYmRfbmxfc3RhcnRfb3ZfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjYwOmludCBkcmJkX25sX2RldGFjaF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NjE6aW50IGRyYmRfbmxfaW52YWxpZGF0ZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NjI6aW50IGRyYmRfbmxfaW52YWxfcGVlcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NjM6aW50IGRyYmRfbmxfcGF1c2Vfc3luY19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NjQ6aW50IGRyYmRfbmxfcmVzdW1lX3N5bmNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY1OmludCBkcmJkX25sX3N1c3BlbmRfaW9fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY2OmludCBkcmJkX25sX3Jlc3VtZV9pb19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6Njc6aW50IGRyYmRfbmxfb3V0ZGF0ZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6Njg6aW50IGRyYmRfbmxfZ2V0X3RpbWVvdXRfdHlwZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6Njk6aW50IGRyYmRfbmxfZG93bl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NzA6aW50IGRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NzE6aW50IGRyYmRfbmxfY2hnX25ldF9vcHRzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaC03Mi1pbnQgZHJiZF9ubF9nZXRfcmVzb3VyY2VzX2R1bXBpdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODg4NwoJCQkJCQkJb3V0cHV0OiAxNzgKCQkJCQkJCXRob3VnaHRzOiAyNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIERSQkQgTmV0bGluayBQb2xpY3kgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0d2Vha2luZyB0aGUgbmV0bGluayBwb2xpY3kgbGVuZ3Rocywgc3BlY2lmaWNhbGx5IGZvciBgTkxBX05VTF9TVFJJTkdgIGF0dHJpYnV0ZXMgd2l0aGluIHRoZSBEUkJEIGRyaXZlci4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgaXQmIzM5O3MgZml4aW5nIGEgYnVnIOKAkyBzb21ldGhpbmcgYWJvdXQgdGhlIGxlbmd0aCBjYWxjdWxhdGlvbiBwcmV2aW91c2x5IGluY2x1ZGluZyB0aGUgTlVMIGJ5dGUsIHdoaWNoIGlzIGluY29ycmVjdC4gSXQgYWxzbyBsb29rcyBsaWtlIHRoZSBwYXRjaCBpcyBpbmNyZWFzaW5nIHRoZSBtYXhpbXVtIENQVSBtYXNrIHNpemUsIHdoaWNoIGlzIGEgZ29vZCB0aGluZyB0byBlbnN1cmUgdGhlcmUgaXNuJiMzOTt0IGEgaGFyZCBsaW1pdC4gVGhpcyBpcyBkZWZpbml0ZWx5IGdvaW5nIHRvIGltcGFjdCBob3cgdGhlIGRyaXZlciB2YWxpZGF0ZXMgYW5kIHBhcnNlcyB0aG9zZSBpbmNvbWluZyBuZXRsaW5rIG1lc3NhZ2VzLgoKTm93LCBsZXQmIzM5O3MgYnJlYWsgZG93biB0aGUgaW1wbGljYXRpb25zLiBUaGUgYWZmZWN0ZWQgZnVuY3Rpb25zIGFyZSB0aGUgb25lcyBwYXJzaW5nIHRoZXNlIGF0dHJpYnV0ZXM6IGBfX2Rpc2tfY29uZl9mcm9tX2F0dHJzYCwgYF9fcmVzX29wdHNfZnJvbV9hdHRyc2AsIGBfX25ldF9jb25mX2Zyb21fYXR0cnNgLCBhbmQgc28gb24uIFRoZXNlIGFyZSBhbGwgY2FsbGVkIGZyb20gdmFyaW91cyBgZG9pdGAgZnVuY3Rpb25zIGludm9sdmVkIGluIHJlc291cmNlIG9wZXJhdGlvbnM6IGBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdGAsIGBkcmJkX25sX25ld19yZXNvdXJjZV9kb2l0YCwgYGRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0YCwgYGRyYmRfbmxfYXR0YWNoX2RvaXRgLCBgZHJiZF9ubF9jaGdfbmV0X29wdHNfZG9pdGAsIGFuZCBgZHJiZF9ubF9jb25uZWN0X2RvaXRgLiBJJiMzOTtsbCB3YW50IHRvIGtlZXAgYW4gZXllIG9uIHRoZXNlIGFzIEZvY3VzU3ltYm9scyBzaW5jZSBjaGFuZ2VzIGhlcmUgY2FuIHJpcHBsZSB0aHJvdWdoIHRoZSBlbnRpcmUgcmVzb3VyY2UgY29uZmlndXJhdGlvbiBhbmQgbWFuYWdlbWVudCBmbG93LgoKQWxyaWdodCwgbGV0JiMzOTtzIG1ha2UgYSBxdWljayBub3RlIGFib3V0IGNvbmZpZ3MuIFdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYEJMS19ERVZfRFJCRGAgaGVyZS4gTm90aGluZyBvdmVybHkgY29tcGxleCwgaXQgZGVwZW5kcyBvbiBgUFJPQ19GU2AgYW5kIGBJTkVUYC4gTm90aGluZyB0byB3b3JyeSBhYm91dC4gVGhlc2UgYXJlIHN0YW5kYXJkIGFuZCB1c3VhbGx5IGVuYWJsZWQsIHNvIEkmIzM5O2xsIGp1c3QgbGlzdCBgQkxLX0RFVl9EUkJEYCBhcyB0aGUga2V5IGNvbmZpZyB0byByZW1lbWJlci4gTm8gb3RoZXIgY29uZmlncyBuZWVkIHRvIGJlIG5vdGVkLCB0aGUgZGVwZW5kZW5jaWVzIGFyZSB0cml2aWFsLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAxODo1ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QkxLX0RFVl9EUkJEJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXQmIzM0OywKICAgICYjMzQ7ZHJiZF9ubF9uZXdfcmVzb3VyY2VfZG9pdCYjMzQ7LAogICAgJiMzNDtkcmJkX25sX2NoZ19kaXNrX29wdHNfZG9pdCYjMzQ7LAogICAgJiMzNDtkcmJkX25sX2F0dGFjaF9kb2l0JiMzNDssCiAgICAmIzM0O2RyYmRfbmxfY2hnX25ldF9vcHRzX2RvaXQmIzM0OywKICAgICYjMzQ7ZHJiZF9ubF9jb25uZWN0X2RvaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG5ldGxpbmsgcG9saWN5IGxlbmd0aHMgZm9yIE5MQV9OVUxfU1RSSU5HIGF0dHJpYnV0ZXMgaW4gdGhlIERSQkQgZHJpdmVyLCBmaXhpbmcgYSBidWcgd2hlcmUgdGhlIGxlbmd0aCBpbmNsdWRlZCB0aGUgTlVMIGJ5dGUsIGFuZCBpbmNyZWFzZXMgdGhlIG1heGltdW0gQ1BVIG1hc2sgc2l6ZS4gVGhpcyBhZmZlY3RzIGhvdyBuZXRsaW5rIG1lc3NhZ2VzIGFyZSB2YWxpZGF0ZWQgYW5kIHBhcnNlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QkxLX0RFVl9EUkJEJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXQmIzM0OywKICAgICYjMzQ7ZHJiZF9ubF9uZXdfcmVzb3VyY2VfZG9pdCYjMzQ7LAogICAgJiMzNDtkcmJkX25sX2NoZ19kaXNrX29wdHNfZG9pdCYjMzQ7LAogICAgJiMzNDtkcmJkX25sX2F0dGFjaF9kb2l0JiMzNDssCiAgICAmIzM0O2RyYmRfbmxfY2hnX25ldF9vcHRzX2RvaXQmIzM0OywKICAgICYjMzQ7ZHJiZF9ubF9jb25uZWN0X2RvaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG5ldGxpbmsgcG9saWN5IGxlbmd0aHMgZm9yIE5MQV9OVUxfU1RSSU5HIGF0dHJpYnV0ZXMgaW4gdGhlIERSQkQgZHJpdmVyLCBmaXhpbmcgYSBidWcgd2hlcmUgdGhlIGxlbmd0aCBpbmNsdWRlZCB0aGUgTlVMIGJ5dGUsIGFuZCBpbmNyZWFzZXMgdGhlIG1heGltdW0gQ1BVIG1hc2sgc2l6ZS4gVGhpcyBhZmZlY3RzIGhvdyBuZXRsaW5rIG1lc3NhZ2VzIGFyZSB2YWxpZGF0ZWQgYW5kIHBhcnNlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDE4OjU3OjM3LjAxMzk4NTI3NloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyODA5NDA0MTY5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJMS19ERVZfRFJCRFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImRyYmRfbmxfcmVzb3VyY2Vfb3B0c19kb2l0XCIsXG4gICAgXCJkcmJkX25sX25ld19yZXNvdXJjZV9kb2l0XCIsXG4gICAgXCJkcmJkX25sX2NoZ19kaXNrX29wdHNfZG9pdFwiLFxuICAgIFwiZHJiZF9ubF9hdHRhY2hfZG9pdFwiLFxuICAgIFwiZHJiZF9ubF9jaGdfbmV0X29wdHNfZG9pdFwiLFxuICAgIFwiZHJiZF9ubF9jb25uZWN0X2RvaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbmV0bGluayBwb2xpY3kgbGVuZ3RocyBmb3IgTkxBX05VTF9TVFJJTkcgYXR0cmlidXRlcyBpbiB0aGUgRFJCRCBkcml2ZXIsIGZpeGluZyBhIGJ1ZyB3aGVyZSB0aGUgbGVuZ3RoIGluY2x1ZGVkIHRoZSBOVUwgYnl0ZSwgYW5kIGluY3JlYXNlcyB0aGUgbWF4aW11bSBDUFUgbWFzayBzaXplLiBUaGlzIGFmZmVjdHMgaG93IG5ldGxpbmsgbWVzc2FnZXMgYXJlIHZhbGlkYXRlZCBhbmQgcGFyc2VkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQxODo1NzozNy4wMTM5OTQ5NzZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2OTE5MjYwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDQ5ZGJjNGVjODJkZDY2NmNjMDkyOWNjZTgzZjExMzFjYjVlMjNjZjdcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBBdWcgMiAxODo1NzozNSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYyBiL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jXFxuaW5kZXggZmI0NGI5NDhjZWM4Ny4uNWI2NjhlNzgwNTFiYSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uY1xcbisrKyBiL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jXFxuQEAgLTUxLDggKzUxLDggQEAgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9kaXNjb25uZWN0X3Bhcm1zX25sX3BvbGljeVtEUkJEX0FfRElTQ09OTkVDVF9QQVJNU19cXG4gfTtcXG4gXFxuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfZGlza19jb25mX25sX3BvbGljeVtEUkJEX0FfRElTS19DT05GX0RJU0FCTEVfV1JJVEVfU0FNRSArIDFdID0ge1xcbi1cXHRbRFJCRF9BX0RJU0tfQ09ORl9CQUNLSU5HX0RFVl0gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSAxMjgsIH0sXFxuLVxcdFtEUkJEX0FfRElTS19DT05GX01FVEFfREVWXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCwgfSxcXG4rXFx0W0RSQkRfQV9ESVNLX0NPTkZfQkFDS0lOR19ERVZdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gMTI4IC0gMSwgfSxcXG4rXFx0W0RSQkRfQV9ESVNLX0NPTkZfTUVUQV9ERVZdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gMTI4IC0gMSwgfSxcXG4gXFx0W0RSQkRfQV9ESVNLX0NPTkZfTUVUQV9ERVZfSURYXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxcbiBcXHRbRFJCRF9BX0RJU0tfQ09ORl9ESVNLX1NJWkVdID0geyAudHlwZSA9IE5MQV9VNjQsIH0sXFxuIFxcdFtEUkJEX0FfRElTS19DT05GX01BWF9CSU9fQlZFQ1NdID0geyAudHlwZSA9IE5MQV9VMzIsIH0sXFxuQEAgLTgwLDE3ICs4MCwxNyBAQCBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX2Rpc2tfY29uZl9ubF9wb2xpY3lbRFJCRF9BX0RJU0tfQ09ORl9ESVNBQkxFX1dSSVRFX1xcbiBcXG4gY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9kcmJkX2NmZ19jb250ZXh0X25sX3BvbGljeVtEUkJEX0FfRFJCRF9DRkdfQ09OVEVYVF9DVFhfUEVFUl9BRERSICsgMV0gPSB7XFxuIFxcdFtEUkJEX0FfRFJCRF9DRkdfQ09OVEVYVF9DVFhfVk9MVU1FXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxcbi1cXHRbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX1JFU09VUkNFX05BTUVdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gMTI4LCB9LFxcbitcXHRbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX1JFU09VUkNFX05BTUVdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gMTI4IC0gMSwgfSxcXG4gXFx0W0RSQkRfQV9EUkJEX0NGR19DT05URVhUX0NUWF9NWV9BRERSXSA9IE5MQV9QT0xJQ1lfTUFYX0xFTigxMjgpLFxcbiBcXHRbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX1BFRVJfQUREUl0gPSBOTEFfUE9MSUNZX01BWF9MRU4oMTI4KSxcXG4gfTtcXG4gXFxuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfbmV0X2NvbmZfbmxfcG9saWN5W0RSQkRfQV9ORVRfQ09ORl9TT0NLX0NIRUNLX1RJTUVPICsgMV0gPSB7XFxuLVxcdFtEUkJEX0FfTkVUX0NPTkZfU0hBUkVEX1NFQ1JFVF0gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCwgfSxcXG4tXFx0W0RSQkRfQV9ORVRfQ09ORl9DUkFNX0hNQUNfQUxHXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYLCB9LFxcbi1cXHRbRFJCRF9BX05FVF9DT05GX0lOVEVHUklUWV9BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVgsIH0sXFxuLVxcdFtEUkJEX0FfTkVUX0NPTkZfVkVSSUZZX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCwgfSxcXG4tXFx0W0RSQkRfQV9ORVRfQ09ORl9DU1VNU19BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVgsIH0sXFxuK1xcdFtEUkJEX0FfTkVUX0NPTkZfU0hBUkVEX1NFQ1JFVF0gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCAtIDEsIH0sXFxuK1xcdFtEUkJEX0FfTkVUX0NPTkZfQ1JBTV9ITUFDX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCAtIDEsIH0sXFxuK1xcdFtEUkJEX0FfTkVUX0NPTkZfSU5URUdSSVRZX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCAtIDEsIH0sXFxuK1xcdFtEUkJEX0FfTkVUX0NPTkZfVkVSSUZZX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCAtIDEsIH0sXFxuK1xcdFtEUkJEX0FfTkVUX0NPTkZfQ1NVTVNfQUxHXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYIC0gMSwgfSxcXG4gXFx0W0RSQkRfQV9ORVRfQ09ORl9XSVJFX1BST1RPQ09MXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxcbiBcXHRbRFJCRF9BX05FVF9DT05GX0NPTk5FQ1RfSU5UXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxcbiBcXHRbRFJCRF9BX05FVF9DT05GX1RJTUVPVVRdID0geyAudHlwZSA9IE5MQV9VMzIsIH0sXFxuQEAgLTE0Myw3ICsxNDMsNyBAQCBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX3BlZXJfZGV2aWNlX3N0YXRpc3RpY3NfbmxfcG9saWN5W0RSQkRfQV9QRUVSX0RFVklDRVxcbiB9O1xcbiBcXG4gY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9yZXNfb3B0c19ubF9wb2xpY3lbRFJCRF9BX1JFU19PUFRTX09OX05PX0RBVEEgKyAxXSA9IHtcXG4tXFx0W0RSQkRfQV9SRVNfT1BUU19DUFVfTUFTS10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBEUkJEX0NQVV9NQVNLX1NJWkUsIH0sXFxuK1xcdFtEUkJEX0FfUkVTX09QVFNfQ1BVX01BU0tdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gRFJCRF9DUFVfTUFTS19TSVpFIC0gMSwgfSxcXG4gXFx0W0RSQkRfQV9SRVNfT1BUU19PTl9OT19EQVRBXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxcbiB9O1xcbiBcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2RyYmQuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9kcmJkLmhcXG5pbmRleCBjZjFlYzNlYjg3MmYwLi4xMzI3Y2UxMDA2YWM4IDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9kcmJkLmhcXG4rKysgYi9pbmNsdWRlL3VhcGkvbGludXgvZHJiZC5oXFxuQEAgLTM2OCw3ICszNjgsMTIgQEAgZW51bSB3cml0ZV9vcmRlcmluZ19lIHtcXG4gI2RlZmluZSBEUkJEX01EX0lOREVYX0ZMRVhfRVhUIC0yXFxuICNkZWZpbmUgRFJCRF9NRF9JTkRFWF9GTEVYX0lOVCAtM1xcbiBcXG4tI2RlZmluZSBEUkJEX0NQVV9NQVNLX1NJWkUgMzJcXG4rLypcXG4rICogTWF4aW11bSBzaXplIG9mIHRoZSBjcHUtbWFzayBzdHJpbmcsIGluY2x1ZGluZyB0aGUgdGVybWluYXRpbmcgTlVMLlxcbisgKiBUaGUgbmV0bGluayBwb2xpY3kgYWNjZXB0cyBEUkJEX0NQVV9NQVNLX1NJWkUgLSAxIGNoYXJhY3RlcnMsIHdoaWNoIGlzXFxuKyAqIGVub3VnaCBmb3IgYSBmdWxsIG1hc2sgY292ZXJpbmcgOTA4IENQVXMuXFxuKyAqL1xcbisjZGVmaW5lIERSQkRfQ1BVX01BU0tfU0laRSAyNTZcXG4gXFxuIC8qKlxcbiAgKiBzdHJ1Y3QgZHJiZF9nZW5sbXNnaGRyIC0gRFJCRCBzcGVjaWZpYyBoZWFkZXIgdXNlZCBpbiBORVRMSU5LX0dFTkVSSUMgcmVxdWVzdHNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMTg6NTc6MzcuMzg0MTQ3OTIxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NjI0MzkyMzE3MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQkxLX0RFVl9EUkJEXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXRcIixcbiAgICBcImRyYmRfbmxfbmV3X3Jlc291cmNlX2RvaXRcIixcbiAgICBcImRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0XCIsXG4gICAgXCJkcmJkX25sX2F0dGFjaF9kb2l0XCIsXG4gICAgXCJkcmJkX25sX2NoZ19uZXRfb3B0c19kb2l0XCIsXG4gICAgXCJkcmJkX25sX2Nvbm5lY3RfZG9pdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBuZXRsaW5rIHBvbGljeSBsZW5ndGhzIGZvciBOTEFfTlVMX1NUUklORyBhdHRyaWJ1dGVzIGluIHRoZSBEUkJEIGRyaXZlciwgZml4aW5nIGEgYnVnIHdoZXJlIHRoZSBsZW5ndGggaW5jbHVkZWQgdGhlIE5VTCBieXRlLCBhbmQgaW5jcmVhc2VzIHRoZSBtYXhpbXVtIENQVSBtYXNrIHNpemUuIFRoaXMgYWZmZWN0cyBob3cgbmV0bGluayBtZXNzYWdlcyBhcmUgdmFsaWRhdGVkIGFuZCBwYXJzZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDQ5ZGJjNGVjODJkZDY2NmNjMDkyOWNjZTgzZjExMzFjYjVlMjNjZjdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEF1ZyAyIDE4OjU3OjM1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMgYi9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uY1xuaW5kZXggZmI0NGI5NDhjZWM4Ny4uNWI2NjhlNzgwNTFiYSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jXG4rKysgYi9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uY1xuQEAgLTUxLDggKzUxLDggQEAgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9kaXNjb25uZWN0X3Bhcm1zX25sX3BvbGljeVtEUkJEX0FfRElTQ09OTkVDVF9QQVJNU19cbiB9O1xuIFxuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfZGlza19jb25mX25sX3BvbGljeVtEUkJEX0FfRElTS19DT05GX0RJU0FCTEVfV1JJVEVfU0FNRSArIDFdID0ge1xuLVx0W0RSQkRfQV9ESVNLX0NPTkZfQkFDS0lOR19ERVZdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gMTI4LCB9LFxuLVx0W0RSQkRfQV9ESVNLX0NPTkZfTUVUQV9ERVZdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gMTI4LCB9LFxuK1x0W0RSQkRfQV9ESVNLX0NPTkZfQkFDS0lOR19ERVZdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gMTI4IC0gMSwgfSxcbitcdFtEUkJEX0FfRElTS19DT05GX01FVEFfREVWXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCAtIDEsIH0sXG4gXHRbRFJCRF9BX0RJU0tfQ09ORl9NRVRBX0RFVl9JRFhdID0geyAudHlwZSA9IE5MQV9VMzIsIH0sXG4gXHRbRFJCRF9BX0RJU0tfQ09ORl9ESVNLX1NJWkVdID0geyAudHlwZSA9IE5MQV9VNjQsIH0sXG4gXHRbRFJCRF9BX0RJU0tfQ09ORl9NQVhfQklPX0JWRUNTXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuQEAgLTgwLDE3ICs4MCwxNyBAQCBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX2Rpc2tfY29uZl9ubF9wb2xpY3lbRFJCRF9BX0RJU0tfQ09ORl9ESVNBQkxFX1dSSVRFX1xuIFxuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfZHJiZF9jZmdfY29udGV4dF9ubF9wb2xpY3lbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX1BFRVJfQUREUiArIDFdID0ge1xuIFx0W0RSQkRfQV9EUkJEX0NGR19DT05URVhUX0NUWF9WT0xVTUVdID0geyAudHlwZSA9IE5MQV9VMzIsIH0sXG4tXHRbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX1JFU09VUkNFX05BTUVdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gMTI4LCB9LFxuK1x0W0RSQkRfQV9EUkJEX0NGR19DT05URVhUX0NUWF9SRVNPVVJDRV9OQU1FXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IDEyOCAtIDEsIH0sXG4gXHRbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX01ZX0FERFJdID0gTkxBX1BPTElDWV9NQVhfTEVOKDEyOCksXG4gXHRbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX1BFRVJfQUREUl0gPSBOTEFfUE9MSUNZX01BWF9MRU4oMTI4KSxcbiB9O1xuIFxuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfbmV0X2NvbmZfbmxfcG9saWN5W0RSQkRfQV9ORVRfQ09ORl9TT0NLX0NIRUNLX1RJTUVPICsgMV0gPSB7XG4tXHRbRFJCRF9BX05FVF9DT05GX1NIQVJFRF9TRUNSRVRdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVgsIH0sXG4tXHRbRFJCRF9BX05FVF9DT05GX0NSQU1fSE1BQ19BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVgsIH0sXG4tXHRbRFJCRF9BX05FVF9DT05GX0lOVEVHUklUWV9BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVgsIH0sXG4tXHRbRFJCRF9BX05FVF9DT05GX1ZFUklGWV9BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVgsIH0sXG4tXHRbRFJCRF9BX05FVF9DT05GX0NTVU1TX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCwgfSxcbitcdFtEUkJEX0FfTkVUX0NPTkZfU0hBUkVEX1NFQ1JFVF0gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCAtIDEsIH0sXG4rXHRbRFJCRF9BX05FVF9DT05GX0NSQU1fSE1BQ19BTEddID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gU0hBUkVEX1NFQ1JFVF9NQVggLSAxLCB9LFxuK1x0W0RSQkRfQV9ORVRfQ09ORl9JTlRFR1JJVFlfQUxHXSA9IHsgLnR5cGUgPSBOTEFfTlVMX1NUUklORywgLmxlbiA9IFNIQVJFRF9TRUNSRVRfTUFYIC0gMSwgfSxcbitcdFtEUkJEX0FfTkVUX0NPTkZfVkVSSUZZX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCAtIDEsIH0sXG4rXHRbRFJCRF9BX05FVF9DT05GX0NTVU1TX0FMR10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBTSEFSRURfU0VDUkVUX01BWCAtIDEsIH0sXG4gXHRbRFJCRF9BX05FVF9DT05GX1dJUkVfUFJPVE9DT0xdID0geyAudHlwZSA9IE5MQV9VMzIsIH0sXG4gXHRbRFJCRF9BX05FVF9DT05GX0NPTk5FQ1RfSU5UXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuIFx0W0RSQkRfQV9ORVRfQ09ORl9USU1FT1VUXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuQEAgLTE0Myw3ICsxNDMsNyBAQCBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX3BlZXJfZGV2aWNlX3N0YXRpc3RpY3NfbmxfcG9saWN5W0RSQkRfQV9QRUVSX0RFVklDRVxuIH07XG4gXG4gY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9yZXNfb3B0c19ubF9wb2xpY3lbRFJCRF9BX1JFU19PUFRTX09OX05PX0RBVEEgKyAxXSA9IHtcbi1cdFtEUkJEX0FfUkVTX09QVFNfQ1BVX01BU0tdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gRFJCRF9DUFVfTUFTS19TSVpFLCB9LFxuK1x0W0RSQkRfQV9SRVNfT1BUU19DUFVfTUFTS10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBEUkJEX0NQVV9NQVNLX1NJWkUgLSAxLCB9LFxuIFx0W0RSQkRfQV9SRVNfT1BUU19PTl9OT19EQVRBXSA9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LFxuIH07XG4gXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2RyYmQuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9kcmJkLmhcbmluZGV4IGNmMWVjM2ViODcyZjAuLjEzMjdjZTEwMDZhYzggMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvZHJiZC5oXG4rKysgYi9pbmNsdWRlL3VhcGkvbGludXgvZHJiZC5oXG5AQCAtMzY4LDcgKzM2OCwxMiBAQCBlbnVtIHdyaXRlX29yZGVyaW5nX2Uge1xuICNkZWZpbmUgRFJCRF9NRF9JTkRFWF9GTEVYX0VYVCAtMlxuICNkZWZpbmUgRFJCRF9NRF9JTkRFWF9GTEVYX0lOVCAtM1xuIFxuLSNkZWZpbmUgRFJCRF9DUFVfTUFTS19TSVpFIDMyXG4rLypcbisgKiBNYXhpbXVtIHNpemUgb2YgdGhlIGNwdS1tYXNrIHN0cmluZywgaW5jbHVkaW5nIHRoZSB0ZXJtaW5hdGluZyBOVUwuXG4rICogVGhlIG5ldGxpbmsgcG9saWN5IGFjY2VwdHMgRFJCRF9DUFVfTUFTS19TSVpFIC0gMSBjaGFyYWN0ZXJzLCB3aGljaCBpc1xuKyAqIGVub3VnaCBmb3IgYSBmdWxsIG1hc2sgY292ZXJpbmcgOTA4IENQVXMuXG4rICovXG4rI2RlZmluZSBEUkJEX0NQVV9NQVNLX1NJWkUgMjU2XG4gXG4gLyoqXG4gICogc3RydWN0IGRyYmRfZ2VubG1zZ2hkciAtIERSQkQgc3BlY2lmaWMgaGVhZGVyIHVzZWQgaW4gTkVUTElOS19HRU5FUklDIHJlcXVlc3RzXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQxODo1NzozNy4zODQxNTAxNjFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NjMwMDc5MzYwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRFJCRCBOZXRsaW5rIFBvbGljeSBMZW5ndGggQ2hhbmdlKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmNgIGFuZCBgaW5jbHVkZS91YXBpL2xpbnV4L2RyYmQuaGAuIFJpZ2h0IG9mZiB0aGUgYmF0LCBJIHNlZSBpdCdzIGRlYWxpbmcgd2l0aCBuZXRsaW5rIHBvbGljeSBsZW5ndGhzIGZvciBEUkJELCB3aGljaCBpcyBhIGJsb2NrIGRldmljZSBkcml2ZXIg4oCTIGFsd2F5cyBpbnRlcmVzdGluZyB0ZXJyaXRvcnkuIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgY2hhbmdlIHJldm9sdmVzIGFyb3VuZCBzdWJ0cmFjdGluZyAxIGZyb20gdGhlIGxlbmd0aCBvZiBgTkxBX05VTF9TVFJJTkdgIHBvbGljaWVzLiBGb3IgaW5zdGFuY2UsIHRoZSBsZW5ndGggb2YgYERSQkRfQV9ESVNLX0NPTkZfQkFDS0lOR19ERVZgIGlzIG5vdyBgMTI4IC0gMWAsIGFuZCBzbyBvbi4gU2ltaWxhcmx5LCBgRFJCRF9DUFVfTUFTS19TSVpFYCBoYXMgYmVlbiBidW1wZWQgZnJvbSAzMiB0byAyNTYgaW4gdGhlIGhlYWRlciBmaWxlLlxuXG5UaGlzIGRlZmluaXRlbHkgaGFzIGZ1bmN0aW9uYWwgaW1wbGljYXRpb25zIGJlY2F1c2UgdGhlc2UgcG9saWNpZXMgZGljdGF0ZSBob3cgZGF0YSBpcyBmb3JtYXR0ZWQgYW5kIGV4Y2hhbmdlZCBvdmVyIG5ldGxpbmsuIEEgY2hhbmdlIGluIGxlbmd0aCBsaWtlIHRoaXMgY291bGQgYWZmZWN0IGhvdyBleGlzdGluZyBjb25maWd1cmF0aW9ucyBhbmQgY29tbXVuaWNhdGlvbiB3aWxsIHdvcmsgd2l0aCB0aGlzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aHkgdGhpcyBjaGFuZ2Ugd2FzIG5lY2Vzc2FyeS4gV2hhdCdzIHRoZSByYXRpb25hbGUgYmVoaW5kIHRoaXM/IElzIHRoZXJlIGEgcGVyZm9ybWFuY2UgYmVuZWZpdD8gSXMgaXQgcmVsYXRlZCB0byBhIHNwZWNpZmljIGJ1ZyBmaXggb3IgbmV3IGZlYXR1cmU/XG5cbkJlZm9yZSBJIGRpZyBpbnRvIHRoZSBzcGVjaWZpY3Mgb2YgdGhlIGNoYW5nZSwgSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gVGltZSB0byB1c2UgYGdyZXBwZXJgIGFuZCBsb29rIGZvciB0aGUgYGNvbmZpZyBCTEtfREVWX0RSQkRgIG9wdGlvbiBvciBhbnl0aGluZyBzaW1pbGFyIGluIHRoZSBLY29uZmlnIGZpbGVzLiBUaGF0IHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyBEUkJEIGlzIGNvbmZpZ3VyZWQgYW5kIG1pZ2h0IHNoZWQgc29tZSBsaWdodCBvbiB0aGUgbW90aXZhdGlvbiBmb3IgdGhlIHBvbGljeSBsZW5ndGggbW9kaWZpY2F0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjQxLCJPdXRwdXRUb2tlbnMiOjIyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzE5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMTg6NTc6NDMuMDE0MjMxMzAxWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMjk4MDk3NzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEJMS19ERVZfRFJCRFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2Jsb2NrL2RyYmQvS2NvbmZpZz02PWNvbW1lbnQgXFxcIkRSQkQgZGlzYWJsZWQgYmVjYXVzZSBQUk9DX0ZTIG9yIElORVQgbm90IHNlbGVjdGVkXFxcIlxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL0tjb25maWctOC1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvS2NvbmZpZzo5OmNvbmZpZyBCTEtfREVWX0RSQkRcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvS2NvbmZpZy0xMC1cXHR0cmlzdGF0ZSBcXFwiRFJCRCBEaXN0cmlidXRlZCBSZXBsaWNhdGVkIEJsb2NrIERldmljZSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQxODo1Nzo0NS4yNDQwNDc3NDhaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjA4NDE2NjY0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcy4gSGVyZSdzIGhvdyBJJ2QgYXBwcm9hY2ggdGhhdCBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlLCB0aGlua2luZyBhbG91ZDpcblxuKipFeGFtaW5pbmcgdGhlIERSQkQgS2NvbmZpZyBmb3IgQ29udGV4dCoqXG5cblJpZ2h0LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgZGVwZW5kZW5jaWVzIGZvciBEUkJELCB0aGUgRGlzdHJpYnV0ZWQgUmVwbGljYXRlZCBCbG9jayBEZXZpY2UuIFRoYXQgYGRyaXZlcnMvYmxvY2svZHJiZC9LY29uZmlnYCBmaWxlIHNob3VsZCBiZSB0aGUga2V5IHRvIGZpZ3VyaW5nIG91dCB3aGF0IG90aGVyIGNvbXBvbmVudHMgb3IgZmVhdHVyZXMgbmVlZCB0byBiZSBlbmFibGVkIG9yIGFyZSBhdCBsZWFzdCByZWxhdGVkIHRvIGl0LiBJJ2xsIG5lZWQgdG8gc2VlIHdoaWNoIHN5bWJvbHMgYXJlIGRlZmluZWQsIHdoYXQgb3RoZXIgS2NvbmZpZyBmaWxlcyBpdCBpbmNsdWRlcyAoaWYgYW55KSwgYW5kIHdoaWNoIG90aGVyIGtlcm5lbCBmZWF0dXJlcyB0aGUgRFJCRCBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVseSBvbiwgb3IgaW4gdHVybiwgbWlnaHQgaW5mbHVlbmNlLiBJdCBpcyBhbHdheXMgYSBnb29kIGlkZWEgdG8gY29uc2lkZXIgYWxsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgYW4gYXJlYSwgc28gSSdsbCBiZSBsb29raW5nIGZvciBgc2VsZWN0YCwgYGRlcGVuZHMgb25gLCBhbmQgYGRlZmF1bHRgIHN0YXRlbWVudHMgdGhhdCB3b3VsZCBjbHVlIG1lIGludG8gdGhlIGJ1aWxkIGRlcGVuZGVuY2llcywgYXMgd2VsbCBhcyBhbnkgY29uZGl0aW9uYWwgbG9naWMgd2hpY2ggY291bGQgcHJvdmlkZSBjbHVlcyBhcyB0byBidWlsZCBjb25mbGljdHMuIFRoaXMgaXMgYSBjcnVjaWFsIGZpcnN0IHN0ZXAgZm9yIHVuZGVyc3RhbmRpbmcgaG93IERSQkQgZml0cyBpbnRvIHRoZSBicm9hZGVyIGtlcm5lbCBlY29zeXN0ZW0sIHdoYXQgaXRzIHJlcXVpcmVtZW50cyBhcmUsIGFuZCBhbnkgcG90ZW50aWFsIGNvbmZsaWN0cyB0aGF0IG1heSBleGlzdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDQxMywiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDE4OjU3OjQ4LjQ1MjQ2OTAwMloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkwOTUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvYmxvY2svZHJiZC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHQjXFxuICAgMzpcXHQjIERSQkQgZGV2aWNlIGRyaXZlciBjb25maWd1cmF0aW9uXFxuICAgNDpcXHQjXFxuICAgNTpcXHRcXG4gICA2OlxcdGNvbW1lbnQgXFxcIkRSQkQgZGlzYWJsZWQgYmVjYXVzZSBQUk9DX0ZTIG9yIElORVQgbm90IHNlbGVjdGVkXFxcIlxcbiAgIDc6XFx0XFx0ZGVwZW5kcyBvbiBQUk9DX0ZTPSduJyB8fCBJTkVUPSduJ1xcbiAgIDg6XFx0XFxuICAgOTpcXHRjb25maWcgQkxLX0RFVl9EUkJEXFxuICAxMDpcXHRcXHR0cmlzdGF0ZSBcXFwiRFJCRCBEaXN0cmlidXRlZCBSZXBsaWNhdGVkIEJsb2NrIERldmljZSBzdXBwb3J0XFxcIlxcbiAgMTE6XFx0XFx0ZGVwZW5kcyBvbiBQUk9DX0ZTIFxcdTAwMjZcXHUwMDI2IElORVRcXG4gIDEyOlxcdFxcdHNlbGVjdCBMUlVfQ0FDSEVcXG4gIDEzOlxcdFxcdHNlbGVjdCBDUkMzMlxcbiAgMTQ6XFx0XFx0aGVscFxcbiAgMTU6XFx0XFxuICAxNjpcXHRcXHQgIE5PVEU6IEluIG9yZGVyIHRvIGF1dGhlbnRpY2F0ZSBjb25uZWN0aW9ucyB5b3UgaGF2ZSB0byBzZWxlY3RcXG4gIDE3OlxcdFxcdCAgQ1JZUFRPX0hNQUMgYW5kIGEgaGFzaCBmdW5jdGlvbiBhcyB3ZWxsLlxcbiAgMTg6XFx0XFxuICAxOTpcXHRcXHQgIERSQkQgaXMgYSBzaGFyZWQtbm90aGluZywgc3luY2hyb25vdXNseSByZXBsaWNhdGVkIGJsb2NrIGRldmljZS4gSXRcXG4gIDIwOlxcdFxcdCAgaXMgZGVzaWduZWQgdG8gc2VydmUgYXMgYSBidWlsZGluZyBibG9jayBmb3IgaGlnaCBhdmFpbGFiaWxpdHlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMTg6NTc6NDguNDUyNTYyNzkyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY2MjA0MDIxOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgTmV0bGluayBQb2xpY3kgTGVuZ3RocyBpbiB0aGUgRFJCRCBLZXJuZWwgTW9kdWxlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQgc2VlbXMgdG8gYmUgZGVhbGluZyB3aXRoIG1vZGlmaWNhdGlvbnMgdG8gbmV0bGluayBwb2xpY3kgbGVuZ3RocyB3aXRoaW4gdGhlIGBCTEtfREVWX0RSQkRgIGNvbmZpZ3VyYXRpb24uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byB0cmFjZSB0aGUgaW1wYWN0IG9mIHRoaXMgY2hhbmdlLiBJdCdzIGNydWNpYWwgdG8gdW5kZXJzdGFuZCB3aGljaCBmdW5jdGlvbnMgcmVseSBvbiB0aGVzZSBzcGVjaWZpYyBwb2xpY2llcy5cblxuTGV0J3Mgc2VlLCB0aGUgcmVsZXZhbnQgcG9saWNpZXMgYmVpbmcgYWx0ZXJlZCBhcmU6IGBkcmJkX2Rpc2Nvbm5lY3RfcGFybXNfbmxfcG9saWN5YCwgYGRyYmRfZGlza19jb25mX25sX3BvbGljeWAsIGBkcmJkX2RyYmRfY2ZnX2NvbnRleHRfbmxfcG9saWN5YCwgYGRyYmRfbmV0X2NvbmZfbmxfcG9saWN5YCwgYGRyYmRfcGVlcl9kZXZpY2Vfc3RhdGlzdGljc19ubF9wb2xpY3lgLCBhbmQgYGRyYmRfcmVzX29wdHNfbmxfcG9saWN5YC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZXNlIGFyZSBiZWluZyB1c2VkLCBiZWNhdXNlIGEgY2hhbmdlIGluIHRoZWlyIGxlbmd0aCBjb3VsZCBoYXZlIHJlcGVyY3Vzc2lvbnMgaW4gb3RoZXIgYXJlYXMuXG5cbkEgcXVpY2sgYGdyZXBgIHNob3VsZCByZXZlYWwgdGhlIGZ1bmN0aW9uIGNhbGxzIG9yIGNvZGUgc2VjdGlvbnMgd2hlcmUgdGhlc2UgcG9saWNpZXMgYXJlIHJlZmVyZW5jZWQuIEknbGwgbmVlZCB0byBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSBwYXJhbWV0ZXIgcGFyc2luZyBhbmQgZGF0YSB2YWxpZGF0aW9uIHdpdGhpbiB0aG9zZSBmdW5jdGlvbnMuIFRoaXMgc2hvdWxkIGlkZW50aWZ5IHRoZSBkb3duc3RyZWFtIGVmZmVjdHMgb2YgdGhpcyBwYXRjaC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDk2MSwiT3V0cHV0VG9rZW5zIjoyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDE4OjU3OjUyLjExNDYwNTc0WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMjIzNjA3NzgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZHJiZF9kaXNrX2NvbmZfbmxfcG9saWN5XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTQ5PWNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfZGlzY29ubmVjdF9wYXJtc19ubF9wb2xpY3lbRFJCRF9BX0RJU0NPTk5FQ1RfUEFSTVNfRk9SQ0VfRElTQ09OTkVDVCArIDFdID0ge1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTItXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTM6Y29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9kaXNrX2NvbmZfbmxfcG9saWN5W0RSQkRfQV9ESVNLX0NPTkZfRElTQUJMRV9XUklURV9TQU1FICsgMV0gPSB7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTQtXFx0W0RSQkRfQV9ESVNLX0NPTkZfQkFDS0lOR19ERVZdID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HLCAubGVuID0gMTI4IC0gMSwgfSxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTIyOD1zdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9hdHRhY2hfbmxfcG9saWN5W0RSQkRfTkxBX0RJU0tfQ09ORiArIDFdID0ge1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTIyOS1cXHRbRFJCRF9OTEFfQ0ZHX0NPTlRFWFRdID0gTkxBX1BPTElDWV9ORVNURUQoZHJiZF9kcmJkX2NmZ19jb250ZXh0X25sX3BvbGljeSksXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6MjMwOlxcdFtEUkJEX05MQV9ESVNLX0NPTkZdID0gTkxBX1BPTElDWV9ORVNURUQoZHJiZF9kaXNrX2NvbmZfbmxfcG9saWN5KSxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0yMzEtfTtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTMxND1zdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9jaGdfZGlza19vcHRzX25sX3BvbGljeVtEUkJEX05MQV9ESVNLX0NPTkYgKyAxXSA9IHtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zMTUtXFx0W0RSQkRfTkxBX0NGR19DT05URVhUXSA9IE5MQV9QT0xJQ1lfTkVTVEVEKGRyYmRfZHJiZF9jZmdfY29udGV4dF9ubF9wb2xpY3kpLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjMxNjpcXHRbRFJCRF9OTEFfRElTS19DT05GXSA9IE5MQV9QT0xJQ1lfTkVTVEVEKGRyYmRfZGlza19jb25mX25sX3BvbGljeSksXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMzE3LX07XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz03MDM9c3RhdGljIGludCBfX2Rpc2tfY29uZl9mcm9tX2F0dHJzKHN0cnVjdCBkaXNrX2NvbmYgKnMsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy03MTktXFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NzIwOlxcdGVyciA9IG5sYV9wYXJzZV9uZXN0ZWRfZGVwcmVjYXRlZChudGIsIG1heHR5cGUsIHRsYSwgZHJiZF9kaXNrX2NvbmZfbmxfcG9saWN5LCBOVUxMKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy03MjEtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oPTE5PWV4dGVybiBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX2Rpc2Nvbm5lY3RfcGFybXNfbmxfcG9saWN5W0RSQkRfQV9ESVNDT05ORUNUX1BBUk1TX0ZPUkNFX0RJU0NPTk5FQ1QgKyAxXTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDoyMDpleHRlcm4gY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9kaXNrX2NvbmZfbmxfcG9saWN5W0RSQkRfQV9ESVNLX0NPTkZfRElTQUJMRV9XUklURV9TQU1FICsgMV07XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtMjEtZXh0ZXJuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfZHJiZF9jZmdfY29udGV4dF9ubF9wb2xpY3lbRFJCRF9BX0RSQkRfQ0ZHX0NPTlRFWFRfQ1RYX1BFRVJfQUREUiArIDFdO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQxODo1Nzo1NC4zMzY5NzA0MDhaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNzkwMTg0ODkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2Vzcywga2VlcGluZyBpbiBtaW5kIEknbSBzcGVha2luZyB0byBhIGZlbGxvdyBleHBlcnQ6XG5cbioqSW52ZXN0aWdhdGluZyBgZHJiZF9yZXNfb3B0c19ubF9wb2xpY3lgKipcblxuQWxyaWdodCwgdGltZSB0byBnZXQgdG8gd29yay4gRmlyc3QsIG15IGJyYWluIGp1bXBzIHJpZ2h0IHRvIHRoZSBpZGVhIG9mIHVzaW5nIGBncmVwYC4gSXQncyB0aGUgbW9zdCBkaXJlY3QgYW5kIGVmZmljaWVudCB3YXkgdG8gbG9jYXRlIGEgc3BlY2lmaWMgc3RyaW5nIGxpa2UgYGRyYmRfcmVzX29wdHNfbmxfcG9saWN5YCwgZXNwZWNpYWxseSB3aGVuIEknbSBkZWFsaW5nIHdpdGggY29uZmlndXJhdGlvbiBmaWxlcyBvciBzb3VyY2UgY29kZS4gSSBrbm93IGZyb20gZXhwZXJpZW5jZSB0aGF0IGBncmVwYCB3aWxsIHF1aWNrbHkgc2NhbiBhIGxhcmdlIGNvcnB1cyBvZiB0ZXh0IGFuZCBwaW5wb2ludCBleGFjdGx5IHdoZXJlIHRoaXMgcGFydGljdWxhciB2YXJpYWJsZSBvciBwb2xpY3kgaXMgYmVpbmcgdXNlZC4gVGhhdCdzIHRoZSBwZXJmZWN0IHN0YXJ0aW5nIHBvaW50IHRvIHVuZGVyc3RhbmQgaXRzIGNvbnRleHQuIExldCdzIHNlZSB3aGF0IHdlIGNhbiBkaWcgdXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYyODIsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQxODo1Nzo1Ny4xMjcxNTc5MjhaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzMDIyNzQyMzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZHJiZF9yZXNfb3B0c19ubF9wb2xpY3lcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM9MTM0PWNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRyYmRfcGVlcl9kZXZpY2Vfc3RhdGlzdGljc19ubF9wb2xpY3lbRFJCRF9BX1BFRVJfREVWSUNFX1NUQVRJU1RJQ1NfUEVFUl9ERVZfRkxBR1MgKyAxXSA9IHtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTE0NC1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzoxNDU6Y29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9yZXNfb3B0c19ubF9wb2xpY3lbRFJCRF9BX1JFU19PUFRTX09OX05PX0RBVEEgKyAxXSA9IHtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0xNDYtXFx0W0RSQkRfQV9SRVNfT1BUU19DUFVfTUFTS10gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcsIC5sZW4gPSBEUkJEX0NQVV9NQVNLX1NJWkUgLSAxLCB9LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM9MTk5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX25ld19yZXNvdXJjZV9ubF9wb2xpY3lbRFJCRF9OTEFfUkVTT1VSQ0VfT1BUUyArIDFdID0ge1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTIwMC1cXHRbRFJCRF9OTEFfQ0ZHX0NPTlRFWFRdID0gTkxBX1BPTElDWV9ORVNURUQoZHJiZF9kcmJkX2NmZ19jb250ZXh0X25sX3BvbGljeSksXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6MjAxOlxcdFtEUkJEX05MQV9SRVNPVVJDRV9PUFRTXSA9IE5MQV9QT0xJQ1lfTkVTVEVEKGRyYmRfcmVzX29wdHNfbmxfcG9saWN5KSxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0yMDItfTtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTIxMD1zdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9yZXNvdXJjZV9vcHRzX25sX3BvbGljeVtEUkJEX05MQV9SRVNPVVJDRV9PUFRTICsgMV0gPSB7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtMjExLVxcdFtEUkJEX05MQV9DRkdfQ09OVEVYVF0gPSBOTEFfUE9MSUNZX05FU1RFRChkcmJkX2RyYmRfY2ZnX2NvbnRleHRfbmxfcG9saWN5KSxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzoyMTI6XFx0W0RSQkRfTkxBX1JFU09VUkNFX09QVFNdID0gTkxBX1BPTElDWV9ORVNURUQoZHJiZF9yZXNfb3B0c19ubF9wb2xpY3kpLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTIxMy19O1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM9ODYwPXN0YXRpYyBpbnQgX19yZXNfb3B0c19mcm9tX2F0dHJzKHN0cnVjdCByZXNfb3B0cyAqcyxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTg3Ni1cXHRcXHRyZXR1cm4gLUVOT01FTTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo4Nzc6XFx0ZXJyID0gbmxhX3BhcnNlX25lc3RlZF9kZXByZWNhdGVkKG50YiwgbWF4dHlwZSwgdGxhLCBkcmJkX3Jlc19vcHRzX25sX3BvbGljeSwgTlVMTCk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtODc4LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaD0yNT1leHRlcm4gY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZHJiZF9wZWVyX2RldmljZV9zdGF0aXN0aWNzX25sX3BvbGljeVtEUkJEX0FfUEVFUl9ERVZJQ0VfU1RBVElTVElDU19QRUVSX0RFVl9GTEFHUyArIDFdO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjI2OmV4dGVybiBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX3Jlc19vcHRzX25sX3BvbGljeVtEUkJEX0FfUkVTX09QVFNfT05fTk9fREFUQSArIDFdO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oLTI3LWV4dGVybiBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBkcmJkX3Jlc2l6ZV9wYXJtc19ubF9wb2xpY3lbRFJCRF9BX1JFU0laRV9QQVJNU19BTF9TVFJJUEVfU0laRSArIDFdO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQxODo1Nzo1OS40Mjk0Mzg5NjVaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzkzNzQyMTYxMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIG15IGV4cGVydCBwZXJzcGVjdGl2ZTpcblxuKipEaXZpbmcgaW50byB0aGUgTmV0bGluayBQb2xpY3kgUGF0Y2gqKlxuXG5SaWdodCwgc28gdGhpcyBwYXRjaCBpcyBjbGVhcmx5IG1lc3Npbmcgd2l0aCBuZXRsaW5rIHBvbGljaWVzLiBUaGF0IG1lYW5zIHdlJ3JlIGRlYWxpbmcgd2l0aCB0aGUgZnJhbWV3b3JrIGZvciBwYXJzaW5nIG5ldGxpbmsgbWVzc2FnZXMsIHdoaWNoIGlzIGFsd2F5cyBhIGNyaXRpY2FsIGFyZWEuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaWd1cmUgb3V0IHRoZSBzY29wZSBvZiB0aGVzZSBjaGFuZ2VzLiBJIHNlZSBmdW5jdGlvbnMgbGlrZSBgX19kaXNrX2NvbmZfZnJvbV9hdHRyc2AsIGBfX3Jlc19vcHRzX2Zyb21fYXR0cnNgLCBhbmQgYF9fbmV0X2NvbmZfZnJvbV9hdHRyc2AgbWVudGlvbmVkLiBUaGV5J3JlIGVpdGhlciBnZW5lcmF0ZWQgb3IgaGFuZC1jb2RlZCB0byBzcGVjaWZpY2FsbHkgcGFyc2UgYXR0cmlidXRlcyB3aXRoaW4gdGhvc2UgbmV0bGluayBtZXNzYWdlcywgYW5kIEkgbmVlZCB0byBzZWUgaWYgdGhlIHBhdGNoIGlzIGNoYW5naW5nIGV4aXN0aW5nIHBvbGljaWVzLCBhZGRpbmcgbmV3IG9uZXMsIG9yIGJvdGguIFRoZXNlIFwiZnJvbV9hdHRyc1wiIGZ1bmN0aW9ucyBhcmUgdXN1YWxseSBwcmV0dHkgY3J1Y2lhbCBmb3IgYW55IG5ldGxpbmsgc3Vic3lzdGVtLlxuXG5UaGUga2V5IG5vdyBpcyB0byB0cmFjZSB0aGUgaW1wYWN0LiBMZXQncyBzdGFydCB3aXRoIGBfX3Jlc19vcHRzX2Zyb21fYXR0cnNgIGFuZCBzZWUgd2hlcmUgaXQncyBhY3R1YWxseSBiZWluZyAqdXNlZCouIFVuZGVyc3RhbmRpbmcgdGhlIGNhbGwgc2l0ZXMgd2lsbCBpbW1lZGlhdGVseSBoaWdobGlnaHQgdGhlIHN1YnN5c3RlbXMgb3IgZmVhdHVyZXMgdGhpcyBwYXRjaCB0b3VjaGVzLCBhbmQgZnJvbSB0aGVyZSBJIGNhbiBhc3Nlc3MgdGhlIHBvdGVudGlhbCByaXBwbGUgZWZmZWN0cyBhbmQgZGV0ZXJtaW5lIHRoZSByaXNrIGludm9sdmVkIHdpdGggdGhpcyBwYXRjaC4gVGhpcyBpcyBnb2luZyB0byBiZSBteSBpbW1lZGlhdGUgbmV4dCBzdGVwOyBnZXQgdGhlIHVzZS1jYXNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3NDE5LCJPdXRwdXRUb2tlbnMiOjIyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMTg6NTg6MDMuMzY2ODYzNzE4WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzEwNzI2MDQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9fcmVzX29wdHNfZnJvbV9hdHRyc1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz04NTM9aW50IGRpc2tfY29uZl9udGJfZnJvbV9hdHRycyhcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTg1OS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo4NjA6c3RhdGljIGludCBfX3Jlc19vcHRzX2Zyb21fYXR0cnMoc3RydWN0IHJlc19vcHRzICpzLFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTg2MS1cXHRcXHRzdHJ1Y3QgbmxhdHRyICoqKnJldF9uZXN0ZWRfYXR0cmlidXRlX3RhYmxlLFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM9ODk3PWludCByZXNfb3B0c19mcm9tX2F0dHJzKHN0cnVjdCByZXNfb3B0cyAqcyxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTg5OS17XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6OTAwOlxcdHJldHVybiBfX3Jlc19vcHRzX2Zyb21fYXR0cnMocywgTlVMTCwgaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtOTAxLX1cXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTkwMz1pbnQgcmVzX29wdHNfbnRiX2Zyb21fYXR0cnMoXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy05MDYte1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjkwNzpcXHRyZXR1cm4gX19yZXNfb3B0c19mcm9tX2F0dHJzKE5VTEwsIHJldF9uZXN0ZWRfYXR0cmlidXRlX3RhYmxlLCBpbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy05MDgtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQxODo1ODowNS42Nzc1OTc3NjVaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjgwMjE1NDY0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgbXlzZWxmOlxuXG4qKlRyYWNpbmcgdGhlIFVzYWdlIG9mIGByZXNfb3B0c19mcm9tX2F0dHJzYCoqXG5cbk9rYXksIHNvIEknbSB0cnlpbmcgdG8gdW5kZXJzdGFuZCBob3cgYHJlc19vcHRzX2Zyb21fYXR0cnNgIGlzIHV0aWxpemVkIHdpdGhpbiB0aGlzIGNvZGUuIFRoZSBpbW1lZGlhdGUgcXVlc3Rpb24gYnV6emluZyBpbiBteSBtaW5kIGlzOiAqd2hlcmUqIGV4YWN0bHkgZG9lcyB0aGlzIGZ1bmN0aW9uIGdldCBjYWxsZWQ/IEkgbmVlZCB0byB0cmFjayBkb3duIGFsbCBpbnN0YW5jZXMgb2YgaXRzIHVzZSB0byBncmFzcCBpdHMgcm9sZSBpbiB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUuIEkga25vdyB0aGlzIHNlZW1zIGVsZW1lbnRhcnkgdG8gYW4gZXhwZXJ0LCBidXQgaXQncyB0aGUgZnVuZGFtZW50YWwgZmlyc3Qgc3RlcC4gVW5kZXJzdGFuZGluZyB1c2FnZSBwYXR0ZXJucyBvZnRlbiB1bmNvdmVycyBzdWJ0bGUgZGVwZW5kZW5jaWVzIG9yIGFzc3VtcHRpb25zLiBMZXQncyBzZWUgaG93IGFuZCB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGVtcGxveWVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MTYzLCJPdXRwdXRUb2tlbnMiOjIxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMTg6NTg6MDguNDc5NzU1OTU1WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNjQxODI2MzYyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJlc19vcHRzX2Zyb21fYXR0cnNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz0yOTkzPWludCBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMDA5LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MzAxMDpcXHRlcnIgPSByZXNfb3B0c19mcm9tX2F0dHJzKFxcdTAwMjZyZXNfb3B0cywgaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMDExLVxcdGlmIChlcnIgXFx1MDAyNlxcdTAwMjYgZXJyICE9IC1FTk9NU0cpIHtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDMyOT1pbnQgZHJiZF9ubF9uZXdfcmVzb3VyY2VfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MzQzLVxcdHNldF9yZXNfb3B0c19kZWZhdWx0cyhcXHUwMDI2cmVzX29wdHMpO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDM0NDpcXHRlcnIgPSByZXNfb3B0c19mcm9tX2F0dHJzKFxcdTAwMjZyZXNfb3B0cywgaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MzQ1LVxcdGlmIChlcnIgXFx1MDAyNlxcdTAwMjYgZXJyICE9IC1FTk9NU0cpIHtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jPTg1Mz1pbnQgZGlza19jb25mX250Yl9mcm9tX2F0dHJzKFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtODU5LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjg2MDpzdGF0aWMgaW50IF9fcmVzX29wdHNfZnJvbV9hdHRycyhzdHJ1Y3QgcmVzX29wdHMgKnMsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtODYxLVxcdFxcdHN0cnVjdCBubGF0dHIgKioqcmV0X25lc3RlZF9hdHRyaWJ1dGVfdGFibGUsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy04OTYtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6ODk3OmludCByZXNfb3B0c19mcm9tX2F0dHJzKHN0cnVjdCByZXNfb3B0cyAqcyxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy04OTgtXFx0XFx0XFx0XFx0c3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy04OTkte1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjkwMDpcXHRyZXR1cm4gX19yZXNfb3B0c19mcm9tX2F0dHJzKHMsIE5VTEwsIGluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTkwMS19XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz05MDM9aW50IHJlc19vcHRzX250Yl9mcm9tX2F0dHJzKFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtOTA2LXtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo5MDc6XFx0cmV0dXJuIF9fcmVzX29wdHNfZnJvbV9hdHRycyhOVUxMLCByZXRfbmVzdGVkX2F0dHJpYnV0ZV90YWJsZSwgaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtOTA4LX1cXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oPTMxOD12b2lkIHNldF9kaXNrX2NvbmZfZGVmYXVsdHMoc3RydWN0IGRpc2tfY29uZiAqeCk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtMzE5LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjMyMDppbnQgcmVzX29wdHNfZnJvbV9hdHRycyhzdHJ1Y3QgcmVzX29wdHMgKnMsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oLTMyMS1pbnQgcmVzX29wdHNfbnRiX2Zyb21fYXR0cnMoc3RydWN0IG5sYXR0ciAqKipyZXRfbmVzdGVkX2F0dHJpYnV0ZV90YWJsZSwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDE4OjU4OjExLjEyMTU4NzA5N1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjM4OTcxMzgzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhlc2UgRFJCRCBuZXRsaW5rIGNvbW1hbmRzLiBJJ20gc2VlaW5nIGEgcGF0dGVybiBoZXJlOiBgZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXRgLCBgZHJiZF9ubF9uZXdfcmVzb3VyY2VfZG9pdGAsIGBkcmJkX25sX2Rpc2tfY29uZl9kb2l0YCwgYW5kIHNvIG9uLiBQcmV0dHkgc3RhbmRhcmQgbmV0bGluayBuYW1pbmcgY29udmVudGlvbiwgcmVhbGx5LiBOb3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSB1bmRlcmx5aW5nIHN0cnVjdHVyZSwgc28gdGhlIGZpcnN0IHRoaW5nIEknbGwgZG8gaXMgemVybyBpbiBvbiB0aGUgbmV0bGluayBvcGVyYXRpb25zIHN0cnVjdHVyZSBpdHNlbGYuIFRpbWUgdG8gbG9jYXRlIHRoYXQuIEl0IGhvbGRzIHRoZSBrZXkgdG8gaG93IHRoZXNlIGNvbW1hbmRzIGFyZSBkZWZpbmVkIGFuZCBoYW5kbGVkLiBGaW5kaW5nIHRoYXQgc3RydWN0dXJlIHdpbGwgYmUgdGhlIGxhdW5jaHBhZCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgZW50aXJlIG5ldGxpbmsgY29tbWFuZCBmcmFtZXdvcmsgaW4gdGhpcyBjb250ZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo5MjI2LCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMTg6NTg6MTQuMzYwNTYyOTJaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxNzA0OTQ0MjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz0yODU3PWludCBkcmJkX25sX3Jlc2l6ZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI5OTItXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoyOTkzOmludCBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjk5NC17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz0zNTk9Y29uc3Qgc3RydWN0IGdlbmxfc3BsaXRfb3BzIGRyYmRfbmxfb3BzWzMyXSA9IHtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQxNC1cXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDE1OlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MTYtXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaD01MD1pbnQgZHJiZF9ubF9kZWxfcmVzb3VyY2VfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo1MTppbnQgZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtNTItaW50IGRyYmRfbmxfY29ubmVjdF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQxODo1ODoxNi41MzEwNjI3MTlaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjY4NzY4MzM3NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBEUkJEIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0d2Vha2luZyBgRFJCRF9DUFVfTUFTS19TSVpFYCBmcm9tIDMyIHRvIDI1Ni4gVGhhdCdzIGEgc3RyYWlnaHRmb3J3YXJkIGNoYW5nZSwgcG90ZW50aWFsbHkgaW1wYWN0aW5nIHBlcmZvcm1hbmNlIG9yIHJlc291cmNlIHVzYWdlIGlmIG5vdCBvcHRpbWl6ZWQsIGJ1dCB0aGUgbW9yZSBpbnRlcmVzdGluZyBwYXJ0IGlzIHRoZSBgTkxBX05VTF9TVFJJTkdgIGZpeC4gTGV0IG1lIHNlZS4uLiB0aGV5J3ZlIGNvcnJlY3RlZCBhIGJ1ZyByZWxhdGVkIHRvIHRoZSBsZW5ndGggY2FsY3VsYXRpb24sIHNwZWNpZmljYWxseSBob3cgdGhlIE5VTCB0ZXJtaW5hdG9yIGlzIGhhbmRsZWQgd2l0aGluIE5ldGxpbmsgYXR0cmlidXRlIGxlbmd0aCBjaGVja3MuIEhhbmcgb24sIHdhc24ndCB0aGVyZSBzb21ldGhpbmcgYWJvdXQgYE5MQV9OVUxfU1RSSU5HYCBhbmQgdGhlIGAubGVuYCBtZW1iZXIgaW4gYG5sYV9wb2xpY3lgPyBEb2VzIHRoYXQgaW5kZWVkIHJlcHJlc2VudCB0aGUgbWF4aW11bSBzdHJpbmcgbGVuZ3RoICp3aXRob3V0KiB0aGUgTlVMIGJ5dGUsIGFzIGluLCB0aGUgcGF5bG9hZCBzaXplPyBSaWdodCwgSSBuZWVkIHRvIGRvdWJsZS1jaGVjayB0aGUgYG5sYV9wb2xpY3lgIGRlZmluaXRpb24gZm9yIGBOTEFfTlVMX1NUUklOR2AganVzdCB0byBiZSBjZXJ0YWluLiBJdCdzIGxpa2VseSB0aGUgY29tbWl0IG1lc3NhZ2UgcmVmZXJlbmNlcyB0aGlzIFwibWF4bGVuIC0gMVwiIGNvbmNlcHQsIEknZCBiZXQuXG5cblJlZ2FyZGxlc3MsIHRoaXMgYWZmZWN0cyBuZXRsaW5rIG1lc3NhZ2UgdmFsaWRhdGlvbiwgd2hpY2ggbWVhbnMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUga2VybmVsJ3MgbmV0bGluayBBUEkgZm9yIERSQkQuIFRoYXQncyBhIHJlZCBmbGFnLiBUaGlzIG5lZWRzIHRvIGJlIGZ1enplZCwgZ2l2ZW4gdGhhdCBpdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBibG9jayBkcml2ZXIgYW5kIERSQkQsIG9mIGNvdXJzZSwgaXMgdGhlIGRyaXZlciBpbiBxdWVzdGlvbi4gV2UnbGwgbmVlZCBgQkxLX0RFVl9EUkJEYCBlbmFibGVkIGZvciB0ZXN0aW5nLiBBbmQgb2YgY291cnNlLCBEUkJEIGRlcGVuZHMgb24gYm90aCBgUFJPQ19GU2AgYW5kIGBJTkVUYC4gSSB3b25kZXIgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcyBpbiBwbGF5IGhlcmUuIExldCdzIHNlZS4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo5OTA2LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjk2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDE4OjU4OjIzLjIxODc0OTE5M1oiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQyNTc1ODE1NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uIEJMS19ERVZfRFJCRFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2Jsb2NrL2RyYmQvS2NvbmZpZz00Mj1jb25maWcgRFJCRF9GQVVMVF9JTkpFQ1RJT05cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvS2NvbmZpZy00My1cXHRib29sIFxcXCJEUkJEIGZhdWx0IGluamVjdGlvblxcXCJcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvS2NvbmZpZzo0NDpcXHRkZXBlbmRzIG9uIEJMS19ERVZfRFJCRFxcbmRyaXZlcnMvYmxvY2svZHJiZC9LY29uZmlnLTQ1LVxcdGhlbHBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMTg6NTg6MjUuNjQ0NTE5OTQ4WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3Mzk1MDM1OTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIERSQkQgQ29uZmlndXJhdGlvbiBDaGFuZ2VzKipcblxuT2theSwgc28gSSBzZWUgYEJMS19ERVZfRFJCRGAgYXMgdGhlIGNlbnRyYWwgY29uZmlndXJhdGlvbiBwb2ludCBoZXJlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gemVybyBpbiBvbiB0aGF0LiBMZXQncyBzZWUsIHdoYXQgZWxzZSBpcyBzaWduaWZpY2FudD8gQWgsIGl0J3Mgbm90IGZ1bmN0aW9ucyB0aGF0IHdlcmUgbW9kaWZpZWQgZGlyZWN0bHksIGJ1dCByYXRoZXIgdGhlc2UgZGF0YSBzdHJ1Y3R1cmVzIGxpa2UgYGRyYmRfZGlza19jb25mX25sX3BvbGljeWAsIGBkcmJkX25ldF9jb25mX25sX3BvbGljeWAsIGV0Yy4gVGhpcyBtZWFucyB0aGUgY29yZSBjb25maWcgKnBvbGljaWVzKiBhcmUgd2hhdCdzIGdldHRpbmcgYWRqdXN0ZWQuIFRoZSBmdW5jdGlvbnMgdGhhdCBhcmUgKnVzaW5nKiB0aG9zZSBwb2xpY2llcyBhcmUgdGhlIGludGVyZXN0aW5nIGJpdHMuIEkgc2VlIGBfX2Rpc2tfY29uZl9mcm9tX2F0dHJzYCwgYF9fcmVzX29wdHNfZnJvbV9hdHRyc2AsIGV0Yy4gVGhvc2UgYXJlIGtleSwgYXMgdGhleSdyZSB0aGUgY29uc3VtZXJzLiBOb3csIGxldCdzIGxvb2sgYXQgdGhlIG5ldGxpbmsgaGFuZGxlcnMuLi4gdGhlc2Ugd2lsbCBsaWtlbHkgYmUgd2hlcmUgdGhlIG1hZ2ljIGhhcHBlbnMsIGFuZCB0aGUgY29uZmlnIGlzIGFjdHVhbGx5IGFwcGxpZWQgb3IgbW9kaWZpZWQuIEkndmUgZ290IGEgbGlzdCBoZXJlOiBgZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXRgLCBgZHJiZF9ubF9uZXdfcmVzb3VyY2VfZG9pdGAsIGBkcmJkX25sX2Rpc2tfY29uZl9kb2l0YCwgYGRyYmRfbmxfbmV0X2NvbmZfZG9pdGAsIGBkcmJkX25sX2Rpc2Nvbm5lY3RfZG9pdGAsIGBkcmJkX25sX2F0dGFjaF9kb2l0YCwgYW5kIGBkcmJkX25sX2Nvbm5lY3RfZG9pdGAuIFRob3NlIG5ldGxpbmsgaGFuZGxlcnMgYXJlIGRlZmluaXRlbHkgZ29pbmcgdG8gYmUgbXkgRm9jdXNTeW1ib2xzIGZvciBmdXJ0aGVyIGV4YW1pbmF0aW9uLiBUaGF0J3Mgd2hlcmUgdGhlIHJlYWwgbG9naWMgaXMgYmVpbmcgaW52b2tlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTA2NTIsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxODgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMTg6NTg6MzAuMzg0MDI3NDcxWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTc2NDc1OTgzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRyYmRfbmxfLipfZG9pdFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTc5OT1zdGF0aWMgaW50IGRyYmRfbmxfc2V0X3JvbGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtODM4LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6ODM5OmludCBkcmJkX25sX3ByaW1hcnlfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtODQwLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtODQzLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6ODQ0OmludCBkcmJkX25sX3NlY29uZGFyeV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy04NDUte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz05MTM9Y2hhciAqcHBzaXplKGNoYXIgKmJ1ZiwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUpXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTk0Mi0vKiBOb3RlIHRoZXNlIGFyZSBub3QgdG8gYmUgY29uZnVzZWQgd2l0aFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6OTQzOiAqIGRyYmRfbmxfc3VzcGVuZF9pb19kb2l0L2RyYmRfbmxfcmVzdW1lX2lvX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy05NDQtICogd2hpY2ggYXJlIChzdWIpIHN0YXRlIGNoYW5nZXMgdHJpZ2dlcmVkIGJ5IGFkbWluIChkcmJkc2V0dXApLFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz0xNTMxPXN0YXRpYyBpbnQgZGlza19vcHRzX2NoZWNrX2FsX3NpemUoc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UsIHN0cnVjdCBkaXNrX2NvbmYgKmRjKVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0xNTU0LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MTU1NTppbnQgZHJiZF9ubF9jaGdfZGlza19vcHRzX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTE1NTYte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz0xNzgxPXZvaWQgZHJiZF9iYWNraW5nX2Rldl9mcmVlKHN0cnVjdCBkcmJkX2RldmljZSAqZGV2aWNlLCBzdHJ1Y3QgZHJiZF9iYWNraW5nX2RldiAqbGRldilcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMTc5My1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjE3OTQ6aW50IGRyYmRfbmxfYXR0YWNoX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTE3OTUte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz0yMjE4PXN0YXRpYyBpbnQgYWRtX2RldGFjaChzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSwgaW50IGZvcmNlKVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yMjMzLSAqIE9ubHkgdGhlbiB3ZSBoYXZlIGZpbmFsbHkgZGV0YWNoZWQuICovXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoyMjM0OmludCBkcmJkX25sX2RldGFjaF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yMjM1LXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MjQyND1zdGF0aWMgdm9pZCBmcmVlX2NyeXB0byhzdHJ1Y3QgY3J5cHRvICpjcnlwdG8pXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI0MzEtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoyNDMyOmludCBkcmJkX25sX2NoZ19uZXRfb3B0c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yNDMzLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9MjU3ND1zdGF0aWMgdm9pZCBwZWVyX2RldmljZV90b19pbmZvKHN0cnVjdCBwZWVyX2RldmljZV9pbmZvICppbmZvLFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yNTg2LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MjU4NzppbnQgZHJiZF9ubF9jb25uZWN0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI1ODgte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz0yNzM2PXN0YXRpYyBlbnVtIGRyYmRfc3RhdGVfcnYgY29ubl90cnlfZGlzY29ubmVjdChzdHJ1Y3QgZHJiZF9jb25uZWN0aW9uICpjb25uZWN0aW9uLCBib29sIGZvcmNlKVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yODAxLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MjgwMjppbnQgZHJiZF9ubF9kaXNjb25uZWN0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI4MDMte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz0yODQxPXZvaWQgcmVzeW5jX2FmdGVyX29ubGluZV9ncm93KHN0cnVjdCBkcmJkX2RldmljZSAqZGV2aWNlKVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0yODU2LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6Mjg1NzppbnQgZHJiZF9ubF9yZXNpemVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjg1OC17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTI5OTItXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzoyOTkzOmludCBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMjk5NC17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMwMzAtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMDMxOmludCBkcmJkX25sX2ludmFsaWRhdGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzAzMi17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTMwOTk9c3RhdGljIGludCBkcmJkX2JtaW9fc2V0X3N1c3BfYWwoc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMxMDgtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMTA5OmludCBkcmJkX25sX2ludmFsX3BlZXJfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzExMC17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMxNTktXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMTYwOmludCBkcmJkX25sX3BhdXNlX3N5bmNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzE2MS17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMxNzktXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMTgwOmludCBkcmJkX25sX3Jlc3VtZV9zeW5jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMxODEte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjA3LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MzIwODppbnQgZHJiZF9ubF9zdXNwZW5kX2lvX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMyMDkte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zMjEyLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6MzIxMzppbnQgZHJiZF9ubF9yZXN1bWVfaW9fZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzIxNC17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTMyNjgtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozMjY5OmludCBkcmJkX25sX291dGRhdGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzI3MC17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jPTM4MDE9c3RhdGljIGludCBubGFfcHV0X3N0YXR1c19pbmZvKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBkcmJkX2RldmljZSAqZGV2aWNlLFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zODEzLVxcdCAqXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzozODE0OlxcdCAqIElmIHNpYiA9PSBOVUxMLCB0aGlzIGlzIGRyYmRfbmxfZ2V0X3N0YXR1c19kb2l0LCBleGVjdXRlZCBzeW5jaHJvbm91c2x5XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zODE1LVxcdCAqIGluIHRoZSBjb250ZXh0IG9mIHRoZSByZXF1ZXN0aW5nIHVzZXIgcHJvY2Vzcy4gRXhjbHVkZSBzZW5zaXRpdmVcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtMzk1MC1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jOjM5NTE6aW50IGRyYmRfbmxfZ2V0X3N0YXR1c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy0zOTUyLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDEwMz1pbnQgZHJiZF9ubF9nZXRfc3RhdHVzX2R1bXBpdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQxNTAtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0MTUxOmludCBkcmJkX25sX2dldF90aW1lb3V0X3R5cGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDE1Mi17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQxNzktXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0MTgwOmludCBkcmJkX25sX3N0YXJ0X292X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQxODEte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MjI1LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDIyNjppbnQgZHJiZF9ubF9uZXdfY191dWlkX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQyMjcte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYz00MzIwPXN0YXRpYyB2b2lkIHJlc291cmNlX3RvX2luZm8oc3RydWN0IHJlc291cmNlX2luZm8gKmluZm8sXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQzMjgtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0MzI5OmludCBkcmJkX25sX25ld19yZXNvdXJjZV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MzMwLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDM4NT1zdGF0aWMgdm9pZCBkZXZpY2VfdG9faW5mbyhzdHJ1Y3QgZGV2aWNlX2luZm8gKmluZm8sXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQzOTEtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0MzkyOmludCBkcmJkX25sX25ld19taW5vcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00MzkzLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDQ2Mj1zdGF0aWMgZW51bSBkcmJkX3JldF9jb2RlIGFkbV9kZWxfbWlub3Ioc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UpXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQ0OTgtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYzo0NDk5OmludCBkcmJkX25sX2RlbF9taW5vcl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00NTAwLXtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM9NDUxOD1zdGF0aWMgaW50IGFkbV9kZWxfcmVzb3VyY2Uoc3RydWN0IGRyYmRfcmVzb3VyY2UgKnJlc291cmNlKVxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00NTQ3LVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDU0ODppbnQgZHJiZF9ubF9kb3duX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jLTQ1NDkte1xcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYy00NjEwLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmM6NDYxMTppbnQgZHJiZF9ubF9kZWxfcmVzb3VyY2VfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMtNDYxMi17XFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYz0zNTk9Y29uc3Qgc3RydWN0IGdlbmxfc3BsaXRfb3BzIGRyYmRfbmxfb3BzWzMyXSA9IHtcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTM2Mi1cXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6MzYzOlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2dldF9zdGF0dXNfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zNjQtXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zNzgtXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM3OTpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9uZXdfbWlub3JfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zODAtXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zODctXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM4ODpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9kZWxfbWlub3JfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zODktXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zOTYtXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjM5NzpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9uZXdfcmVzb3VyY2VfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy0zOTgtXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MDUtXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQwNjpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9kZWxfcmVzb3VyY2VfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MDctXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MTQtXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQxNTpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDE2LVxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDIzLVxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0MjQ6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfY29ubmVjdF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQyNS1cXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQzMi1cXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDMzOlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2Rpc2Nvbm5lY3RfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00MzQtXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NDEtXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ0MjpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9hdHRhY2hfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NDMtXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NTAtXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ1MTpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9yZXNpemVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NTItXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy00NTktXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjQ2MDpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9wcmltYXJ5X2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDYxLVxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDY4LVxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0Njk6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfc2Vjb25kYXJ5X2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDcwLVxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDc3LVxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0Nzg6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfbmV3X2NfdXVpZF9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ3OS1cXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTQ4Ni1cXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NDg3OlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX3N0YXJ0X292X2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDg4LVxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDk1LVxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo0OTY6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfZGV0YWNoX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNDk3LVxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTA0LVxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1MDU6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfaW52YWxpZGF0ZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUwNi1cXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTUxMy1cXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTE0OlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2ludmFsX3BlZXJfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MTUtXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MjItXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjUyMzpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9wYXVzZV9zeW5jX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTI0LVxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTMxLVxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1MzI6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfcmVzdW1lX3N5bmNfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01MzMtXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NDAtXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU0MTpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9zdXNwZW5kX2lvX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTQyLVxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTQ5LVxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1NTA6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfcmVzdW1lX2lvX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTUxLVxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTU4LVxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1NTk6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfb3V0ZGF0ZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU2MC1cXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU2Ny1cXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTY4OlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2dldF90aW1lb3V0X3R5cGVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NjktXFx0XFx0LnBvc3RfZG9pdFxcdD0gZHJiZF9wb3N0X2RvaXQsXFxuLS1cXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYy01NzYtXFx0XFx0LnByZV9kb2l0XFx0PSBkcmJkX3ByZV9kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jOjU3NzpcXHRcXHQuZG9pdFxcdFxcdD0gZHJiZF9ubF9kb3duX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTc4LVxcdFxcdC5wb3N0X2RvaXRcXHQ9IGRyYmRfcG9zdF9kb2l0LFxcbi0tXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmMtNTg1LVxcdFxcdC5wcmVfZG9pdFxcdD0gZHJiZF9wcmVfZG9pdCxcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uYzo1ODY6XFx0XFx0LmRvaXRcXHRcXHQ9IGRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU4Ny1cXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU5NC1cXHRcXHQucHJlX2RvaXRcXHQ9IGRyYmRfcHJlX2RvaXQsXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmM6NTk1OlxcdFxcdC5kb2l0XFx0XFx0PSBkcmJkX25sX2NoZ19uZXRfb3B0c19kb2l0LFxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5jLTU5Ni1cXHRcXHQucG9zdF9kb2l0XFx0PSBkcmJkX3Bvc3RfZG9pdCxcXG4tLVxcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oPTQzPWludCBkcmJkX2FkbV9kdW1wX3BlZXJfZGV2aWNlc19kb25lKHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYik7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmgtNDQtXFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NDU6aW50IGRyYmRfbmxfZ2V0X3N0YXR1c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oLTQ2LWludCBkcmJkX25sX2dldF9zdGF0dXNfZHVtcGl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYik7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NDc6aW50IGRyYmRfbmxfbmV3X21pbm9yX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NDg6aW50IGRyYmRfbmxfZGVsX21pbm9yX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NDk6aW50IGRyYmRfbmxfbmV3X3Jlc291cmNlX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTA6aW50IGRyYmRfbmxfZGVsX3Jlc291cmNlX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTE6aW50IGRyYmRfbmxfcmVzb3VyY2Vfb3B0c19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjUyOmludCBkcmJkX25sX2Nvbm5lY3RfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo1MzppbnQgZHJiZF9ubF9kaXNjb25uZWN0X2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTQ6aW50IGRyYmRfbmxfYXR0YWNoX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTU6aW50IGRyYmRfbmxfcmVzaXplX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NTY6aW50IGRyYmRfbmxfcHJpbWFyeV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjU3OmludCBkcmJkX25sX3NlY29uZGFyeV9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjU4OmludCBkcmJkX25sX25ld19jX3V1aWRfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo1OTppbnQgZHJiZF9ubF9zdGFydF9vdl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjYwOmludCBkcmJkX25sX2RldGFjaF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjYxOmludCBkcmJkX25sX2ludmFsaWRhdGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo2MjppbnQgZHJiZF9ubF9pbnZhbF9wZWVyX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NjM6aW50IGRyYmRfbmxfcGF1c2Vfc3luY19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY0OmludCBkcmJkX25sX3Jlc3VtZV9zeW5jX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6NjU6aW50IGRyYmRfbmxfc3VzcGVuZF9pb19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY2OmludCBkcmJkX25sX3Jlc3VtZV9pb19kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjY3OmludCBkcmJkX25sX291dGRhdGVfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo2ODppbnQgZHJiZF9ubF9nZXRfdGltZW91dF90eXBlX2RvaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7XFxuZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmxfZ2VuLmg6Njk6aW50IGRyYmRfbmxfZG93bl9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pO1xcbmRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sX2dlbi5oOjcwOmludCBkcmJkX25sX2NoZ19kaXNrX29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaDo3MTppbnQgZHJiZF9ubF9jaGdfbmV0X29wdHNfZG9pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKTtcXG5kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubF9nZW4uaC03Mi1pbnQgZHJiZF9ubF9nZXRfcmVzb3VyY2VzX2R1bXBpdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQxODo1ODozMi45NjA1NjU5NzRaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjczOTY4ODU4MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgRFJCRCBOZXRsaW5rIFBvbGljeSBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdHdlYWtpbmcgdGhlIG5ldGxpbmsgcG9saWN5IGxlbmd0aHMsIHNwZWNpZmljYWxseSBmb3IgYE5MQV9OVUxfU1RSSU5HYCBhdHRyaWJ1dGVzIHdpdGhpbiB0aGUgRFJCRCBkcml2ZXIuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGl0J3MgZml4aW5nIGEgYnVnIOKAkyBzb21ldGhpbmcgYWJvdXQgdGhlIGxlbmd0aCBjYWxjdWxhdGlvbiBwcmV2aW91c2x5IGluY2x1ZGluZyB0aGUgTlVMIGJ5dGUsIHdoaWNoIGlzIGluY29ycmVjdC4gSXQgYWxzbyBsb29rcyBsaWtlIHRoZSBwYXRjaCBpcyBpbmNyZWFzaW5nIHRoZSBtYXhpbXVtIENQVSBtYXNrIHNpemUsIHdoaWNoIGlzIGEgZ29vZCB0aGluZyB0byBlbnN1cmUgdGhlcmUgaXNuJ3QgYSBoYXJkIGxpbWl0LiBUaGlzIGlzIGRlZmluaXRlbHkgZ29pbmcgdG8gaW1wYWN0IGhvdyB0aGUgZHJpdmVyIHZhbGlkYXRlcyBhbmQgcGFyc2VzIHRob3NlIGluY29taW5nIG5ldGxpbmsgbWVzc2FnZXMuXG5cbk5vdywgbGV0J3MgYnJlYWsgZG93biB0aGUgaW1wbGljYXRpb25zLiBUaGUgYWZmZWN0ZWQgZnVuY3Rpb25zIGFyZSB0aGUgb25lcyBwYXJzaW5nIHRoZXNlIGF0dHJpYnV0ZXM6IGBfX2Rpc2tfY29uZl9mcm9tX2F0dHJzYCwgYF9fcmVzX29wdHNfZnJvbV9hdHRyc2AsIGBfX25ldF9jb25mX2Zyb21fYXR0cnNgLCBhbmQgc28gb24uIFRoZXNlIGFyZSBhbGwgY2FsbGVkIGZyb20gdmFyaW91cyBgZG9pdGAgZnVuY3Rpb25zIGludm9sdmVkIGluIHJlc291cmNlIG9wZXJhdGlvbnM6IGBkcmJkX25sX3Jlc291cmNlX29wdHNfZG9pdGAsIGBkcmJkX25sX25ld19yZXNvdXJjZV9kb2l0YCwgYGRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0YCwgYGRyYmRfbmxfYXR0YWNoX2RvaXRgLCBgZHJiZF9ubF9jaGdfbmV0X29wdHNfZG9pdGAsIGFuZCBgZHJiZF9ubF9jb25uZWN0X2RvaXRgLiBJJ2xsIHdhbnQgdG8ga2VlcCBhbiBleWUgb24gdGhlc2UgYXMgRm9jdXNTeW1ib2xzIHNpbmNlIGNoYW5nZXMgaGVyZSBjYW4gcmlwcGxlIHRocm91Z2ggdGhlIGVudGlyZSByZXNvdXJjZSBjb25maWd1cmF0aW9uIGFuZCBtYW5hZ2VtZW50IGZsb3cuXG5cbkFscmlnaHQsIGxldCdzIG1ha2UgYSBxdWljayBub3RlIGFib3V0IGNvbmZpZ3MuIFdlJ3JlIGRlYWxpbmcgd2l0aCBgQkxLX0RFVl9EUkJEYCBoZXJlLiBOb3RoaW5nIG92ZXJseSBjb21wbGV4LCBpdCBkZXBlbmRzIG9uIGBQUk9DX0ZTYCBhbmQgYElORVRgLiBOb3RoaW5nIHRvIHdvcnJ5IGFib3V0LiBUaGVzZSBhcmUgc3RhbmRhcmQgYW5kIHVzdWFsbHkgZW5hYmxlZCwgc28gSSdsbCBqdXN0IGxpc3QgYEJMS19ERVZfRFJCRGAgYXMgdGhlIGtleSBjb25maWcgdG8gcmVtZW1iZXIuIE5vIG90aGVyIGNvbmZpZ3MgbmVlZCB0byBiZSBub3RlZCwgdGhlIGRlcGVuZGVuY2llcyBhcmUgdHJpdmlhbC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg4ODcsIk91dHB1dFRva2VucyI6MTc4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjc4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDE4OjU4OjM5LjcwMDI1Njg5N1oiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyMzExOTc3OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQkxLX0RFVl9EUkJEXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXRcIixcbiAgICBcImRyYmRfbmxfbmV3X3Jlc291cmNlX2RvaXRcIixcbiAgICBcImRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0XCIsXG4gICAgXCJkcmJkX25sX2F0dGFjaF9kb2l0XCIsXG4gICAgXCJkcmJkX25sX2NoZ19uZXRfb3B0c19kb2l0XCIsXG4gICAgXCJkcmJkX25sX2Nvbm5lY3RfZG9pdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBuZXRsaW5rIHBvbGljeSBsZW5ndGhzIGZvciBOTEFfTlVMX1NUUklORyBhdHRyaWJ1dGVzIGluIHRoZSBEUkJEIGRyaXZlciwgZml4aW5nIGEgYnVnIHdoZXJlIHRoZSBsZW5ndGggaW5jbHVkZWQgdGhlIE5VTCBieXRlLCBhbmQgaW5jcmVhc2VzIHRoZSBtYXhpbXVtIENQVSBtYXNrIHNpemUuIFRoaXMgYWZmZWN0cyBob3cgbmV0bGluayBtZXNzYWdlcyBhcmUgdmFsaWRhdGVkIGFuZCBwYXJzZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQkxLX0RFVl9EUkJEXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZHJiZF9ubF9yZXNvdXJjZV9vcHRzX2RvaXRcIixcbiAgICBcImRyYmRfbmxfbmV3X3Jlc291cmNlX2RvaXRcIixcbiAgICBcImRyYmRfbmxfY2hnX2Rpc2tfb3B0c19kb2l0XCIsXG4gICAgXCJkcmJkX25sX2F0dGFjaF9kb2l0XCIsXG4gICAgXCJkcmJkX25sX2NoZ19uZXRfb3B0c19kb2l0XCIsXG4gICAgXCJkcmJkX25sX2Nvbm5lY3RfZG9pdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBuZXRsaW5rIHBvbGljeSBsZW5ndGhzIGZvciBOTEFfTlVMX1NUUklORyBhdHRyaWJ1dGVzIGluIHRoZSBEUkJEIGRyaXZlciwgZml4aW5nIGEgYnVnIHdoZXJlIHRoZSBsZW5ndGggaW5jbHVkZWQgdGhlIE5VTCBieXRlLCBhbmQgaW5jcmVhc2VzIHRoZSBtYXhpbXVtIENQVSBtYXNrIHNpemUuIFRoaXMgYWZmZWN0cyBob3cgbmV0bGluayBtZXNzYWdlcyBhcmUgdmFsaWRhdGVkIGFuZCBwYXJzZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowql248[1] Phase: Succeeded StartedAt: 2026-08-02 18:59:04 +0000 UTC FinishedAt: 2026-08-02 18:59:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-02 18:59:04 +0000 UTC FinishedAt: 2026-08-02 18:59:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[2] Phase: Succeeded StartedAt: 2026-08-02 18:59:04 +0000 UTC FinishedAt: 2026-08-02 20:48:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-02 18:59:04 +0000 UTC FinishedAt: 2026-08-02 20:48:18 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-02 18:59:04 +0000 UTC FinishedAt: 2026-08-02 18:59:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-02 18:59:04 +0000 UTC FinishedAt: 2026-08-02 18:59:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.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-workflowql248/series-workflowql248-convert-artifact-709787464/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-02 18:59:29 +0000 UTC FinishedAt: 2026-08-02 19:28:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-02 18:59:29 +0000 UTC FinishedAt: 2026-08-02 19:28:30 +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:*a840e92e-4755-468d-96b2-ab3af1f1dc80,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-workflowql248/series-workflowql248-convert-artifact-709787464/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": "fdbf94c8-f1b7-4f82-a5a3-ae99726d3937", "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-workflowql248/series-workflowql248-build-action-2133617598/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-02 18:59:29 +0000 UTC FinishedAt: 2026-08-02 19:28:19 +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:*a840e92e-4755-468d-96b2-ab3af1f1dc80,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-workflowql248/series-workflowql248-convert-artifact-709787464/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": "fdbf94c8-f1b7-4f82-a5a3-ae99726d3937", "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-workflowql248/series-workflowql248-build-action-2133617598/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-02 19:28:30 +0000 UTC FinishedAt: 2026-08-02 19:28:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-02 19:28:30 +0000 UTC FinishedAt: 2026-08-02 19:28:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-02 19:28:30 +0000 UTC FinishedAt: 2026-08-02 19:28:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-02 19:28:30 +0000 UTC FinishedAt: 2026-08-02 19:28:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.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-workflowql248/series-workflowql248-convert-artifact-4281855791/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-02 19:28:52 +0000 UTC FinishedAt: 2026-08-02 19:30:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-02 19:28:52 +0000 UTC FinishedAt: 2026-08-02 19:30:24 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*fdbf94c8-f1b7-4f82-a5a3-ae99726d3937,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-workflowql248/series-workflowql248-build-action-2133617598/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-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-02 19:30:35 +0000 UTC FinishedAt: 2026-08-02 19:30:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-02 19:30:35 +0000 UTC FinishedAt: 2026-08-02 19:30:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-02 19:30:35 +0000 UTC FinishedAt: 2026-08-02 19:58:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-02 19:30:35 +0000 UTC FinishedAt: 2026-08-02 19:58:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*a840e92e-4755-468d-96b2-ab3af1f1dc80,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-workflowql248/series-workflowql248-convert-artifact-4281855791/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": "c7ae7b2b-d627-415d-94c1-ee10627ccf0d", "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-workflowql248/series-workflowql248-build-action-424131267/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-02 19:30:35 +0000 UTC FinishedAt: 2026-08-02 19:58:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*a840e92e-4755-468d-96b2-ab3af1f1dc80,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-workflowql248/series-workflowql248-convert-artifact-4281855791/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": "c7ae7b2b-d627-415d-94c1-ee10627ccf0d", "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-workflowql248/series-workflowql248-build-action-424131267/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-02 19:58:44 +0000 UTC FinishedAt: 2026-08-02 19:58:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-02 19:58:44 +0000 UTC FinishedAt: 2026-08-02 19:58:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-02 19:58:44 +0000 UTC FinishedAt: 2026-08-02 20:00:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-02 19:58:44 +0000 UTC FinishedAt: 2026-08-02 20:00:28 +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:*c7ae7b2b-d627-415d-94c1-ee10627ccf0d,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-workflowql248/series-workflowql248-build-action-424131267/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-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-02 20:00:38 +0000 UTC FinishedAt: 2026-08-02 20:48:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-02 20:00:38 +0000 UTC FinishedAt: 2026-08-02 20:48:18 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"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:*fdbf94c8-f1b7-4f82-a5a3-ae99726d3937,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*c7ae7b2b-d627-415d-94c1-ee10627ccf0d,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-workflowql248/series-workflowql248-build-action-2133617598/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-workflowql248/series-workflowql248-build-action-424131267/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-02 20:00:38 +0000 UTC FinishedAt: 2026-08-02 20:00:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-02 20:00:38 +0000 UTC FinishedAt: 2026-08-02 20:00:52 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"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-workflowql248/series-workflowql248-convert-artifact-3830979304/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-02 20:00:38 +0000 UTC FinishedAt: 2026-08-02 20:00:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-02 20:00:38 +0000 UTC FinishedAt: 2026-08-02 20:00:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-02 20:00:38 +0000 UTC FinishedAt: 2026-08-02 20:00:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-02 20:00:58 +0000 UTC FinishedAt: 2026-08-02 20:48:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowql248[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["drbd_nl_resource_opts_doit","drbd_nl_new_resource_doit","drbd_nl_chg_disk_opts_doit","drbd_nl_attach_doit","drbd_nl_chg_net_opts_doit","drbd_nl_connect_doit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b36c780ae0038c1a82c4a1eb3a4c81afc5d6312b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLK_DEV_DRBD"],"series_id":"23467aa1-a1b4-4462-80e4-a2cb55827bb7","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-02 20:00:58 +0000 UTC FinishedAt: 2026-08-02 20:48:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*fdbf94c8-f1b7-4f82-a5a3-ae99726d3937,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*c7ae7b2b-d627-415d-94c1-ee10627ccf0d,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-workflowql248/series-workflowql248-build-action-2133617598/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-workflowql248/series-workflowql248-build-action-424131267/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-workflowql248/series-workflowql248-convert-artifact-3830979304/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,}