Name: series-workfloww8pzf Phase: Succeeded StartedAt: 2026-07-09 08:06:15 +0000 UTC FinishedAt: 2026-07-09 10:38:54 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[0] Phase: Succeeded StartedAt: 2026-07-09 08:06:15 +0000 UTC FinishedAt: 2026-07-09 08:39:02 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[0].run-triage Phase: Succeeded StartedAt: 2026-07-09 08:06:15 +0000 UTC FinishedAt: 2026-07-09 08:39:02 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "WANXL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "WANXL" ], "series_id": "bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "wanxl_pci_remove_one" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA5IDA4OjM2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1dBTlhMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7d2FueGxfcGNpX3JlbW92ZV9vbmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBQQ0kgZGV2aWNlIHJlbW92YWwgcGF0aCBvZiB0aGUgd2FuWEwgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgdGVzdGVkIGJ5IGZ1enppbmcgUENJIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgcmVtb3ZhbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwODozNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDM0MTY4MzA4YTFmM2RlZjJjMmE0NGE2YjM1MzM3NDBiZGY3ZTBmNTRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCA5IDA4OjM2OjQxIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dhbi93YW54bC5jIGIvZHJpdmVycy9uZXQvd2FuL3dhbnhsLmNcbmluZGV4IGQ0ZGE4OGM3NzExMjkxLi4wNjVjMDBjMTJjYzE2OCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dhbi93YW54bC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93YW4vd2FueGwuY1xuQEAgLTUxNCw3ICYjNDM7NTE0LDggQEAgc3RhdGljIHZvaWQgd2FueGxfcGNpX3JlbW92ZV9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gXHRpZiAoY2FyZC1cdTAwM2VpcnEpXG4gXHRcdGZyZWVfaXJxKGNhcmQtXHUwMDNlaXJxLCBjYXJkKTtcbiBcbi1cdHdhbnhsX3Jlc2V0KGNhcmQpO1xuJiM0MztcdGlmIChjYXJkLVx1MDAzZXBseClcbiYjNDM7XHRcdHdhbnhsX3Jlc2V0KGNhcmQpO1xuIFxuIFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgUlhfUVVFVUVfTEVOR1RIOyBpJiM0MzsmIzQzOylcbiBcdFx0aWYgKGNhcmQtXHUwMDNlcnhfc2tic1tpXSkge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA4OjM2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1dBTlhMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7d2FueGxfcGNpX3JlbW92ZV9vbmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBQQ0kgZGV2aWNlIHJlbW92YWwgcGF0aCBvZiB0aGUgd2FuWEwgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgdGVzdGVkIGJ5IGZ1enppbmcgUENJIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgcmVtb3ZhbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMzQxNjgzMDhhMWYzZGVmMmMyYTQ0YTZiMzUzMzc0MGJkZjdlMGY1NApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDkgMDg6MzY6NDEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93YW4vd2FueGwuYyBiL2RyaXZlcnMvbmV0L3dhbi93YW54bC5jCmluZGV4IGQ0ZGE4OGM3NzExMjkxLi4wNjVjMDBjMTJjYzE2OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2FuL3dhbnhsLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2FuL3dhbnhsLmMKQEAgLTUxNCw3ICYjNDM7NTE0LDggQEAgc3RhdGljIHZvaWQgd2FueGxfcGNpX3JlbW92ZV9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAJaWYgKGNhcmQtJmd0O2lycSkKIAkJZnJlZV9pcnEoY2FyZC0mZ3Q7aXJxLCBjYXJkKTsKIAotCXdhbnhsX3Jlc2V0KGNhcmQpOwomIzQzOwlpZiAoY2FyZC0mZ3Q7cGx4KQomIzQzOwkJd2FueGxfcmVzZXQoY2FyZCk7CiAKIAlmb3IgKGkgPSAwOyBpICZsdDsgUlhfUVVFVUVfTEVOR1RIOyBpJiM0MzsmIzQzOykKIAkJaWYgKGNhcmQtJmd0O3J4X3NrYnNbaV0pIHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDg6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTg0NgoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDE2OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBXQU5YTCBEcml2ZXIgUGF0Y2ggYW5kIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvd2FuL3dhbnhsLmNgLiBJdCBzZWVtcyB0aGV5JiMzOTtyZSBhZGRpbmcgYSBudWxsIGNoZWNrIG9uIGBjYXJkLSZndDtwbHhgIHdpdGhpbiBgd2FueGxfcGNpX3JlbW92ZV9vbmVgIGJlZm9yZSBjYWxsaW5nIGB3YW54bF9yZXNldChjYXJkKWAuIE1ha2VzIHNlbnNlLiBMb29rcyBsaWtlIGEgc29saWQgZml4IHRvIHByZXZlbnQgYSBwb3NzaWJsZSBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UsIG9yIHNvbWV0aGluZyBzaW1pbGFyLCBkdXJpbmcgUENJIGRldmljZSByZW1vdmFsIGlmIGBjYXJkLSZndDtwbHhgIGlzbiYjMzk7dCBpbml0aWFsaXplZC4gVGhlc2Uga2luZHMgb2YgY2hlY2tzIGFyZSBhbHdheXMgYSBnb29kIHByYWN0aWNlLCBlc3BlY2lhbGx5IGluIGRyaXZlcnMuCgpOb3csIG15IG1pbmQmIzM5O3MgYWxyZWFkeSBkcmlmdGluZyB0b3dhcmRzIGZ1enppbmcgdGhpcyBkcml2ZXIuIEl0JiMzOTtzIGEgUENJIGRyaXZlciBmb3IgdGhvc2UgU0JFIEluYy4gd2FuWEwgY2FyZHMuIFRoZSBpbnRlcmVzdGluZyBwYXJ0IGlzIHRoYXQgc2luY2UgaXQmIzM5O3MgYSBQQ0kgZHJpdmVyLCB3ZSAqc2hvdWxkKiBiZSBhYmxlIHRvIGxldmVyYWdlIHN5emthbGxlciYjMzk7cyBwc2V1ZG8tUENJIGRldmljZSBpbmplY3Rpb24gZm9yIGZ1enppbmcsIHByb3ZpZGVkIHRoYXQgb3B0aW9uIGlzIGVuYWJsZWQsIG9mIGNvdXJzZS4gU28sIGJlZm9yZSBJIGRpZyB0b28gZGVlcCBpbnRvIHRoZSBjb2RlLCBJIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgZW50cnkgZm9yIGB3YW54bC5jYCB0byBjb25maXJtIHRoZSBmdXp6aW5nIHBvdGVudGlhbC4gSXQgd2lsbCBsZXQgbWUga25vdyBpZiB0aGVyZSYjMzk7cyBhbnkgb2J2aW91cyBpbXBlZGltZW50IHRvIHRoYXQgYXBwcm9hY2ggYW5kIHdoZXRoZXIgYW55IHNwZWNpYWwgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCBmb3IgZnV6emluZyB0aGlzIHNwZWNpZmljIGRyaXZlci4gVGhlbiBJJiMzOTtsbCBoYXZlIGEgZ29vZCBpZGVhIG9mIHRoZSBiZXN0IGFwcHJvYWNoIHRvIHRha2UgdG8gZ2V0IHN0YXJ0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDg6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt3YW54bFxcLmMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93YW4vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwODozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzQyCgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6CgoqKk5hdmlnYXRpbmcgdGhlIFdBTiBEcml2ZXIgTWFrZWZpbGUqKgoKT2theSwgc28gSSYjMzk7bSB0cnlpbmcgdG8gZmlndXJlIG91dCB3aGVyZSBgd2FueGwub2AgY29tZXMgZnJvbSBpbiB0aGUga2VybmVsIGJ1aWxkIHByb2Nlc3MuIEkgbmVlZCB0byBwaW5wb2ludCB0aGUgc291cmNlIGZpbGUgb3IgcnVsZSB0aGF0IGNyZWF0ZXMgaXQuIE15IGZpcnN0IGluc3RpbmN0LCBhbmQgdGhlIG1vc3QgbG9naWNhbCBhcHByb2FjaCwgaXMgdG8gdXNlIGBncmVwYC4gSSYjMzk7bGwgdXNlIGl0IHRvIHNlYXJjaCB0aHJvdWdoIHRoZSBgZHJpdmVycy9uZXQvd2FuL01ha2VmaWxlYCBmaWxlLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBsb29rIGZvciBhbnkgaW5zdGFuY2VzIG9mIGB3YW54bC5vYCB3aXRoaW4gdGhhdCBNYWtlZmlsZS4gVGhpcyBzaG91bGQgcmV2ZWFsIHRoZSByZWxldmFudCBidWlsZCBydWxlIG9yIGRlcGVuZGVuY3kuIEdyZXBwaW5nIGlzIG9mdGVuIHRoZSBmYXN0ZXN0IHdheSB0byB0cmFjZSBtb2R1bGUgY3JlYXRpb24gaW4gY29tcGxleCBidWlsZCBzeXN0ZW1zIGxpa2UgdGhpcy4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBkZWJ1Z2dpbmcgc3RlcCwgcGFydGljdWxhcmx5IHdoZW4gd29ya2luZyB3aXRoIE1ha2VmaWxlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwODozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt3YW54bFxcLm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93YW4vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dhbi9NYWtlZmlsZT0yMz1vYmotJChDT05GSUdfQzEwMSlcdFx0JiM0Mzs9IGMxMDEub1xuZHJpdmVycy9uZXQvd2FuL01ha2VmaWxlOjI0Om9iai0kKENPTkZJR19XQU5YTClcdFx0JiM0Mzs9IHdhbnhsLm9cbmRyaXZlcnMvbmV0L3dhbi9NYWtlZmlsZS0yNS1vYmotJChDT05GSUdfUENJMjAwU1lOKVx0XHQmIzQzOz0gcGNpMjAwc3luLm9cbi0tXG5kcml2ZXJzL25ldC93YW4vTWFrZWZpbGU9MzI9Y2xlYW4tZmlsZXMgOj0gd2FueGxmdy5pbmNcbmRyaXZlcnMvbmV0L3dhbi9NYWtlZmlsZTozMzokKG9iaikvd2FueGwubzpcdCQob2JqKS93YW54bGZ3LmluY1xuZHJpdmVycy9uZXQvd2FuL01ha2VmaWxlLTM0LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA4OjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3MjAKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiAyOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIGl0IHdlcmUgbXkgb3duOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBXQU5YTCBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gSSYjMzk7bSBsb29raW5nIGF0IGlzIGBDT05GSUdfV0FOWExgLiBSaWdodC4gVGhhdCBzdHJvbmdseSBzdWdnZXN0cyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIFdpZGUgQXJlYSBOZXR3b3JrIChXQU4pIGZ1bmN0aW9uYWxpdHkgYW5kIHBvdGVudGlhbGx5IHNvbWUgWGlsaW54LXNwZWNpZmljIGhhcmR3YXJlIG9yIGRyaXZlciBpbnRlcmFjdGlvbiwgZ2l2ZW4gdGhlICYjMzQ7WEwmIzM0OyBzdWZmaXguIE15IGltbWVkaWF0ZSByZWFjdGlvbiBpcyB0byB0cmFjayBkb3duIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIFRoYXQgbWVhbnMgSSBuZWVkIHRvIGRpdmUgaW50byB0aGUga2VybmVsIHNvdXJjZSwgc3BlY2lmaWNhbGx5IHRoZSBuZXR3b3JraW5nIGRyaXZlcnMgcmVsYXRlZCB0byBXQU4gaW50ZXJmYWNlcy4gVGhlIGxvZ2ljYWwgcGxhY2UgdG8gc3RhcnQgaXMgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvd2FuYCBkaXJlY3RvcnkuIEFuZCB0aGUga2V5IGZpbGUgdG8gZXhhbWluZSB0aGVyZSwgd2l0aG91dCBhIGRvdWJ0LCBpcyB0aGUgYEtjb25maWdgIGZpbGUuIFRoYXQmIzM5O3Mgd2hlcmUgYWxsIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIGRlZmluZWQsIGFsb25nIHdpdGggdGhlaXIgZGVwZW5kZW5jaWVzLCBkZXNjcmlwdGlvbnMsIGFuZCBwb3RlbnRpYWxseSB0aGVpciBkZWZhdWx0IHZhbHVlcy4gVGhlIGBXQU5YTGAgY29uZmlndXJhdGlvbiBvcHRpb24sIGJlaW5nIHRoZSBzcGVjaWZpYyBmb2N1cywgc2hvdWxkIGJlIGNsZWFybHkgZG9jdW1lbnRlZCB3aXRoaW4gdGhhdCBgS2NvbmZpZ2AgZmlsZS4gSSBhbnRpY2lwYXRlIGZpbmRpbmcgZGV0YWlscyBhYm91dCB0aGUgdW5kZXJseWluZyBoYXJkd2FyZSBzdXBwb3J0LCBhbnkgZGVwZW5kZW5jaWVzIG9uIG90aGVyIGtlcm5lbCBjb21wb25lbnRzLCBhbmQgcHJvYmFibHkgc29tZSBoZWxwIHRleHQgZXhwbGFpbmluZyB3aGF0IGVuYWJsaW5nIHRoaXMgY29uZmlndXJhdGlvbiBlbnRhaWxzLiBMZXQmIzM5O3MgZ2V0IHRvIHRoYXQgZmlsZSBhbmQgc2VlIHdoYXQgd2UgY2FuIGZpbmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDg6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFdBTlhMJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2FuLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93YW4vS2NvbmZpZz0xMDA9Y29uZmlnIFBDSTIwMFNZTlxuLS1cbmRyaXZlcnMvbmV0L3dhbi9LY29uZmlnLTExMy1cbmRyaXZlcnMvbmV0L3dhbi9LY29uZmlnOjExNDpjb25maWcgV0FOWExcbmRyaXZlcnMvbmV0L3dhbi9LY29uZmlnLTExNS1cdHRyaXN0YXRlIFwmIzM0O1NCRSBJbmMuIHdhblhMIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93YW4vS2NvbmZpZy0xMjctXG5kcml2ZXJzL25ldC93YW4vS2NvbmZpZzoxMjg6Y29uZmlnIFdBTlhMX0JVSUxEX0ZJUk1XQVJFXG5kcml2ZXJzL25ldC93YW4vS2NvbmZpZy0xMjktXHRib29sIFwmIzM0O3JlYnVpbGQgd2FuWEwgZmlybXdhcmVcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwODozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTc2CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIHRoZSBXQU5YTCBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW4uIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O1doYXQmIzM5O3MgdGhlIHJlbGF0aW9uc2hpcCBsYW5kc2NhcGUgb2YgYFdBTlhMYCBsb29raW5nIGxpa2U/JiMzNDsgSSBuZWVkIGEgY2xlYXIgcGljdHVyZSBvZiBpdHMgZGVwZW5kZW5jaWVzLiBLbm93aW5nIHRoaXMgaXMgZnVuZGFtZW50YWwuIEFyZSB3ZSB0YWxraW5nIGFib3V0IGNvcmUgaW5mcmFzdHJ1Y3R1cmUgY29tcG9uZW50cywgc3BlY2lmaWMgbGlicmFyaWVzLCBvciBwZXJoYXBzIGV4dGVybmFsIHNlcnZpY2VzPyBJIGhhdmUgdG8gdW5kZXJzdGFuZCB0aGUgYXJjaGl0ZWN0dXJlLCBhbmQgdGhhdCBtZWFucyB0cmFjaW5nIHRoZSBsaW5lYWdlLiBXaGF0IG1vZHVsZXMgb3IgZnVuY3Rpb25zICpyZWx5KiBvbiBgV0FOWExgLCBhbmQgY29udmVyc2VseSwgd2hhdCBkb2VzIGBXQU5YTGAgbGVhbiBvbj8gQXJlIHRoZXJlIGFueSBvYnZpb3VzIHBvaW50cyBvZiBmcmFnaWxpdHksIGJvdHRsZW5lY2tzLCBvciBhcmVhcyB0aGF0IGNvdWxkIGJlY29tZSBwZXJmb3JtYW5jZSBkcmFncyBpZiBhIGRlcGVuZGVuY3kgZ29lcyBzaWRld2F5cz8gSSYjMzk7bSBhbHJlYWR5IGFudGljaXBhdGluZyBwb3RlbnRpYWwgcHJvYmxlbXMg4oCTIGFyZSB0aGVzZSBkZXBlbmRlbmNpZXMgd2VsbC1tYWludGFpbmVkPyBBcmUgdGhleSB2ZXJzaW9uLWxvY2tlZCwgb3Igc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzPyBIb3cgcm9idXN0IGFyZSB0aGUgdGVzdGluZyBmcmFtZXdvcmtzIGFyb3VuZCB0aGVzZSBjb21wb25lbnRzPyBUaW1lIHRvIGdldCBncmFudWxhciwgYW5kIHN0YXJ0IG1hcHBpbmcgdGhhdCBkZXBlbmRlbmN5IGdyYXBoLiBUaGlzIGlzIHRoZSBmb3VuZGF0aW9uIGZvciBhbnkgZnVydGhlciBhbmFseXNpcyBvciBvcHRpbWl6YXRpb24uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByaXBwbGUgZWZmZWN0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDg6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93YW4vS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDExNCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMTE0Olx0Y29uZmlnIFdBTlhMXG4gMTE1Olx0XHR0cmlzdGF0ZSBcJiMzNDtTQkUgSW5jLiB3YW5YTCBzdXBwb3J0XCYjMzQ7XG4gMTE2Olx0XHRkZXBlbmRzIG9uIEhETEMgXHUwMDI2XHUwMDI2IFBDSVxuIDExNzpcdFx0aGVscFxuIDExODpcdFx0ICBEcml2ZXIgZm9yIHdhblhMIFBDSSBjYXJkcyBieSBTQkUgSW5jLlxuIDExOTpcdFxuIDEyMDpcdFx0ICBJZiB5b3UgaGF2ZSBzdWNoIGEgY2FyZCwgc2F5IFkgaGVyZSBhbmQgc2VlXG4gMTIxOlx0XHQgIFx1MDAzY2h0dHA6Ly93d3cua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvbmV0L2hkbGMvXHUwMDNlLlxuIDEyMjpcdFxuIDEyMzpcdFx0ICBUbyBjb21waWxlIHRoaXMgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZVxuIDEyNDpcdFx0ICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgd2FueGwuXG4gMTI1Olx0XG4gMTI2Olx0XHQgIElmIHVuc3VyZSwgc2F5IE4uXG4gMTI3Olx0XG4gMTI4Olx0Y29uZmlnIFdBTlhMX0JVSUxEX0ZJUk1XQVJFXG4gMTI5Olx0XHRib29sIFwmIzM0O3JlYnVpbGQgd2FuWEwgZmlybXdhcmVcJiMzNDtcbiAxMzA6XHRcdGRlcGVuZHMgb24gV0FOWEwgXHUwMDI2XHUwMDI2ICFQUkVWRU5UX0ZJUk1XQVJFX0JVSUxEXG4gMTMxOlx0XHRoZWxwXG4gMTMyOlx0XHQgIEFsbG93cyB5b3UgdG8gcmVidWlsZCBmaXJtd2FyZSBydW4gYnkgdGhlIFFVSUNDIHByb2Nlc3Nvci5cbiAxMzM6XHRcdCAgSXQgcmVxdWlyZXMgbTY4ayB0b29sY2hhaW5zIGFuZCBoZXhkdW1wIHByb2dyYW1zLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwODozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNzQ5CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTE0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgV2FueGwgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRoZSBrZXkgY29uZmlnIG9wdGlvbiBoZXJlIGlzIGBDT05GSUdfV0FOWExgLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHNlZW1zIHRvIGJlIGluIHRoZSBmdW5jdGlvbiBgd2FueGxfcGNpX3JlbW92ZV9vbmVgLiBUaGlzIGlzIGEgKmZ1bmN0aW9uYWwqIGNoYW5nZSwgbWVhbmluZyBpdCYjMzk7cyBmaXhpbmcgYSBidWcgdGhhdCBvY2N1cnMgd2hlbiB0aGUgZGV2aWNlIGlzIGJlaW5nIHJlbW92ZWQuIEdvb2QsIGltcG9ydGFudCB0byBmaXggZGV2aWNlIHJlbW92YWwgYnVncy4KCk5vdywgdGhlIHF1ZXN0aW9uIGlzLCBjYW4gdGhpcyBiZSBmdXp6ZWQ/IERlZmluaXRlbHkuIFBDSSBkZXZpY2UgcmVtb3ZhbCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IHRvb2xzIGxpa2Ugc3l6a2FsbGVyLiBIb3RwbHVnZ2luZywgcmVzb3VyY2UgZXhoYXVzdGlvbiwgYW55IG51bWJlciBvZiBtZWNoYW5pc21zIGNvdWxkIGV4cG9zZSBhIGJ1ZyBoZXJlLiBNeSBmb2N1cyBzaG91bGQgYWJzb2x1dGVseSBiZSBvbiB0aGF0IGB3YW54bF9wY2lfcmVtb3ZlX29uZWAgZnVuY3Rpb24uCgpKdXN0IHRvIGJlIHRob3JvdWdoLCBJIHNob3VsZCBjaGVjayBpZiBgd2FueGxfcmVzZXRgIGlzIGRlZmluZWQgc29tZXdoZXJlIGluIGB3YW54bC5jYC4gUXVpY2sgc2FuaXR5IGNoZWNrIGlzIGFsd2F5cyBnb29kLiBHaXZlbiBpdCYjMzk7cyBhIHJlbW92YWwgZml4LCB0aGVyZSBjb3VsZCBiZSBhIGRlcGVuZGVuY3kgb24gcmVzZXR0aW5nIGJlZm9yZSB1bmJpbmRpbmcuIEZpbmFsbHksIEkmIzM5O2xsIG5lZWQgdG8gZW5hYmxlIHRoZSBgV0FOWExgIGNvbmZpZ3VyYXRpb24gdG8gdHJpZ2dlciB0aGlzIGZpeC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDg6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7d2FueGxfcmVzZXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93YW4vd2FueGwuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93YW4vd2FueGwuYz00NzY9c3RhdGljIGludCB3YW54bF9wdXRzX2NvbW1hbmQoc3RydWN0IGNhcmQgKmNhcmQsIHUzMiBjbWQpXG4tLVxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmMtNDkwLVxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmM6NDkxOnN0YXRpYyB2b2lkIHdhbnhsX3Jlc2V0KHN0cnVjdCBjYXJkICpjYXJkKVxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmMtNDkyLXtcbi0tXG5kcml2ZXJzL25ldC93YW4vd2FueGwuYz01MDM9c3RhdGljIHZvaWQgd2FueGxfcGNpX3JlbW92ZV9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmMtNTE3LVx0aWYgKGNhcmQtXHUwMDNlcGx4KVxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmM6NTE4Olx0XHR3YW54bF9yZXNldChjYXJkKTtcbmRyaXZlcnMvbmV0L3dhbi93YW54bC5jLTUxOS1cbi0tXG5kcml2ZXJzL25ldC93YW4vd2FueGwuYz01NTA9c3RhdGljIGludCB3YW54bF9wY2lfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmMtNjQ3LSNpZiBSRVNFVF9XSElMRV9MT0FESU5HXG5kcml2ZXJzL25ldC93YW4vd2FueGwuYzo2NDg6XHR3YW54bF9yZXNldChjYXJkKTtcbmRyaXZlcnMvbmV0L3dhbi93YW54bC5jLTY0OS0jZW5kaWZcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDg6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDQ0MAoJCQkJCQkJb3V0cHV0OiA4NQoJCQkJCQkJdGhvdWdodHM6IDkwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgU3RyYXRlZ3kgZm9yIHdhbnhsX3BjaV9yZW1vdmVfb25lIEZpeCoqCgpPa2F5LCBzbyB0aGUgZml4IGlzIGluIGB3YW54bF9wY2lfcmVtb3ZlX29uZWAuIEdpdmVuIG15IHVuZGVyc3RhbmRpbmcgb2YgdGhlIGRyaXZlciBhbmQgdGhlIG5hdHVyZSBvZiB0aGUgY2hhbmdlLCBpdCBtYWtlcyBwZXJmZWN0IHNlbnNlIHRvIGZvY3VzIG15IGZ1enppbmcgZWZmb3J0cyBoZXJlLiBUaGUgcGF0Y2ggYWRkcmVzc2VzIGEgcG90ZW50aWFsIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSBkdXJpbmcgUENJIGRldmljZSByZW1vdmFsLCB3aGljaCBtZWFucyBmdXp6aW5nIHRoZSBpbml0aWFsaXphdGlvbiBhbmQgcmVtb3ZhbCBzZXF1ZW5jZXMgaXMgdGhlIGtleS4gVGhlcmVmb3JlLCBJJiMzOTttIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nYCB0byBgdHJ1ZWAg4oCTIGl0JiMzOTtzIGRlZmluaXRlbHkgYSB2aWFibGUgdGFyZ2V0LiBJIHdpbGwgc2V0IHRoZSBgRm9jdXNTeW1ib2xzYCB0byBgd2FueGxfcGNpX3JlbW92ZV9vbmVgIHRvIGRpcmVjdCB0aGUgZnV6emVyIHByZWNpc2VseSB0byB0aGUgY2hhbmdlZCBmdW5jdGlvbi4gVGhlbiwgSSBuZWVkIHRvIGxpbWl0IHRoZSBzY29wZSBzb21ld2hhdCB0byBhdm9pZCBzd2FtcGluZyB0aGUgZnV6emVyLCBhbmQgYmVjYXVzZSB0aGUgZnVuY3Rpb24gaXMgcmVsYXRlZCB0byB0aGUgd2FueGwgZHJpdmVyLCBgRW5hYmxlQ29uZmlnc2Agd2lsbCBiZSBzZXQgdG8gYFdBTlhMYCB0byBjb25zdHJhaW4gdGhlIGJ1aWxkIGVudmlyb25tZW50IGFuZCBob3BlZnVsbHkga2VlcCB0aGUgZnV6emluZyBlZmZpY2llbnQgYW5kIGVmZmVjdGl2ZS4gVGhlIGdvYWwgaXMgdG8gZmx1c2ggb3V0IGFueSByZW1haW5pbmcgaXNzdWVzIGFyb3VuZCBob3cgdGhlIGRyaXZlciBoYW5kbGVzIFBDSSBkZXZpY2UgcmVtb3ZhbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDg6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1dBTlhMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7d2FueGxfcGNpX3JlbW92ZV9vbmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBQQ0kgZGV2aWNlIHJlbW92YWwgcGF0aCBvZiB0aGUgd2FuWEwgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgdGVzdGVkIGJ5IGZ1enppbmcgUENJIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgcmVtb3ZhbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7V0FOWEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt3YW54bF9wY2lfcmVtb3ZlX29uZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdGhlIFBDSSBkZXZpY2UgcmVtb3ZhbCBwYXRoIG9mIHRoZSB3YW5YTCBkcml2ZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGNhbiBiZSB0ZXN0ZWQgYnkgZnV6emluZyBQQ0kgZGV2aWNlIGluaXRpYWxpemF0aW9uIGFuZCByZW1vdmFsLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMDlUMDg6MzY6NDMuNDA1OTYwMzc1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzIxMTYxNTMxMjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiV0FOWExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ3YW54bF9wY2lfcmVtb3ZlX29uZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB0aGUgUENJIGRldmljZSByZW1vdmFsIHBhdGggb2YgdGhlIHdhblhMIGRyaXZlci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgY2FuIGJlIHRlc3RlZCBieSBmdXp6aW5nIFBDSSBkZXZpY2UgaW5pdGlhbGl6YXRpb24gYW5kIHJlbW92YWwuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA4OjM2OjQzLjQwNTk2NzEwNVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzc2NTMxNzU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMzQxNjgzMDhhMWYzZGVmMmMyYTQ0YTZiMzUzMzc0MGJkZjdlMGY1NFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCA5IDA4OjM2OjQxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dhbi93YW54bC5jIGIvZHJpdmVycy9uZXQvd2FuL3dhbnhsLmNcXG5pbmRleCBkNGRhODhjNzcxMTI5MS4uMDY1YzAwYzEyY2MxNjggMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2FuL3dhbnhsLmNcXG4rKysgYi9kcml2ZXJzL25ldC93YW4vd2FueGwuY1xcbkBAIC01MTQsNyArNTE0LDggQEAgc3RhdGljIHZvaWQgd2FueGxfcGNpX3JlbW92ZV9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuIFxcdGlmIChjYXJkLVxcdTAwM2VpcnEpXFxuIFxcdFxcdGZyZWVfaXJxKGNhcmQtXFx1MDAzZWlycSwgY2FyZCk7XFxuIFxcbi1cXHR3YW54bF9yZXNldChjYXJkKTtcXG4rXFx0aWYgKGNhcmQtXFx1MDAzZXBseClcXG4rXFx0XFx0d2FueGxfcmVzZXQoY2FyZCk7XFxuIFxcbiBcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgUlhfUVVFVUVfTEVOR1RIOyBpKyspXFxuIFxcdFxcdGlmIChjYXJkLVxcdTAwM2VyeF9za2JzW2ldKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA4OjM2OjQ0LjE4MzUwNzA0NVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzEzMzg1OTE2NzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiV0FOWExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ3YW54bF9wY2lfcmVtb3ZlX29uZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB0aGUgUENJIGRldmljZSByZW1vdmFsIHBhdGggb2YgdGhlIHdhblhMIGRyaXZlci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgY2FuIGJlIHRlc3RlZCBieSBmdXp6aW5nIFBDSSBkZXZpY2UgaW5pdGlhbGl6YXRpb24gYW5kIHJlbW92YWwuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMzQxNjgzMDhhMWYzZGVmMmMyYTQ0YTZiMzUzMzc0MGJkZjdlMGY1NFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDkgMDg6MzY6NDEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93YW4vd2FueGwuYyBiL2RyaXZlcnMvbmV0L3dhbi93YW54bC5jXG5pbmRleCBkNGRhODhjNzcxMTI5MS4uMDY1YzAwYzEyY2MxNjggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93YW4vd2FueGwuY1xuKysrIGIvZHJpdmVycy9uZXQvd2FuL3dhbnhsLmNcbkBAIC01MTQsNyArNTE0LDggQEAgc3RhdGljIHZvaWQgd2FueGxfcGNpX3JlbW92ZV9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gXHRpZiAoY2FyZC1cdTAwM2VpcnEpXG4gXHRcdGZyZWVfaXJxKGNhcmQtXHUwMDNlaXJxLCBjYXJkKTtcbiBcbi1cdHdhbnhsX3Jlc2V0KGNhcmQpO1xuK1x0aWYgKGNhcmQtXHUwMDNlcGx4KVxuK1x0XHR3YW54bF9yZXNldChjYXJkKTtcbiBcbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIFJYX1FVRVVFX0xFTkdUSDsgaSsrKVxuIFx0XHRpZiAoY2FyZC1cdTAwM2VyeF9za2JzW2ldKSB7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwODozNjo0NC4xODM1MDk1MDVaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNDA0MTY1NTg5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBXQU5YTCBEcml2ZXIgUGF0Y2ggYW5kIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L3dhbi93YW54bC5jYC4gSXQgc2VlbXMgdGhleSdyZSBhZGRpbmcgYSBudWxsIGNoZWNrIG9uIGBjYXJkLVx1MDAzZXBseGAgd2l0aGluIGB3YW54bF9wY2lfcmVtb3ZlX29uZWAgYmVmb3JlIGNhbGxpbmcgYHdhbnhsX3Jlc2V0KGNhcmQpYC4gTWFrZXMgc2Vuc2UuIExvb2tzIGxpa2UgYSBzb2xpZCBmaXggdG8gcHJldmVudCBhIHBvc3NpYmxlIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSwgb3Igc29tZXRoaW5nIHNpbWlsYXIsIGR1cmluZyBQQ0kgZGV2aWNlIHJlbW92YWwgaWYgYGNhcmQtXHUwMDNlcGx4YCBpc24ndCBpbml0aWFsaXplZC4gVGhlc2Uga2luZHMgb2YgY2hlY2tzIGFyZSBhbHdheXMgYSBnb29kIHByYWN0aWNlLCBlc3BlY2lhbGx5IGluIGRyaXZlcnMuXG5cbk5vdywgbXkgbWluZCdzIGFscmVhZHkgZHJpZnRpbmcgdG93YXJkcyBmdXp6aW5nIHRoaXMgZHJpdmVyLiBJdCdzIGEgUENJIGRyaXZlciBmb3IgdGhvc2UgU0JFIEluYy4gd2FuWEwgY2FyZHMuIFRoZSBpbnRlcmVzdGluZyBwYXJ0IGlzIHRoYXQgc2luY2UgaXQncyBhIFBDSSBkcml2ZXIsIHdlICpzaG91bGQqIGJlIGFibGUgdG8gbGV2ZXJhZ2Ugc3l6a2FsbGVyJ3MgcHNldWRvLVBDSSBkZXZpY2UgaW5qZWN0aW9uIGZvciBmdXp6aW5nLCBwcm92aWRlZCB0aGF0IG9wdGlvbiBpcyBlbmFibGVkLCBvZiBjb3Vyc2UuIFNvLCBiZWZvcmUgSSBkaWcgdG9vIGRlZXAgaW50byB0aGUgY29kZSwgSSBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGVudHJ5IGZvciBgd2FueGwuY2AgdG8gY29uZmlybSB0aGUgZnV6emluZyBwb3RlbnRpYWwuIEl0IHdpbGwgbGV0IG1lIGtub3cgaWYgdGhlcmUncyBhbnkgb2J2aW91cyBpbXBlZGltZW50IHRvIHRoYXQgYXBwcm9hY2ggYW5kIHdoZXRoZXIgYW55IHNwZWNpYWwgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCBmb3IgZnV6emluZyB0aGlzIHNwZWNpZmljIGRyaXZlci4gVGhlbiBJJ2xsIGhhdmUgYSBnb29kIGlkZWEgb2YgdGhlIGJlc3QgYXBwcm9hY2ggdG8gdGFrZSB0byBnZXQgc3RhcnRlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg0NiwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2OSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA4OjM3OjA4LjIyNTE2ODE3M1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODUwNDIwNTIsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIndhbnhsXFxcXC5jXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dhbi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA4OjM3OjA4LjgxMDIxODMxNVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE4OTkyMjgxNjQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6XG5cbioqTmF2aWdhdGluZyB0aGUgV0FOIERyaXZlciBNYWtlZmlsZSoqXG5cbk9rYXksIHNvIEknbSB0cnlpbmcgdG8gZmlndXJlIG91dCB3aGVyZSBgd2FueGwub2AgY29tZXMgZnJvbSBpbiB0aGUga2VybmVsIGJ1aWxkIHByb2Nlc3MuIEkgbmVlZCB0byBwaW5wb2ludCB0aGUgc291cmNlIGZpbGUgb3IgcnVsZSB0aGF0IGNyZWF0ZXMgaXQuIE15IGZpcnN0IGluc3RpbmN0LCBhbmQgdGhlIG1vc3QgbG9naWNhbCBhcHByb2FjaCwgaXMgdG8gdXNlIGBncmVwYC4gSSdsbCB1c2UgaXQgdG8gc2VhcmNoIHRocm91Z2ggdGhlIGBkcml2ZXJzL25ldC93YW4vTWFrZWZpbGVgIGZpbGUuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGxvb2sgZm9yIGFueSBpbnN0YW5jZXMgb2YgYHdhbnhsLm9gIHdpdGhpbiB0aGF0IE1ha2VmaWxlLiBUaGlzIHNob3VsZCByZXZlYWwgdGhlIHJlbGV2YW50IGJ1aWxkIHJ1bGUgb3IgZGVwZW5kZW5jeS4gR3JlcHBpbmcgaXMgb2Z0ZW4gdGhlIGZhc3Rlc3Qgd2F5IHRvIHRyYWNlIG1vZHVsZSBjcmVhdGlvbiBpbiBjb21wbGV4IGJ1aWxkIHN5c3RlbXMgbGlrZSB0aGlzLiBJdCdzIGEgZnVuZGFtZW50YWwgZGVidWdnaW5nIHN0ZXAsIHBhcnRpY3VsYXJseSB3aGVuIHdvcmtpbmcgd2l0aCBNYWtlZmlsZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzNDIsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwODozNzoyNy44MDI1MDIzOTJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTgyOTU3MDU4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIndhbnhsXFxcXC5vXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dhbi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2FuL01ha2VmaWxlPTIzPW9iai0kKENPTkZJR19DMTAxKVxcdFxcdCs9IGMxMDEub1xcbmRyaXZlcnMvbmV0L3dhbi9NYWtlZmlsZToyNDpvYmotJChDT05GSUdfV0FOWEwpXFx0XFx0Kz0gd2FueGwub1xcbmRyaXZlcnMvbmV0L3dhbi9NYWtlZmlsZS0yNS1vYmotJChDT05GSUdfUENJMjAwU1lOKVxcdFxcdCs9IHBjaTIwMHN5bi5vXFxuLS1cXG5kcml2ZXJzL25ldC93YW4vTWFrZWZpbGU9MzI9Y2xlYW4tZmlsZXMgOj0gd2FueGxmdy5pbmNcXG5kcml2ZXJzL25ldC93YW4vTWFrZWZpbGU6MzM6JChvYmopL3dhbnhsLm86XFx0JChvYmopL3dhbnhsZncuaW5jXFxuZHJpdmVycy9uZXQvd2FuL01ha2VmaWxlLTM0LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwODozNzoyNy45ODU0NjUxNjlaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjA5ODc2NzYxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBpdCB3ZXJlIG15IG93bjpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBXQU5YTCBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBJJ20gbG9va2luZyBhdCBpcyBgQ09ORklHX1dBTlhMYC4gUmlnaHQuIFRoYXQgc3Ryb25nbHkgc3VnZ2VzdHMgd2UncmUgZGVhbGluZyB3aXRoIFdpZGUgQXJlYSBOZXR3b3JrIChXQU4pIGZ1bmN0aW9uYWxpdHkgYW5kIHBvdGVudGlhbGx5IHNvbWUgWGlsaW54LXNwZWNpZmljIGhhcmR3YXJlIG9yIGRyaXZlciBpbnRlcmFjdGlvbiwgZ2l2ZW4gdGhlIFwiWExcIiBzdWZmaXguIE15IGltbWVkaWF0ZSByZWFjdGlvbiBpcyB0byB0cmFjayBkb3duIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIFRoYXQgbWVhbnMgSSBuZWVkIHRvIGRpdmUgaW50byB0aGUga2VybmVsIHNvdXJjZSwgc3BlY2lmaWNhbGx5IHRoZSBuZXR3b3JraW5nIGRyaXZlcnMgcmVsYXRlZCB0byBXQU4gaW50ZXJmYWNlcy4gVGhlIGxvZ2ljYWwgcGxhY2UgdG8gc3RhcnQgaXMgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvd2FuYCBkaXJlY3RvcnkuIEFuZCB0aGUga2V5IGZpbGUgdG8gZXhhbWluZSB0aGVyZSwgd2l0aG91dCBhIGRvdWJ0LCBpcyB0aGUgYEtjb25maWdgIGZpbGUuIFRoYXQncyB3aGVyZSBhbGwgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgZGVmaW5lZCwgYWxvbmcgd2l0aCB0aGVpciBkZXBlbmRlbmNpZXMsIGRlc2NyaXB0aW9ucywgYW5kIHBvdGVudGlhbGx5IHRoZWlyIGRlZmF1bHQgdmFsdWVzLiBUaGUgYFdBTlhMYCBjb25maWd1cmF0aW9uIG9wdGlvbiwgYmVpbmcgdGhlIHNwZWNpZmljIGZvY3VzLCBzaG91bGQgYmUgY2xlYXJseSBkb2N1bWVudGVkIHdpdGhpbiB0aGF0IGBLY29uZmlnYCBmaWxlLiBJIGFudGljaXBhdGUgZmluZGluZyBkZXRhaWxzIGFib3V0IHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIHN1cHBvcnQsIGFueSBkZXBlbmRlbmNpZXMgb24gb3RoZXIga2VybmVsIGNvbXBvbmVudHMsIGFuZCBwcm9iYWJseSBzb21lIGhlbHAgdGV4dCBleHBsYWluaW5nIHdoYXQgZW5hYmxpbmcgdGhpcyBjb25maWd1cmF0aW9uIGVudGFpbHMuIExldCdzIGdldCB0byB0aGF0IGZpbGUgYW5kIHNlZSB3aGF0IHdlIGNhbiBmaW5kLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzIwLCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDg6Mzc6MzEuNTk1MzQ0MTlaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk5NTUwMDg4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBXQU5YTFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93YW4vXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dhbi9LY29uZmlnPTEwMD1jb25maWcgUENJMjAwU1lOXFxuLS1cXG5kcml2ZXJzL25ldC93YW4vS2NvbmZpZy0xMTMtXFxuZHJpdmVycy9uZXQvd2FuL0tjb25maWc6MTE0OmNvbmZpZyBXQU5YTFxcbmRyaXZlcnMvbmV0L3dhbi9LY29uZmlnLTExNS1cXHR0cmlzdGF0ZSBcXFwiU0JFIEluYy4gd2FuWEwgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dhbi9LY29uZmlnLTEyNy1cXG5kcml2ZXJzL25ldC93YW4vS2NvbmZpZzoxMjg6Y29uZmlnIFdBTlhMX0JVSUxEX0ZJUk1XQVJFXFxuZHJpdmVycy9uZXQvd2FuL0tjb25maWctMTI5LVxcdGJvb2wgXFxcInJlYnVpbGQgd2FuWEwgZmlybXdhcmVcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA4OjM3OjMxLjc5NDkwMDA0OFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyNjIzMzAxMjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyB0aGUgV0FOWEwgRGVwZW5kZW5jaWVzKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiV2hhdCdzIHRoZSByZWxhdGlvbnNoaXAgbGFuZHNjYXBlIG9mIGBXQU5YTGAgbG9va2luZyBsaWtlP1wiIEkgbmVlZCBhIGNsZWFyIHBpY3R1cmUgb2YgaXRzIGRlcGVuZGVuY2llcy4gS25vd2luZyB0aGlzIGlzIGZ1bmRhbWVudGFsLiBBcmUgd2UgdGFsa2luZyBhYm91dCBjb3JlIGluZnJhc3RydWN0dXJlIGNvbXBvbmVudHMsIHNwZWNpZmljIGxpYnJhcmllcywgb3IgcGVyaGFwcyBleHRlcm5hbCBzZXJ2aWNlcz8gSSBoYXZlIHRvIHVuZGVyc3RhbmQgdGhlIGFyY2hpdGVjdHVyZSwgYW5kIHRoYXQgbWVhbnMgdHJhY2luZyB0aGUgbGluZWFnZS4gV2hhdCBtb2R1bGVzIG9yIGZ1bmN0aW9ucyAqcmVseSogb24gYFdBTlhMYCwgYW5kIGNvbnZlcnNlbHksIHdoYXQgZG9lcyBgV0FOWExgIGxlYW4gb24/IEFyZSB0aGVyZSBhbnkgb2J2aW91cyBwb2ludHMgb2YgZnJhZ2lsaXR5LCBib3R0bGVuZWNrcywgb3IgYXJlYXMgdGhhdCBjb3VsZCBiZWNvbWUgcGVyZm9ybWFuY2UgZHJhZ3MgaWYgYSBkZXBlbmRlbmN5IGdvZXMgc2lkZXdheXM/IEknbSBhbHJlYWR5IGFudGljaXBhdGluZyBwb3RlbnRpYWwgcHJvYmxlbXMg4oCTIGFyZSB0aGVzZSBkZXBlbmRlbmNpZXMgd2VsbC1tYWludGFpbmVkPyBBcmUgdGhleSB2ZXJzaW9uLWxvY2tlZCwgb3Igc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzPyBIb3cgcm9idXN0IGFyZSB0aGUgdGVzdGluZyBmcmFtZXdvcmtzIGFyb3VuZCB0aGVzZSBjb21wb25lbnRzPyBUaW1lIHRvIGdldCBncmFudWxhciwgYW5kIHN0YXJ0IG1hcHBpbmcgdGhhdCBkZXBlbmRlbmN5IGdyYXBoLiBUaGlzIGlzIHRoZSBmb3VuZGF0aW9uIGZvciBhbnkgZnVydGhlciBhbmFseXNpcyBvciBvcHRpbWl6YXRpb24uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByaXBwbGUgZWZmZWN0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzE3NiwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA4OjM3OjM1LjA1NzIzMjc5NFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjc4ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2FuL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMTE0LFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMTE0OlxcdGNvbmZpZyBXQU5YTFxcbiAxMTU6XFx0XFx0dHJpc3RhdGUgXFxcIlNCRSBJbmMuIHdhblhMIHN1cHBvcnRcXFwiXFxuIDExNjpcXHRcXHRkZXBlbmRzIG9uIEhETEMgXFx1MDAyNlxcdTAwMjYgUENJXFxuIDExNzpcXHRcXHRoZWxwXFxuIDExODpcXHRcXHQgIERyaXZlciBmb3Igd2FuWEwgUENJIGNhcmRzIGJ5IFNCRSBJbmMuXFxuIDExOTpcXHRcXG4gMTIwOlxcdFxcdCAgSWYgeW91IGhhdmUgc3VjaCBhIGNhcmQsIHNheSBZIGhlcmUgYW5kIHNlZVxcbiAxMjE6XFx0XFx0ICBcXHUwMDNjaHR0cDovL3d3dy5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy9uZXQvaGRsYy9cXHUwMDNlLlxcbiAxMjI6XFx0XFxuIDEyMzpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXFxuIDEyNDpcXHRcXHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCB3YW54bC5cXG4gMTI1OlxcdFxcbiAxMjY6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBOLlxcbiAxMjc6XFx0XFxuIDEyODpcXHRjb25maWcgV0FOWExfQlVJTERfRklSTVdBUkVcXG4gMTI5OlxcdFxcdGJvb2wgXFxcInJlYnVpbGQgd2FuWEwgZmlybXdhcmVcXFwiXFxuIDEzMDpcXHRcXHRkZXBlbmRzIG9uIFdBTlhMIFxcdTAwMjZcXHUwMDI2ICFQUkVWRU5UX0ZJUk1XQVJFX0JVSUxEXFxuIDEzMTpcXHRcXHRoZWxwXFxuIDEzMjpcXHRcXHQgIEFsbG93cyB5b3UgdG8gcmVidWlsZCBmaXJtd2FyZSBydW4gYnkgdGhlIFFVSUNDIHByb2Nlc3Nvci5cXG4gMTMzOlxcdFxcdCAgSXQgcmVxdWlyZXMgbTY4ayB0b29sY2hhaW5zIGFuZCBoZXhkdW1wIHByb2dyYW1zLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwODozNzozNS4wNTc0NjM0OTRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTU0MzA3NjMwMzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBXYW54bCBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRoZSBrZXkgY29uZmlnIG9wdGlvbiBoZXJlIGlzIGBDT05GSUdfV0FOWExgLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHNlZW1zIHRvIGJlIGluIHRoZSBmdW5jdGlvbiBgd2FueGxfcGNpX3JlbW92ZV9vbmVgLiBUaGlzIGlzIGEgKmZ1bmN0aW9uYWwqIGNoYW5nZSwgbWVhbmluZyBpdCdzIGZpeGluZyBhIGJ1ZyB0aGF0IG9jY3VycyB3aGVuIHRoZSBkZXZpY2UgaXMgYmVpbmcgcmVtb3ZlZC4gR29vZCwgaW1wb3J0YW50IHRvIGZpeCBkZXZpY2UgcmVtb3ZhbCBidWdzLlxuXG5Ob3csIHRoZSBxdWVzdGlvbiBpcywgY2FuIHRoaXMgYmUgZnV6emVkPyBEZWZpbml0ZWx5LiBQQ0kgZGV2aWNlIHJlbW92YWwgY2FuIGJlIHRyaWdnZXJlZCBieSB0b29scyBsaWtlIHN5emthbGxlci4gSG90cGx1Z2dpbmcsIHJlc291cmNlIGV4aGF1c3Rpb24sIGFueSBudW1iZXIgb2YgbWVjaGFuaXNtcyBjb3VsZCBleHBvc2UgYSBidWcgaGVyZS4gTXkgZm9jdXMgc2hvdWxkIGFic29sdXRlbHkgYmUgb24gdGhhdCBgd2FueGxfcGNpX3JlbW92ZV9vbmVgIGZ1bmN0aW9uLlxuXG5KdXN0IHRvIGJlIHRob3JvdWdoLCBJIHNob3VsZCBjaGVjayBpZiBgd2FueGxfcmVzZXRgIGlzIGRlZmluZWQgc29tZXdoZXJlIGluIGB3YW54bC5jYC4gUXVpY2sgc2FuaXR5IGNoZWNrIGlzIGFsd2F5cyBnb29kLiBHaXZlbiBpdCdzIGEgcmVtb3ZhbCBmaXgsIHRoZXJlIGNvdWxkIGJlIGEgZGVwZW5kZW5jeSBvbiByZXNldHRpbmcgYmVmb3JlIHVuYmluZGluZy4gRmluYWxseSwgSSdsbCBuZWVkIHRvIGVuYWJsZSB0aGUgYFdBTlhMYCBjb25maWd1cmF0aW9uIHRvIHRyaWdnZXIgdGhpcyBmaXguXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3NDksIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwODozNzo1MC40ODgyMjk0NjdaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4MzIzMzA2NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ3YW54bF9yZXNldFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93YW4vd2FueGwuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93YW4vd2FueGwuYz00NzY9c3RhdGljIGludCB3YW54bF9wdXRzX2NvbW1hbmQoc3RydWN0IGNhcmQgKmNhcmQsIHUzMiBjbWQpXFxuLS1cXG5kcml2ZXJzL25ldC93YW4vd2FueGwuYy00OTAtXFxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmM6NDkxOnN0YXRpYyB2b2lkIHdhbnhsX3Jlc2V0KHN0cnVjdCBjYXJkICpjYXJkKVxcbmRyaXZlcnMvbmV0L3dhbi93YW54bC5jLTQ5Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93YW4vd2FueGwuYz01MDM9c3RhdGljIHZvaWQgd2FueGxfcGNpX3JlbW92ZV9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93YW4vd2FueGwuYy01MTctXFx0aWYgKGNhcmQtXFx1MDAzZXBseClcXG5kcml2ZXJzL25ldC93YW4vd2FueGwuYzo1MTg6XFx0XFx0d2FueGxfcmVzZXQoY2FyZCk7XFxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmMtNTE5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmM9NTUwPXN0YXRpYyBpbnQgd2FueGxfcGNpX2luaXRfb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmMtNjQ3LSNpZiBSRVNFVF9XSElMRV9MT0FESU5HXFxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmM6NjQ4OlxcdHdhbnhsX3Jlc2V0KGNhcmQpO1xcbmRyaXZlcnMvbmV0L3dhbi93YW54bC5jLTY0OS0jZW5kaWZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDg6Mzc6NTAuOTcxNDY4NDkxWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyOTU4MzU0NzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBTdHJhdGVneSBmb3Igd2FueGxfcGNpX3JlbW92ZV9vbmUgRml4KipcblxuT2theSwgc28gdGhlIGZpeCBpcyBpbiBgd2FueGxfcGNpX3JlbW92ZV9vbmVgLiBHaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBkcml2ZXIgYW5kIHRoZSBuYXR1cmUgb2YgdGhlIGNoYW5nZSwgaXQgbWFrZXMgcGVyZmVjdCBzZW5zZSB0byBmb2N1cyBteSBmdXp6aW5nIGVmZm9ydHMgaGVyZS4gVGhlIHBhdGNoIGFkZHJlc3NlcyBhIHBvdGVudGlhbCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgZHVyaW5nIFBDSSBkZXZpY2UgcmVtb3ZhbCwgd2hpY2ggbWVhbnMgZnV6emluZyB0aGUgaW5pdGlhbGl6YXRpb24gYW5kIHJlbW92YWwgc2VxdWVuY2VzIGlzIHRoZSBrZXkuIFRoZXJlZm9yZSwgSSdtIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nYCB0byBgdHJ1ZWAg4oCTIGl0J3MgZGVmaW5pdGVseSBhIHZpYWJsZSB0YXJnZXQuIEkgd2lsbCBzZXQgdGhlIGBGb2N1c1N5bWJvbHNgIHRvIGB3YW54bF9wY2lfcmVtb3ZlX29uZWAgdG8gZGlyZWN0IHRoZSBmdXp6ZXIgcHJlY2lzZWx5IHRvIHRoZSBjaGFuZ2VkIGZ1bmN0aW9uLiBUaGVuLCBJIG5lZWQgdG8gbGltaXQgdGhlIHNjb3BlIHNvbWV3aGF0IHRvIGF2b2lkIHN3YW1waW5nIHRoZSBmdXp6ZXIsIGFuZCBiZWNhdXNlIHRoZSBmdW5jdGlvbiBpcyByZWxhdGVkIHRvIHRoZSB3YW54bCBkcml2ZXIsIGBFbmFibGVDb25maWdzYCB3aWxsIGJlIHNldCB0byBgV0FOWExgIHRvIGNvbnN0cmFpbiB0aGUgYnVpbGQgZW52aXJvbm1lbnQgYW5kIGhvcGVmdWxseSBrZWVwIHRoZSBmdXp6aW5nIGVmZmljaWVudCBhbmQgZWZmZWN0aXZlLiBUaGUgZ29hbCBpcyB0byBmbHVzaCBvdXQgYW55IHJlbWFpbmluZyBpc3N1ZXMgYXJvdW5kIGhvdyB0aGUgZHJpdmVyIGhhbmRsZXMgUENJIGRldmljZSByZW1vdmFsLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDQwLCJPdXRwdXRUb2tlbnMiOjg1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDg6Mzc6NTUuMjY3MzA3MDI0WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU0Nzg1NDU2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJXQU5YTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIndhbnhsX3BjaV9yZW1vdmVfb25lXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBQQ0kgZGV2aWNlIHJlbW92YWwgcGF0aCBvZiB0aGUgd2FuWEwgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgdGVzdGVkIGJ5IGZ1enppbmcgUENJIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgcmVtb3ZhbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJXQU5YTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIndhbnhsX3BjaV9yZW1vdmVfb25lXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBQQ0kgZGV2aWNlIHJlbW92YWwgcGF0aCBvZiB0aGUgd2FuWEwgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgdGVzdGVkIGJ5IGZ1enppbmcgUENJIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgcmVtb3ZhbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workfloww8pzf[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-09 08:06:15 +0000 UTC FinishedAt: 2026-07-09 08:37:56 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "WANXL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "WANXL" ], "series_id": "bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "wanxl_pci_remove_one" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA5IDA4OjM2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1dBTlhMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7d2FueGxfcGNpX3JlbW92ZV9vbmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBQQ0kgZGV2aWNlIHJlbW92YWwgcGF0aCBvZiB0aGUgd2FuWEwgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgdGVzdGVkIGJ5IGZ1enppbmcgUENJIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgcmVtb3ZhbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwODozNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDM0MTY4MzA4YTFmM2RlZjJjMmE0NGE2YjM1MzM3NDBiZGY3ZTBmNTRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCA5IDA4OjM2OjQxIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dhbi93YW54bC5jIGIvZHJpdmVycy9uZXQvd2FuL3dhbnhsLmNcbmluZGV4IGQ0ZGE4OGM3NzExMjkxLi4wNjVjMDBjMTJjYzE2OCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dhbi93YW54bC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93YW4vd2FueGwuY1xuQEAgLTUxNCw3ICYjNDM7NTE0LDggQEAgc3RhdGljIHZvaWQgd2FueGxfcGNpX3JlbW92ZV9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gXHRpZiAoY2FyZC1cdTAwM2VpcnEpXG4gXHRcdGZyZWVfaXJxKGNhcmQtXHUwMDNlaXJxLCBjYXJkKTtcbiBcbi1cdHdhbnhsX3Jlc2V0KGNhcmQpO1xuJiM0MztcdGlmIChjYXJkLVx1MDAzZXBseClcbiYjNDM7XHRcdHdhbnhsX3Jlc2V0KGNhcmQpO1xuIFxuIFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgUlhfUVVFVUVfTEVOR1RIOyBpJiM0MzsmIzQzOylcbiBcdFx0aWYgKGNhcmQtXHUwMDNlcnhfc2tic1tpXSkge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA4OjM2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1dBTlhMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7d2FueGxfcGNpX3JlbW92ZV9vbmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBQQ0kgZGV2aWNlIHJlbW92YWwgcGF0aCBvZiB0aGUgd2FuWEwgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgdGVzdGVkIGJ5IGZ1enppbmcgUENJIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgcmVtb3ZhbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMzQxNjgzMDhhMWYzZGVmMmMyYTQ0YTZiMzUzMzc0MGJkZjdlMGY1NApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDkgMDg6MzY6NDEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93YW4vd2FueGwuYyBiL2RyaXZlcnMvbmV0L3dhbi93YW54bC5jCmluZGV4IGQ0ZGE4OGM3NzExMjkxLi4wNjVjMDBjMTJjYzE2OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2FuL3dhbnhsLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2FuL3dhbnhsLmMKQEAgLTUxNCw3ICYjNDM7NTE0LDggQEAgc3RhdGljIHZvaWQgd2FueGxfcGNpX3JlbW92ZV9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAJaWYgKGNhcmQtJmd0O2lycSkKIAkJZnJlZV9pcnEoY2FyZC0mZ3Q7aXJxLCBjYXJkKTsKIAotCXdhbnhsX3Jlc2V0KGNhcmQpOwomIzQzOwlpZiAoY2FyZC0mZ3Q7cGx4KQomIzQzOwkJd2FueGxfcmVzZXQoY2FyZCk7CiAKIAlmb3IgKGkgPSAwOyBpICZsdDsgUlhfUVVFVUVfTEVOR1RIOyBpJiM0MzsmIzQzOykKIAkJaWYgKGNhcmQtJmd0O3J4X3NrYnNbaV0pIHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDg6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTg0NgoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDE2OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBXQU5YTCBEcml2ZXIgUGF0Y2ggYW5kIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvd2FuL3dhbnhsLmNgLiBJdCBzZWVtcyB0aGV5JiMzOTtyZSBhZGRpbmcgYSBudWxsIGNoZWNrIG9uIGBjYXJkLSZndDtwbHhgIHdpdGhpbiBgd2FueGxfcGNpX3JlbW92ZV9vbmVgIGJlZm9yZSBjYWxsaW5nIGB3YW54bF9yZXNldChjYXJkKWAuIE1ha2VzIHNlbnNlLiBMb29rcyBsaWtlIGEgc29saWQgZml4IHRvIHByZXZlbnQgYSBwb3NzaWJsZSBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UsIG9yIHNvbWV0aGluZyBzaW1pbGFyLCBkdXJpbmcgUENJIGRldmljZSByZW1vdmFsIGlmIGBjYXJkLSZndDtwbHhgIGlzbiYjMzk7dCBpbml0aWFsaXplZC4gVGhlc2Uga2luZHMgb2YgY2hlY2tzIGFyZSBhbHdheXMgYSBnb29kIHByYWN0aWNlLCBlc3BlY2lhbGx5IGluIGRyaXZlcnMuCgpOb3csIG15IG1pbmQmIzM5O3MgYWxyZWFkeSBkcmlmdGluZyB0b3dhcmRzIGZ1enppbmcgdGhpcyBkcml2ZXIuIEl0JiMzOTtzIGEgUENJIGRyaXZlciBmb3IgdGhvc2UgU0JFIEluYy4gd2FuWEwgY2FyZHMuIFRoZSBpbnRlcmVzdGluZyBwYXJ0IGlzIHRoYXQgc2luY2UgaXQmIzM5O3MgYSBQQ0kgZHJpdmVyLCB3ZSAqc2hvdWxkKiBiZSBhYmxlIHRvIGxldmVyYWdlIHN5emthbGxlciYjMzk7cyBwc2V1ZG8tUENJIGRldmljZSBpbmplY3Rpb24gZm9yIGZ1enppbmcsIHByb3ZpZGVkIHRoYXQgb3B0aW9uIGlzIGVuYWJsZWQsIG9mIGNvdXJzZS4gU28sIGJlZm9yZSBJIGRpZyB0b28gZGVlcCBpbnRvIHRoZSBjb2RlLCBJIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgZW50cnkgZm9yIGB3YW54bC5jYCB0byBjb25maXJtIHRoZSBmdXp6aW5nIHBvdGVudGlhbC4gSXQgd2lsbCBsZXQgbWUga25vdyBpZiB0aGVyZSYjMzk7cyBhbnkgb2J2aW91cyBpbXBlZGltZW50IHRvIHRoYXQgYXBwcm9hY2ggYW5kIHdoZXRoZXIgYW55IHNwZWNpYWwgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCBmb3IgZnV6emluZyB0aGlzIHNwZWNpZmljIGRyaXZlci4gVGhlbiBJJiMzOTtsbCBoYXZlIGEgZ29vZCBpZGVhIG9mIHRoZSBiZXN0IGFwcHJvYWNoIHRvIHRha2UgdG8gZ2V0IHN0YXJ0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDg6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt3YW54bFxcLmMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93YW4vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwODozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzQyCgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6CgoqKk5hdmlnYXRpbmcgdGhlIFdBTiBEcml2ZXIgTWFrZWZpbGUqKgoKT2theSwgc28gSSYjMzk7bSB0cnlpbmcgdG8gZmlndXJlIG91dCB3aGVyZSBgd2FueGwub2AgY29tZXMgZnJvbSBpbiB0aGUga2VybmVsIGJ1aWxkIHByb2Nlc3MuIEkgbmVlZCB0byBwaW5wb2ludCB0aGUgc291cmNlIGZpbGUgb3IgcnVsZSB0aGF0IGNyZWF0ZXMgaXQuIE15IGZpcnN0IGluc3RpbmN0LCBhbmQgdGhlIG1vc3QgbG9naWNhbCBhcHByb2FjaCwgaXMgdG8gdXNlIGBncmVwYC4gSSYjMzk7bGwgdXNlIGl0IHRvIHNlYXJjaCB0aHJvdWdoIHRoZSBgZHJpdmVycy9uZXQvd2FuL01ha2VmaWxlYCBmaWxlLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBsb29rIGZvciBhbnkgaW5zdGFuY2VzIG9mIGB3YW54bC5vYCB3aXRoaW4gdGhhdCBNYWtlZmlsZS4gVGhpcyBzaG91bGQgcmV2ZWFsIHRoZSByZWxldmFudCBidWlsZCBydWxlIG9yIGRlcGVuZGVuY3kuIEdyZXBwaW5nIGlzIG9mdGVuIHRoZSBmYXN0ZXN0IHdheSB0byB0cmFjZSBtb2R1bGUgY3JlYXRpb24gaW4gY29tcGxleCBidWlsZCBzeXN0ZW1zIGxpa2UgdGhpcy4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBkZWJ1Z2dpbmcgc3RlcCwgcGFydGljdWxhcmx5IHdoZW4gd29ya2luZyB3aXRoIE1ha2VmaWxlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwODozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt3YW54bFxcLm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93YW4vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dhbi9NYWtlZmlsZT0yMz1vYmotJChDT05GSUdfQzEwMSlcdFx0JiM0Mzs9IGMxMDEub1xuZHJpdmVycy9uZXQvd2FuL01ha2VmaWxlOjI0Om9iai0kKENPTkZJR19XQU5YTClcdFx0JiM0Mzs9IHdhbnhsLm9cbmRyaXZlcnMvbmV0L3dhbi9NYWtlZmlsZS0yNS1vYmotJChDT05GSUdfUENJMjAwU1lOKVx0XHQmIzQzOz0gcGNpMjAwc3luLm9cbi0tXG5kcml2ZXJzL25ldC93YW4vTWFrZWZpbGU9MzI9Y2xlYW4tZmlsZXMgOj0gd2FueGxmdy5pbmNcbmRyaXZlcnMvbmV0L3dhbi9NYWtlZmlsZTozMzokKG9iaikvd2FueGwubzpcdCQob2JqKS93YW54bGZ3LmluY1xuZHJpdmVycy9uZXQvd2FuL01ha2VmaWxlLTM0LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA4OjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3MjAKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiAyOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIGl0IHdlcmUgbXkgb3duOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBXQU5YTCBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gSSYjMzk7bSBsb29raW5nIGF0IGlzIGBDT05GSUdfV0FOWExgLiBSaWdodC4gVGhhdCBzdHJvbmdseSBzdWdnZXN0cyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIFdpZGUgQXJlYSBOZXR3b3JrIChXQU4pIGZ1bmN0aW9uYWxpdHkgYW5kIHBvdGVudGlhbGx5IHNvbWUgWGlsaW54LXNwZWNpZmljIGhhcmR3YXJlIG9yIGRyaXZlciBpbnRlcmFjdGlvbiwgZ2l2ZW4gdGhlICYjMzQ7WEwmIzM0OyBzdWZmaXguIE15IGltbWVkaWF0ZSByZWFjdGlvbiBpcyB0byB0cmFjayBkb3duIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIFRoYXQgbWVhbnMgSSBuZWVkIHRvIGRpdmUgaW50byB0aGUga2VybmVsIHNvdXJjZSwgc3BlY2lmaWNhbGx5IHRoZSBuZXR3b3JraW5nIGRyaXZlcnMgcmVsYXRlZCB0byBXQU4gaW50ZXJmYWNlcy4gVGhlIGxvZ2ljYWwgcGxhY2UgdG8gc3RhcnQgaXMgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvd2FuYCBkaXJlY3RvcnkuIEFuZCB0aGUga2V5IGZpbGUgdG8gZXhhbWluZSB0aGVyZSwgd2l0aG91dCBhIGRvdWJ0LCBpcyB0aGUgYEtjb25maWdgIGZpbGUuIFRoYXQmIzM5O3Mgd2hlcmUgYWxsIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIGRlZmluZWQsIGFsb25nIHdpdGggdGhlaXIgZGVwZW5kZW5jaWVzLCBkZXNjcmlwdGlvbnMsIGFuZCBwb3RlbnRpYWxseSB0aGVpciBkZWZhdWx0IHZhbHVlcy4gVGhlIGBXQU5YTGAgY29uZmlndXJhdGlvbiBvcHRpb24sIGJlaW5nIHRoZSBzcGVjaWZpYyBmb2N1cywgc2hvdWxkIGJlIGNsZWFybHkgZG9jdW1lbnRlZCB3aXRoaW4gdGhhdCBgS2NvbmZpZ2AgZmlsZS4gSSBhbnRpY2lwYXRlIGZpbmRpbmcgZGV0YWlscyBhYm91dCB0aGUgdW5kZXJseWluZyBoYXJkd2FyZSBzdXBwb3J0LCBhbnkgZGVwZW5kZW5jaWVzIG9uIG90aGVyIGtlcm5lbCBjb21wb25lbnRzLCBhbmQgcHJvYmFibHkgc29tZSBoZWxwIHRleHQgZXhwbGFpbmluZyB3aGF0IGVuYWJsaW5nIHRoaXMgY29uZmlndXJhdGlvbiBlbnRhaWxzLiBMZXQmIzM5O3MgZ2V0IHRvIHRoYXQgZmlsZSBhbmQgc2VlIHdoYXQgd2UgY2FuIGZpbmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDg6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFdBTlhMJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2FuLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93YW4vS2NvbmZpZz0xMDA9Y29uZmlnIFBDSTIwMFNZTlxuLS1cbmRyaXZlcnMvbmV0L3dhbi9LY29uZmlnLTExMy1cbmRyaXZlcnMvbmV0L3dhbi9LY29uZmlnOjExNDpjb25maWcgV0FOWExcbmRyaXZlcnMvbmV0L3dhbi9LY29uZmlnLTExNS1cdHRyaXN0YXRlIFwmIzM0O1NCRSBJbmMuIHdhblhMIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93YW4vS2NvbmZpZy0xMjctXG5kcml2ZXJzL25ldC93YW4vS2NvbmZpZzoxMjg6Y29uZmlnIFdBTlhMX0JVSUxEX0ZJUk1XQVJFXG5kcml2ZXJzL25ldC93YW4vS2NvbmZpZy0xMjktXHRib29sIFwmIzM0O3JlYnVpbGQgd2FuWEwgZmlybXdhcmVcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwODozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTc2CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIHRoZSBXQU5YTCBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW4uIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O1doYXQmIzM5O3MgdGhlIHJlbGF0aW9uc2hpcCBsYW5kc2NhcGUgb2YgYFdBTlhMYCBsb29raW5nIGxpa2U/JiMzNDsgSSBuZWVkIGEgY2xlYXIgcGljdHVyZSBvZiBpdHMgZGVwZW5kZW5jaWVzLiBLbm93aW5nIHRoaXMgaXMgZnVuZGFtZW50YWwuIEFyZSB3ZSB0YWxraW5nIGFib3V0IGNvcmUgaW5mcmFzdHJ1Y3R1cmUgY29tcG9uZW50cywgc3BlY2lmaWMgbGlicmFyaWVzLCBvciBwZXJoYXBzIGV4dGVybmFsIHNlcnZpY2VzPyBJIGhhdmUgdG8gdW5kZXJzdGFuZCB0aGUgYXJjaGl0ZWN0dXJlLCBhbmQgdGhhdCBtZWFucyB0cmFjaW5nIHRoZSBsaW5lYWdlLiBXaGF0IG1vZHVsZXMgb3IgZnVuY3Rpb25zICpyZWx5KiBvbiBgV0FOWExgLCBhbmQgY29udmVyc2VseSwgd2hhdCBkb2VzIGBXQU5YTGAgbGVhbiBvbj8gQXJlIHRoZXJlIGFueSBvYnZpb3VzIHBvaW50cyBvZiBmcmFnaWxpdHksIGJvdHRsZW5lY2tzLCBvciBhcmVhcyB0aGF0IGNvdWxkIGJlY29tZSBwZXJmb3JtYW5jZSBkcmFncyBpZiBhIGRlcGVuZGVuY3kgZ29lcyBzaWRld2F5cz8gSSYjMzk7bSBhbHJlYWR5IGFudGljaXBhdGluZyBwb3RlbnRpYWwgcHJvYmxlbXMg4oCTIGFyZSB0aGVzZSBkZXBlbmRlbmNpZXMgd2VsbC1tYWludGFpbmVkPyBBcmUgdGhleSB2ZXJzaW9uLWxvY2tlZCwgb3Igc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzPyBIb3cgcm9idXN0IGFyZSB0aGUgdGVzdGluZyBmcmFtZXdvcmtzIGFyb3VuZCB0aGVzZSBjb21wb25lbnRzPyBUaW1lIHRvIGdldCBncmFudWxhciwgYW5kIHN0YXJ0IG1hcHBpbmcgdGhhdCBkZXBlbmRlbmN5IGdyYXBoLiBUaGlzIGlzIHRoZSBmb3VuZGF0aW9uIGZvciBhbnkgZnVydGhlciBhbmFseXNpcyBvciBvcHRpbWl6YXRpb24uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByaXBwbGUgZWZmZWN0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDg6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93YW4vS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDExNCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMTE0Olx0Y29uZmlnIFdBTlhMXG4gMTE1Olx0XHR0cmlzdGF0ZSBcJiMzNDtTQkUgSW5jLiB3YW5YTCBzdXBwb3J0XCYjMzQ7XG4gMTE2Olx0XHRkZXBlbmRzIG9uIEhETEMgXHUwMDI2XHUwMDI2IFBDSVxuIDExNzpcdFx0aGVscFxuIDExODpcdFx0ICBEcml2ZXIgZm9yIHdhblhMIFBDSSBjYXJkcyBieSBTQkUgSW5jLlxuIDExOTpcdFxuIDEyMDpcdFx0ICBJZiB5b3UgaGF2ZSBzdWNoIGEgY2FyZCwgc2F5IFkgaGVyZSBhbmQgc2VlXG4gMTIxOlx0XHQgIFx1MDAzY2h0dHA6Ly93d3cua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvbmV0L2hkbGMvXHUwMDNlLlxuIDEyMjpcdFxuIDEyMzpcdFx0ICBUbyBjb21waWxlIHRoaXMgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZVxuIDEyNDpcdFx0ICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgd2FueGwuXG4gMTI1Olx0XG4gMTI2Olx0XHQgIElmIHVuc3VyZSwgc2F5IE4uXG4gMTI3Olx0XG4gMTI4Olx0Y29uZmlnIFdBTlhMX0JVSUxEX0ZJUk1XQVJFXG4gMTI5Olx0XHRib29sIFwmIzM0O3JlYnVpbGQgd2FuWEwgZmlybXdhcmVcJiMzNDtcbiAxMzA6XHRcdGRlcGVuZHMgb24gV0FOWEwgXHUwMDI2XHUwMDI2ICFQUkVWRU5UX0ZJUk1XQVJFX0JVSUxEXG4gMTMxOlx0XHRoZWxwXG4gMTMyOlx0XHQgIEFsbG93cyB5b3UgdG8gcmVidWlsZCBmaXJtd2FyZSBydW4gYnkgdGhlIFFVSUNDIHByb2Nlc3Nvci5cbiAxMzM6XHRcdCAgSXQgcmVxdWlyZXMgbTY4ayB0b29sY2hhaW5zIGFuZCBoZXhkdW1wIHByb2dyYW1zLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwODozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNzQ5CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTE0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgV2FueGwgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRoZSBrZXkgY29uZmlnIG9wdGlvbiBoZXJlIGlzIGBDT05GSUdfV0FOWExgLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHNlZW1zIHRvIGJlIGluIHRoZSBmdW5jdGlvbiBgd2FueGxfcGNpX3JlbW92ZV9vbmVgLiBUaGlzIGlzIGEgKmZ1bmN0aW9uYWwqIGNoYW5nZSwgbWVhbmluZyBpdCYjMzk7cyBmaXhpbmcgYSBidWcgdGhhdCBvY2N1cnMgd2hlbiB0aGUgZGV2aWNlIGlzIGJlaW5nIHJlbW92ZWQuIEdvb2QsIGltcG9ydGFudCB0byBmaXggZGV2aWNlIHJlbW92YWwgYnVncy4KCk5vdywgdGhlIHF1ZXN0aW9uIGlzLCBjYW4gdGhpcyBiZSBmdXp6ZWQ/IERlZmluaXRlbHkuIFBDSSBkZXZpY2UgcmVtb3ZhbCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IHRvb2xzIGxpa2Ugc3l6a2FsbGVyLiBIb3RwbHVnZ2luZywgcmVzb3VyY2UgZXhoYXVzdGlvbiwgYW55IG51bWJlciBvZiBtZWNoYW5pc21zIGNvdWxkIGV4cG9zZSBhIGJ1ZyBoZXJlLiBNeSBmb2N1cyBzaG91bGQgYWJzb2x1dGVseSBiZSBvbiB0aGF0IGB3YW54bF9wY2lfcmVtb3ZlX29uZWAgZnVuY3Rpb24uCgpKdXN0IHRvIGJlIHRob3JvdWdoLCBJIHNob3VsZCBjaGVjayBpZiBgd2FueGxfcmVzZXRgIGlzIGRlZmluZWQgc29tZXdoZXJlIGluIGB3YW54bC5jYC4gUXVpY2sgc2FuaXR5IGNoZWNrIGlzIGFsd2F5cyBnb29kLiBHaXZlbiBpdCYjMzk7cyBhIHJlbW92YWwgZml4LCB0aGVyZSBjb3VsZCBiZSBhIGRlcGVuZGVuY3kgb24gcmVzZXR0aW5nIGJlZm9yZSB1bmJpbmRpbmcuIEZpbmFsbHksIEkmIzM5O2xsIG5lZWQgdG8gZW5hYmxlIHRoZSBgV0FOWExgIGNvbmZpZ3VyYXRpb24gdG8gdHJpZ2dlciB0aGlzIGZpeC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDg6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7d2FueGxfcmVzZXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93YW4vd2FueGwuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93YW4vd2FueGwuYz00NzY9c3RhdGljIGludCB3YW54bF9wdXRzX2NvbW1hbmQoc3RydWN0IGNhcmQgKmNhcmQsIHUzMiBjbWQpXG4tLVxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmMtNDkwLVxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmM6NDkxOnN0YXRpYyB2b2lkIHdhbnhsX3Jlc2V0KHN0cnVjdCBjYXJkICpjYXJkKVxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmMtNDkyLXtcbi0tXG5kcml2ZXJzL25ldC93YW4vd2FueGwuYz01MDM9c3RhdGljIHZvaWQgd2FueGxfcGNpX3JlbW92ZV9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmMtNTE3LVx0aWYgKGNhcmQtXHUwMDNlcGx4KVxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmM6NTE4Olx0XHR3YW54bF9yZXNldChjYXJkKTtcbmRyaXZlcnMvbmV0L3dhbi93YW54bC5jLTUxOS1cbi0tXG5kcml2ZXJzL25ldC93YW4vd2FueGwuYz01NTA9c3RhdGljIGludCB3YW54bF9wY2lfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmMtNjQ3LSNpZiBSRVNFVF9XSElMRV9MT0FESU5HXG5kcml2ZXJzL25ldC93YW4vd2FueGwuYzo2NDg6XHR3YW54bF9yZXNldChjYXJkKTtcbmRyaXZlcnMvbmV0L3dhbi93YW54bC5jLTY0OS0jZW5kaWZcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDg6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDQ0MAoJCQkJCQkJb3V0cHV0OiA4NQoJCQkJCQkJdGhvdWdodHM6IDkwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgU3RyYXRlZ3kgZm9yIHdhbnhsX3BjaV9yZW1vdmVfb25lIEZpeCoqCgpPa2F5LCBzbyB0aGUgZml4IGlzIGluIGB3YW54bF9wY2lfcmVtb3ZlX29uZWAuIEdpdmVuIG15IHVuZGVyc3RhbmRpbmcgb2YgdGhlIGRyaXZlciBhbmQgdGhlIG5hdHVyZSBvZiB0aGUgY2hhbmdlLCBpdCBtYWtlcyBwZXJmZWN0IHNlbnNlIHRvIGZvY3VzIG15IGZ1enppbmcgZWZmb3J0cyBoZXJlLiBUaGUgcGF0Y2ggYWRkcmVzc2VzIGEgcG90ZW50aWFsIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSBkdXJpbmcgUENJIGRldmljZSByZW1vdmFsLCB3aGljaCBtZWFucyBmdXp6aW5nIHRoZSBpbml0aWFsaXphdGlvbiBhbmQgcmVtb3ZhbCBzZXF1ZW5jZXMgaXMgdGhlIGtleS4gVGhlcmVmb3JlLCBJJiMzOTttIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nYCB0byBgdHJ1ZWAg4oCTIGl0JiMzOTtzIGRlZmluaXRlbHkgYSB2aWFibGUgdGFyZ2V0LiBJIHdpbGwgc2V0IHRoZSBgRm9jdXNTeW1ib2xzYCB0byBgd2FueGxfcGNpX3JlbW92ZV9vbmVgIHRvIGRpcmVjdCB0aGUgZnV6emVyIHByZWNpc2VseSB0byB0aGUgY2hhbmdlZCBmdW5jdGlvbi4gVGhlbiwgSSBuZWVkIHRvIGxpbWl0IHRoZSBzY29wZSBzb21ld2hhdCB0byBhdm9pZCBzd2FtcGluZyB0aGUgZnV6emVyLCBhbmQgYmVjYXVzZSB0aGUgZnVuY3Rpb24gaXMgcmVsYXRlZCB0byB0aGUgd2FueGwgZHJpdmVyLCBgRW5hYmxlQ29uZmlnc2Agd2lsbCBiZSBzZXQgdG8gYFdBTlhMYCB0byBjb25zdHJhaW4gdGhlIGJ1aWxkIGVudmlyb25tZW50IGFuZCBob3BlZnVsbHkga2VlcCB0aGUgZnV6emluZyBlZmZpY2llbnQgYW5kIGVmZmVjdGl2ZS4gVGhlIGdvYWwgaXMgdG8gZmx1c2ggb3V0IGFueSByZW1haW5pbmcgaXNzdWVzIGFyb3VuZCBob3cgdGhlIGRyaXZlciBoYW5kbGVzIFBDSSBkZXZpY2UgcmVtb3ZhbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDg6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1dBTlhMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7d2FueGxfcGNpX3JlbW92ZV9vbmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBQQ0kgZGV2aWNlIHJlbW92YWwgcGF0aCBvZiB0aGUgd2FuWEwgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgdGVzdGVkIGJ5IGZ1enppbmcgUENJIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgcmVtb3ZhbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7V0FOWEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt3YW54bF9wY2lfcmVtb3ZlX29uZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdGhlIFBDSSBkZXZpY2UgcmVtb3ZhbCBwYXRoIG9mIHRoZSB3YW5YTCBkcml2ZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGNhbiBiZSB0ZXN0ZWQgYnkgZnV6emluZyBQQ0kgZGV2aWNlIGluaXRpYWxpemF0aW9uIGFuZCByZW1vdmFsLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMDlUMDg6MzY6NDMuNDA1OTYwMzc1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzIxMTYxNTMxMjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiV0FOWExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ3YW54bF9wY2lfcmVtb3ZlX29uZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB0aGUgUENJIGRldmljZSByZW1vdmFsIHBhdGggb2YgdGhlIHdhblhMIGRyaXZlci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgY2FuIGJlIHRlc3RlZCBieSBmdXp6aW5nIFBDSSBkZXZpY2UgaW5pdGlhbGl6YXRpb24gYW5kIHJlbW92YWwuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA4OjM2OjQzLjQwNTk2NzEwNVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzc2NTMxNzU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMzQxNjgzMDhhMWYzZGVmMmMyYTQ0YTZiMzUzMzc0MGJkZjdlMGY1NFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCA5IDA4OjM2OjQxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dhbi93YW54bC5jIGIvZHJpdmVycy9uZXQvd2FuL3dhbnhsLmNcXG5pbmRleCBkNGRhODhjNzcxMTI5MS4uMDY1YzAwYzEyY2MxNjggMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2FuL3dhbnhsLmNcXG4rKysgYi9kcml2ZXJzL25ldC93YW4vd2FueGwuY1xcbkBAIC01MTQsNyArNTE0LDggQEAgc3RhdGljIHZvaWQgd2FueGxfcGNpX3JlbW92ZV9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuIFxcdGlmIChjYXJkLVxcdTAwM2VpcnEpXFxuIFxcdFxcdGZyZWVfaXJxKGNhcmQtXFx1MDAzZWlycSwgY2FyZCk7XFxuIFxcbi1cXHR3YW54bF9yZXNldChjYXJkKTtcXG4rXFx0aWYgKGNhcmQtXFx1MDAzZXBseClcXG4rXFx0XFx0d2FueGxfcmVzZXQoY2FyZCk7XFxuIFxcbiBcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgUlhfUVVFVUVfTEVOR1RIOyBpKyspXFxuIFxcdFxcdGlmIChjYXJkLVxcdTAwM2VyeF9za2JzW2ldKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA4OjM2OjQ0LjE4MzUwNzA0NVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzEzMzg1OTE2NzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiV0FOWExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ3YW54bF9wY2lfcmVtb3ZlX29uZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB0aGUgUENJIGRldmljZSByZW1vdmFsIHBhdGggb2YgdGhlIHdhblhMIGRyaXZlci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgY2FuIGJlIHRlc3RlZCBieSBmdXp6aW5nIFBDSSBkZXZpY2UgaW5pdGlhbGl6YXRpb24gYW5kIHJlbW92YWwuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMzQxNjgzMDhhMWYzZGVmMmMyYTQ0YTZiMzUzMzc0MGJkZjdlMGY1NFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDkgMDg6MzY6NDEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93YW4vd2FueGwuYyBiL2RyaXZlcnMvbmV0L3dhbi93YW54bC5jXG5pbmRleCBkNGRhODhjNzcxMTI5MS4uMDY1YzAwYzEyY2MxNjggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93YW4vd2FueGwuY1xuKysrIGIvZHJpdmVycy9uZXQvd2FuL3dhbnhsLmNcbkBAIC01MTQsNyArNTE0LDggQEAgc3RhdGljIHZvaWQgd2FueGxfcGNpX3JlbW92ZV9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gXHRpZiAoY2FyZC1cdTAwM2VpcnEpXG4gXHRcdGZyZWVfaXJxKGNhcmQtXHUwMDNlaXJxLCBjYXJkKTtcbiBcbi1cdHdhbnhsX3Jlc2V0KGNhcmQpO1xuK1x0aWYgKGNhcmQtXHUwMDNlcGx4KVxuK1x0XHR3YW54bF9yZXNldChjYXJkKTtcbiBcbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIFJYX1FVRVVFX0xFTkdUSDsgaSsrKVxuIFx0XHRpZiAoY2FyZC1cdTAwM2VyeF9za2JzW2ldKSB7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwODozNjo0NC4xODM1MDk1MDVaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNDA0MTY1NTg5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBXQU5YTCBEcml2ZXIgUGF0Y2ggYW5kIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L3dhbi93YW54bC5jYC4gSXQgc2VlbXMgdGhleSdyZSBhZGRpbmcgYSBudWxsIGNoZWNrIG9uIGBjYXJkLVx1MDAzZXBseGAgd2l0aGluIGB3YW54bF9wY2lfcmVtb3ZlX29uZWAgYmVmb3JlIGNhbGxpbmcgYHdhbnhsX3Jlc2V0KGNhcmQpYC4gTWFrZXMgc2Vuc2UuIExvb2tzIGxpa2UgYSBzb2xpZCBmaXggdG8gcHJldmVudCBhIHBvc3NpYmxlIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSwgb3Igc29tZXRoaW5nIHNpbWlsYXIsIGR1cmluZyBQQ0kgZGV2aWNlIHJlbW92YWwgaWYgYGNhcmQtXHUwMDNlcGx4YCBpc24ndCBpbml0aWFsaXplZC4gVGhlc2Uga2luZHMgb2YgY2hlY2tzIGFyZSBhbHdheXMgYSBnb29kIHByYWN0aWNlLCBlc3BlY2lhbGx5IGluIGRyaXZlcnMuXG5cbk5vdywgbXkgbWluZCdzIGFscmVhZHkgZHJpZnRpbmcgdG93YXJkcyBmdXp6aW5nIHRoaXMgZHJpdmVyLiBJdCdzIGEgUENJIGRyaXZlciBmb3IgdGhvc2UgU0JFIEluYy4gd2FuWEwgY2FyZHMuIFRoZSBpbnRlcmVzdGluZyBwYXJ0IGlzIHRoYXQgc2luY2UgaXQncyBhIFBDSSBkcml2ZXIsIHdlICpzaG91bGQqIGJlIGFibGUgdG8gbGV2ZXJhZ2Ugc3l6a2FsbGVyJ3MgcHNldWRvLVBDSSBkZXZpY2UgaW5qZWN0aW9uIGZvciBmdXp6aW5nLCBwcm92aWRlZCB0aGF0IG9wdGlvbiBpcyBlbmFibGVkLCBvZiBjb3Vyc2UuIFNvLCBiZWZvcmUgSSBkaWcgdG9vIGRlZXAgaW50byB0aGUgY29kZSwgSSBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGVudHJ5IGZvciBgd2FueGwuY2AgdG8gY29uZmlybSB0aGUgZnV6emluZyBwb3RlbnRpYWwuIEl0IHdpbGwgbGV0IG1lIGtub3cgaWYgdGhlcmUncyBhbnkgb2J2aW91cyBpbXBlZGltZW50IHRvIHRoYXQgYXBwcm9hY2ggYW5kIHdoZXRoZXIgYW55IHNwZWNpYWwgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCBmb3IgZnV6emluZyB0aGlzIHNwZWNpZmljIGRyaXZlci4gVGhlbiBJJ2xsIGhhdmUgYSBnb29kIGlkZWEgb2YgdGhlIGJlc3QgYXBwcm9hY2ggdG8gdGFrZSB0byBnZXQgc3RhcnRlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg0NiwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2OSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA4OjM3OjA4LjIyNTE2ODE3M1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODUwNDIwNTIsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIndhbnhsXFxcXC5jXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dhbi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA4OjM3OjA4LjgxMDIxODMxNVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE4OTkyMjgxNjQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6XG5cbioqTmF2aWdhdGluZyB0aGUgV0FOIERyaXZlciBNYWtlZmlsZSoqXG5cbk9rYXksIHNvIEknbSB0cnlpbmcgdG8gZmlndXJlIG91dCB3aGVyZSBgd2FueGwub2AgY29tZXMgZnJvbSBpbiB0aGUga2VybmVsIGJ1aWxkIHByb2Nlc3MuIEkgbmVlZCB0byBwaW5wb2ludCB0aGUgc291cmNlIGZpbGUgb3IgcnVsZSB0aGF0IGNyZWF0ZXMgaXQuIE15IGZpcnN0IGluc3RpbmN0LCBhbmQgdGhlIG1vc3QgbG9naWNhbCBhcHByb2FjaCwgaXMgdG8gdXNlIGBncmVwYC4gSSdsbCB1c2UgaXQgdG8gc2VhcmNoIHRocm91Z2ggdGhlIGBkcml2ZXJzL25ldC93YW4vTWFrZWZpbGVgIGZpbGUuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGxvb2sgZm9yIGFueSBpbnN0YW5jZXMgb2YgYHdhbnhsLm9gIHdpdGhpbiB0aGF0IE1ha2VmaWxlLiBUaGlzIHNob3VsZCByZXZlYWwgdGhlIHJlbGV2YW50IGJ1aWxkIHJ1bGUgb3IgZGVwZW5kZW5jeS4gR3JlcHBpbmcgaXMgb2Z0ZW4gdGhlIGZhc3Rlc3Qgd2F5IHRvIHRyYWNlIG1vZHVsZSBjcmVhdGlvbiBpbiBjb21wbGV4IGJ1aWxkIHN5c3RlbXMgbGlrZSB0aGlzLiBJdCdzIGEgZnVuZGFtZW50YWwgZGVidWdnaW5nIHN0ZXAsIHBhcnRpY3VsYXJseSB3aGVuIHdvcmtpbmcgd2l0aCBNYWtlZmlsZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzNDIsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwODozNzoyNy44MDI1MDIzOTJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTgyOTU3MDU4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIndhbnhsXFxcXC5vXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dhbi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2FuL01ha2VmaWxlPTIzPW9iai0kKENPTkZJR19DMTAxKVxcdFxcdCs9IGMxMDEub1xcbmRyaXZlcnMvbmV0L3dhbi9NYWtlZmlsZToyNDpvYmotJChDT05GSUdfV0FOWEwpXFx0XFx0Kz0gd2FueGwub1xcbmRyaXZlcnMvbmV0L3dhbi9NYWtlZmlsZS0yNS1vYmotJChDT05GSUdfUENJMjAwU1lOKVxcdFxcdCs9IHBjaTIwMHN5bi5vXFxuLS1cXG5kcml2ZXJzL25ldC93YW4vTWFrZWZpbGU9MzI9Y2xlYW4tZmlsZXMgOj0gd2FueGxmdy5pbmNcXG5kcml2ZXJzL25ldC93YW4vTWFrZWZpbGU6MzM6JChvYmopL3dhbnhsLm86XFx0JChvYmopL3dhbnhsZncuaW5jXFxuZHJpdmVycy9uZXQvd2FuL01ha2VmaWxlLTM0LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwODozNzoyNy45ODU0NjUxNjlaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjA5ODc2NzYxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBpdCB3ZXJlIG15IG93bjpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBXQU5YTCBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBJJ20gbG9va2luZyBhdCBpcyBgQ09ORklHX1dBTlhMYC4gUmlnaHQuIFRoYXQgc3Ryb25nbHkgc3VnZ2VzdHMgd2UncmUgZGVhbGluZyB3aXRoIFdpZGUgQXJlYSBOZXR3b3JrIChXQU4pIGZ1bmN0aW9uYWxpdHkgYW5kIHBvdGVudGlhbGx5IHNvbWUgWGlsaW54LXNwZWNpZmljIGhhcmR3YXJlIG9yIGRyaXZlciBpbnRlcmFjdGlvbiwgZ2l2ZW4gdGhlIFwiWExcIiBzdWZmaXguIE15IGltbWVkaWF0ZSByZWFjdGlvbiBpcyB0byB0cmFjayBkb3duIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIGRlZmluaXRpb24uIFRoYXQgbWVhbnMgSSBuZWVkIHRvIGRpdmUgaW50byB0aGUga2VybmVsIHNvdXJjZSwgc3BlY2lmaWNhbGx5IHRoZSBuZXR3b3JraW5nIGRyaXZlcnMgcmVsYXRlZCB0byBXQU4gaW50ZXJmYWNlcy4gVGhlIGxvZ2ljYWwgcGxhY2UgdG8gc3RhcnQgaXMgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvd2FuYCBkaXJlY3RvcnkuIEFuZCB0aGUga2V5IGZpbGUgdG8gZXhhbWluZSB0aGVyZSwgd2l0aG91dCBhIGRvdWJ0LCBpcyB0aGUgYEtjb25maWdgIGZpbGUuIFRoYXQncyB3aGVyZSBhbGwgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgZGVmaW5lZCwgYWxvbmcgd2l0aCB0aGVpciBkZXBlbmRlbmNpZXMsIGRlc2NyaXB0aW9ucywgYW5kIHBvdGVudGlhbGx5IHRoZWlyIGRlZmF1bHQgdmFsdWVzLiBUaGUgYFdBTlhMYCBjb25maWd1cmF0aW9uIG9wdGlvbiwgYmVpbmcgdGhlIHNwZWNpZmljIGZvY3VzLCBzaG91bGQgYmUgY2xlYXJseSBkb2N1bWVudGVkIHdpdGhpbiB0aGF0IGBLY29uZmlnYCBmaWxlLiBJIGFudGljaXBhdGUgZmluZGluZyBkZXRhaWxzIGFib3V0IHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIHN1cHBvcnQsIGFueSBkZXBlbmRlbmNpZXMgb24gb3RoZXIga2VybmVsIGNvbXBvbmVudHMsIGFuZCBwcm9iYWJseSBzb21lIGhlbHAgdGV4dCBleHBsYWluaW5nIHdoYXQgZW5hYmxpbmcgdGhpcyBjb25maWd1cmF0aW9uIGVudGFpbHMuIExldCdzIGdldCB0byB0aGF0IGZpbGUgYW5kIHNlZSB3aGF0IHdlIGNhbiBmaW5kLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzIwLCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDg6Mzc6MzEuNTk1MzQ0MTlaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk5NTUwMDg4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBXQU5YTFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93YW4vXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dhbi9LY29uZmlnPTEwMD1jb25maWcgUENJMjAwU1lOXFxuLS1cXG5kcml2ZXJzL25ldC93YW4vS2NvbmZpZy0xMTMtXFxuZHJpdmVycy9uZXQvd2FuL0tjb25maWc6MTE0OmNvbmZpZyBXQU5YTFxcbmRyaXZlcnMvbmV0L3dhbi9LY29uZmlnLTExNS1cXHR0cmlzdGF0ZSBcXFwiU0JFIEluYy4gd2FuWEwgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dhbi9LY29uZmlnLTEyNy1cXG5kcml2ZXJzL25ldC93YW4vS2NvbmZpZzoxMjg6Y29uZmlnIFdBTlhMX0JVSUxEX0ZJUk1XQVJFXFxuZHJpdmVycy9uZXQvd2FuL0tjb25maWctMTI5LVxcdGJvb2wgXFxcInJlYnVpbGQgd2FuWEwgZmlybXdhcmVcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA4OjM3OjMxLjc5NDkwMDA0OFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyNjIzMzAxMjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyB0aGUgV0FOWEwgRGVwZW5kZW5jaWVzKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiV2hhdCdzIHRoZSByZWxhdGlvbnNoaXAgbGFuZHNjYXBlIG9mIGBXQU5YTGAgbG9va2luZyBsaWtlP1wiIEkgbmVlZCBhIGNsZWFyIHBpY3R1cmUgb2YgaXRzIGRlcGVuZGVuY2llcy4gS25vd2luZyB0aGlzIGlzIGZ1bmRhbWVudGFsLiBBcmUgd2UgdGFsa2luZyBhYm91dCBjb3JlIGluZnJhc3RydWN0dXJlIGNvbXBvbmVudHMsIHNwZWNpZmljIGxpYnJhcmllcywgb3IgcGVyaGFwcyBleHRlcm5hbCBzZXJ2aWNlcz8gSSBoYXZlIHRvIHVuZGVyc3RhbmQgdGhlIGFyY2hpdGVjdHVyZSwgYW5kIHRoYXQgbWVhbnMgdHJhY2luZyB0aGUgbGluZWFnZS4gV2hhdCBtb2R1bGVzIG9yIGZ1bmN0aW9ucyAqcmVseSogb24gYFdBTlhMYCwgYW5kIGNvbnZlcnNlbHksIHdoYXQgZG9lcyBgV0FOWExgIGxlYW4gb24/IEFyZSB0aGVyZSBhbnkgb2J2aW91cyBwb2ludHMgb2YgZnJhZ2lsaXR5LCBib3R0bGVuZWNrcywgb3IgYXJlYXMgdGhhdCBjb3VsZCBiZWNvbWUgcGVyZm9ybWFuY2UgZHJhZ3MgaWYgYSBkZXBlbmRlbmN5IGdvZXMgc2lkZXdheXM/IEknbSBhbHJlYWR5IGFudGljaXBhdGluZyBwb3RlbnRpYWwgcHJvYmxlbXMg4oCTIGFyZSB0aGVzZSBkZXBlbmRlbmNpZXMgd2VsbC1tYWludGFpbmVkPyBBcmUgdGhleSB2ZXJzaW9uLWxvY2tlZCwgb3Igc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzPyBIb3cgcm9idXN0IGFyZSB0aGUgdGVzdGluZyBmcmFtZXdvcmtzIGFyb3VuZCB0aGVzZSBjb21wb25lbnRzPyBUaW1lIHRvIGdldCBncmFudWxhciwgYW5kIHN0YXJ0IG1hcHBpbmcgdGhhdCBkZXBlbmRlbmN5IGdyYXBoLiBUaGlzIGlzIHRoZSBmb3VuZGF0aW9uIGZvciBhbnkgZnVydGhlciBhbmFseXNpcyBvciBvcHRpbWl6YXRpb24uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByaXBwbGUgZWZmZWN0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzE3NiwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA4OjM3OjM1LjA1NzIzMjc5NFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjc4ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2FuL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMTE0LFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMTE0OlxcdGNvbmZpZyBXQU5YTFxcbiAxMTU6XFx0XFx0dHJpc3RhdGUgXFxcIlNCRSBJbmMuIHdhblhMIHN1cHBvcnRcXFwiXFxuIDExNjpcXHRcXHRkZXBlbmRzIG9uIEhETEMgXFx1MDAyNlxcdTAwMjYgUENJXFxuIDExNzpcXHRcXHRoZWxwXFxuIDExODpcXHRcXHQgIERyaXZlciBmb3Igd2FuWEwgUENJIGNhcmRzIGJ5IFNCRSBJbmMuXFxuIDExOTpcXHRcXG4gMTIwOlxcdFxcdCAgSWYgeW91IGhhdmUgc3VjaCBhIGNhcmQsIHNheSBZIGhlcmUgYW5kIHNlZVxcbiAxMjE6XFx0XFx0ICBcXHUwMDNjaHR0cDovL3d3dy5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy9uZXQvaGRsYy9cXHUwMDNlLlxcbiAxMjI6XFx0XFxuIDEyMzpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXFxuIDEyNDpcXHRcXHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCB3YW54bC5cXG4gMTI1OlxcdFxcbiAxMjY6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBOLlxcbiAxMjc6XFx0XFxuIDEyODpcXHRjb25maWcgV0FOWExfQlVJTERfRklSTVdBUkVcXG4gMTI5OlxcdFxcdGJvb2wgXFxcInJlYnVpbGQgd2FuWEwgZmlybXdhcmVcXFwiXFxuIDEzMDpcXHRcXHRkZXBlbmRzIG9uIFdBTlhMIFxcdTAwMjZcXHUwMDI2ICFQUkVWRU5UX0ZJUk1XQVJFX0JVSUxEXFxuIDEzMTpcXHRcXHRoZWxwXFxuIDEzMjpcXHRcXHQgIEFsbG93cyB5b3UgdG8gcmVidWlsZCBmaXJtd2FyZSBydW4gYnkgdGhlIFFVSUNDIHByb2Nlc3Nvci5cXG4gMTMzOlxcdFxcdCAgSXQgcmVxdWlyZXMgbTY4ayB0b29sY2hhaW5zIGFuZCBoZXhkdW1wIHByb2dyYW1zLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwODozNzozNS4wNTc0NjM0OTRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTU0MzA3NjMwMzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBXYW54bCBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRoZSBrZXkgY29uZmlnIG9wdGlvbiBoZXJlIGlzIGBDT05GSUdfV0FOWExgLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHNlZW1zIHRvIGJlIGluIHRoZSBmdW5jdGlvbiBgd2FueGxfcGNpX3JlbW92ZV9vbmVgLiBUaGlzIGlzIGEgKmZ1bmN0aW9uYWwqIGNoYW5nZSwgbWVhbmluZyBpdCdzIGZpeGluZyBhIGJ1ZyB0aGF0IG9jY3VycyB3aGVuIHRoZSBkZXZpY2UgaXMgYmVpbmcgcmVtb3ZlZC4gR29vZCwgaW1wb3J0YW50IHRvIGZpeCBkZXZpY2UgcmVtb3ZhbCBidWdzLlxuXG5Ob3csIHRoZSBxdWVzdGlvbiBpcywgY2FuIHRoaXMgYmUgZnV6emVkPyBEZWZpbml0ZWx5LiBQQ0kgZGV2aWNlIHJlbW92YWwgY2FuIGJlIHRyaWdnZXJlZCBieSB0b29scyBsaWtlIHN5emthbGxlci4gSG90cGx1Z2dpbmcsIHJlc291cmNlIGV4aGF1c3Rpb24sIGFueSBudW1iZXIgb2YgbWVjaGFuaXNtcyBjb3VsZCBleHBvc2UgYSBidWcgaGVyZS4gTXkgZm9jdXMgc2hvdWxkIGFic29sdXRlbHkgYmUgb24gdGhhdCBgd2FueGxfcGNpX3JlbW92ZV9vbmVgIGZ1bmN0aW9uLlxuXG5KdXN0IHRvIGJlIHRob3JvdWdoLCBJIHNob3VsZCBjaGVjayBpZiBgd2FueGxfcmVzZXRgIGlzIGRlZmluZWQgc29tZXdoZXJlIGluIGB3YW54bC5jYC4gUXVpY2sgc2FuaXR5IGNoZWNrIGlzIGFsd2F5cyBnb29kLiBHaXZlbiBpdCdzIGEgcmVtb3ZhbCBmaXgsIHRoZXJlIGNvdWxkIGJlIGEgZGVwZW5kZW5jeSBvbiByZXNldHRpbmcgYmVmb3JlIHVuYmluZGluZy4gRmluYWxseSwgSSdsbCBuZWVkIHRvIGVuYWJsZSB0aGUgYFdBTlhMYCBjb25maWd1cmF0aW9uIHRvIHRyaWdnZXIgdGhpcyBmaXguXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3NDksIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwODozNzo1MC40ODgyMjk0NjdaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4MzIzMzA2NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ3YW54bF9yZXNldFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93YW4vd2FueGwuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93YW4vd2FueGwuYz00NzY9c3RhdGljIGludCB3YW54bF9wdXRzX2NvbW1hbmQoc3RydWN0IGNhcmQgKmNhcmQsIHUzMiBjbWQpXFxuLS1cXG5kcml2ZXJzL25ldC93YW4vd2FueGwuYy00OTAtXFxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmM6NDkxOnN0YXRpYyB2b2lkIHdhbnhsX3Jlc2V0KHN0cnVjdCBjYXJkICpjYXJkKVxcbmRyaXZlcnMvbmV0L3dhbi93YW54bC5jLTQ5Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93YW4vd2FueGwuYz01MDM9c3RhdGljIHZvaWQgd2FueGxfcGNpX3JlbW92ZV9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93YW4vd2FueGwuYy01MTctXFx0aWYgKGNhcmQtXFx1MDAzZXBseClcXG5kcml2ZXJzL25ldC93YW4vd2FueGwuYzo1MTg6XFx0XFx0d2FueGxfcmVzZXQoY2FyZCk7XFxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmMtNTE5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmM9NTUwPXN0YXRpYyBpbnQgd2FueGxfcGNpX2luaXRfb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmMtNjQ3LSNpZiBSRVNFVF9XSElMRV9MT0FESU5HXFxuZHJpdmVycy9uZXQvd2FuL3dhbnhsLmM6NjQ4OlxcdHdhbnhsX3Jlc2V0KGNhcmQpO1xcbmRyaXZlcnMvbmV0L3dhbi93YW54bC5jLTY0OS0jZW5kaWZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDg6Mzc6NTAuOTcxNDY4NDkxWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyOTU4MzU0NzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBTdHJhdGVneSBmb3Igd2FueGxfcGNpX3JlbW92ZV9vbmUgRml4KipcblxuT2theSwgc28gdGhlIGZpeCBpcyBpbiBgd2FueGxfcGNpX3JlbW92ZV9vbmVgLiBHaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBkcml2ZXIgYW5kIHRoZSBuYXR1cmUgb2YgdGhlIGNoYW5nZSwgaXQgbWFrZXMgcGVyZmVjdCBzZW5zZSB0byBmb2N1cyBteSBmdXp6aW5nIGVmZm9ydHMgaGVyZS4gVGhlIHBhdGNoIGFkZHJlc3NlcyBhIHBvdGVudGlhbCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgZHVyaW5nIFBDSSBkZXZpY2UgcmVtb3ZhbCwgd2hpY2ggbWVhbnMgZnV6emluZyB0aGUgaW5pdGlhbGl6YXRpb24gYW5kIHJlbW92YWwgc2VxdWVuY2VzIGlzIHRoZSBrZXkuIFRoZXJlZm9yZSwgSSdtIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nYCB0byBgdHJ1ZWAg4oCTIGl0J3MgZGVmaW5pdGVseSBhIHZpYWJsZSB0YXJnZXQuIEkgd2lsbCBzZXQgdGhlIGBGb2N1c1N5bWJvbHNgIHRvIGB3YW54bF9wY2lfcmVtb3ZlX29uZWAgdG8gZGlyZWN0IHRoZSBmdXp6ZXIgcHJlY2lzZWx5IHRvIHRoZSBjaGFuZ2VkIGZ1bmN0aW9uLiBUaGVuLCBJIG5lZWQgdG8gbGltaXQgdGhlIHNjb3BlIHNvbWV3aGF0IHRvIGF2b2lkIHN3YW1waW5nIHRoZSBmdXp6ZXIsIGFuZCBiZWNhdXNlIHRoZSBmdW5jdGlvbiBpcyByZWxhdGVkIHRvIHRoZSB3YW54bCBkcml2ZXIsIGBFbmFibGVDb25maWdzYCB3aWxsIGJlIHNldCB0byBgV0FOWExgIHRvIGNvbnN0cmFpbiB0aGUgYnVpbGQgZW52aXJvbm1lbnQgYW5kIGhvcGVmdWxseSBrZWVwIHRoZSBmdXp6aW5nIGVmZmljaWVudCBhbmQgZWZmZWN0aXZlLiBUaGUgZ29hbCBpcyB0byBmbHVzaCBvdXQgYW55IHJlbWFpbmluZyBpc3N1ZXMgYXJvdW5kIGhvdyB0aGUgZHJpdmVyIGhhbmRsZXMgUENJIGRldmljZSByZW1vdmFsLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDQwLCJPdXRwdXRUb2tlbnMiOjg1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDg6Mzc6NTUuMjY3MzA3MDI0WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU0Nzg1NDU2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJXQU5YTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIndhbnhsX3BjaV9yZW1vdmVfb25lXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBQQ0kgZGV2aWNlIHJlbW92YWwgcGF0aCBvZiB0aGUgd2FuWEwgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgdGVzdGVkIGJ5IGZ1enppbmcgUENJIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgcmVtb3ZhbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJXQU5YTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIndhbnhsX3BjaV9yZW1vdmVfb25lXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBQQ0kgZGV2aWNlIHJlbW92YWwgcGF0aCBvZiB0aGUgd2FuWEwgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBjYW4gYmUgdGVzdGVkIGJ5IGZ1enppbmcgUENJIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgcmVtb3ZhbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workfloww8pzf[1] Phase: Succeeded StartedAt: 2026-07-09 08:39:02 +0000 UTC FinishedAt: 2026-07-09 08:39:02 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-09 08:39:02 +0000 UTC FinishedAt: 2026-07-09 08:39:02 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[2] Phase: Succeeded StartedAt: 2026-07-09 08:39:02 +0000 UTC FinishedAt: 2026-07-09 10:38:54 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-09 08:39:02 +0000 UTC FinishedAt: 2026-07-09 10:38:54 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-09 08:39:02 +0000 UTC FinishedAt: 2026-07-09 08:39:12 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-09 08:39:02 +0000 UTC FinishedAt: 2026-07-09 08:39:10 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workfloww8pzf/series-workfloww8pzf-convert-artifact-4097639239/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-09 08:39:12 +0000 UTC FinishedAt: 2026-07-09 09:12:58 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-09 08:39:12 +0000 UTC FinishedAt: 2026-07-09 09:12:58 +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:*6e141cc7-3211-474d-9c12-c82d37c8d1da,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-workfloww8pzf/series-workfloww8pzf-convert-artifact-4097639239/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": "2012d553-76d7-4db4-9954-6215b3ed780e", "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-workfloww8pzf/series-workfloww8pzf-build-action-3286764509/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-09 08:39:12 +0000 UTC FinishedAt: 2026-07-09 09:12:48 +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:*6e141cc7-3211-474d-9c12-c82d37c8d1da,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-workfloww8pzf/series-workfloww8pzf-convert-artifact-4097639239/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": "2012d553-76d7-4db4-9954-6215b3ed780e", "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-workfloww8pzf/series-workfloww8pzf-build-action-3286764509/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-09 09:12:58 +0000 UTC FinishedAt: 2026-07-09 09:12:58 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-09 09:12:58 +0000 UTC FinishedAt: 2026-07-09 09:12:58 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-09 09:12:58 +0000 UTC FinishedAt: 2026-07-09 09:13:19 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-09 09:12:58 +0000 UTC FinishedAt: 2026-07-09 09:13:09 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workfloww8pzf/series-workfloww8pzf-convert-artifact-2515792758/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-09 09:13:19 +0000 UTC FinishedAt: 2026-07-09 09:15:33 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-09 09:13:19 +0000 UTC FinishedAt: 2026-07-09 09:15:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2012d553-76d7-4db4-9954-6215b3ed780e,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-workfloww8pzf/series-workfloww8pzf-build-action-3286764509/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-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-09 09:15:33 +0000 UTC FinishedAt: 2026-07-09 09:15:33 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-09 09:15:33 +0000 UTC FinishedAt: 2026-07-09 09:15:33 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-09 09:15:33 +0000 UTC FinishedAt: 2026-07-09 09:47:44 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-09 09:15:33 +0000 UTC FinishedAt: 2026-07-09 09:47:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*6e141cc7-3211-474d-9c12-c82d37c8d1da,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-workfloww8pzf/series-workfloww8pzf-convert-artifact-2515792758/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": "947dd4f1-2d17-4113-95e2-eda1f2e4c9c1", "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-workfloww8pzf/series-workfloww8pzf-build-action-4001700474/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-09 09:15:33 +0000 UTC FinishedAt: 2026-07-09 09:47:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*6e141cc7-3211-474d-9c12-c82d37c8d1da,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-workfloww8pzf/series-workfloww8pzf-convert-artifact-2515792758/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": "947dd4f1-2d17-4113-95e2-eda1f2e4c9c1", "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-workfloww8pzf/series-workfloww8pzf-build-action-4001700474/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-09 09:47:44 +0000 UTC FinishedAt: 2026-07-09 09:47:44 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-09 09:47:44 +0000 UTC FinishedAt: 2026-07-09 09:47:44 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-09 09:47:44 +0000 UTC FinishedAt: 2026-07-09 09:49:48 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-09 09:47:44 +0000 UTC FinishedAt: 2026-07-09 09:49:38 +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:*947dd4f1-2d17-4113-95e2-eda1f2e4c9c1,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-workfloww8pzf/series-workfloww8pzf-build-action-4001700474/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-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-09 09:49:48 +0000 UTC FinishedAt: 2026-07-09 10:38:54 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-09 09:49:48 +0000 UTC FinishedAt: 2026-07-09 10:38:54 +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":["wanxl_pci_remove_one"],"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:*2012d553-76d7-4db4-9954-6215b3ed780e,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*947dd4f1-2d17-4113-95e2-eda1f2e4c9c1,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-workfloww8pzf/series-workfloww8pzf-build-action-3286764509/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-workfloww8pzf/series-workfloww8pzf-build-action-4001700474/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-09 09:49:48 +0000 UTC FinishedAt: 2026-07-09 09:49:58 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-09 09:49:48 +0000 UTC FinishedAt: 2026-07-09 09:49:53 +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":["wanxl_pci_remove_one"],"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-workfloww8pzf/series-workfloww8pzf-convert-artifact-683211163/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-09 09:49:48 +0000 UTC FinishedAt: 2026-07-09 09:49:48 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-09 09:49:48 +0000 UTC FinishedAt: 2026-07-09 09:49:48 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-09 09:49:48 +0000 UTC FinishedAt: 2026-07-09 09:49:48 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-09 09:49:58 +0000 UTC FinishedAt: 2026-07-09 10:38:54 +0000 UTC Input: nil Output: nil --------- Name: series-workfloww8pzf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["wanxl_pci_remove_one"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6d27e29a90bc6a717b97c6ddcd866db7bd8e4adc","config_name":"upstream-apparmor-kasan.config","enable_configs":["WANXL"],"series_id":"bbba74bf-d5b6-42e9-ab29-9e9b9b1a4665","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-09 09:49:58 +0000 UTC FinishedAt: 2026-07-09 10:38:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2012d553-76d7-4db4-9954-6215b3ed780e,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*947dd4f1-2d17-4113-95e2-eda1f2e4c9c1,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-workfloww8pzf/series-workfloww8pzf-build-action-3286764509/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-workfloww8pzf/series-workfloww8pzf-build-action-4001700474/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-workfloww8pzf/series-workfloww8pzf-convert-artifact-683211163/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,}