Name: series-workflowcvtdl Phase: Succeeded StartedAt: 2026-07-15 12:28:54 +0000 UTC FinishedAt: 2026-07-15 14:43:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[0] Phase: Succeeded StartedAt: 2026-07-15 12:28:54 +0000 UTC FinishedAt: 2026-07-15 12:40:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[0].run-triage Phase: Succeeded StartedAt: 2026-07-15 12:28:54 +0000 UTC FinishedAt: 2026-07-15 12:40:33 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "58717b2a1365d06c8c64b72aa948541b53fe31eb", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "ATH11K", "ATH11K_PCI", "ATH12K" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "58717b2a1365d06c8c64b72aa948541b53fe31eb", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "ATH11K", "ATH11K_PCI", "ATH12K" ], "series_id": "0f1ece3a-092b-4150-82ca-364455c7f03e" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ath11k_qmi_init_service", "ath12k_qmi_init_service" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDEyOjM5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0FUSDExSyYjMzQ7LAogICAgJiMzNDtBVEgxMUtfUENJJiMzNDssCiAgICAmIzM0O0FUSDEySyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2F0aDExa19xbWlfaW5pdF9zZXJ2aWNlJiMzNDssCiAgICAmIzM0O2F0aDEya19xbWlfaW5pdF9zZXJ2aWNlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIGluaXRpYWxpemF0aW9uIGVycm9yIHBhdGhzIG9mIHRoZSBhdGgxMWsgYW5kIGF0aDEyayBkcml2ZXJzLiBUaGVzZSBwYXRocyBjYW4gYmUgcmVhY2hlZCBkdXJpbmcgZGV2aWNlIHByb2JlLCB3aGljaCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IHN5emthbGxlciYjMzk7cyBQQ0kgZnV6emluZyBjb21iaW5lZCB3aXRoIGZhdWx0IGluamVjdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxMjozOTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDNlMWJhODMxYTAxOGQzOWYwMjMwZTEwZjFkNWM2OTQ3ZjgzOTJiMzZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAxNSAxMjozOTozOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuY1xuaW5kZXggNDEwYTdlZTA3NmEwMjYuLjZlM2Y4MjE2OWQyNDFiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuY1xuQEAgLTMzMjksNyAmIzQzOzMzMjksOCBAQCBpbnQgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2Uoc3RydWN0IGF0aDExa19iYXNlICphYilcbiBcdGFiLVx1MDAzZXFtaS5ldmVudF93cSA9IGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlKFwmIzM0O2F0aDExa19xbWlfZHJpdmVyX2V2ZW50XCYjMzQ7LCAwKTtcbiBcdGlmICghYWItXHUwMDNlcW1pLmV2ZW50X3dxKSB7XG4gXHRcdGF0aDExa19lcnIoYWIsIFwmIzM0O2ZhaWxlZCB0byBhbGxvY2F0ZSB3b3JrcXVldWVcXG5cJiMzNDspO1xuLVx0XHRyZXR1cm4gLUVGQVVMVDtcbiYjNDM7XHRcdHJldCA9IC1FRkFVTFQ7XG4mIzQzO1x0XHRnb3RvIGVycl9yZWxlYXNlX3FtaV9oYW5kbGU7XG4gXHR9XG4gXG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZhYi1cdTAwM2VxbWkuZXZlbnRfbGlzdCk7XG5AQCAtMzM0Miw5ICYjNDM7MzM0MywxNCBAQCBpbnQgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2Uoc3RydWN0IGF0aDExa19iYXNlICphYilcbiBcdGlmIChyZXQgXHUwMDNjIDApIHtcbiBcdFx0YXRoMTFrX3dhcm4oYWIsIFwmIzM0O2ZhaWxlZCB0byBhZGQgcW1pIGxvb2t1cDogJWRcXG5cJiMzNDssIHJldCk7XG4gXHRcdGRlc3Ryb3lfd29ya3F1ZXVlKGFiLVx1MDAzZXFtaS5ldmVudF93cSk7XG4tXHRcdHJldHVybiByZXQ7XG4mIzQzO1x0XHRnb3RvIGVycl9yZWxlYXNlX3FtaV9oYW5kbGU7XG4gXHR9XG4gXG4mIzQzO1x0cmV0dXJuIHJldDtcbiYjNDM7XG4mIzQzO2Vycl9yZWxlYXNlX3FtaV9oYW5kbGU6XG4mIzQzO1x0cW1pX2hhbmRsZV9yZWxlYXNlKFx1MDAyNmFiLVx1MDAzZXFtaS5oYW5kbGUpO1xuJiM0MztcbiBcdHJldHVybiByZXQ7XG4gfVxuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcW1pLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3FtaS5jXG5pbmRleCBmZDc2MmI1ZDdiYjU5Ny4uNjkyZjFiMmMyMDMxYjcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3FtaS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3FtaS5jXG5AQCAtNDA0MSw3ICYjNDM7NDA0MSw2IEBAIGludCBhdGgxMmtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuIFxuIFx0bWVtc2V0KFx1MDAyNmFiLVx1MDAzZXFtaS50YXJnZXQsIDAsIHNpemVvZihzdHJ1Y3QgdGFyZ2V0X2luZm8pKTtcbiBcdG1lbXNldChcdTAwMjZhYi1cdTAwM2VxbWkudGFyZ2V0X21lbSwgMCwgc2l6ZW9mKHN0cnVjdCB0YXJnZXRfbWVtX2NodW5rKSk7XG4tXHRhYi1cdTAwM2VxbWkuYWIgPSBhYjtcbiBcbiBcdGFiLVx1MDAzZXFtaS50YXJnZXRfbWVtX21vZGUgPSBhYi1cdTAwM2V0YXJnZXRfbWVtX21vZGU7XG4gXHRyZXQgPSBxbWlfaGFuZGxlX2luaXQoXHUwMDI2YWItXHUwMDNlcW1pLmhhbmRsZSwgQVRIMTJLX1FNSV9SRVNQX0xFTl9NQVgsXG5AQCAtNDA1NCw3ICYjNDM7NDA1Myw4IEBAIGludCBhdGgxMmtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuIFx0YWItXHUwMDNlcW1pLmV2ZW50X3dxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoXCYjMzQ7YXRoMTJrX3FtaV9kcml2ZXJfZXZlbnRcJiMzNDssIDApO1xuIFx0aWYgKCFhYi1cdTAwM2VxbWkuZXZlbnRfd3EpIHtcbiBcdFx0YXRoMTJrX2VycihhYiwgXCYjMzQ7ZmFpbGVkIHRvIGFsbG9jYXRlIHdvcmtxdWV1ZVxcblwmIzM0Oyk7XG4tXHRcdHJldHVybiAtRUZBVUxUO1xuJiM0MztcdFx0cmV0ID0gLUVGQVVMVDtcbiYjNDM7XHRcdGdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTtcbiBcdH1cbiBcbiBcdElOSVRfTElTVF9IRUFEKFx1MDAyNmFiLVx1MDAzZXFtaS5ldmVudF9saXN0KTtcbkBAIC00MDY3LDkgJiM0Mzs0MDY3LDE2IEBAIGludCBhdGgxMmtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuIFx0aWYgKHJldCBcdTAwM2MgMCkge1xuIFx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7ZmFpbGVkIHRvIGFkZCBxbWkgbG9va3VwXFxuXCYjMzQ7KTtcbiBcdFx0ZGVzdHJveV93b3JrcXVldWUoYWItXHUwMDNlcW1pLmV2ZW50X3dxKTtcbi1cdFx0cmV0dXJuIHJldDtcbiYjNDM7XHRcdGdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTtcbiBcdH1cbiBcbiYjNDM7XHRhYi1cdTAwM2VxbWkuYWIgPSBhYjtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIHJldDtcbiYjNDM7XG4mIzQzO2Vycl9yZWxlYXNlX3FtaV9oYW5kbGU6XG4mIzQzO1x0cW1pX2hhbmRsZV9yZWxlYXNlKFx1MDAyNmFiLVx1MDAzZXFtaS5oYW5kbGUpO1xuJiM0MztcbiBcdHJldHVybiByZXQ7XG4gfVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDEyOjM5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0FUSDExSyYjMzQ7LAogICAgJiMzNDtBVEgxMUtfUENJJiMzNDssCiAgICAmIzM0O0FUSDEySyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2F0aDExa19xbWlfaW5pdF9zZXJ2aWNlJiMzNDssCiAgICAmIzM0O2F0aDEya19xbWlfaW5pdF9zZXJ2aWNlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIGluaXRpYWxpemF0aW9uIGVycm9yIHBhdGhzIG9mIHRoZSBhdGgxMWsgYW5kIGF0aDEyayBkcml2ZXJzLiBUaGVzZSBwYXRocyBjYW4gYmUgcmVhY2hlZCBkdXJpbmcgZGV2aWNlIHByb2JlLCB3aGljaCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IHN5emthbGxlciYjMzk7cyBQQ0kgZnV6emluZyBjb21iaW5lZCB3aXRoIGZhdWx0IGluamVjdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgM2UxYmE4MzFhMDE4ZDM5ZjAyMzBlMTBmMWQ1YzY5NDdmODM5MmIzNgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVsIDE1IDEyOjM5OjM4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcW1pLmMKaW5kZXggNDEwYTdlZTA3NmEwMjYuLjZlM2Y4MjE2OWQyNDFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcW1pLmMKQEAgLTMzMjksNyAmIzQzOzMzMjksOCBAQCBpbnQgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2Uoc3RydWN0IGF0aDExa19iYXNlICphYikKIAlhYi0mZ3Q7cW1pLmV2ZW50X3dxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoJiMzNDthdGgxMWtfcW1pX2RyaXZlcl9ldmVudCYjMzQ7LCAwKTsKIAlpZiAoIWFiLSZndDtxbWkuZXZlbnRfd3EpIHsKIAkJYXRoMTFrX2VycihhYiwgJiMzNDtmYWlsZWQgdG8gYWxsb2NhdGUgd29ya3F1ZXVlXG4mIzM0Oyk7Ci0JCXJldHVybiAtRUZBVUxUOwomIzQzOwkJcmV0ID0gLUVGQVVMVDsKJiM0MzsJCWdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTsKIAl9CiAKIAlJTklUX0xJU1RfSEVBRCgmYW1wO2FiLSZndDtxbWkuZXZlbnRfbGlzdCk7CkBAIC0zMzQyLDkgJiM0MzszMzQzLDE0IEBAIGludCBhdGgxMWtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKQogCWlmIChyZXQgJmx0OyAwKSB7CiAJCWF0aDExa193YXJuKGFiLCAmIzM0O2ZhaWxlZCB0byBhZGQgcW1pIGxvb2t1cDogJWRcbiYjMzQ7LCByZXQpOwogCQlkZXN0cm95X3dvcmtxdWV1ZShhYi0mZ3Q7cW1pLmV2ZW50X3dxKTsKLQkJcmV0dXJuIHJldDsKJiM0MzsJCWdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTsKIAl9CiAKJiM0MzsJcmV0dXJuIHJldDsKJiM0MzsKJiM0MztlcnJfcmVsZWFzZV9xbWlfaGFuZGxlOgomIzQzOwlxbWlfaGFuZGxlX3JlbGVhc2UoJmFtcDthYi0mZ3Q7cW1pLmhhbmRsZSk7CiYjNDM7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9xbWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcW1pLmMKaW5kZXggZmQ3NjJiNWQ3YmI1OTcuLjY5MmYxYjJjMjAzMWI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3FtaS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcW1pLmMKQEAgLTQwNDEsNyAmIzQzOzQwNDEsNiBAQCBpbnQgYXRoMTJrX3FtaV9pbml0X3NlcnZpY2Uoc3RydWN0IGF0aDEya19iYXNlICphYikKIAogCW1lbXNldCgmYW1wO2FiLSZndDtxbWkudGFyZ2V0LCAwLCBzaXplb2Yoc3RydWN0IHRhcmdldF9pbmZvKSk7CiAJbWVtc2V0KCZhbXA7YWItJmd0O3FtaS50YXJnZXRfbWVtLCAwLCBzaXplb2Yoc3RydWN0IHRhcmdldF9tZW1fY2h1bmspKTsKLQlhYi0mZ3Q7cW1pLmFiID0gYWI7CiAKIAlhYi0mZ3Q7cW1pLnRhcmdldF9tZW1fbW9kZSA9IGFiLSZndDt0YXJnZXRfbWVtX21vZGU7CiAJcmV0ID0gcW1pX2hhbmRsZV9pbml0KCZhbXA7YWItJmd0O3FtaS5oYW5kbGUsIEFUSDEyS19RTUlfUkVTUF9MRU5fTUFYLApAQCAtNDA1NCw3ICYjNDM7NDA1Myw4IEBAIGludCBhdGgxMmtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKQogCWFiLSZndDtxbWkuZXZlbnRfd3EgPSBhbGxvY19vcmRlcmVkX3dvcmtxdWV1ZSgmIzM0O2F0aDEya19xbWlfZHJpdmVyX2V2ZW50JiMzNDssIDApOwogCWlmICghYWItJmd0O3FtaS5ldmVudF93cSkgewogCQlhdGgxMmtfZXJyKGFiLCAmIzM0O2ZhaWxlZCB0byBhbGxvY2F0ZSB3b3JrcXVldWVcbiYjMzQ7KTsKLQkJcmV0dXJuIC1FRkFVTFQ7CiYjNDM7CQlyZXQgPSAtRUZBVUxUOwomIzQzOwkJZ290byBlcnJfcmVsZWFzZV9xbWlfaGFuZGxlOwogCX0KIAogCUlOSVRfTElTVF9IRUFEKCZhbXA7YWItJmd0O3FtaS5ldmVudF9saXN0KTsKQEAgLTQwNjcsOSAmIzQzOzQwNjcsMTYgQEAgaW50IGF0aDEya19xbWlfaW5pdF9zZXJ2aWNlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpCiAJaWYgKHJldCAmbHQ7IDApIHsKIAkJYXRoMTJrX3dhcm4oYWIsICYjMzQ7ZmFpbGVkIHRvIGFkZCBxbWkgbG9va3VwXG4mIzM0Oyk7CiAJCWRlc3Ryb3lfd29ya3F1ZXVlKGFiLSZndDtxbWkuZXZlbnRfd3EpOwotCQlyZXR1cm4gcmV0OwomIzQzOwkJZ290byBlcnJfcmVsZWFzZV9xbWlfaGFuZGxlOwogCX0KIAomIzQzOwlhYi0mZ3Q7cW1pLmFiID0gYWI7CiYjNDM7CiYjNDM7CXJldHVybiByZXQ7CiYjNDM7CiYjNDM7ZXJyX3JlbGVhc2VfcW1pX2hhbmRsZToKJiM0MzsJcW1pX2hhbmRsZV9yZWxlYXNlKCZhbXA7YWItJmd0O3FtaS5oYW5kbGUpOwomIzQzOwogCXJldHVybiByZXQ7CiB9CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTI6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjcwMwoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDQxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBOZXR3b3JrIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2VgIGFuZCBgYXRoMTJrX3FtaV9pbml0X3NlcnZpY2VgIGluIGBhdGgxMWsvcW1pLmNgIGFuZCBgYXRoMTJrL3FtaS5jYCByZXNwZWN0aXZlbHkuIEl0IHNlZW1zIGxpa2UgaXQmIzM5O3MgYWRkcmVzc2luZyBhIGBxbWlfaGFuZGxlYCBsZWFrIG9uIGVycm9yIHBhdGhzOyBzcGVjaWZpY2FsbHksIGJ5IG1ha2luZyBzdXJlIGBxbWlfaGFuZGxlX3JlbGVhc2VgIGdldHMgY2FsbGVkIHdoZW4gZWl0aGVyIGBhbGxvY19vcmRlcmVkX3dvcmtxdWV1ZWAgb3IgYHFtaV9hZGRfbG9va3VwYCBmYWlscy4gQWxzbywgaW4gdGhlIGBhdGgxMmtgIHZlcnNpb24sIGEgc2ltcGxlIGxpbmUgaXMgbW92ZWQuCgpUaGUga2V5IHF1ZXN0aW9uIGlzIGFsd2F5cywgKmNhbiogdGhpcyBjb2RlIGV2ZW4gYmUgdHJpZ2dlcmVkIGluIGEgZnV6emluZyBlbnZpcm9ubWVudD8gVGhlc2UgYXJlIGRyaXZlcnMgZm9yIFF1YWxjb21tIFdpLUZpIDYvNyBoYXJkd2FyZSwgYGF0aDExa2AgYW5kIGBhdGgxMmtgLiBUeXBpY2FsbHksIHlvdSYjMzk7cmUgZGVhbGluZyB3aXRoIHBoeXNpY2FsIFBDSSBvciBBSEIgZGV2aWNlcyBoZXJlLiBSZWFsaXN0aWNhbGx5LCBhcmUgd2UgZnV6emluZyBzb21ldGhpbmcgdGhhdCYjMzk7cyBkaWZmaWN1bHQgb3IgaW1wb3NzaWJsZSB0byBlbXVsYXRlPyBNeSBndXQgc2F5cyBubywgYmVjYXVzZSB0aGVzZSB1c3VhbGx5IGFyZW4mIzM5O3QgZW11bGF0ZWQuCgpCdXQgd2FpdCwgc3l6a2FsbGVyICpkb2VzKiBmdXp6IHNvbWUgUENJIHN0dWZmLCByaWdodD8gTm90IGRpcmVjdGx5IGVtdWxhdGluZyB0aGVzZSBzcGVjaWZpYyBkcml2ZXJzLiBTbyB3aGF0JiMzOTtzIHRoZSBsaWtlbGlob29kIHRoYXQgdGhpcyBwYXJ0aWN1bGFyIGVycm9yIHBhdGggaXMgYmVpbmcgaGl0PyBMZXQmIzM5O3MgdmVyaWZ5IGJ5IGNoZWNraW5nIHN5emJvdCBjb25maWcuIENhbiBJIHNlZSB3aGV0aGVyIGBDT05GSUdfQVRIMTFLYCBvciBgQ09ORklHX0FUSDEyS2AgaXMgZW5hYmxlZCBhbnl3aGVyZT8gR2VuZXJhbGx5LCBJIHRoaW5rIHVubGVzcyB0aGVyZSYjMzk7cyBhIHNwZWNpZmljIHNldHVwIGZvciBlbXVsYXRpb24gb3IgZ2VuZXJpYyBQQ0kgZnV6emluZywgdGhpcyB3b3VsZG4mIzM5O3QgYmUgZGlyZWN0bHkgdGVzdGVkLgoKT2theSwgc28gc3l6a2FsbGVyICpkb2VzKiBoYXZlIHNvbWV0aGluZyBsaWtlIGBzeXpfcGNpX2RldmljZWAgZm9yIFBDSSBmdXp6aW5nLCBzbyBJIG5lZWQgdG8gY2hlY2sgaG93IHRoYXQgZml0cyBpbnRvIHRoZSBwaWN0dXJlLiBJcyBpdCByZWFsbHkgd29ydGggaXQgdG8gZm9jdXMgb24gZnV6emluZyB0aGlzIGluaXRpYWxpemF0aW9uIGVycm9yIHBhdGg/IFRoZSBwYXRjaCAqaXMqIGEgbWVtb3J5IGxlYWsgZml4LiBCZXR0ZXIgdG8gY2hlY2sgd2hhdCAqaXMqIGJlaW5nIGZ1enplZCBhbmQgd2hldGhlciBgYXRoMTFrYCBhbmQgYGF0aDEya2AgYXJlIHdpdGhpbiB0aGF0IHNjb3BlLiBJJiMzOTtsbCB1c2UgYGdyZXBwZXJgIHRvIHNlYXJjaCBmb3IgYW55IHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIG9yIGhpbnRzIGFib3V0IFBDSSBkcml2ZXIgdXNhZ2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTI6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEFUSDExSyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzoyOmNvbmZpZyBBVEgxMUtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7UXVhbGNvbW0gODAyLjExYXggY2hpcHNldCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjEzOmNvbmZpZyBBVEgxMUtfQUhCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMTQtXHR0cmlzdGF0ZSBcJiMzNDtBdGhlcm9zIGF0aDExayBBSEIgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzoyMDpjb25maWcgQVRIMTFLX1BDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7QXRoZXJvcyBhdGgxMWsgUENJIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MzA6Y29uZmlnIEFUSDExS19ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTMxLVx0Ym9vbCBcJiMzNDtRQ0EgYXRoMTFrIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0zNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzozODpjb25maWcgQVRIMTFLX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0zOS1cdGJvb2wgXCYjMzQ7UUNBIGF0aDExayBkZWJ1Z2ZzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NDY6Y29uZmlnIEFUSDExS19UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDctXHRib29sIFwmIzM0O2F0aDExayB0cmFjaW5nIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NTI6Y29uZmlnIEFUSDExS19TUEVDVFJBTFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTUzLVx0Ym9vbCBcJiMzNDtRQ0EgYXRoMTFrIHNwZWN0cmFsIHNjYW4gc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy02MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo2MTpjb25maWcgQVRIMTFLX0NGUlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTYyLVx0Ym9vbCBcJiMzNDthdGgxMWsgY2hhbm5lbCBmcmVxdWVuY3kgcmVzcG9uc2Ugc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDEyOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyOTkKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAyMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBWYWx1ZSBvZiBGdXp6aW5nIGEgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggYWRkcmVzc2VzIGEgbWVtb3J5IGxlYWsgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgaW5pdGlhbGl6YXRpb24gZXJyb3IgcGF0aHMgb2YgdGhlIGBhdGgxMWtgIGFuZCBgYXRoMTJrYCBkcml2ZXJzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsICYjMzQ7SXMgdGhpcyBldmVuIHdvcnRoIGZ1enppbmc/JiMzNDsgVGhlIG1vZGlmaWNhdGlvbnMgYXJlIHNvbGVseSB3aXRoaW4gdGhlIGVycm9yIGhhbmRsaW5nIHJvdXRpbmVzOiBgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2VgIGFuZCBgYXRoMTJrX3FtaV9pbml0X3NlcnZpY2VgLiBUaGVzZSBwYXJ0aWN1bGFyIGNvZGUgc2VjdGlvbnMgb25seSBraWNrIGluIHdoZW4gYGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlYCBmYWlscyBvciBgcW1pX2FkZF9sb29rdXBgIGZhaWxzIGR1cmluZyB0aGUgaW5pdGlhbCBzZXR1cC4KCk5vdywgY29uc2lkZXJpbmcgdGhpcyBpcyBhIHBoeXNpY2FsIGRldmljZSBkcml2ZXIgKGxpa2VseSBQQ0kvQUhCKSwgZnV6emluZyB0aGlzICpzcGVjaWZpYyogZXJyb3IgcGF0aCBzZWVtcyBpbmNyZWRpYmx5IHVubGlrZWx5IHRvIGJlIHByb2R1Y3RpdmUuIFdlJiMzOTtyZSB0YWxraW5nIGFib3V0IGZhaWx1cmUgY29uZGl0aW9ucyB0aGF0IHdvdWxkIGJlIHZlcnkgZGlmZmljdWx0IHRvIHJlcHJvZHVjZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IOKAkyBubyBoYXJkd2FyZSBhY2Nlc3MuIEV2ZW4gd2l0aCBQQ0kgZnV6emluZywgZm9yY2luZyBhIGBxbWlfYWRkX2xvb2t1cGAgZmFpbHVyZSBvciB3b3JrcXVldWUgYWxsb2NhdGlvbiBmYWlsdXJlIHdvdWxkIGVzc2VudGlhbGx5IGp1c3QgYmUgc3RhbmRhcmQgZmF1bHQgaW5qZWN0aW9uLCB0aGUga2luZCB0aGF0IG1pZ2h0IGJlIGhhcmQgdG8gZXhwbG9pdC4KCldhaXQgYSBzZWNvbmTigKYgc3l6a2FsbGVyIGRvZXMgZmF1bHQgaW5qZWN0aW9uLCByaWdodD8gQ291bGQgaXQgcG90ZW50aWFsbHkgcmVhY2ggYGF0aDExa19xbWlfaW5pdF9zZXJ2aWNlYD8gSSBuZWVkIHRvIGNoZWNrIHdoZXJlIGBhdGgxMWtfcW1pX2luaXRfc2VydmljZWAgaXMgYWN0dWFsbHkgYmVpbmcgY2FsbGVkIHdpdGhpbiB0aGUgZHJpdmVyIHRvIGRldGVybWluZSBpZiBmYXVsdCBpbmplY3Rpb24gY291bGQgZXZlbiB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoLiBMZXQmIzM5O3Mgc2VlLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTI6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YXRoMTFrX3FtaV9pbml0X3NlcnZpY2UmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuYz0xOTg1PXN0YXRpYyBpbnQgYXRoMTFrX2NvcmVfc29jX2NyZWF0ZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jLTE5OTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuYzoxOTk0Olx0cmV0ID0gYXRoMTFrX3FtaV9pbml0X3NlcnZpY2UoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmMtMTk5NS1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5jPTMyMDc9c3RhdGljIHZvaWQgYXRoMTFrX3FtaV9kcml2ZXJfZXZlbnRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuYy0zMzEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuYzozMzEzOmludCBhdGgxMWtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuYy0zMzE0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5oPTUyMD12b2lkIGF0aDExa19xbWlfZGVpbml0X3NlcnZpY2Uoc3RydWN0IGF0aDExa19iYXNlICphYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5oOjUyMTppbnQgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2Uoc3RydWN0IGF0aDExa19iYXNlICphYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5oLTUyMi12b2lkIGF0aDExa19xbWlfZnJlZV9yZXNvdXJjZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxMjozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1Mjk5CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogNDMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIGl0IHdlcmUgbXkgb3duOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBhdGgxMWsgRHJpdmVyIEluaXRpYWxpemF0aW9uKioKCkFscmlnaHQsIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGUgYGF0aDExa19jb3JlX3NvY19jcmVhdGVgIGZ1bmN0aW9uLCBhbmQgaXQmIzM5O3MgY2FsbGluZyBgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2VgLiBIbW0sIHRoYXQmIzM5O3MgaW50ZXJlc3RpbmcuIEkga25vdyBRTUkgaXMgUXVhbGNvbW0mIzM5O3MgSW50ZXJmYWNlLCBhbmQgbGlrZWx5IGhhbmRsZXMgdGhlIGNvbW11bmljYXRpb24gd2l0aCB0aGUgZmlybXdhcmUgb24gdGhlIFNvQy4gQnV0IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb250cm9sIGZsb3cgYmV0dGVyLiBXaGVyZSBpcyBgYXRoMTFrX2NvcmVfc29jX2NyZWF0ZWAgYWN0dWFsbHkgYmVpbmcgY2FsbGVkIGZyb20/IElzIGl0IGR1cmluZyB0aGUgZHJpdmVyJiMzOTtzIHByb2JlIHNlcXVlbmNlPyBEdXJpbmcgYSBQQ0kgaW5pdGlhbGl6YXRpb24/IE9yIHNvbWUgb3RoZXIgZW50cnkgcG9pbnQ/IEtub3dpbmcgdGhlIGNhbGxlciBpcyBjcml0aWNhbCBmb3IgdW5kZXJzdGFuZGluZyB3aGVuIHRoZSBRTUkgc2VydmljZSBnZXRzIGluaXRpYXRlZCBhbmQgaG93IGl0IHJlbGF0ZXMgdG8gb3RoZXIgaW5pdGlhbGl6YXRpb24gc3RlcHMuIEkgbmVlZCB0byB0cmFjZSBiYWNrIGZyb20gdGhhdCBmdW5jdGlvbiBjYWxsIHRvIHNlZSB0aGUgY29udGV4dCBvZiBpdHMgZXhlY3V0aW9uLiBUaGF0IHdpbGwgdGVsbCBtZSBhIGxvdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxMjozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMWtfY29yZV9zb2NfY3JlYXRlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmM9MTk3Mz1zdGF0aWMgdm9pZCBhdGgxMWtfY29yZV9zdG9wKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmMtMTk4NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jOjE5ODU6c3RhdGljIGludCBhdGgxMWtfY29yZV9zb2NfY3JlYXRlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuYy0xOTg2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuYz0yNjg2PWludCBhdGgxMWtfY29yZV9pbml0KHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmMtMjcwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jOjI3MDU6XHRyZXQgPSBhdGgxMWtfY29yZV9zb2NfY3JlYXRlKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jLTI3MDYtXHRpZiAocmV0KSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTI6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTg3MwoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBJbml0aWFsaXphdGlvbiBGbG93IG9mIHRoZSBhdGgxMWsgQ29yZSoqCgpSaWdodCwgbGV0JiMzOTtzIHNlZS4uLiBJJiMzOTttIGxvb2tpbmcgYXQgdGhlIGBhdGgxMWtfY29yZV9pbml0YCBmdW5jdGlvbi4gSXQgYXBwZWFycyB0aGF0IHRoaXMgaXMgdGhlIHByaW1hcnkgZW50cnkgcG9pbnQgZm9yIGluaXRpYWxpemluZyB0aGUgY29yZSBtb2R1bGUsIGFzIHRoZSBuYW1lIHN1Z2dlc3RzLiBBbmQgd2l0aGluIHRoYXQsIEkmIzM5O20gc2VlaW5nIGEgY2FsbCB0byBgYXRoMTFrX2NvcmVfc29jX2NyZWF0ZWAuIFNvLCBgYXRoMTFrX2NvcmVfc29jX2NyZWF0ZWAgbXVzdCBiZSBjcnVjaWFsIHRvIHNldHRpbmcgdXAgdGhlIFN5c3RlbS1vbi1hLUNoaXAgcmVsYXRlZCBjb21wb25lbnRzLiBUaGF0IG1ha2VzIHNlbnNlLCBoYW5kbGluZyB0aGUgaGFyZHdhcmUgYWJzdHJhY3Rpb24uCgpOb3csIHRoZSByZWFsIHF1ZXN0aW9uIHRoYXQgcG9wcyB1cCwgYW5kIHNvbWV0aGluZyBJJiMzOTtkIHdhbnQgdG8gdHJhY2sgZG93biBpbW1lZGlhdGVseSB3aGVuIHJldmlld2luZyB0aGlzIGlzOiB3aGVyZSAqaXMqIGBhdGgxMWtfY29yZV9pbml0YCBhY3R1YWxseSBpbnZva2VkPyBVbmRlcnN0YW5kaW5nIHRoZSBjYWxsIHN0YWNrIHRoYXQgbGVhZHMgdG8gdGhpcyBmdW5jdGlvbiBpcyBlc3NlbnRpYWwgZm9yIGNvbXByZWhlbmRpbmcgdGhlIG92ZXJhbGwgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UuIElzIGl0IGNhbGxlZCBkdXJpbmcgZHJpdmVyIHByb2JlPyBJcyBpdCBwYXJ0IG9mIHNvbWUgZWFybHkgc3lzdGVtIGJvb3Qgc2VxdWVuY2U/IEtub3dpbmcgaXRzIHBhcmVudCBmdW5jdGlvbiBjYWxscywgYW5kIHRoZSBjb250ZXh0IGluIHdoaWNoIGBhdGgxMWtfY29yZV9pbml0YCBpcyBjYWxsZWQsIHdpbGwgcGFpbnQgdGhlIGZ1bGwgcGljdHVyZSBvZiB0aGUgaW5pdGlhbGl6YXRpb24gZmxvdy4gVGhpcyBpcyB3aGVyZSBJIHdvdWxkIHN0YXJ0IG15IGRlYnVnIHRyYWNpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDEyOjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F0aDExa19jb3JlX2luaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTExMDc9c3RhdGljIGludCBhdGgxMWtfYWhiX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMTkzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMTk0Olx0cmV0ID0gYXRoMTFrX2NvcmVfaW5pdChhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTExOTUtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmM9MjY4ND1FWFBPUlRfU1lNQk9MKGF0aDExa19jb3JlX3BtX25vdGlmaWVyX3VucmVnaXN0ZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmMtMjY4NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jOjI2ODY6aW50IGF0aDExa19jb3JlX2luaXQoc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jLTI2ODcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jLTI3MTctfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmM6MjcxODpFWFBPUlRfU1lNQk9MKGF0aDExa19jb3JlX2luaXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmMtMjcxOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuaD0xMjcwPWludCBhdGgxMWtfY29yZV9wcmVfaW5pdChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5oOjEyNzE6aW50IGF0aDExa19jb3JlX2luaXQoc3RydWN0IGF0aDExa19iYXNlICphdGgxMWspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmgtMTI3Mi12b2lkIGF0aDExa19jb3JlX2RlaW5pdChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmF0aDExayk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYz05NDU9c3RhdGljIGludCBhdGgxMWtfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMtMTEzNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmM6MTEzNjpcdHJldCA9IGF0aDExa19jb3JlX2luaXQoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYy0xMTM3LVx0aWYgKHJldCkge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxMjo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2ODY0CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMjIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgdGhlIGF0aDExayBQQ0kgUHJvYmUgRXJyb3IgUGF0aCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBmaXggaW4gYGF0aDExa19wY2lfcHJvYmVgIGFuZCBgYXRoMTFrX2FoYl9wcm9iZWAuIEl0IHNlZW1zIGxpa2Ugc3l6a2FsbGVyIGNvdWxkIHBvdGVudGlhbGx5IGhpdCB0aGlzIHZpYSBQQ0kgZnV6emluZywgc3BlY2lmaWNhbGx5IHRoZSBgc3l6X3BjaV9kZXZpY2VgIGNhbGwuIEJ1dCB0aGlzIGlzIGp1c3QgYW4gZXJyb3IgcGF0aCBmaXg7IGl0JiMzOTtzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIHByb2JlIHJvdXRpbmUsIG5vdCBzb21lIGNvcmUgZnVuY3Rpb25hbGl0eS4KClRoZSBxdWVzdGlvbiBpcywgaXMgdGhpcyBldmVuIHdvcnRoIGZ1enppbmc/IElmIHdlIGVuYWJsZSBib3RoIGBBVEgxMUtgIGFuZCBgQVRIMTJLYCwgd2UgaW5jcmVhc2UgdGhlIGNoYW5jZXMgc3l6a2FsbGVyIHdpbGwgdHJpZ2dlciBgYXRoMTFrX3BjaV9wcm9iZWAuIEl0JiMzOTtzIGEgdmVyeSBzcGVjaWZpYyBlcnJvciBzY2VuYXJpbywgYSBmYWlsdXJlLWluZHVjZWQgbGVhay4KCkZ1bmN0aW9uYWxseSwgeWVzLCBpdCBmaXhlcyBhIGxlYWssIHNvIGl0IGhhcyB2YWx1ZS4gSXQmIzM5O3MgcmVhY2hhYmxlIGJlY2F1c2Ugc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6aW5nIGNhbiwgaW4gdGhlb3J5LCBnZXQgdXMgdGhlcmUuIEJ1dCBzaG91bGQgd2Ugc3BlbmQgY3ljbGVzIG9uIGl0PyBQcm9iZSBmdW5jdGlvbiBlcnJvciBmaXhlcywgZXNwZWNpYWxseSBpbiBoYXJkd2FyZSBkcml2ZXJzLCBhcmUgdXN1YWxseSBjbGFzc2lmaWVkIGFzIGZ1bmN0aW9uYWwgYnV0IG9mdGVuIG5vdCB0aGUgbW9zdCBleGNpdGluZyB0YXJnZXRzLiBUaGF0IHNhaWQsIHN5emthbGxlciBkb2VzIGEgZ29vZCBqb2Igb2YgZmluZGluZyB0aGVzZSB0eXBlcyBvZiBtZW1vcnkgbGVha3MuIFNvIEkgc2hvdWxkIGNoZWNrIGBhdGgxMmtgIGNvbmZpZ3MgZm9yIG1vcmUgY29udGV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTI6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEFUSDEySyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzoyOmNvbmZpZyBBVEgxMktcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7UXVhbGNvbW0gV2ktRmkgNyBzdXBwb3J0IChhdGgxMmspXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE3OmNvbmZpZyBBVEgxMktfQUhCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTgtXHRib29sIFwmIzM0O1F1YWxjb21tIGF0aDEyayBBSEIgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0yNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzoyNTpjb25maWcgQVRIMTJLX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMjYtXHRib29sIFwmIzM0O2F0aDEyayBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MzU6Y29uZmlnIEFUSDEyS19ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMzYtXHRib29sIFwmIzM0O1F1YWxjb21tIGF0aDEyayBkZWJ1Z2ZzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6NDQ6Y29uZmlnIEFUSDEyS19UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDUtXHRib29sIFwmIzM0O2F0aDEyayB0cmFjaW5nIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6NTM6Y29uZmlnIEFUSDEyS19DT1JFRFVNUFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTU0LVx0Ym9vbCBcJiMzNDthdGgxMmsgY29yZWR1bXBcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTI6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzkwNgoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDQ1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3Mgc2VlLi4uIFdhaXQgYSBtaW51dGUsIEkgd2FzIHVuZGVyIHRoZSBpbXByZXNzaW9uIHRoYXQgdGhlIGBBVEgxMktgIGRyaXZlciBpbmNsdWRlZCB0aGUgYEFUSDEyS19QQ0lgIGNvbXBvbmVudC4gVGhhdCBkb2VzbiYjMzk7dCBzZWVtIHJpZ2h0LiBBbHJpZ2h0LCBsZXQmIzM5O3MganVzdCBtYWtlIHN1cmUuIEkmIzM5O2xsIG5lZWQgdG8gZ28gZGlyZWN0bHkgdG8gdGhlIHNvdXJjZSBmb3IgY29uZmlybWF0aW9uLiBJJiMzOTtsbCBvcGVuIHVwIHRoZSBgS2NvbmZpZ2AgZmlsZSBzcGVjaWZpY2FsbHkgZm9yIHRoYXQgZHJpdmVyLCBpdCBzaG91bGQgYmUgbG9jYXRlZCBhdCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnYC4gVGhhdCYjMzk7cyB3aGVyZSB0aGUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gb3B0aW9ucyBhcmUgZGVmaW5lZCwgc28gdGhhdCYjMzk7cyB3aGVyZSBJJiMzOTtsbCBmaW5kIHRoZSBhbnN3ZXIgcmVnYXJkaW5nIFBDSSBzdXBwb3J0LCBvciBsYWNrIHRoZXJlb2YuIExldCBtZSBnbyB0YWtlIGEgbG9vay4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxMjo0MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtQQ0kmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTI9Y29uZmlnIEFUSDEyS1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtRdWFsY29tbSBXaS1GaSA3IHN1cHBvcnQgKGF0aDEyaylcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo0Olx0ZGVwZW5kcyBvbiBNQUM4MDIxMSBcdTAwMjZcdTAwMjYgSEFTX0RNQSBcdTAwMjZcdTAwMjYgUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNS1cdHNlbGVjdCBRQ09NX1FNSV9IRUxQRVJTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTgtXHRzZWxlY3QgUVJUUl9NSElcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo5Olx0c2VsZWN0IFBDSV9QV1JDVFJMX1BXUlNFUSBpZiBIQVZFX1BXUkNUUkxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xMC1cdGhlbHBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTI6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODM0OQoJCQkJCQkJb3V0cHV0OiAxMzEKCQkJCQkJCXRob3VnaHRzOiA3NDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgQVRIMTJLIERyaXZlciBQYXRjaCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGcm9tIHdoYXQgSSBzZWUsIGBBVEgxMktgIGRvZXNuJiMzOTt0IGhhdmUgaXRzIG93biBkZWRpY2F0ZWQgYEFUSDEyS19QQ0lgIGNvbmZpZ3VyYXRpb247IGl0IGRpcmVjdGx5IGRlcGVuZHMgb24gYFBDSWAuIFNvLCB0byBlbnN1cmUgdGhlIG5lY2Vzc2FyeSBtb2R1bGVzIGFyZSBidWlsdCwgSSYjMzk7bGwgbmVlZCB0byBlbmFibGUgYEFUSDExS2AsIGBBVEgxMUtfUENJYCwgYW5kIGBBVEgxMktgLgoKVGhlIGtleSBmdW5jdGlvbnMgaGVyZSBhcmUgYGF0aDExa19xbWlfaW5pdF9zZXJ2aWNlYCBhbmQgYGF0aDEya19xbWlfaW5pdF9zZXJ2aWNlYC4gTm93LCBpcyB0aGlzIGZ1enphYmxlPyBBYnNvbHV0ZWx5LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIHNwZWNpZmljYWxseSBhZGRyZXNzaW5nIGEgbWVtb3J5IGxlYWsgaW4gdGhlIGVycm9yIGhhbmRsaW5nIHdpdGhpbiB0aGUgaW5pdGlhbGl6YXRpb24gcm91dGluZXMuIFN5emthbGxlciYjMzk7cyBQQ0kgZnV6emluZywgY291cGxlZCB3aXRoIGZhdWx0IGluamVjdGlvbiwgc2hvdWxkIGJlIGFibGUgdG8gdHJpZ2dlciB0aGVzZSBlcnJvciBwYXRocyBlZmZlY3RpdmVseS4KCkxldCYjMzk7cyBxdWlja2x5IGNvbmZpcm0gdGhvc2UgZGVwZW5kZW5jaWVzLiBZZXMsIGBBVEgxMUtgIGRlcGVuZHMgb24gYE1BQzgwMjExYCwgYEhBU19ETUFgLCBhbmQgYFBDSWAgKGZvciBgQVRIMTFLX1BDSWApLCBhbmQgYEFUSDEyS2AgaGFzIHRoZSBzYW1lIGRlcGVuZGVuY2llczogYE1BQzgwMjExYCwgYEhBU19ETUFgLCBhbmQgYFBDSWAuIFNvLCB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3MgYXJlIGBBVEgxMUtgLCBgQVRIMTFLX1BDSWAsIGFuZCBgQVRIMTJLYC4gQWdhaW4sIG15IHByaW1hcnkgZm9jdXMgd2lsbCBiZSBvbiB0aGUgYGF0aDExa19xbWlfaW5pdF9zZXJ2aWNlYCBhbmQgYGF0aDEya19xbWlfaW5pdF9zZXJ2aWNlYCBzeW1ib2xzLgoKTm93LCBsZXQmIzM5O3MgdGFrZSBhbm90aGVyIGxvb2sgYXQgdGhlIHBhdGNoIGl0c2VsZi4gSXQmIzM5O3MgYSBjbGVhbiwgZGlyZWN0IGVycm9yIHBhdGggY29ycmVjdGlvbi4KCmBgYGMKQEAgLTMzMjksNyAmIzQzOzMzMjksOCBAQCBpbnQgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2Uoc3RydWN0IGF0aDExa19iYXNlICphYikKIAlhYi0mZ3Q7cW1pLmV2ZW50X3dxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoJiMzNDthdGgxMWtfcW1pX2RyaXZlcl9ldmVudCYjMzQ7LCAwKTsKIAlpZiAoIWFiLSZndDtxbWkuZXZlbnRfd3EpIHsKIAkJYXRoMTFrX2VycihhYiwgJiMzNDtmYWlsZWQgdG8gYWxsb2NhdGUgd29ya3F1ZXVlXG4mIzM0Oyk7Ci0JCXJldHVybiAtRUZBVUxUOwomIzQzOwkJcmV0ID0gLUVGQVVMVDsKJiM0MzsJCWdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTsKIAl9CiAKIAlJTklUX0xJU1RfSEVBRCgmYW1wO2FiLSZndDtxbWkuZXZlbnRfbGlzdCk7CkBAIC0zMzQyLDkgJiM0MzszMzQzLDE0IEBAIGludCBhdGgxMWtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKQogCWlmIChyZXQgJmx0OyAwKSB7CiAJCWF0aDExa193YXJuKGFiLCAmIzM0O2ZhaWxlZCB0byBhZGQgcW1pIGxvb2t1cDogJWRcbiYjMzQ7LCByZXQpOwogCQlkZXN0cm95X3dvcmtxdWV1ZShhYi0mZ3Q7cW1pLmV2ZW50X3dxKTsKLQkJcmV0dXJuIHJldDsKJiM0MzsJCWdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTsKIAl9CiAKJiM0MzsJcmV0dXJuIHJldDsKJiM0MzsKJiM0MztlcnJfcmVsZWFzZV9xbWlfaGFuZGxlOgomIzQzOwlxbWlfaGFuZGxlX3JlbGVhc2UoJmFtcDthYi0mZ3Q7cW1pLmhhbmRsZSk7CiYjNDM7CiAJcmV0dXJuIHJldDsKIH0KIGBgYAoKU2VlbXMgY2xlYXI6IFRoZSBwYXRjaCBjb3JyZWN0bHkgaGFuZGxlcyB0aGUgYHFtaWAgaGFuZGxlIHJlbGVhc2UgaW4gZXJyb3IgcGF0aHMuCgpUaGVyZWZvcmUsIEkmIzM5O2xsIHNldCBgV29ydGhGdXp6aW5nPXRydWVgLCB0aGUgYEZvY3VzU3ltYm9sc2AgdG8gYFsmIzM0O2F0aDExa19xbWlfaW5pdF9zZXJ2aWNlJiMzNDssICYjMzQ7YXRoMTJrX3FtaV9pbml0X3NlcnZpY2UmIzM0O11gLCBhbmQgYEVuYWJsZUNvbmZpZ3NgIHRvIGBbJiMzNDtBVEgxMUsmIzM0OywgJiMzNDtBVEgxMUtfUENJJiMzNDssICYjMzQ7QVRIMTJLJiMzNDtdYC4gVGhlIHJlYXNvbmluZyBpcyB0aGF0IHRoZSBwYXRjaCBtaXRpZ2F0ZXMgYSBtZW1vcnkgbGVhayB3aXRoaW4gdGhlIGluaXRpYWxpemF0aW9uIGVycm9yIHBhdGhzIGZvciB0aGUgYXRoMTFrIGFuZCBhdGgxMmsgZHJpdmVycy4gVGhlc2Ugc3BlY2lmaWMgZXJyb3IgcGF0aHdheXMgYXJlIHJlYWNoYWJsZSBkdXJpbmcgZGV2aWNlIHByb2JlLiBTeXprYWxsZXImIzM5O3MgUENJIGZ1enppbmcgaW4gY29uanVuY3Rpb24gd2l0aCBmYXVsdCBpbmplY3Rpb24gc2hvdWxkIGJlIGVmZmVjdGl2ZSBmb3IgdGVzdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTI6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0FUSDExSyYjMzQ7LAogICAgJiMzNDtBVEgxMUtfUENJJiMzNDssCiAgICAmIzM0O0FUSDEySyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2F0aDExa19xbWlfaW5pdF9zZXJ2aWNlJiMzNDssCiAgICAmIzM0O2F0aDEya19xbWlfaW5pdF9zZXJ2aWNlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIGluaXRpYWxpemF0aW9uIGVycm9yIHBhdGhzIG9mIHRoZSBhdGgxMWsgYW5kIGF0aDEyayBkcml2ZXJzLiBUaGVzZSBwYXRocyBjYW4gYmUgcmVhY2hlZCBkdXJpbmcgZGV2aWNlIHByb2JlLCB3aGljaCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IHN5emthbGxlciYjMzk7cyBQQ0kgZnV6emluZyBjb21iaW5lZCB3aXRoIGZhdWx0IGluamVjdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QVRIMTFLJiMzNDssCiAgICAmIzM0O0FUSDExS19QQ0kmIzM0OywKICAgICYjMzQ7QVRIMTJLJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YXRoMTFrX3FtaV9pbml0X3NlcnZpY2UmIzM0OywKICAgICYjMzQ7YXRoMTJrX3FtaV9pbml0X3NlcnZpY2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgaW5pdGlhbGl6YXRpb24gZXJyb3IgcGF0aHMgb2YgdGhlIGF0aDExayBhbmQgYXRoMTJrIGRyaXZlcnMuIFRoZXNlIHBhdGhzIGNhbiBiZSByZWFjaGVkIGR1cmluZyBkZXZpY2UgcHJvYmUsIHdoaWNoIGNhbiBiZSB0cmlnZ2VyZWQgYnkgc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6aW5nIGNvbWJpbmVkIHdpdGggZmF1bHQgaW5qZWN0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTVUMTI6Mzk6MzkuOTMzMTcxMzI1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDExOTMyMTA5MTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQVRIMTFLXCIsXG4gICAgXCJBVEgxMUtfUENJXCIsXG4gICAgXCJBVEgxMktcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJhdGgxMWtfcW1pX2luaXRfc2VydmljZVwiLFxuICAgIFwiYXRoMTJrX3FtaV9pbml0X3NlcnZpY2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIHRoZSBpbml0aWFsaXphdGlvbiBlcnJvciBwYXRocyBvZiB0aGUgYXRoMTFrIGFuZCBhdGgxMmsgZHJpdmVycy4gVGhlc2UgcGF0aHMgY2FuIGJlIHJlYWNoZWQgZHVyaW5nIGRldmljZSBwcm9iZSwgd2hpY2ggY2FuIGJlIHRyaWdnZXJlZCBieSBzeXprYWxsZXIncyBQQ0kgZnV6emluZyBjb21iaW5lZCB3aXRoIGZhdWx0IGluamVjdGlvbi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTI6Mzk6MzkuOTMzMTc5NjE1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MTY5MTAzNTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAzZTFiYTgzMWEwMThkMzlmMDIzMGUxMGYxZDVjNjk0N2Y4MzkyYjM2XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVsIDE1IDEyOjM5OjM4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcW1pLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5jXFxuaW5kZXggNDEwYTdlZTA3NmEwMjYuLjZlM2Y4MjE2OWQyNDFiIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcW1pLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5jXFxuQEAgLTMzMjksNyArMzMyOSw4IEBAIGludCBhdGgxMWtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbiBcXHRhYi1cXHUwMDNlcW1pLmV2ZW50X3dxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoXFxcImF0aDExa19xbWlfZHJpdmVyX2V2ZW50XFxcIiwgMCk7XFxuIFxcdGlmICghYWItXFx1MDAzZXFtaS5ldmVudF93cSkge1xcbiBcXHRcXHRhdGgxMWtfZXJyKGFiLCBcXFwiZmFpbGVkIHRvIGFsbG9jYXRlIHdvcmtxdWV1ZVxcXFxuXFxcIik7XFxuLVxcdFxcdHJldHVybiAtRUZBVUxUO1xcbitcXHRcXHRyZXQgPSAtRUZBVUxUO1xcbitcXHRcXHRnb3RvIGVycl9yZWxlYXNlX3FtaV9oYW5kbGU7XFxuIFxcdH1cXG4gXFxuIFxcdElOSVRfTElTVF9IRUFEKFxcdTAwMjZhYi1cXHUwMDNlcW1pLmV2ZW50X2xpc3QpO1xcbkBAIC0zMzQyLDkgKzMzNDMsMTQgQEAgaW50IGF0aDExa19xbWlfaW5pdF9zZXJ2aWNlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuIFxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuIFxcdFxcdGF0aDExa193YXJuKGFiLCBcXFwiZmFpbGVkIHRvIGFkZCBxbWkgbG9va3VwOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG4gXFx0XFx0ZGVzdHJveV93b3JrcXVldWUoYWItXFx1MDAzZXFtaS5ldmVudF93cSk7XFxuLVxcdFxcdHJldHVybiByZXQ7XFxuK1xcdFxcdGdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTtcXG4gXFx0fVxcbiBcXG4rXFx0cmV0dXJuIHJldDtcXG4rXFxuK2Vycl9yZWxlYXNlX3FtaV9oYW5kbGU6XFxuK1xcdHFtaV9oYW5kbGVfcmVsZWFzZShcXHUwMDI2YWItXFx1MDAzZXFtaS5oYW5kbGUpO1xcbitcXG4gXFx0cmV0dXJuIHJldDtcXG4gfVxcbiBcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9xbWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcW1pLmNcXG5pbmRleCBmZDc2MmI1ZDdiYjU5Ny4uNjkyZjFiMmMyMDMxYjcgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9xbWkuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcW1pLmNcXG5AQCAtNDA0MSw3ICs0MDQxLDYgQEAgaW50IGF0aDEya19xbWlfaW5pdF9zZXJ2aWNlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuIFxcbiBcXHRtZW1zZXQoXFx1MDAyNmFiLVxcdTAwM2VxbWkudGFyZ2V0LCAwLCBzaXplb2Yoc3RydWN0IHRhcmdldF9pbmZvKSk7XFxuIFxcdG1lbXNldChcXHUwMDI2YWItXFx1MDAzZXFtaS50YXJnZXRfbWVtLCAwLCBzaXplb2Yoc3RydWN0IHRhcmdldF9tZW1fY2h1bmspKTtcXG4tXFx0YWItXFx1MDAzZXFtaS5hYiA9IGFiO1xcbiBcXG4gXFx0YWItXFx1MDAzZXFtaS50YXJnZXRfbWVtX21vZGUgPSBhYi1cXHUwMDNldGFyZ2V0X21lbV9tb2RlO1xcbiBcXHRyZXQgPSBxbWlfaGFuZGxlX2luaXQoXFx1MDAyNmFiLVxcdTAwM2VxbWkuaGFuZGxlLCBBVEgxMktfUU1JX1JFU1BfTEVOX01BWCxcXG5AQCAtNDA1NCw3ICs0MDUzLDggQEAgaW50IGF0aDEya19xbWlfaW5pdF9zZXJ2aWNlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuIFxcdGFiLVxcdTAwM2VxbWkuZXZlbnRfd3EgPSBhbGxvY19vcmRlcmVkX3dvcmtxdWV1ZShcXFwiYXRoMTJrX3FtaV9kcml2ZXJfZXZlbnRcXFwiLCAwKTtcXG4gXFx0aWYgKCFhYi1cXHUwMDNlcW1pLmV2ZW50X3dxKSB7XFxuIFxcdFxcdGF0aDEya19lcnIoYWIsIFxcXCJmYWlsZWQgdG8gYWxsb2NhdGUgd29ya3F1ZXVlXFxcXG5cXFwiKTtcXG4tXFx0XFx0cmV0dXJuIC1FRkFVTFQ7XFxuK1xcdFxcdHJldCA9IC1FRkFVTFQ7XFxuK1xcdFxcdGdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTtcXG4gXFx0fVxcbiBcXG4gXFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNmFiLVxcdTAwM2VxbWkuZXZlbnRfbGlzdCk7XFxuQEAgLTQwNjcsOSArNDA2NywxNiBAQCBpbnQgYXRoMTJrX3FtaV9pbml0X3NlcnZpY2Uoc3RydWN0IGF0aDEya19iYXNlICphYilcXG4gXFx0aWYgKHJldCBcXHUwMDNjIDApIHtcXG4gXFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gYWRkIHFtaSBsb29rdXBcXFxcblxcXCIpO1xcbiBcXHRcXHRkZXN0cm95X3dvcmtxdWV1ZShhYi1cXHUwMDNlcW1pLmV2ZW50X3dxKTtcXG4tXFx0XFx0cmV0dXJuIHJldDtcXG4rXFx0XFx0Z290byBlcnJfcmVsZWFzZV9xbWlfaGFuZGxlO1xcbiBcXHR9XFxuIFxcbitcXHRhYi1cXHUwMDNlcW1pLmFiID0gYWI7XFxuK1xcbitcXHRyZXR1cm4gcmV0O1xcbitcXG4rZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTpcXG4rXFx0cW1pX2hhbmRsZV9yZWxlYXNlKFxcdTAwMjZhYi1cXHUwMDNlcW1pLmhhbmRsZSk7XFxuK1xcbiBcXHRyZXR1cm4gcmV0O1xcbiB9XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxMjozOTo0MC41NTEzNDE0NTRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwNTc1MDMxODI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkFUSDExS1wiLFxuICAgIFwiQVRIMTFLX1BDSVwiLFxuICAgIFwiQVRIMTJLXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYXRoMTFrX3FtaV9pbml0X3NlcnZpY2VcIixcbiAgICBcImF0aDEya19xbWlfaW5pdF9zZXJ2aWNlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgaW5pdGlhbGl6YXRpb24gZXJyb3IgcGF0aHMgb2YgdGhlIGF0aDExayBhbmQgYXRoMTJrIGRyaXZlcnMuIFRoZXNlIHBhdGhzIGNhbiBiZSByZWFjaGVkIGR1cmluZyBkZXZpY2UgcHJvYmUsIHdoaWNoIGNhbiBiZSB0cmlnZ2VyZWQgYnkgc3l6a2FsbGVyJ3MgUENJIGZ1enppbmcgY29tYmluZWQgd2l0aCBmYXVsdCBpbmplY3Rpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgM2UxYmE4MzFhMDE4ZDM5ZjAyMzBlMTBmMWQ1YzY5NDdmODM5MmIzNlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDE1IDEyOjM5OjM4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcW1pLmNcbmluZGV4IDQxMGE3ZWUwNzZhMDI2Li42ZTNmODIxNjlkMjQxYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcW1pLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcW1pLmNcbkBAIC0zMzI5LDcgKzMzMjksOCBAQCBpbnQgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2Uoc3RydWN0IGF0aDExa19iYXNlICphYilcbiBcdGFiLVx1MDAzZXFtaS5ldmVudF93cSA9IGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlKFwiYXRoMTFrX3FtaV9kcml2ZXJfZXZlbnRcIiwgMCk7XG4gXHRpZiAoIWFiLVx1MDAzZXFtaS5ldmVudF93cSkge1xuIFx0XHRhdGgxMWtfZXJyKGFiLCBcImZhaWxlZCB0byBhbGxvY2F0ZSB3b3JrcXVldWVcXG5cIik7XG4tXHRcdHJldHVybiAtRUZBVUxUO1xuK1x0XHRyZXQgPSAtRUZBVUxUO1xuK1x0XHRnb3RvIGVycl9yZWxlYXNlX3FtaV9oYW5kbGU7XG4gXHR9XG4gXG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZhYi1cdTAwM2VxbWkuZXZlbnRfbGlzdCk7XG5AQCAtMzM0Miw5ICszMzQzLDE0IEBAIGludCBhdGgxMWtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuIFx0aWYgKHJldCBcdTAwM2MgMCkge1xuIFx0XHRhdGgxMWtfd2FybihhYiwgXCJmYWlsZWQgdG8gYWRkIHFtaSBsb29rdXA6ICVkXFxuXCIsIHJldCk7XG4gXHRcdGRlc3Ryb3lfd29ya3F1ZXVlKGFiLVx1MDAzZXFtaS5ldmVudF93cSk7XG4tXHRcdHJldHVybiByZXQ7XG4rXHRcdGdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTtcbiBcdH1cbiBcbitcdHJldHVybiByZXQ7XG4rXG4rZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTpcbitcdHFtaV9oYW5kbGVfcmVsZWFzZShcdTAwMjZhYi1cdTAwM2VxbWkuaGFuZGxlKTtcbitcbiBcdHJldHVybiByZXQ7XG4gfVxuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcW1pLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3FtaS5jXG5pbmRleCBmZDc2MmI1ZDdiYjU5Ny4uNjkyZjFiMmMyMDMxYjcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3FtaS5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3FtaS5jXG5AQCAtNDA0MSw3ICs0MDQxLDYgQEAgaW50IGF0aDEya19xbWlfaW5pdF9zZXJ2aWNlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG4gXG4gXHRtZW1zZXQoXHUwMDI2YWItXHUwMDNlcW1pLnRhcmdldCwgMCwgc2l6ZW9mKHN0cnVjdCB0YXJnZXRfaW5mbykpO1xuIFx0bWVtc2V0KFx1MDAyNmFiLVx1MDAzZXFtaS50YXJnZXRfbWVtLCAwLCBzaXplb2Yoc3RydWN0IHRhcmdldF9tZW1fY2h1bmspKTtcbi1cdGFiLVx1MDAzZXFtaS5hYiA9IGFiO1xuIFxuIFx0YWItXHUwMDNlcW1pLnRhcmdldF9tZW1fbW9kZSA9IGFiLVx1MDAzZXRhcmdldF9tZW1fbW9kZTtcbiBcdHJldCA9IHFtaV9oYW5kbGVfaW5pdChcdTAwMjZhYi1cdTAwM2VxbWkuaGFuZGxlLCBBVEgxMktfUU1JX1JFU1BfTEVOX01BWCxcbkBAIC00MDU0LDcgKzQwNTMsOCBAQCBpbnQgYXRoMTJrX3FtaV9pbml0X3NlcnZpY2Uoc3RydWN0IGF0aDEya19iYXNlICphYilcbiBcdGFiLVx1MDAzZXFtaS5ldmVudF93cSA9IGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlKFwiYXRoMTJrX3FtaV9kcml2ZXJfZXZlbnRcIiwgMCk7XG4gXHRpZiAoIWFiLVx1MDAzZXFtaS5ldmVudF93cSkge1xuIFx0XHRhdGgxMmtfZXJyKGFiLCBcImZhaWxlZCB0byBhbGxvY2F0ZSB3b3JrcXVldWVcXG5cIik7XG4tXHRcdHJldHVybiAtRUZBVUxUO1xuK1x0XHRyZXQgPSAtRUZBVUxUO1xuK1x0XHRnb3RvIGVycl9yZWxlYXNlX3FtaV9oYW5kbGU7XG4gXHR9XG4gXG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZhYi1cdTAwM2VxbWkuZXZlbnRfbGlzdCk7XG5AQCAtNDA2Nyw5ICs0MDY3LDE2IEBAIGludCBhdGgxMmtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuIFx0aWYgKHJldCBcdTAwM2MgMCkge1xuIFx0XHRhdGgxMmtfd2FybihhYiwgXCJmYWlsZWQgdG8gYWRkIHFtaSBsb29rdXBcXG5cIik7XG4gXHRcdGRlc3Ryb3lfd29ya3F1ZXVlKGFiLVx1MDAzZXFtaS5ldmVudF93cSk7XG4tXHRcdHJldHVybiByZXQ7XG4rXHRcdGdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTtcbiBcdH1cbiBcbitcdGFiLVx1MDAzZXFtaS5hYiA9IGFiO1xuK1xuK1x0cmV0dXJuIHJldDtcbitcbitlcnJfcmVsZWFzZV9xbWlfaGFuZGxlOlxuK1x0cW1pX2hhbmRsZV9yZWxlYXNlKFx1MDAyNmFiLVx1MDAzZXFtaS5oYW5kbGUpO1xuK1xuIFx0cmV0dXJuIHJldDtcbiB9XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxMjozOTo0MC41NTEzNDQ3NjRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3ODk4MDczNTc4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE5ldHdvcmsgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2VgIGFuZCBgYXRoMTJrX3FtaV9pbml0X3NlcnZpY2VgIGluIGBhdGgxMWsvcW1pLmNgIGFuZCBgYXRoMTJrL3FtaS5jYCByZXNwZWN0aXZlbHkuIEl0IHNlZW1zIGxpa2UgaXQncyBhZGRyZXNzaW5nIGEgYHFtaV9oYW5kbGVgIGxlYWsgb24gZXJyb3IgcGF0aHM7IHNwZWNpZmljYWxseSwgYnkgbWFraW5nIHN1cmUgYHFtaV9oYW5kbGVfcmVsZWFzZWAgZ2V0cyBjYWxsZWQgd2hlbiBlaXRoZXIgYGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlYCBvciBgcW1pX2FkZF9sb29rdXBgIGZhaWxzLiBBbHNvLCBpbiB0aGUgYGF0aDEya2AgdmVyc2lvbiwgYSBzaW1wbGUgbGluZSBpcyBtb3ZlZC5cblxuVGhlIGtleSBxdWVzdGlvbiBpcyBhbHdheXMsICpjYW4qIHRoaXMgY29kZSBldmVuIGJlIHRyaWdnZXJlZCBpbiBhIGZ1enppbmcgZW52aXJvbm1lbnQ/IFRoZXNlIGFyZSBkcml2ZXJzIGZvciBRdWFsY29tbSBXaS1GaSA2LzcgaGFyZHdhcmUsIGBhdGgxMWtgIGFuZCBgYXRoMTJrYC4gVHlwaWNhbGx5LCB5b3UncmUgZGVhbGluZyB3aXRoIHBoeXNpY2FsIFBDSSBvciBBSEIgZGV2aWNlcyBoZXJlLiBSZWFsaXN0aWNhbGx5LCBhcmUgd2UgZnV6emluZyBzb21ldGhpbmcgdGhhdCdzIGRpZmZpY3VsdCBvciBpbXBvc3NpYmxlIHRvIGVtdWxhdGU/IE15IGd1dCBzYXlzIG5vLCBiZWNhdXNlIHRoZXNlIHVzdWFsbHkgYXJlbid0IGVtdWxhdGVkLlxuXG5CdXQgd2FpdCwgc3l6a2FsbGVyICpkb2VzKiBmdXp6IHNvbWUgUENJIHN0dWZmLCByaWdodD8gTm90IGRpcmVjdGx5IGVtdWxhdGluZyB0aGVzZSBzcGVjaWZpYyBkcml2ZXJzLiBTbyB3aGF0J3MgdGhlIGxpa2VsaWhvb2QgdGhhdCB0aGlzIHBhcnRpY3VsYXIgZXJyb3IgcGF0aCBpcyBiZWluZyBoaXQ/IExldCdzIHZlcmlmeSBieSBjaGVja2luZyBzeXpib3QgY29uZmlnLiBDYW4gSSBzZWUgd2hldGhlciBgQ09ORklHX0FUSDExS2Agb3IgYENPTkZJR19BVEgxMktgIGlzIGVuYWJsZWQgYW55d2hlcmU/IEdlbmVyYWxseSwgSSB0aGluayB1bmxlc3MgdGhlcmUncyBhIHNwZWNpZmljIHNldHVwIGZvciBlbXVsYXRpb24gb3IgZ2VuZXJpYyBQQ0kgZnV6emluZywgdGhpcyB3b3VsZG4ndCBiZSBkaXJlY3RseSB0ZXN0ZWQuXG5cbk9rYXksIHNvIHN5emthbGxlciAqZG9lcyogaGF2ZSBzb21ldGhpbmcgbGlrZSBgc3l6X3BjaV9kZXZpY2VgIGZvciBQQ0kgZnV6emluZywgc28gSSBuZWVkIHRvIGNoZWNrIGhvdyB0aGF0IGZpdHMgaW50byB0aGUgcGljdHVyZS4gSXMgaXQgcmVhbGx5IHdvcnRoIGl0IHRvIGZvY3VzIG9uIGZ1enppbmcgdGhpcyBpbml0aWFsaXphdGlvbiBlcnJvciBwYXRoPyBUaGUgcGF0Y2ggKmlzKiBhIG1lbW9yeSBsZWFrIGZpeC4gQmV0dGVyIHRvIGNoZWNrIHdoYXQgKmlzKiBiZWluZyBmdXp6ZWQgYW5kIHdoZXRoZXIgYGF0aDExa2AgYW5kIGBhdGgxMmtgIGFyZSB3aXRoaW4gdGhhdCBzY29wZS4gSSdsbCB1c2UgYGdyZXBwZXJgIHRvIHNlYXJjaCBmb3IgYW55IHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIG9yIGhpbnRzIGFib3V0IFBDSSBkcml2ZXIgdXNhZ2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3MDMsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MTQsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxMjozOTo0OC40NDk0MjA3MDJaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ2OTk3NDg3NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQVRIMTFLXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6Mjpjb25maWcgQVRIMTFLXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlF1YWxjb21tIDgwMi4xMWF4IGNoaXBzZXQgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MTM6Y29uZmlnIEFUSDExS19BSEJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMTQtXFx0dHJpc3RhdGUgXFxcIkF0aGVyb3MgYXRoMTFrIEFIQiBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzoyMDpjb25maWcgQVRIMTFLX1BDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiQXRoZXJvcyBhdGgxMWsgUENJIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjMwOmNvbmZpZyBBVEgxMUtfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMzEtXFx0Ym9vbCBcXFwiUUNBIGF0aDExayBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjM4OmNvbmZpZyBBVEgxMUtfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0zOS1cXHRib29sIFxcXCJRQ0EgYXRoMTFrIGRlYnVnZnMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy00NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NDY6Y29uZmlnIEFUSDExS19UUkFDSU5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQ3LVxcdGJvb2wgXFxcImF0aDExayB0cmFjaW5nIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjUyOmNvbmZpZyBBVEgxMUtfU1BFQ1RSQUxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNTMtXFx0Ym9vbCBcXFwiUUNBIGF0aDExayBzcGVjdHJhbCBzY2FuIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjYxOmNvbmZpZyBBVEgxMUtfQ0ZSXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTYyLVxcdGJvb2wgXFxcImF0aDExayBjaGFubmVsIGZyZXF1ZW5jeSByZXNwb25zZSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxMjozOTo0OS45MTk0MDk2MThaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1Mzg2MzQ3Mzk0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgVmFsdWUgb2YgRnV6emluZyBhIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggYWRkcmVzc2VzIGEgbWVtb3J5IGxlYWsgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgaW5pdGlhbGl6YXRpb24gZXJyb3IgcGF0aHMgb2YgdGhlIGBhdGgxMWtgIGFuZCBgYXRoMTJrYCBkcml2ZXJzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiSXMgdGhpcyBldmVuIHdvcnRoIGZ1enppbmc/XCIgVGhlIG1vZGlmaWNhdGlvbnMgYXJlIHNvbGVseSB3aXRoaW4gdGhlIGVycm9yIGhhbmRsaW5nIHJvdXRpbmVzOiBgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2VgIGFuZCBgYXRoMTJrX3FtaV9pbml0X3NlcnZpY2VgLiBUaGVzZSBwYXJ0aWN1bGFyIGNvZGUgc2VjdGlvbnMgb25seSBraWNrIGluIHdoZW4gYGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlYCBmYWlscyBvciBgcW1pX2FkZF9sb29rdXBgIGZhaWxzIGR1cmluZyB0aGUgaW5pdGlhbCBzZXR1cC5cblxuTm93LCBjb25zaWRlcmluZyB0aGlzIGlzIGEgcGh5c2ljYWwgZGV2aWNlIGRyaXZlciAobGlrZWx5IFBDSS9BSEIpLCBmdXp6aW5nIHRoaXMgKnNwZWNpZmljKiBlcnJvciBwYXRoIHNlZW1zIGluY3JlZGlibHkgdW5saWtlbHkgdG8gYmUgcHJvZHVjdGl2ZS4gV2UncmUgdGFsa2luZyBhYm91dCBmYWlsdXJlIGNvbmRpdGlvbnMgdGhhdCB3b3VsZCBiZSB2ZXJ5IGRpZmZpY3VsdCB0byByZXByb2R1Y2UgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCDigJMgbm8gaGFyZHdhcmUgYWNjZXNzLiBFdmVuIHdpdGggUENJIGZ1enppbmcsIGZvcmNpbmcgYSBgcW1pX2FkZF9sb29rdXBgIGZhaWx1cmUgb3Igd29ya3F1ZXVlIGFsbG9jYXRpb24gZmFpbHVyZSB3b3VsZCBlc3NlbnRpYWxseSBqdXN0IGJlIHN0YW5kYXJkIGZhdWx0IGluamVjdGlvbiwgdGhlIGtpbmQgdGhhdCBtaWdodCBiZSBoYXJkIHRvIGV4cGxvaXQuXG5cbldhaXQgYSBzZWNvbmTigKYgc3l6a2FsbGVyIGRvZXMgZmF1bHQgaW5qZWN0aW9uLCByaWdodD8gQ291bGQgaXQgcG90ZW50aWFsbHkgcmVhY2ggYGF0aDExa19xbWlfaW5pdF9zZXJ2aWNlYD8gSSBuZWVkIHRvIGNoZWNrIHdoZXJlIGBhdGgxMWtfcW1pX2luaXRfc2VydmljZWAgaXMgYWN0dWFsbHkgYmVpbmcgY2FsbGVkIHdpdGhpbiB0aGUgZHJpdmVyIHRvIGRldGVybWluZSBpZiBmYXVsdCBpbmplY3Rpb24gY291bGQgZXZlbiB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoLiBMZXQncyBzZWUuLi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI5OSwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxMjozOTo1NS4zMDU3NTg4NzJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjY2MzE0MTc0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDExa19xbWlfaW5pdF9zZXJ2aWNlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jPTE5ODU9c3RhdGljIGludCBhdGgxMWtfY29yZV9zb2NfY3JlYXRlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuYy0xOTkzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jOjE5OTQ6XFx0cmV0ID0gYXRoMTFrX3FtaV9pbml0X3NlcnZpY2UoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jLTE5OTUtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuYz0zMjA3PXN0YXRpYyB2b2lkIGF0aDExa19xbWlfZHJpdmVyX2V2ZW50X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuYy0zMzEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcW1pLmM6MzMxMzppbnQgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2Uoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5jLTMzMTQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuaD01MjA9dm9pZCBhdGgxMWtfcW1pX2RlaW5pdF9zZXJ2aWNlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcW1pLmg6NTIxOmludCBhdGgxMWtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5oLTUyMi12b2lkIGF0aDExa19xbWlfZnJlZV9yZXNvdXJjZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTI6Mzk6NTUuNTcyMDc5MTY2WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzAyNDQ0NDgzNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBpdCB3ZXJlIG15IG93bjpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBhdGgxMWsgRHJpdmVyIEluaXRpYWxpemF0aW9uKipcblxuQWxyaWdodCwgc28gSSdtIGxvb2tpbmcgYXQgdGhlIGBhdGgxMWtfY29yZV9zb2NfY3JlYXRlYCBmdW5jdGlvbiwgYW5kIGl0J3MgY2FsbGluZyBgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2VgLiBIbW0sIHRoYXQncyBpbnRlcmVzdGluZy4gSSBrbm93IFFNSSBpcyBRdWFsY29tbSdzIEludGVyZmFjZSwgYW5kIGxpa2VseSBoYW5kbGVzIHRoZSBjb21tdW5pY2F0aW9uIHdpdGggdGhlIGZpcm13YXJlIG9uIHRoZSBTb0MuIEJ1dCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29udHJvbCBmbG93IGJldHRlci4gV2hlcmUgaXMgYGF0aDExa19jb3JlX3NvY19jcmVhdGVgIGFjdHVhbGx5IGJlaW5nIGNhbGxlZCBmcm9tPyBJcyBpdCBkdXJpbmcgdGhlIGRyaXZlcidzIHByb2JlIHNlcXVlbmNlPyBEdXJpbmcgYSBQQ0kgaW5pdGlhbGl6YXRpb24/IE9yIHNvbWUgb3RoZXIgZW50cnkgcG9pbnQ/IEtub3dpbmcgdGhlIGNhbGxlciBpcyBjcml0aWNhbCBmb3IgdW5kZXJzdGFuZGluZyB3aGVuIHRoZSBRTUkgc2VydmljZSBnZXRzIGluaXRpYXRlZCBhbmQgaG93IGl0IHJlbGF0ZXMgdG8gb3RoZXIgaW5pdGlhbGl6YXRpb24gc3RlcHMuIEkgbmVlZCB0byB0cmFjZSBiYWNrIGZyb20gdGhhdCBmdW5jdGlvbiBjYWxsIHRvIHNlZSB0aGUgY29udGV4dCBvZiBpdHMgZXhlY3V0aW9uLiBUaGF0IHdpbGwgdGVsbCBtZSBhIGxvdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTI5OSwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDEyOjM5OjU4LjU5NjUyNjIxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwNjA5NTg0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDExa19jb3JlX3NvY19jcmVhdGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmM9MTk3Mz1zdGF0aWMgdm9pZCBhdGgxMWtfY29yZV9zdG9wKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuYy0xOTg0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jOjE5ODU6c3RhdGljIGludCBhdGgxMWtfY29yZV9zb2NfY3JlYXRlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmMtMTk4Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuYz0yNjg2PWludCBhdGgxMWtfY29yZV9pbml0KHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuYy0yNzA0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jOjI3MDU6XFx0cmV0ID0gYXRoMTFrX2NvcmVfc29jX2NyZWF0ZShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmMtMjcwNi1cXHRpZiAocmV0KSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDEyOjM5OjU4LjY1NzE0MTIyNFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwNTg3OTMxMDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIEluaXRpYWxpemF0aW9uIEZsb3cgb2YgdGhlIGF0aDExayBDb3JlKipcblxuUmlnaHQsIGxldCdzIHNlZS4uLiBJJ20gbG9va2luZyBhdCB0aGUgYGF0aDExa19jb3JlX2luaXRgIGZ1bmN0aW9uLiBJdCBhcHBlYXJzIHRoYXQgdGhpcyBpcyB0aGUgcHJpbWFyeSBlbnRyeSBwb2ludCBmb3IgaW5pdGlhbGl6aW5nIHRoZSBjb3JlIG1vZHVsZSwgYXMgdGhlIG5hbWUgc3VnZ2VzdHMuIEFuZCB3aXRoaW4gdGhhdCwgSSdtIHNlZWluZyBhIGNhbGwgdG8gYGF0aDExa19jb3JlX3NvY19jcmVhdGVgLiBTbywgYGF0aDExa19jb3JlX3NvY19jcmVhdGVgIG11c3QgYmUgY3J1Y2lhbCB0byBzZXR0aW5nIHVwIHRoZSBTeXN0ZW0tb24tYS1DaGlwIHJlbGF0ZWQgY29tcG9uZW50cy4gVGhhdCBtYWtlcyBzZW5zZSwgaGFuZGxpbmcgdGhlIGhhcmR3YXJlIGFic3RyYWN0aW9uLlxuXG5Ob3csIHRoZSByZWFsIHF1ZXN0aW9uIHRoYXQgcG9wcyB1cCwgYW5kIHNvbWV0aGluZyBJJ2Qgd2FudCB0byB0cmFjayBkb3duIGltbWVkaWF0ZWx5IHdoZW4gcmV2aWV3aW5nIHRoaXMgaXM6IHdoZXJlICppcyogYGF0aDExa19jb3JlX2luaXRgIGFjdHVhbGx5IGludm9rZWQ/IFVuZGVyc3RhbmRpbmcgdGhlIGNhbGwgc3RhY2sgdGhhdCBsZWFkcyB0byB0aGlzIGZ1bmN0aW9uIGlzIGVzc2VudGlhbCBmb3IgY29tcHJlaGVuZGluZyB0aGUgb3ZlcmFsbCBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZS4gSXMgaXQgY2FsbGVkIGR1cmluZyBkcml2ZXIgcHJvYmU/IElzIGl0IHBhcnQgb2Ygc29tZSBlYXJseSBzeXN0ZW0gYm9vdCBzZXF1ZW5jZT8gS25vd2luZyBpdHMgcGFyZW50IGZ1bmN0aW9uIGNhbGxzLCBhbmQgdGhlIGNvbnRleHQgaW4gd2hpY2ggYGF0aDExa19jb3JlX2luaXRgIGlzIGNhbGxlZCwgd2lsbCBwYWludCB0aGUgZnVsbCBwaWN0dXJlIG9mIHRoZSBpbml0aWFsaXphdGlvbiBmbG93LiBUaGlzIGlzIHdoZXJlIEkgd291bGQgc3RhcnQgbXkgZGVidWcgdHJhY2luZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTg3MywiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDEyOjQwOjAyLjcxNTkzNjI5N1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzkzODM5OTcyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDExa19jb3JlX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xMTA3PXN0YXRpYyBpbnQgYXRoMTFrX2FoYl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMTkzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTE5NDpcXHRyZXQgPSBhdGgxMWtfY29yZV9pbml0KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTExOTUtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmM9MjY4ND1FWFBPUlRfU1lNQk9MKGF0aDExa19jb3JlX3BtX25vdGlmaWVyX3VucmVnaXN0ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jLTI2ODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmM6MjY4NjppbnQgYXRoMTFrX2NvcmVfaW5pdChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jLTI2ODcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmMtMjcxNy19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmM6MjcxODpFWFBPUlRfU1lNQk9MKGF0aDExa19jb3JlX2luaXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jLTI3MTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuaD0xMjcwPWludCBhdGgxMWtfY29yZV9wcmVfaW5pdChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuaDoxMjcxOmludCBhdGgxMWtfY29yZV9pbml0KHN0cnVjdCBhdGgxMWtfYmFzZSAqYXRoMTFrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuaC0xMjcyLXZvaWQgYXRoMTFrX2NvcmVfZGVpbml0KHN0cnVjdCBhdGgxMWtfYmFzZSAqYXRoMTFrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmM9OTQ1PXN0YXRpYyBpbnQgYXRoMTFrX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMtMTEzNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jOjExMzY6XFx0cmV0ID0gYXRoMTFrX2NvcmVfaW5pdChhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYy0xMTM3LVxcdGlmIChyZXQpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTI6NDA6MDMuMTA5NzgxODM5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUwMTE0MDQ4MTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyB0aGUgYXRoMTFrIFBDSSBQcm9iZSBFcnJvciBQYXRoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBmaXggaW4gYGF0aDExa19wY2lfcHJvYmVgIGFuZCBgYXRoMTFrX2FoYl9wcm9iZWAuIEl0IHNlZW1zIGxpa2Ugc3l6a2FsbGVyIGNvdWxkIHBvdGVudGlhbGx5IGhpdCB0aGlzIHZpYSBQQ0kgZnV6emluZywgc3BlY2lmaWNhbGx5IHRoZSBgc3l6X3BjaV9kZXZpY2VgIGNhbGwuIEJ1dCB0aGlzIGlzIGp1c3QgYW4gZXJyb3IgcGF0aCBmaXg7IGl0J3MgYSBtZW1vcnkgbGVhayBpbiB0aGUgcHJvYmUgcm91dGluZSwgbm90IHNvbWUgY29yZSBmdW5jdGlvbmFsaXR5LlxuXG5UaGUgcXVlc3Rpb24gaXMsIGlzIHRoaXMgZXZlbiB3b3J0aCBmdXp6aW5nPyBJZiB3ZSBlbmFibGUgYm90aCBgQVRIMTFLYCBhbmQgYEFUSDEyS2AsIHdlIGluY3JlYXNlIHRoZSBjaGFuY2VzIHN5emthbGxlciB3aWxsIHRyaWdnZXIgYGF0aDExa19wY2lfcHJvYmVgLiBJdCdzIGEgdmVyeSBzcGVjaWZpYyBlcnJvciBzY2VuYXJpbywgYSBmYWlsdXJlLWluZHVjZWQgbGVhay5cblxuRnVuY3Rpb25hbGx5LCB5ZXMsIGl0IGZpeGVzIGEgbGVhaywgc28gaXQgaGFzIHZhbHVlLiBJdCdzIHJlYWNoYWJsZSBiZWNhdXNlIHN5emthbGxlcidzIFBDSSBmdXp6aW5nIGNhbiwgaW4gdGhlb3J5LCBnZXQgdXMgdGhlcmUuIEJ1dCBzaG91bGQgd2Ugc3BlbmQgY3ljbGVzIG9uIGl0PyBQcm9iZSBmdW5jdGlvbiBlcnJvciBmaXhlcywgZXNwZWNpYWxseSBpbiBoYXJkd2FyZSBkcml2ZXJzLCBhcmUgdXN1YWxseSBjbGFzc2lmaWVkIGFzIGZ1bmN0aW9uYWwgYnV0IG9mdGVuIG5vdCB0aGUgbW9zdCBleGNpdGluZyB0YXJnZXRzLiBUaGF0IHNhaWQsIHN5emthbGxlciBkb2VzIGEgZ29vZCBqb2Igb2YgZmluZGluZyB0aGVzZSB0eXBlcyBvZiBtZW1vcnkgbGVha3MuIFNvIEkgc2hvdWxkIGNoZWNrIGBhdGgxMmtgIGNvbmZpZ3MgZm9yIG1vcmUgY29udGV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6Njg2NCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxMjo0MDowOC4xMjExODg2NzlaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY2Nzc1MTkzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBBVEgxMktcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzoyOmNvbmZpZyBBVEgxMktcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiUXVhbGNvbW0gV2ktRmkgNyBzdXBwb3J0IChhdGgxMmspXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzoxNzpjb25maWcgQVRIMTJLX0FIQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xOC1cXHRib29sIFxcXCJRdWFsY29tbSBhdGgxMmsgQUhCIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjI1OmNvbmZpZyBBVEgxMktfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMjYtXFx0Ym9vbCBcXFwiYXRoMTJrIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MzU6Y29uZmlnIEFUSDEyS19ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTM2LVxcdGJvb2wgXFxcIlF1YWxjb21tIGF0aDEyayBkZWJ1Z2ZzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjQ0OmNvbmZpZyBBVEgxMktfVFJBQ0lOR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy00NS1cXHRib29sIFxcXCJhdGgxMmsgdHJhY2luZyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTUyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo1Mzpjb25maWcgQVRIMTJLX0NPUkVEVU1QXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTU0LVxcdGJvb2wgXFxcImF0aDEyayBjb3JlZHVtcFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTI6NDA6MDguMTg3OTcwNDEyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5MDQ5MDAyNDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIHNlZS4uLiBXYWl0IGEgbWludXRlLCBJIHdhcyB1bmRlciB0aGUgaW1wcmVzc2lvbiB0aGF0IHRoZSBgQVRIMTJLYCBkcml2ZXIgaW5jbHVkZWQgdGhlIGBBVEgxMktfUENJYCBjb21wb25lbnQuIFRoYXQgZG9lc24ndCBzZWVtIHJpZ2h0LiBBbHJpZ2h0LCBsZXQncyBqdXN0IG1ha2Ugc3VyZS4gSSdsbCBuZWVkIHRvIGdvIGRpcmVjdGx5IHRvIHRoZSBzb3VyY2UgZm9yIGNvbmZpcm1hdGlvbi4gSSdsbCBvcGVuIHVwIHRoZSBgS2NvbmZpZ2AgZmlsZSBzcGVjaWZpY2FsbHkgZm9yIHRoYXQgZHJpdmVyLCBpdCBzaG91bGQgYmUgbG9jYXRlZCBhdCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnYC4gVGhhdCdzIHdoZXJlIHRoZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBvcHRpb25zIGFyZSBkZWZpbmVkLCBzbyB0aGF0J3Mgd2hlcmUgSSdsbCBmaW5kIHRoZSBhbnN3ZXIgcmVnYXJkaW5nIFBDSSBzdXBwb3J0LCBvciBsYWNrIHRoZXJlb2YuIExldCBtZSBnbyB0YWtlIGEgbG9vay4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3OTA2LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTI6NDA6MTEuMDkyODcyNTI5WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MTAwMzM4NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJQQ0lcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZz0yPWNvbmZpZyBBVEgxMktcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiUXVhbGNvbW0gV2ktRmkgNyBzdXBwb3J0IChhdGgxMmspXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo0OlxcdGRlcGVuZHMgb24gTUFDODAyMTEgXFx1MDAyNlxcdTAwMjYgSEFTX0RNQSBcXHUwMDI2XFx1MDAyNiBQQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNS1cXHRzZWxlY3QgUUNPTV9RTUlfSEVMUEVSU1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTgtXFx0c2VsZWN0IFFSVFJfTUhJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjk6XFx0c2VsZWN0IFBDSV9QV1JDVFJMX1BXUlNFUSBpZiBIQVZFX1BXUkNUUkxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTAtXFx0aGVscFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxMjo0MDoxMS4xNTM4ODE1MTJaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTg5NDMwMTk0MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBBVEgxMksgRHJpdmVyIFBhdGNoKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGcm9tIHdoYXQgSSBzZWUsIGBBVEgxMktgIGRvZXNuJ3QgaGF2ZSBpdHMgb3duIGRlZGljYXRlZCBgQVRIMTJLX1BDSWAgY29uZmlndXJhdGlvbjsgaXQgZGlyZWN0bHkgZGVwZW5kcyBvbiBgUENJYC4gU28sIHRvIGVuc3VyZSB0aGUgbmVjZXNzYXJ5IG1vZHVsZXMgYXJlIGJ1aWx0LCBJJ2xsIG5lZWQgdG8gZW5hYmxlIGBBVEgxMUtgLCBgQVRIMTFLX1BDSWAsIGFuZCBgQVRIMTJLYC5cblxuVGhlIGtleSBmdW5jdGlvbnMgaGVyZSBhcmUgYGF0aDExa19xbWlfaW5pdF9zZXJ2aWNlYCBhbmQgYGF0aDEya19xbWlfaW5pdF9zZXJ2aWNlYC4gTm93LCBpcyB0aGlzIGZ1enphYmxlPyBBYnNvbHV0ZWx5LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIHNwZWNpZmljYWxseSBhZGRyZXNzaW5nIGEgbWVtb3J5IGxlYWsgaW4gdGhlIGVycm9yIGhhbmRsaW5nIHdpdGhpbiB0aGUgaW5pdGlhbGl6YXRpb24gcm91dGluZXMuIFN5emthbGxlcidzIFBDSSBmdXp6aW5nLCBjb3VwbGVkIHdpdGggZmF1bHQgaW5qZWN0aW9uLCBzaG91bGQgYmUgYWJsZSB0byB0cmlnZ2VyIHRoZXNlIGVycm9yIHBhdGhzIGVmZmVjdGl2ZWx5LlxuXG5MZXQncyBxdWlja2x5IGNvbmZpcm0gdGhvc2UgZGVwZW5kZW5jaWVzLiBZZXMsIGBBVEgxMUtgIGRlcGVuZHMgb24gYE1BQzgwMjExYCwgYEhBU19ETUFgLCBhbmQgYFBDSWAgKGZvciBgQVRIMTFLX1BDSWApLCBhbmQgYEFUSDEyS2AgaGFzIHRoZSBzYW1lIGRlcGVuZGVuY2llczogYE1BQzgwMjExYCwgYEhBU19ETUFgLCBhbmQgYFBDSWAuIFNvLCB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3MgYXJlIGBBVEgxMUtgLCBgQVRIMTFLX1BDSWAsIGFuZCBgQVRIMTJLYC4gQWdhaW4sIG15IHByaW1hcnkgZm9jdXMgd2lsbCBiZSBvbiB0aGUgYGF0aDExa19xbWlfaW5pdF9zZXJ2aWNlYCBhbmQgYGF0aDEya19xbWlfaW5pdF9zZXJ2aWNlYCBzeW1ib2xzLlxuXG5Ob3csIGxldCdzIHRha2UgYW5vdGhlciBsb29rIGF0IHRoZSBwYXRjaCBpdHNlbGYuIEl0J3MgYSBjbGVhbiwgZGlyZWN0IGVycm9yIHBhdGggY29ycmVjdGlvbi5cblxuYGBgY1xuQEAgLTMzMjksNyArMzMyOSw4IEBAIGludCBhdGgxMWtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuIFx0YWItXHUwMDNlcW1pLmV2ZW50X3dxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoXCJhdGgxMWtfcW1pX2RyaXZlcl9ldmVudFwiLCAwKTtcbiBcdGlmICghYWItXHUwMDNlcW1pLmV2ZW50X3dxKSB7XG4gXHRcdGF0aDExa19lcnIoYWIsIFwiZmFpbGVkIHRvIGFsbG9jYXRlIHdvcmtxdWV1ZVxcblwiKTtcbi1cdFx0cmV0dXJuIC1FRkFVTFQ7XG4rXHRcdHJldCA9IC1FRkFVTFQ7XG4rXHRcdGdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTtcbiBcdH1cbiBcbiBcdElOSVRfTElTVF9IRUFEKFx1MDAyNmFiLVx1MDAzZXFtaS5ldmVudF9saXN0KTtcbkBAIC0zMzQyLDkgKzMzNDMsMTQgQEAgaW50IGF0aDExa19xbWlfaW5pdF9zZXJ2aWNlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4gXHRpZiAocmV0IFx1MDAzYyAwKSB7XG4gXHRcdGF0aDExa193YXJuKGFiLCBcImZhaWxlZCB0byBhZGQgcW1pIGxvb2t1cDogJWRcXG5cIiwgcmV0KTtcbiBcdFx0ZGVzdHJveV93b3JrcXVldWUoYWItXHUwMDNlcW1pLmV2ZW50X3dxKTtcbi1cdFx0cmV0dXJuIHJldDtcbitcdFx0Z290byBlcnJfcmVsZWFzZV9xbWlfaGFuZGxlO1xuIFx0fVxuIFxuK1x0cmV0dXJuIHJldDtcbitcbitlcnJfcmVsZWFzZV9xbWlfaGFuZGxlOlxuK1x0cW1pX2hhbmRsZV9yZWxlYXNlKFx1MDAyNmFiLVx1MDAzZXFtaS5oYW5kbGUpO1xuK1xuIFx0cmV0dXJuIHJldDtcbiB9XG4gYGBgXG5cblNlZW1zIGNsZWFyOiBUaGUgcGF0Y2ggY29ycmVjdGx5IGhhbmRsZXMgdGhlIGBxbWlgIGhhbmRsZSByZWxlYXNlIGluIGVycm9yIHBhdGhzLlxuXG5UaGVyZWZvcmUsIEknbGwgc2V0IGBXb3J0aEZ1enppbmc9dHJ1ZWAsIHRoZSBgRm9jdXNTeW1ib2xzYCB0byBgW1wiYXRoMTFrX3FtaV9pbml0X3NlcnZpY2VcIiwgXCJhdGgxMmtfcW1pX2luaXRfc2VydmljZVwiXWAsIGFuZCBgRW5hYmxlQ29uZmlnc2AgdG8gYFtcIkFUSDExS1wiLCBcIkFUSDExS19QQ0lcIiwgXCJBVEgxMktcIl1gLiBUaGUgcmVhc29uaW5nIGlzIHRoYXQgdGhlIHBhdGNoIG1pdGlnYXRlcyBhIG1lbW9yeSBsZWFrIHdpdGhpbiB0aGUgaW5pdGlhbGl6YXRpb24gZXJyb3IgcGF0aHMgZm9yIHRoZSBhdGgxMWsgYW5kIGF0aDEyayBkcml2ZXJzLiBUaGVzZSBzcGVjaWZpYyBlcnJvciBwYXRod2F5cyBhcmUgcmVhY2hhYmxlIGR1cmluZyBkZXZpY2UgcHJvYmUuIFN5emthbGxlcidzIFBDSSBmdXp6aW5nIGluIGNvbmp1bmN0aW9uIHdpdGggZmF1bHQgaW5qZWN0aW9uIHNob3VsZCBiZSBlZmZlY3RpdmUgZm9yIHRlc3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjgzNDksIk91dHB1dFRva2VucyI6MTMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzQ3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDEyOjQwOjIxLjA0ODE4NTM3NVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc4MTg0NDMzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJBVEgxMUtcIixcbiAgICBcIkFUSDExS19QQ0lcIixcbiAgICBcIkFUSDEyS1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImF0aDExa19xbWlfaW5pdF9zZXJ2aWNlXCIsXG4gICAgXCJhdGgxMmtfcW1pX2luaXRfc2VydmljZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIGluaXRpYWxpemF0aW9uIGVycm9yIHBhdGhzIG9mIHRoZSBhdGgxMWsgYW5kIGF0aDEyayBkcml2ZXJzLiBUaGVzZSBwYXRocyBjYW4gYmUgcmVhY2hlZCBkdXJpbmcgZGV2aWNlIHByb2JlLCB3aGljaCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IHN5emthbGxlcidzIFBDSSBmdXp6aW5nIGNvbWJpbmVkIHdpdGggZmF1bHQgaW5qZWN0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkFUSDExS1wiLFxuICAgIFwiQVRIMTFLX1BDSVwiLFxuICAgIFwiQVRIMTJLXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYXRoMTFrX3FtaV9pbml0X3NlcnZpY2VcIixcbiAgICBcImF0aDEya19xbWlfaW5pdF9zZXJ2aWNlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgaW5pdGlhbGl6YXRpb24gZXJyb3IgcGF0aHMgb2YgdGhlIGF0aDExayBhbmQgYXRoMTJrIGRyaXZlcnMuIFRoZXNlIHBhdGhzIGNhbiBiZSByZWFjaGVkIGR1cmluZyBkZXZpY2UgcHJvYmUsIHdoaWNoIGNhbiBiZSB0cmlnZ2VyZWQgYnkgc3l6a2FsbGVyJ3MgUENJIGZ1enppbmcgY29tYmluZWQgd2l0aCBmYXVsdCBpbmplY3Rpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowcvtdl[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-15 12:28:54 +0000 UTC FinishedAt: 2026-07-15 12:40:23 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "58717b2a1365d06c8c64b72aa948541b53fe31eb", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "ATH11K", "ATH11K_PCI", "ATH12K" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "58717b2a1365d06c8c64b72aa948541b53fe31eb", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "ATH11K", "ATH11K_PCI", "ATH12K" ], "series_id": "0f1ece3a-092b-4150-82ca-364455c7f03e" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ath11k_qmi_init_service", "ath12k_qmi_init_service" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDEyOjM5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0FUSDExSyYjMzQ7LAogICAgJiMzNDtBVEgxMUtfUENJJiMzNDssCiAgICAmIzM0O0FUSDEySyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2F0aDExa19xbWlfaW5pdF9zZXJ2aWNlJiMzNDssCiAgICAmIzM0O2F0aDEya19xbWlfaW5pdF9zZXJ2aWNlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIGluaXRpYWxpemF0aW9uIGVycm9yIHBhdGhzIG9mIHRoZSBhdGgxMWsgYW5kIGF0aDEyayBkcml2ZXJzLiBUaGVzZSBwYXRocyBjYW4gYmUgcmVhY2hlZCBkdXJpbmcgZGV2aWNlIHByb2JlLCB3aGljaCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IHN5emthbGxlciYjMzk7cyBQQ0kgZnV6emluZyBjb21iaW5lZCB3aXRoIGZhdWx0IGluamVjdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxMjozOTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDNlMWJhODMxYTAxOGQzOWYwMjMwZTEwZjFkNWM2OTQ3ZjgzOTJiMzZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAxNSAxMjozOTozOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuY1xuaW5kZXggNDEwYTdlZTA3NmEwMjYuLjZlM2Y4MjE2OWQyNDFiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuY1xuQEAgLTMzMjksNyAmIzQzOzMzMjksOCBAQCBpbnQgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2Uoc3RydWN0IGF0aDExa19iYXNlICphYilcbiBcdGFiLVx1MDAzZXFtaS5ldmVudF93cSA9IGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlKFwmIzM0O2F0aDExa19xbWlfZHJpdmVyX2V2ZW50XCYjMzQ7LCAwKTtcbiBcdGlmICghYWItXHUwMDNlcW1pLmV2ZW50X3dxKSB7XG4gXHRcdGF0aDExa19lcnIoYWIsIFwmIzM0O2ZhaWxlZCB0byBhbGxvY2F0ZSB3b3JrcXVldWVcXG5cJiMzNDspO1xuLVx0XHRyZXR1cm4gLUVGQVVMVDtcbiYjNDM7XHRcdHJldCA9IC1FRkFVTFQ7XG4mIzQzO1x0XHRnb3RvIGVycl9yZWxlYXNlX3FtaV9oYW5kbGU7XG4gXHR9XG4gXG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZhYi1cdTAwM2VxbWkuZXZlbnRfbGlzdCk7XG5AQCAtMzM0Miw5ICYjNDM7MzM0MywxNCBAQCBpbnQgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2Uoc3RydWN0IGF0aDExa19iYXNlICphYilcbiBcdGlmIChyZXQgXHUwMDNjIDApIHtcbiBcdFx0YXRoMTFrX3dhcm4oYWIsIFwmIzM0O2ZhaWxlZCB0byBhZGQgcW1pIGxvb2t1cDogJWRcXG5cJiMzNDssIHJldCk7XG4gXHRcdGRlc3Ryb3lfd29ya3F1ZXVlKGFiLVx1MDAzZXFtaS5ldmVudF93cSk7XG4tXHRcdHJldHVybiByZXQ7XG4mIzQzO1x0XHRnb3RvIGVycl9yZWxlYXNlX3FtaV9oYW5kbGU7XG4gXHR9XG4gXG4mIzQzO1x0cmV0dXJuIHJldDtcbiYjNDM7XG4mIzQzO2Vycl9yZWxlYXNlX3FtaV9oYW5kbGU6XG4mIzQzO1x0cW1pX2hhbmRsZV9yZWxlYXNlKFx1MDAyNmFiLVx1MDAzZXFtaS5oYW5kbGUpO1xuJiM0MztcbiBcdHJldHVybiByZXQ7XG4gfVxuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcW1pLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3FtaS5jXG5pbmRleCBmZDc2MmI1ZDdiYjU5Ny4uNjkyZjFiMmMyMDMxYjcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3FtaS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3FtaS5jXG5AQCAtNDA0MSw3ICYjNDM7NDA0MSw2IEBAIGludCBhdGgxMmtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuIFxuIFx0bWVtc2V0KFx1MDAyNmFiLVx1MDAzZXFtaS50YXJnZXQsIDAsIHNpemVvZihzdHJ1Y3QgdGFyZ2V0X2luZm8pKTtcbiBcdG1lbXNldChcdTAwMjZhYi1cdTAwM2VxbWkudGFyZ2V0X21lbSwgMCwgc2l6ZW9mKHN0cnVjdCB0YXJnZXRfbWVtX2NodW5rKSk7XG4tXHRhYi1cdTAwM2VxbWkuYWIgPSBhYjtcbiBcbiBcdGFiLVx1MDAzZXFtaS50YXJnZXRfbWVtX21vZGUgPSBhYi1cdTAwM2V0YXJnZXRfbWVtX21vZGU7XG4gXHRyZXQgPSBxbWlfaGFuZGxlX2luaXQoXHUwMDI2YWItXHUwMDNlcW1pLmhhbmRsZSwgQVRIMTJLX1FNSV9SRVNQX0xFTl9NQVgsXG5AQCAtNDA1NCw3ICYjNDM7NDA1Myw4IEBAIGludCBhdGgxMmtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuIFx0YWItXHUwMDNlcW1pLmV2ZW50X3dxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoXCYjMzQ7YXRoMTJrX3FtaV9kcml2ZXJfZXZlbnRcJiMzNDssIDApO1xuIFx0aWYgKCFhYi1cdTAwM2VxbWkuZXZlbnRfd3EpIHtcbiBcdFx0YXRoMTJrX2VycihhYiwgXCYjMzQ7ZmFpbGVkIHRvIGFsbG9jYXRlIHdvcmtxdWV1ZVxcblwmIzM0Oyk7XG4tXHRcdHJldHVybiAtRUZBVUxUO1xuJiM0MztcdFx0cmV0ID0gLUVGQVVMVDtcbiYjNDM7XHRcdGdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTtcbiBcdH1cbiBcbiBcdElOSVRfTElTVF9IRUFEKFx1MDAyNmFiLVx1MDAzZXFtaS5ldmVudF9saXN0KTtcbkBAIC00MDY3LDkgJiM0Mzs0MDY3LDE2IEBAIGludCBhdGgxMmtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuIFx0aWYgKHJldCBcdTAwM2MgMCkge1xuIFx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7ZmFpbGVkIHRvIGFkZCBxbWkgbG9va3VwXFxuXCYjMzQ7KTtcbiBcdFx0ZGVzdHJveV93b3JrcXVldWUoYWItXHUwMDNlcW1pLmV2ZW50X3dxKTtcbi1cdFx0cmV0dXJuIHJldDtcbiYjNDM7XHRcdGdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTtcbiBcdH1cbiBcbiYjNDM7XHRhYi1cdTAwM2VxbWkuYWIgPSBhYjtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIHJldDtcbiYjNDM7XG4mIzQzO2Vycl9yZWxlYXNlX3FtaV9oYW5kbGU6XG4mIzQzO1x0cW1pX2hhbmRsZV9yZWxlYXNlKFx1MDAyNmFiLVx1MDAzZXFtaS5oYW5kbGUpO1xuJiM0MztcbiBcdHJldHVybiByZXQ7XG4gfVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDEyOjM5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0FUSDExSyYjMzQ7LAogICAgJiMzNDtBVEgxMUtfUENJJiMzNDssCiAgICAmIzM0O0FUSDEySyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2F0aDExa19xbWlfaW5pdF9zZXJ2aWNlJiMzNDssCiAgICAmIzM0O2F0aDEya19xbWlfaW5pdF9zZXJ2aWNlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIGluaXRpYWxpemF0aW9uIGVycm9yIHBhdGhzIG9mIHRoZSBhdGgxMWsgYW5kIGF0aDEyayBkcml2ZXJzLiBUaGVzZSBwYXRocyBjYW4gYmUgcmVhY2hlZCBkdXJpbmcgZGV2aWNlIHByb2JlLCB3aGljaCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IHN5emthbGxlciYjMzk7cyBQQ0kgZnV6emluZyBjb21iaW5lZCB3aXRoIGZhdWx0IGluamVjdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgM2UxYmE4MzFhMDE4ZDM5ZjAyMzBlMTBmMWQ1YzY5NDdmODM5MmIzNgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVsIDE1IDEyOjM5OjM4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcW1pLmMKaW5kZXggNDEwYTdlZTA3NmEwMjYuLjZlM2Y4MjE2OWQyNDFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcW1pLmMKQEAgLTMzMjksNyAmIzQzOzMzMjksOCBAQCBpbnQgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2Uoc3RydWN0IGF0aDExa19iYXNlICphYikKIAlhYi0mZ3Q7cW1pLmV2ZW50X3dxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoJiMzNDthdGgxMWtfcW1pX2RyaXZlcl9ldmVudCYjMzQ7LCAwKTsKIAlpZiAoIWFiLSZndDtxbWkuZXZlbnRfd3EpIHsKIAkJYXRoMTFrX2VycihhYiwgJiMzNDtmYWlsZWQgdG8gYWxsb2NhdGUgd29ya3F1ZXVlXG4mIzM0Oyk7Ci0JCXJldHVybiAtRUZBVUxUOwomIzQzOwkJcmV0ID0gLUVGQVVMVDsKJiM0MzsJCWdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTsKIAl9CiAKIAlJTklUX0xJU1RfSEVBRCgmYW1wO2FiLSZndDtxbWkuZXZlbnRfbGlzdCk7CkBAIC0zMzQyLDkgJiM0MzszMzQzLDE0IEBAIGludCBhdGgxMWtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKQogCWlmIChyZXQgJmx0OyAwKSB7CiAJCWF0aDExa193YXJuKGFiLCAmIzM0O2ZhaWxlZCB0byBhZGQgcW1pIGxvb2t1cDogJWRcbiYjMzQ7LCByZXQpOwogCQlkZXN0cm95X3dvcmtxdWV1ZShhYi0mZ3Q7cW1pLmV2ZW50X3dxKTsKLQkJcmV0dXJuIHJldDsKJiM0MzsJCWdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTsKIAl9CiAKJiM0MzsJcmV0dXJuIHJldDsKJiM0MzsKJiM0MztlcnJfcmVsZWFzZV9xbWlfaGFuZGxlOgomIzQzOwlxbWlfaGFuZGxlX3JlbGVhc2UoJmFtcDthYi0mZ3Q7cW1pLmhhbmRsZSk7CiYjNDM7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9xbWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcW1pLmMKaW5kZXggZmQ3NjJiNWQ3YmI1OTcuLjY5MmYxYjJjMjAzMWI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3FtaS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcW1pLmMKQEAgLTQwNDEsNyAmIzQzOzQwNDEsNiBAQCBpbnQgYXRoMTJrX3FtaV9pbml0X3NlcnZpY2Uoc3RydWN0IGF0aDEya19iYXNlICphYikKIAogCW1lbXNldCgmYW1wO2FiLSZndDtxbWkudGFyZ2V0LCAwLCBzaXplb2Yoc3RydWN0IHRhcmdldF9pbmZvKSk7CiAJbWVtc2V0KCZhbXA7YWItJmd0O3FtaS50YXJnZXRfbWVtLCAwLCBzaXplb2Yoc3RydWN0IHRhcmdldF9tZW1fY2h1bmspKTsKLQlhYi0mZ3Q7cW1pLmFiID0gYWI7CiAKIAlhYi0mZ3Q7cW1pLnRhcmdldF9tZW1fbW9kZSA9IGFiLSZndDt0YXJnZXRfbWVtX21vZGU7CiAJcmV0ID0gcW1pX2hhbmRsZV9pbml0KCZhbXA7YWItJmd0O3FtaS5oYW5kbGUsIEFUSDEyS19RTUlfUkVTUF9MRU5fTUFYLApAQCAtNDA1NCw3ICYjNDM7NDA1Myw4IEBAIGludCBhdGgxMmtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKQogCWFiLSZndDtxbWkuZXZlbnRfd3EgPSBhbGxvY19vcmRlcmVkX3dvcmtxdWV1ZSgmIzM0O2F0aDEya19xbWlfZHJpdmVyX2V2ZW50JiMzNDssIDApOwogCWlmICghYWItJmd0O3FtaS5ldmVudF93cSkgewogCQlhdGgxMmtfZXJyKGFiLCAmIzM0O2ZhaWxlZCB0byBhbGxvY2F0ZSB3b3JrcXVldWVcbiYjMzQ7KTsKLQkJcmV0dXJuIC1FRkFVTFQ7CiYjNDM7CQlyZXQgPSAtRUZBVUxUOwomIzQzOwkJZ290byBlcnJfcmVsZWFzZV9xbWlfaGFuZGxlOwogCX0KIAogCUlOSVRfTElTVF9IRUFEKCZhbXA7YWItJmd0O3FtaS5ldmVudF9saXN0KTsKQEAgLTQwNjcsOSAmIzQzOzQwNjcsMTYgQEAgaW50IGF0aDEya19xbWlfaW5pdF9zZXJ2aWNlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpCiAJaWYgKHJldCAmbHQ7IDApIHsKIAkJYXRoMTJrX3dhcm4oYWIsICYjMzQ7ZmFpbGVkIHRvIGFkZCBxbWkgbG9va3VwXG4mIzM0Oyk7CiAJCWRlc3Ryb3lfd29ya3F1ZXVlKGFiLSZndDtxbWkuZXZlbnRfd3EpOwotCQlyZXR1cm4gcmV0OwomIzQzOwkJZ290byBlcnJfcmVsZWFzZV9xbWlfaGFuZGxlOwogCX0KIAomIzQzOwlhYi0mZ3Q7cW1pLmFiID0gYWI7CiYjNDM7CiYjNDM7CXJldHVybiByZXQ7CiYjNDM7CiYjNDM7ZXJyX3JlbGVhc2VfcW1pX2hhbmRsZToKJiM0MzsJcW1pX2hhbmRsZV9yZWxlYXNlKCZhbXA7YWItJmd0O3FtaS5oYW5kbGUpOwomIzQzOwogCXJldHVybiByZXQ7CiB9CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTI6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjcwMwoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDQxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBOZXR3b3JrIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2VgIGFuZCBgYXRoMTJrX3FtaV9pbml0X3NlcnZpY2VgIGluIGBhdGgxMWsvcW1pLmNgIGFuZCBgYXRoMTJrL3FtaS5jYCByZXNwZWN0aXZlbHkuIEl0IHNlZW1zIGxpa2UgaXQmIzM5O3MgYWRkcmVzc2luZyBhIGBxbWlfaGFuZGxlYCBsZWFrIG9uIGVycm9yIHBhdGhzOyBzcGVjaWZpY2FsbHksIGJ5IG1ha2luZyBzdXJlIGBxbWlfaGFuZGxlX3JlbGVhc2VgIGdldHMgY2FsbGVkIHdoZW4gZWl0aGVyIGBhbGxvY19vcmRlcmVkX3dvcmtxdWV1ZWAgb3IgYHFtaV9hZGRfbG9va3VwYCBmYWlscy4gQWxzbywgaW4gdGhlIGBhdGgxMmtgIHZlcnNpb24sIGEgc2ltcGxlIGxpbmUgaXMgbW92ZWQuCgpUaGUga2V5IHF1ZXN0aW9uIGlzIGFsd2F5cywgKmNhbiogdGhpcyBjb2RlIGV2ZW4gYmUgdHJpZ2dlcmVkIGluIGEgZnV6emluZyBlbnZpcm9ubWVudD8gVGhlc2UgYXJlIGRyaXZlcnMgZm9yIFF1YWxjb21tIFdpLUZpIDYvNyBoYXJkd2FyZSwgYGF0aDExa2AgYW5kIGBhdGgxMmtgLiBUeXBpY2FsbHksIHlvdSYjMzk7cmUgZGVhbGluZyB3aXRoIHBoeXNpY2FsIFBDSSBvciBBSEIgZGV2aWNlcyBoZXJlLiBSZWFsaXN0aWNhbGx5LCBhcmUgd2UgZnV6emluZyBzb21ldGhpbmcgdGhhdCYjMzk7cyBkaWZmaWN1bHQgb3IgaW1wb3NzaWJsZSB0byBlbXVsYXRlPyBNeSBndXQgc2F5cyBubywgYmVjYXVzZSB0aGVzZSB1c3VhbGx5IGFyZW4mIzM5O3QgZW11bGF0ZWQuCgpCdXQgd2FpdCwgc3l6a2FsbGVyICpkb2VzKiBmdXp6IHNvbWUgUENJIHN0dWZmLCByaWdodD8gTm90IGRpcmVjdGx5IGVtdWxhdGluZyB0aGVzZSBzcGVjaWZpYyBkcml2ZXJzLiBTbyB3aGF0JiMzOTtzIHRoZSBsaWtlbGlob29kIHRoYXQgdGhpcyBwYXJ0aWN1bGFyIGVycm9yIHBhdGggaXMgYmVpbmcgaGl0PyBMZXQmIzM5O3MgdmVyaWZ5IGJ5IGNoZWNraW5nIHN5emJvdCBjb25maWcuIENhbiBJIHNlZSB3aGV0aGVyIGBDT05GSUdfQVRIMTFLYCBvciBgQ09ORklHX0FUSDEyS2AgaXMgZW5hYmxlZCBhbnl3aGVyZT8gR2VuZXJhbGx5LCBJIHRoaW5rIHVubGVzcyB0aGVyZSYjMzk7cyBhIHNwZWNpZmljIHNldHVwIGZvciBlbXVsYXRpb24gb3IgZ2VuZXJpYyBQQ0kgZnV6emluZywgdGhpcyB3b3VsZG4mIzM5O3QgYmUgZGlyZWN0bHkgdGVzdGVkLgoKT2theSwgc28gc3l6a2FsbGVyICpkb2VzKiBoYXZlIHNvbWV0aGluZyBsaWtlIGBzeXpfcGNpX2RldmljZWAgZm9yIFBDSSBmdXp6aW5nLCBzbyBJIG5lZWQgdG8gY2hlY2sgaG93IHRoYXQgZml0cyBpbnRvIHRoZSBwaWN0dXJlLiBJcyBpdCByZWFsbHkgd29ydGggaXQgdG8gZm9jdXMgb24gZnV6emluZyB0aGlzIGluaXRpYWxpemF0aW9uIGVycm9yIHBhdGg/IFRoZSBwYXRjaCAqaXMqIGEgbWVtb3J5IGxlYWsgZml4LiBCZXR0ZXIgdG8gY2hlY2sgd2hhdCAqaXMqIGJlaW5nIGZ1enplZCBhbmQgd2hldGhlciBgYXRoMTFrYCBhbmQgYGF0aDEya2AgYXJlIHdpdGhpbiB0aGF0IHNjb3BlLiBJJiMzOTtsbCB1c2UgYGdyZXBwZXJgIHRvIHNlYXJjaCBmb3IgYW55IHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIG9yIGhpbnRzIGFib3V0IFBDSSBkcml2ZXIgdXNhZ2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTI6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEFUSDExSyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzoyOmNvbmZpZyBBVEgxMUtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7UXVhbGNvbW0gODAyLjExYXggY2hpcHNldCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjEzOmNvbmZpZyBBVEgxMUtfQUhCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMTQtXHR0cmlzdGF0ZSBcJiMzNDtBdGhlcm9zIGF0aDExayBBSEIgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzoyMDpjb25maWcgQVRIMTFLX1BDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7QXRoZXJvcyBhdGgxMWsgUENJIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MzA6Y29uZmlnIEFUSDExS19ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTMxLVx0Ym9vbCBcJiMzNDtRQ0EgYXRoMTFrIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0zNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzozODpjb25maWcgQVRIMTFLX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0zOS1cdGJvb2wgXCYjMzQ7UUNBIGF0aDExayBkZWJ1Z2ZzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NDY6Y29uZmlnIEFUSDExS19UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDctXHRib29sIFwmIzM0O2F0aDExayB0cmFjaW5nIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NTI6Y29uZmlnIEFUSDExS19TUEVDVFJBTFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTUzLVx0Ym9vbCBcJiMzNDtRQ0EgYXRoMTFrIHNwZWN0cmFsIHNjYW4gc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy02MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo2MTpjb25maWcgQVRIMTFLX0NGUlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTYyLVx0Ym9vbCBcJiMzNDthdGgxMWsgY2hhbm5lbCBmcmVxdWVuY3kgcmVzcG9uc2Ugc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDEyOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyOTkKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAyMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBWYWx1ZSBvZiBGdXp6aW5nIGEgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggYWRkcmVzc2VzIGEgbWVtb3J5IGxlYWsgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgaW5pdGlhbGl6YXRpb24gZXJyb3IgcGF0aHMgb2YgdGhlIGBhdGgxMWtgIGFuZCBgYXRoMTJrYCBkcml2ZXJzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsICYjMzQ7SXMgdGhpcyBldmVuIHdvcnRoIGZ1enppbmc/JiMzNDsgVGhlIG1vZGlmaWNhdGlvbnMgYXJlIHNvbGVseSB3aXRoaW4gdGhlIGVycm9yIGhhbmRsaW5nIHJvdXRpbmVzOiBgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2VgIGFuZCBgYXRoMTJrX3FtaV9pbml0X3NlcnZpY2VgLiBUaGVzZSBwYXJ0aWN1bGFyIGNvZGUgc2VjdGlvbnMgb25seSBraWNrIGluIHdoZW4gYGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlYCBmYWlscyBvciBgcW1pX2FkZF9sb29rdXBgIGZhaWxzIGR1cmluZyB0aGUgaW5pdGlhbCBzZXR1cC4KCk5vdywgY29uc2lkZXJpbmcgdGhpcyBpcyBhIHBoeXNpY2FsIGRldmljZSBkcml2ZXIgKGxpa2VseSBQQ0kvQUhCKSwgZnV6emluZyB0aGlzICpzcGVjaWZpYyogZXJyb3IgcGF0aCBzZWVtcyBpbmNyZWRpYmx5IHVubGlrZWx5IHRvIGJlIHByb2R1Y3RpdmUuIFdlJiMzOTtyZSB0YWxraW5nIGFib3V0IGZhaWx1cmUgY29uZGl0aW9ucyB0aGF0IHdvdWxkIGJlIHZlcnkgZGlmZmljdWx0IHRvIHJlcHJvZHVjZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IOKAkyBubyBoYXJkd2FyZSBhY2Nlc3MuIEV2ZW4gd2l0aCBQQ0kgZnV6emluZywgZm9yY2luZyBhIGBxbWlfYWRkX2xvb2t1cGAgZmFpbHVyZSBvciB3b3JrcXVldWUgYWxsb2NhdGlvbiBmYWlsdXJlIHdvdWxkIGVzc2VudGlhbGx5IGp1c3QgYmUgc3RhbmRhcmQgZmF1bHQgaW5qZWN0aW9uLCB0aGUga2luZCB0aGF0IG1pZ2h0IGJlIGhhcmQgdG8gZXhwbG9pdC4KCldhaXQgYSBzZWNvbmTigKYgc3l6a2FsbGVyIGRvZXMgZmF1bHQgaW5qZWN0aW9uLCByaWdodD8gQ291bGQgaXQgcG90ZW50aWFsbHkgcmVhY2ggYGF0aDExa19xbWlfaW5pdF9zZXJ2aWNlYD8gSSBuZWVkIHRvIGNoZWNrIHdoZXJlIGBhdGgxMWtfcW1pX2luaXRfc2VydmljZWAgaXMgYWN0dWFsbHkgYmVpbmcgY2FsbGVkIHdpdGhpbiB0aGUgZHJpdmVyIHRvIGRldGVybWluZSBpZiBmYXVsdCBpbmplY3Rpb24gY291bGQgZXZlbiB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoLiBMZXQmIzM5O3Mgc2VlLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTI6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YXRoMTFrX3FtaV9pbml0X3NlcnZpY2UmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuYz0xOTg1PXN0YXRpYyBpbnQgYXRoMTFrX2NvcmVfc29jX2NyZWF0ZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jLTE5OTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuYzoxOTk0Olx0cmV0ID0gYXRoMTFrX3FtaV9pbml0X3NlcnZpY2UoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmMtMTk5NS1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5jPTMyMDc9c3RhdGljIHZvaWQgYXRoMTFrX3FtaV9kcml2ZXJfZXZlbnRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuYy0zMzEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuYzozMzEzOmludCBhdGgxMWtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuYy0zMzE0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5oPTUyMD12b2lkIGF0aDExa19xbWlfZGVpbml0X3NlcnZpY2Uoc3RydWN0IGF0aDExa19iYXNlICphYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5oOjUyMTppbnQgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2Uoc3RydWN0IGF0aDExa19iYXNlICphYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5oLTUyMi12b2lkIGF0aDExa19xbWlfZnJlZV9yZXNvdXJjZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxMjozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1Mjk5CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogNDMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIGl0IHdlcmUgbXkgb3duOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBhdGgxMWsgRHJpdmVyIEluaXRpYWxpemF0aW9uKioKCkFscmlnaHQsIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGUgYGF0aDExa19jb3JlX3NvY19jcmVhdGVgIGZ1bmN0aW9uLCBhbmQgaXQmIzM5O3MgY2FsbGluZyBgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2VgLiBIbW0sIHRoYXQmIzM5O3MgaW50ZXJlc3RpbmcuIEkga25vdyBRTUkgaXMgUXVhbGNvbW0mIzM5O3MgSW50ZXJmYWNlLCBhbmQgbGlrZWx5IGhhbmRsZXMgdGhlIGNvbW11bmljYXRpb24gd2l0aCB0aGUgZmlybXdhcmUgb24gdGhlIFNvQy4gQnV0IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb250cm9sIGZsb3cgYmV0dGVyLiBXaGVyZSBpcyBgYXRoMTFrX2NvcmVfc29jX2NyZWF0ZWAgYWN0dWFsbHkgYmVpbmcgY2FsbGVkIGZyb20/IElzIGl0IGR1cmluZyB0aGUgZHJpdmVyJiMzOTtzIHByb2JlIHNlcXVlbmNlPyBEdXJpbmcgYSBQQ0kgaW5pdGlhbGl6YXRpb24/IE9yIHNvbWUgb3RoZXIgZW50cnkgcG9pbnQ/IEtub3dpbmcgdGhlIGNhbGxlciBpcyBjcml0aWNhbCBmb3IgdW5kZXJzdGFuZGluZyB3aGVuIHRoZSBRTUkgc2VydmljZSBnZXRzIGluaXRpYXRlZCBhbmQgaG93IGl0IHJlbGF0ZXMgdG8gb3RoZXIgaW5pdGlhbGl6YXRpb24gc3RlcHMuIEkgbmVlZCB0byB0cmFjZSBiYWNrIGZyb20gdGhhdCBmdW5jdGlvbiBjYWxsIHRvIHNlZSB0aGUgY29udGV4dCBvZiBpdHMgZXhlY3V0aW9uLiBUaGF0IHdpbGwgdGVsbCBtZSBhIGxvdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxMjozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMWtfY29yZV9zb2NfY3JlYXRlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmM9MTk3Mz1zdGF0aWMgdm9pZCBhdGgxMWtfY29yZV9zdG9wKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmMtMTk4NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jOjE5ODU6c3RhdGljIGludCBhdGgxMWtfY29yZV9zb2NfY3JlYXRlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuYy0xOTg2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuYz0yNjg2PWludCBhdGgxMWtfY29yZV9pbml0KHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmMtMjcwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jOjI3MDU6XHRyZXQgPSBhdGgxMWtfY29yZV9zb2NfY3JlYXRlKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jLTI3MDYtXHRpZiAocmV0KSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTI6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTg3MwoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBJbml0aWFsaXphdGlvbiBGbG93IG9mIHRoZSBhdGgxMWsgQ29yZSoqCgpSaWdodCwgbGV0JiMzOTtzIHNlZS4uLiBJJiMzOTttIGxvb2tpbmcgYXQgdGhlIGBhdGgxMWtfY29yZV9pbml0YCBmdW5jdGlvbi4gSXQgYXBwZWFycyB0aGF0IHRoaXMgaXMgdGhlIHByaW1hcnkgZW50cnkgcG9pbnQgZm9yIGluaXRpYWxpemluZyB0aGUgY29yZSBtb2R1bGUsIGFzIHRoZSBuYW1lIHN1Z2dlc3RzLiBBbmQgd2l0aGluIHRoYXQsIEkmIzM5O20gc2VlaW5nIGEgY2FsbCB0byBgYXRoMTFrX2NvcmVfc29jX2NyZWF0ZWAuIFNvLCBgYXRoMTFrX2NvcmVfc29jX2NyZWF0ZWAgbXVzdCBiZSBjcnVjaWFsIHRvIHNldHRpbmcgdXAgdGhlIFN5c3RlbS1vbi1hLUNoaXAgcmVsYXRlZCBjb21wb25lbnRzLiBUaGF0IG1ha2VzIHNlbnNlLCBoYW5kbGluZyB0aGUgaGFyZHdhcmUgYWJzdHJhY3Rpb24uCgpOb3csIHRoZSByZWFsIHF1ZXN0aW9uIHRoYXQgcG9wcyB1cCwgYW5kIHNvbWV0aGluZyBJJiMzOTtkIHdhbnQgdG8gdHJhY2sgZG93biBpbW1lZGlhdGVseSB3aGVuIHJldmlld2luZyB0aGlzIGlzOiB3aGVyZSAqaXMqIGBhdGgxMWtfY29yZV9pbml0YCBhY3R1YWxseSBpbnZva2VkPyBVbmRlcnN0YW5kaW5nIHRoZSBjYWxsIHN0YWNrIHRoYXQgbGVhZHMgdG8gdGhpcyBmdW5jdGlvbiBpcyBlc3NlbnRpYWwgZm9yIGNvbXByZWhlbmRpbmcgdGhlIG92ZXJhbGwgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UuIElzIGl0IGNhbGxlZCBkdXJpbmcgZHJpdmVyIHByb2JlPyBJcyBpdCBwYXJ0IG9mIHNvbWUgZWFybHkgc3lzdGVtIGJvb3Qgc2VxdWVuY2U/IEtub3dpbmcgaXRzIHBhcmVudCBmdW5jdGlvbiBjYWxscywgYW5kIHRoZSBjb250ZXh0IGluIHdoaWNoIGBhdGgxMWtfY29yZV9pbml0YCBpcyBjYWxsZWQsIHdpbGwgcGFpbnQgdGhlIGZ1bGwgcGljdHVyZSBvZiB0aGUgaW5pdGlhbGl6YXRpb24gZmxvdy4gVGhpcyBpcyB3aGVyZSBJIHdvdWxkIHN0YXJ0IG15IGRlYnVnIHRyYWNpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDEyOjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F0aDExa19jb3JlX2luaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTExMDc9c3RhdGljIGludCBhdGgxMWtfYWhiX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMTkzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxMTk0Olx0cmV0ID0gYXRoMTFrX2NvcmVfaW5pdChhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTExOTUtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmM9MjY4ND1FWFBPUlRfU1lNQk9MKGF0aDExa19jb3JlX3BtX25vdGlmaWVyX3VucmVnaXN0ZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmMtMjY4NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jOjI2ODY6aW50IGF0aDExa19jb3JlX2luaXQoc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jLTI2ODcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jLTI3MTctfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmM6MjcxODpFWFBPUlRfU1lNQk9MKGF0aDExa19jb3JlX2luaXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmMtMjcxOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuaD0xMjcwPWludCBhdGgxMWtfY29yZV9wcmVfaW5pdChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5oOjEyNzE6aW50IGF0aDExa19jb3JlX2luaXQoc3RydWN0IGF0aDExa19iYXNlICphdGgxMWspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmgtMTI3Mi12b2lkIGF0aDExa19jb3JlX2RlaW5pdChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmF0aDExayk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYz05NDU9c3RhdGljIGludCBhdGgxMWtfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMtMTEzNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmM6MTEzNjpcdHJldCA9IGF0aDExa19jb3JlX2luaXQoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYy0xMTM3LVx0aWYgKHJldCkge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxMjo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2ODY0CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMjIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgdGhlIGF0aDExayBQQ0kgUHJvYmUgRXJyb3IgUGF0aCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBmaXggaW4gYGF0aDExa19wY2lfcHJvYmVgIGFuZCBgYXRoMTFrX2FoYl9wcm9iZWAuIEl0IHNlZW1zIGxpa2Ugc3l6a2FsbGVyIGNvdWxkIHBvdGVudGlhbGx5IGhpdCB0aGlzIHZpYSBQQ0kgZnV6emluZywgc3BlY2lmaWNhbGx5IHRoZSBgc3l6X3BjaV9kZXZpY2VgIGNhbGwuIEJ1dCB0aGlzIGlzIGp1c3QgYW4gZXJyb3IgcGF0aCBmaXg7IGl0JiMzOTtzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIHByb2JlIHJvdXRpbmUsIG5vdCBzb21lIGNvcmUgZnVuY3Rpb25hbGl0eS4KClRoZSBxdWVzdGlvbiBpcywgaXMgdGhpcyBldmVuIHdvcnRoIGZ1enppbmc/IElmIHdlIGVuYWJsZSBib3RoIGBBVEgxMUtgIGFuZCBgQVRIMTJLYCwgd2UgaW5jcmVhc2UgdGhlIGNoYW5jZXMgc3l6a2FsbGVyIHdpbGwgdHJpZ2dlciBgYXRoMTFrX3BjaV9wcm9iZWAuIEl0JiMzOTtzIGEgdmVyeSBzcGVjaWZpYyBlcnJvciBzY2VuYXJpbywgYSBmYWlsdXJlLWluZHVjZWQgbGVhay4KCkZ1bmN0aW9uYWxseSwgeWVzLCBpdCBmaXhlcyBhIGxlYWssIHNvIGl0IGhhcyB2YWx1ZS4gSXQmIzM5O3MgcmVhY2hhYmxlIGJlY2F1c2Ugc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6aW5nIGNhbiwgaW4gdGhlb3J5LCBnZXQgdXMgdGhlcmUuIEJ1dCBzaG91bGQgd2Ugc3BlbmQgY3ljbGVzIG9uIGl0PyBQcm9iZSBmdW5jdGlvbiBlcnJvciBmaXhlcywgZXNwZWNpYWxseSBpbiBoYXJkd2FyZSBkcml2ZXJzLCBhcmUgdXN1YWxseSBjbGFzc2lmaWVkIGFzIGZ1bmN0aW9uYWwgYnV0IG9mdGVuIG5vdCB0aGUgbW9zdCBleGNpdGluZyB0YXJnZXRzLiBUaGF0IHNhaWQsIHN5emthbGxlciBkb2VzIGEgZ29vZCBqb2Igb2YgZmluZGluZyB0aGVzZSB0eXBlcyBvZiBtZW1vcnkgbGVha3MuIFNvIEkgc2hvdWxkIGNoZWNrIGBhdGgxMmtgIGNvbmZpZ3MgZm9yIG1vcmUgY29udGV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTI6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEFUSDEySyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzoyOmNvbmZpZyBBVEgxMktcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7UXVhbGNvbW0gV2ktRmkgNyBzdXBwb3J0IChhdGgxMmspXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE3OmNvbmZpZyBBVEgxMktfQUhCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTgtXHRib29sIFwmIzM0O1F1YWxjb21tIGF0aDEyayBBSEIgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0yNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzoyNTpjb25maWcgQVRIMTJLX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMjYtXHRib29sIFwmIzM0O2F0aDEyayBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MzU6Y29uZmlnIEFUSDEyS19ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMzYtXHRib29sIFwmIzM0O1F1YWxjb21tIGF0aDEyayBkZWJ1Z2ZzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6NDQ6Y29uZmlnIEFUSDEyS19UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDUtXHRib29sIFwmIzM0O2F0aDEyayB0cmFjaW5nIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6NTM6Y29uZmlnIEFUSDEyS19DT1JFRFVNUFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTU0LVx0Ym9vbCBcJiMzNDthdGgxMmsgY29yZWR1bXBcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTI6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzkwNgoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDQ1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3Mgc2VlLi4uIFdhaXQgYSBtaW51dGUsIEkgd2FzIHVuZGVyIHRoZSBpbXByZXNzaW9uIHRoYXQgdGhlIGBBVEgxMktgIGRyaXZlciBpbmNsdWRlZCB0aGUgYEFUSDEyS19QQ0lgIGNvbXBvbmVudC4gVGhhdCBkb2VzbiYjMzk7dCBzZWVtIHJpZ2h0LiBBbHJpZ2h0LCBsZXQmIzM5O3MganVzdCBtYWtlIHN1cmUuIEkmIzM5O2xsIG5lZWQgdG8gZ28gZGlyZWN0bHkgdG8gdGhlIHNvdXJjZSBmb3IgY29uZmlybWF0aW9uLiBJJiMzOTtsbCBvcGVuIHVwIHRoZSBgS2NvbmZpZ2AgZmlsZSBzcGVjaWZpY2FsbHkgZm9yIHRoYXQgZHJpdmVyLCBpdCBzaG91bGQgYmUgbG9jYXRlZCBhdCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnYC4gVGhhdCYjMzk7cyB3aGVyZSB0aGUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gb3B0aW9ucyBhcmUgZGVmaW5lZCwgc28gdGhhdCYjMzk7cyB3aGVyZSBJJiMzOTtsbCBmaW5kIHRoZSBhbnN3ZXIgcmVnYXJkaW5nIFBDSSBzdXBwb3J0LCBvciBsYWNrIHRoZXJlb2YuIExldCBtZSBnbyB0YWtlIGEgbG9vay4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAxMjo0MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtQQ0kmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTI9Y29uZmlnIEFUSDEyS1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtRdWFsY29tbSBXaS1GaSA3IHN1cHBvcnQgKGF0aDEyaylcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo0Olx0ZGVwZW5kcyBvbiBNQUM4MDIxMSBcdTAwMjZcdTAwMjYgSEFTX0RNQSBcdTAwMjZcdTAwMjYgUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNS1cdHNlbGVjdCBRQ09NX1FNSV9IRUxQRVJTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTgtXHRzZWxlY3QgUVJUUl9NSElcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo5Olx0c2VsZWN0IFBDSV9QV1JDVFJMX1BXUlNFUSBpZiBIQVZFX1BXUkNUUkxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xMC1cdGhlbHBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTI6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODM0OQoJCQkJCQkJb3V0cHV0OiAxMzEKCQkJCQkJCXRob3VnaHRzOiA3NDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgQVRIMTJLIERyaXZlciBQYXRjaCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGcm9tIHdoYXQgSSBzZWUsIGBBVEgxMktgIGRvZXNuJiMzOTt0IGhhdmUgaXRzIG93biBkZWRpY2F0ZWQgYEFUSDEyS19QQ0lgIGNvbmZpZ3VyYXRpb247IGl0IGRpcmVjdGx5IGRlcGVuZHMgb24gYFBDSWAuIFNvLCB0byBlbnN1cmUgdGhlIG5lY2Vzc2FyeSBtb2R1bGVzIGFyZSBidWlsdCwgSSYjMzk7bGwgbmVlZCB0byBlbmFibGUgYEFUSDExS2AsIGBBVEgxMUtfUENJYCwgYW5kIGBBVEgxMktgLgoKVGhlIGtleSBmdW5jdGlvbnMgaGVyZSBhcmUgYGF0aDExa19xbWlfaW5pdF9zZXJ2aWNlYCBhbmQgYGF0aDEya19xbWlfaW5pdF9zZXJ2aWNlYC4gTm93LCBpcyB0aGlzIGZ1enphYmxlPyBBYnNvbHV0ZWx5LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIHNwZWNpZmljYWxseSBhZGRyZXNzaW5nIGEgbWVtb3J5IGxlYWsgaW4gdGhlIGVycm9yIGhhbmRsaW5nIHdpdGhpbiB0aGUgaW5pdGlhbGl6YXRpb24gcm91dGluZXMuIFN5emthbGxlciYjMzk7cyBQQ0kgZnV6emluZywgY291cGxlZCB3aXRoIGZhdWx0IGluamVjdGlvbiwgc2hvdWxkIGJlIGFibGUgdG8gdHJpZ2dlciB0aGVzZSBlcnJvciBwYXRocyBlZmZlY3RpdmVseS4KCkxldCYjMzk7cyBxdWlja2x5IGNvbmZpcm0gdGhvc2UgZGVwZW5kZW5jaWVzLiBZZXMsIGBBVEgxMUtgIGRlcGVuZHMgb24gYE1BQzgwMjExYCwgYEhBU19ETUFgLCBhbmQgYFBDSWAgKGZvciBgQVRIMTFLX1BDSWApLCBhbmQgYEFUSDEyS2AgaGFzIHRoZSBzYW1lIGRlcGVuZGVuY2llczogYE1BQzgwMjExYCwgYEhBU19ETUFgLCBhbmQgYFBDSWAuIFNvLCB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3MgYXJlIGBBVEgxMUtgLCBgQVRIMTFLX1BDSWAsIGFuZCBgQVRIMTJLYC4gQWdhaW4sIG15IHByaW1hcnkgZm9jdXMgd2lsbCBiZSBvbiB0aGUgYGF0aDExa19xbWlfaW5pdF9zZXJ2aWNlYCBhbmQgYGF0aDEya19xbWlfaW5pdF9zZXJ2aWNlYCBzeW1ib2xzLgoKTm93LCBsZXQmIzM5O3MgdGFrZSBhbm90aGVyIGxvb2sgYXQgdGhlIHBhdGNoIGl0c2VsZi4gSXQmIzM5O3MgYSBjbGVhbiwgZGlyZWN0IGVycm9yIHBhdGggY29ycmVjdGlvbi4KCmBgYGMKQEAgLTMzMjksNyAmIzQzOzMzMjksOCBAQCBpbnQgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2Uoc3RydWN0IGF0aDExa19iYXNlICphYikKIAlhYi0mZ3Q7cW1pLmV2ZW50X3dxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoJiMzNDthdGgxMWtfcW1pX2RyaXZlcl9ldmVudCYjMzQ7LCAwKTsKIAlpZiAoIWFiLSZndDtxbWkuZXZlbnRfd3EpIHsKIAkJYXRoMTFrX2VycihhYiwgJiMzNDtmYWlsZWQgdG8gYWxsb2NhdGUgd29ya3F1ZXVlXG4mIzM0Oyk7Ci0JCXJldHVybiAtRUZBVUxUOwomIzQzOwkJcmV0ID0gLUVGQVVMVDsKJiM0MzsJCWdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTsKIAl9CiAKIAlJTklUX0xJU1RfSEVBRCgmYW1wO2FiLSZndDtxbWkuZXZlbnRfbGlzdCk7CkBAIC0zMzQyLDkgJiM0MzszMzQzLDE0IEBAIGludCBhdGgxMWtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKQogCWlmIChyZXQgJmx0OyAwKSB7CiAJCWF0aDExa193YXJuKGFiLCAmIzM0O2ZhaWxlZCB0byBhZGQgcW1pIGxvb2t1cDogJWRcbiYjMzQ7LCByZXQpOwogCQlkZXN0cm95X3dvcmtxdWV1ZShhYi0mZ3Q7cW1pLmV2ZW50X3dxKTsKLQkJcmV0dXJuIHJldDsKJiM0MzsJCWdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTsKIAl9CiAKJiM0MzsJcmV0dXJuIHJldDsKJiM0MzsKJiM0MztlcnJfcmVsZWFzZV9xbWlfaGFuZGxlOgomIzQzOwlxbWlfaGFuZGxlX3JlbGVhc2UoJmFtcDthYi0mZ3Q7cW1pLmhhbmRsZSk7CiYjNDM7CiAJcmV0dXJuIHJldDsKIH0KIGBgYAoKU2VlbXMgY2xlYXI6IFRoZSBwYXRjaCBjb3JyZWN0bHkgaGFuZGxlcyB0aGUgYHFtaWAgaGFuZGxlIHJlbGVhc2UgaW4gZXJyb3IgcGF0aHMuCgpUaGVyZWZvcmUsIEkmIzM5O2xsIHNldCBgV29ydGhGdXp6aW5nPXRydWVgLCB0aGUgYEZvY3VzU3ltYm9sc2AgdG8gYFsmIzM0O2F0aDExa19xbWlfaW5pdF9zZXJ2aWNlJiMzNDssICYjMzQ7YXRoMTJrX3FtaV9pbml0X3NlcnZpY2UmIzM0O11gLCBhbmQgYEVuYWJsZUNvbmZpZ3NgIHRvIGBbJiMzNDtBVEgxMUsmIzM0OywgJiMzNDtBVEgxMUtfUENJJiMzNDssICYjMzQ7QVRIMTJLJiMzNDtdYC4gVGhlIHJlYXNvbmluZyBpcyB0aGF0IHRoZSBwYXRjaCBtaXRpZ2F0ZXMgYSBtZW1vcnkgbGVhayB3aXRoaW4gdGhlIGluaXRpYWxpemF0aW9uIGVycm9yIHBhdGhzIGZvciB0aGUgYXRoMTFrIGFuZCBhdGgxMmsgZHJpdmVycy4gVGhlc2Ugc3BlY2lmaWMgZXJyb3IgcGF0aHdheXMgYXJlIHJlYWNoYWJsZSBkdXJpbmcgZGV2aWNlIHByb2JlLiBTeXprYWxsZXImIzM5O3MgUENJIGZ1enppbmcgaW4gY29uanVuY3Rpb24gd2l0aCBmYXVsdCBpbmplY3Rpb24gc2hvdWxkIGJlIGVmZmVjdGl2ZSBmb3IgdGVzdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMTI6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0FUSDExSyYjMzQ7LAogICAgJiMzNDtBVEgxMUtfUENJJiMzNDssCiAgICAmIzM0O0FUSDEySyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2F0aDExa19xbWlfaW5pdF9zZXJ2aWNlJiMzNDssCiAgICAmIzM0O2F0aDEya19xbWlfaW5pdF9zZXJ2aWNlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIGluaXRpYWxpemF0aW9uIGVycm9yIHBhdGhzIG9mIHRoZSBhdGgxMWsgYW5kIGF0aDEyayBkcml2ZXJzLiBUaGVzZSBwYXRocyBjYW4gYmUgcmVhY2hlZCBkdXJpbmcgZGV2aWNlIHByb2JlLCB3aGljaCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IHN5emthbGxlciYjMzk7cyBQQ0kgZnV6emluZyBjb21iaW5lZCB3aXRoIGZhdWx0IGluamVjdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QVRIMTFLJiMzNDssCiAgICAmIzM0O0FUSDExS19QQ0kmIzM0OywKICAgICYjMzQ7QVRIMTJLJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YXRoMTFrX3FtaV9pbml0X3NlcnZpY2UmIzM0OywKICAgICYjMzQ7YXRoMTJrX3FtaV9pbml0X3NlcnZpY2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgaW5pdGlhbGl6YXRpb24gZXJyb3IgcGF0aHMgb2YgdGhlIGF0aDExayBhbmQgYXRoMTJrIGRyaXZlcnMuIFRoZXNlIHBhdGhzIGNhbiBiZSByZWFjaGVkIGR1cmluZyBkZXZpY2UgcHJvYmUsIHdoaWNoIGNhbiBiZSB0cmlnZ2VyZWQgYnkgc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6aW5nIGNvbWJpbmVkIHdpdGggZmF1bHQgaW5qZWN0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTVUMTI6Mzk6MzkuOTMzMTcxMzI1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDExOTMyMTA5MTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQVRIMTFLXCIsXG4gICAgXCJBVEgxMUtfUENJXCIsXG4gICAgXCJBVEgxMktcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJhdGgxMWtfcW1pX2luaXRfc2VydmljZVwiLFxuICAgIFwiYXRoMTJrX3FtaV9pbml0X3NlcnZpY2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIHRoZSBpbml0aWFsaXphdGlvbiBlcnJvciBwYXRocyBvZiB0aGUgYXRoMTFrIGFuZCBhdGgxMmsgZHJpdmVycy4gVGhlc2UgcGF0aHMgY2FuIGJlIHJlYWNoZWQgZHVyaW5nIGRldmljZSBwcm9iZSwgd2hpY2ggY2FuIGJlIHRyaWdnZXJlZCBieSBzeXprYWxsZXIncyBQQ0kgZnV6emluZyBjb21iaW5lZCB3aXRoIGZhdWx0IGluamVjdGlvbi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTI6Mzk6MzkuOTMzMTc5NjE1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MTY5MTAzNTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAzZTFiYTgzMWEwMThkMzlmMDIzMGUxMGYxZDVjNjk0N2Y4MzkyYjM2XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVsIDE1IDEyOjM5OjM4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcW1pLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5jXFxuaW5kZXggNDEwYTdlZTA3NmEwMjYuLjZlM2Y4MjE2OWQyNDFiIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcW1pLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5jXFxuQEAgLTMzMjksNyArMzMyOSw4IEBAIGludCBhdGgxMWtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbiBcXHRhYi1cXHUwMDNlcW1pLmV2ZW50X3dxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoXFxcImF0aDExa19xbWlfZHJpdmVyX2V2ZW50XFxcIiwgMCk7XFxuIFxcdGlmICghYWItXFx1MDAzZXFtaS5ldmVudF93cSkge1xcbiBcXHRcXHRhdGgxMWtfZXJyKGFiLCBcXFwiZmFpbGVkIHRvIGFsbG9jYXRlIHdvcmtxdWV1ZVxcXFxuXFxcIik7XFxuLVxcdFxcdHJldHVybiAtRUZBVUxUO1xcbitcXHRcXHRyZXQgPSAtRUZBVUxUO1xcbitcXHRcXHRnb3RvIGVycl9yZWxlYXNlX3FtaV9oYW5kbGU7XFxuIFxcdH1cXG4gXFxuIFxcdElOSVRfTElTVF9IRUFEKFxcdTAwMjZhYi1cXHUwMDNlcW1pLmV2ZW50X2xpc3QpO1xcbkBAIC0zMzQyLDkgKzMzNDMsMTQgQEAgaW50IGF0aDExa19xbWlfaW5pdF9zZXJ2aWNlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuIFxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuIFxcdFxcdGF0aDExa193YXJuKGFiLCBcXFwiZmFpbGVkIHRvIGFkZCBxbWkgbG9va3VwOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG4gXFx0XFx0ZGVzdHJveV93b3JrcXVldWUoYWItXFx1MDAzZXFtaS5ldmVudF93cSk7XFxuLVxcdFxcdHJldHVybiByZXQ7XFxuK1xcdFxcdGdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTtcXG4gXFx0fVxcbiBcXG4rXFx0cmV0dXJuIHJldDtcXG4rXFxuK2Vycl9yZWxlYXNlX3FtaV9oYW5kbGU6XFxuK1xcdHFtaV9oYW5kbGVfcmVsZWFzZShcXHUwMDI2YWItXFx1MDAzZXFtaS5oYW5kbGUpO1xcbitcXG4gXFx0cmV0dXJuIHJldDtcXG4gfVxcbiBcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9xbWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcW1pLmNcXG5pbmRleCBmZDc2MmI1ZDdiYjU5Ny4uNjkyZjFiMmMyMDMxYjcgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9xbWkuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcW1pLmNcXG5AQCAtNDA0MSw3ICs0MDQxLDYgQEAgaW50IGF0aDEya19xbWlfaW5pdF9zZXJ2aWNlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuIFxcbiBcXHRtZW1zZXQoXFx1MDAyNmFiLVxcdTAwM2VxbWkudGFyZ2V0LCAwLCBzaXplb2Yoc3RydWN0IHRhcmdldF9pbmZvKSk7XFxuIFxcdG1lbXNldChcXHUwMDI2YWItXFx1MDAzZXFtaS50YXJnZXRfbWVtLCAwLCBzaXplb2Yoc3RydWN0IHRhcmdldF9tZW1fY2h1bmspKTtcXG4tXFx0YWItXFx1MDAzZXFtaS5hYiA9IGFiO1xcbiBcXG4gXFx0YWItXFx1MDAzZXFtaS50YXJnZXRfbWVtX21vZGUgPSBhYi1cXHUwMDNldGFyZ2V0X21lbV9tb2RlO1xcbiBcXHRyZXQgPSBxbWlfaGFuZGxlX2luaXQoXFx1MDAyNmFiLVxcdTAwM2VxbWkuaGFuZGxlLCBBVEgxMktfUU1JX1JFU1BfTEVOX01BWCxcXG5AQCAtNDA1NCw3ICs0MDUzLDggQEAgaW50IGF0aDEya19xbWlfaW5pdF9zZXJ2aWNlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuIFxcdGFiLVxcdTAwM2VxbWkuZXZlbnRfd3EgPSBhbGxvY19vcmRlcmVkX3dvcmtxdWV1ZShcXFwiYXRoMTJrX3FtaV9kcml2ZXJfZXZlbnRcXFwiLCAwKTtcXG4gXFx0aWYgKCFhYi1cXHUwMDNlcW1pLmV2ZW50X3dxKSB7XFxuIFxcdFxcdGF0aDEya19lcnIoYWIsIFxcXCJmYWlsZWQgdG8gYWxsb2NhdGUgd29ya3F1ZXVlXFxcXG5cXFwiKTtcXG4tXFx0XFx0cmV0dXJuIC1FRkFVTFQ7XFxuK1xcdFxcdHJldCA9IC1FRkFVTFQ7XFxuK1xcdFxcdGdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTtcXG4gXFx0fVxcbiBcXG4gXFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNmFiLVxcdTAwM2VxbWkuZXZlbnRfbGlzdCk7XFxuQEAgLTQwNjcsOSArNDA2NywxNiBAQCBpbnQgYXRoMTJrX3FtaV9pbml0X3NlcnZpY2Uoc3RydWN0IGF0aDEya19iYXNlICphYilcXG4gXFx0aWYgKHJldCBcXHUwMDNjIDApIHtcXG4gXFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gYWRkIHFtaSBsb29rdXBcXFxcblxcXCIpO1xcbiBcXHRcXHRkZXN0cm95X3dvcmtxdWV1ZShhYi1cXHUwMDNlcW1pLmV2ZW50X3dxKTtcXG4tXFx0XFx0cmV0dXJuIHJldDtcXG4rXFx0XFx0Z290byBlcnJfcmVsZWFzZV9xbWlfaGFuZGxlO1xcbiBcXHR9XFxuIFxcbitcXHRhYi1cXHUwMDNlcW1pLmFiID0gYWI7XFxuK1xcbitcXHRyZXR1cm4gcmV0O1xcbitcXG4rZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTpcXG4rXFx0cW1pX2hhbmRsZV9yZWxlYXNlKFxcdTAwMjZhYi1cXHUwMDNlcW1pLmhhbmRsZSk7XFxuK1xcbiBcXHRyZXR1cm4gcmV0O1xcbiB9XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxMjozOTo0MC41NTEzNDE0NTRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwNTc1MDMxODI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkFUSDExS1wiLFxuICAgIFwiQVRIMTFLX1BDSVwiLFxuICAgIFwiQVRIMTJLXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYXRoMTFrX3FtaV9pbml0X3NlcnZpY2VcIixcbiAgICBcImF0aDEya19xbWlfaW5pdF9zZXJ2aWNlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgaW5pdGlhbGl6YXRpb24gZXJyb3IgcGF0aHMgb2YgdGhlIGF0aDExayBhbmQgYXRoMTJrIGRyaXZlcnMuIFRoZXNlIHBhdGhzIGNhbiBiZSByZWFjaGVkIGR1cmluZyBkZXZpY2UgcHJvYmUsIHdoaWNoIGNhbiBiZSB0cmlnZ2VyZWQgYnkgc3l6a2FsbGVyJ3MgUENJIGZ1enppbmcgY29tYmluZWQgd2l0aCBmYXVsdCBpbmplY3Rpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgM2UxYmE4MzFhMDE4ZDM5ZjAyMzBlMTBmMWQ1YzY5NDdmODM5MmIzNlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDE1IDEyOjM5OjM4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcW1pLmNcbmluZGV4IDQxMGE3ZWUwNzZhMDI2Li42ZTNmODIxNjlkMjQxYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcW1pLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcW1pLmNcbkBAIC0zMzI5LDcgKzMzMjksOCBAQCBpbnQgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2Uoc3RydWN0IGF0aDExa19iYXNlICphYilcbiBcdGFiLVx1MDAzZXFtaS5ldmVudF93cSA9IGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlKFwiYXRoMTFrX3FtaV9kcml2ZXJfZXZlbnRcIiwgMCk7XG4gXHRpZiAoIWFiLVx1MDAzZXFtaS5ldmVudF93cSkge1xuIFx0XHRhdGgxMWtfZXJyKGFiLCBcImZhaWxlZCB0byBhbGxvY2F0ZSB3b3JrcXVldWVcXG5cIik7XG4tXHRcdHJldHVybiAtRUZBVUxUO1xuK1x0XHRyZXQgPSAtRUZBVUxUO1xuK1x0XHRnb3RvIGVycl9yZWxlYXNlX3FtaV9oYW5kbGU7XG4gXHR9XG4gXG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZhYi1cdTAwM2VxbWkuZXZlbnRfbGlzdCk7XG5AQCAtMzM0Miw5ICszMzQzLDE0IEBAIGludCBhdGgxMWtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuIFx0aWYgKHJldCBcdTAwM2MgMCkge1xuIFx0XHRhdGgxMWtfd2FybihhYiwgXCJmYWlsZWQgdG8gYWRkIHFtaSBsb29rdXA6ICVkXFxuXCIsIHJldCk7XG4gXHRcdGRlc3Ryb3lfd29ya3F1ZXVlKGFiLVx1MDAzZXFtaS5ldmVudF93cSk7XG4tXHRcdHJldHVybiByZXQ7XG4rXHRcdGdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTtcbiBcdH1cbiBcbitcdHJldHVybiByZXQ7XG4rXG4rZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTpcbitcdHFtaV9oYW5kbGVfcmVsZWFzZShcdTAwMjZhYi1cdTAwM2VxbWkuaGFuZGxlKTtcbitcbiBcdHJldHVybiByZXQ7XG4gfVxuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcW1pLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3FtaS5jXG5pbmRleCBmZDc2MmI1ZDdiYjU5Ny4uNjkyZjFiMmMyMDMxYjcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3FtaS5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3FtaS5jXG5AQCAtNDA0MSw3ICs0MDQxLDYgQEAgaW50IGF0aDEya19xbWlfaW5pdF9zZXJ2aWNlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG4gXG4gXHRtZW1zZXQoXHUwMDI2YWItXHUwMDNlcW1pLnRhcmdldCwgMCwgc2l6ZW9mKHN0cnVjdCB0YXJnZXRfaW5mbykpO1xuIFx0bWVtc2V0KFx1MDAyNmFiLVx1MDAzZXFtaS50YXJnZXRfbWVtLCAwLCBzaXplb2Yoc3RydWN0IHRhcmdldF9tZW1fY2h1bmspKTtcbi1cdGFiLVx1MDAzZXFtaS5hYiA9IGFiO1xuIFxuIFx0YWItXHUwMDNlcW1pLnRhcmdldF9tZW1fbW9kZSA9IGFiLVx1MDAzZXRhcmdldF9tZW1fbW9kZTtcbiBcdHJldCA9IHFtaV9oYW5kbGVfaW5pdChcdTAwMjZhYi1cdTAwM2VxbWkuaGFuZGxlLCBBVEgxMktfUU1JX1JFU1BfTEVOX01BWCxcbkBAIC00MDU0LDcgKzQwNTMsOCBAQCBpbnQgYXRoMTJrX3FtaV9pbml0X3NlcnZpY2Uoc3RydWN0IGF0aDEya19iYXNlICphYilcbiBcdGFiLVx1MDAzZXFtaS5ldmVudF93cSA9IGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlKFwiYXRoMTJrX3FtaV9kcml2ZXJfZXZlbnRcIiwgMCk7XG4gXHRpZiAoIWFiLVx1MDAzZXFtaS5ldmVudF93cSkge1xuIFx0XHRhdGgxMmtfZXJyKGFiLCBcImZhaWxlZCB0byBhbGxvY2F0ZSB3b3JrcXVldWVcXG5cIik7XG4tXHRcdHJldHVybiAtRUZBVUxUO1xuK1x0XHRyZXQgPSAtRUZBVUxUO1xuK1x0XHRnb3RvIGVycl9yZWxlYXNlX3FtaV9oYW5kbGU7XG4gXHR9XG4gXG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZhYi1cdTAwM2VxbWkuZXZlbnRfbGlzdCk7XG5AQCAtNDA2Nyw5ICs0MDY3LDE2IEBAIGludCBhdGgxMmtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuIFx0aWYgKHJldCBcdTAwM2MgMCkge1xuIFx0XHRhdGgxMmtfd2FybihhYiwgXCJmYWlsZWQgdG8gYWRkIHFtaSBsb29rdXBcXG5cIik7XG4gXHRcdGRlc3Ryb3lfd29ya3F1ZXVlKGFiLVx1MDAzZXFtaS5ldmVudF93cSk7XG4tXHRcdHJldHVybiByZXQ7XG4rXHRcdGdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTtcbiBcdH1cbiBcbitcdGFiLVx1MDAzZXFtaS5hYiA9IGFiO1xuK1xuK1x0cmV0dXJuIHJldDtcbitcbitlcnJfcmVsZWFzZV9xbWlfaGFuZGxlOlxuK1x0cW1pX2hhbmRsZV9yZWxlYXNlKFx1MDAyNmFiLVx1MDAzZXFtaS5oYW5kbGUpO1xuK1xuIFx0cmV0dXJuIHJldDtcbiB9XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxMjozOTo0MC41NTEzNDQ3NjRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3ODk4MDczNTc4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE5ldHdvcmsgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2VgIGFuZCBgYXRoMTJrX3FtaV9pbml0X3NlcnZpY2VgIGluIGBhdGgxMWsvcW1pLmNgIGFuZCBgYXRoMTJrL3FtaS5jYCByZXNwZWN0aXZlbHkuIEl0IHNlZW1zIGxpa2UgaXQncyBhZGRyZXNzaW5nIGEgYHFtaV9oYW5kbGVgIGxlYWsgb24gZXJyb3IgcGF0aHM7IHNwZWNpZmljYWxseSwgYnkgbWFraW5nIHN1cmUgYHFtaV9oYW5kbGVfcmVsZWFzZWAgZ2V0cyBjYWxsZWQgd2hlbiBlaXRoZXIgYGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlYCBvciBgcW1pX2FkZF9sb29rdXBgIGZhaWxzLiBBbHNvLCBpbiB0aGUgYGF0aDEya2AgdmVyc2lvbiwgYSBzaW1wbGUgbGluZSBpcyBtb3ZlZC5cblxuVGhlIGtleSBxdWVzdGlvbiBpcyBhbHdheXMsICpjYW4qIHRoaXMgY29kZSBldmVuIGJlIHRyaWdnZXJlZCBpbiBhIGZ1enppbmcgZW52aXJvbm1lbnQ/IFRoZXNlIGFyZSBkcml2ZXJzIGZvciBRdWFsY29tbSBXaS1GaSA2LzcgaGFyZHdhcmUsIGBhdGgxMWtgIGFuZCBgYXRoMTJrYC4gVHlwaWNhbGx5LCB5b3UncmUgZGVhbGluZyB3aXRoIHBoeXNpY2FsIFBDSSBvciBBSEIgZGV2aWNlcyBoZXJlLiBSZWFsaXN0aWNhbGx5LCBhcmUgd2UgZnV6emluZyBzb21ldGhpbmcgdGhhdCdzIGRpZmZpY3VsdCBvciBpbXBvc3NpYmxlIHRvIGVtdWxhdGU/IE15IGd1dCBzYXlzIG5vLCBiZWNhdXNlIHRoZXNlIHVzdWFsbHkgYXJlbid0IGVtdWxhdGVkLlxuXG5CdXQgd2FpdCwgc3l6a2FsbGVyICpkb2VzKiBmdXp6IHNvbWUgUENJIHN0dWZmLCByaWdodD8gTm90IGRpcmVjdGx5IGVtdWxhdGluZyB0aGVzZSBzcGVjaWZpYyBkcml2ZXJzLiBTbyB3aGF0J3MgdGhlIGxpa2VsaWhvb2QgdGhhdCB0aGlzIHBhcnRpY3VsYXIgZXJyb3IgcGF0aCBpcyBiZWluZyBoaXQ/IExldCdzIHZlcmlmeSBieSBjaGVja2luZyBzeXpib3QgY29uZmlnLiBDYW4gSSBzZWUgd2hldGhlciBgQ09ORklHX0FUSDExS2Agb3IgYENPTkZJR19BVEgxMktgIGlzIGVuYWJsZWQgYW55d2hlcmU/IEdlbmVyYWxseSwgSSB0aGluayB1bmxlc3MgdGhlcmUncyBhIHNwZWNpZmljIHNldHVwIGZvciBlbXVsYXRpb24gb3IgZ2VuZXJpYyBQQ0kgZnV6emluZywgdGhpcyB3b3VsZG4ndCBiZSBkaXJlY3RseSB0ZXN0ZWQuXG5cbk9rYXksIHNvIHN5emthbGxlciAqZG9lcyogaGF2ZSBzb21ldGhpbmcgbGlrZSBgc3l6X3BjaV9kZXZpY2VgIGZvciBQQ0kgZnV6emluZywgc28gSSBuZWVkIHRvIGNoZWNrIGhvdyB0aGF0IGZpdHMgaW50byB0aGUgcGljdHVyZS4gSXMgaXQgcmVhbGx5IHdvcnRoIGl0IHRvIGZvY3VzIG9uIGZ1enppbmcgdGhpcyBpbml0aWFsaXphdGlvbiBlcnJvciBwYXRoPyBUaGUgcGF0Y2ggKmlzKiBhIG1lbW9yeSBsZWFrIGZpeC4gQmV0dGVyIHRvIGNoZWNrIHdoYXQgKmlzKiBiZWluZyBmdXp6ZWQgYW5kIHdoZXRoZXIgYGF0aDExa2AgYW5kIGBhdGgxMmtgIGFyZSB3aXRoaW4gdGhhdCBzY29wZS4gSSdsbCB1c2UgYGdyZXBwZXJgIHRvIHNlYXJjaCBmb3IgYW55IHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIG9yIGhpbnRzIGFib3V0IFBDSSBkcml2ZXIgdXNhZ2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3MDMsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MTQsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxMjozOTo0OC40NDk0MjA3MDJaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ2OTk3NDg3NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQVRIMTFLXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6Mjpjb25maWcgQVRIMTFLXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlF1YWxjb21tIDgwMi4xMWF4IGNoaXBzZXQgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MTM6Y29uZmlnIEFUSDExS19BSEJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMTQtXFx0dHJpc3RhdGUgXFxcIkF0aGVyb3MgYXRoMTFrIEFIQiBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzoyMDpjb25maWcgQVRIMTFLX1BDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiQXRoZXJvcyBhdGgxMWsgUENJIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjMwOmNvbmZpZyBBVEgxMUtfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMzEtXFx0Ym9vbCBcXFwiUUNBIGF0aDExayBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjM4OmNvbmZpZyBBVEgxMUtfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0zOS1cXHRib29sIFxcXCJRQ0EgYXRoMTFrIGRlYnVnZnMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy00NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NDY6Y29uZmlnIEFUSDExS19UUkFDSU5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQ3LVxcdGJvb2wgXFxcImF0aDExayB0cmFjaW5nIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjUyOmNvbmZpZyBBVEgxMUtfU1BFQ1RSQUxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNTMtXFx0Ym9vbCBcXFwiUUNBIGF0aDExayBzcGVjdHJhbCBzY2FuIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjYxOmNvbmZpZyBBVEgxMUtfQ0ZSXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTYyLVxcdGJvb2wgXFxcImF0aDExayBjaGFubmVsIGZyZXF1ZW5jeSByZXNwb25zZSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxMjozOTo0OS45MTk0MDk2MThaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1Mzg2MzQ3Mzk0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgVmFsdWUgb2YgRnV6emluZyBhIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggYWRkcmVzc2VzIGEgbWVtb3J5IGxlYWsgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgaW5pdGlhbGl6YXRpb24gZXJyb3IgcGF0aHMgb2YgdGhlIGBhdGgxMWtgIGFuZCBgYXRoMTJrYCBkcml2ZXJzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiSXMgdGhpcyBldmVuIHdvcnRoIGZ1enppbmc/XCIgVGhlIG1vZGlmaWNhdGlvbnMgYXJlIHNvbGVseSB3aXRoaW4gdGhlIGVycm9yIGhhbmRsaW5nIHJvdXRpbmVzOiBgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2VgIGFuZCBgYXRoMTJrX3FtaV9pbml0X3NlcnZpY2VgLiBUaGVzZSBwYXJ0aWN1bGFyIGNvZGUgc2VjdGlvbnMgb25seSBraWNrIGluIHdoZW4gYGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlYCBmYWlscyBvciBgcW1pX2FkZF9sb29rdXBgIGZhaWxzIGR1cmluZyB0aGUgaW5pdGlhbCBzZXR1cC5cblxuTm93LCBjb25zaWRlcmluZyB0aGlzIGlzIGEgcGh5c2ljYWwgZGV2aWNlIGRyaXZlciAobGlrZWx5IFBDSS9BSEIpLCBmdXp6aW5nIHRoaXMgKnNwZWNpZmljKiBlcnJvciBwYXRoIHNlZW1zIGluY3JlZGlibHkgdW5saWtlbHkgdG8gYmUgcHJvZHVjdGl2ZS4gV2UncmUgdGFsa2luZyBhYm91dCBmYWlsdXJlIGNvbmRpdGlvbnMgdGhhdCB3b3VsZCBiZSB2ZXJ5IGRpZmZpY3VsdCB0byByZXByb2R1Y2UgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCDigJMgbm8gaGFyZHdhcmUgYWNjZXNzLiBFdmVuIHdpdGggUENJIGZ1enppbmcsIGZvcmNpbmcgYSBgcW1pX2FkZF9sb29rdXBgIGZhaWx1cmUgb3Igd29ya3F1ZXVlIGFsbG9jYXRpb24gZmFpbHVyZSB3b3VsZCBlc3NlbnRpYWxseSBqdXN0IGJlIHN0YW5kYXJkIGZhdWx0IGluamVjdGlvbiwgdGhlIGtpbmQgdGhhdCBtaWdodCBiZSBoYXJkIHRvIGV4cGxvaXQuXG5cbldhaXQgYSBzZWNvbmTigKYgc3l6a2FsbGVyIGRvZXMgZmF1bHQgaW5qZWN0aW9uLCByaWdodD8gQ291bGQgaXQgcG90ZW50aWFsbHkgcmVhY2ggYGF0aDExa19xbWlfaW5pdF9zZXJ2aWNlYD8gSSBuZWVkIHRvIGNoZWNrIHdoZXJlIGBhdGgxMWtfcW1pX2luaXRfc2VydmljZWAgaXMgYWN0dWFsbHkgYmVpbmcgY2FsbGVkIHdpdGhpbiB0aGUgZHJpdmVyIHRvIGRldGVybWluZSBpZiBmYXVsdCBpbmplY3Rpb24gY291bGQgZXZlbiB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoLiBMZXQncyBzZWUuLi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI5OSwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxMjozOTo1NS4zMDU3NTg4NzJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjY2MzE0MTc0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDExa19xbWlfaW5pdF9zZXJ2aWNlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jPTE5ODU9c3RhdGljIGludCBhdGgxMWtfY29yZV9zb2NfY3JlYXRlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuYy0xOTkzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jOjE5OTQ6XFx0cmV0ID0gYXRoMTFrX3FtaV9pbml0X3NlcnZpY2UoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jLTE5OTUtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuYz0zMjA3PXN0YXRpYyB2b2lkIGF0aDExa19xbWlfZHJpdmVyX2V2ZW50X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuYy0zMzEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcW1pLmM6MzMxMzppbnQgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2Uoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5jLTMzMTQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9xbWkuaD01MjA9dm9pZCBhdGgxMWtfcW1pX2RlaW5pdF9zZXJ2aWNlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcW1pLmg6NTIxOmludCBhdGgxMWtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3FtaS5oLTUyMi12b2lkIGF0aDExa19xbWlfZnJlZV9yZXNvdXJjZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTI6Mzk6NTUuNTcyMDc5MTY2WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzAyNDQ0NDgzNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBpdCB3ZXJlIG15IG93bjpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBhdGgxMWsgRHJpdmVyIEluaXRpYWxpemF0aW9uKipcblxuQWxyaWdodCwgc28gSSdtIGxvb2tpbmcgYXQgdGhlIGBhdGgxMWtfY29yZV9zb2NfY3JlYXRlYCBmdW5jdGlvbiwgYW5kIGl0J3MgY2FsbGluZyBgYXRoMTFrX3FtaV9pbml0X3NlcnZpY2VgLiBIbW0sIHRoYXQncyBpbnRlcmVzdGluZy4gSSBrbm93IFFNSSBpcyBRdWFsY29tbSdzIEludGVyZmFjZSwgYW5kIGxpa2VseSBoYW5kbGVzIHRoZSBjb21tdW5pY2F0aW9uIHdpdGggdGhlIGZpcm13YXJlIG9uIHRoZSBTb0MuIEJ1dCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29udHJvbCBmbG93IGJldHRlci4gV2hlcmUgaXMgYGF0aDExa19jb3JlX3NvY19jcmVhdGVgIGFjdHVhbGx5IGJlaW5nIGNhbGxlZCBmcm9tPyBJcyBpdCBkdXJpbmcgdGhlIGRyaXZlcidzIHByb2JlIHNlcXVlbmNlPyBEdXJpbmcgYSBQQ0kgaW5pdGlhbGl6YXRpb24/IE9yIHNvbWUgb3RoZXIgZW50cnkgcG9pbnQ/IEtub3dpbmcgdGhlIGNhbGxlciBpcyBjcml0aWNhbCBmb3IgdW5kZXJzdGFuZGluZyB3aGVuIHRoZSBRTUkgc2VydmljZSBnZXRzIGluaXRpYXRlZCBhbmQgaG93IGl0IHJlbGF0ZXMgdG8gb3RoZXIgaW5pdGlhbGl6YXRpb24gc3RlcHMuIEkgbmVlZCB0byB0cmFjZSBiYWNrIGZyb20gdGhhdCBmdW5jdGlvbiBjYWxsIHRvIHNlZSB0aGUgY29udGV4dCBvZiBpdHMgZXhlY3V0aW9uLiBUaGF0IHdpbGwgdGVsbCBtZSBhIGxvdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTI5OSwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDEyOjM5OjU4LjU5NjUyNjIxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwNjA5NTg0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDExa19jb3JlX3NvY19jcmVhdGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmM9MTk3Mz1zdGF0aWMgdm9pZCBhdGgxMWtfY29yZV9zdG9wKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuYy0xOTg0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jOjE5ODU6c3RhdGljIGludCBhdGgxMWtfY29yZV9zb2NfY3JlYXRlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmMtMTk4Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuYz0yNjg2PWludCBhdGgxMWtfY29yZV9pbml0KHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuYy0yNzA0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jOjI3MDU6XFx0cmV0ID0gYXRoMTFrX2NvcmVfc29jX2NyZWF0ZShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmMtMjcwNi1cXHRpZiAocmV0KSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDEyOjM5OjU4LjY1NzE0MTIyNFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwNTg3OTMxMDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIEluaXRpYWxpemF0aW9uIEZsb3cgb2YgdGhlIGF0aDExayBDb3JlKipcblxuUmlnaHQsIGxldCdzIHNlZS4uLiBJJ20gbG9va2luZyBhdCB0aGUgYGF0aDExa19jb3JlX2luaXRgIGZ1bmN0aW9uLiBJdCBhcHBlYXJzIHRoYXQgdGhpcyBpcyB0aGUgcHJpbWFyeSBlbnRyeSBwb2ludCBmb3IgaW5pdGlhbGl6aW5nIHRoZSBjb3JlIG1vZHVsZSwgYXMgdGhlIG5hbWUgc3VnZ2VzdHMuIEFuZCB3aXRoaW4gdGhhdCwgSSdtIHNlZWluZyBhIGNhbGwgdG8gYGF0aDExa19jb3JlX3NvY19jcmVhdGVgLiBTbywgYGF0aDExa19jb3JlX3NvY19jcmVhdGVgIG11c3QgYmUgY3J1Y2lhbCB0byBzZXR0aW5nIHVwIHRoZSBTeXN0ZW0tb24tYS1DaGlwIHJlbGF0ZWQgY29tcG9uZW50cy4gVGhhdCBtYWtlcyBzZW5zZSwgaGFuZGxpbmcgdGhlIGhhcmR3YXJlIGFic3RyYWN0aW9uLlxuXG5Ob3csIHRoZSByZWFsIHF1ZXN0aW9uIHRoYXQgcG9wcyB1cCwgYW5kIHNvbWV0aGluZyBJJ2Qgd2FudCB0byB0cmFjayBkb3duIGltbWVkaWF0ZWx5IHdoZW4gcmV2aWV3aW5nIHRoaXMgaXM6IHdoZXJlICppcyogYGF0aDExa19jb3JlX2luaXRgIGFjdHVhbGx5IGludm9rZWQ/IFVuZGVyc3RhbmRpbmcgdGhlIGNhbGwgc3RhY2sgdGhhdCBsZWFkcyB0byB0aGlzIGZ1bmN0aW9uIGlzIGVzc2VudGlhbCBmb3IgY29tcHJlaGVuZGluZyB0aGUgb3ZlcmFsbCBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZS4gSXMgaXQgY2FsbGVkIGR1cmluZyBkcml2ZXIgcHJvYmU/IElzIGl0IHBhcnQgb2Ygc29tZSBlYXJseSBzeXN0ZW0gYm9vdCBzZXF1ZW5jZT8gS25vd2luZyBpdHMgcGFyZW50IGZ1bmN0aW9uIGNhbGxzLCBhbmQgdGhlIGNvbnRleHQgaW4gd2hpY2ggYGF0aDExa19jb3JlX2luaXRgIGlzIGNhbGxlZCwgd2lsbCBwYWludCB0aGUgZnVsbCBwaWN0dXJlIG9mIHRoZSBpbml0aWFsaXphdGlvbiBmbG93LiBUaGlzIGlzIHdoZXJlIEkgd291bGQgc3RhcnQgbXkgZGVidWcgdHJhY2luZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTg3MywiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDEyOjQwOjAyLjcxNTkzNjI5N1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzkzODM5OTcyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDExa19jb3JlX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xMTA3PXN0YXRpYyBpbnQgYXRoMTFrX2FoYl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xMTkzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTE5NDpcXHRyZXQgPSBhdGgxMWtfY29yZV9pbml0KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTExOTUtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmM9MjY4ND1FWFBPUlRfU1lNQk9MKGF0aDExa19jb3JlX3BtX25vdGlmaWVyX3VucmVnaXN0ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jLTI2ODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmM6MjY4NjppbnQgYXRoMTFrX2NvcmVfaW5pdChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jLTI2ODcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmMtMjcxNy19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9jb3JlLmM6MjcxODpFWFBPUlRfU1lNQk9MKGF0aDExa19jb3JlX2luaXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvY29yZS5jLTI3MTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuaD0xMjcwPWludCBhdGgxMWtfY29yZV9wcmVfaW5pdChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuaDoxMjcxOmludCBhdGgxMWtfY29yZV9pbml0KHN0cnVjdCBhdGgxMWtfYmFzZSAqYXRoMTFrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2NvcmUuaC0xMjcyLXZvaWQgYXRoMTFrX2NvcmVfZGVpbml0KHN0cnVjdCBhdGgxMWtfYmFzZSAqYXRoMTFrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmM9OTQ1PXN0YXRpYyBpbnQgYXRoMTFrX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMtMTEzNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jOjExMzY6XFx0cmV0ID0gYXRoMTFrX2NvcmVfaW5pdChhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYy0xMTM3LVxcdGlmIChyZXQpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTI6NDA6MDMuMTA5NzgxODM5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUwMTE0MDQ4MTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyB0aGUgYXRoMTFrIFBDSSBQcm9iZSBFcnJvciBQYXRoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBmaXggaW4gYGF0aDExa19wY2lfcHJvYmVgIGFuZCBgYXRoMTFrX2FoYl9wcm9iZWAuIEl0IHNlZW1zIGxpa2Ugc3l6a2FsbGVyIGNvdWxkIHBvdGVudGlhbGx5IGhpdCB0aGlzIHZpYSBQQ0kgZnV6emluZywgc3BlY2lmaWNhbGx5IHRoZSBgc3l6X3BjaV9kZXZpY2VgIGNhbGwuIEJ1dCB0aGlzIGlzIGp1c3QgYW4gZXJyb3IgcGF0aCBmaXg7IGl0J3MgYSBtZW1vcnkgbGVhayBpbiB0aGUgcHJvYmUgcm91dGluZSwgbm90IHNvbWUgY29yZSBmdW5jdGlvbmFsaXR5LlxuXG5UaGUgcXVlc3Rpb24gaXMsIGlzIHRoaXMgZXZlbiB3b3J0aCBmdXp6aW5nPyBJZiB3ZSBlbmFibGUgYm90aCBgQVRIMTFLYCBhbmQgYEFUSDEyS2AsIHdlIGluY3JlYXNlIHRoZSBjaGFuY2VzIHN5emthbGxlciB3aWxsIHRyaWdnZXIgYGF0aDExa19wY2lfcHJvYmVgLiBJdCdzIGEgdmVyeSBzcGVjaWZpYyBlcnJvciBzY2VuYXJpbywgYSBmYWlsdXJlLWluZHVjZWQgbGVhay5cblxuRnVuY3Rpb25hbGx5LCB5ZXMsIGl0IGZpeGVzIGEgbGVhaywgc28gaXQgaGFzIHZhbHVlLiBJdCdzIHJlYWNoYWJsZSBiZWNhdXNlIHN5emthbGxlcidzIFBDSSBmdXp6aW5nIGNhbiwgaW4gdGhlb3J5LCBnZXQgdXMgdGhlcmUuIEJ1dCBzaG91bGQgd2Ugc3BlbmQgY3ljbGVzIG9uIGl0PyBQcm9iZSBmdW5jdGlvbiBlcnJvciBmaXhlcywgZXNwZWNpYWxseSBpbiBoYXJkd2FyZSBkcml2ZXJzLCBhcmUgdXN1YWxseSBjbGFzc2lmaWVkIGFzIGZ1bmN0aW9uYWwgYnV0IG9mdGVuIG5vdCB0aGUgbW9zdCBleGNpdGluZyB0YXJnZXRzLiBUaGF0IHNhaWQsIHN5emthbGxlciBkb2VzIGEgZ29vZCBqb2Igb2YgZmluZGluZyB0aGVzZSB0eXBlcyBvZiBtZW1vcnkgbGVha3MuIFNvIEkgc2hvdWxkIGNoZWNrIGBhdGgxMmtgIGNvbmZpZ3MgZm9yIG1vcmUgY29udGV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6Njg2NCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxMjo0MDowOC4xMjExODg2NzlaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY2Nzc1MTkzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBBVEgxMktcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzoyOmNvbmZpZyBBVEgxMktcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiUXVhbGNvbW0gV2ktRmkgNyBzdXBwb3J0IChhdGgxMmspXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzoxNzpjb25maWcgQVRIMTJLX0FIQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xOC1cXHRib29sIFxcXCJRdWFsY29tbSBhdGgxMmsgQUhCIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjI1OmNvbmZpZyBBVEgxMktfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMjYtXFx0Ym9vbCBcXFwiYXRoMTJrIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MzU6Y29uZmlnIEFUSDEyS19ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTM2LVxcdGJvb2wgXFxcIlF1YWxjb21tIGF0aDEyayBkZWJ1Z2ZzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjQ0OmNvbmZpZyBBVEgxMktfVFJBQ0lOR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy00NS1cXHRib29sIFxcXCJhdGgxMmsgdHJhY2luZyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTUyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo1Mzpjb25maWcgQVRIMTJLX0NPUkVEVU1QXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTU0LVxcdGJvb2wgXFxcImF0aDEyayBjb3JlZHVtcFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTI6NDA6MDguMTg3OTcwNDEyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5MDQ5MDAyNDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIHNlZS4uLiBXYWl0IGEgbWludXRlLCBJIHdhcyB1bmRlciB0aGUgaW1wcmVzc2lvbiB0aGF0IHRoZSBgQVRIMTJLYCBkcml2ZXIgaW5jbHVkZWQgdGhlIGBBVEgxMktfUENJYCBjb21wb25lbnQuIFRoYXQgZG9lc24ndCBzZWVtIHJpZ2h0LiBBbHJpZ2h0LCBsZXQncyBqdXN0IG1ha2Ugc3VyZS4gSSdsbCBuZWVkIHRvIGdvIGRpcmVjdGx5IHRvIHRoZSBzb3VyY2UgZm9yIGNvbmZpcm1hdGlvbi4gSSdsbCBvcGVuIHVwIHRoZSBgS2NvbmZpZ2AgZmlsZSBzcGVjaWZpY2FsbHkgZm9yIHRoYXQgZHJpdmVyLCBpdCBzaG91bGQgYmUgbG9jYXRlZCBhdCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnYC4gVGhhdCdzIHdoZXJlIHRoZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBvcHRpb25zIGFyZSBkZWZpbmVkLCBzbyB0aGF0J3Mgd2hlcmUgSSdsbCBmaW5kIHRoZSBhbnN3ZXIgcmVnYXJkaW5nIFBDSSBzdXBwb3J0LCBvciBsYWNrIHRoZXJlb2YuIExldCBtZSBnbyB0YWtlIGEgbG9vay4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3OTA2LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMTI6NDA6MTEuMDkyODcyNTI5WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MTAwMzM4NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJQQ0lcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZz0yPWNvbmZpZyBBVEgxMktcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiUXVhbGNvbW0gV2ktRmkgNyBzdXBwb3J0IChhdGgxMmspXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo0OlxcdGRlcGVuZHMgb24gTUFDODAyMTEgXFx1MDAyNlxcdTAwMjYgSEFTX0RNQSBcXHUwMDI2XFx1MDAyNiBQQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNS1cXHRzZWxlY3QgUUNPTV9RTUlfSEVMUEVSU1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTgtXFx0c2VsZWN0IFFSVFJfTUhJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjk6XFx0c2VsZWN0IFBDSV9QV1JDVFJMX1BXUlNFUSBpZiBIQVZFX1BXUkNUUkxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTAtXFx0aGVscFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQxMjo0MDoxMS4xNTM4ODE1MTJaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTg5NDMwMTk0MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBBVEgxMksgRHJpdmVyIFBhdGNoKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGcm9tIHdoYXQgSSBzZWUsIGBBVEgxMktgIGRvZXNuJ3QgaGF2ZSBpdHMgb3duIGRlZGljYXRlZCBgQVRIMTJLX1BDSWAgY29uZmlndXJhdGlvbjsgaXQgZGlyZWN0bHkgZGVwZW5kcyBvbiBgUENJYC4gU28sIHRvIGVuc3VyZSB0aGUgbmVjZXNzYXJ5IG1vZHVsZXMgYXJlIGJ1aWx0LCBJJ2xsIG5lZWQgdG8gZW5hYmxlIGBBVEgxMUtgLCBgQVRIMTFLX1BDSWAsIGFuZCBgQVRIMTJLYC5cblxuVGhlIGtleSBmdW5jdGlvbnMgaGVyZSBhcmUgYGF0aDExa19xbWlfaW5pdF9zZXJ2aWNlYCBhbmQgYGF0aDEya19xbWlfaW5pdF9zZXJ2aWNlYC4gTm93LCBpcyB0aGlzIGZ1enphYmxlPyBBYnNvbHV0ZWx5LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIHNwZWNpZmljYWxseSBhZGRyZXNzaW5nIGEgbWVtb3J5IGxlYWsgaW4gdGhlIGVycm9yIGhhbmRsaW5nIHdpdGhpbiB0aGUgaW5pdGlhbGl6YXRpb24gcm91dGluZXMuIFN5emthbGxlcidzIFBDSSBmdXp6aW5nLCBjb3VwbGVkIHdpdGggZmF1bHQgaW5qZWN0aW9uLCBzaG91bGQgYmUgYWJsZSB0byB0cmlnZ2VyIHRoZXNlIGVycm9yIHBhdGhzIGVmZmVjdGl2ZWx5LlxuXG5MZXQncyBxdWlja2x5IGNvbmZpcm0gdGhvc2UgZGVwZW5kZW5jaWVzLiBZZXMsIGBBVEgxMUtgIGRlcGVuZHMgb24gYE1BQzgwMjExYCwgYEhBU19ETUFgLCBhbmQgYFBDSWAgKGZvciBgQVRIMTFLX1BDSWApLCBhbmQgYEFUSDEyS2AgaGFzIHRoZSBzYW1lIGRlcGVuZGVuY2llczogYE1BQzgwMjExYCwgYEhBU19ETUFgLCBhbmQgYFBDSWAuIFNvLCB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3MgYXJlIGBBVEgxMUtgLCBgQVRIMTFLX1BDSWAsIGFuZCBgQVRIMTJLYC4gQWdhaW4sIG15IHByaW1hcnkgZm9jdXMgd2lsbCBiZSBvbiB0aGUgYGF0aDExa19xbWlfaW5pdF9zZXJ2aWNlYCBhbmQgYGF0aDEya19xbWlfaW5pdF9zZXJ2aWNlYCBzeW1ib2xzLlxuXG5Ob3csIGxldCdzIHRha2UgYW5vdGhlciBsb29rIGF0IHRoZSBwYXRjaCBpdHNlbGYuIEl0J3MgYSBjbGVhbiwgZGlyZWN0IGVycm9yIHBhdGggY29ycmVjdGlvbi5cblxuYGBgY1xuQEAgLTMzMjksNyArMzMyOSw4IEBAIGludCBhdGgxMWtfcW1pX2luaXRfc2VydmljZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuIFx0YWItXHUwMDNlcW1pLmV2ZW50X3dxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoXCJhdGgxMWtfcW1pX2RyaXZlcl9ldmVudFwiLCAwKTtcbiBcdGlmICghYWItXHUwMDNlcW1pLmV2ZW50X3dxKSB7XG4gXHRcdGF0aDExa19lcnIoYWIsIFwiZmFpbGVkIHRvIGFsbG9jYXRlIHdvcmtxdWV1ZVxcblwiKTtcbi1cdFx0cmV0dXJuIC1FRkFVTFQ7XG4rXHRcdHJldCA9IC1FRkFVTFQ7XG4rXHRcdGdvdG8gZXJyX3JlbGVhc2VfcW1pX2hhbmRsZTtcbiBcdH1cbiBcbiBcdElOSVRfTElTVF9IRUFEKFx1MDAyNmFiLVx1MDAzZXFtaS5ldmVudF9saXN0KTtcbkBAIC0zMzQyLDkgKzMzNDMsMTQgQEAgaW50IGF0aDExa19xbWlfaW5pdF9zZXJ2aWNlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG4gXHRpZiAocmV0IFx1MDAzYyAwKSB7XG4gXHRcdGF0aDExa193YXJuKGFiLCBcImZhaWxlZCB0byBhZGQgcW1pIGxvb2t1cDogJWRcXG5cIiwgcmV0KTtcbiBcdFx0ZGVzdHJveV93b3JrcXVldWUoYWItXHUwMDNlcW1pLmV2ZW50X3dxKTtcbi1cdFx0cmV0dXJuIHJldDtcbitcdFx0Z290byBlcnJfcmVsZWFzZV9xbWlfaGFuZGxlO1xuIFx0fVxuIFxuK1x0cmV0dXJuIHJldDtcbitcbitlcnJfcmVsZWFzZV9xbWlfaGFuZGxlOlxuK1x0cW1pX2hhbmRsZV9yZWxlYXNlKFx1MDAyNmFiLVx1MDAzZXFtaS5oYW5kbGUpO1xuK1xuIFx0cmV0dXJuIHJldDtcbiB9XG4gYGBgXG5cblNlZW1zIGNsZWFyOiBUaGUgcGF0Y2ggY29ycmVjdGx5IGhhbmRsZXMgdGhlIGBxbWlgIGhhbmRsZSByZWxlYXNlIGluIGVycm9yIHBhdGhzLlxuXG5UaGVyZWZvcmUsIEknbGwgc2V0IGBXb3J0aEZ1enppbmc9dHJ1ZWAsIHRoZSBgRm9jdXNTeW1ib2xzYCB0byBgW1wiYXRoMTFrX3FtaV9pbml0X3NlcnZpY2VcIiwgXCJhdGgxMmtfcW1pX2luaXRfc2VydmljZVwiXWAsIGFuZCBgRW5hYmxlQ29uZmlnc2AgdG8gYFtcIkFUSDExS1wiLCBcIkFUSDExS19QQ0lcIiwgXCJBVEgxMktcIl1gLiBUaGUgcmVhc29uaW5nIGlzIHRoYXQgdGhlIHBhdGNoIG1pdGlnYXRlcyBhIG1lbW9yeSBsZWFrIHdpdGhpbiB0aGUgaW5pdGlhbGl6YXRpb24gZXJyb3IgcGF0aHMgZm9yIHRoZSBhdGgxMWsgYW5kIGF0aDEyayBkcml2ZXJzLiBUaGVzZSBzcGVjaWZpYyBlcnJvciBwYXRod2F5cyBhcmUgcmVhY2hhYmxlIGR1cmluZyBkZXZpY2UgcHJvYmUuIFN5emthbGxlcidzIFBDSSBmdXp6aW5nIGluIGNvbmp1bmN0aW9uIHdpdGggZmF1bHQgaW5qZWN0aW9uIHNob3VsZCBiZSBlZmZlY3RpdmUgZm9yIHRlc3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjgzNDksIk91dHB1dFRva2VucyI6MTMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzQ3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDEyOjQwOjIxLjA0ODE4NTM3NVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc4MTg0NDMzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJBVEgxMUtcIixcbiAgICBcIkFUSDExS19QQ0lcIixcbiAgICBcIkFUSDEyS1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImF0aDExa19xbWlfaW5pdF9zZXJ2aWNlXCIsXG4gICAgXCJhdGgxMmtfcW1pX2luaXRfc2VydmljZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIGluaXRpYWxpemF0aW9uIGVycm9yIHBhdGhzIG9mIHRoZSBhdGgxMWsgYW5kIGF0aDEyayBkcml2ZXJzLiBUaGVzZSBwYXRocyBjYW4gYmUgcmVhY2hlZCBkdXJpbmcgZGV2aWNlIHByb2JlLCB3aGljaCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IHN5emthbGxlcidzIFBDSSBmdXp6aW5nIGNvbWJpbmVkIHdpdGggZmF1bHQgaW5qZWN0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkFUSDExS1wiLFxuICAgIFwiQVRIMTFLX1BDSVwiLFxuICAgIFwiQVRIMTJLXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYXRoMTFrX3FtaV9pbml0X3NlcnZpY2VcIixcbiAgICBcImF0aDEya19xbWlfaW5pdF9zZXJ2aWNlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgaW5pdGlhbGl6YXRpb24gZXJyb3IgcGF0aHMgb2YgdGhlIGF0aDExayBhbmQgYXRoMTJrIGRyaXZlcnMuIFRoZXNlIHBhdGhzIGNhbiBiZSByZWFjaGVkIGR1cmluZyBkZXZpY2UgcHJvYmUsIHdoaWNoIGNhbiBiZSB0cmlnZ2VyZWQgYnkgc3l6a2FsbGVyJ3MgUENJIGZ1enppbmcgY29tYmluZWQgd2l0aCBmYXVsdCBpbmplY3Rpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowcvtdl[1] Phase: Succeeded StartedAt: 2026-07-15 12:40:33 +0000 UTC FinishedAt: 2026-07-15 12:40:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-15 12:40:33 +0000 UTC FinishedAt: 2026-07-15 12:40:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[2] Phase: Succeeded StartedAt: 2026-07-15 12:40:33 +0000 UTC FinishedAt: 2026-07-15 14:43:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-15 12:40:33 +0000 UTC FinishedAt: 2026-07-15 14:43:10 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-15 12:40:33 +0000 UTC FinishedAt: 2026-07-15 12:40:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-15 12:40:33 +0000 UTC FinishedAt: 2026-07-15 12:40:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflowcvtdl/series-workflowcvtdl-convert-artifact-3165780285/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-15 12:40:43 +0000 UTC FinishedAt: 2026-07-15 13:18:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-15 12:40:43 +0000 UTC FinishedAt: 2026-07-15 13:18:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*d20f3d43-c938-4b19-8448-b2eadf29c5c5,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-workflowcvtdl/series-workflowcvtdl-convert-artifact-3165780285/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": "8bda7831-7021-484b-ace8-02b184652c9e", "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-workflowcvtdl/series-workflowcvtdl-build-action-3742048883/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-15 12:40:43 +0000 UTC FinishedAt: 2026-07-15 13:18:24 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*d20f3d43-c938-4b19-8448-b2eadf29c5c5,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-workflowcvtdl/series-workflowcvtdl-convert-artifact-3165780285/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": "8bda7831-7021-484b-ace8-02b184652c9e", "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-workflowcvtdl/series-workflowcvtdl-build-action-3742048883/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-15 13:18:34 +0000 UTC FinishedAt: 2026-07-15 13:18:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-15 13:18:34 +0000 UTC FinishedAt: 2026-07-15 13:18:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-15 13:18:34 +0000 UTC FinishedAt: 2026-07-15 13:18:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-15 13:18:34 +0000 UTC FinishedAt: 2026-07-15 13:18:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflowcvtdl/series-workflowcvtdl-convert-artifact-1787666072/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-15 13:18:44 +0000 UTC FinishedAt: 2026-07-15 13:21:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-15 13:18:44 +0000 UTC FinishedAt: 2026-07-15 13:21:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*8bda7831-7021-484b-ace8-02b184652c9e,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-workflowcvtdl/series-workflowcvtdl-build-action-3742048883/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-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-15 13:21:16 +0000 UTC FinishedAt: 2026-07-15 13:21:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-15 13:21:16 +0000 UTC FinishedAt: 2026-07-15 13:21:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-15 13:21:16 +0000 UTC FinishedAt: 2026-07-15 13:45:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-15 13:21:16 +0000 UTC FinishedAt: 2026-07-15 13:45:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*d20f3d43-c938-4b19-8448-b2eadf29c5c5,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-workflowcvtdl/series-workflowcvtdl-convert-artifact-1787666072/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": "181a388a-22c5-4a89-aeea-68ba66dfe8ca", "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-workflowcvtdl/series-workflowcvtdl-build-action-50394884/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-15 13:21:16 +0000 UTC FinishedAt: 2026-07-15 13:45:35 +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:*d20f3d43-c938-4b19-8448-b2eadf29c5c5,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-workflowcvtdl/series-workflowcvtdl-convert-artifact-1787666072/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": "181a388a-22c5-4a89-aeea-68ba66dfe8ca", "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-workflowcvtdl/series-workflowcvtdl-build-action-50394884/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-15 13:45:45 +0000 UTC FinishedAt: 2026-07-15 13:45:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-15 13:45:45 +0000 UTC FinishedAt: 2026-07-15 13:45:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-15 13:45:45 +0000 UTC FinishedAt: 2026-07-15 13:47:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-15 13:45:45 +0000 UTC FinishedAt: 2026-07-15 13:47:23 +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:*181a388a-22c5-4a89-aeea-68ba66dfe8ca,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-workflowcvtdl/series-workflowcvtdl-build-action-50394884/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-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-15 13:47:33 +0000 UTC FinishedAt: 2026-07-15 14:43:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-15 13:47:33 +0000 UTC FinishedAt: 2026-07-15 14:43:10 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"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:*8bda7831-7021-484b-ace8-02b184652c9e,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*181a388a-22c5-4a89-aeea-68ba66dfe8ca,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-workflowcvtdl/series-workflowcvtdl-build-action-3742048883/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-workflowcvtdl/series-workflowcvtdl-build-action-50394884/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-15 13:47:33 +0000 UTC FinishedAt: 2026-07-15 13:47:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-15 13:47:33 +0000 UTC FinishedAt: 2026-07-15 13:47:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"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-workflowcvtdl/series-workflowcvtdl-convert-artifact-3885892465/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-15 13:47:33 +0000 UTC FinishedAt: 2026-07-15 13:47:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-15 13:47:33 +0000 UTC FinishedAt: 2026-07-15 13:47:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-15 13:47:34 +0000 UTC FinishedAt: 2026-07-15 13:47:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-15 13:47:55 +0000 UTC FinishedAt: 2026-07-15 14:43:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcvtdl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath11k_qmi_init_service","ath12k_qmi_init_service"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"58717b2a1365d06c8c64b72aa948541b53fe31eb","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH11K","ATH11K_PCI","ATH12K"],"series_id":"0f1ece3a-092b-4150-82ca-364455c7f03e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-15 13:47:55 +0000 UTC FinishedAt: 2026-07-15 14:43:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*8bda7831-7021-484b-ace8-02b184652c9e,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*181a388a-22c5-4a89-aeea-68ba66dfe8ca,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-workflowcvtdl/series-workflowcvtdl-build-action-3742048883/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-workflowcvtdl/series-workflowcvtdl-build-action-50394884/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-workflowcvtdl/series-workflowcvtdl-convert-artifact-3885892465/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,}