Name: series-workflowdfx5h Phase: Succeeded StartedAt: 2026-07-08 16:43:19 +0000 UTC FinishedAt: 2026-07-08 18:16:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[0] Phase: Succeeded StartedAt: 2026-07-08 16:43:19 +0000 UTC FinishedAt: 2026-07-08 17:06:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[0].run-triage Phase: Succeeded StartedAt: 2026-07-08 16:43:19 +0000 UTC FinishedAt: 2026-07-08 17:06:36 +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": "0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BRCMFMAC", "BRCMFMAC_USB" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BRCMFMAC", "BRCMFMAC_USB" ], "series_id": "8b8c812d-769d-4a79-bda8-b50f008bf4a6" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "brcmf_p2p_send_action_frame", "brcmf_cfg80211_mgmt_tx" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA4IDE3OjAxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JSQ01GTUFDJiMzNDssCiAgICAmIzM0O0JSQ01GTUFDX1VTQiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSYjMzQ7LAogICAgJiMzNDticmNtZl9jZmc4MDIxMV9tZ210X3R4JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyIChicmNtZm1hYykgd2hlbiBzZW5kaW5nIFAyUCBhY3Rpb24gZnJhbWVzLiBUaGUgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24sIGFuZCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24gaXMgcmVhY2hhYmxlIHZpYSBubDgwMjExIG1hbmFnZW1lbnQgZnJhbWUgdHJhbnNtaXNzaW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE3OjAxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZTdiYjA1NDBmNGIyNzlmNzA4M2RhMWQ1YWNjMGQ2N2QwYmFjMWQ0OVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDggMTc6MDE6MzkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jXG5pbmRleCA5MmMxNmEzMTczMjg4Yi4uYmJkZWJmNGMyMDEwZTEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuY1xuQEAgLTE4MTksNiAmIzQzOzE4MTksNyBAQCBib29sIGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcbiBcdC8qIHZhbGlkYXRlIGNoYW5uZWwgYW5kIHAycCBpZXMgKi9cbiBcdGlmIChjb25maWdfYWZfcGFyYW1zLnNlYXJjaF9jaGFubmVsIFx1MDAyNlx1MDAyNlxuIFx0ICAgIElTX1AyUF9TT0NJQUxfQ0hBTk5FTChsZTMyX3RvX2NwdShhZl9wYXJhbXMtXHUwMDNlY2hhbm5lbCkpIFx1MDAyNlx1MDAyNlxuJiM0MztcdCAgICBwMnAtXHUwMDNlYnNzX2lkeFtQMlBBUElfQlNTQ0ZHX0RFVklDRV0udmlmIFx1MDAyNlx1MDAyNlxuIFx0ICAgIHAycC1cdTAwM2Vic3NfaWR4W1AyUEFQSV9CU1NDRkdfREVWSUNFXS52aWYtXHUwMDNlc2F2ZWRfaWUucHJvYmVfcmVxX2llX2xlbikge1xuIFx0XHRhZnhfaGRsID0gXHUwMDI2cDJwLVx1MDAzZWFmeF9oZGw7XG4gXHRcdGFmeF9oZGwtXHUwMDNlcGVlcl9saXN0ZW5fY2hhbiA9IGxlMzJfdG9fY3B1KGFmX3BhcmFtcy1cdTAwM2VjaGFubmVsKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxNzowMTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4zbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUkNNRk1BQyYjMzQ7LAogICAgJiMzNDtCUkNNRk1BQ19VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWUmIzM0OywKICAgICYjMzQ7YnJjbWZfY2ZnODAyMTFfbWdtdF90eCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlciAoYnJjbWZtYWMpIHdoZW4gc2VuZGluZyBQMlAgYWN0aW9uIGZyYW1lcy4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uLCBhbmQgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uIGlzIHJlYWNoYWJsZSB2aWEgbmw4MDIxMSBtYW5hZ2VtZW50IGZyYW1lIHRyYW5zbWlzc2lvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZTdiYjA1NDBmNGIyNzlmNzA4M2RhMWQ1YWNjMGQ2N2QwYmFjMWQ0OQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVsIDggMTc6MDE6MzkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMKaW5kZXggOTJjMTZhMzE3MzI4OGIuLmJiZGViZjRjMjAxMGUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jCkBAIC0xODE5LDYgJiM0MzsxODE5LDcgQEAgYm9vbCBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWUoc3RydWN0IGJyY21mX2lmICppZnAsCiAJLyogdmFsaWRhdGUgY2hhbm5lbCBhbmQgcDJwIGllcyAqLwogCWlmIChjb25maWdfYWZfcGFyYW1zLnNlYXJjaF9jaGFubmVsICZhbXA7JmFtcDsKIAkgICAgSVNfUDJQX1NPQ0lBTF9DSEFOTkVMKGxlMzJfdG9fY3B1KGFmX3BhcmFtcy0mZ3Q7Y2hhbm5lbCkpICZhbXA7JmFtcDsKJiM0MzsJICAgIHAycC0mZ3Q7YnNzX2lkeFtQMlBBUElfQlNTQ0ZHX0RFVklDRV0udmlmICZhbXA7JmFtcDsKIAkgICAgcDJwLSZndDtic3NfaWR4W1AyUEFQSV9CU1NDRkdfREVWSUNFXS52aWYtJmd0O3NhdmVkX2llLnByb2JlX3JlcV9pZV9sZW4pIHsKIAkJYWZ4X2hkbCA9ICZhbXA7cDJwLSZndDthZnhfaGRsOwogCQlhZnhfaGRsLSZndDtwZWVyX2xpc3Rlbl9jaGFuID0gbGUzMl90b19jcHUoYWZfcGFyYW1zLSZndDtjaGFubmVsKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTc6MDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk5NAoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDI2OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBXaUZpIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuY2AuIEl0JiMzOTtzIGEgc2ltcGxlIE5VTEwgY2hlY2sg4oCTIGBwMnAtJmd0O2Jzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZmAgYmVmb3JlIGRlcmVmZXJlbmNpbmcuIEFsd2F5cyBhIGdvb2QgcHJhY3RpY2UsIGJ1dCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4gVGhpcyBpcyBpbiB0aGUgYnJjbWZtYWMgZHJpdmVyLCBhbmQgbXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgYWJvdXQgZnV6emluZy4gSXMgdGhpcyBhIGNvZGUgcGF0aCB3ZSBjYW4gcmVhY2ggd2l0aCBmdXp6aW5nPwoKSSBuZWVkIHRvIGxvb2sgYXQgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAgaW4gdGhlIHNhbWUgZmlsZS4gSSBrbm93IHRoZSBicmNtZm1hYyBkcml2ZXIgZmFpcmx5IHdlbGwsIGl04oCZcyBhIEJyb2FkY29tIEZ1bGxNQUMgZHJpdmVyLiBJdCB0eXBpY2FsbHkgcmVxdWlyZXMgc3BlY2lmaWMgaGFyZHdhcmUsIFNESU8sIFVTQiBvciBQQ0llIGVtdWxhdGlvbiwgd2hpY2ggcHJlc2VudHMgYSBjaGFsbGVuZ2UgZm9yIHRyYWRpdGlvbmFsIGZ1enppbmcgbWV0aG9kcy4gSSBrbm93IHdlIGNhbiBzaW11bGF0ZSBtYWM4MDIxMSB3aXRoIGBtYWM4MDIxMV9od3NpbWAsIGJ1dCB0aGlzIGlzIGEgc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyLCBhbmQgZW11bGF0aW9uIGNhbiBiZSB0cmlja3kuCgpXYWl0LCBicmNtZm1hYyBzdXBwb3J0cyBVU0IhIFdlIGhhdmUgVVNCIGZ1enppbmcgYWxyZWFkeSwgdXNpbmcgYGR1bW15X2hjZGAuIFRoaXMgaXMgaW50ZXJlc3RpbmcuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgaWYgYnJjbWZtYWMgdXNlcyB0aGUgVVNCIGludGVyZmFjZSBhbmQgaWYgdGhpcyBgcDJwLmNgIGNvZGUgaXMgcmVhY2hhYmxlIHRocm91Z2ggYSBVU0IgcGF0aC4gVGhpcyBtaWdodCBvcGVuIHVwIGEgbmV3IGZ1enppbmcgYW5nbGUuIFRoaXMgbnVsbCBjaGVjayBjb3VsZCBiZSBhIGNyaXRpY2FsIHBvaW50LCBhbmQgcG90ZW50aWFsbHkgcmVhY2hhYmxlLiBJIG5lZWQgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSBVU0Igc2lkZSBvZiB0aGlzIGRyaXZlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxNzowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDticmNtZm1hYyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnPTE9Y29uZmlnIEJSQ01GTUFDXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctOC1cdCAgaW50ZXJmYWNlIHN1cHBvcnQuIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0JiMzOTtsbCBiZSBjYWxsZWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjk6XHQgIGJyY21mbWFjLmtvLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTAtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTc6MDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjgwNQoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipJbml0aWFsIEFzc2Vzc21lbnQ6IFVTQiBDYXBhYmlsaXRpZXMqKgoKUmlnaHQsIHNvIGJlZm9yZSBJIGRpdmUgaW4gdG9vIGRlZXAsIEkgbmVlZCB0byBpbW1lZGlhdGVseSBhc2NlcnRhaW4gdGhlIFVTQiBzaXR1YXRpb24uIEl0JiMzOTtzIGFsbW9zdCBmb3VuZGF0aW9uYWwgaW4gbXkgbGluZSBvZiB3b3JrLiBEb2VzIHRoaXMgaW1wbGVtZW50IFVTQiBmdW5jdGlvbmFsaXR5PyBJJiMzOTttIG5vdCBsb29raW5nIGZvciBhbiBleGhhdXN0aXZlIGxpc3Qgb2YgYWxsIGl0cyBwcm90b2NvbHMsIGJ1dCByYXRoZXIsIEkgbmVlZCB0byBrbm93ICppZiogaXQmIzM5O3MgdGhlcmUgYXQgYWxsLiBJdCYjMzk7cyBhIGtleSBhdHRyaWJ1dGUgZm9yIGludGVncmF0aW9uLiBLbm93aW5nIHRoaXMgd2lsbCBpbW1lZGlhdGVseSBpbmZvcm0gdGhlIHN1YnNlcXVlbnQgc3RlcHMgb2YgZXZhbHVhdGlvbi4gSXQgaW1wYWN0cyBldmVyeXRoaW5nIGZyb20gaW5pdGlhbCBkYXRhIHRyYW5zZmVyIHRvIGZpcm13YXJlIHVwZGF0ZXMsIGFuZCB0aGUgcG90ZW50aWFsIGZvciBjdXN0b20gY29uZmlndXJhdGlvbnMuIEEgbGFjayBvZiBVU0IgbWVhbnMgYSBzaWduaWZpY2FudGx5IGRpZmZlcmVudCBhcmNoaXRlY3R1cmFsIGFwcHJvYWNoIGZyb20gdGhlIG91dHNldC4gU28sIGlzIHRoZXJlIFVTQiBzdXBwb3J0IG9yIG5vdD8gVGhhdCYjMzk7cyB0aGUgZmlyc3QgcXVlc3Rpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTc6MDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7VVNCJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc9MTc9Y29uZmlnIEJSQ01GTUFDX1NESU9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0yOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjI5OmNvbmZpZyBCUkNNRk1BQ19VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjMwOlx0Ym9vbCBcJiMzNDtVU0IgYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MzE6XHRkZXBlbmRzIG9uIChVU0IgPSB5IHx8IFVTQiA9IEJSQ01GTUFDKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMzItXHRkZXBlbmRzIG9uIEJSQ01GTUFDXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMzUtXHRoZWxwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzozNjpcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgVVNCIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgQnJvYWRjb21cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTM3LVx0ICBJRUVFODAyLjExbiBlbWJlZGRlZCBGdWxsTUFDIFdMQU4gZHJpdmVyLiBTYXkgWSBpZiB5b3Ugd2FudCB0b1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6Mzg6XHQgIHVzZSB0aGUgZHJpdmVyIGZvciBhbiBVU0Igd2lyZWxlc3MgY2FyZC5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTM5LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE3OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM0NjIKCQkJCQkJCW91dHB1dDogNDkKCQkJCQkJCXRob3VnaHRzOiA2MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBVU0IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gdGhlIGluaXRpYWwgYXNzZXNzbWVudCBpcyBwb3NpdGl2ZS4gSXQgZGVmaW5pdGVseSBzdXBwb3J0cyBVU0IgKGBCUkNNRk1BQ19VU0JgKSwgd2hpY2ggaXMgYSBrZXkgcmVxdWlyZW1lbnQuIFRoaXMgb3BlbnMgdXAgdGhlIHBvc3NpYmlsaXR5IG9mIGV4cGxvaXRpbmcgdnVsbmVyYWJpbGl0aWVzIHRocm91Z2ggVVNCIGZ1enppbmcsIHdoaWNoIGlzIGEgY29tbW9uIGFuZCBvZnRlbiBlZmZlY3RpdmUgYXBwcm9hY2guIFRoZSBmdW5jdGlvbiBvZiBpbnRlcmVzdCBoZXJlIGlzIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgLiBOb3csIGxldCYjMzk7cyBsb2NhdGUgdGhlIHJlbGV2YW50IEtjb25maWcgZmlsZSBmb3IgYGJyY21mbWFjYC4gVW5kZXJzdGFuZGluZyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHdpbGwgYmUgY3J1Y2lhbCBmb3IgZGV0ZXJtaW5pbmcgdGhlIHNwZWNpZmljIGZlYXR1cmVzIGVuYWJsZWQgYW5kIHRodXMsIHRoZSBhdHRhY2sgc3VyZmFjZS4gVGhpcyB3aWxsIGludm9sdmUgcGlucG9pbnRpbmcgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIGFuZCBkZXBlbmRlbmNpZXMgd2hpY2ggd2lsbCBhbGxvdyBtZSB0byBjcmVhdGUgYW4gZWZmZWN0aXZlIGZ1enppbmcgY2FtcGFpZ24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTc6MDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEJSQ01GTUFDJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTpjb25maWcgQlJDTUZNQUNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTItXHR0cmlzdGF0ZSBcJiMzNDtCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoxMTpjb25maWcgQlJDTUZNQUNfUFJPVE9fQkNEQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTItXHRib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjE0OmNvbmZpZyBCUkNNRk1BQ19QUk9UT19NU0dCVUZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE1LVx0Ym9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoxNzpjb25maWcgQlJDTUZNQUNfU0RJT1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTgtXHRib29sIFwmIzM0O1NESU8gYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6Mjk6Y29uZmlnIEJSQ01GTUFDX1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMzAtXHRib29sIFwmIzM0O1VTQiBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzo0MDpjb25maWcgQlJDTUZNQUNfUENJRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctNDEtXHRib29sIFwmIzM0O1BDSUUgYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE3OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQzMjYKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiA2OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyB0aG91Z2ggSSYjMzk7bSB0aGlua2luZyB0aHJvdWdoIHRoaXMgcHJvY2VzczoKCioqRGl2aW5nIGludG8gdGhlIGJyY21mbWFjIFAyUCBJbXBsZW1lbnRhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIGZ1bmN0aW9uLiBUaGF0JiMzOTtzIGEgZ29vZCBzdGFydGluZyBwb2ludCBmb3IgdW5kZXJzdGFuZGluZyBob3cgUDJQIGFjdGlvbiBmcmFtZXMgYXJlIGhhbmRsZWQgaW4gdGhpcyBCcm9hZGNvbSBkcml2ZXIuIEkga25vdyBpdCYjMzk7cyBsb2NhdGVkIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jYCwgc28gSSYjMzk7bGwgbmVlZCB0byBvcGVuIHRoYXQgZmlsZS4gTm93LCBnaXZlbiBteSBleHBlcmllbmNlIHdpdGggdGhpcyB0eXBlIG9mIGRyaXZlciwgbXkgaW1tZWRpYXRlIG5leHQgc3RlcCBpcyB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byBQMlAgd2l0aGluIHRoZSBicmNtZm1hYyBmcmFtZXdvcmsgaXRzZWxmLiBJJiMzOTtsbCBuZWVkIHRvIGV4cGxvcmUgYW55IGNvbmZpZ3VyYXRpb24gZmlsZXMgb3Iga2VybmVsIGJ1aWxkIG9wdGlvbnMgdG8gaWRlbnRpZnkgYW55IHJlbGV2YW50IHNldHRpbmdzLiBJIHN1c3BlY3QgdGhhdCB0aGVyZSBtaWdodCBiZSBzb21lIHRoYXQgYXJlIHJlbGV2YW50LCBnaXZlbiB0aGUgc3BlY2lhbGl6ZWQgbmF0dXJlIG9mIFAyUC4gVGltZSB0byBkaWcgaW4hCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE3OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7UDJQJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxNzowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjY3CgkJCQkJCQlvdXRwdXQ6IDU1CgkJCQkJCQl0aG91Z2h0czogNzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uCgoqKkFuYWx5emluZyB0aGUgUDJQIENvbmZpZ3VyYXRpb24gTGFuZHNjYXBlKioKCkFscmlnaHQsIHNvIHRoZXJlJiMzOTtzIG5vIGV4cGxpY2l0bHkgZGVmaW5lZCAmIzM0O1AyUCBjb25maWcmIzM0OyBJIGNhbiBpbW1lZGlhdGVseSBpZGVudGlmeS4gVGhhdCBtZWFucyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGVpdGhlciBgQlJDTUZNQUNgIG9yIGBCUkNNRk1BQ19VU0JgIOKAkyBsaWtlbHkgdGhlIGVuY29tcGFzc2luZyBjb25maWd1cmF0aW9ucyB0aGF0IGhhbmRsZSBQMlAgZnVuY3Rpb25hbGl0eSBpbXBsaWNpdGx5LiBNeSBuZXh0IHN0ZXAgaXMgdG8gcXVpY2tseSBkZXRlcm1pbmUgdGhlIHJlYWNoYWJpbGl0eSBvZiB0aGUgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAgZnVuY3Rpb24gZnJvbSB0aGUgVVNCIHNpZGUuIEdpdmVuIGl0cyBuYW1lLCB0aGF0IGZ1bmN0aW9uIGlzIGFsbW9zdCBjZXJ0YWlubHkgYSBjb3JlIHBpZWNlIG9mIHRoZSBQMlAgcHV6emxlIHdpdGhpbiB0aGUgZHJpdmVyLiBBbmQganVkZ2luZyBieSB0aGUgbmFtaW5nIGNvbnZlbnRpb24sIGl0JiMzOTtzIGEgZ2VuZXJpYyBQMlAgZnVuY3Rpb24sIHByb2JhYmx5IGludm9rZWQgdGhyb3VnaCB0aGUgYGNmZzgwMjExYCBvcGVyYXRpb25zLCBhcyB0aG9zZSBhcmUgdGhlIHN0YW5kYXJkIGVudHJ5IHBvaW50cyBmb3IgdGhpcyBraW5kIG9mIGZ1bmN0aW9uYWxpdHkgaW4gdGhlIGtlcm5lbC4gVGhpcyBjb25maXJtcyBteSBpbml0aWFsIGh5cG90aGVzaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE3OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9NTUzMz1icmNtZl9jZmc4MDIxMV9tZ210X3R4KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtNTYzMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jOjU2MzI6XHRcdGFjayA9IGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSh2aWYtXHUwMDNlaWZwLCBhZl9wYXJhbXMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtNTYzMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM9MTY5NT1zdGF0aWMgYm9vbCBicmNtZl9wMnBfY2hlY2tfZHdlbGxfb3ZlcmZsb3codTMyIHJlcXVlc3RlZF9kd2VsbCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTcwNi0vKipcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYzoxNzA3OiAqIGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSgpIC0gc2VuZCBhY3Rpb24gZnJhbWUgLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE3MDgtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTcxMS0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYzoxNzEyOmJvb2wgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9pZiAqaWZwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE3MTMtXHRcdFx0XHQgc3RydWN0IGJyY21mX2ZpbF9hZl9wYXJhbXNfbGUgKmFmX3BhcmFtcylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmg9MTY5PWludCBicmNtZl9wMnBfbm90aWZ5X2FjdGlvbl90eF9jb21wbGV0ZShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmgtMTcxLVx0XHRcdFx0XHR2b2lkICpkYXRhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuaDoxNzI6Ym9vbCBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWUoc3RydWN0IGJyY21mX2lmICppZnAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmgtMTczLVx0XHRcdFx0IHN0cnVjdCBicmNtZl9maWxfYWZfcGFyYW1zX2xlICphZl9wYXJhbXMpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxNzowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NzQ5CgkJCQkJCQlvdXRwdXQ6IDU2CgkJCQkJCQl0aG91Z2h0czogMTgxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIE5ldHdvcmsgRHJpdmVyIENyYXNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNyYXNoIG9yaWdpbmF0aW5nIGZyb20gYGJyY21mX2NmZzgwMjExX21nbXRfdHhgLCB3aGljaCwgYXMgYSBjZmc4MDIxMSBjYWxsYmFjaywgbWVhbnMgaXQmIzM5O3MgdHJpZ2dlcmVkIGZyb20gdXNlcnNwYWNlIHRocm91Z2ggbmV0bGluayAoc3BlY2lmaWNhbGx5IG5sODAyMTEpLiBUaGUgcm9vdCBjYXVzZSBzZWVtcyB0byBiZSBhIGNsYXNzaWMgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlLCBzcGVjaWZpY2FsbHkgd2hlbiBhY2Nlc3NpbmcgYHAycC0mZ3Q7YnNzX2lkeFtQMlBBUElfQlNTQ0ZHX0RFVklDRV0udmlmYC4gVGhlIHByb3ZpZGVkIHBhdGNoIGFkZHJlc3NlcyB0aGlzIHdpdGggYSBzaW1wbGUgTlVMTCBjaGVjay4gVGhpcyBpcyBhIHNvbGlkLCBmdW5jdGlvbmFsIGZpeCBmb3IgYSBjcmFzaCwgYW5kIGdpdmVuIGl0cyBlbnRyeSBwb2ludCB0aHJvdWdoIG5sODAyMTEsIGl0JiMzOTtzIGRlZmluaXRlbHkgYSBwb2ludCBvZiBpbnRlcmVzdCBmb3IgZnV0dXJlIHNlY3VyaXR5IGFzc2Vzc21lbnRzLgoKTXkgaW1tZWRpYXRlIHRob3VnaHRzIGFyZSB0byBmb2N1cyBmdXp6aW5nIGVmZm9ydHMgb24gYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAgYW5kIHRoZSB0cmlnZ2VyaW5nIGZ1bmN0aW9uIGBicmNtZl9jZmc4MDIxMV9tZ210X3R4YC4gQnV0LCBvZiBjb3Vyc2UsIEkgbmVlZCB0byBleHBhbmQgbXkgc2NvcGUgLSBhcmUgdGhlcmUgb3RoZXIgcmVsYXRlZCBmdW5jdGlvbnMgaW4gdGhpcyBkcml2ZXIgdGhhdCBjb3VsZCBiZSBleHBvc2VkIHRvIHNpbWlsYXIgdnVsbmVyYWJpbGl0aWVzPyBMZXQmIzM5O3MgZGlnIGRlZXBlciBhbmQgc2VlIHdoYXQgb3RoZXIgYXR0YWNrIHN1cmZhY2VzIHdlIGhhdmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE3OjA1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX2NmZzgwMjExX21nbXRfdHgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jPTU1MzI9aW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzo1NTMzOmJyY21mX2NmZzgwMjExX21nbXRfdHgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTU1MzQtXHRcdCAgICAgICBzdHJ1Y3QgY2ZnODAyMTFfbWdtdF90eF9wYXJhbXMgKnBhcmFtcywgdTY0ICpjb29raWUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtNTY0NS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzo1NjQ2OkJSQ01GX0VYUE9SVF9TWU1CT0xfR1BMKGJyY21mX2NmZzgwMjExX21nbXRfdHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtNTY0Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYz01OTgyPXN0YXRpYyBzdHJ1Y3QgY2ZnODAyMTFfb3BzIGJyY21mX2NmZzgwMjExX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy02MDE1LVx0XHRicmNtZl9jZmc4MDIxMV91cGRhdGVfbWdtdF9mcmFtZV9yZWdpc3RyYXRpb25zLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM6NjAxNjpcdC5tZ210X3R4ID0gYnJjbWZfY2ZnODAyMTFfbWdtdF90eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTYwMTctXHQuc2V0X2NxbV9yc3NpX3JhbmdlX2NvbmZpZyA9IGJyY21mX2NmZzgwMjExX3NldF9jcW1fcnNzaV9yYW5nZV9jb25maWcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmg9NDk4PWludCBicmNtZl9zZXRfd3NlYyhzdHJ1Y3QgYnJjbWZfaWYgKmlmcCwgY29uc3QgdTggKmtleSwgdTE2IGtleV9sZW4sIHUxNiBmbGFncyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuaDo0OTk6aW50IGJyY21mX2NmZzgwMjExX21nbXRfdHgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5oLTUwMC1cdFx0XHQgICBzdHJ1Y3QgY2ZnODAyMTFfbWdtdF90eF9wYXJhbXMgKnBhcmFtcywgdTY0ICpjb29raWUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jPTEwMj1pbnQgYnJjbWZfY3l3X21nbXRfdHgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0xMjMtXHRpZiAoIWllZWU4MDIxMV9pc19hdXRoKG1nbXQtXHUwMDNlZnJhbWVfY29udHJvbCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzoxMjQ6XHRcdHJldHVybiBicmNtZl9jZmc4MDIxMV9tZ210X3R4KHdpcGh5LCB3ZGV2LCBwYXJhbXMsIGNvb2tpZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0xMjUtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE3OjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcyMjEKCQkJCQkJCW91dHB1dDogNDkKCQkJCQkJCXRob3VnaHRzOiAxMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWxldmFudCBDb2RlIFBhdGhzKioKCk9rYXksIHNvIEkmIzM5O20gaG9uaW5nIGluIG9uIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIGFuZCBgYnJjbWZfY2ZnODAyMTFfbWdtdF90eGAgYXMgdGhlIGtleSBmdW5jdGlvbnMgdG8gaW52ZXN0aWdhdGUgZnVydGhlciDigJMgdGhleSBsb29rIGxpa2UgdGhlIHJpZ2h0IGVudHJ5IHBvaW50cyBmb3Igd2hhdCBJJiMzOTttIHRyeWluZyB0byBhY2hpZXZlLiBOb3csIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMuLi4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmUgYEJSQ01GTUFDYCBhbmQgYEJSQ01GTUFDX1VTQmAgZW5hYmxlZC4gSG1tLCBidXQgaXMganVzdCBgQlJDTUZNQUNfVVNCYCBzdWZmaWNpZW50IGluIHRoaXMgcGFydGljdWxhciBzY2VuYXJpbz8gSXQmIzM5O3Mgd29ydGggYSBkb3VibGUtY2hlY2suIEkmIzM5O2QgYmV0dGVyIGNvbmZpcm0gYW55IG90aGVyIHBvdGVudGlhbCBkZXBlbmRlbmNpZXMgZm9yIGBCUkNNRk1BQ2AuIEkga25vdyBJIG5lZWQgYENGRzgwMjExYCwgYnV0IHRoYXQmIzM5O3MgcHJldHR5IHN0YW5kYXJkLCBzbyBJJiMzOTtsbCBnbyBiYWNrIGFuZCBjaGVjayB0aGUgYEJSQ01GTUFDYCBkZXBlbmRlbmNpZXMgc3BlY2lmaWNhbGx5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxNzowNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQlJDTUZNQUMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoxOmNvbmZpZyBCUkNNRk1BQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMi1cdHRyaXN0YXRlIFwmIzM0O0Jyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjExOmNvbmZpZyBCUkNNRk1BQ19QUk9UT19CQ0RDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMi1cdGJvb2xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTQ6Y29uZmlnIEJSQ01GTUFDX1BST1RPX01TR0JVRlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTUtXHRib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjE3OmNvbmZpZyBCUkNNRk1BQ19TRElPXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xOC1cdGJvb2wgXCYjMzQ7U0RJTyBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoyOTpjb25maWcgQlJDTUZNQUNfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zMC1cdGJvb2wgXCYjMzQ7VVNCIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgRnVsbE1BQyBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjQwOmNvbmZpZyBCUkNNRk1BQ19QQ0lFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy00MS1cdGJvb2wgXCYjMzQ7UENJRSBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE3OjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgxODkKCQkJCQkJCW91dHB1dDogNTAKCQkJCQkJCXRob3VnaHRzOiAxNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKkRlY29uc3RydWN0aW5nIGBjb25maWcgQlJDTUZNQUNgKioKCk9rYXksIHNvIEkmIzM5O3ZlIGVuY291bnRlcmVkIGBjb25maWcgQlJDTUZNQUNgLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIGRyaWxsIGRvd24gYW5kIHVuZGVyc3RhbmQgcHJlY2lzZWx5IHdoYXQmIzM5O3MgYmVoaW5kIHRoaXMgbGFiZWwuIEl0JiMzOTtzIG9idmlvdXNseSBhIGNvbmZpZ3VyYXRpb24gc2V0dGluZywgbGlrZWx5IHJlbGF0ZWQgdG8gYSBCcm9hZGNvbSBGTUFDIChwcmVzdW1hYmx5IG1lYW5pbmcgJiMzNDtGcmVxdWVuY3kgTW9kdWxhdGlvbiBBY2Nlc3MgQ29udHJvbGxlciYjMzQ7KSBkcml2ZXIgb3IgbW9kdWxlLiBUaGlzIGNvdWxkIGJlIGluIHRoZSBjb250ZXh0IG9mIGEga2VybmVsIGJ1aWxkIHN5c3RlbSAobGlrZSBgbWFrZSBtZW51Y29uZmlnYCBvciBzaW1pbGFyKSwgYSBkZXZpY2UgZHJpdmVyIGZyYW1ld29yaywgb3IgZXZlbiBzb21lIGhpZ2hlci1sZXZlbCBjb25maWd1cmF0aW9uIHV0aWxpdHkuCgpNeSBpbml0aWFsIGFwcHJvYWNoIGlzIHRvIGdvIHN0cmFpZ2h0IGZvciB0aGUganVndWxhciDigJMgdGhlICpmdWxsKiBkZWZpbml0aW9uLiBJIG5lZWQgdG8gc2VlIHRoZSBjb250ZXh0LiBXaGF0IGlzIHRoaXMgYEJSQ01GTUFDYCBsaW5rZWQgdG8/IFdoYXQgYXJlIHRoZSBkZXBlbmRlbmNpZXM/IFdoZXJlIGlzIGl0IGRlZmluZWQ/IElzIGl0IGEgYm9vbGVhbiwgYSBzdHJpbmcsIGEgbnVtZXJpYyB2YWx1ZSwgb3Igc29tZXRoaW5nIG1vcmUgY29tcGxleD8gSSB3YW50IHRvIHNlZSB0aGUgY29uZGl0aW9uYWwgbG9naWMgYXJvdW5kIGl0IOKAkyB3aGF0IG90aGVyIHNldHRpbmdzIGVuYWJsZSBvciBkaXNhYmxlIGl0PyBBcmUgdGhlcmUgYW55IGFzc29jaWF0ZWQgc3ltYm9scyBvciB2YXJpYWJsZXM/IFdoYXQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlIHdpdGhpbiB0aGlzIGNvbmZpZ3VyYXRpb24gb3B0aW9uPyBVbmRlcnN0YW5kaW5nIHRoZSBjb21wbGV0ZSBzY29wZSBvZiB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5nIGlzIHRoZSBmaXJzdCBhbmQgdml0YWwgc3RlcCB0byB1bmRlcnN0YW5kaW5nIGl0cyBmdW5jdGlvbiwgZWZmZWN0LCBhbmQgcG9zc2libGUgaW1wYWN0cyBvbiB0aGUgc3lzdGVtIEkmIzM5O20gd29ya2luZyB3aXRoLiBJIG5lZWQgdG8gc2VlIHRoZSBlbnRpcmUgcGljdHVyZSwgbm90IGp1c3QgYSBzbmlwcGV0LiBGcm9tIHRoZXJlLCBJIGNhbiBiZWdpbiB0byB1bnBhY2sgdGhlIGltcGxpY2F0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTc6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdGNvbmZpZyBCUkNNRk1BQ1xuICAgMjpcdFx0dHJpc3RhdGUgXCYjMzQ7QnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlclwmIzM0O1xuICAgMzpcdFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxuICAgNDpcdFx0c2VsZWN0IEJSQ01VVElMXG4gICA1Olx0XHRoZWxwXG4gICA2Olx0XHQgIFRoaXMgbW9kdWxlIGFkZHMgc3VwcG9ydCBmb3Igd2lyZWxlc3MgYWRhcHRlcnMgYmFzZWQgb24gQnJvYWRjb21cbiAgIDc6XHRcdCAgRnVsbE1BQyBjaGlwc2V0cy4gSXQgaGFzIHRvIHdvcmsgd2l0aCBhdCBsZWFzdCBvbmUgb2YgdGhlIGJ1c1xuICAgODpcdFx0ICBpbnRlcmZhY2Ugc3VwcG9ydC4gSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQmIzM5O2xsIGJlIGNhbGxlZFxuICAgOTpcdFx0ICBicmNtZm1hYy5rby5cbiAgMTA6XHRcbiAgMTE6XHRjb25maWcgQlJDTUZNQUNfUFJPVE9fQkNEQ1xuICAxMjpcdFx0Ym9vbFxuICAxMzpcdFxuICAxNDpcdGNvbmZpZyBCUkNNRk1BQ19QUk9UT19NU0dCVUZcbiAgMTU6XHRcdGJvb2xcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTc6MDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODczNAoJCQkJCQkJb3V0cHV0OiAxMzYKCQkJCQkJCXRob3VnaHRzOiAyNzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgYGJyY21mbWFjYCBWdWxuZXJhYmlsaXR5KioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHZ1bG5lcmFiaWxpdHkgbmFpbGVkIGRvd24uIEl0IGxvb2tzIGxpa2UgdGhlIGNvcmUgaXNzdWUgcmV2b2x2ZXMgYXJvdW5kIGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIHdpdGhpbiB0aGUgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAgZnVuY3Rpb24uIFNwZWNpZmljYWxseSwgaXQmIzM5O3MgYWNjZXNzaW5nIGBwMnAtJmd0O2Jzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZmAgd2l0aG91dCBwcm9wZXIgY2hlY2tzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIHdoaWNoIGlzIGltcG9ydGFudCB0byByZW1lbWJlci4gVGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIHNlZW0gdG8gYmUgYEJSQ01GTUFDYCBhbmQgYEJSQ01GTUFDX1VTQmAuCgpUaGUgZXhjaXRpbmcgcGFydD8gVGhpcyBpcyAqZnV6emFibGUqLiBJIHdhcyBpbml0aWFsbHkgd29uZGVyaW5nIGlmIGBkdW1teV9oY2RgIGFjdHVhbGx5IGxvYWRlZCBgYnJjbWZtYWNgLCBidXQgdGhlbiBJIHJlbWVtYmVyZWQgdGhhdCBzeXprYWxsZXImIzM5O3MgVVNCIGZ1enplciBjYW4gZW11bGF0ZSBhbnkgVVNCIGRldmljZSwgaW5jbHVkaW5nIHRoaXMgZHJpdmVyLiBUaGlzIG1lYW5zIHdlIGhhdmUgYSB2aWFibGUgZnV6emluZyB0YXJnZXQuCgpMZXQmIzM5O3MgcHVsbCBhbGwgdGhpcyB0b2dldGhlciBzdWNjaW5jdGx5IGZvciBteSBhbmFseXNpczoKCiogICAqKldvcnRoRnV6emluZyoqOiBBYnNvbHV0ZWx5LCB5ZXMuCiogICAqKkZvY3VzIFN5bWJvbHMqKjogSSYjMzk7bSBnb2luZyB0byBrZWVwIGEgY2xvc2UgZXllIG9uIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIGFuZCBhbHNvIGBicmNtZl9jZmc4MDIxMV9tZ210X3R4YCBhcyBpdCYjMzk7cyBsaWtlbHkgYSBjYWxsIGNoYWluIGZvciB0aGlzIHZ1bG5lcmFiaWxpdHkuCiogICAqKkVuYWJsZUNvbmZpZ3MqKjogV2UmIzM5O2xsIG5lZWQgYEJSQ01GTUFDYCBhbmQgYEJSQ01GTUFDX1VTQmAgZW5hYmxlZC4KKiAgICoqUmVhc29uaW5nKio6IFRoZSBjcnV4IG9mIHRoZSBpc3N1ZSBpcyBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlciwgc3BlY2lmaWNhbGx5IHdoZW4gdGhlIGRyaXZlciBpcyBzZW5kaW5nIFAyUCBhY3Rpb24gZnJhbWVzLiBDcnVjaWFsbHksIHRoZSBkcml2ZXIgaXMgZnV6emFibGUgdmlhIFVTQiBlbXVsYXRpb24gKHRoYW5rcyB0byBzeXprYWxsZXImIzM5O3MgY2FwYWJpbGl0aWVzKSwgYW5kIHRoZSB2dWxuZXJhYmxlIGZ1bmN0aW9uIGlzIHJlYWNoYWJsZSB0aHJvdWdoIG5sODAyMTEgbWFuYWdlbWVudCBmcmFtZSB0cmFuc21pc3Npb24uIFRoaXMgc2VlbXMgbGlrZSBhIGdyZWF0IGNhbmRpZGF0ZSBmb3IgZnVydGhlciBpbnZlc3RpZ2F0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxNzowNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlJDTUZNQUMmIzM0OywKICAgICYjMzQ7QlJDTUZNQUNfVVNCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lJiMzNDssCiAgICAmIzM0O2JyY21mX2NmZzgwMjExX21nbXRfdHgmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdGhlIEJyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXIgKGJyY21mbWFjKSB3aGVuIHNlbmRpbmcgUDJQIGFjdGlvbiBmcmFtZXMuIFRoZSBkcml2ZXIgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbiwgYW5kIHRoZSBtb2RpZmllZCBmdW5jdGlvbiBpcyByZWFjaGFibGUgdmlhIG5sODAyMTEgbWFuYWdlbWVudCBmcmFtZSB0cmFuc21pc3Npb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JSQ01GTUFDJiMzNDssCiAgICAmIzM0O0JSQ01GTUFDX1VTQiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSYjMzQ7LAogICAgJiMzNDticmNtZl9jZmc4MDIxMV9tZ210X3R4JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyIChicmNtZm1hYykgd2hlbiBzZW5kaW5nIFAyUCBhY3Rpb24gZnJhbWVzLiBUaGUgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24sIGFuZCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24gaXMgcmVhY2hhYmxlIHZpYSBubDgwMjExIG1hbmFnZW1lbnQgZnJhbWUgdHJhbnNtaXNzaW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMDhUMTc6MDE6NDEuMjY4NDYyNzk1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjE2OTIwMzQ1MzY4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJSQ01GTUFDXCIsXG4gICAgXCJCUkNNRk1BQ19VU0JcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVcIixcbiAgICBcImJyY21mX2NmZzgwMjExX21nbXRfdHhcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlciAoYnJjbWZtYWMpIHdoZW4gc2VuZGluZyBQMlAgYWN0aW9uIGZyYW1lcy4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uLCBhbmQgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uIGlzIHJlYWNoYWJsZSB2aWEgbmw4MDIxMSBtYW5hZ2VtZW50IGZyYW1lIHRyYW5zbWlzc2lvbi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTc6MDE6NDEuMjY4NDcxNTk1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MzcyNzg1MTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBlN2JiMDU0MGY0YjI3OWY3MDgzZGExZDVhY2MwZDY3ZDBiYWMxZDQ5XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVsIDggMTc6MDE6MzkgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jXFxuaW5kZXggOTJjMTZhMzE3MzI4OGIuLmJiZGViZjRjMjAxMGUxIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuY1xcbkBAIC0xODE5LDYgKzE4MTksNyBAQCBib29sIGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcXG4gXFx0LyogdmFsaWRhdGUgY2hhbm5lbCBhbmQgcDJwIGllcyAqL1xcbiBcXHRpZiAoY29uZmlnX2FmX3BhcmFtcy5zZWFyY2hfY2hhbm5lbCBcXHUwMDI2XFx1MDAyNlxcbiBcXHQgICAgSVNfUDJQX1NPQ0lBTF9DSEFOTkVMKGxlMzJfdG9fY3B1KGFmX3BhcmFtcy1cXHUwMDNlY2hhbm5lbCkpIFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICBwMnAtXFx1MDAzZWJzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZiBcXHUwMDI2XFx1MDAyNlxcbiBcXHQgICAgcDJwLVxcdTAwM2Vic3NfaWR4W1AyUEFQSV9CU1NDRkdfREVWSUNFXS52aWYtXFx1MDAzZXNhdmVkX2llLnByb2JlX3JlcV9pZV9sZW4pIHtcXG4gXFx0XFx0YWZ4X2hkbCA9IFxcdTAwMjZwMnAtXFx1MDAzZWFmeF9oZGw7XFxuIFxcdFxcdGFmeF9oZGwtXFx1MDAzZXBlZXJfbGlzdGVuX2NoYW4gPSBsZTMyX3RvX2NwdShhZl9wYXJhbXMtXFx1MDAzZWNoYW5uZWwpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNzowMTo0MS45MDYzNjQ0MTJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIxNjI4MjQyNjk0MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUkNNRk1BQ1wiLFxuICAgIFwiQlJDTUZNQUNfVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lXCIsXG4gICAgXCJicmNtZl9jZmc4MDIxMV9tZ210X3R4XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdGhlIEJyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXIgKGJyY21mbWFjKSB3aGVuIHNlbmRpbmcgUDJQIGFjdGlvbiBmcmFtZXMuIFRoZSBkcml2ZXIgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbiwgYW5kIHRoZSBtb2RpZmllZCBmdW5jdGlvbiBpcyByZWFjaGFibGUgdmlhIG5sODAyMTEgbWFuYWdlbWVudCBmcmFtZSB0cmFuc21pc3Npb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZTdiYjA1NDBmNGIyNzlmNzA4M2RhMWQ1YWNjMGQ2N2QwYmFjMWQ0OVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDggMTc6MDE6MzkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmNcbmluZGV4IDkyYzE2YTMxNzMyODhiLi5iYmRlYmY0YzIwMTBlMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jXG5AQCAtMTgxOSw2ICsxODE5LDcgQEAgYm9vbCBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWUoc3RydWN0IGJyY21mX2lmICppZnAsXG4gXHQvKiB2YWxpZGF0ZSBjaGFubmVsIGFuZCBwMnAgaWVzICovXG4gXHRpZiAoY29uZmlnX2FmX3BhcmFtcy5zZWFyY2hfY2hhbm5lbCBcdTAwMjZcdTAwMjZcbiBcdCAgICBJU19QMlBfU09DSUFMX0NIQU5ORUwobGUzMl90b19jcHUoYWZfcGFyYW1zLVx1MDAzZWNoYW5uZWwpKSBcdTAwMjZcdTAwMjZcbitcdCAgICBwMnAtXHUwMDNlYnNzX2lkeFtQMlBBUElfQlNTQ0ZHX0RFVklDRV0udmlmIFx1MDAyNlx1MDAyNlxuIFx0ICAgIHAycC1cdTAwM2Vic3NfaWR4W1AyUEFQSV9CU1NDRkdfREVWSUNFXS52aWYtXHUwMDNlc2F2ZWRfaWUucHJvYmVfcmVxX2llX2xlbikge1xuIFx0XHRhZnhfaGRsID0gXHUwMDI2cDJwLVx1MDAzZWFmeF9oZGw7XG4gXHRcdGFmeF9oZGwtXHUwMDNlcGVlcl9saXN0ZW5fY2hhbiA9IGxlMzJfdG9fY3B1KGFmX3BhcmFtcy1cdTAwM2VjaGFubmVsKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDE3OjAxOjQxLjkwNjM2NjEzMloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2ODg0MTQyMTQxNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBXaUZpIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmNgLiBJdCdzIGEgc2ltcGxlIE5VTEwgY2hlY2sg4oCTIGBwMnAtXHUwMDNlYnNzX2lkeFtQMlBBUElfQlNTQ0ZHX0RFVklDRV0udmlmYCBiZWZvcmUgZGVyZWZlcmVuY2luZy4gQWx3YXlzIGEgZ29vZCBwcmFjdGljZSwgYnV0IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0LiBUaGlzIGlzIGluIHRoZSBicmNtZm1hYyBkcml2ZXIsIGFuZCBteSBpbW1lZGlhdGUgdGhvdWdodCBpcyBhYm91dCBmdXp6aW5nLiBJcyB0aGlzIGEgY29kZSBwYXRoIHdlIGNhbiByZWFjaCB3aXRoIGZ1enppbmc/XG5cbkkgbmVlZCB0byBsb29rIGF0IGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIGluIHRoZSBzYW1lIGZpbGUuIEkga25vdyB0aGUgYnJjbWZtYWMgZHJpdmVyIGZhaXJseSB3ZWxsLCBpdOKAmXMgYSBCcm9hZGNvbSBGdWxsTUFDIGRyaXZlci4gSXQgdHlwaWNhbGx5IHJlcXVpcmVzIHNwZWNpZmljIGhhcmR3YXJlLCBTRElPLCBVU0Igb3IgUENJZSBlbXVsYXRpb24sIHdoaWNoIHByZXNlbnRzIGEgY2hhbGxlbmdlIGZvciB0cmFkaXRpb25hbCBmdXp6aW5nIG1ldGhvZHMuIEkga25vdyB3ZSBjYW4gc2ltdWxhdGUgbWFjODAyMTEgd2l0aCBgbWFjODAyMTFfaHdzaW1gLCBidXQgdGhpcyBpcyBhIHNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciwgYW5kIGVtdWxhdGlvbiBjYW4gYmUgdHJpY2t5LlxuXG5XYWl0LCBicmNtZm1hYyBzdXBwb3J0cyBVU0IhIFdlIGhhdmUgVVNCIGZ1enppbmcgYWxyZWFkeSwgdXNpbmcgYGR1bW15X2hjZGAuIFRoaXMgaXMgaW50ZXJlc3RpbmcuIEknbGwgbmVlZCB0byBjaGVjayBpZiBicmNtZm1hYyB1c2VzIHRoZSBVU0IgaW50ZXJmYWNlIGFuZCBpZiB0aGlzIGBwMnAuY2AgY29kZSBpcyByZWFjaGFibGUgdGhyb3VnaCBhIFVTQiBwYXRoLiBUaGlzIG1pZ2h0IG9wZW4gdXAgYSBuZXcgZnV6emluZyBhbmdsZS4gVGhpcyBudWxsIGNoZWNrIGNvdWxkIGJlIGEgY3JpdGljYWwgcG9pbnQsIGFuZCBwb3RlbnRpYWxseSByZWFjaGFibGUuIEkgbmVlZCB0byBkaWcgZGVlcGVyIGludG8gdGhlIFVTQiBzaWRlIG9mIHRoaXMgZHJpdmVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTk0LCJPdXRwdXRUb2tlbnMiOjQ4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTc6MDQ6MzAuNzQ3NzkxMzk4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMTIzMjU1OTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnJjbWZtYWNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc9MT1jb25maWcgQlJDTUZNQUNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTgtXFx0ICBpbnRlcmZhY2Ugc3VwcG9ydC4gSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQnbGwgYmUgY2FsbGVkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6OTpcXHQgIGJyY21mbWFjLmtvLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTEwLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNzowNDozMi45NjAxMzYyODJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjQ4MDMzODc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqSW5pdGlhbCBBc3Nlc3NtZW50OiBVU0IgQ2FwYWJpbGl0aWVzKipcblxuUmlnaHQsIHNvIGJlZm9yZSBJIGRpdmUgaW4gdG9vIGRlZXAsIEkgbmVlZCB0byBpbW1lZGlhdGVseSBhc2NlcnRhaW4gdGhlIFVTQiBzaXR1YXRpb24uIEl0J3MgYWxtb3N0IGZvdW5kYXRpb25hbCBpbiBteSBsaW5lIG9mIHdvcmsuIERvZXMgdGhpcyBpbXBsZW1lbnQgVVNCIGZ1bmN0aW9uYWxpdHk/IEknbSBub3QgbG9va2luZyBmb3IgYW4gZXhoYXVzdGl2ZSBsaXN0IG9mIGFsbCBpdHMgcHJvdG9jb2xzLCBidXQgcmF0aGVyLCBJIG5lZWQgdG8ga25vdyAqaWYqIGl0J3MgdGhlcmUgYXQgYWxsLiBJdCdzIGEga2V5IGF0dHJpYnV0ZSBmb3IgaW50ZWdyYXRpb24uIEtub3dpbmcgdGhpcyB3aWxsIGltbWVkaWF0ZWx5IGluZm9ybSB0aGUgc3Vic2VxdWVudCBzdGVwcyBvZiBldmFsdWF0aW9uLiBJdCBpbXBhY3RzIGV2ZXJ5dGhpbmcgZnJvbSBpbml0aWFsIGRhdGEgdHJhbnNmZXIgdG8gZmlybXdhcmUgdXBkYXRlcywgYW5kIHRoZSBwb3RlbnRpYWwgZm9yIGN1c3RvbSBjb25maWd1cmF0aW9ucy4gQSBsYWNrIG9mIFVTQiBtZWFucyBhIHNpZ25pZmljYW50bHkgZGlmZmVyZW50IGFyY2hpdGVjdHVyYWwgYXBwcm9hY2ggZnJvbSB0aGUgb3V0c2V0LiBTbywgaXMgdGhlcmUgVVNCIHN1cHBvcnQgb3Igbm90PyBUaGF0J3MgdGhlIGZpcnN0IHF1ZXN0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODA1LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTc6MDQ6MzYuMjA4MTcyMzhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTYyOTYwNzQxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlVTQlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZz0xNz1jb25maWcgQlJDTUZNQUNfU0RJT1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6Mjk6Y29uZmlnIEJSQ01GTUFDX1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjMwOlxcdGJvb2wgXFxcIlVTQiBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjMxOlxcdGRlcGVuZHMgb24gKFVTQiA9IHkgfHwgVVNCID0gQlJDTUZNQUMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMzItXFx0ZGVwZW5kcyBvbiBCUkNNRk1BQ1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMzUtXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjM2OlxcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgVVNCIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgQnJvYWRjb21cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zNy1cXHQgIElFRUU4MDIuMTFuIGVtYmVkZGVkIEZ1bGxNQUMgV0xBTiBkcml2ZXIuIFNheSBZIGlmIHlvdSB3YW50IHRvXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6Mzg6XFx0ICB1c2UgdGhlIGRyaXZlciBmb3IgYW4gVVNCIHdpcmVsZXNzIGNhcmQuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMzktXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDE3OjA0OjM2LjM3MTE0MTMwMVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxMDYwNDc3NzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgVVNCIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgc28gdGhlIGluaXRpYWwgYXNzZXNzbWVudCBpcyBwb3NpdGl2ZS4gSXQgZGVmaW5pdGVseSBzdXBwb3J0cyBVU0IgKGBCUkNNRk1BQ19VU0JgKSwgd2hpY2ggaXMgYSBrZXkgcmVxdWlyZW1lbnQuIFRoaXMgb3BlbnMgdXAgdGhlIHBvc3NpYmlsaXR5IG9mIGV4cGxvaXRpbmcgdnVsbmVyYWJpbGl0aWVzIHRocm91Z2ggVVNCIGZ1enppbmcsIHdoaWNoIGlzIGEgY29tbW9uIGFuZCBvZnRlbiBlZmZlY3RpdmUgYXBwcm9hY2guIFRoZSBmdW5jdGlvbiBvZiBpbnRlcmVzdCBoZXJlIGlzIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgLiBOb3csIGxldCdzIGxvY2F0ZSB0aGUgcmVsZXZhbnQgS2NvbmZpZyBmaWxlIGZvciBgYnJjbWZtYWNgLiBVbmRlcnN0YW5kaW5nIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgd2lsbCBiZSBjcnVjaWFsIGZvciBkZXRlcm1pbmluZyB0aGUgc3BlY2lmaWMgZmVhdHVyZXMgZW5hYmxlZCBhbmQgdGh1cywgdGhlIGF0dGFjayBzdXJmYWNlLiBUaGlzIHdpbGwgaW52b2x2ZSBwaW5wb2ludGluZyB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgYW5kIGRlcGVuZGVuY2llcyB3aGljaCB3aWxsIGFsbG93IG1lIHRvIGNyZWF0ZSBhbiBlZmZlY3RpdmUgZnV6emluZyBjYW1wYWlnbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQ2MiwiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDE3OjA0OjM5LjQ3NzE5MjkwNVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzkxOTE5NDEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEJSQ01GTUFDXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjE6Y29uZmlnIEJSQ01GTUFDXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMi1cXHR0cmlzdGF0ZSBcXFwiQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTEwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjExOmNvbmZpZyBCUkNNRk1BQ19QUk9UT19CQ0RDXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTItXFx0Ym9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjE0OmNvbmZpZyBCUkNNRk1BQ19QUk9UT19NU0dCVUZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xNS1cXHRib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTc6Y29uZmlnIEJSQ01GTUFDX1NESU9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xOC1cXHRib29sIFxcXCJTRElPIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgRnVsbE1BQyBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0yOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoyOTpjb25maWcgQlJDTUZNQUNfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMzAtXFx0Ym9vbCBcXFwiVVNCIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgRnVsbE1BQyBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzo0MDpjb25maWcgQlJDTUZNQUNfUENJRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTQxLVxcdGJvb2wgXFxcIlBDSUUgYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTc6MDQ6MzkuOTE2MzkxOTA2WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQ3MjQ4MTk2OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJ20gdGhpbmtpbmcgdGhyb3VnaCB0aGlzIHByb2Nlc3M6XG5cbioqRGl2aW5nIGludG8gdGhlIGJyY21mbWFjIFAyUCBJbXBsZW1lbnRhdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZSBgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lYCBmdW5jdGlvbi4gVGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludCBmb3IgdW5kZXJzdGFuZGluZyBob3cgUDJQIGFjdGlvbiBmcmFtZXMgYXJlIGhhbmRsZWQgaW4gdGhpcyBCcm9hZGNvbSBkcml2ZXIuIEkga25vdyBpdCdzIGxvY2F0ZWQgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmNgLCBzbyBJJ2xsIG5lZWQgdG8gb3BlbiB0aGF0IGZpbGUuIE5vdywgZ2l2ZW4gbXkgZXhwZXJpZW5jZSB3aXRoIHRoaXMgdHlwZSBvZiBkcml2ZXIsIG15IGltbWVkaWF0ZSBuZXh0IHN0ZXAgaXMgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gUDJQIHdpdGhpbiB0aGUgYnJjbWZtYWMgZnJhbWV3b3JrIGl0c2VsZi4gSSdsbCBuZWVkIHRvIGV4cGxvcmUgYW55IGNvbmZpZ3VyYXRpb24gZmlsZXMgb3Iga2VybmVsIGJ1aWxkIG9wdGlvbnMgdG8gaWRlbnRpZnkgYW55IHJlbGV2YW50IHNldHRpbmdzLiBJIHN1c3BlY3QgdGhhdCB0aGVyZSBtaWdodCBiZSBzb21lIHRoYXQgYXJlIHJlbGV2YW50LCBnaXZlbiB0aGUgc3BlY2lhbGl6ZWQgbmF0dXJlIG9mIFAyUC4gVGltZSB0byBkaWcgaW4hXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQzMjYsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNzowNDo0My4zODg4Nzc4NTRaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5NzI3MjE3NSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiUDJQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNzowNDo0My41ODYxNjU0OTlaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDA4MTYzMzc2OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkFuYWx5emluZyB0aGUgUDJQIENvbmZpZ3VyYXRpb24gTGFuZHNjYXBlKipcblxuQWxyaWdodCwgc28gdGhlcmUncyBubyBleHBsaWNpdGx5IGRlZmluZWQgXCJQMlAgY29uZmlnXCIgSSBjYW4gaW1tZWRpYXRlbHkgaWRlbnRpZnkuIFRoYXQgbWVhbnMgd2UncmUgZGVhbGluZyB3aXRoIGVpdGhlciBgQlJDTUZNQUNgIG9yIGBCUkNNRk1BQ19VU0JgIOKAkyBsaWtlbHkgdGhlIGVuY29tcGFzc2luZyBjb25maWd1cmF0aW9ucyB0aGF0IGhhbmRsZSBQMlAgZnVuY3Rpb25hbGl0eSBpbXBsaWNpdGx5LiBNeSBuZXh0IHN0ZXAgaXMgdG8gcXVpY2tseSBkZXRlcm1pbmUgdGhlIHJlYWNoYWJpbGl0eSBvZiB0aGUgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAgZnVuY3Rpb24gZnJvbSB0aGUgVVNCIHNpZGUuIEdpdmVuIGl0cyBuYW1lLCB0aGF0IGZ1bmN0aW9uIGlzIGFsbW9zdCBjZXJ0YWlubHkgYSBjb3JlIHBpZWNlIG9mIHRoZSBQMlAgcHV6emxlIHdpdGhpbiB0aGUgZHJpdmVyLiBBbmQganVkZ2luZyBieSB0aGUgbmFtaW5nIGNvbnZlbnRpb24sIGl0J3MgYSBnZW5lcmljIFAyUCBmdW5jdGlvbiwgcHJvYmFibHkgaW52b2tlZCB0aHJvdWdoIHRoZSBgY2ZnODAyMTFgIG9wZXJhdGlvbnMsIGFzIHRob3NlIGFyZSB0aGUgc3RhbmRhcmQgZW50cnkgcG9pbnRzIGZvciB0aGlzIGtpbmQgb2YgZnVuY3Rpb25hbGl0eSBpbiB0aGUga2VybmVsLiBUaGlzIGNvbmZpcm1zIG15IGluaXRpYWwgaHlwb3RoZXNpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDY2NywiT3V0cHV0VG9rZW5zIjo1NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDE3OjA0OjQ3LjY2NzgwMzI3OFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzMyNTcyMzQxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jPTU1MzM9YnJjbWZfY2ZnODAyMTFfbWdtdF90eChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtNTYzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzo1NjMyOlxcdFxcdGFjayA9IGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSh2aWYtXFx1MDAzZWlmcCwgYWZfcGFyYW1zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy01NjMzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jPTE2OTU9c3RhdGljIGJvb2wgYnJjbWZfcDJwX2NoZWNrX2R3ZWxsX292ZXJmbG93KHUzMiByZXF1ZXN0ZWRfZHdlbGwsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTcwNi0vKipcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTcwNzogKiBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWUoKSAtIHNlbmQgYWN0aW9uIGZyYW1lIC5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTcwOC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE3MTEtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jOjE3MTI6Ym9vbCBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWUoc3RydWN0IGJyY21mX2lmICppZnAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE3MTMtXFx0XFx0XFx0XFx0IHN0cnVjdCBicmNtZl9maWxfYWZfcGFyYW1zX2xlICphZl9wYXJhbXMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmg9MTY5PWludCBicmNtZl9wMnBfbm90aWZ5X2FjdGlvbl90eF9jb21wbGV0ZShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuaC0xNzEtXFx0XFx0XFx0XFx0XFx0dm9pZCAqZGF0YSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5oOjE3Mjpib29sIGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmgtMTczLVxcdFxcdFxcdFxcdCBzdHJ1Y3QgYnJjbWZfZmlsX2FmX3BhcmFtc19sZSAqYWZfcGFyYW1zKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTc6MDQ6NDguMDAwMzgzMzE4WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE1NDE2NDU4ODQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE5ldHdvcmsgRHJpdmVyIENyYXNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBjcmFzaCBvcmlnaW5hdGluZyBmcm9tIGBicmNtZl9jZmc4MDIxMV9tZ210X3R4YCwgd2hpY2gsIGFzIGEgY2ZnODAyMTEgY2FsbGJhY2ssIG1lYW5zIGl0J3MgdHJpZ2dlcmVkIGZyb20gdXNlcnNwYWNlIHRocm91Z2ggbmV0bGluayAoc3BlY2lmaWNhbGx5IG5sODAyMTEpLiBUaGUgcm9vdCBjYXVzZSBzZWVtcyB0byBiZSBhIGNsYXNzaWMgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlLCBzcGVjaWZpY2FsbHkgd2hlbiBhY2Nlc3NpbmcgYHAycC1cdTAwM2Vic3NfaWR4W1AyUEFQSV9CU1NDRkdfREVWSUNFXS52aWZgLiBUaGUgcHJvdmlkZWQgcGF0Y2ggYWRkcmVzc2VzIHRoaXMgd2l0aCBhIHNpbXBsZSBOVUxMIGNoZWNrLiBUaGlzIGlzIGEgc29saWQsIGZ1bmN0aW9uYWwgZml4IGZvciBhIGNyYXNoLCBhbmQgZ2l2ZW4gaXRzIGVudHJ5IHBvaW50IHRocm91Z2ggbmw4MDIxMSwgaXQncyBkZWZpbml0ZWx5IGEgcG9pbnQgb2YgaW50ZXJlc3QgZm9yIGZ1dHVyZSBzZWN1cml0eSBhc3Nlc3NtZW50cy5cblxuTXkgaW1tZWRpYXRlIHRob3VnaHRzIGFyZSB0byBmb2N1cyBmdXp6aW5nIGVmZm9ydHMgb24gYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAgYW5kIHRoZSB0cmlnZ2VyaW5nIGZ1bmN0aW9uIGBicmNtZl9jZmc4MDIxMV9tZ210X3R4YC4gQnV0LCBvZiBjb3Vyc2UsIEkgbmVlZCB0byBleHBhbmQgbXkgc2NvcGUgLSBhcmUgdGhlcmUgb3RoZXIgcmVsYXRlZCBmdW5jdGlvbnMgaW4gdGhpcyBkcml2ZXIgdGhhdCBjb3VsZCBiZSBleHBvc2VkIHRvIHNpbWlsYXIgdnVsbmVyYWJpbGl0aWVzPyBMZXQncyBkaWcgZGVlcGVyIGFuZCBzZWUgd2hhdCBvdGhlciBhdHRhY2sgc3VyZmFjZXMgd2UgaGF2ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTc0OSwiT3V0cHV0VG9rZW5zIjo1NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNzowNTowMy40MTY4NDc2MzhaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQwMjczMjk0NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9jZmc4MDIxMV9tZ210X3R4XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9NTUzMj1pbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzo1NTMzOmJyY21mX2NmZzgwMjExX21nbXRfdHgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy01NTM0LVxcdFxcdCAgICAgICBzdHJ1Y3QgY2ZnODAyMTFfbWdtdF90eF9wYXJhbXMgKnBhcmFtcywgdTY0ICpjb29raWUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy01NjQ1LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzo1NjQ2OkJSQ01GX0VYUE9SVF9TWU1CT0xfR1BMKGJyY21mX2NmZzgwMjExX21nbXRfdHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTU2NDctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYz01OTgyPXN0YXRpYyBzdHJ1Y3QgY2ZnODAyMTFfb3BzIGJyY21mX2NmZzgwMjExX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTYwMTUtXFx0XFx0YnJjbWZfY2ZnODAyMTFfdXBkYXRlX21nbXRfZnJhbWVfcmVnaXN0cmF0aW9ucyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzo2MDE2OlxcdC5tZ210X3R4ID0gYnJjbWZfY2ZnODAyMTFfbWdtdF90eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy02MDE3LVxcdC5zZXRfY3FtX3Jzc2lfcmFuZ2VfY29uZmlnID0gYnJjbWZfY2ZnODAyMTFfc2V0X2NxbV9yc3NpX3JhbmdlX2NvbmZpZyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5oPTQ5OD1pbnQgYnJjbWZfc2V0X3dzZWMoc3RydWN0IGJyY21mX2lmICppZnAsIGNvbnN0IHU4ICprZXksIHUxNiBrZXlfbGVuLCB1MTYgZmxhZ3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5oOjQ5OTppbnQgYnJjbWZfY2ZnODAyMTFfbWdtdF90eChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5oLTUwMC1cXHRcXHRcXHQgICBzdHJ1Y3QgY2ZnODAyMTFfbWdtdF90eF9wYXJhbXMgKnBhcmFtcywgdTY0ICpjb29raWUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM9MTAyPWludCBicmNtZl9jeXdfbWdtdF90eChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMTIzLVxcdGlmICghaWVlZTgwMjExX2lzX2F1dGgobWdtdC1cXHUwMDNlZnJhbWVfY29udHJvbCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM6MTI0OlxcdFxcdHJldHVybiBicmNtZl9jZmc4MDIxMV9tZ210X3R4KHdpcGh5LCB3ZGV2LCBwYXJhbXMsIGNvb2tpZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMTI1LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNzowNTowMy44MTk1ODc0MDZaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzkxNDU5ODAwMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFJlbGV2YW50IENvZGUgUGF0aHMqKlxuXG5Pa2F5LCBzbyBJJ20gaG9uaW5nIGluIG9uIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIGFuZCBgYnJjbWZfY2ZnODAyMTFfbWdtdF90eGAgYXMgdGhlIGtleSBmdW5jdGlvbnMgdG8gaW52ZXN0aWdhdGUgZnVydGhlciDigJMgdGhleSBsb29rIGxpa2UgdGhlIHJpZ2h0IGVudHJ5IHBvaW50cyBmb3Igd2hhdCBJJ20gdHJ5aW5nIHRvIGFjaGlldmUuIE5vdywgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4uLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgaGF2ZSBgQlJDTUZNQUNgIGFuZCBgQlJDTUZNQUNfVVNCYCBlbmFibGVkLiBIbW0sIGJ1dCBpcyBqdXN0IGBCUkNNRk1BQ19VU0JgIHN1ZmZpY2llbnQgaW4gdGhpcyBwYXJ0aWN1bGFyIHNjZW5hcmlvPyBJdCdzIHdvcnRoIGEgZG91YmxlLWNoZWNrLiBJJ2QgYmV0dGVyIGNvbmZpcm0gYW55IG90aGVyIHBvdGVudGlhbCBkZXBlbmRlbmNpZXMgZm9yIGBCUkNNRk1BQ2AuIEkga25vdyBJIG5lZWQgYENGRzgwMjExYCwgYnV0IHRoYXQncyBwcmV0dHkgc3RhbmRhcmQsIHNvIEknbGwgZ28gYmFjayBhbmQgY2hlY2sgdGhlIGBCUkNNRk1BQ2AgZGVwZW5kZW5jaWVzIHNwZWNpZmljYWxseS5cblxuXG4iLCJJbnB1dFRva2VucyI6NzIyMSwiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNzowNTowNy43MzQxODg4ODVaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NTQwNDMxNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQlJDTUZNQUNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTpjb25maWcgQlJDTUZNQUNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0yLVxcdHRyaXN0YXRlIFxcXCJCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTE6Y29uZmlnIEJSQ01GTUFDX1BST1RPX0JDRENcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMi1cXHRib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTQ6Y29uZmlnIEJSQ01GTUFDX1BST1RPX01TR0JVRlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE1LVxcdGJvb2xcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoxNzpjb25maWcgQlJDTUZNQUNfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE4LVxcdGJvb2wgXFxcIlNESU8gYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjI5OmNvbmZpZyBCUkNNRk1BQ19VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zMC1cXHRib29sIFxcXCJVU0IgYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTM5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjQwOmNvbmZpZyBCUkNNRk1BQ19QQ0lFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctNDEtXFx0Ym9vbCBcXFwiUENJRSBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNzowNTowNy45MTk2MDExMDJaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzgxMDAyMTc5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipEZWNvbnN0cnVjdGluZyBgY29uZmlnIEJSQ01GTUFDYCoqXG5cbk9rYXksIHNvIEkndmUgZW5jb3VudGVyZWQgYGNvbmZpZyBCUkNNRk1BQ2AuIE15IGZpcnN0IHRob3VnaHQgaXMgdG8gZHJpbGwgZG93biBhbmQgdW5kZXJzdGFuZCBwcmVjaXNlbHkgd2hhdCdzIGJlaGluZCB0aGlzIGxhYmVsLiBJdCdzIG9idmlvdXNseSBhIGNvbmZpZ3VyYXRpb24gc2V0dGluZywgbGlrZWx5IHJlbGF0ZWQgdG8gYSBCcm9hZGNvbSBGTUFDIChwcmVzdW1hYmx5IG1lYW5pbmcgXCJGcmVxdWVuY3kgTW9kdWxhdGlvbiBBY2Nlc3MgQ29udHJvbGxlclwiKSBkcml2ZXIgb3IgbW9kdWxlLiBUaGlzIGNvdWxkIGJlIGluIHRoZSBjb250ZXh0IG9mIGEga2VybmVsIGJ1aWxkIHN5c3RlbSAobGlrZSBgbWFrZSBtZW51Y29uZmlnYCBvciBzaW1pbGFyKSwgYSBkZXZpY2UgZHJpdmVyIGZyYW1ld29yaywgb3IgZXZlbiBzb21lIGhpZ2hlci1sZXZlbCBjb25maWd1cmF0aW9uIHV0aWxpdHkuXG5cbk15IGluaXRpYWwgYXBwcm9hY2ggaXMgdG8gZ28gc3RyYWlnaHQgZm9yIHRoZSBqdWd1bGFyIOKAkyB0aGUgKmZ1bGwqIGRlZmluaXRpb24uIEkgbmVlZCB0byBzZWUgdGhlIGNvbnRleHQuIFdoYXQgaXMgdGhpcyBgQlJDTUZNQUNgIGxpbmtlZCB0bz8gV2hhdCBhcmUgdGhlIGRlcGVuZGVuY2llcz8gV2hlcmUgaXMgaXQgZGVmaW5lZD8gSXMgaXQgYSBib29sZWFuLCBhIHN0cmluZywgYSBudW1lcmljIHZhbHVlLCBvciBzb21ldGhpbmcgbW9yZSBjb21wbGV4PyBJIHdhbnQgdG8gc2VlIHRoZSBjb25kaXRpb25hbCBsb2dpYyBhcm91bmQgaXQg4oCTIHdoYXQgb3RoZXIgc2V0dGluZ3MgZW5hYmxlIG9yIGRpc2FibGUgaXQ/IEFyZSB0aGVyZSBhbnkgYXNzb2NpYXRlZCBzeW1ib2xzIG9yIHZhcmlhYmxlcz8gV2hhdCBvcHRpb25zIGFyZSBhdmFpbGFibGUgd2l0aGluIHRoaXMgY29uZmlndXJhdGlvbiBvcHRpb24/IFVuZGVyc3RhbmRpbmcgdGhlIGNvbXBsZXRlIHNjb3BlIG9mIHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmcgaXMgdGhlIGZpcnN0IGFuZCB2aXRhbCBzdGVwIHRvIHVuZGVyc3RhbmRpbmcgaXRzIGZ1bmN0aW9uLCBlZmZlY3QsIGFuZCBwb3NzaWJsZSBpbXBhY3RzIG9uIHRoZSBzeXN0ZW0gSSdtIHdvcmtpbmcgd2l0aC4gSSBuZWVkIHRvIHNlZSB0aGUgZW50aXJlIHBpY3R1cmUsIG5vdCBqdXN0IGEgc25pcHBldC4gRnJvbSB0aGVyZSwgSSBjYW4gYmVnaW4gdG8gdW5wYWNrIHRoZSBpbXBsaWNhdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjgxODksIk91dHB1dFRva2VucyI6NTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNzowNToxMS43Mjk2MjU3N1oiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDMxNDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMTVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHRjb25maWcgQlJDTUZNQUNcXG4gICAyOlxcdFxcdHRyaXN0YXRlIFxcXCJCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyXFxcIlxcbiAgIDM6XFx0XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxcbiAgIDQ6XFx0XFx0c2VsZWN0IEJSQ01VVElMXFxuICAgNTpcXHRcXHRoZWxwXFxuICAgNjpcXHRcXHQgIFRoaXMgbW9kdWxlIGFkZHMgc3VwcG9ydCBmb3Igd2lyZWxlc3MgYWRhcHRlcnMgYmFzZWQgb24gQnJvYWRjb21cXG4gICA3OlxcdFxcdCAgRnVsbE1BQyBjaGlwc2V0cy4gSXQgaGFzIHRvIHdvcmsgd2l0aCBhdCBsZWFzdCBvbmUgb2YgdGhlIGJ1c1xcbiAgIDg6XFx0XFx0ICBpbnRlcmZhY2Ugc3VwcG9ydC4gSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQnbGwgYmUgY2FsbGVkXFxuICAgOTpcXHRcXHQgIGJyY21mbWFjLmtvLlxcbiAgMTA6XFx0XFxuICAxMTpcXHRjb25maWcgQlJDTUZNQUNfUFJPVE9fQkNEQ1xcbiAgMTI6XFx0XFx0Ym9vbFxcbiAgMTM6XFx0XFxuICAxNDpcXHRjb25maWcgQlJDTUZNQUNfUFJPVE9fTVNHQlVGXFxuICAxNTpcXHRcXHRib29sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDE3OjA1OjExLjcyOTc3MjM3WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYyMzQzNDE1ODQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgYGJyY21mbWFjYCBWdWxuZXJhYmlsaXR5KipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyB2dWxuZXJhYmlsaXR5IG5haWxlZCBkb3duLiBJdCBsb29rcyBsaWtlIHRoZSBjb3JlIGlzc3VlIHJldm9sdmVzIGFyb3VuZCBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSB3aXRoaW4gdGhlIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIGZ1bmN0aW9uLiBTcGVjaWZpY2FsbHksIGl0J3MgYWNjZXNzaW5nIGBwMnAtXHUwMDNlYnNzX2lkeFtQMlBBUElfQlNTQ0ZHX0RFVklDRV0udmlmYCB3aXRob3V0IHByb3BlciBjaGVja3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgd2hpY2ggaXMgaW1wb3J0YW50IHRvIHJlbWVtYmVyLiBUaGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgc2VlbSB0byBiZSBgQlJDTUZNQUNgIGFuZCBgQlJDTUZNQUNfVVNCYC5cblxuVGhlIGV4Y2l0aW5nIHBhcnQ/IFRoaXMgaXMgKmZ1enphYmxlKi4gSSB3YXMgaW5pdGlhbGx5IHdvbmRlcmluZyBpZiBgZHVtbXlfaGNkYCBhY3R1YWxseSBsb2FkZWQgYGJyY21mbWFjYCwgYnV0IHRoZW4gSSByZW1lbWJlcmVkIHRoYXQgc3l6a2FsbGVyJ3MgVVNCIGZ1enplciBjYW4gZW11bGF0ZSBhbnkgVVNCIGRldmljZSwgaW5jbHVkaW5nIHRoaXMgZHJpdmVyLiBUaGlzIG1lYW5zIHdlIGhhdmUgYSB2aWFibGUgZnV6emluZyB0YXJnZXQuXG5cbkxldCdzIHB1bGwgYWxsIHRoaXMgdG9nZXRoZXIgc3VjY2luY3RseSBmb3IgbXkgYW5hbHlzaXM6XG5cbiogICAqKldvcnRoRnV6emluZyoqOiBBYnNvbHV0ZWx5LCB5ZXMuXG4qICAgKipGb2N1cyBTeW1ib2xzKio6IEknbSBnb2luZyB0byBrZWVwIGEgY2xvc2UgZXllIG9uIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIGFuZCBhbHNvIGBicmNtZl9jZmc4MDIxMV9tZ210X3R4YCBhcyBpdCdzIGxpa2VseSBhIGNhbGwgY2hhaW4gZm9yIHRoaXMgdnVsbmVyYWJpbGl0eS5cbiogICAqKkVuYWJsZUNvbmZpZ3MqKjogV2UnbGwgbmVlZCBgQlJDTUZNQUNgIGFuZCBgQlJDTUZNQUNfVVNCYCBlbmFibGVkLlxuKiAgICoqUmVhc29uaW5nKio6IFRoZSBjcnV4IG9mIHRoZSBpc3N1ZSBpcyBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlciwgc3BlY2lmaWNhbGx5IHdoZW4gdGhlIGRyaXZlciBpcyBzZW5kaW5nIFAyUCBhY3Rpb24gZnJhbWVzLiBDcnVjaWFsbHksIHRoZSBkcml2ZXIgaXMgZnV6emFibGUgdmlhIFVTQiBlbXVsYXRpb24gKHRoYW5rcyB0byBzeXprYWxsZXIncyBjYXBhYmlsaXRpZXMpLCBhbmQgdGhlIHZ1bG5lcmFibGUgZnVuY3Rpb24gaXMgcmVhY2hhYmxlIHRocm91Z2ggbmw4MDIxMSBtYW5hZ2VtZW50IGZyYW1lIHRyYW5zbWlzc2lvbi4gVGhpcyBzZWVtcyBsaWtlIGEgZ3JlYXQgY2FuZGlkYXRlIGZvciBmdXJ0aGVyIGludmVzdGlnYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjg3MzQsIk91dHB1dFRva2VucyI6MTM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjcxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTc6MDU6MTcuOTY0MTE3Njc0WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjI0NjY0NTgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUkNNRk1BQ1wiLFxuICAgIFwiQlJDTUZNQUNfVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lXCIsXG4gICAgXCJicmNtZl9jZmc4MDIxMV9tZ210X3R4XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdGhlIEJyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXIgKGJyY21mbWFjKSB3aGVuIHNlbmRpbmcgUDJQIGFjdGlvbiBmcmFtZXMuIFRoZSBkcml2ZXIgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbiwgYW5kIHRoZSBtb2RpZmllZCBmdW5jdGlvbiBpcyByZWFjaGFibGUgdmlhIG5sODAyMTEgbWFuYWdlbWVudCBmcmFtZSB0cmFuc21pc3Npb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJDTUZNQUNcIixcbiAgICBcIkJSQ01GTUFDX1VTQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZVwiLFxuICAgIFwiYnJjbWZfY2ZnODAyMTFfbWdtdF90eFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyIChicmNtZm1hYykgd2hlbiBzZW5kaW5nIFAyUCBhY3Rpb24gZnJhbWVzLiBUaGUgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24sIGFuZCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24gaXMgcmVhY2hhYmxlIHZpYSBubDgwMjExIG1hbmFnZW1lbnQgZnJhbWUgdHJhbnNtaXNzaW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflowdfx5h[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-08 16:43:19 +0000 UTC FinishedAt: 2026-07-08 17:05:19 +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": "0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BRCMFMAC", "BRCMFMAC_USB" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BRCMFMAC", "BRCMFMAC_USB" ], "series_id": "8b8c812d-769d-4a79-bda8-b50f008bf4a6" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "brcmf_p2p_send_action_frame", "brcmf_cfg80211_mgmt_tx" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA4IDE3OjAxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JSQ01GTUFDJiMzNDssCiAgICAmIzM0O0JSQ01GTUFDX1VTQiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSYjMzQ7LAogICAgJiMzNDticmNtZl9jZmc4MDIxMV9tZ210X3R4JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyIChicmNtZm1hYykgd2hlbiBzZW5kaW5nIFAyUCBhY3Rpb24gZnJhbWVzLiBUaGUgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24sIGFuZCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24gaXMgcmVhY2hhYmxlIHZpYSBubDgwMjExIG1hbmFnZW1lbnQgZnJhbWUgdHJhbnNtaXNzaW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE3OjAxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZTdiYjA1NDBmNGIyNzlmNzA4M2RhMWQ1YWNjMGQ2N2QwYmFjMWQ0OVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDggMTc6MDE6MzkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jXG5pbmRleCA5MmMxNmEzMTczMjg4Yi4uYmJkZWJmNGMyMDEwZTEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuY1xuQEAgLTE4MTksNiAmIzQzOzE4MTksNyBAQCBib29sIGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcbiBcdC8qIHZhbGlkYXRlIGNoYW5uZWwgYW5kIHAycCBpZXMgKi9cbiBcdGlmIChjb25maWdfYWZfcGFyYW1zLnNlYXJjaF9jaGFubmVsIFx1MDAyNlx1MDAyNlxuIFx0ICAgIElTX1AyUF9TT0NJQUxfQ0hBTk5FTChsZTMyX3RvX2NwdShhZl9wYXJhbXMtXHUwMDNlY2hhbm5lbCkpIFx1MDAyNlx1MDAyNlxuJiM0MztcdCAgICBwMnAtXHUwMDNlYnNzX2lkeFtQMlBBUElfQlNTQ0ZHX0RFVklDRV0udmlmIFx1MDAyNlx1MDAyNlxuIFx0ICAgIHAycC1cdTAwM2Vic3NfaWR4W1AyUEFQSV9CU1NDRkdfREVWSUNFXS52aWYtXHUwMDNlc2F2ZWRfaWUucHJvYmVfcmVxX2llX2xlbikge1xuIFx0XHRhZnhfaGRsID0gXHUwMDI2cDJwLVx1MDAzZWFmeF9oZGw7XG4gXHRcdGFmeF9oZGwtXHUwMDNlcGVlcl9saXN0ZW5fY2hhbiA9IGxlMzJfdG9fY3B1KGFmX3BhcmFtcy1cdTAwM2VjaGFubmVsKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxNzowMTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4zbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUkNNRk1BQyYjMzQ7LAogICAgJiMzNDtCUkNNRk1BQ19VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWUmIzM0OywKICAgICYjMzQ7YnJjbWZfY2ZnODAyMTFfbWdtdF90eCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlciAoYnJjbWZtYWMpIHdoZW4gc2VuZGluZyBQMlAgYWN0aW9uIGZyYW1lcy4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uLCBhbmQgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uIGlzIHJlYWNoYWJsZSB2aWEgbmw4MDIxMSBtYW5hZ2VtZW50IGZyYW1lIHRyYW5zbWlzc2lvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZTdiYjA1NDBmNGIyNzlmNzA4M2RhMWQ1YWNjMGQ2N2QwYmFjMWQ0OQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVsIDggMTc6MDE6MzkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMKaW5kZXggOTJjMTZhMzE3MzI4OGIuLmJiZGViZjRjMjAxMGUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jCkBAIC0xODE5LDYgJiM0MzsxODE5LDcgQEAgYm9vbCBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWUoc3RydWN0IGJyY21mX2lmICppZnAsCiAJLyogdmFsaWRhdGUgY2hhbm5lbCBhbmQgcDJwIGllcyAqLwogCWlmIChjb25maWdfYWZfcGFyYW1zLnNlYXJjaF9jaGFubmVsICZhbXA7JmFtcDsKIAkgICAgSVNfUDJQX1NPQ0lBTF9DSEFOTkVMKGxlMzJfdG9fY3B1KGFmX3BhcmFtcy0mZ3Q7Y2hhbm5lbCkpICZhbXA7JmFtcDsKJiM0MzsJICAgIHAycC0mZ3Q7YnNzX2lkeFtQMlBBUElfQlNTQ0ZHX0RFVklDRV0udmlmICZhbXA7JmFtcDsKIAkgICAgcDJwLSZndDtic3NfaWR4W1AyUEFQSV9CU1NDRkdfREVWSUNFXS52aWYtJmd0O3NhdmVkX2llLnByb2JlX3JlcV9pZV9sZW4pIHsKIAkJYWZ4X2hkbCA9ICZhbXA7cDJwLSZndDthZnhfaGRsOwogCQlhZnhfaGRsLSZndDtwZWVyX2xpc3Rlbl9jaGFuID0gbGUzMl90b19jcHUoYWZfcGFyYW1zLSZndDtjaGFubmVsKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTc6MDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk5NAoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDI2OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBXaUZpIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuY2AuIEl0JiMzOTtzIGEgc2ltcGxlIE5VTEwgY2hlY2sg4oCTIGBwMnAtJmd0O2Jzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZmAgYmVmb3JlIGRlcmVmZXJlbmNpbmcuIEFsd2F5cyBhIGdvb2QgcHJhY3RpY2UsIGJ1dCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4gVGhpcyBpcyBpbiB0aGUgYnJjbWZtYWMgZHJpdmVyLCBhbmQgbXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgYWJvdXQgZnV6emluZy4gSXMgdGhpcyBhIGNvZGUgcGF0aCB3ZSBjYW4gcmVhY2ggd2l0aCBmdXp6aW5nPwoKSSBuZWVkIHRvIGxvb2sgYXQgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAgaW4gdGhlIHNhbWUgZmlsZS4gSSBrbm93IHRoZSBicmNtZm1hYyBkcml2ZXIgZmFpcmx5IHdlbGwsIGl04oCZcyBhIEJyb2FkY29tIEZ1bGxNQUMgZHJpdmVyLiBJdCB0eXBpY2FsbHkgcmVxdWlyZXMgc3BlY2lmaWMgaGFyZHdhcmUsIFNESU8sIFVTQiBvciBQQ0llIGVtdWxhdGlvbiwgd2hpY2ggcHJlc2VudHMgYSBjaGFsbGVuZ2UgZm9yIHRyYWRpdGlvbmFsIGZ1enppbmcgbWV0aG9kcy4gSSBrbm93IHdlIGNhbiBzaW11bGF0ZSBtYWM4MDIxMSB3aXRoIGBtYWM4MDIxMV9od3NpbWAsIGJ1dCB0aGlzIGlzIGEgc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyLCBhbmQgZW11bGF0aW9uIGNhbiBiZSB0cmlja3kuCgpXYWl0LCBicmNtZm1hYyBzdXBwb3J0cyBVU0IhIFdlIGhhdmUgVVNCIGZ1enppbmcgYWxyZWFkeSwgdXNpbmcgYGR1bW15X2hjZGAuIFRoaXMgaXMgaW50ZXJlc3RpbmcuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgaWYgYnJjbWZtYWMgdXNlcyB0aGUgVVNCIGludGVyZmFjZSBhbmQgaWYgdGhpcyBgcDJwLmNgIGNvZGUgaXMgcmVhY2hhYmxlIHRocm91Z2ggYSBVU0IgcGF0aC4gVGhpcyBtaWdodCBvcGVuIHVwIGEgbmV3IGZ1enppbmcgYW5nbGUuIFRoaXMgbnVsbCBjaGVjayBjb3VsZCBiZSBhIGNyaXRpY2FsIHBvaW50LCBhbmQgcG90ZW50aWFsbHkgcmVhY2hhYmxlLiBJIG5lZWQgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSBVU0Igc2lkZSBvZiB0aGlzIGRyaXZlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxNzowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDticmNtZm1hYyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnPTE9Y29uZmlnIEJSQ01GTUFDXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctOC1cdCAgaW50ZXJmYWNlIHN1cHBvcnQuIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0JiMzOTtsbCBiZSBjYWxsZWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjk6XHQgIGJyY21mbWFjLmtvLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTAtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTc6MDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjgwNQoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipJbml0aWFsIEFzc2Vzc21lbnQ6IFVTQiBDYXBhYmlsaXRpZXMqKgoKUmlnaHQsIHNvIGJlZm9yZSBJIGRpdmUgaW4gdG9vIGRlZXAsIEkgbmVlZCB0byBpbW1lZGlhdGVseSBhc2NlcnRhaW4gdGhlIFVTQiBzaXR1YXRpb24uIEl0JiMzOTtzIGFsbW9zdCBmb3VuZGF0aW9uYWwgaW4gbXkgbGluZSBvZiB3b3JrLiBEb2VzIHRoaXMgaW1wbGVtZW50IFVTQiBmdW5jdGlvbmFsaXR5PyBJJiMzOTttIG5vdCBsb29raW5nIGZvciBhbiBleGhhdXN0aXZlIGxpc3Qgb2YgYWxsIGl0cyBwcm90b2NvbHMsIGJ1dCByYXRoZXIsIEkgbmVlZCB0byBrbm93ICppZiogaXQmIzM5O3MgdGhlcmUgYXQgYWxsLiBJdCYjMzk7cyBhIGtleSBhdHRyaWJ1dGUgZm9yIGludGVncmF0aW9uLiBLbm93aW5nIHRoaXMgd2lsbCBpbW1lZGlhdGVseSBpbmZvcm0gdGhlIHN1YnNlcXVlbnQgc3RlcHMgb2YgZXZhbHVhdGlvbi4gSXQgaW1wYWN0cyBldmVyeXRoaW5nIGZyb20gaW5pdGlhbCBkYXRhIHRyYW5zZmVyIHRvIGZpcm13YXJlIHVwZGF0ZXMsIGFuZCB0aGUgcG90ZW50aWFsIGZvciBjdXN0b20gY29uZmlndXJhdGlvbnMuIEEgbGFjayBvZiBVU0IgbWVhbnMgYSBzaWduaWZpY2FudGx5IGRpZmZlcmVudCBhcmNoaXRlY3R1cmFsIGFwcHJvYWNoIGZyb20gdGhlIG91dHNldC4gU28sIGlzIHRoZXJlIFVTQiBzdXBwb3J0IG9yIG5vdD8gVGhhdCYjMzk7cyB0aGUgZmlyc3QgcXVlc3Rpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTc6MDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7VVNCJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc9MTc9Y29uZmlnIEJSQ01GTUFDX1NESU9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0yOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjI5OmNvbmZpZyBCUkNNRk1BQ19VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjMwOlx0Ym9vbCBcJiMzNDtVU0IgYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MzE6XHRkZXBlbmRzIG9uIChVU0IgPSB5IHx8IFVTQiA9IEJSQ01GTUFDKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMzItXHRkZXBlbmRzIG9uIEJSQ01GTUFDXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMzUtXHRoZWxwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzozNjpcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgVVNCIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgQnJvYWRjb21cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTM3LVx0ICBJRUVFODAyLjExbiBlbWJlZGRlZCBGdWxsTUFDIFdMQU4gZHJpdmVyLiBTYXkgWSBpZiB5b3Ugd2FudCB0b1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6Mzg6XHQgIHVzZSB0aGUgZHJpdmVyIGZvciBhbiBVU0Igd2lyZWxlc3MgY2FyZC5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTM5LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE3OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM0NjIKCQkJCQkJCW91dHB1dDogNDkKCQkJCQkJCXRob3VnaHRzOiA2MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBVU0IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gdGhlIGluaXRpYWwgYXNzZXNzbWVudCBpcyBwb3NpdGl2ZS4gSXQgZGVmaW5pdGVseSBzdXBwb3J0cyBVU0IgKGBCUkNNRk1BQ19VU0JgKSwgd2hpY2ggaXMgYSBrZXkgcmVxdWlyZW1lbnQuIFRoaXMgb3BlbnMgdXAgdGhlIHBvc3NpYmlsaXR5IG9mIGV4cGxvaXRpbmcgdnVsbmVyYWJpbGl0aWVzIHRocm91Z2ggVVNCIGZ1enppbmcsIHdoaWNoIGlzIGEgY29tbW9uIGFuZCBvZnRlbiBlZmZlY3RpdmUgYXBwcm9hY2guIFRoZSBmdW5jdGlvbiBvZiBpbnRlcmVzdCBoZXJlIGlzIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgLiBOb3csIGxldCYjMzk7cyBsb2NhdGUgdGhlIHJlbGV2YW50IEtjb25maWcgZmlsZSBmb3IgYGJyY21mbWFjYC4gVW5kZXJzdGFuZGluZyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHdpbGwgYmUgY3J1Y2lhbCBmb3IgZGV0ZXJtaW5pbmcgdGhlIHNwZWNpZmljIGZlYXR1cmVzIGVuYWJsZWQgYW5kIHRodXMsIHRoZSBhdHRhY2sgc3VyZmFjZS4gVGhpcyB3aWxsIGludm9sdmUgcGlucG9pbnRpbmcgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIGFuZCBkZXBlbmRlbmNpZXMgd2hpY2ggd2lsbCBhbGxvdyBtZSB0byBjcmVhdGUgYW4gZWZmZWN0aXZlIGZ1enppbmcgY2FtcGFpZ24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTc6MDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEJSQ01GTUFDJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTpjb25maWcgQlJDTUZNQUNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTItXHR0cmlzdGF0ZSBcJiMzNDtCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoxMTpjb25maWcgQlJDTUZNQUNfUFJPVE9fQkNEQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTItXHRib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjE0OmNvbmZpZyBCUkNNRk1BQ19QUk9UT19NU0dCVUZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE1LVx0Ym9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoxNzpjb25maWcgQlJDTUZNQUNfU0RJT1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTgtXHRib29sIFwmIzM0O1NESU8gYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6Mjk6Y29uZmlnIEJSQ01GTUFDX1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMzAtXHRib29sIFwmIzM0O1VTQiBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzo0MDpjb25maWcgQlJDTUZNQUNfUENJRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctNDEtXHRib29sIFwmIzM0O1BDSUUgYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE3OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQzMjYKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiA2OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyB0aG91Z2ggSSYjMzk7bSB0aGlua2luZyB0aHJvdWdoIHRoaXMgcHJvY2VzczoKCioqRGl2aW5nIGludG8gdGhlIGJyY21mbWFjIFAyUCBJbXBsZW1lbnRhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIGZ1bmN0aW9uLiBUaGF0JiMzOTtzIGEgZ29vZCBzdGFydGluZyBwb2ludCBmb3IgdW5kZXJzdGFuZGluZyBob3cgUDJQIGFjdGlvbiBmcmFtZXMgYXJlIGhhbmRsZWQgaW4gdGhpcyBCcm9hZGNvbSBkcml2ZXIuIEkga25vdyBpdCYjMzk7cyBsb2NhdGVkIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jYCwgc28gSSYjMzk7bGwgbmVlZCB0byBvcGVuIHRoYXQgZmlsZS4gTm93LCBnaXZlbiBteSBleHBlcmllbmNlIHdpdGggdGhpcyB0eXBlIG9mIGRyaXZlciwgbXkgaW1tZWRpYXRlIG5leHQgc3RlcCBpcyB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byBQMlAgd2l0aGluIHRoZSBicmNtZm1hYyBmcmFtZXdvcmsgaXRzZWxmLiBJJiMzOTtsbCBuZWVkIHRvIGV4cGxvcmUgYW55IGNvbmZpZ3VyYXRpb24gZmlsZXMgb3Iga2VybmVsIGJ1aWxkIG9wdGlvbnMgdG8gaWRlbnRpZnkgYW55IHJlbGV2YW50IHNldHRpbmdzLiBJIHN1c3BlY3QgdGhhdCB0aGVyZSBtaWdodCBiZSBzb21lIHRoYXQgYXJlIHJlbGV2YW50LCBnaXZlbiB0aGUgc3BlY2lhbGl6ZWQgbmF0dXJlIG9mIFAyUC4gVGltZSB0byBkaWcgaW4hCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE3OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7UDJQJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxNzowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjY3CgkJCQkJCQlvdXRwdXQ6IDU1CgkJCQkJCQl0aG91Z2h0czogNzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uCgoqKkFuYWx5emluZyB0aGUgUDJQIENvbmZpZ3VyYXRpb24gTGFuZHNjYXBlKioKCkFscmlnaHQsIHNvIHRoZXJlJiMzOTtzIG5vIGV4cGxpY2l0bHkgZGVmaW5lZCAmIzM0O1AyUCBjb25maWcmIzM0OyBJIGNhbiBpbW1lZGlhdGVseSBpZGVudGlmeS4gVGhhdCBtZWFucyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGVpdGhlciBgQlJDTUZNQUNgIG9yIGBCUkNNRk1BQ19VU0JgIOKAkyBsaWtlbHkgdGhlIGVuY29tcGFzc2luZyBjb25maWd1cmF0aW9ucyB0aGF0IGhhbmRsZSBQMlAgZnVuY3Rpb25hbGl0eSBpbXBsaWNpdGx5LiBNeSBuZXh0IHN0ZXAgaXMgdG8gcXVpY2tseSBkZXRlcm1pbmUgdGhlIHJlYWNoYWJpbGl0eSBvZiB0aGUgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAgZnVuY3Rpb24gZnJvbSB0aGUgVVNCIHNpZGUuIEdpdmVuIGl0cyBuYW1lLCB0aGF0IGZ1bmN0aW9uIGlzIGFsbW9zdCBjZXJ0YWlubHkgYSBjb3JlIHBpZWNlIG9mIHRoZSBQMlAgcHV6emxlIHdpdGhpbiB0aGUgZHJpdmVyLiBBbmQganVkZ2luZyBieSB0aGUgbmFtaW5nIGNvbnZlbnRpb24sIGl0JiMzOTtzIGEgZ2VuZXJpYyBQMlAgZnVuY3Rpb24sIHByb2JhYmx5IGludm9rZWQgdGhyb3VnaCB0aGUgYGNmZzgwMjExYCBvcGVyYXRpb25zLCBhcyB0aG9zZSBhcmUgdGhlIHN0YW5kYXJkIGVudHJ5IHBvaW50cyBmb3IgdGhpcyBraW5kIG9mIGZ1bmN0aW9uYWxpdHkgaW4gdGhlIGtlcm5lbC4gVGhpcyBjb25maXJtcyBteSBpbml0aWFsIGh5cG90aGVzaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE3OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9NTUzMz1icmNtZl9jZmc4MDIxMV9tZ210X3R4KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtNTYzMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jOjU2MzI6XHRcdGFjayA9IGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSh2aWYtXHUwMDNlaWZwLCBhZl9wYXJhbXMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtNTYzMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM9MTY5NT1zdGF0aWMgYm9vbCBicmNtZl9wMnBfY2hlY2tfZHdlbGxfb3ZlcmZsb3codTMyIHJlcXVlc3RlZF9kd2VsbCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTcwNi0vKipcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYzoxNzA3OiAqIGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSgpIC0gc2VuZCBhY3Rpb24gZnJhbWUgLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE3MDgtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTcxMS0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYzoxNzEyOmJvb2wgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9pZiAqaWZwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE3MTMtXHRcdFx0XHQgc3RydWN0IGJyY21mX2ZpbF9hZl9wYXJhbXNfbGUgKmFmX3BhcmFtcylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmg9MTY5PWludCBicmNtZl9wMnBfbm90aWZ5X2FjdGlvbl90eF9jb21wbGV0ZShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmgtMTcxLVx0XHRcdFx0XHR2b2lkICpkYXRhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuaDoxNzI6Ym9vbCBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWUoc3RydWN0IGJyY21mX2lmICppZnAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmgtMTczLVx0XHRcdFx0IHN0cnVjdCBicmNtZl9maWxfYWZfcGFyYW1zX2xlICphZl9wYXJhbXMpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxNzowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NzQ5CgkJCQkJCQlvdXRwdXQ6IDU2CgkJCQkJCQl0aG91Z2h0czogMTgxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIE5ldHdvcmsgRHJpdmVyIENyYXNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNyYXNoIG9yaWdpbmF0aW5nIGZyb20gYGJyY21mX2NmZzgwMjExX21nbXRfdHhgLCB3aGljaCwgYXMgYSBjZmc4MDIxMSBjYWxsYmFjaywgbWVhbnMgaXQmIzM5O3MgdHJpZ2dlcmVkIGZyb20gdXNlcnNwYWNlIHRocm91Z2ggbmV0bGluayAoc3BlY2lmaWNhbGx5IG5sODAyMTEpLiBUaGUgcm9vdCBjYXVzZSBzZWVtcyB0byBiZSBhIGNsYXNzaWMgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlLCBzcGVjaWZpY2FsbHkgd2hlbiBhY2Nlc3NpbmcgYHAycC0mZ3Q7YnNzX2lkeFtQMlBBUElfQlNTQ0ZHX0RFVklDRV0udmlmYC4gVGhlIHByb3ZpZGVkIHBhdGNoIGFkZHJlc3NlcyB0aGlzIHdpdGggYSBzaW1wbGUgTlVMTCBjaGVjay4gVGhpcyBpcyBhIHNvbGlkLCBmdW5jdGlvbmFsIGZpeCBmb3IgYSBjcmFzaCwgYW5kIGdpdmVuIGl0cyBlbnRyeSBwb2ludCB0aHJvdWdoIG5sODAyMTEsIGl0JiMzOTtzIGRlZmluaXRlbHkgYSBwb2ludCBvZiBpbnRlcmVzdCBmb3IgZnV0dXJlIHNlY3VyaXR5IGFzc2Vzc21lbnRzLgoKTXkgaW1tZWRpYXRlIHRob3VnaHRzIGFyZSB0byBmb2N1cyBmdXp6aW5nIGVmZm9ydHMgb24gYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAgYW5kIHRoZSB0cmlnZ2VyaW5nIGZ1bmN0aW9uIGBicmNtZl9jZmc4MDIxMV9tZ210X3R4YC4gQnV0LCBvZiBjb3Vyc2UsIEkgbmVlZCB0byBleHBhbmQgbXkgc2NvcGUgLSBhcmUgdGhlcmUgb3RoZXIgcmVsYXRlZCBmdW5jdGlvbnMgaW4gdGhpcyBkcml2ZXIgdGhhdCBjb3VsZCBiZSBleHBvc2VkIHRvIHNpbWlsYXIgdnVsbmVyYWJpbGl0aWVzPyBMZXQmIzM5O3MgZGlnIGRlZXBlciBhbmQgc2VlIHdoYXQgb3RoZXIgYXR0YWNrIHN1cmZhY2VzIHdlIGhhdmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE3OjA1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX2NmZzgwMjExX21nbXRfdHgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jPTU1MzI9aW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzo1NTMzOmJyY21mX2NmZzgwMjExX21nbXRfdHgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTU1MzQtXHRcdCAgICAgICBzdHJ1Y3QgY2ZnODAyMTFfbWdtdF90eF9wYXJhbXMgKnBhcmFtcywgdTY0ICpjb29raWUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtNTY0NS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzo1NjQ2OkJSQ01GX0VYUE9SVF9TWU1CT0xfR1BMKGJyY21mX2NmZzgwMjExX21nbXRfdHgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtNTY0Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYz01OTgyPXN0YXRpYyBzdHJ1Y3QgY2ZnODAyMTFfb3BzIGJyY21mX2NmZzgwMjExX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy02MDE1LVx0XHRicmNtZl9jZmc4MDIxMV91cGRhdGVfbWdtdF9mcmFtZV9yZWdpc3RyYXRpb25zLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM6NjAxNjpcdC5tZ210X3R4ID0gYnJjbWZfY2ZnODAyMTFfbWdtdF90eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTYwMTctXHQuc2V0X2NxbV9yc3NpX3JhbmdlX2NvbmZpZyA9IGJyY21mX2NmZzgwMjExX3NldF9jcW1fcnNzaV9yYW5nZV9jb25maWcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmg9NDk4PWludCBicmNtZl9zZXRfd3NlYyhzdHJ1Y3QgYnJjbWZfaWYgKmlmcCwgY29uc3QgdTggKmtleSwgdTE2IGtleV9sZW4sIHUxNiBmbGFncyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuaDo0OTk6aW50IGJyY21mX2NmZzgwMjExX21nbXRfdHgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5oLTUwMC1cdFx0XHQgICBzdHJ1Y3QgY2ZnODAyMTFfbWdtdF90eF9wYXJhbXMgKnBhcmFtcywgdTY0ICpjb29raWUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jPTEwMj1pbnQgYnJjbWZfY3l3X21nbXRfdHgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0xMjMtXHRpZiAoIWllZWU4MDIxMV9pc19hdXRoKG1nbXQtXHUwMDNlZnJhbWVfY29udHJvbCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzoxMjQ6XHRcdHJldHVybiBicmNtZl9jZmc4MDIxMV9tZ210X3R4KHdpcGh5LCB3ZGV2LCBwYXJhbXMsIGNvb2tpZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0xMjUtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE3OjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcyMjEKCQkJCQkJCW91dHB1dDogNDkKCQkJCQkJCXRob3VnaHRzOiAxMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWxldmFudCBDb2RlIFBhdGhzKioKCk9rYXksIHNvIEkmIzM5O20gaG9uaW5nIGluIG9uIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIGFuZCBgYnJjbWZfY2ZnODAyMTFfbWdtdF90eGAgYXMgdGhlIGtleSBmdW5jdGlvbnMgdG8gaW52ZXN0aWdhdGUgZnVydGhlciDigJMgdGhleSBsb29rIGxpa2UgdGhlIHJpZ2h0IGVudHJ5IHBvaW50cyBmb3Igd2hhdCBJJiMzOTttIHRyeWluZyB0byBhY2hpZXZlLiBOb3csIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMuLi4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmUgYEJSQ01GTUFDYCBhbmQgYEJSQ01GTUFDX1VTQmAgZW5hYmxlZC4gSG1tLCBidXQgaXMganVzdCBgQlJDTUZNQUNfVVNCYCBzdWZmaWNpZW50IGluIHRoaXMgcGFydGljdWxhciBzY2VuYXJpbz8gSXQmIzM5O3Mgd29ydGggYSBkb3VibGUtY2hlY2suIEkmIzM5O2QgYmV0dGVyIGNvbmZpcm0gYW55IG90aGVyIHBvdGVudGlhbCBkZXBlbmRlbmNpZXMgZm9yIGBCUkNNRk1BQ2AuIEkga25vdyBJIG5lZWQgYENGRzgwMjExYCwgYnV0IHRoYXQmIzM5O3MgcHJldHR5IHN0YW5kYXJkLCBzbyBJJiMzOTtsbCBnbyBiYWNrIGFuZCBjaGVjayB0aGUgYEJSQ01GTUFDYCBkZXBlbmRlbmNpZXMgc3BlY2lmaWNhbGx5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxNzowNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQlJDTUZNQUMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoxOmNvbmZpZyBCUkNNRk1BQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMi1cdHRyaXN0YXRlIFwmIzM0O0Jyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjExOmNvbmZpZyBCUkNNRk1BQ19QUk9UT19CQ0RDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMi1cdGJvb2xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTQ6Y29uZmlnIEJSQ01GTUFDX1BST1RPX01TR0JVRlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTUtXHRib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjE3OmNvbmZpZyBCUkNNRk1BQ19TRElPXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xOC1cdGJvb2wgXCYjMzQ7U0RJTyBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoyOTpjb25maWcgQlJDTUZNQUNfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zMC1cdGJvb2wgXCYjMzQ7VVNCIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgRnVsbE1BQyBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjQwOmNvbmZpZyBCUkNNRk1BQ19QQ0lFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy00MS1cdGJvb2wgXCYjMzQ7UENJRSBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE3OjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgxODkKCQkJCQkJCW91dHB1dDogNTAKCQkJCQkJCXRob3VnaHRzOiAxNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKkRlY29uc3RydWN0aW5nIGBjb25maWcgQlJDTUZNQUNgKioKCk9rYXksIHNvIEkmIzM5O3ZlIGVuY291bnRlcmVkIGBjb25maWcgQlJDTUZNQUNgLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIGRyaWxsIGRvd24gYW5kIHVuZGVyc3RhbmQgcHJlY2lzZWx5IHdoYXQmIzM5O3MgYmVoaW5kIHRoaXMgbGFiZWwuIEl0JiMzOTtzIG9idmlvdXNseSBhIGNvbmZpZ3VyYXRpb24gc2V0dGluZywgbGlrZWx5IHJlbGF0ZWQgdG8gYSBCcm9hZGNvbSBGTUFDIChwcmVzdW1hYmx5IG1lYW5pbmcgJiMzNDtGcmVxdWVuY3kgTW9kdWxhdGlvbiBBY2Nlc3MgQ29udHJvbGxlciYjMzQ7KSBkcml2ZXIgb3IgbW9kdWxlLiBUaGlzIGNvdWxkIGJlIGluIHRoZSBjb250ZXh0IG9mIGEga2VybmVsIGJ1aWxkIHN5c3RlbSAobGlrZSBgbWFrZSBtZW51Y29uZmlnYCBvciBzaW1pbGFyKSwgYSBkZXZpY2UgZHJpdmVyIGZyYW1ld29yaywgb3IgZXZlbiBzb21lIGhpZ2hlci1sZXZlbCBjb25maWd1cmF0aW9uIHV0aWxpdHkuCgpNeSBpbml0aWFsIGFwcHJvYWNoIGlzIHRvIGdvIHN0cmFpZ2h0IGZvciB0aGUganVndWxhciDigJMgdGhlICpmdWxsKiBkZWZpbml0aW9uLiBJIG5lZWQgdG8gc2VlIHRoZSBjb250ZXh0LiBXaGF0IGlzIHRoaXMgYEJSQ01GTUFDYCBsaW5rZWQgdG8/IFdoYXQgYXJlIHRoZSBkZXBlbmRlbmNpZXM/IFdoZXJlIGlzIGl0IGRlZmluZWQ/IElzIGl0IGEgYm9vbGVhbiwgYSBzdHJpbmcsIGEgbnVtZXJpYyB2YWx1ZSwgb3Igc29tZXRoaW5nIG1vcmUgY29tcGxleD8gSSB3YW50IHRvIHNlZSB0aGUgY29uZGl0aW9uYWwgbG9naWMgYXJvdW5kIGl0IOKAkyB3aGF0IG90aGVyIHNldHRpbmdzIGVuYWJsZSBvciBkaXNhYmxlIGl0PyBBcmUgdGhlcmUgYW55IGFzc29jaWF0ZWQgc3ltYm9scyBvciB2YXJpYWJsZXM/IFdoYXQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlIHdpdGhpbiB0aGlzIGNvbmZpZ3VyYXRpb24gb3B0aW9uPyBVbmRlcnN0YW5kaW5nIHRoZSBjb21wbGV0ZSBzY29wZSBvZiB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5nIGlzIHRoZSBmaXJzdCBhbmQgdml0YWwgc3RlcCB0byB1bmRlcnN0YW5kaW5nIGl0cyBmdW5jdGlvbiwgZWZmZWN0LCBhbmQgcG9zc2libGUgaW1wYWN0cyBvbiB0aGUgc3lzdGVtIEkmIzM5O20gd29ya2luZyB3aXRoLiBJIG5lZWQgdG8gc2VlIHRoZSBlbnRpcmUgcGljdHVyZSwgbm90IGp1c3QgYSBzbmlwcGV0LiBGcm9tIHRoZXJlLCBJIGNhbiBiZWdpbiB0byB1bnBhY2sgdGhlIGltcGxpY2F0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTc6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdGNvbmZpZyBCUkNNRk1BQ1xuICAgMjpcdFx0dHJpc3RhdGUgXCYjMzQ7QnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlclwmIzM0O1xuICAgMzpcdFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxuICAgNDpcdFx0c2VsZWN0IEJSQ01VVElMXG4gICA1Olx0XHRoZWxwXG4gICA2Olx0XHQgIFRoaXMgbW9kdWxlIGFkZHMgc3VwcG9ydCBmb3Igd2lyZWxlc3MgYWRhcHRlcnMgYmFzZWQgb24gQnJvYWRjb21cbiAgIDc6XHRcdCAgRnVsbE1BQyBjaGlwc2V0cy4gSXQgaGFzIHRvIHdvcmsgd2l0aCBhdCBsZWFzdCBvbmUgb2YgdGhlIGJ1c1xuICAgODpcdFx0ICBpbnRlcmZhY2Ugc3VwcG9ydC4gSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQmIzM5O2xsIGJlIGNhbGxlZFxuICAgOTpcdFx0ICBicmNtZm1hYy5rby5cbiAgMTA6XHRcbiAgMTE6XHRjb25maWcgQlJDTUZNQUNfUFJPVE9fQkNEQ1xuICAxMjpcdFx0Ym9vbFxuICAxMzpcdFxuICAxNDpcdGNvbmZpZyBCUkNNRk1BQ19QUk9UT19NU0dCVUZcbiAgMTU6XHRcdGJvb2xcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTc6MDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODczNAoJCQkJCQkJb3V0cHV0OiAxMzYKCQkJCQkJCXRob3VnaHRzOiAyNzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgYGJyY21mbWFjYCBWdWxuZXJhYmlsaXR5KioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHZ1bG5lcmFiaWxpdHkgbmFpbGVkIGRvd24uIEl0IGxvb2tzIGxpa2UgdGhlIGNvcmUgaXNzdWUgcmV2b2x2ZXMgYXJvdW5kIGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIHdpdGhpbiB0aGUgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAgZnVuY3Rpb24uIFNwZWNpZmljYWxseSwgaXQmIzM5O3MgYWNjZXNzaW5nIGBwMnAtJmd0O2Jzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZmAgd2l0aG91dCBwcm9wZXIgY2hlY2tzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIHdoaWNoIGlzIGltcG9ydGFudCB0byByZW1lbWJlci4gVGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIHNlZW0gdG8gYmUgYEJSQ01GTUFDYCBhbmQgYEJSQ01GTUFDX1VTQmAuCgpUaGUgZXhjaXRpbmcgcGFydD8gVGhpcyBpcyAqZnV6emFibGUqLiBJIHdhcyBpbml0aWFsbHkgd29uZGVyaW5nIGlmIGBkdW1teV9oY2RgIGFjdHVhbGx5IGxvYWRlZCBgYnJjbWZtYWNgLCBidXQgdGhlbiBJIHJlbWVtYmVyZWQgdGhhdCBzeXprYWxsZXImIzM5O3MgVVNCIGZ1enplciBjYW4gZW11bGF0ZSBhbnkgVVNCIGRldmljZSwgaW5jbHVkaW5nIHRoaXMgZHJpdmVyLiBUaGlzIG1lYW5zIHdlIGhhdmUgYSB2aWFibGUgZnV6emluZyB0YXJnZXQuCgpMZXQmIzM5O3MgcHVsbCBhbGwgdGhpcyB0b2dldGhlciBzdWNjaW5jdGx5IGZvciBteSBhbmFseXNpczoKCiogICAqKldvcnRoRnV6emluZyoqOiBBYnNvbHV0ZWx5LCB5ZXMuCiogICAqKkZvY3VzIFN5bWJvbHMqKjogSSYjMzk7bSBnb2luZyB0byBrZWVwIGEgY2xvc2UgZXllIG9uIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIGFuZCBhbHNvIGBicmNtZl9jZmc4MDIxMV9tZ210X3R4YCBhcyBpdCYjMzk7cyBsaWtlbHkgYSBjYWxsIGNoYWluIGZvciB0aGlzIHZ1bG5lcmFiaWxpdHkuCiogICAqKkVuYWJsZUNvbmZpZ3MqKjogV2UmIzM5O2xsIG5lZWQgYEJSQ01GTUFDYCBhbmQgYEJSQ01GTUFDX1VTQmAgZW5hYmxlZC4KKiAgICoqUmVhc29uaW5nKio6IFRoZSBjcnV4IG9mIHRoZSBpc3N1ZSBpcyBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlciwgc3BlY2lmaWNhbGx5IHdoZW4gdGhlIGRyaXZlciBpcyBzZW5kaW5nIFAyUCBhY3Rpb24gZnJhbWVzLiBDcnVjaWFsbHksIHRoZSBkcml2ZXIgaXMgZnV6emFibGUgdmlhIFVTQiBlbXVsYXRpb24gKHRoYW5rcyB0byBzeXprYWxsZXImIzM5O3MgY2FwYWJpbGl0aWVzKSwgYW5kIHRoZSB2dWxuZXJhYmxlIGZ1bmN0aW9uIGlzIHJlYWNoYWJsZSB0aHJvdWdoIG5sODAyMTEgbWFuYWdlbWVudCBmcmFtZSB0cmFuc21pc3Npb24uIFRoaXMgc2VlbXMgbGlrZSBhIGdyZWF0IGNhbmRpZGF0ZSBmb3IgZnVydGhlciBpbnZlc3RpZ2F0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxNzowNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlJDTUZNQUMmIzM0OywKICAgICYjMzQ7QlJDTUZNQUNfVVNCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lJiMzNDssCiAgICAmIzM0O2JyY21mX2NmZzgwMjExX21nbXRfdHgmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdGhlIEJyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXIgKGJyY21mbWFjKSB3aGVuIHNlbmRpbmcgUDJQIGFjdGlvbiBmcmFtZXMuIFRoZSBkcml2ZXIgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbiwgYW5kIHRoZSBtb2RpZmllZCBmdW5jdGlvbiBpcyByZWFjaGFibGUgdmlhIG5sODAyMTEgbWFuYWdlbWVudCBmcmFtZSB0cmFuc21pc3Npb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JSQ01GTUFDJiMzNDssCiAgICAmIzM0O0JSQ01GTUFDX1VTQiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSYjMzQ7LAogICAgJiMzNDticmNtZl9jZmc4MDIxMV9tZ210X3R4JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyIChicmNtZm1hYykgd2hlbiBzZW5kaW5nIFAyUCBhY3Rpb24gZnJhbWVzLiBUaGUgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24sIGFuZCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24gaXMgcmVhY2hhYmxlIHZpYSBubDgwMjExIG1hbmFnZW1lbnQgZnJhbWUgdHJhbnNtaXNzaW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMDhUMTc6MDE6NDEuMjY4NDYyNzk1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjE2OTIwMzQ1MzY4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJSQ01GTUFDXCIsXG4gICAgXCJCUkNNRk1BQ19VU0JcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVcIixcbiAgICBcImJyY21mX2NmZzgwMjExX21nbXRfdHhcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlciAoYnJjbWZtYWMpIHdoZW4gc2VuZGluZyBQMlAgYWN0aW9uIGZyYW1lcy4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uLCBhbmQgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uIGlzIHJlYWNoYWJsZSB2aWEgbmw4MDIxMSBtYW5hZ2VtZW50IGZyYW1lIHRyYW5zbWlzc2lvbi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTc6MDE6NDEuMjY4NDcxNTk1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MzcyNzg1MTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBlN2JiMDU0MGY0YjI3OWY3MDgzZGExZDVhY2MwZDY3ZDBiYWMxZDQ5XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVsIDggMTc6MDE6MzkgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jXFxuaW5kZXggOTJjMTZhMzE3MzI4OGIuLmJiZGViZjRjMjAxMGUxIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuY1xcbkBAIC0xODE5LDYgKzE4MTksNyBAQCBib29sIGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcXG4gXFx0LyogdmFsaWRhdGUgY2hhbm5lbCBhbmQgcDJwIGllcyAqL1xcbiBcXHRpZiAoY29uZmlnX2FmX3BhcmFtcy5zZWFyY2hfY2hhbm5lbCBcXHUwMDI2XFx1MDAyNlxcbiBcXHQgICAgSVNfUDJQX1NPQ0lBTF9DSEFOTkVMKGxlMzJfdG9fY3B1KGFmX3BhcmFtcy1cXHUwMDNlY2hhbm5lbCkpIFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICBwMnAtXFx1MDAzZWJzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZiBcXHUwMDI2XFx1MDAyNlxcbiBcXHQgICAgcDJwLVxcdTAwM2Vic3NfaWR4W1AyUEFQSV9CU1NDRkdfREVWSUNFXS52aWYtXFx1MDAzZXNhdmVkX2llLnByb2JlX3JlcV9pZV9sZW4pIHtcXG4gXFx0XFx0YWZ4X2hkbCA9IFxcdTAwMjZwMnAtXFx1MDAzZWFmeF9oZGw7XFxuIFxcdFxcdGFmeF9oZGwtXFx1MDAzZXBlZXJfbGlzdGVuX2NoYW4gPSBsZTMyX3RvX2NwdShhZl9wYXJhbXMtXFx1MDAzZWNoYW5uZWwpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNzowMTo0MS45MDYzNjQ0MTJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIxNjI4MjQyNjk0MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUkNNRk1BQ1wiLFxuICAgIFwiQlJDTUZNQUNfVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lXCIsXG4gICAgXCJicmNtZl9jZmc4MDIxMV9tZ210X3R4XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdGhlIEJyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXIgKGJyY21mbWFjKSB3aGVuIHNlbmRpbmcgUDJQIGFjdGlvbiBmcmFtZXMuIFRoZSBkcml2ZXIgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbiwgYW5kIHRoZSBtb2RpZmllZCBmdW5jdGlvbiBpcyByZWFjaGFibGUgdmlhIG5sODAyMTEgbWFuYWdlbWVudCBmcmFtZSB0cmFuc21pc3Npb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZTdiYjA1NDBmNGIyNzlmNzA4M2RhMWQ1YWNjMGQ2N2QwYmFjMWQ0OVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDggMTc6MDE6MzkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmNcbmluZGV4IDkyYzE2YTMxNzMyODhiLi5iYmRlYmY0YzIwMTBlMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jXG5AQCAtMTgxOSw2ICsxODE5LDcgQEAgYm9vbCBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWUoc3RydWN0IGJyY21mX2lmICppZnAsXG4gXHQvKiB2YWxpZGF0ZSBjaGFubmVsIGFuZCBwMnAgaWVzICovXG4gXHRpZiAoY29uZmlnX2FmX3BhcmFtcy5zZWFyY2hfY2hhbm5lbCBcdTAwMjZcdTAwMjZcbiBcdCAgICBJU19QMlBfU09DSUFMX0NIQU5ORUwobGUzMl90b19jcHUoYWZfcGFyYW1zLVx1MDAzZWNoYW5uZWwpKSBcdTAwMjZcdTAwMjZcbitcdCAgICBwMnAtXHUwMDNlYnNzX2lkeFtQMlBBUElfQlNTQ0ZHX0RFVklDRV0udmlmIFx1MDAyNlx1MDAyNlxuIFx0ICAgIHAycC1cdTAwM2Vic3NfaWR4W1AyUEFQSV9CU1NDRkdfREVWSUNFXS52aWYtXHUwMDNlc2F2ZWRfaWUucHJvYmVfcmVxX2llX2xlbikge1xuIFx0XHRhZnhfaGRsID0gXHUwMDI2cDJwLVx1MDAzZWFmeF9oZGw7XG4gXHRcdGFmeF9oZGwtXHUwMDNlcGVlcl9saXN0ZW5fY2hhbiA9IGxlMzJfdG9fY3B1KGFmX3BhcmFtcy1cdTAwM2VjaGFubmVsKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDE3OjAxOjQxLjkwNjM2NjEzMloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2ODg0MTQyMTQxNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBXaUZpIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmNgLiBJdCdzIGEgc2ltcGxlIE5VTEwgY2hlY2sg4oCTIGBwMnAtXHUwMDNlYnNzX2lkeFtQMlBBUElfQlNTQ0ZHX0RFVklDRV0udmlmYCBiZWZvcmUgZGVyZWZlcmVuY2luZy4gQWx3YXlzIGEgZ29vZCBwcmFjdGljZSwgYnV0IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0LiBUaGlzIGlzIGluIHRoZSBicmNtZm1hYyBkcml2ZXIsIGFuZCBteSBpbW1lZGlhdGUgdGhvdWdodCBpcyBhYm91dCBmdXp6aW5nLiBJcyB0aGlzIGEgY29kZSBwYXRoIHdlIGNhbiByZWFjaCB3aXRoIGZ1enppbmc/XG5cbkkgbmVlZCB0byBsb29rIGF0IGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIGluIHRoZSBzYW1lIGZpbGUuIEkga25vdyB0aGUgYnJjbWZtYWMgZHJpdmVyIGZhaXJseSB3ZWxsLCBpdOKAmXMgYSBCcm9hZGNvbSBGdWxsTUFDIGRyaXZlci4gSXQgdHlwaWNhbGx5IHJlcXVpcmVzIHNwZWNpZmljIGhhcmR3YXJlLCBTRElPLCBVU0Igb3IgUENJZSBlbXVsYXRpb24sIHdoaWNoIHByZXNlbnRzIGEgY2hhbGxlbmdlIGZvciB0cmFkaXRpb25hbCBmdXp6aW5nIG1ldGhvZHMuIEkga25vdyB3ZSBjYW4gc2ltdWxhdGUgbWFjODAyMTEgd2l0aCBgbWFjODAyMTFfaHdzaW1gLCBidXQgdGhpcyBpcyBhIHNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciwgYW5kIGVtdWxhdGlvbiBjYW4gYmUgdHJpY2t5LlxuXG5XYWl0LCBicmNtZm1hYyBzdXBwb3J0cyBVU0IhIFdlIGhhdmUgVVNCIGZ1enppbmcgYWxyZWFkeSwgdXNpbmcgYGR1bW15X2hjZGAuIFRoaXMgaXMgaW50ZXJlc3RpbmcuIEknbGwgbmVlZCB0byBjaGVjayBpZiBicmNtZm1hYyB1c2VzIHRoZSBVU0IgaW50ZXJmYWNlIGFuZCBpZiB0aGlzIGBwMnAuY2AgY29kZSBpcyByZWFjaGFibGUgdGhyb3VnaCBhIFVTQiBwYXRoLiBUaGlzIG1pZ2h0IG9wZW4gdXAgYSBuZXcgZnV6emluZyBhbmdsZS4gVGhpcyBudWxsIGNoZWNrIGNvdWxkIGJlIGEgY3JpdGljYWwgcG9pbnQsIGFuZCBwb3RlbnRpYWxseSByZWFjaGFibGUuIEkgbmVlZCB0byBkaWcgZGVlcGVyIGludG8gdGhlIFVTQiBzaWRlIG9mIHRoaXMgZHJpdmVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTk0LCJPdXRwdXRUb2tlbnMiOjQ4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTc6MDQ6MzAuNzQ3NzkxMzk4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMTIzMjU1OTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnJjbWZtYWNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc9MT1jb25maWcgQlJDTUZNQUNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTgtXFx0ICBpbnRlcmZhY2Ugc3VwcG9ydC4gSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQnbGwgYmUgY2FsbGVkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6OTpcXHQgIGJyY21mbWFjLmtvLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTEwLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNzowNDozMi45NjAxMzYyODJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjQ4MDMzODc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqSW5pdGlhbCBBc3Nlc3NtZW50OiBVU0IgQ2FwYWJpbGl0aWVzKipcblxuUmlnaHQsIHNvIGJlZm9yZSBJIGRpdmUgaW4gdG9vIGRlZXAsIEkgbmVlZCB0byBpbW1lZGlhdGVseSBhc2NlcnRhaW4gdGhlIFVTQiBzaXR1YXRpb24uIEl0J3MgYWxtb3N0IGZvdW5kYXRpb25hbCBpbiBteSBsaW5lIG9mIHdvcmsuIERvZXMgdGhpcyBpbXBsZW1lbnQgVVNCIGZ1bmN0aW9uYWxpdHk/IEknbSBub3QgbG9va2luZyBmb3IgYW4gZXhoYXVzdGl2ZSBsaXN0IG9mIGFsbCBpdHMgcHJvdG9jb2xzLCBidXQgcmF0aGVyLCBJIG5lZWQgdG8ga25vdyAqaWYqIGl0J3MgdGhlcmUgYXQgYWxsLiBJdCdzIGEga2V5IGF0dHJpYnV0ZSBmb3IgaW50ZWdyYXRpb24uIEtub3dpbmcgdGhpcyB3aWxsIGltbWVkaWF0ZWx5IGluZm9ybSB0aGUgc3Vic2VxdWVudCBzdGVwcyBvZiBldmFsdWF0aW9uLiBJdCBpbXBhY3RzIGV2ZXJ5dGhpbmcgZnJvbSBpbml0aWFsIGRhdGEgdHJhbnNmZXIgdG8gZmlybXdhcmUgdXBkYXRlcywgYW5kIHRoZSBwb3RlbnRpYWwgZm9yIGN1c3RvbSBjb25maWd1cmF0aW9ucy4gQSBsYWNrIG9mIFVTQiBtZWFucyBhIHNpZ25pZmljYW50bHkgZGlmZmVyZW50IGFyY2hpdGVjdHVyYWwgYXBwcm9hY2ggZnJvbSB0aGUgb3V0c2V0LiBTbywgaXMgdGhlcmUgVVNCIHN1cHBvcnQgb3Igbm90PyBUaGF0J3MgdGhlIGZpcnN0IHF1ZXN0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODA1LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTc6MDQ6MzYuMjA4MTcyMzhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTYyOTYwNzQxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlVTQlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZz0xNz1jb25maWcgQlJDTUZNQUNfU0RJT1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6Mjk6Y29uZmlnIEJSQ01GTUFDX1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjMwOlxcdGJvb2wgXFxcIlVTQiBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjMxOlxcdGRlcGVuZHMgb24gKFVTQiA9IHkgfHwgVVNCID0gQlJDTUZNQUMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMzItXFx0ZGVwZW5kcyBvbiBCUkNNRk1BQ1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMzUtXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjM2OlxcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgVVNCIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgQnJvYWRjb21cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zNy1cXHQgIElFRUU4MDIuMTFuIGVtYmVkZGVkIEZ1bGxNQUMgV0xBTiBkcml2ZXIuIFNheSBZIGlmIHlvdSB3YW50IHRvXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6Mzg6XFx0ICB1c2UgdGhlIGRyaXZlciBmb3IgYW4gVVNCIHdpcmVsZXNzIGNhcmQuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMzktXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDE3OjA0OjM2LjM3MTE0MTMwMVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxMDYwNDc3NzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgVVNCIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgc28gdGhlIGluaXRpYWwgYXNzZXNzbWVudCBpcyBwb3NpdGl2ZS4gSXQgZGVmaW5pdGVseSBzdXBwb3J0cyBVU0IgKGBCUkNNRk1BQ19VU0JgKSwgd2hpY2ggaXMgYSBrZXkgcmVxdWlyZW1lbnQuIFRoaXMgb3BlbnMgdXAgdGhlIHBvc3NpYmlsaXR5IG9mIGV4cGxvaXRpbmcgdnVsbmVyYWJpbGl0aWVzIHRocm91Z2ggVVNCIGZ1enppbmcsIHdoaWNoIGlzIGEgY29tbW9uIGFuZCBvZnRlbiBlZmZlY3RpdmUgYXBwcm9hY2guIFRoZSBmdW5jdGlvbiBvZiBpbnRlcmVzdCBoZXJlIGlzIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgLiBOb3csIGxldCdzIGxvY2F0ZSB0aGUgcmVsZXZhbnQgS2NvbmZpZyBmaWxlIGZvciBgYnJjbWZtYWNgLiBVbmRlcnN0YW5kaW5nIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgd2lsbCBiZSBjcnVjaWFsIGZvciBkZXRlcm1pbmluZyB0aGUgc3BlY2lmaWMgZmVhdHVyZXMgZW5hYmxlZCBhbmQgdGh1cywgdGhlIGF0dGFjayBzdXJmYWNlLiBUaGlzIHdpbGwgaW52b2x2ZSBwaW5wb2ludGluZyB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgYW5kIGRlcGVuZGVuY2llcyB3aGljaCB3aWxsIGFsbG93IG1lIHRvIGNyZWF0ZSBhbiBlZmZlY3RpdmUgZnV6emluZyBjYW1wYWlnbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQ2MiwiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDE3OjA0OjM5LjQ3NzE5MjkwNVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzkxOTE5NDEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEJSQ01GTUFDXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjE6Y29uZmlnIEJSQ01GTUFDXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMi1cXHR0cmlzdGF0ZSBcXFwiQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTEwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjExOmNvbmZpZyBCUkNNRk1BQ19QUk9UT19CQ0RDXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTItXFx0Ym9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjE0OmNvbmZpZyBCUkNNRk1BQ19QUk9UT19NU0dCVUZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xNS1cXHRib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTc6Y29uZmlnIEJSQ01GTUFDX1NESU9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xOC1cXHRib29sIFxcXCJTRElPIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgRnVsbE1BQyBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0yOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoyOTpjb25maWcgQlJDTUZNQUNfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMzAtXFx0Ym9vbCBcXFwiVVNCIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgRnVsbE1BQyBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzo0MDpjb25maWcgQlJDTUZNQUNfUENJRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTQxLVxcdGJvb2wgXFxcIlBDSUUgYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTc6MDQ6MzkuOTE2MzkxOTA2WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQ3MjQ4MTk2OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJ20gdGhpbmtpbmcgdGhyb3VnaCB0aGlzIHByb2Nlc3M6XG5cbioqRGl2aW5nIGludG8gdGhlIGJyY21mbWFjIFAyUCBJbXBsZW1lbnRhdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZSBgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lYCBmdW5jdGlvbi4gVGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludCBmb3IgdW5kZXJzdGFuZGluZyBob3cgUDJQIGFjdGlvbiBmcmFtZXMgYXJlIGhhbmRsZWQgaW4gdGhpcyBCcm9hZGNvbSBkcml2ZXIuIEkga25vdyBpdCdzIGxvY2F0ZWQgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmNgLCBzbyBJJ2xsIG5lZWQgdG8gb3BlbiB0aGF0IGZpbGUuIE5vdywgZ2l2ZW4gbXkgZXhwZXJpZW5jZSB3aXRoIHRoaXMgdHlwZSBvZiBkcml2ZXIsIG15IGltbWVkaWF0ZSBuZXh0IHN0ZXAgaXMgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gUDJQIHdpdGhpbiB0aGUgYnJjbWZtYWMgZnJhbWV3b3JrIGl0c2VsZi4gSSdsbCBuZWVkIHRvIGV4cGxvcmUgYW55IGNvbmZpZ3VyYXRpb24gZmlsZXMgb3Iga2VybmVsIGJ1aWxkIG9wdGlvbnMgdG8gaWRlbnRpZnkgYW55IHJlbGV2YW50IHNldHRpbmdzLiBJIHN1c3BlY3QgdGhhdCB0aGVyZSBtaWdodCBiZSBzb21lIHRoYXQgYXJlIHJlbGV2YW50LCBnaXZlbiB0aGUgc3BlY2lhbGl6ZWQgbmF0dXJlIG9mIFAyUC4gVGltZSB0byBkaWcgaW4hXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQzMjYsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNzowNDo0My4zODg4Nzc4NTRaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5NzI3MjE3NSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiUDJQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNzowNDo0My41ODYxNjU0OTlaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDA4MTYzMzc2OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkFuYWx5emluZyB0aGUgUDJQIENvbmZpZ3VyYXRpb24gTGFuZHNjYXBlKipcblxuQWxyaWdodCwgc28gdGhlcmUncyBubyBleHBsaWNpdGx5IGRlZmluZWQgXCJQMlAgY29uZmlnXCIgSSBjYW4gaW1tZWRpYXRlbHkgaWRlbnRpZnkuIFRoYXQgbWVhbnMgd2UncmUgZGVhbGluZyB3aXRoIGVpdGhlciBgQlJDTUZNQUNgIG9yIGBCUkNNRk1BQ19VU0JgIOKAkyBsaWtlbHkgdGhlIGVuY29tcGFzc2luZyBjb25maWd1cmF0aW9ucyB0aGF0IGhhbmRsZSBQMlAgZnVuY3Rpb25hbGl0eSBpbXBsaWNpdGx5LiBNeSBuZXh0IHN0ZXAgaXMgdG8gcXVpY2tseSBkZXRlcm1pbmUgdGhlIHJlYWNoYWJpbGl0eSBvZiB0aGUgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAgZnVuY3Rpb24gZnJvbSB0aGUgVVNCIHNpZGUuIEdpdmVuIGl0cyBuYW1lLCB0aGF0IGZ1bmN0aW9uIGlzIGFsbW9zdCBjZXJ0YWlubHkgYSBjb3JlIHBpZWNlIG9mIHRoZSBQMlAgcHV6emxlIHdpdGhpbiB0aGUgZHJpdmVyLiBBbmQganVkZ2luZyBieSB0aGUgbmFtaW5nIGNvbnZlbnRpb24sIGl0J3MgYSBnZW5lcmljIFAyUCBmdW5jdGlvbiwgcHJvYmFibHkgaW52b2tlZCB0aHJvdWdoIHRoZSBgY2ZnODAyMTFgIG9wZXJhdGlvbnMsIGFzIHRob3NlIGFyZSB0aGUgc3RhbmRhcmQgZW50cnkgcG9pbnRzIGZvciB0aGlzIGtpbmQgb2YgZnVuY3Rpb25hbGl0eSBpbiB0aGUga2VybmVsLiBUaGlzIGNvbmZpcm1zIG15IGluaXRpYWwgaHlwb3RoZXNpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDY2NywiT3V0cHV0VG9rZW5zIjo1NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDE3OjA0OjQ3LjY2NzgwMzI3OFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzMyNTcyMzQxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jPTU1MzM9YnJjbWZfY2ZnODAyMTFfbWdtdF90eChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtNTYzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzo1NjMyOlxcdFxcdGFjayA9IGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSh2aWYtXFx1MDAzZWlmcCwgYWZfcGFyYW1zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy01NjMzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jPTE2OTU9c3RhdGljIGJvb2wgYnJjbWZfcDJwX2NoZWNrX2R3ZWxsX292ZXJmbG93KHUzMiByZXF1ZXN0ZWRfZHdlbGwsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTcwNi0vKipcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTcwNzogKiBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWUoKSAtIHNlbmQgYWN0aW9uIGZyYW1lIC5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTcwOC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE3MTEtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jOjE3MTI6Ym9vbCBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWUoc3RydWN0IGJyY21mX2lmICppZnAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE3MTMtXFx0XFx0XFx0XFx0IHN0cnVjdCBicmNtZl9maWxfYWZfcGFyYW1zX2xlICphZl9wYXJhbXMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmg9MTY5PWludCBicmNtZl9wMnBfbm90aWZ5X2FjdGlvbl90eF9jb21wbGV0ZShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuaC0xNzEtXFx0XFx0XFx0XFx0XFx0dm9pZCAqZGF0YSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5oOjE3Mjpib29sIGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmgtMTczLVxcdFxcdFxcdFxcdCBzdHJ1Y3QgYnJjbWZfZmlsX2FmX3BhcmFtc19sZSAqYWZfcGFyYW1zKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTc6MDQ6NDguMDAwMzgzMzE4WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE1NDE2NDU4ODQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE5ldHdvcmsgRHJpdmVyIENyYXNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBjcmFzaCBvcmlnaW5hdGluZyBmcm9tIGBicmNtZl9jZmc4MDIxMV9tZ210X3R4YCwgd2hpY2gsIGFzIGEgY2ZnODAyMTEgY2FsbGJhY2ssIG1lYW5zIGl0J3MgdHJpZ2dlcmVkIGZyb20gdXNlcnNwYWNlIHRocm91Z2ggbmV0bGluayAoc3BlY2lmaWNhbGx5IG5sODAyMTEpLiBUaGUgcm9vdCBjYXVzZSBzZWVtcyB0byBiZSBhIGNsYXNzaWMgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlLCBzcGVjaWZpY2FsbHkgd2hlbiBhY2Nlc3NpbmcgYHAycC1cdTAwM2Vic3NfaWR4W1AyUEFQSV9CU1NDRkdfREVWSUNFXS52aWZgLiBUaGUgcHJvdmlkZWQgcGF0Y2ggYWRkcmVzc2VzIHRoaXMgd2l0aCBhIHNpbXBsZSBOVUxMIGNoZWNrLiBUaGlzIGlzIGEgc29saWQsIGZ1bmN0aW9uYWwgZml4IGZvciBhIGNyYXNoLCBhbmQgZ2l2ZW4gaXRzIGVudHJ5IHBvaW50IHRocm91Z2ggbmw4MDIxMSwgaXQncyBkZWZpbml0ZWx5IGEgcG9pbnQgb2YgaW50ZXJlc3QgZm9yIGZ1dHVyZSBzZWN1cml0eSBhc3Nlc3NtZW50cy5cblxuTXkgaW1tZWRpYXRlIHRob3VnaHRzIGFyZSB0byBmb2N1cyBmdXp6aW5nIGVmZm9ydHMgb24gYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAgYW5kIHRoZSB0cmlnZ2VyaW5nIGZ1bmN0aW9uIGBicmNtZl9jZmc4MDIxMV9tZ210X3R4YC4gQnV0LCBvZiBjb3Vyc2UsIEkgbmVlZCB0byBleHBhbmQgbXkgc2NvcGUgLSBhcmUgdGhlcmUgb3RoZXIgcmVsYXRlZCBmdW5jdGlvbnMgaW4gdGhpcyBkcml2ZXIgdGhhdCBjb3VsZCBiZSBleHBvc2VkIHRvIHNpbWlsYXIgdnVsbmVyYWJpbGl0aWVzPyBMZXQncyBkaWcgZGVlcGVyIGFuZCBzZWUgd2hhdCBvdGhlciBhdHRhY2sgc3VyZmFjZXMgd2UgaGF2ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTc0OSwiT3V0cHV0VG9rZW5zIjo1NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNzowNTowMy40MTY4NDc2MzhaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQwMjczMjk0NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9jZmc4MDIxMV9tZ210X3R4XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9NTUzMj1pbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzo1NTMzOmJyY21mX2NmZzgwMjExX21nbXRfdHgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy01NTM0LVxcdFxcdCAgICAgICBzdHJ1Y3QgY2ZnODAyMTFfbWdtdF90eF9wYXJhbXMgKnBhcmFtcywgdTY0ICpjb29raWUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy01NjQ1LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzo1NjQ2OkJSQ01GX0VYUE9SVF9TWU1CT0xfR1BMKGJyY21mX2NmZzgwMjExX21nbXRfdHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTU2NDctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYz01OTgyPXN0YXRpYyBzdHJ1Y3QgY2ZnODAyMTFfb3BzIGJyY21mX2NmZzgwMjExX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTYwMTUtXFx0XFx0YnJjbWZfY2ZnODAyMTFfdXBkYXRlX21nbXRfZnJhbWVfcmVnaXN0cmF0aW9ucyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzo2MDE2OlxcdC5tZ210X3R4ID0gYnJjbWZfY2ZnODAyMTFfbWdtdF90eCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy02MDE3LVxcdC5zZXRfY3FtX3Jzc2lfcmFuZ2VfY29uZmlnID0gYnJjbWZfY2ZnODAyMTFfc2V0X2NxbV9yc3NpX3JhbmdlX2NvbmZpZyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5oPTQ5OD1pbnQgYnJjbWZfc2V0X3dzZWMoc3RydWN0IGJyY21mX2lmICppZnAsIGNvbnN0IHU4ICprZXksIHUxNiBrZXlfbGVuLCB1MTYgZmxhZ3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5oOjQ5OTppbnQgYnJjbWZfY2ZnODAyMTFfbWdtdF90eChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5oLTUwMC1cXHRcXHRcXHQgICBzdHJ1Y3QgY2ZnODAyMTFfbWdtdF90eF9wYXJhbXMgKnBhcmFtcywgdTY0ICpjb29raWUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM9MTAyPWludCBicmNtZl9jeXdfbWdtdF90eChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMTIzLVxcdGlmICghaWVlZTgwMjExX2lzX2F1dGgobWdtdC1cXHUwMDNlZnJhbWVfY29udHJvbCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM6MTI0OlxcdFxcdHJldHVybiBicmNtZl9jZmc4MDIxMV9tZ210X3R4KHdpcGh5LCB3ZGV2LCBwYXJhbXMsIGNvb2tpZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMTI1LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNzowNTowMy44MTk1ODc0MDZaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzkxNDU5ODAwMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFJlbGV2YW50IENvZGUgUGF0aHMqKlxuXG5Pa2F5LCBzbyBJJ20gaG9uaW5nIGluIG9uIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIGFuZCBgYnJjbWZfY2ZnODAyMTFfbWdtdF90eGAgYXMgdGhlIGtleSBmdW5jdGlvbnMgdG8gaW52ZXN0aWdhdGUgZnVydGhlciDigJMgdGhleSBsb29rIGxpa2UgdGhlIHJpZ2h0IGVudHJ5IHBvaW50cyBmb3Igd2hhdCBJJ20gdHJ5aW5nIHRvIGFjaGlldmUuIE5vdywgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4uLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgaGF2ZSBgQlJDTUZNQUNgIGFuZCBgQlJDTUZNQUNfVVNCYCBlbmFibGVkLiBIbW0sIGJ1dCBpcyBqdXN0IGBCUkNNRk1BQ19VU0JgIHN1ZmZpY2llbnQgaW4gdGhpcyBwYXJ0aWN1bGFyIHNjZW5hcmlvPyBJdCdzIHdvcnRoIGEgZG91YmxlLWNoZWNrLiBJJ2QgYmV0dGVyIGNvbmZpcm0gYW55IG90aGVyIHBvdGVudGlhbCBkZXBlbmRlbmNpZXMgZm9yIGBCUkNNRk1BQ2AuIEkga25vdyBJIG5lZWQgYENGRzgwMjExYCwgYnV0IHRoYXQncyBwcmV0dHkgc3RhbmRhcmQsIHNvIEknbGwgZ28gYmFjayBhbmQgY2hlY2sgdGhlIGBCUkNNRk1BQ2AgZGVwZW5kZW5jaWVzIHNwZWNpZmljYWxseS5cblxuXG4iLCJJbnB1dFRva2VucyI6NzIyMSwiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNzowNTowNy43MzQxODg4ODVaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NTQwNDMxNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQlJDTUZNQUNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTpjb25maWcgQlJDTUZNQUNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0yLVxcdHRyaXN0YXRlIFxcXCJCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTE6Y29uZmlnIEJSQ01GTUFDX1BST1RPX0JDRENcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMi1cXHRib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTQ6Y29uZmlnIEJSQ01GTUFDX1BST1RPX01TR0JVRlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE1LVxcdGJvb2xcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoxNzpjb25maWcgQlJDTUZNQUNfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE4LVxcdGJvb2wgXFxcIlNESU8gYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjI5OmNvbmZpZyBCUkNNRk1BQ19VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zMC1cXHRib29sIFxcXCJVU0IgYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTM5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjQwOmNvbmZpZyBCUkNNRk1BQ19QQ0lFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctNDEtXFx0Ym9vbCBcXFwiUENJRSBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNzowNTowNy45MTk2MDExMDJaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzgxMDAyMTc5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipEZWNvbnN0cnVjdGluZyBgY29uZmlnIEJSQ01GTUFDYCoqXG5cbk9rYXksIHNvIEkndmUgZW5jb3VudGVyZWQgYGNvbmZpZyBCUkNNRk1BQ2AuIE15IGZpcnN0IHRob3VnaHQgaXMgdG8gZHJpbGwgZG93biBhbmQgdW5kZXJzdGFuZCBwcmVjaXNlbHkgd2hhdCdzIGJlaGluZCB0aGlzIGxhYmVsLiBJdCdzIG9idmlvdXNseSBhIGNvbmZpZ3VyYXRpb24gc2V0dGluZywgbGlrZWx5IHJlbGF0ZWQgdG8gYSBCcm9hZGNvbSBGTUFDIChwcmVzdW1hYmx5IG1lYW5pbmcgXCJGcmVxdWVuY3kgTW9kdWxhdGlvbiBBY2Nlc3MgQ29udHJvbGxlclwiKSBkcml2ZXIgb3IgbW9kdWxlLiBUaGlzIGNvdWxkIGJlIGluIHRoZSBjb250ZXh0IG9mIGEga2VybmVsIGJ1aWxkIHN5c3RlbSAobGlrZSBgbWFrZSBtZW51Y29uZmlnYCBvciBzaW1pbGFyKSwgYSBkZXZpY2UgZHJpdmVyIGZyYW1ld29yaywgb3IgZXZlbiBzb21lIGhpZ2hlci1sZXZlbCBjb25maWd1cmF0aW9uIHV0aWxpdHkuXG5cbk15IGluaXRpYWwgYXBwcm9hY2ggaXMgdG8gZ28gc3RyYWlnaHQgZm9yIHRoZSBqdWd1bGFyIOKAkyB0aGUgKmZ1bGwqIGRlZmluaXRpb24uIEkgbmVlZCB0byBzZWUgdGhlIGNvbnRleHQuIFdoYXQgaXMgdGhpcyBgQlJDTUZNQUNgIGxpbmtlZCB0bz8gV2hhdCBhcmUgdGhlIGRlcGVuZGVuY2llcz8gV2hlcmUgaXMgaXQgZGVmaW5lZD8gSXMgaXQgYSBib29sZWFuLCBhIHN0cmluZywgYSBudW1lcmljIHZhbHVlLCBvciBzb21ldGhpbmcgbW9yZSBjb21wbGV4PyBJIHdhbnQgdG8gc2VlIHRoZSBjb25kaXRpb25hbCBsb2dpYyBhcm91bmQgaXQg4oCTIHdoYXQgb3RoZXIgc2V0dGluZ3MgZW5hYmxlIG9yIGRpc2FibGUgaXQ/IEFyZSB0aGVyZSBhbnkgYXNzb2NpYXRlZCBzeW1ib2xzIG9yIHZhcmlhYmxlcz8gV2hhdCBvcHRpb25zIGFyZSBhdmFpbGFibGUgd2l0aGluIHRoaXMgY29uZmlndXJhdGlvbiBvcHRpb24/IFVuZGVyc3RhbmRpbmcgdGhlIGNvbXBsZXRlIHNjb3BlIG9mIHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmcgaXMgdGhlIGZpcnN0IGFuZCB2aXRhbCBzdGVwIHRvIHVuZGVyc3RhbmRpbmcgaXRzIGZ1bmN0aW9uLCBlZmZlY3QsIGFuZCBwb3NzaWJsZSBpbXBhY3RzIG9uIHRoZSBzeXN0ZW0gSSdtIHdvcmtpbmcgd2l0aC4gSSBuZWVkIHRvIHNlZSB0aGUgZW50aXJlIHBpY3R1cmUsIG5vdCBqdXN0IGEgc25pcHBldC4gRnJvbSB0aGVyZSwgSSBjYW4gYmVnaW4gdG8gdW5wYWNrIHRoZSBpbXBsaWNhdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjgxODksIk91dHB1dFRva2VucyI6NTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNzowNToxMS43Mjk2MjU3N1oiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDMxNDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMTVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHRjb25maWcgQlJDTUZNQUNcXG4gICAyOlxcdFxcdHRyaXN0YXRlIFxcXCJCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyXFxcIlxcbiAgIDM6XFx0XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxcbiAgIDQ6XFx0XFx0c2VsZWN0IEJSQ01VVElMXFxuICAgNTpcXHRcXHRoZWxwXFxuICAgNjpcXHRcXHQgIFRoaXMgbW9kdWxlIGFkZHMgc3VwcG9ydCBmb3Igd2lyZWxlc3MgYWRhcHRlcnMgYmFzZWQgb24gQnJvYWRjb21cXG4gICA3OlxcdFxcdCAgRnVsbE1BQyBjaGlwc2V0cy4gSXQgaGFzIHRvIHdvcmsgd2l0aCBhdCBsZWFzdCBvbmUgb2YgdGhlIGJ1c1xcbiAgIDg6XFx0XFx0ICBpbnRlcmZhY2Ugc3VwcG9ydC4gSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQnbGwgYmUgY2FsbGVkXFxuICAgOTpcXHRcXHQgIGJyY21mbWFjLmtvLlxcbiAgMTA6XFx0XFxuICAxMTpcXHRjb25maWcgQlJDTUZNQUNfUFJPVE9fQkNEQ1xcbiAgMTI6XFx0XFx0Ym9vbFxcbiAgMTM6XFx0XFxuICAxNDpcXHRjb25maWcgQlJDTUZNQUNfUFJPVE9fTVNHQlVGXFxuICAxNTpcXHRcXHRib29sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDE3OjA1OjExLjcyOTc3MjM3WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYyMzQzNDE1ODQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgYGJyY21mbWFjYCBWdWxuZXJhYmlsaXR5KipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyB2dWxuZXJhYmlsaXR5IG5haWxlZCBkb3duLiBJdCBsb29rcyBsaWtlIHRoZSBjb3JlIGlzc3VlIHJldm9sdmVzIGFyb3VuZCBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSB3aXRoaW4gdGhlIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIGZ1bmN0aW9uLiBTcGVjaWZpY2FsbHksIGl0J3MgYWNjZXNzaW5nIGBwMnAtXHUwMDNlYnNzX2lkeFtQMlBBUElfQlNTQ0ZHX0RFVklDRV0udmlmYCB3aXRob3V0IHByb3BlciBjaGVja3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgd2hpY2ggaXMgaW1wb3J0YW50IHRvIHJlbWVtYmVyLiBUaGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgc2VlbSB0byBiZSBgQlJDTUZNQUNgIGFuZCBgQlJDTUZNQUNfVVNCYC5cblxuVGhlIGV4Y2l0aW5nIHBhcnQ/IFRoaXMgaXMgKmZ1enphYmxlKi4gSSB3YXMgaW5pdGlhbGx5IHdvbmRlcmluZyBpZiBgZHVtbXlfaGNkYCBhY3R1YWxseSBsb2FkZWQgYGJyY21mbWFjYCwgYnV0IHRoZW4gSSByZW1lbWJlcmVkIHRoYXQgc3l6a2FsbGVyJ3MgVVNCIGZ1enplciBjYW4gZW11bGF0ZSBhbnkgVVNCIGRldmljZSwgaW5jbHVkaW5nIHRoaXMgZHJpdmVyLiBUaGlzIG1lYW5zIHdlIGhhdmUgYSB2aWFibGUgZnV6emluZyB0YXJnZXQuXG5cbkxldCdzIHB1bGwgYWxsIHRoaXMgdG9nZXRoZXIgc3VjY2luY3RseSBmb3IgbXkgYW5hbHlzaXM6XG5cbiogICAqKldvcnRoRnV6emluZyoqOiBBYnNvbHV0ZWx5LCB5ZXMuXG4qICAgKipGb2N1cyBTeW1ib2xzKio6IEknbSBnb2luZyB0byBrZWVwIGEgY2xvc2UgZXllIG9uIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIGFuZCBhbHNvIGBicmNtZl9jZmc4MDIxMV9tZ210X3R4YCBhcyBpdCdzIGxpa2VseSBhIGNhbGwgY2hhaW4gZm9yIHRoaXMgdnVsbmVyYWJpbGl0eS5cbiogICAqKkVuYWJsZUNvbmZpZ3MqKjogV2UnbGwgbmVlZCBgQlJDTUZNQUNgIGFuZCBgQlJDTUZNQUNfVVNCYCBlbmFibGVkLlxuKiAgICoqUmVhc29uaW5nKio6IFRoZSBjcnV4IG9mIHRoZSBpc3N1ZSBpcyBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlciwgc3BlY2lmaWNhbGx5IHdoZW4gdGhlIGRyaXZlciBpcyBzZW5kaW5nIFAyUCBhY3Rpb24gZnJhbWVzLiBDcnVjaWFsbHksIHRoZSBkcml2ZXIgaXMgZnV6emFibGUgdmlhIFVTQiBlbXVsYXRpb24gKHRoYW5rcyB0byBzeXprYWxsZXIncyBjYXBhYmlsaXRpZXMpLCBhbmQgdGhlIHZ1bG5lcmFibGUgZnVuY3Rpb24gaXMgcmVhY2hhYmxlIHRocm91Z2ggbmw4MDIxMSBtYW5hZ2VtZW50IGZyYW1lIHRyYW5zbWlzc2lvbi4gVGhpcyBzZWVtcyBsaWtlIGEgZ3JlYXQgY2FuZGlkYXRlIGZvciBmdXJ0aGVyIGludmVzdGlnYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjg3MzQsIk91dHB1dFRva2VucyI6MTM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjcxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTc6MDU6MTcuOTY0MTE3Njc0WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjI0NjY0NTgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUkNNRk1BQ1wiLFxuICAgIFwiQlJDTUZNQUNfVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lXCIsXG4gICAgXCJicmNtZl9jZmc4MDIxMV9tZ210X3R4XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdGhlIEJyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXIgKGJyY21mbWFjKSB3aGVuIHNlbmRpbmcgUDJQIGFjdGlvbiBmcmFtZXMuIFRoZSBkcml2ZXIgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbiwgYW5kIHRoZSBtb2RpZmllZCBmdW5jdGlvbiBpcyByZWFjaGFibGUgdmlhIG5sODAyMTEgbWFuYWdlbWVudCBmcmFtZSB0cmFuc21pc3Npb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJDTUZNQUNcIixcbiAgICBcIkJSQ01GTUFDX1VTQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZVwiLFxuICAgIFwiYnJjbWZfY2ZnODAyMTFfbWdtdF90eFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyIChicmNtZm1hYykgd2hlbiBzZW5kaW5nIFAyUCBhY3Rpb24gZnJhbWVzLiBUaGUgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24sIGFuZCB0aGUgbW9kaWZpZWQgZnVuY3Rpb24gaXMgcmVhY2hhYmxlIHZpYSBubDgwMjExIG1hbmFnZW1lbnQgZnJhbWUgdHJhbnNtaXNzaW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflowdfx5h[1] Phase: Succeeded StartedAt: 2026-07-08 17:06:36 +0000 UTC FinishedAt: 2026-07-08 17:06:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-08 17:06:36 +0000 UTC FinishedAt: 2026-07-08 17:06:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[2] Phase: Succeeded StartedAt: 2026-07-08 17:06:36 +0000 UTC FinishedAt: 2026-07-08 18:16:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 17:06:36 +0000 UTC FinishedAt: 2026-07-08 18:16:52 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 17:06:36 +0000 UTC FinishedAt: 2026-07-08 17:06:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 17:06:36 +0000 UTC FinishedAt: 2026-07-08 17:06:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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-workflowdfx5h/series-workflowdfx5h-convert-artifact-1448591307/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 17:06:56 +0000 UTC FinishedAt: 2026-07-08 17:36:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 17:06:56 +0000 UTC FinishedAt: 2026-07-08 17:36:40 +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:*2a34c7ae-adb6-43e1-985c-fd775a0003f8,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-workflowdfx5h/series-workflowdfx5h-convert-artifact-1448591307/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": "9b3ca1a5-520a-4ce3-a342-ad9c3e1e33a4", "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-workflowdfx5h/series-workflowdfx5h-build-action-924530377/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 17:06:56 +0000 UTC FinishedAt: 2026-07-08 17:36:30 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*2a34c7ae-adb6-43e1-985c-fd775a0003f8,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-workflowdfx5h/series-workflowdfx5h-convert-artifact-1448591307/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": "9b3ca1a5-520a-4ce3-a342-ad9c3e1e33a4", "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-workflowdfx5h/series-workflowdfx5h-build-action-924530377/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 17:36:40 +0000 UTC FinishedAt: 2026-07-08 17:36:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 17:36:40 +0000 UTC FinishedAt: 2026-07-08 17:36:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 17:36:40 +0000 UTC FinishedAt: 2026-07-08 17:36:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 17:36:40 +0000 UTC FinishedAt: 2026-07-08 17:36:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-workflowdfx5h/series-workflowdfx5h-convert-artifact-2901698594/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 17:36:51 +0000 UTC FinishedAt: 2026-07-08 17:39:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 17:36:51 +0000 UTC FinishedAt: 2026-07-08 17:39:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*9b3ca1a5-520a-4ce3-a342-ad9c3e1e33a4,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-workflowdfx5h/series-workflowdfx5h-build-action-924530377/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-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 17:39:11 +0000 UTC FinishedAt: 2026-07-08 17:39:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 17:39:11 +0000 UTC FinishedAt: 2026-07-08 17:39:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 17:39:11 +0000 UTC FinishedAt: 2026-07-08 18:09:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 17:39:11 +0000 UTC FinishedAt: 2026-07-08 18:09:47 +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:*2a34c7ae-adb6-43e1-985c-fd775a0003f8,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-workflowdfx5h/series-workflowdfx5h-convert-artifact-2901698594/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": "13ccc04e-7db9-4ff7-a5c6-909f4993eeaf", "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-workflowdfx5h/series-workflowdfx5h-build-action-986556534/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 17:39:11 +0000 UTC FinishedAt: 2026-07-08 18:09:20 +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:*2a34c7ae-adb6-43e1-985c-fd775a0003f8,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-workflowdfx5h/series-workflowdfx5h-convert-artifact-2901698594/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": "13ccc04e-7db9-4ff7-a5c6-909f4993eeaf", "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-workflowdfx5h/series-workflowdfx5h-build-action-986556534/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 18:09:47 +0000 UTC FinishedAt: 2026-07-08 18:09:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 18:09:47 +0000 UTC FinishedAt: 2026-07-08 18:09:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 18:09:47 +0000 UTC FinishedAt: 2026-07-08 18:12:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 18:09:47 +0000 UTC FinishedAt: 2026-07-08 18:12:00 +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:*13ccc04e-7db9-4ff7-a5c6-909f4993eeaf,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-workflowdfx5h/series-workflowdfx5h-build-action-986556534/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-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 18:12:09 +0000 UTC FinishedAt: 2026-07-08 18:16:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 18:12:09 +0000 UTC FinishedAt: 2026-07-08 18:16:52 +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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"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:*9b3ca1a5-520a-4ce3-a342-ad9c3e1e33a4,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*13ccc04e-7db9-4ff7-a5c6-909f4993eeaf,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-workflowdfx5h/series-workflowdfx5h-build-action-924530377/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-workflowdfx5h/series-workflowdfx5h-build-action-986556534/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 18:12:09 +0000 UTC FinishedAt: 2026-07-08 18:12:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 18:12:09 +0000 UTC FinishedAt: 2026-07-08 18:12:18 +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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"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-workflowdfx5h/series-workflowdfx5h-convert-artifact-1995846743/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 18:12:09 +0000 UTC FinishedAt: 2026-07-08 18:12:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 18:12:09 +0000 UTC FinishedAt: 2026-07-08 18:12:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 18:12:09 +0000 UTC FinishedAt: 2026-07-08 18:12:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 18:12:31 +0000 UTC FinishedAt: 2026-07-08 18:16:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdfx5h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_send_action_frame","brcmf_cfg80211_mgmt_tx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"8b8c812d-769d-4a79-bda8-b50f008bf4a6","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-08 18:12:31 +0000 UTC FinishedAt: 2026-07-08 18:16:32 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*9b3ca1a5-520a-4ce3-a342-ad9c3e1e33a4,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*13ccc04e-7db9-4ff7-a5c6-909f4993eeaf,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-workflowdfx5h/series-workflowdfx5h-build-action-924530377/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-workflowdfx5h/series-workflowdfx5h-build-action-986556534/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-workflowdfx5h/series-workflowdfx5h-convert-artifact-1995846743/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,}