Name: series-workflowsqxkv Phase: Succeeded StartedAt: 2026-06-25 13:43:32 +0000 UTC FinishedAt: 2026-06-25 15:33:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[0] Phase: Succeeded StartedAt: 2026-06-25 13:43:32 +0000 UTC FinishedAt: 2026-06-25 13:55:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[0].run-triage Phase: Succeeded StartedAt: 2026-06-25 13:43:32 +0000 UTC FinishedAt: 2026-06-25 13:55:03 +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": "02f144fbb4c86c360495d33debe307cb46a57f95", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PTP_1588_CLOCK_OCP", "I2C_CHARDEV" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "02f144fbb4c86c360495d33debe307cb46a57f95", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PTP_1588_CLOCK_OCP", "I2C_CHARDEV" ], "series_id": "44bdebf9-f418-46b5-8532-e53f49d066ff" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "i2c_bus_ctrl_show", "i2c_bus_ctrl_store" ], "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+CgkJCTx0ZD4yMDI2LzA2LzI1IDEzOjU0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BUUF8xNTg4X0NMT0NLX09DUCYjMzQ7LAogICAgJiMzNDtJMkNfQ0hBUkRFViYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2kyY19idXNfY3RybF9zaG93JiMzNDssCiAgICAmIzM0O2kyY19idXNfY3RybF9zdG9yZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbmV3IHN5c2ZzIGF0dHJpYnV0ZSBgaTJjX2J1c19jdHJsYCB0byB0aGUgUFRQIE9DUCBkcml2ZXIsIHdoaWNoIGFsbG93cyByZWFkaW5nIGFuZCB3cml0aW5nIHRvIHRoZSBgcHBzX3NlbGVjdC1cdTAwM2VfX3BhZDFgIG1lbW9yeSBtYXBwZWQgcmVnaXN0ZXIuIFRoaXMgaXMgcmVhY2hhYmxlIGZyb20gdXNlci1zcGFjZSB2aWEgc3lzZnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMTM6NTQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBmYWRiMjYwZjYzYjM5MzMyYTU0NTIxZTI1MDQyM2E1MGE4ZDFhNDFmXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdW4gMjUgMTM6NTQ6MjIgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9wdHAvcHRwX29jcC5jIGIvZHJpdmVycy9wdHAvcHRwX29jcC5jXG5pbmRleCAzNWU5MTFmMWFkNzhjMC4uMWI0Y2NiNGZlY2E1NDkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3B0cC9wdHBfb2NwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvcHRwL3B0cF9vY3AuY1xuQEAgLTQyMjQsNiAmIzQzOzQyMjQsMzQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvY3BfYXR0cl9ncm91cCBhcnRfdGltZWNhcmRfZ3JvdXBzW10gPSB7XG4gXHR7IH0sXG4gfTtcbiBcbiYjNDM7c3RhdGljIHNzaXplX3RcbiYjNDM7aTJjX2J1c19jdHJsX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IHB0cF9vY3AgKmJwID0gZGV2X2dldF9kcnZkYXRhKGRldik7XG4mIzQzO1xuJiM0MztcdGlmICghYnAtXHUwMDNlcHBzX3NlbGVjdClcbiYjNDM7XHRcdHJldHVybiAtRU5PREVWO1xuJiM0MztcdHJldHVybiBzeXNmc19lbWl0KGJ1ZiwgXCYjMzQ7MHglMDh4XFxuXCYjMzQ7LFxuJiM0MztcdFx0XHQgIGlvcmVhZDMyKFx1MDAyNmJwLVx1MDAzZXBwc19zZWxlY3QtXHUwMDNlX19wYWQxKSk7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyBzc2l6ZV90XG4mIzQzO2kyY19idXNfY3RybF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLFxuJiM0MztcdFx0ICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgcHRwX29jcCAqYnAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTtcbiYjNDM7XHR1MzIgdmFsO1xuJiM0MztcbiYjNDM7XHRpZiAoIWJwLVx1MDAzZXBwc19zZWxlY3QpXG4mIzQzO1x0XHRyZXR1cm4gLUVOT0RFVjtcbiYjNDM7XHRpZiAoa3N0cnRvdTMyKGJ1ZiwgMCwgXHUwMDI2dmFsKSlcbiYjNDM7XHRcdHJldHVybiAtRUlOVkFMO1xuJiM0MztcdGlvd3JpdGUzMih2YWwsIFx1MDAyNmJwLVx1MDAzZXBwc19zZWxlY3QtXHUwMDNlX19wYWQxKTtcbiYjNDM7XHRyZXR1cm4gY291bnQ7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhpMmNfYnVzX2N0cmwpO1xuJiM0MztcbiBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYWR2YV90aW1lY2FyZF9hdHRyc1tdID0ge1xuIFx0XHUwMDI2ZGV2X2F0dHJfc2VyaWFsbnVtLmF0dHIsXG4gXHRcdTAwMjZkZXZfYXR0cl9nbnNzX3N5bmMuYXR0cixcbkBAIC00MjcyLDYgJiM0Mzs0MzAwLDcgQEAgc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmFkdmFfdGltZWNhcmRfeDFfYXR0cnNbXSA9IHtcbiBcdFx1MDAyNmRldl9hdHRyX3RzX3dpbmRvd19hZGp1c3QuYXR0cixcbiBcdFx1MDAyNmRldl9hdHRyX3V0Y190YWlfb2Zmc2V0LmF0dHIsXG4gXHRcdTAwMjZkZXZfYXR0cl90b2RfY29ycmVjdGlvbi5hdHRyLFxuJiM0MztcdFx1MDAyNmRldl9hdHRyX2kyY19idXNfY3RybC5hdHRyLFxuIFx0TlVMTCxcbiB9O1xuIFxuQEAgLTUyMzUsNiAmIzQzOzUyNjQsNyBAQCBwdHBfb2NwX2luaXQodm9pZClcbiBcdGNvbnN0IGNoYXIgKndoYXQ7XG4gXHRpbnQgZXJyO1xuIFxuJiM0MztcdHJlcXVlc3RfbW9kdWxlKFwmIzM0O2kyYy1kZXZcJiMzNDspO1xuIFx0cHRwX29jcF9kZWJ1Z2ZzX2luaXQoKTtcbiBcbiBcdHdoYXQgPSBcJiMzNDt0aW1lY2FyZCBjbGFzc1wmIzM0OztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAxMzo1NDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtQVFBfMTU4OF9DTE9DS19PQ1AmIzM0OywKICAgICYjMzQ7STJDX0NIQVJERVYmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpMmNfYnVzX2N0cmxfc2hvdyYjMzQ7LAogICAgJiMzNDtpMmNfYnVzX2N0cmxfc3RvcmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIG5ldyBzeXNmcyBhdHRyaWJ1dGUgYGkyY19idXNfY3RybGAgdG8gdGhlIFBUUCBPQ1AgZHJpdmVyLCB3aGljaCBhbGxvd3MgcmVhZGluZyBhbmQgd3JpdGluZyB0byB0aGUgYHBwc19zZWxlY3QtXHUwMDNlX19wYWQxYCBtZW1vcnkgbWFwcGVkIHJlZ2lzdGVyLiBUaGlzIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXItc3BhY2UgdmlhIHN5c2ZzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBmYWRiMjYwZjYzYjM5MzMyYTU0NTIxZTI1MDQyM2E1MGE4ZDFhNDFmCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdW4gMjUgMTM6NTQ6MjIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3B0cC9wdHBfb2NwLmMgYi9kcml2ZXJzL3B0cC9wdHBfb2NwLmMKaW5kZXggMzVlOTExZjFhZDc4YzAuLjFiNGNjYjRmZWNhNTQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3B0cC9wdHBfb2NwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9wdHAvcHRwX29jcC5jCkBAIC00MjI0LDYgJiM0Mzs0MjI0LDM0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2NwX2F0dHJfZ3JvdXAgYXJ0X3RpbWVjYXJkX2dyb3Vwc1tdID0gewogCXsgfSwKIH07CiAKJiM0MztzdGF0aWMgc3NpemVfdAomIzQzO2kyY19idXNfY3RybF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKJiM0Mzt7CiYjNDM7CXN0cnVjdCBwdHBfb2NwICpicCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwomIzQzOwomIzQzOwlpZiAoIWJwLSZndDtwcHNfc2VsZWN0KQomIzQzOwkJcmV0dXJuIC1FTk9ERVY7CiYjNDM7CXJldHVybiBzeXNmc19lbWl0KGJ1ZiwgJiMzNDsweCUwOHhcbiYjMzQ7LAomIzQzOwkJCSAgaW9yZWFkMzIoJmFtcDticC0mZ3Q7cHBzX3NlbGVjdC0mZ3Q7X19wYWQxKSk7CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyBzc2l6ZV90CiYjNDM7aTJjX2J1c19jdHJsX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiYjNDM7CQkgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBwdHBfb2NwICpicCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwomIzQzOwl1MzIgdmFsOwomIzQzOwomIzQzOwlpZiAoIWJwLSZndDtwcHNfc2VsZWN0KQomIzQzOwkJcmV0dXJuIC1FTk9ERVY7CiYjNDM7CWlmIChrc3RydG91MzIoYnVmLCAwLCAmYW1wO3ZhbCkpCiYjNDM7CQlyZXR1cm4gLUVJTlZBTDsKJiM0MzsJaW93cml0ZTMyKHZhbCwgJmFtcDticC0mZ3Q7cHBzX3NlbGVjdC0mZ3Q7X19wYWQxKTsKJiM0MzsJcmV0dXJuIGNvdW50OwomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgREVWSUNFX0FUVFJfUlcoaTJjX2J1c19jdHJsKTsKJiM0MzsKIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphZHZhX3RpbWVjYXJkX2F0dHJzW10gPSB7CiAJJmFtcDtkZXZfYXR0cl9zZXJpYWxudW0uYXR0ciwKIAkmYW1wO2Rldl9hdHRyX2duc3Nfc3luYy5hdHRyLApAQCAtNDI3Miw2ICYjNDM7NDMwMCw3IEBAIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphZHZhX3RpbWVjYXJkX3gxX2F0dHJzW10gPSB7CiAJJmFtcDtkZXZfYXR0cl90c193aW5kb3dfYWRqdXN0LmF0dHIsCiAJJmFtcDtkZXZfYXR0cl91dGNfdGFpX29mZnNldC5hdHRyLAogCSZhbXA7ZGV2X2F0dHJfdG9kX2NvcnJlY3Rpb24uYXR0ciwKJiM0MzsJJmFtcDtkZXZfYXR0cl9pMmNfYnVzX2N0cmwuYXR0ciwKIAlOVUxMLAogfTsKIApAQCAtNTIzNSw2ICYjNDM7NTI2NCw3IEBAIHB0cF9vY3BfaW5pdCh2b2lkKQogCWNvbnN0IGNoYXIgKndoYXQ7CiAJaW50IGVycjsKIAomIzQzOwlyZXF1ZXN0X21vZHVsZSgmIzM0O2kyYy1kZXYmIzM0Oyk7CiAJcHRwX29jcF9kZWJ1Z2ZzX2luaXQoKTsKIAogCXdoYXQgPSAmIzM0O3RpbWVjYXJkIGNsYXNzJiMzNDs7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI1IDEzOjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyOTcKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAxMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBOZXcgSTJDIEJ1cyBDb250cm9sIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBzeXNmcyBhdHRyaWJ1dGUgY2FsbGVkIGBpMmNfYnVzX2N0cmxgIHdpdGhpbiBgZHJpdmVycy9wdHAvcHRwX29jcC5jYC4gVGhhdCYjMzk7cyBpbnRlcmVzdGluZywgbGV0JiMzOTtzIHNlZSB3aGF0IHRoYXQgYXR0cmlidXRlICpkb2VzKi4gSXQgbG9va3MgbGlrZSBpdCYjMzk7cyBhbHNvIGJyaW5naW5nIGluIGByZXF1ZXN0X21vZHVsZSgmIzM0O2kyYy1kZXYmIzM0Oyk7YCBpbiBgcHRwX29jcF9pbml0YCB0byBlbnN1cmUgdGhlIG1vZHVsZSBpcyBsb2FkZWQuIFRoYXQmIzM5O3MgZ29vZCBwcmFjdGljZS4KCkZyb20gdGhlIGRlc2NyaXB0aW9uLCBgaTJjX2J1c19jdHJsYCBpcyBtYW5pcHVsYXRpbmcgYGJwLSZndDtwcHNfc2VsZWN0LSZndDtfX3BhZDFgLiBJIG5lZWQgdG8gZGlnIGRlZXBlciB0byB1bmRlcnN0YW5kIHdoYXQgYHBwc19zZWxlY3RgIGlzLiBJdCYjMzk7cyBsaWtlbHkgYSBzdHJ1Y3R1cmUgbWVtYmVyLiBUaGlzIHdpbGwgbGV0IG1lIGFzc2VzcyB3aGF0IHRoaXMgYF9fcGFkMWAgZmllbGQgZG9lcy4KClRoZSBwYXRjaCBpcyBhbHNvIGNsYWltaW5nIHRoYXQgdGhpcyBuZXcgYXR0cmlidXRlIGlzIGFkZGVkIHRvIGBhZHZhX3RpbWVjYXJkX3gxX2F0dHJzYC4gVGhhdCYjMzk7cyBoZWxwZnVsIGZvciBjb250ZXh0LiBJJiMzOTtsbCBwcm9iYWJseSBsb29rIGZvciBleGlzdGluZyBhdHRyaWJ1dGVzIGFuZCBhbnkgcmVsZXZhbnQgZGVwZW5kZW5jaWVzIGluIHRoYXQgc3RydWN0dXJlLiBJdCBoZWxwcyB0byBnaXZlIGNsdWVzIGFzIHRvIGhvdyB0aGlzIG5ldyBmZWF0dXJlIGlzIHVzZWQuCgpOb3csIEkgcmVhbGx5IG5lZWQgdG8gZ2V0IGludG8gYGRyaXZlcnMvcHRwL3B0cF9vY3AuY2AgZGlyZWN0bHkgdG8gc2VlIHdoYXQgY29uZmlndXJhdGlvbiBvcHRpb24gZW5hYmxlcyB0aGlzIHdob2xlIGZlYXR1cmUuIExldCYjMzk7cyBzZWUgd2hhdCBJIGNhbiBmaW5kLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI1IDEzOjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cHRwX29jcCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI1IDEzOjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3NTIKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiA0MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBQVFAgRHJpdmVyIExvY2F0aW9uKioKCkhtbSwgc28gdGhlIGNvZGUgaW4gcXVlc3Rpb24gaXMgd2l0aGluIGBkcml2ZXJzL3B0cC9wdHBfb2NwLmNgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtSaWdodCwgbGV0JiMzOTtzIG5haWwgZG93biBob3cgdGhpcyBtb2R1bGUgZ2V0cyBidWlsdCBhbmQgY29uZmlndXJlZC4mIzM0OyBNeSBmaXJzdCBjb3Vyc2Ugb2YgYWN0aW9uIHdvdWxkIGJlIHRvIGNoZWNrIGVpdGhlciB0aGUgYE1ha2VmaWxlYCBvciB0aGUgYEtjb25maWdgIGZpbGUgd2l0aGluIHRoZSBgZHJpdmVycy9wdHAvYCBkaXJlY3RvcnkuIFRoYXQmIzM5O3MgdGhlIGdvLXRvIGFwcHJvYWNoLiBUaGUgYE1ha2VmaWxlYCB3aWxsIHRlbGwgbWUgaG93IHRoZSBgcHRwX29jcC5jYCBmaWxlIGlzIGNvbXBpbGVkIGFuZCBsaW5rZWQgaW50byB0aGUga2VybmVsIOKAkyBhbnkgZGVwZW5kZW5jaWVzLCBjb21waWxlciBmbGFncywgYW5kIHRoZSBsaWtlLiBTaW11bHRhbmVvdXNseSwgdGhlIGBLY29uZmlnYCBmaWxlIGlzIGdvaW5nIHRvIHJldmVhbCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHRoYXQgY29udHJvbCB3aGV0aGVyIHRoaXMgZHJpdmVyIGlzIGFjdHVhbGx5IGluY2x1ZGVkIGluIHRoZSBmaW5hbCBrZXJuZWwgaW1hZ2UuIElzIGl0IGEgbW9kdWxlPyBCdWlsdC1pbj8gSXMgdGhlcmUgYSBmZWF0dXJlIGZsYWcgdGhhdCBlbmFibGVzIG9yIGRpc2FibGVzIGl0PyBVbmRlcnN0YW5kaW5nIHRob3NlIGJ1aWxkLXRpbWUgYW5kIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzIGlzIGNydWNpYWwgYmVmb3JlIEkgZGl2ZSBpbnRvIHRoZSBjb2RlIGl0c2VsZi4gSSYjMzk7bSBsb29raW5nIGZvciB0aGUgYnVpbGQgcHJvY2VzcywgYW5kIHRoZSBjb25kaXRpb25zIHVuZGVyIHdoaWNoIGl0JiMzOTtzIGNvbXBpbGVkLCBhbmQgaWYgdGhlcmUgYXJlIGFueSBmbGFncyBJIGNvdWxkIHNldC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAxMzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwdHBfb2NwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9wdHAvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9wdHAvTWFrZWZpbGU9MjA9b2JqLSQoQ09ORklHX1BUUF8xNTg4X0NMT0NLX1ZNVylcdCYjNDM7PSBwdHBfdm13Lm9cbmRyaXZlcnMvcHRwL01ha2VmaWxlOjIxOm9iai0kKENPTkZJR19QVFBfMTU4OF9DTE9DS19PQ1ApXHQmIzQzOz0gcHRwX29jcC5vXG5kcml2ZXJzL3B0cC9NYWtlZmlsZS0yMi1vYmotJChDT05GSUdfUFRQX0RGTF9UT0QpXHRcdCYjNDM7PSBwdHBfZGZsX3RvZC5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMTM6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE5NAoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDQ2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBDT05GSUdfUFRQXzE1ODhfQ0xPQ0tfT0NQIENvbmZpZ3VyYXRpb24qKgoKUmlnaHQsIHNvIGBDT05GSUdfUFRQXzE1ODhfQ0xPQ0tfT0NQYCBpcyB0aGUga2V5IHRvIGVuYWJsaW5nIHRoaXMgZHJpdmVyLCB0aGF0IG11Y2ggaXMgY2xlYXIuIE15IGltbWVkaWF0ZSBuZXh0IHRob3VnaHQgaXM6IGlzIHRoaXMgYSBQQ0kgZHJpdmVyPyBJIHZhZ3VlbHkgcmVjYWxsIHNvbWUgT0NQIGltcGxlbWVudGF0aW9ucyBwb3RlbnRpYWxseSBsZXZlcmFnaW5nIFBDSSBmb3IgYWNjZXNzLiBUbyBiZSBjZXJ0YWluLCBJIHNob3VsZCByZWFsbHkgdmVyaWZ5IHRoaXMgcXVpY2tseSBieSBjaGVja2luZyB0aGUgZHJpdmVyIHNvdXJjZSBpdHNlbGYuIExldCBtZSBnZXQgYSBsb29rIGF0IGBkcml2ZXJzL3B0cC9wdHBfb2NwLmNgIGFuZCBzZWUgd2hhdCB0aGF0IHRlbGxzIG1lLiBUaGF0IGZpbGUgc2hvdWxkIGNvbnRhaW4gdGhlIGNsdWVzIEkgbmVlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAxMzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwY2lfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9wdHAvcHRwX29jcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL3B0cF9vY3AuYz01MTkxPXB0cF9vY3BfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01MjEyLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjUyMTM6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIHB0cF9vY3BfZHJpdmVyID0ge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTUyMTQtXHQubmFtZVx0XHQ9IEtCVUlMRF9NT0ROQU1FLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI1IDEzOjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1NjIKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAxNDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIFRoaXMgUENJIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIGlzIGEgUENJIGRyaXZlciwgZ290IGl0LiBUaGlzIHBhdGNoIGludHJvZHVjZXMgYGkyY19idXNfY3RybF9zaG93YCBhbmQgYGkyY19idXNfY3RybF9zdG9yZWAsIHdoaWNoIGFyZSBhY2Nlc3NpYmxlIHRocm91Z2ggc3lzZnMuIFRoYXQmIzM5O3MgaW1tZWRpYXRlbHkgaW50ZXJlc3RpbmcsIGJlY2F1c2Ugc3lzZnMgZXhwb3N1cmUgaXMgYWx3YXlzIGEgcG90ZW50aWFsIGF0dGFjayBzdXJmYWNlLiBQbHVzLCB0aGVyZSYjMzk7cyBhIGByZXF1ZXN0X21vZHVsZSgmIzM0O2kyYy1kZXYmIzM0Oyk7YCBjYWxsIGFkZGVkIGluIGBwdHBfb2NwX2luaXRgLgoKVGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoaXMgaXMgd29ydGggZnV6emluZy4gVGhlIGZhY3QgdGhhdCBuZXcgc3lzZnMgYXR0cmlidXRlcyBhcmUgZXhwb3NlZCBtYWtlcyBhIHN0cm9uZyBjYXNlIGZvciBpdC4gQnV0LCB3YWl0LCBsZXQmIzM5O3Mgem9vbSBpbiBvbiB0aG9zZSBmdW5jdGlvbnM6IGBpMmNfYnVzX2N0cmxfc2hvd2AgYW5kIGBpMmNfYnVzX2N0cmxfc3RvcmVgLiBUaG9zZSBhcmUgdGhlIHJlYWwgdGFyZ2V0cyBoZXJlLiBOb3csIGJlZm9yZSBJIGRpdmUgZGVlcGVyLCBJIHNob3VsZCBtYWtlIHN1cmUgdGhlcmUgYXJlbiYjMzk7dCBhbnkgZGVwZW5kZW5jaWVzIG9uIGBDT05GSUdfUFRQXzE1ODhfQ0xPQ0tfT0NQYCB0aGF0IEkgbmVlZCB0byBiZSBhd2FyZSBvZi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMTM6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFBUUF8xNTg4X0NMT0NLX09DUCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9wdHAvS2NvbmZpZz0xOTg9Y29uZmlnIFBUUF8xNTg4X0NMT0NLX1ZNV1xuLS1cbmRyaXZlcnMvcHRwL0tjb25maWctMjA5LVxuZHJpdmVycy9wdHAvS2NvbmZpZzoyMTA6Y29uZmlnIFBUUF8xNTg4X0NMT0NLX09DUFxuZHJpdmVycy9wdHAvS2NvbmZpZy0yMTEtXHR0cmlzdGF0ZSBcJiMzNDtPcGVuQ29tcHV0ZSBUaW1lQ2FyZCBhcyBQVFAgY2xvY2tcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMTM6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDA3MQoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGFuYWx5c2lzIG9mIHRoZSBzaXR1YXRpb24sIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgbGlrZSB5b3Vyc2VsZjoKCioqQW5hbHl6aW5nIFBUUF8xNTg4X0NMT0NLX09DUCBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGUgZGVwZW5kZW5jaWVzIG9mIGBQVFBfMTU4OF9DTE9DS19PQ1BgLiBUaGlzIGlzIHdoZXJlIHRoZSByZWFsIGZ1biBiZWdpbnMsIHBlZWxpbmcgYmFjayB0aGUgbGF5ZXJzIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgbW9kdWxlIGlzIGludGVyYWN0aW5nIHdpdGggZXZlcnl0aGluZyBlbHNlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gbG9vayBmb3IgdGhlIHR5cGljYWwgdGhpbmdzOiBjbG9jayBzb3VyY2VzLCBpbnRlcnJ1cHQgbGluZXMsIG1lbW9yeSBpbnRlcmZhY2VzLCBhbmQgYW55IGFzc29jaWF0ZWQgY29udHJvbCByZWdpc3RlcnMuIEkmIzM5O2xsIG5lZWQgdG8gaWRlbnRpZnkgd2hpY2ggb3RoZXIgbW9kdWxlcyB0aGlzIG9uZSBpbnRlcmFjdHMgd2l0aCBkaXJlY3RseSBvbiB0aGUgT0NQIGJ1cywgYW5kIGluIHdoYXQgcm9sZXM6IG1hc3Rlciwgc2xhdmUsIG9yIHBlcmhhcHMgYm90aC4KCkkmIzM5O20gZXhwZWN0aW5nIHRvIHNlZSBkZXBlbmRlbmNpZXMgb24gdGhlIFBIWSBpZiB0aGlzIGhhcyB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBleHRlcm5hbCBQVFAgbmV0d29yayBpbnRlcmZhY2UsIG9idmlvdXNseS4gSSYjMzk7bGwgYmUgbG9va2luZyBjYXJlZnVsbHkgYXQgdGhlIGRhdGEgcGF0aHMsIGVzcGVjaWFsbHkgaWYgdGhpcyBpcyBhIGhhcmR3YXJlIGltcGxlbWVudGF0aW9uLiBBcmUgd2UgdGFsa2luZyBhYm91dCBhIGRlZGljYXRlZCBoYXJkd2FyZSBQVFAgZW5naW5lLCBvciBpcyBhIHNvZnR3YXJlIGltcGxlbWVudGF0aW9uIGludm9sdmVkPyBUaGF0IHdpbGwgZHJhbWF0aWNhbGx5IGNoYW5nZSB0aGUgZGVwZW5kZW5jaWVzLiBJIGFsc28gd2FudCB0byBjaGVjayBmb3IgYW55IGNyaXRpY2FsIHRpbWluZyBjb25zdHJhaW50cyBvciBzeW5jaHJvbml6YXRpb24gcmVxdWlyZW1lbnRzOyB0aGlzIGlzIHRoZSBjcnV4IG9mIFBUUCwgYWZ0ZXIgYWxsLiBJZiB0aGUgY29kZSBtZW50aW9ucyBhbnkgc3BlY2lmaWMgY2xvY2sgZG9tYWlucywgdGhhdCYjMzk7cyBjcnVjaWFsLiBJJiMzOTtsbCB0cmFjZSB0aGVtIGJhY2sgdG8gdGhlaXIgb3JpZ2luIHRvIHNlZSBob3cgdGhleSYjMzk7cmUgZ2VuZXJhdGVkIGFuZCBtYW5hZ2VkLiBBbnkgcG90ZW50aWFsIGlzc3VlcyB3aXRoIGNsb2NrIHNrZXcgb3Igaml0dGVyIHdpbGwgaW1tZWRpYXRlbHkgc3RhbmQgb3V0LiBGaW5hbGx5LCBJJiMzOTtsbCBiZSBsb29raW5nIGF0IGFueSBjb25maWd1cmF0aW9uIHJlZ2lzdGVycyBvciBjb250cm9sIHNpZ25hbHMgdG8gc2VlIGhvdyB0aGlzIGNsb2NrIGlzIG1hbmFnZWQgYW5kIHR1bmVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAxMzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyMTAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDIxMDpcdGNvbmZpZyBQVFBfMTU4OF9DTE9DS19PQ1BcbiAyMTE6XHRcdHRyaXN0YXRlIFwmIzM0O09wZW5Db21wdXRlIFRpbWVDYXJkIGFzIFBUUCBjbG9ja1wmIzM0O1xuIDIxMjpcdFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS1xuIDIxMzpcdFx0ZGVwZW5kcyBvbiBIQVNfSU9NRU0gXHUwMDI2XHUwMDI2IFBDSVxuIDIxNDpcdFx0ZGVwZW5kcyBvbiBJMkMgXHUwMDI2XHUwMDI2IE1URFxuIDIxNTpcdFx0ZGVwZW5kcyBvbiBTRVJJQUxfODI1MFxuIDIxNjpcdFx0ZGVwZW5kcyBvbiAhUzM5MFxuIDIxNzpcdFx0ZGVwZW5kcyBvbiBDT01NT05fQ0xLXG4gMjE4Olx0XHRzZWxlY3QgTkVUX0RFVkxJTktcbiAyMTk6XHRcdHNlbGVjdCBDUkMxNlxuIDIyMDpcdFx0c2VsZWN0IERQTExcbiAyMjE6XHRcdGhlbHBcbiAyMjI6XHRcdCAgVGhpcyBkcml2ZXIgYWRkcyBzdXBwb3J0IGZvciBhbiBPcGVuQ29tcHV0ZSB0aW1lIGNhcmQuXG4gMjIzOlx0XG4gMjI0Olx0XHQgIFRoZSBPcGVuQ29tcHV0ZSB0aW1lIGNhcmQgaXMgYW4gYXRvbWljIGNsb2NrIGFsb25nIHdpdGhcbiAyMjU6XHRcdCAgYSBHUFMgcmVjZWl2ZXIgdGhhdCBwcm92aWRlcyBhIEdyYW5kbWFzdGVyIGNsb2NrIHNvdXJjZVxuIDIyNjpcdFx0ICBmb3IgYSBQVFAgZW5hYmxlZCBuZXR3b3JrLlxuIDIyNzpcdFxuIDIyODpcdFx0ICBNb3JlIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LnRpbWluZ2NhcmQuY29tL1xuIDIyOTpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAxMzo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NzMxCgkJCQkJCQlvdXRwdXQ6IDEzMgoJCQkJCQkJdGhvdWdodHM6IDM2NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBUUCBPQ1AgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciB0aGUgYFBUUF8xNTg4X0NMT0NLX09DUGAgZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gdHJhY2UgaXRzIGRlcGVuZGVuY2llcy4gSXQgcmVsaWVzIG9uIGEgbnVtYmVyIG9mIGV4aXN0aW5nIGNvbmZpZ3VyYXRpb25zOiBgUFRQXzE1ODhfQ0xPQ0tgLCBgSEFTX0lPTUVNYCwgYFBDSWAsIGBJMkNgLCBgTVREYCwgYFNFUklBTF84MjUwYCwgdGhlIGFic2VuY2Ugb2YgYFMzOTBgLCBhbmQgYENPTU1PTl9DTEtgLiBUaGF0JiMzOTtzIGEgcmVhc29uYWJsZSBzZXQsIG5vdGhpbmcgcGFydGljdWxhcmx5IHN1cnByaXNpbmcgdGhlcmUuCgpUaGUgaW50ZXJlc3RpbmcgcGFydCBpcyB0aGUgYWRkaXRpb24gb2YgYHJlcXVlc3RfbW9kdWxlKCYjMzQ7aTJjLWRldiYjMzQ7KTtgLiBUaGlzIG1ha2VzIG1lIGltbWVkaWF0ZWx5IGNvbnNpZGVyIHRoZSBwb3RlbnRpYWwgbmVlZCBmb3IgYEkyQ19DSEFSREVWYCB0byBiZSBlbmFibGVkLiBJIG5lZWQgdG8gY2xhcmlmeSB0aGF0LiBBaCwgcmlnaHQuIGByZXF1ZXN0X21vZHVsZSgmIzM0O2kyYy1kZXYmIzM0OylgIG1lYW5zIHRoZSBgaTJjLWRldmAgbW9kdWxlIHdpbGwgYmUgbG9hZGVkIHJlZ2FyZGxlc3MuIElmIGBJMkNfQ0hBUkRFVmAgKmlzKiBlbmFibGVkLCBpdCB3aWxsIGxvYWQgdG9vLiBPa2F5LCBnb3QgaXQuCgpOb3csIGxldCYjMzk7cyB6b29tIGluIG9uIHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkuIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBzeXNmcyBhdHRyaWJ1dGU6IGBpMmNfYnVzX2N0cmxgLiBUaGUgcGF0Y2ggaW1wbGVtZW50cyB0d28gc3lzZnMgZnVuY3Rpb25zOiBgaTJjX2J1c19jdHJsX3Nob3dgIGFuZCBgaTJjX2J1c19jdHJsX3N0b3JlYC4gVGhlIHBhdGNoIGlzIGFsbG93aW5nIHVzZXJzcGFjZSBhY2Nlc3MgdG8gcmVhZCBhbmQgd3JpdGUgdG8gdGhlIGBwcHNfc2VsZWN0LSZndDtfX3BhZDFgIG1lbW9yeS1tYXBwZWQgcmVnaXN0ZXIgdGhyb3VnaCB0aGUgc3lzZnMgZW50cnkuIAoKTGV0JiMzOTtzIGRvIGEgcXVpY2sgZG91YmxlLWNoZWNrIGZvciBhbnkgb3RoZXIgcmVsYXRlZCBjb25maWd1cmF0aW9ucy4gVGhlIG1haW4gY29uZmlnIHN5bWJvbCBpcyBgUFRQXzE1ODhfQ0xPQ0tfT0NQYCwgYnV0IGVuYWJsaW5nIGBJMkNfQ0hBUkRFVmAgbWlnaHQgYmUgYmVuZWZpY2lhbCBmb3IgdGVzdGluZy4KCkkmIzM5O20gbWFraW5nIGEgbWVudGFsIG5vdGUgb2YgdGhvc2UgdHdvIGZ1bmN0aW9uczogYGkyY19idXNfY3RybF9zaG93YCBhbmQgYGkyY19idXNfY3RybF9zdG9yZWAsIHRvIGtlZXAgaW4gbWluZC4KCkJlZm9yZSBJIG1vdmUgb24sIEkgbmVlZCB0byBjb25maXJtIHRoYXQgYGkyY19idXNfY3RybF9zaG93YCBhbmQgYGkyY19idXNfY3RybF9zdG9yZWAgYXJlIHN0YXRpYy4gWWVzLCB0aGV5IGFyZS4gQW5kIHRoZSBpbXBsaWNhdGlvbnMgYXJlLi4ud2FpdCBhIG1pbnV0ZS4uLiBTeXprYWxsZXIgY2FuIGZ1enogc3lzZnMgYXR0cmlidXRlcy4gVGhhdCYjMzk7cyBhIGNyaXRpY2FsIHBvaW50IHRvIGNvbnNpZGVyIGR1cmluZyB0aGUgdGVzdGluZyBwaGFzZSEKClJpZ2h0LCB0aGF0JiMzOTtzIGVub3VnaCBmb3Igbm93LiBUaW1lIHRvIGNhbGwgaXQgYSBzZXQtcmVzdWx0cyEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMTM6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BUUF8xNTg4X0NMT0NLX09DUCYjMzQ7LAogICAgJiMzNDtJMkNfQ0hBUkRFViYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2kyY19idXNfY3RybF9zaG93JiMzNDssCiAgICAmIzM0O2kyY19idXNfY3RybF9zdG9yZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbmV3IHN5c2ZzIGF0dHJpYnV0ZSBgaTJjX2J1c19jdHJsYCB0byB0aGUgUFRQIE9DUCBkcml2ZXIsIHdoaWNoIGFsbG93cyByZWFkaW5nIGFuZCB3cml0aW5nIHRvIHRoZSBgcHBzX3NlbGVjdC1cdTAwM2VfX3BhZDFgIG1lbW9yeSBtYXBwZWQgcmVnaXN0ZXIuIFRoaXMgaXMgcmVhY2hhYmxlIGZyb20gdXNlci1zcGFjZSB2aWEgc3lzZnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BUUF8xNTg4X0NMT0NLX09DUCYjMzQ7LAogICAgJiMzNDtJMkNfQ0hBUkRFViYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2kyY19idXNfY3RybF9zaG93JiMzNDssCiAgICAmIzM0O2kyY19idXNfY3RybF9zdG9yZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbmV3IHN5c2ZzIGF0dHJpYnV0ZSBgaTJjX2J1c19jdHJsYCB0byB0aGUgUFRQIE9DUCBkcml2ZXIsIHdoaWNoIGFsbG93cyByZWFkaW5nIGFuZCB3cml0aW5nIHRvIHRoZSBgcHBzX3NlbGVjdC1cdTAwM2VfX3BhZDFgIG1lbW9yeSBtYXBwZWQgcmVnaXN0ZXIuIFRoaXMgaXMgcmVhY2hhYmxlIGZyb20gdXNlci1zcGFjZSB2aWEgc3lzZnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yNVQxMzo1NDoyNC4xMDYyNzU3OTlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzY5MzE5NzM2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJQVFBfMTU4OF9DTE9DS19PQ1BcIixcbiAgICBcIkkyQ19DSEFSREVWXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaTJjX2J1c19jdHJsX3Nob3dcIixcbiAgICBcImkyY19idXNfY3RybF9zdG9yZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBuZXcgc3lzZnMgYXR0cmlidXRlIGBpMmNfYnVzX2N0cmxgIHRvIHRoZSBQVFAgT0NQIGRyaXZlciwgd2hpY2ggYWxsb3dzIHJlYWRpbmcgYW5kIHdyaXRpbmcgdG8gdGhlIGBwcHNfc2VsZWN0LVxcdTAwM2VfX3BhZDFgIG1lbW9yeSBtYXBwZWQgcmVnaXN0ZXIuIFRoaXMgaXMgcmVhY2hhYmxlIGZyb20gdXNlci1zcGFjZSB2aWEgc3lzZnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDEzOjU0OjI0LjEwNjI4Mjc0OVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDY2MDQ1MjAzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZmFkYjI2MGY2M2IzOTMzMmE1NDUyMWUyNTA0MjNhNTBhOGQxYTQxZlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1biAyNSAxMzo1NDoyMiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3B0cC9wdHBfb2NwLmMgYi9kcml2ZXJzL3B0cC9wdHBfb2NwLmNcXG5pbmRleCAzNWU5MTFmMWFkNzhjMC4uMWI0Y2NiNGZlY2E1NDkgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9wdHAvcHRwX29jcC5jXFxuKysrIGIvZHJpdmVycy9wdHAvcHRwX29jcC5jXFxuQEAgLTQyMjQsNiArNDIyNCwzNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9jcF9hdHRyX2dyb3VwIGFydF90aW1lY2FyZF9ncm91cHNbXSA9IHtcXG4gXFx0eyB9LFxcbiB9O1xcbiBcXG4rc3RhdGljIHNzaXplX3RcXG4raTJjX2J1c19jdHJsX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKVxcbit7XFxuK1xcdHN0cnVjdCBwdHBfb2NwICpicCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpO1xcbitcXG4rXFx0aWYgKCFicC1cXHUwMDNlcHBzX3NlbGVjdClcXG4rXFx0XFx0cmV0dXJuIC1FTk9ERVY7XFxuK1xcdHJldHVybiBzeXNmc19lbWl0KGJ1ZiwgXFxcIjB4JTA4eFxcXFxuXFxcIixcXG4rXFx0XFx0XFx0ICBpb3JlYWQzMihcXHUwMDI2YnAtXFx1MDAzZXBwc19zZWxlY3QtXFx1MDAzZV9fcGFkMSkpO1xcbit9XFxuK1xcbitzdGF0aWMgc3NpemVfdFxcbitpMmNfYnVzX2N0cmxfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0cixcXG4rXFx0XFx0ICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpXFxuK3tcXG4rXFx0c3RydWN0IHB0cF9vY3AgKmJwID0gZGV2X2dldF9kcnZkYXRhKGRldik7XFxuK1xcdHUzMiB2YWw7XFxuK1xcbitcXHRpZiAoIWJwLVxcdTAwM2VwcHNfc2VsZWN0KVxcbitcXHRcXHRyZXR1cm4gLUVOT0RFVjtcXG4rXFx0aWYgKGtzdHJ0b3UzMihidWYsIDAsIFxcdTAwMjZ2YWwpKVxcbitcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4rXFx0aW93cml0ZTMyKHZhbCwgXFx1MDAyNmJwLVxcdTAwM2VwcHNfc2VsZWN0LVxcdTAwM2VfX3BhZDEpO1xcbitcXHRyZXR1cm4gY291bnQ7XFxuK31cXG4rXFxuK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhpMmNfYnVzX2N0cmwpO1xcbitcXG4gc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmFkdmFfdGltZWNhcmRfYXR0cnNbXSA9IHtcXG4gXFx0XFx1MDAyNmRldl9hdHRyX3NlcmlhbG51bS5hdHRyLFxcbiBcXHRcXHUwMDI2ZGV2X2F0dHJfZ25zc19zeW5jLmF0dHIsXFxuQEAgLTQyNzIsNiArNDMwMCw3IEBAIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphZHZhX3RpbWVjYXJkX3gxX2F0dHJzW10gPSB7XFxuIFxcdFxcdTAwMjZkZXZfYXR0cl90c193aW5kb3dfYWRqdXN0LmF0dHIsXFxuIFxcdFxcdTAwMjZkZXZfYXR0cl91dGNfdGFpX29mZnNldC5hdHRyLFxcbiBcXHRcXHUwMDI2ZGV2X2F0dHJfdG9kX2NvcnJlY3Rpb24uYXR0cixcXG4rXFx0XFx1MDAyNmRldl9hdHRyX2kyY19idXNfY3RybC5hdHRyLFxcbiBcXHROVUxMLFxcbiB9O1xcbiBcXG5AQCAtNTIzNSw2ICs1MjY0LDcgQEAgcHRwX29jcF9pbml0KHZvaWQpXFxuIFxcdGNvbnN0IGNoYXIgKndoYXQ7XFxuIFxcdGludCBlcnI7XFxuIFxcbitcXHRyZXF1ZXN0X21vZHVsZShcXFwiaTJjLWRldlxcXCIpO1xcbiBcXHRwdHBfb2NwX2RlYnVnZnNfaW5pdCgpO1xcbiBcXG4gXFx0d2hhdCA9IFxcXCJ0aW1lY2FyZCBjbGFzc1xcXCI7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDEzOjU0OjI0LjU3MzE4NzczMloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjcyMjYyNzYwMzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUFRQXzE1ODhfQ0xPQ0tfT0NQXCIsXG4gICAgXCJJMkNfQ0hBUkRFVlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImkyY19idXNfY3RybF9zaG93XCIsXG4gICAgXCJpMmNfYnVzX2N0cmxfc3RvcmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV3IHN5c2ZzIGF0dHJpYnV0ZSBgaTJjX2J1c19jdHJsYCB0byB0aGUgUFRQIE9DUCBkcml2ZXIsIHdoaWNoIGFsbG93cyByZWFkaW5nIGFuZCB3cml0aW5nIHRvIHRoZSBgcHBzX3NlbGVjdC1cXHUwMDNlX19wYWQxYCBtZW1vcnkgbWFwcGVkIHJlZ2lzdGVyLiBUaGlzIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXItc3BhY2UgdmlhIHN5c2ZzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGZhZGIyNjBmNjNiMzkzMzJhNTQ1MjFlMjUwNDIzYTUwYThkMWE0MWZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1biAyNSAxMzo1NDoyMiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvcHRwL3B0cF9vY3AuYyBiL2RyaXZlcnMvcHRwL3B0cF9vY3AuY1xuaW5kZXggMzVlOTExZjFhZDc4YzAuLjFiNGNjYjRmZWNhNTQ5IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9wdHAvcHRwX29jcC5jXG4rKysgYi9kcml2ZXJzL3B0cC9wdHBfb2NwLmNcbkBAIC00MjI0LDYgKzQyMjQsMzQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvY3BfYXR0cl9ncm91cCBhcnRfdGltZWNhcmRfZ3JvdXBzW10gPSB7XG4gXHR7IH0sXG4gfTtcbiBcbitzdGF0aWMgc3NpemVfdFxuK2kyY19idXNfY3RybF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1Zilcbit7XG4rXHRzdHJ1Y3QgcHRwX29jcCAqYnAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTtcbitcbitcdGlmICghYnAtXHUwMDNlcHBzX3NlbGVjdClcbitcdFx0cmV0dXJuIC1FTk9ERVY7XG4rXHRyZXR1cm4gc3lzZnNfZW1pdChidWYsIFwiMHglMDh4XFxuXCIsXG4rXHRcdFx0ICBpb3JlYWQzMihcdTAwMjZicC1cdTAwM2VwcHNfc2VsZWN0LVx1MDAzZV9fcGFkMSkpO1xuK31cbitcbitzdGF0aWMgc3NpemVfdFxuK2kyY19idXNfY3RybF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLFxuK1x0XHQgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudClcbit7XG4rXHRzdHJ1Y3QgcHRwX29jcCAqYnAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTtcbitcdHUzMiB2YWw7XG4rXG4rXHRpZiAoIWJwLVx1MDAzZXBwc19zZWxlY3QpXG4rXHRcdHJldHVybiAtRU5PREVWO1xuK1x0aWYgKGtzdHJ0b3UzMihidWYsIDAsIFx1MDAyNnZhbCkpXG4rXHRcdHJldHVybiAtRUlOVkFMO1xuK1x0aW93cml0ZTMyKHZhbCwgXHUwMDI2YnAtXHUwMDNlcHBzX3NlbGVjdC1cdTAwM2VfX3BhZDEpO1xuK1x0cmV0dXJuIGNvdW50O1xuK31cbitcbitzdGF0aWMgREVWSUNFX0FUVFJfUlcoaTJjX2J1c19jdHJsKTtcbitcbiBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYWR2YV90aW1lY2FyZF9hdHRyc1tdID0ge1xuIFx0XHUwMDI2ZGV2X2F0dHJfc2VyaWFsbnVtLmF0dHIsXG4gXHRcdTAwMjZkZXZfYXR0cl9nbnNzX3N5bmMuYXR0cixcbkBAIC00MjcyLDYgKzQzMDAsNyBAQCBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYWR2YV90aW1lY2FyZF94MV9hdHRyc1tdID0ge1xuIFx0XHUwMDI2ZGV2X2F0dHJfdHNfd2luZG93X2FkanVzdC5hdHRyLFxuIFx0XHUwMDI2ZGV2X2F0dHJfdXRjX3RhaV9vZmZzZXQuYXR0cixcbiBcdFx1MDAyNmRldl9hdHRyX3RvZF9jb3JyZWN0aW9uLmF0dHIsXG4rXHRcdTAwMjZkZXZfYXR0cl9pMmNfYnVzX2N0cmwuYXR0cixcbiBcdE5VTEwsXG4gfTtcbiBcbkBAIC01MjM1LDYgKzUyNjQsNyBAQCBwdHBfb2NwX2luaXQodm9pZClcbiBcdGNvbnN0IGNoYXIgKndoYXQ7XG4gXHRpbnQgZXJyO1xuIFxuK1x0cmVxdWVzdF9tb2R1bGUoXCJpMmMtZGV2XCIpO1xuIFx0cHRwX29jcF9kZWJ1Z2ZzX2luaXQoKTtcbiBcbiBcdHdoYXQgPSBcInRpbWVjYXJkIGNsYXNzXCI7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQxMzo1NDoyNC41NzMxODk1OTJaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0ODQ1NzA4MzY3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTmV3IEkyQyBCdXMgQ29udHJvbCBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBzeXNmcyBhdHRyaWJ1dGUgY2FsbGVkIGBpMmNfYnVzX2N0cmxgIHdpdGhpbiBgZHJpdmVycy9wdHAvcHRwX29jcC5jYC4gVGhhdCdzIGludGVyZXN0aW5nLCBsZXQncyBzZWUgd2hhdCB0aGF0IGF0dHJpYnV0ZSAqZG9lcyouIEl0IGxvb2tzIGxpa2UgaXQncyBhbHNvIGJyaW5naW5nIGluIGByZXF1ZXN0X21vZHVsZShcImkyYy1kZXZcIik7YCBpbiBgcHRwX29jcF9pbml0YCB0byBlbnN1cmUgdGhlIG1vZHVsZSBpcyBsb2FkZWQuIFRoYXQncyBnb29kIHByYWN0aWNlLlxuXG5Gcm9tIHRoZSBkZXNjcmlwdGlvbiwgYGkyY19idXNfY3RybGAgaXMgbWFuaXB1bGF0aW5nIGBicC1cdTAwM2VwcHNfc2VsZWN0LVx1MDAzZV9fcGFkMWAuIEkgbmVlZCB0byBkaWcgZGVlcGVyIHRvIHVuZGVyc3RhbmQgd2hhdCBgcHBzX3NlbGVjdGAgaXMuIEl0J3MgbGlrZWx5IGEgc3RydWN0dXJlIG1lbWJlci4gVGhpcyB3aWxsIGxldCBtZSBhc3Nlc3Mgd2hhdCB0aGlzIGBfX3BhZDFgIGZpZWxkIGRvZXMuXG5cblRoZSBwYXRjaCBpcyBhbHNvIGNsYWltaW5nIHRoYXQgdGhpcyBuZXcgYXR0cmlidXRlIGlzIGFkZGVkIHRvIGBhZHZhX3RpbWVjYXJkX3gxX2F0dHJzYC4gVGhhdCdzIGhlbHBmdWwgZm9yIGNvbnRleHQuIEknbGwgcHJvYmFibHkgbG9vayBmb3IgZXhpc3RpbmcgYXR0cmlidXRlcyBhbmQgYW55IHJlbGV2YW50IGRlcGVuZGVuY2llcyBpbiB0aGF0IHN0cnVjdHVyZS4gSXQgaGVscHMgdG8gZ2l2ZSBjbHVlcyBhcyB0byBob3cgdGhpcyBuZXcgZmVhdHVyZSBpcyB1c2VkLlxuXG5Ob3csIEkgcmVhbGx5IG5lZWQgdG8gZ2V0IGludG8gYGRyaXZlcnMvcHRwL3B0cF9vY3AuY2AgZGlyZWN0bHkgdG8gc2VlIHdoYXQgY29uZmlndXJhdGlvbiBvcHRpb24gZW5hYmxlcyB0aGlzIHdob2xlIGZlYXR1cmUuIExldCdzIHNlZSB3aGF0IEkgY2FuIGZpbmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyOTcsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQxMzo1NDoyOS40MTg4OTk4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyMDk1MjE5LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwdHBfb2NwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvcHRwL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDEzOjU0OjI5LjQ4MTAwNDI0OFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1MTE1MTQ2NDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIFBUUCBEcml2ZXIgTG9jYXRpb24qKlxuXG5IbW0sIHNvIHRoZSBjb2RlIGluIHF1ZXN0aW9uIGlzIHdpdGhpbiBgZHJpdmVycy9wdHAvcHRwX29jcC5jYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiUmlnaHQsIGxldCdzIG5haWwgZG93biBob3cgdGhpcyBtb2R1bGUgZ2V0cyBidWlsdCBhbmQgY29uZmlndXJlZC5cIiBNeSBmaXJzdCBjb3Vyc2Ugb2YgYWN0aW9uIHdvdWxkIGJlIHRvIGNoZWNrIGVpdGhlciB0aGUgYE1ha2VmaWxlYCBvciB0aGUgYEtjb25maWdgIGZpbGUgd2l0aGluIHRoZSBgZHJpdmVycy9wdHAvYCBkaXJlY3RvcnkuIFRoYXQncyB0aGUgZ28tdG8gYXBwcm9hY2guIFRoZSBgTWFrZWZpbGVgIHdpbGwgdGVsbCBtZSBob3cgdGhlIGBwdHBfb2NwLmNgIGZpbGUgaXMgY29tcGlsZWQgYW5kIGxpbmtlZCBpbnRvIHRoZSBrZXJuZWwg4oCTIGFueSBkZXBlbmRlbmNpZXMsIGNvbXBpbGVyIGZsYWdzLCBhbmQgdGhlIGxpa2UuIFNpbXVsdGFuZW91c2x5LCB0aGUgYEtjb25maWdgIGZpbGUgaXMgZ29pbmcgdG8gcmV2ZWFsIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhhdCBjb250cm9sIHdoZXRoZXIgdGhpcyBkcml2ZXIgaXMgYWN0dWFsbHkgaW5jbHVkZWQgaW4gdGhlIGZpbmFsIGtlcm5lbCBpbWFnZS4gSXMgaXQgYSBtb2R1bGU/IEJ1aWx0LWluPyBJcyB0aGVyZSBhIGZlYXR1cmUgZmxhZyB0aGF0IGVuYWJsZXMgb3IgZGlzYWJsZXMgaXQ/IFVuZGVyc3RhbmRpbmcgdGhvc2UgYnVpbGQtdGltZSBhbmQgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMgaXMgY3J1Y2lhbCBiZWZvcmUgSSBkaXZlIGludG8gdGhlIGNvZGUgaXRzZWxmLiBJJ20gbG9va2luZyBmb3IgdGhlIGJ1aWxkIHByb2Nlc3MsIGFuZCB0aGUgY29uZGl0aW9ucyB1bmRlciB3aGljaCBpdCdzIGNvbXBpbGVkLCBhbmQgaWYgdGhlcmUgYXJlIGFueSBmbGFncyBJIGNvdWxkIHNldC5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc1MiwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDEzOjU0OjMyLjk5MjUyMTc1NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MDk0NTA0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwdHBfb2NwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvcHRwL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcHRwL01ha2VmaWxlPTIwPW9iai0kKENPTkZJR19QVFBfMTU4OF9DTE9DS19WTVcpXFx0Kz0gcHRwX3Ztdy5vXFxuZHJpdmVycy9wdHAvTWFrZWZpbGU6MjE6b2JqLSQoQ09ORklHX1BUUF8xNTg4X0NMT0NLX09DUClcXHQrPSBwdHBfb2NwLm9cXG5kcml2ZXJzL3B0cC9NYWtlZmlsZS0yMi1vYmotJChDT05GSUdfUFRQX0RGTF9UT0QpXFx0XFx0Kz0gcHRwX2RmbF90b2Qub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQxMzo1NDozMy4wNTM0NzMxMTVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTQ0MjU0NDQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBDT05GSUdfUFRQXzE1ODhfQ0xPQ0tfT0NQIENvbmZpZ3VyYXRpb24qKlxuXG5SaWdodCwgc28gYENPTkZJR19QVFBfMTU4OF9DTE9DS19PQ1BgIGlzIHRoZSBrZXkgdG8gZW5hYmxpbmcgdGhpcyBkcml2ZXIsIHRoYXQgbXVjaCBpcyBjbGVhci4gTXkgaW1tZWRpYXRlIG5leHQgdGhvdWdodCBpczogaXMgdGhpcyBhIFBDSSBkcml2ZXI/IEkgdmFndWVseSByZWNhbGwgc29tZSBPQ1AgaW1wbGVtZW50YXRpb25zIHBvdGVudGlhbGx5IGxldmVyYWdpbmcgUENJIGZvciBhY2Nlc3MuIFRvIGJlIGNlcnRhaW4sIEkgc2hvdWxkIHJlYWxseSB2ZXJpZnkgdGhpcyBxdWlja2x5IGJ5IGNoZWNraW5nIHRoZSBkcml2ZXIgc291cmNlIGl0c2VsZi4gTGV0IG1lIGdldCBhIGxvb2sgYXQgYGRyaXZlcnMvcHRwL3B0cF9vY3AuY2AgYW5kIHNlZSB3aGF0IHRoYXQgdGVsbHMgbWUuIFRoYXQgZmlsZSBzaG91bGQgY29udGFpbiB0aGUgY2x1ZXMgSSBuZWVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTk0LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjVUMTM6NTQ6MzUuOTk3NzI5ODIxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5NzM5MDI5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBjaV9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9wdHAvcHRwX29jcC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcHRwL3B0cF9vY3AuYz01MTkxPXB0cF9vY3BfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTUyMTItXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjUyMTM6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIHB0cF9vY3BfZHJpdmVyID0ge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01MjE0LVxcdC5uYW1lXFx0XFx0PSBLQlVJTERfTU9ETkFNRSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjVUMTM6NTQ6MzYuMDU3NDc0OTJaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzI1ODMyNjY1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBUaGlzIFBDSSBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIGlzIGEgUENJIGRyaXZlciwgZ290IGl0LiBUaGlzIHBhdGNoIGludHJvZHVjZXMgYGkyY19idXNfY3RybF9zaG93YCBhbmQgYGkyY19idXNfY3RybF9zdG9yZWAsIHdoaWNoIGFyZSBhY2Nlc3NpYmxlIHRocm91Z2ggc3lzZnMuIFRoYXQncyBpbW1lZGlhdGVseSBpbnRlcmVzdGluZywgYmVjYXVzZSBzeXNmcyBleHBvc3VyZSBpcyBhbHdheXMgYSBwb3RlbnRpYWwgYXR0YWNrIHN1cmZhY2UuIFBsdXMsIHRoZXJlJ3MgYSBgcmVxdWVzdF9tb2R1bGUoXCJpMmMtZGV2XCIpO2AgY2FsbCBhZGRlZCBpbiBgcHRwX29jcF9pbml0YC5cblxuVGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoaXMgaXMgd29ydGggZnV6emluZy4gVGhlIGZhY3QgdGhhdCBuZXcgc3lzZnMgYXR0cmlidXRlcyBhcmUgZXhwb3NlZCBtYWtlcyBhIHN0cm9uZyBjYXNlIGZvciBpdC4gQnV0LCB3YWl0LCBsZXQncyB6b29tIGluIG9uIHRob3NlIGZ1bmN0aW9uczogYGkyY19idXNfY3RybF9zaG93YCBhbmQgYGkyY19idXNfY3RybF9zdG9yZWAuIFRob3NlIGFyZSB0aGUgcmVhbCB0YXJnZXRzIGhlcmUuIE5vdywgYmVmb3JlIEkgZGl2ZSBkZWVwZXIsIEkgc2hvdWxkIG1ha2Ugc3VyZSB0aGVyZSBhcmVuJ3QgYW55IGRlcGVuZGVuY2llcyBvbiBgQ09ORklHX1BUUF8xNTg4X0NMT0NLX09DUGAgdGhhdCBJIG5lZWQgdG8gYmUgYXdhcmUgb2YuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM1NjIsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjVUMTM6NTQ6NDAuMzgzMzEwMDQ1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTk2ODE3OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUFRQXzE1ODhfQ0xPQ0tfT0NQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvcHRwL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9wdHAvS2NvbmZpZz0xOTg9Y29uZmlnIFBUUF8xNTg4X0NMT0NLX1ZNV1xcbi0tXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0yMDktXFxuZHJpdmVycy9wdHAvS2NvbmZpZzoyMTA6Y29uZmlnIFBUUF8xNTg4X0NMT0NLX09DUFxcbmRyaXZlcnMvcHRwL0tjb25maWctMjExLVxcdHRyaXN0YXRlIFxcXCJPcGVuQ29tcHV0ZSBUaW1lQ2FyZCBhcyBQVFAgY2xvY2tcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDEzOjU0OjQwLjQ0MzI4NjAwNFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjcyNDMyMjk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYW5hbHlzaXMgb2YgdGhlIHNpdHVhdGlvbiwgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBsaWtlIHlvdXJzZWxmOlxuXG4qKkFuYWx5emluZyBQVFBfMTU4OF9DTE9DS19PQ1AgRGVwZW5kZW5jaWVzKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoZSBkZXBlbmRlbmNpZXMgb2YgYFBUUF8xNTg4X0NMT0NLX09DUGAuIFRoaXMgaXMgd2hlcmUgdGhlIHJlYWwgZnVuIGJlZ2lucywgcGVlbGluZyBiYWNrIHRoZSBsYXllcnMgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBtb2R1bGUgaXMgaW50ZXJhY3Rpbmcgd2l0aCBldmVyeXRoaW5nIGVsc2UuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBsb29rIGZvciB0aGUgdHlwaWNhbCB0aGluZ3M6IGNsb2NrIHNvdXJjZXMsIGludGVycnVwdCBsaW5lcywgbWVtb3J5IGludGVyZmFjZXMsIGFuZCBhbnkgYXNzb2NpYXRlZCBjb250cm9sIHJlZ2lzdGVycy4gSSdsbCBuZWVkIHRvIGlkZW50aWZ5IHdoaWNoIG90aGVyIG1vZHVsZXMgdGhpcyBvbmUgaW50ZXJhY3RzIHdpdGggZGlyZWN0bHkgb24gdGhlIE9DUCBidXMsIGFuZCBpbiB3aGF0IHJvbGVzOiBtYXN0ZXIsIHNsYXZlLCBvciBwZXJoYXBzIGJvdGguXG5cbkknbSBleHBlY3RpbmcgdG8gc2VlIGRlcGVuZGVuY2llcyBvbiB0aGUgUEhZIGlmIHRoaXMgaGFzIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIGV4dGVybmFsIFBUUCBuZXR3b3JrIGludGVyZmFjZSwgb2J2aW91c2x5LiBJJ2xsIGJlIGxvb2tpbmcgY2FyZWZ1bGx5IGF0IHRoZSBkYXRhIHBhdGhzLCBlc3BlY2lhbGx5IGlmIHRoaXMgaXMgYSBoYXJkd2FyZSBpbXBsZW1lbnRhdGlvbi4gQXJlIHdlIHRhbGtpbmcgYWJvdXQgYSBkZWRpY2F0ZWQgaGFyZHdhcmUgUFRQIGVuZ2luZSwgb3IgaXMgYSBzb2Z0d2FyZSBpbXBsZW1lbnRhdGlvbiBpbnZvbHZlZD8gVGhhdCB3aWxsIGRyYW1hdGljYWxseSBjaGFuZ2UgdGhlIGRlcGVuZGVuY2llcy4gSSBhbHNvIHdhbnQgdG8gY2hlY2sgZm9yIGFueSBjcml0aWNhbCB0aW1pbmcgY29uc3RyYWludHMgb3Igc3luY2hyb25pemF0aW9uIHJlcXVpcmVtZW50czsgdGhpcyBpcyB0aGUgY3J1eCBvZiBQVFAsIGFmdGVyIGFsbC4gSWYgdGhlIGNvZGUgbWVudGlvbnMgYW55IHNwZWNpZmljIGNsb2NrIGRvbWFpbnMsIHRoYXQncyBjcnVjaWFsLiBJJ2xsIHRyYWNlIHRoZW0gYmFjayB0byB0aGVpciBvcmlnaW4gdG8gc2VlIGhvdyB0aGV5J3JlIGdlbmVyYXRlZCBhbmQgbWFuYWdlZC4gQW55IHBvdGVudGlhbCBpc3N1ZXMgd2l0aCBjbG9jayBza2V3IG9yIGppdHRlciB3aWxsIGltbWVkaWF0ZWx5IHN0YW5kIG91dC4gRmluYWxseSwgSSdsbCBiZSBsb29raW5nIGF0IGFueSBjb25maWd1cmF0aW9uIHJlZ2lzdGVycyBvciBjb250cm9sIHNpZ25hbHMgdG8gc2VlIGhvdyB0aGlzIGNsb2NrIGlzIG1hbmFnZWQgYW5kIHR1bmVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MDcxLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjVUMTM6NTQ6NDQuMTE1NzIwNDQ5WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcxNDEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvcHRwL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMjEwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMjEwOlxcdGNvbmZpZyBQVFBfMTU4OF9DTE9DS19PQ1BcXG4gMjExOlxcdFxcdHRyaXN0YXRlIFxcXCJPcGVuQ29tcHV0ZSBUaW1lQ2FyZCBhcyBQVFAgY2xvY2tcXFwiXFxuIDIxMjpcXHRcXHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLXFxuIDIxMzpcXHRcXHRkZXBlbmRzIG9uIEhBU19JT01FTSBcXHUwMDI2XFx1MDAyNiBQQ0lcXG4gMjE0OlxcdFxcdGRlcGVuZHMgb24gSTJDIFxcdTAwMjZcXHUwMDI2IE1URFxcbiAyMTU6XFx0XFx0ZGVwZW5kcyBvbiBTRVJJQUxfODI1MFxcbiAyMTY6XFx0XFx0ZGVwZW5kcyBvbiAhUzM5MFxcbiAyMTc6XFx0XFx0ZGVwZW5kcyBvbiBDT01NT05fQ0xLXFxuIDIxODpcXHRcXHRzZWxlY3QgTkVUX0RFVkxJTktcXG4gMjE5OlxcdFxcdHNlbGVjdCBDUkMxNlxcbiAyMjA6XFx0XFx0c2VsZWN0IERQTExcXG4gMjIxOlxcdFxcdGhlbHBcXG4gMjIyOlxcdFxcdCAgVGhpcyBkcml2ZXIgYWRkcyBzdXBwb3J0IGZvciBhbiBPcGVuQ29tcHV0ZSB0aW1lIGNhcmQuXFxuIDIyMzpcXHRcXG4gMjI0OlxcdFxcdCAgVGhlIE9wZW5Db21wdXRlIHRpbWUgY2FyZCBpcyBhbiBhdG9taWMgY2xvY2sgYWxvbmcgd2l0aFxcbiAyMjU6XFx0XFx0ICBhIEdQUyByZWNlaXZlciB0aGF0IHByb3ZpZGVzIGEgR3JhbmRtYXN0ZXIgY2xvY2sgc291cmNlXFxuIDIyNjpcXHRcXHQgIGZvciBhIFBUUCBlbmFibGVkIG5ldHdvcmsuXFxuIDIyNzpcXHRcXG4gMjI4OlxcdFxcdCAgTW9yZSBpbmZvcm1hdGlvbiBpcyBhdmFpbGFibGUgYXQgaHR0cDovL3d3dy50aW1pbmdjYXJkLmNvbS9cXG4gMjI5OlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQxMzo1NDo0NC4xMTU3OTMzOTlaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzU4NTMyMjUwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBUUCBPQ1AgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgdGhlIGBQVFBfMTU4OF9DTE9DS19PQ1BgIGRyaXZlci4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHRyYWNlIGl0cyBkZXBlbmRlbmNpZXMuIEl0IHJlbGllcyBvbiBhIG51bWJlciBvZiBleGlzdGluZyBjb25maWd1cmF0aW9uczogYFBUUF8xNTg4X0NMT0NLYCwgYEhBU19JT01FTWAsIGBQQ0lgLCBgSTJDYCwgYE1URGAsIGBTRVJJQUxfODI1MGAsIHRoZSBhYnNlbmNlIG9mIGBTMzkwYCwgYW5kIGBDT01NT05fQ0xLYC4gVGhhdCdzIGEgcmVhc29uYWJsZSBzZXQsIG5vdGhpbmcgcGFydGljdWxhcmx5IHN1cnByaXNpbmcgdGhlcmUuXG5cblRoZSBpbnRlcmVzdGluZyBwYXJ0IGlzIHRoZSBhZGRpdGlvbiBvZiBgcmVxdWVzdF9tb2R1bGUoXCJpMmMtZGV2XCIpO2AuIFRoaXMgbWFrZXMgbWUgaW1tZWRpYXRlbHkgY29uc2lkZXIgdGhlIHBvdGVudGlhbCBuZWVkIGZvciBgSTJDX0NIQVJERVZgIHRvIGJlIGVuYWJsZWQuIEkgbmVlZCB0byBjbGFyaWZ5IHRoYXQuIEFoLCByaWdodC4gYHJlcXVlc3RfbW9kdWxlKFwiaTJjLWRldlwiKWAgbWVhbnMgdGhlIGBpMmMtZGV2YCBtb2R1bGUgd2lsbCBiZSBsb2FkZWQgcmVnYXJkbGVzcy4gSWYgYEkyQ19DSEFSREVWYCAqaXMqIGVuYWJsZWQsIGl0IHdpbGwgbG9hZCB0b28uIE9rYXksIGdvdCBpdC5cblxuTm93LCBsZXQncyB6b29tIGluIG9uIHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkuIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBzeXNmcyBhdHRyaWJ1dGU6IGBpMmNfYnVzX2N0cmxgLiBUaGUgcGF0Y2ggaW1wbGVtZW50cyB0d28gc3lzZnMgZnVuY3Rpb25zOiBgaTJjX2J1c19jdHJsX3Nob3dgIGFuZCBgaTJjX2J1c19jdHJsX3N0b3JlYC4gVGhlIHBhdGNoIGlzIGFsbG93aW5nIHVzZXJzcGFjZSBhY2Nlc3MgdG8gcmVhZCBhbmQgd3JpdGUgdG8gdGhlIGBwcHNfc2VsZWN0LVx1MDAzZV9fcGFkMWAgbWVtb3J5LW1hcHBlZCByZWdpc3RlciB0aHJvdWdoIHRoZSBzeXNmcyBlbnRyeS4gXG5cbkxldCdzIGRvIGEgcXVpY2sgZG91YmxlLWNoZWNrIGZvciBhbnkgb3RoZXIgcmVsYXRlZCBjb25maWd1cmF0aW9ucy4gVGhlIG1haW4gY29uZmlnIHN5bWJvbCBpcyBgUFRQXzE1ODhfQ0xPQ0tfT0NQYCwgYnV0IGVuYWJsaW5nIGBJMkNfQ0hBUkRFVmAgbWlnaHQgYmUgYmVuZWZpY2lhbCBmb3IgdGVzdGluZy5cblxuSSdtIG1ha2luZyBhIG1lbnRhbCBub3RlIG9mIHRob3NlIHR3byBmdW5jdGlvbnM6IGBpMmNfYnVzX2N0cmxfc2hvd2AgYW5kIGBpMmNfYnVzX2N0cmxfc3RvcmVgLCB0byBrZWVwIGluIG1pbmQuXG5cbkJlZm9yZSBJIG1vdmUgb24sIEkgbmVlZCB0byBjb25maXJtIHRoYXQgYGkyY19idXNfY3RybF9zaG93YCBhbmQgYGkyY19idXNfY3RybF9zdG9yZWAgYXJlIHN0YXRpYy4gWWVzLCB0aGV5IGFyZS4gQW5kIHRoZSBpbXBsaWNhdGlvbnMgYXJlLi4ud2FpdCBhIG1pbnV0ZS4uLiBTeXprYWxsZXIgY2FuIGZ1enogc3lzZnMgYXR0cmlidXRlcy4gVGhhdCdzIGEgY3JpdGljYWwgcG9pbnQgdG8gY29uc2lkZXIgZHVyaW5nIHRoZSB0ZXN0aW5nIHBoYXNlIVxuXG5SaWdodCwgdGhhdCdzIGVub3VnaCBmb3Igbm93LiBUaW1lIHRvIGNhbGwgaXQgYSBzZXQtcmVzdWx0cyFcblxuXG4iLCJJbnB1dFRva2VucyI6NDczMSwiT3V0cHV0VG9rZW5zIjoxMzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNjYsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQxMzo1NDo1MS43MDExMTg2NDVaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5ODMzODcwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUFRQXzE1ODhfQ0xPQ0tfT0NQXCIsXG4gICAgXCJJMkNfQ0hBUkRFVlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImkyY19idXNfY3RybF9zaG93XCIsXG4gICAgXCJpMmNfYnVzX2N0cmxfc3RvcmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV3IHN5c2ZzIGF0dHJpYnV0ZSBgaTJjX2J1c19jdHJsYCB0byB0aGUgUFRQIE9DUCBkcml2ZXIsIHdoaWNoIGFsbG93cyByZWFkaW5nIGFuZCB3cml0aW5nIHRvIHRoZSBgcHBzX3NlbGVjdC1cXHUwMDNlX19wYWQxYCBtZW1vcnkgbWFwcGVkIHJlZ2lzdGVyLiBUaGlzIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXItc3BhY2UgdmlhIHN5c2ZzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlBUUF8xNTg4X0NMT0NLX09DUFwiLFxuICAgIFwiSTJDX0NIQVJERVZcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpMmNfYnVzX2N0cmxfc2hvd1wiLFxuICAgIFwiaTJjX2J1c19jdHJsX3N0b3JlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIG5ldyBzeXNmcyBhdHRyaWJ1dGUgYGkyY19idXNfY3RybGAgdG8gdGhlIFBUUCBPQ1AgZHJpdmVyLCB3aGljaCBhbGxvd3MgcmVhZGluZyBhbmQgd3JpdGluZyB0byB0aGUgYHBwc19zZWxlY3QtXFx1MDAzZV9fcGFkMWAgbWVtb3J5IG1hcHBlZCByZWdpc3Rlci4gVGhpcyBpcyByZWFjaGFibGUgZnJvbSB1c2VyLXNwYWNlIHZpYSBzeXNmcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowsqxkv[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-25 13:43:32 +0000 UTC FinishedAt: 2026-06-25 13:54:53 +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": "02f144fbb4c86c360495d33debe307cb46a57f95", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PTP_1588_CLOCK_OCP", "I2C_CHARDEV" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "02f144fbb4c86c360495d33debe307cb46a57f95", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PTP_1588_CLOCK_OCP", "I2C_CHARDEV" ], "series_id": "44bdebf9-f418-46b5-8532-e53f49d066ff" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "i2c_bus_ctrl_show", "i2c_bus_ctrl_store" ], "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+CgkJCTx0ZD4yMDI2LzA2LzI1IDEzOjU0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BUUF8xNTg4X0NMT0NLX09DUCYjMzQ7LAogICAgJiMzNDtJMkNfQ0hBUkRFViYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2kyY19idXNfY3RybF9zaG93JiMzNDssCiAgICAmIzM0O2kyY19idXNfY3RybF9zdG9yZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbmV3IHN5c2ZzIGF0dHJpYnV0ZSBgaTJjX2J1c19jdHJsYCB0byB0aGUgUFRQIE9DUCBkcml2ZXIsIHdoaWNoIGFsbG93cyByZWFkaW5nIGFuZCB3cml0aW5nIHRvIHRoZSBgcHBzX3NlbGVjdC1cdTAwM2VfX3BhZDFgIG1lbW9yeSBtYXBwZWQgcmVnaXN0ZXIuIFRoaXMgaXMgcmVhY2hhYmxlIGZyb20gdXNlci1zcGFjZSB2aWEgc3lzZnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMTM6NTQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBmYWRiMjYwZjYzYjM5MzMyYTU0NTIxZTI1MDQyM2E1MGE4ZDFhNDFmXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdW4gMjUgMTM6NTQ6MjIgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9wdHAvcHRwX29jcC5jIGIvZHJpdmVycy9wdHAvcHRwX29jcC5jXG5pbmRleCAzNWU5MTFmMWFkNzhjMC4uMWI0Y2NiNGZlY2E1NDkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3B0cC9wdHBfb2NwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvcHRwL3B0cF9vY3AuY1xuQEAgLTQyMjQsNiAmIzQzOzQyMjQsMzQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvY3BfYXR0cl9ncm91cCBhcnRfdGltZWNhcmRfZ3JvdXBzW10gPSB7XG4gXHR7IH0sXG4gfTtcbiBcbiYjNDM7c3RhdGljIHNzaXplX3RcbiYjNDM7aTJjX2J1c19jdHJsX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IHB0cF9vY3AgKmJwID0gZGV2X2dldF9kcnZkYXRhKGRldik7XG4mIzQzO1xuJiM0MztcdGlmICghYnAtXHUwMDNlcHBzX3NlbGVjdClcbiYjNDM7XHRcdHJldHVybiAtRU5PREVWO1xuJiM0MztcdHJldHVybiBzeXNmc19lbWl0KGJ1ZiwgXCYjMzQ7MHglMDh4XFxuXCYjMzQ7LFxuJiM0MztcdFx0XHQgIGlvcmVhZDMyKFx1MDAyNmJwLVx1MDAzZXBwc19zZWxlY3QtXHUwMDNlX19wYWQxKSk7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyBzc2l6ZV90XG4mIzQzO2kyY19idXNfY3RybF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLFxuJiM0MztcdFx0ICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgcHRwX29jcCAqYnAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTtcbiYjNDM7XHR1MzIgdmFsO1xuJiM0MztcbiYjNDM7XHRpZiAoIWJwLVx1MDAzZXBwc19zZWxlY3QpXG4mIzQzO1x0XHRyZXR1cm4gLUVOT0RFVjtcbiYjNDM7XHRpZiAoa3N0cnRvdTMyKGJ1ZiwgMCwgXHUwMDI2dmFsKSlcbiYjNDM7XHRcdHJldHVybiAtRUlOVkFMO1xuJiM0MztcdGlvd3JpdGUzMih2YWwsIFx1MDAyNmJwLVx1MDAzZXBwc19zZWxlY3QtXHUwMDNlX19wYWQxKTtcbiYjNDM7XHRyZXR1cm4gY291bnQ7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhpMmNfYnVzX2N0cmwpO1xuJiM0MztcbiBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYWR2YV90aW1lY2FyZF9hdHRyc1tdID0ge1xuIFx0XHUwMDI2ZGV2X2F0dHJfc2VyaWFsbnVtLmF0dHIsXG4gXHRcdTAwMjZkZXZfYXR0cl9nbnNzX3N5bmMuYXR0cixcbkBAIC00MjcyLDYgJiM0Mzs0MzAwLDcgQEAgc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmFkdmFfdGltZWNhcmRfeDFfYXR0cnNbXSA9IHtcbiBcdFx1MDAyNmRldl9hdHRyX3RzX3dpbmRvd19hZGp1c3QuYXR0cixcbiBcdFx1MDAyNmRldl9hdHRyX3V0Y190YWlfb2Zmc2V0LmF0dHIsXG4gXHRcdTAwMjZkZXZfYXR0cl90b2RfY29ycmVjdGlvbi5hdHRyLFxuJiM0MztcdFx1MDAyNmRldl9hdHRyX2kyY19idXNfY3RybC5hdHRyLFxuIFx0TlVMTCxcbiB9O1xuIFxuQEAgLTUyMzUsNiAmIzQzOzUyNjQsNyBAQCBwdHBfb2NwX2luaXQodm9pZClcbiBcdGNvbnN0IGNoYXIgKndoYXQ7XG4gXHRpbnQgZXJyO1xuIFxuJiM0MztcdHJlcXVlc3RfbW9kdWxlKFwmIzM0O2kyYy1kZXZcJiMzNDspO1xuIFx0cHRwX29jcF9kZWJ1Z2ZzX2luaXQoKTtcbiBcbiBcdHdoYXQgPSBcJiMzNDt0aW1lY2FyZCBjbGFzc1wmIzM0OztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAxMzo1NDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtQVFBfMTU4OF9DTE9DS19PQ1AmIzM0OywKICAgICYjMzQ7STJDX0NIQVJERVYmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpMmNfYnVzX2N0cmxfc2hvdyYjMzQ7LAogICAgJiMzNDtpMmNfYnVzX2N0cmxfc3RvcmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIG5ldyBzeXNmcyBhdHRyaWJ1dGUgYGkyY19idXNfY3RybGAgdG8gdGhlIFBUUCBPQ1AgZHJpdmVyLCB3aGljaCBhbGxvd3MgcmVhZGluZyBhbmQgd3JpdGluZyB0byB0aGUgYHBwc19zZWxlY3QtXHUwMDNlX19wYWQxYCBtZW1vcnkgbWFwcGVkIHJlZ2lzdGVyLiBUaGlzIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXItc3BhY2UgdmlhIHN5c2ZzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBmYWRiMjYwZjYzYjM5MzMyYTU0NTIxZTI1MDQyM2E1MGE4ZDFhNDFmCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdW4gMjUgMTM6NTQ6MjIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3B0cC9wdHBfb2NwLmMgYi9kcml2ZXJzL3B0cC9wdHBfb2NwLmMKaW5kZXggMzVlOTExZjFhZDc4YzAuLjFiNGNjYjRmZWNhNTQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3B0cC9wdHBfb2NwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9wdHAvcHRwX29jcC5jCkBAIC00MjI0LDYgJiM0Mzs0MjI0LDM0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2NwX2F0dHJfZ3JvdXAgYXJ0X3RpbWVjYXJkX2dyb3Vwc1tdID0gewogCXsgfSwKIH07CiAKJiM0MztzdGF0aWMgc3NpemVfdAomIzQzO2kyY19idXNfY3RybF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKJiM0Mzt7CiYjNDM7CXN0cnVjdCBwdHBfb2NwICpicCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwomIzQzOwomIzQzOwlpZiAoIWJwLSZndDtwcHNfc2VsZWN0KQomIzQzOwkJcmV0dXJuIC1FTk9ERVY7CiYjNDM7CXJldHVybiBzeXNmc19lbWl0KGJ1ZiwgJiMzNDsweCUwOHhcbiYjMzQ7LAomIzQzOwkJCSAgaW9yZWFkMzIoJmFtcDticC0mZ3Q7cHBzX3NlbGVjdC0mZ3Q7X19wYWQxKSk7CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyBzc2l6ZV90CiYjNDM7aTJjX2J1c19jdHJsX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiYjNDM7CQkgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBwdHBfb2NwICpicCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwomIzQzOwl1MzIgdmFsOwomIzQzOwomIzQzOwlpZiAoIWJwLSZndDtwcHNfc2VsZWN0KQomIzQzOwkJcmV0dXJuIC1FTk9ERVY7CiYjNDM7CWlmIChrc3RydG91MzIoYnVmLCAwLCAmYW1wO3ZhbCkpCiYjNDM7CQlyZXR1cm4gLUVJTlZBTDsKJiM0MzsJaW93cml0ZTMyKHZhbCwgJmFtcDticC0mZ3Q7cHBzX3NlbGVjdC0mZ3Q7X19wYWQxKTsKJiM0MzsJcmV0dXJuIGNvdW50OwomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgREVWSUNFX0FUVFJfUlcoaTJjX2J1c19jdHJsKTsKJiM0MzsKIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphZHZhX3RpbWVjYXJkX2F0dHJzW10gPSB7CiAJJmFtcDtkZXZfYXR0cl9zZXJpYWxudW0uYXR0ciwKIAkmYW1wO2Rldl9hdHRyX2duc3Nfc3luYy5hdHRyLApAQCAtNDI3Miw2ICYjNDM7NDMwMCw3IEBAIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphZHZhX3RpbWVjYXJkX3gxX2F0dHJzW10gPSB7CiAJJmFtcDtkZXZfYXR0cl90c193aW5kb3dfYWRqdXN0LmF0dHIsCiAJJmFtcDtkZXZfYXR0cl91dGNfdGFpX29mZnNldC5hdHRyLAogCSZhbXA7ZGV2X2F0dHJfdG9kX2NvcnJlY3Rpb24uYXR0ciwKJiM0MzsJJmFtcDtkZXZfYXR0cl9pMmNfYnVzX2N0cmwuYXR0ciwKIAlOVUxMLAogfTsKIApAQCAtNTIzNSw2ICYjNDM7NTI2NCw3IEBAIHB0cF9vY3BfaW5pdCh2b2lkKQogCWNvbnN0IGNoYXIgKndoYXQ7CiAJaW50IGVycjsKIAomIzQzOwlyZXF1ZXN0X21vZHVsZSgmIzM0O2kyYy1kZXYmIzM0Oyk7CiAJcHRwX29jcF9kZWJ1Z2ZzX2luaXQoKTsKIAogCXdoYXQgPSAmIzM0O3RpbWVjYXJkIGNsYXNzJiMzNDs7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI1IDEzOjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyOTcKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAxMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBOZXcgSTJDIEJ1cyBDb250cm9sIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBzeXNmcyBhdHRyaWJ1dGUgY2FsbGVkIGBpMmNfYnVzX2N0cmxgIHdpdGhpbiBgZHJpdmVycy9wdHAvcHRwX29jcC5jYC4gVGhhdCYjMzk7cyBpbnRlcmVzdGluZywgbGV0JiMzOTtzIHNlZSB3aGF0IHRoYXQgYXR0cmlidXRlICpkb2VzKi4gSXQgbG9va3MgbGlrZSBpdCYjMzk7cyBhbHNvIGJyaW5naW5nIGluIGByZXF1ZXN0X21vZHVsZSgmIzM0O2kyYy1kZXYmIzM0Oyk7YCBpbiBgcHRwX29jcF9pbml0YCB0byBlbnN1cmUgdGhlIG1vZHVsZSBpcyBsb2FkZWQuIFRoYXQmIzM5O3MgZ29vZCBwcmFjdGljZS4KCkZyb20gdGhlIGRlc2NyaXB0aW9uLCBgaTJjX2J1c19jdHJsYCBpcyBtYW5pcHVsYXRpbmcgYGJwLSZndDtwcHNfc2VsZWN0LSZndDtfX3BhZDFgLiBJIG5lZWQgdG8gZGlnIGRlZXBlciB0byB1bmRlcnN0YW5kIHdoYXQgYHBwc19zZWxlY3RgIGlzLiBJdCYjMzk7cyBsaWtlbHkgYSBzdHJ1Y3R1cmUgbWVtYmVyLiBUaGlzIHdpbGwgbGV0IG1lIGFzc2VzcyB3aGF0IHRoaXMgYF9fcGFkMWAgZmllbGQgZG9lcy4KClRoZSBwYXRjaCBpcyBhbHNvIGNsYWltaW5nIHRoYXQgdGhpcyBuZXcgYXR0cmlidXRlIGlzIGFkZGVkIHRvIGBhZHZhX3RpbWVjYXJkX3gxX2F0dHJzYC4gVGhhdCYjMzk7cyBoZWxwZnVsIGZvciBjb250ZXh0LiBJJiMzOTtsbCBwcm9iYWJseSBsb29rIGZvciBleGlzdGluZyBhdHRyaWJ1dGVzIGFuZCBhbnkgcmVsZXZhbnQgZGVwZW5kZW5jaWVzIGluIHRoYXQgc3RydWN0dXJlLiBJdCBoZWxwcyB0byBnaXZlIGNsdWVzIGFzIHRvIGhvdyB0aGlzIG5ldyBmZWF0dXJlIGlzIHVzZWQuCgpOb3csIEkgcmVhbGx5IG5lZWQgdG8gZ2V0IGludG8gYGRyaXZlcnMvcHRwL3B0cF9vY3AuY2AgZGlyZWN0bHkgdG8gc2VlIHdoYXQgY29uZmlndXJhdGlvbiBvcHRpb24gZW5hYmxlcyB0aGlzIHdob2xlIGZlYXR1cmUuIExldCYjMzk7cyBzZWUgd2hhdCBJIGNhbiBmaW5kLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI1IDEzOjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cHRwX29jcCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI1IDEzOjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3NTIKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiA0MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBQVFAgRHJpdmVyIExvY2F0aW9uKioKCkhtbSwgc28gdGhlIGNvZGUgaW4gcXVlc3Rpb24gaXMgd2l0aGluIGBkcml2ZXJzL3B0cC9wdHBfb2NwLmNgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtSaWdodCwgbGV0JiMzOTtzIG5haWwgZG93biBob3cgdGhpcyBtb2R1bGUgZ2V0cyBidWlsdCBhbmQgY29uZmlndXJlZC4mIzM0OyBNeSBmaXJzdCBjb3Vyc2Ugb2YgYWN0aW9uIHdvdWxkIGJlIHRvIGNoZWNrIGVpdGhlciB0aGUgYE1ha2VmaWxlYCBvciB0aGUgYEtjb25maWdgIGZpbGUgd2l0aGluIHRoZSBgZHJpdmVycy9wdHAvYCBkaXJlY3RvcnkuIFRoYXQmIzM5O3MgdGhlIGdvLXRvIGFwcHJvYWNoLiBUaGUgYE1ha2VmaWxlYCB3aWxsIHRlbGwgbWUgaG93IHRoZSBgcHRwX29jcC5jYCBmaWxlIGlzIGNvbXBpbGVkIGFuZCBsaW5rZWQgaW50byB0aGUga2VybmVsIOKAkyBhbnkgZGVwZW5kZW5jaWVzLCBjb21waWxlciBmbGFncywgYW5kIHRoZSBsaWtlLiBTaW11bHRhbmVvdXNseSwgdGhlIGBLY29uZmlnYCBmaWxlIGlzIGdvaW5nIHRvIHJldmVhbCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHRoYXQgY29udHJvbCB3aGV0aGVyIHRoaXMgZHJpdmVyIGlzIGFjdHVhbGx5IGluY2x1ZGVkIGluIHRoZSBmaW5hbCBrZXJuZWwgaW1hZ2UuIElzIGl0IGEgbW9kdWxlPyBCdWlsdC1pbj8gSXMgdGhlcmUgYSBmZWF0dXJlIGZsYWcgdGhhdCBlbmFibGVzIG9yIGRpc2FibGVzIGl0PyBVbmRlcnN0YW5kaW5nIHRob3NlIGJ1aWxkLXRpbWUgYW5kIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzIGlzIGNydWNpYWwgYmVmb3JlIEkgZGl2ZSBpbnRvIHRoZSBjb2RlIGl0c2VsZi4gSSYjMzk7bSBsb29raW5nIGZvciB0aGUgYnVpbGQgcHJvY2VzcywgYW5kIHRoZSBjb25kaXRpb25zIHVuZGVyIHdoaWNoIGl0JiMzOTtzIGNvbXBpbGVkLCBhbmQgaWYgdGhlcmUgYXJlIGFueSBmbGFncyBJIGNvdWxkIHNldC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAxMzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwdHBfb2NwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9wdHAvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9wdHAvTWFrZWZpbGU9MjA9b2JqLSQoQ09ORklHX1BUUF8xNTg4X0NMT0NLX1ZNVylcdCYjNDM7PSBwdHBfdm13Lm9cbmRyaXZlcnMvcHRwL01ha2VmaWxlOjIxOm9iai0kKENPTkZJR19QVFBfMTU4OF9DTE9DS19PQ1ApXHQmIzQzOz0gcHRwX29jcC5vXG5kcml2ZXJzL3B0cC9NYWtlZmlsZS0yMi1vYmotJChDT05GSUdfUFRQX0RGTF9UT0QpXHRcdCYjNDM7PSBwdHBfZGZsX3RvZC5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMTM6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE5NAoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDQ2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBDT05GSUdfUFRQXzE1ODhfQ0xPQ0tfT0NQIENvbmZpZ3VyYXRpb24qKgoKUmlnaHQsIHNvIGBDT05GSUdfUFRQXzE1ODhfQ0xPQ0tfT0NQYCBpcyB0aGUga2V5IHRvIGVuYWJsaW5nIHRoaXMgZHJpdmVyLCB0aGF0IG11Y2ggaXMgY2xlYXIuIE15IGltbWVkaWF0ZSBuZXh0IHRob3VnaHQgaXM6IGlzIHRoaXMgYSBQQ0kgZHJpdmVyPyBJIHZhZ3VlbHkgcmVjYWxsIHNvbWUgT0NQIGltcGxlbWVudGF0aW9ucyBwb3RlbnRpYWxseSBsZXZlcmFnaW5nIFBDSSBmb3IgYWNjZXNzLiBUbyBiZSBjZXJ0YWluLCBJIHNob3VsZCByZWFsbHkgdmVyaWZ5IHRoaXMgcXVpY2tseSBieSBjaGVja2luZyB0aGUgZHJpdmVyIHNvdXJjZSBpdHNlbGYuIExldCBtZSBnZXQgYSBsb29rIGF0IGBkcml2ZXJzL3B0cC9wdHBfb2NwLmNgIGFuZCBzZWUgd2hhdCB0aGF0IHRlbGxzIG1lLiBUaGF0IGZpbGUgc2hvdWxkIGNvbnRhaW4gdGhlIGNsdWVzIEkgbmVlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAxMzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwY2lfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9wdHAvcHRwX29jcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL3B0cF9vY3AuYz01MTkxPXB0cF9vY3BfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01MjEyLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjUyMTM6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIHB0cF9vY3BfZHJpdmVyID0ge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTUyMTQtXHQubmFtZVx0XHQ9IEtCVUlMRF9NT0ROQU1FLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI1IDEzOjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1NjIKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAxNDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIFRoaXMgUENJIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIGlzIGEgUENJIGRyaXZlciwgZ290IGl0LiBUaGlzIHBhdGNoIGludHJvZHVjZXMgYGkyY19idXNfY3RybF9zaG93YCBhbmQgYGkyY19idXNfY3RybF9zdG9yZWAsIHdoaWNoIGFyZSBhY2Nlc3NpYmxlIHRocm91Z2ggc3lzZnMuIFRoYXQmIzM5O3MgaW1tZWRpYXRlbHkgaW50ZXJlc3RpbmcsIGJlY2F1c2Ugc3lzZnMgZXhwb3N1cmUgaXMgYWx3YXlzIGEgcG90ZW50aWFsIGF0dGFjayBzdXJmYWNlLiBQbHVzLCB0aGVyZSYjMzk7cyBhIGByZXF1ZXN0X21vZHVsZSgmIzM0O2kyYy1kZXYmIzM0Oyk7YCBjYWxsIGFkZGVkIGluIGBwdHBfb2NwX2luaXRgLgoKVGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoaXMgaXMgd29ydGggZnV6emluZy4gVGhlIGZhY3QgdGhhdCBuZXcgc3lzZnMgYXR0cmlidXRlcyBhcmUgZXhwb3NlZCBtYWtlcyBhIHN0cm9uZyBjYXNlIGZvciBpdC4gQnV0LCB3YWl0LCBsZXQmIzM5O3Mgem9vbSBpbiBvbiB0aG9zZSBmdW5jdGlvbnM6IGBpMmNfYnVzX2N0cmxfc2hvd2AgYW5kIGBpMmNfYnVzX2N0cmxfc3RvcmVgLiBUaG9zZSBhcmUgdGhlIHJlYWwgdGFyZ2V0cyBoZXJlLiBOb3csIGJlZm9yZSBJIGRpdmUgZGVlcGVyLCBJIHNob3VsZCBtYWtlIHN1cmUgdGhlcmUgYXJlbiYjMzk7dCBhbnkgZGVwZW5kZW5jaWVzIG9uIGBDT05GSUdfUFRQXzE1ODhfQ0xPQ0tfT0NQYCB0aGF0IEkgbmVlZCB0byBiZSBhd2FyZSBvZi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMTM6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFBUUF8xNTg4X0NMT0NLX09DUCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9wdHAvS2NvbmZpZz0xOTg9Y29uZmlnIFBUUF8xNTg4X0NMT0NLX1ZNV1xuLS1cbmRyaXZlcnMvcHRwL0tjb25maWctMjA5LVxuZHJpdmVycy9wdHAvS2NvbmZpZzoyMTA6Y29uZmlnIFBUUF8xNTg4X0NMT0NLX09DUFxuZHJpdmVycy9wdHAvS2NvbmZpZy0yMTEtXHR0cmlzdGF0ZSBcJiMzNDtPcGVuQ29tcHV0ZSBUaW1lQ2FyZCBhcyBQVFAgY2xvY2tcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMTM6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDA3MQoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGFuYWx5c2lzIG9mIHRoZSBzaXR1YXRpb24sIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgbGlrZSB5b3Vyc2VsZjoKCioqQW5hbHl6aW5nIFBUUF8xNTg4X0NMT0NLX09DUCBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGUgZGVwZW5kZW5jaWVzIG9mIGBQVFBfMTU4OF9DTE9DS19PQ1BgLiBUaGlzIGlzIHdoZXJlIHRoZSByZWFsIGZ1biBiZWdpbnMsIHBlZWxpbmcgYmFjayB0aGUgbGF5ZXJzIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgbW9kdWxlIGlzIGludGVyYWN0aW5nIHdpdGggZXZlcnl0aGluZyBlbHNlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gbG9vayBmb3IgdGhlIHR5cGljYWwgdGhpbmdzOiBjbG9jayBzb3VyY2VzLCBpbnRlcnJ1cHQgbGluZXMsIG1lbW9yeSBpbnRlcmZhY2VzLCBhbmQgYW55IGFzc29jaWF0ZWQgY29udHJvbCByZWdpc3RlcnMuIEkmIzM5O2xsIG5lZWQgdG8gaWRlbnRpZnkgd2hpY2ggb3RoZXIgbW9kdWxlcyB0aGlzIG9uZSBpbnRlcmFjdHMgd2l0aCBkaXJlY3RseSBvbiB0aGUgT0NQIGJ1cywgYW5kIGluIHdoYXQgcm9sZXM6IG1hc3Rlciwgc2xhdmUsIG9yIHBlcmhhcHMgYm90aC4KCkkmIzM5O20gZXhwZWN0aW5nIHRvIHNlZSBkZXBlbmRlbmNpZXMgb24gdGhlIFBIWSBpZiB0aGlzIGhhcyB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBleHRlcm5hbCBQVFAgbmV0d29yayBpbnRlcmZhY2UsIG9idmlvdXNseS4gSSYjMzk7bGwgYmUgbG9va2luZyBjYXJlZnVsbHkgYXQgdGhlIGRhdGEgcGF0aHMsIGVzcGVjaWFsbHkgaWYgdGhpcyBpcyBhIGhhcmR3YXJlIGltcGxlbWVudGF0aW9uLiBBcmUgd2UgdGFsa2luZyBhYm91dCBhIGRlZGljYXRlZCBoYXJkd2FyZSBQVFAgZW5naW5lLCBvciBpcyBhIHNvZnR3YXJlIGltcGxlbWVudGF0aW9uIGludm9sdmVkPyBUaGF0IHdpbGwgZHJhbWF0aWNhbGx5IGNoYW5nZSB0aGUgZGVwZW5kZW5jaWVzLiBJIGFsc28gd2FudCB0byBjaGVjayBmb3IgYW55IGNyaXRpY2FsIHRpbWluZyBjb25zdHJhaW50cyBvciBzeW5jaHJvbml6YXRpb24gcmVxdWlyZW1lbnRzOyB0aGlzIGlzIHRoZSBjcnV4IG9mIFBUUCwgYWZ0ZXIgYWxsLiBJZiB0aGUgY29kZSBtZW50aW9ucyBhbnkgc3BlY2lmaWMgY2xvY2sgZG9tYWlucywgdGhhdCYjMzk7cyBjcnVjaWFsLiBJJiMzOTtsbCB0cmFjZSB0aGVtIGJhY2sgdG8gdGhlaXIgb3JpZ2luIHRvIHNlZSBob3cgdGhleSYjMzk7cmUgZ2VuZXJhdGVkIGFuZCBtYW5hZ2VkLiBBbnkgcG90ZW50aWFsIGlzc3VlcyB3aXRoIGNsb2NrIHNrZXcgb3Igaml0dGVyIHdpbGwgaW1tZWRpYXRlbHkgc3RhbmQgb3V0LiBGaW5hbGx5LCBJJiMzOTtsbCBiZSBsb29raW5nIGF0IGFueSBjb25maWd1cmF0aW9uIHJlZ2lzdGVycyBvciBjb250cm9sIHNpZ25hbHMgdG8gc2VlIGhvdyB0aGlzIGNsb2NrIGlzIG1hbmFnZWQgYW5kIHR1bmVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAxMzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyMTAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDIxMDpcdGNvbmZpZyBQVFBfMTU4OF9DTE9DS19PQ1BcbiAyMTE6XHRcdHRyaXN0YXRlIFwmIzM0O09wZW5Db21wdXRlIFRpbWVDYXJkIGFzIFBUUCBjbG9ja1wmIzM0O1xuIDIxMjpcdFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS1xuIDIxMzpcdFx0ZGVwZW5kcyBvbiBIQVNfSU9NRU0gXHUwMDI2XHUwMDI2IFBDSVxuIDIxNDpcdFx0ZGVwZW5kcyBvbiBJMkMgXHUwMDI2XHUwMDI2IE1URFxuIDIxNTpcdFx0ZGVwZW5kcyBvbiBTRVJJQUxfODI1MFxuIDIxNjpcdFx0ZGVwZW5kcyBvbiAhUzM5MFxuIDIxNzpcdFx0ZGVwZW5kcyBvbiBDT01NT05fQ0xLXG4gMjE4Olx0XHRzZWxlY3QgTkVUX0RFVkxJTktcbiAyMTk6XHRcdHNlbGVjdCBDUkMxNlxuIDIyMDpcdFx0c2VsZWN0IERQTExcbiAyMjE6XHRcdGhlbHBcbiAyMjI6XHRcdCAgVGhpcyBkcml2ZXIgYWRkcyBzdXBwb3J0IGZvciBhbiBPcGVuQ29tcHV0ZSB0aW1lIGNhcmQuXG4gMjIzOlx0XG4gMjI0Olx0XHQgIFRoZSBPcGVuQ29tcHV0ZSB0aW1lIGNhcmQgaXMgYW4gYXRvbWljIGNsb2NrIGFsb25nIHdpdGhcbiAyMjU6XHRcdCAgYSBHUFMgcmVjZWl2ZXIgdGhhdCBwcm92aWRlcyBhIEdyYW5kbWFzdGVyIGNsb2NrIHNvdXJjZVxuIDIyNjpcdFx0ICBmb3IgYSBQVFAgZW5hYmxlZCBuZXR3b3JrLlxuIDIyNzpcdFxuIDIyODpcdFx0ICBNb3JlIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LnRpbWluZ2NhcmQuY29tL1xuIDIyOTpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNSAxMzo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NzMxCgkJCQkJCQlvdXRwdXQ6IDEzMgoJCQkJCQkJdGhvdWdodHM6IDM2NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBUUCBPQ1AgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciB0aGUgYFBUUF8xNTg4X0NMT0NLX09DUGAgZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gdHJhY2UgaXRzIGRlcGVuZGVuY2llcy4gSXQgcmVsaWVzIG9uIGEgbnVtYmVyIG9mIGV4aXN0aW5nIGNvbmZpZ3VyYXRpb25zOiBgUFRQXzE1ODhfQ0xPQ0tgLCBgSEFTX0lPTUVNYCwgYFBDSWAsIGBJMkNgLCBgTVREYCwgYFNFUklBTF84MjUwYCwgdGhlIGFic2VuY2Ugb2YgYFMzOTBgLCBhbmQgYENPTU1PTl9DTEtgLiBUaGF0JiMzOTtzIGEgcmVhc29uYWJsZSBzZXQsIG5vdGhpbmcgcGFydGljdWxhcmx5IHN1cnByaXNpbmcgdGhlcmUuCgpUaGUgaW50ZXJlc3RpbmcgcGFydCBpcyB0aGUgYWRkaXRpb24gb2YgYHJlcXVlc3RfbW9kdWxlKCYjMzQ7aTJjLWRldiYjMzQ7KTtgLiBUaGlzIG1ha2VzIG1lIGltbWVkaWF0ZWx5IGNvbnNpZGVyIHRoZSBwb3RlbnRpYWwgbmVlZCBmb3IgYEkyQ19DSEFSREVWYCB0byBiZSBlbmFibGVkLiBJIG5lZWQgdG8gY2xhcmlmeSB0aGF0LiBBaCwgcmlnaHQuIGByZXF1ZXN0X21vZHVsZSgmIzM0O2kyYy1kZXYmIzM0OylgIG1lYW5zIHRoZSBgaTJjLWRldmAgbW9kdWxlIHdpbGwgYmUgbG9hZGVkIHJlZ2FyZGxlc3MuIElmIGBJMkNfQ0hBUkRFVmAgKmlzKiBlbmFibGVkLCBpdCB3aWxsIGxvYWQgdG9vLiBPa2F5LCBnb3QgaXQuCgpOb3csIGxldCYjMzk7cyB6b29tIGluIG9uIHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkuIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBzeXNmcyBhdHRyaWJ1dGU6IGBpMmNfYnVzX2N0cmxgLiBUaGUgcGF0Y2ggaW1wbGVtZW50cyB0d28gc3lzZnMgZnVuY3Rpb25zOiBgaTJjX2J1c19jdHJsX3Nob3dgIGFuZCBgaTJjX2J1c19jdHJsX3N0b3JlYC4gVGhlIHBhdGNoIGlzIGFsbG93aW5nIHVzZXJzcGFjZSBhY2Nlc3MgdG8gcmVhZCBhbmQgd3JpdGUgdG8gdGhlIGBwcHNfc2VsZWN0LSZndDtfX3BhZDFgIG1lbW9yeS1tYXBwZWQgcmVnaXN0ZXIgdGhyb3VnaCB0aGUgc3lzZnMgZW50cnkuIAoKTGV0JiMzOTtzIGRvIGEgcXVpY2sgZG91YmxlLWNoZWNrIGZvciBhbnkgb3RoZXIgcmVsYXRlZCBjb25maWd1cmF0aW9ucy4gVGhlIG1haW4gY29uZmlnIHN5bWJvbCBpcyBgUFRQXzE1ODhfQ0xPQ0tfT0NQYCwgYnV0IGVuYWJsaW5nIGBJMkNfQ0hBUkRFVmAgbWlnaHQgYmUgYmVuZWZpY2lhbCBmb3IgdGVzdGluZy4KCkkmIzM5O20gbWFraW5nIGEgbWVudGFsIG5vdGUgb2YgdGhvc2UgdHdvIGZ1bmN0aW9uczogYGkyY19idXNfY3RybF9zaG93YCBhbmQgYGkyY19idXNfY3RybF9zdG9yZWAsIHRvIGtlZXAgaW4gbWluZC4KCkJlZm9yZSBJIG1vdmUgb24sIEkgbmVlZCB0byBjb25maXJtIHRoYXQgYGkyY19idXNfY3RybF9zaG93YCBhbmQgYGkyY19idXNfY3RybF9zdG9yZWAgYXJlIHN0YXRpYy4gWWVzLCB0aGV5IGFyZS4gQW5kIHRoZSBpbXBsaWNhdGlvbnMgYXJlLi4ud2FpdCBhIG1pbnV0ZS4uLiBTeXprYWxsZXIgY2FuIGZ1enogc3lzZnMgYXR0cmlidXRlcy4gVGhhdCYjMzk7cyBhIGNyaXRpY2FsIHBvaW50IHRvIGNvbnNpZGVyIGR1cmluZyB0aGUgdGVzdGluZyBwaGFzZSEKClJpZ2h0LCB0aGF0JiMzOTtzIGVub3VnaCBmb3Igbm93LiBUaW1lIHRvIGNhbGwgaXQgYSBzZXQtcmVzdWx0cyEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjUgMTM6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BUUF8xNTg4X0NMT0NLX09DUCYjMzQ7LAogICAgJiMzNDtJMkNfQ0hBUkRFViYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2kyY19idXNfY3RybF9zaG93JiMzNDssCiAgICAmIzM0O2kyY19idXNfY3RybF9zdG9yZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbmV3IHN5c2ZzIGF0dHJpYnV0ZSBgaTJjX2J1c19jdHJsYCB0byB0aGUgUFRQIE9DUCBkcml2ZXIsIHdoaWNoIGFsbG93cyByZWFkaW5nIGFuZCB3cml0aW5nIHRvIHRoZSBgcHBzX3NlbGVjdC1cdTAwM2VfX3BhZDFgIG1lbW9yeSBtYXBwZWQgcmVnaXN0ZXIuIFRoaXMgaXMgcmVhY2hhYmxlIGZyb20gdXNlci1zcGFjZSB2aWEgc3lzZnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BUUF8xNTg4X0NMT0NLX09DUCYjMzQ7LAogICAgJiMzNDtJMkNfQ0hBUkRFViYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2kyY19idXNfY3RybF9zaG93JiMzNDssCiAgICAmIzM0O2kyY19idXNfY3RybF9zdG9yZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbmV3IHN5c2ZzIGF0dHJpYnV0ZSBgaTJjX2J1c19jdHJsYCB0byB0aGUgUFRQIE9DUCBkcml2ZXIsIHdoaWNoIGFsbG93cyByZWFkaW5nIGFuZCB3cml0aW5nIHRvIHRoZSBgcHBzX3NlbGVjdC1cdTAwM2VfX3BhZDFgIG1lbW9yeSBtYXBwZWQgcmVnaXN0ZXIuIFRoaXMgaXMgcmVhY2hhYmxlIGZyb20gdXNlci1zcGFjZSB2aWEgc3lzZnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yNVQxMzo1NDoyNC4xMDYyNzU3OTlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzY5MzE5NzM2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJQVFBfMTU4OF9DTE9DS19PQ1BcIixcbiAgICBcIkkyQ19DSEFSREVWXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaTJjX2J1c19jdHJsX3Nob3dcIixcbiAgICBcImkyY19idXNfY3RybF9zdG9yZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBuZXcgc3lzZnMgYXR0cmlidXRlIGBpMmNfYnVzX2N0cmxgIHRvIHRoZSBQVFAgT0NQIGRyaXZlciwgd2hpY2ggYWxsb3dzIHJlYWRpbmcgYW5kIHdyaXRpbmcgdG8gdGhlIGBwcHNfc2VsZWN0LVxcdTAwM2VfX3BhZDFgIG1lbW9yeSBtYXBwZWQgcmVnaXN0ZXIuIFRoaXMgaXMgcmVhY2hhYmxlIGZyb20gdXNlci1zcGFjZSB2aWEgc3lzZnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDEzOjU0OjI0LjEwNjI4Mjc0OVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDY2MDQ1MjAzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZmFkYjI2MGY2M2IzOTMzMmE1NDUyMWUyNTA0MjNhNTBhOGQxYTQxZlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1biAyNSAxMzo1NDoyMiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3B0cC9wdHBfb2NwLmMgYi9kcml2ZXJzL3B0cC9wdHBfb2NwLmNcXG5pbmRleCAzNWU5MTFmMWFkNzhjMC4uMWI0Y2NiNGZlY2E1NDkgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9wdHAvcHRwX29jcC5jXFxuKysrIGIvZHJpdmVycy9wdHAvcHRwX29jcC5jXFxuQEAgLTQyMjQsNiArNDIyNCwzNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9jcF9hdHRyX2dyb3VwIGFydF90aW1lY2FyZF9ncm91cHNbXSA9IHtcXG4gXFx0eyB9LFxcbiB9O1xcbiBcXG4rc3RhdGljIHNzaXplX3RcXG4raTJjX2J1c19jdHJsX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKVxcbit7XFxuK1xcdHN0cnVjdCBwdHBfb2NwICpicCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpO1xcbitcXG4rXFx0aWYgKCFicC1cXHUwMDNlcHBzX3NlbGVjdClcXG4rXFx0XFx0cmV0dXJuIC1FTk9ERVY7XFxuK1xcdHJldHVybiBzeXNmc19lbWl0KGJ1ZiwgXFxcIjB4JTA4eFxcXFxuXFxcIixcXG4rXFx0XFx0XFx0ICBpb3JlYWQzMihcXHUwMDI2YnAtXFx1MDAzZXBwc19zZWxlY3QtXFx1MDAzZV9fcGFkMSkpO1xcbit9XFxuK1xcbitzdGF0aWMgc3NpemVfdFxcbitpMmNfYnVzX2N0cmxfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0cixcXG4rXFx0XFx0ICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpXFxuK3tcXG4rXFx0c3RydWN0IHB0cF9vY3AgKmJwID0gZGV2X2dldF9kcnZkYXRhKGRldik7XFxuK1xcdHUzMiB2YWw7XFxuK1xcbitcXHRpZiAoIWJwLVxcdTAwM2VwcHNfc2VsZWN0KVxcbitcXHRcXHRyZXR1cm4gLUVOT0RFVjtcXG4rXFx0aWYgKGtzdHJ0b3UzMihidWYsIDAsIFxcdTAwMjZ2YWwpKVxcbitcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4rXFx0aW93cml0ZTMyKHZhbCwgXFx1MDAyNmJwLVxcdTAwM2VwcHNfc2VsZWN0LVxcdTAwM2VfX3BhZDEpO1xcbitcXHRyZXR1cm4gY291bnQ7XFxuK31cXG4rXFxuK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhpMmNfYnVzX2N0cmwpO1xcbitcXG4gc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmFkdmFfdGltZWNhcmRfYXR0cnNbXSA9IHtcXG4gXFx0XFx1MDAyNmRldl9hdHRyX3NlcmlhbG51bS5hdHRyLFxcbiBcXHRcXHUwMDI2ZGV2X2F0dHJfZ25zc19zeW5jLmF0dHIsXFxuQEAgLTQyNzIsNiArNDMwMCw3IEBAIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphZHZhX3RpbWVjYXJkX3gxX2F0dHJzW10gPSB7XFxuIFxcdFxcdTAwMjZkZXZfYXR0cl90c193aW5kb3dfYWRqdXN0LmF0dHIsXFxuIFxcdFxcdTAwMjZkZXZfYXR0cl91dGNfdGFpX29mZnNldC5hdHRyLFxcbiBcXHRcXHUwMDI2ZGV2X2F0dHJfdG9kX2NvcnJlY3Rpb24uYXR0cixcXG4rXFx0XFx1MDAyNmRldl9hdHRyX2kyY19idXNfY3RybC5hdHRyLFxcbiBcXHROVUxMLFxcbiB9O1xcbiBcXG5AQCAtNTIzNSw2ICs1MjY0LDcgQEAgcHRwX29jcF9pbml0KHZvaWQpXFxuIFxcdGNvbnN0IGNoYXIgKndoYXQ7XFxuIFxcdGludCBlcnI7XFxuIFxcbitcXHRyZXF1ZXN0X21vZHVsZShcXFwiaTJjLWRldlxcXCIpO1xcbiBcXHRwdHBfb2NwX2RlYnVnZnNfaW5pdCgpO1xcbiBcXG4gXFx0d2hhdCA9IFxcXCJ0aW1lY2FyZCBjbGFzc1xcXCI7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDEzOjU0OjI0LjU3MzE4NzczMloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjcyMjYyNzYwMzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUFRQXzE1ODhfQ0xPQ0tfT0NQXCIsXG4gICAgXCJJMkNfQ0hBUkRFVlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImkyY19idXNfY3RybF9zaG93XCIsXG4gICAgXCJpMmNfYnVzX2N0cmxfc3RvcmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV3IHN5c2ZzIGF0dHJpYnV0ZSBgaTJjX2J1c19jdHJsYCB0byB0aGUgUFRQIE9DUCBkcml2ZXIsIHdoaWNoIGFsbG93cyByZWFkaW5nIGFuZCB3cml0aW5nIHRvIHRoZSBgcHBzX3NlbGVjdC1cXHUwMDNlX19wYWQxYCBtZW1vcnkgbWFwcGVkIHJlZ2lzdGVyLiBUaGlzIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXItc3BhY2UgdmlhIHN5c2ZzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGZhZGIyNjBmNjNiMzkzMzJhNTQ1MjFlMjUwNDIzYTUwYThkMWE0MWZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1biAyNSAxMzo1NDoyMiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvcHRwL3B0cF9vY3AuYyBiL2RyaXZlcnMvcHRwL3B0cF9vY3AuY1xuaW5kZXggMzVlOTExZjFhZDc4YzAuLjFiNGNjYjRmZWNhNTQ5IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9wdHAvcHRwX29jcC5jXG4rKysgYi9kcml2ZXJzL3B0cC9wdHBfb2NwLmNcbkBAIC00MjI0LDYgKzQyMjQsMzQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvY3BfYXR0cl9ncm91cCBhcnRfdGltZWNhcmRfZ3JvdXBzW10gPSB7XG4gXHR7IH0sXG4gfTtcbiBcbitzdGF0aWMgc3NpemVfdFxuK2kyY19idXNfY3RybF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1Zilcbit7XG4rXHRzdHJ1Y3QgcHRwX29jcCAqYnAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTtcbitcbitcdGlmICghYnAtXHUwMDNlcHBzX3NlbGVjdClcbitcdFx0cmV0dXJuIC1FTk9ERVY7XG4rXHRyZXR1cm4gc3lzZnNfZW1pdChidWYsIFwiMHglMDh4XFxuXCIsXG4rXHRcdFx0ICBpb3JlYWQzMihcdTAwMjZicC1cdTAwM2VwcHNfc2VsZWN0LVx1MDAzZV9fcGFkMSkpO1xuK31cbitcbitzdGF0aWMgc3NpemVfdFxuK2kyY19idXNfY3RybF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLFxuK1x0XHQgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudClcbit7XG4rXHRzdHJ1Y3QgcHRwX29jcCAqYnAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTtcbitcdHUzMiB2YWw7XG4rXG4rXHRpZiAoIWJwLVx1MDAzZXBwc19zZWxlY3QpXG4rXHRcdHJldHVybiAtRU5PREVWO1xuK1x0aWYgKGtzdHJ0b3UzMihidWYsIDAsIFx1MDAyNnZhbCkpXG4rXHRcdHJldHVybiAtRUlOVkFMO1xuK1x0aW93cml0ZTMyKHZhbCwgXHUwMDI2YnAtXHUwMDNlcHBzX3NlbGVjdC1cdTAwM2VfX3BhZDEpO1xuK1x0cmV0dXJuIGNvdW50O1xuK31cbitcbitzdGF0aWMgREVWSUNFX0FUVFJfUlcoaTJjX2J1c19jdHJsKTtcbitcbiBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYWR2YV90aW1lY2FyZF9hdHRyc1tdID0ge1xuIFx0XHUwMDI2ZGV2X2F0dHJfc2VyaWFsbnVtLmF0dHIsXG4gXHRcdTAwMjZkZXZfYXR0cl9nbnNzX3N5bmMuYXR0cixcbkBAIC00MjcyLDYgKzQzMDAsNyBAQCBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYWR2YV90aW1lY2FyZF94MV9hdHRyc1tdID0ge1xuIFx0XHUwMDI2ZGV2X2F0dHJfdHNfd2luZG93X2FkanVzdC5hdHRyLFxuIFx0XHUwMDI2ZGV2X2F0dHJfdXRjX3RhaV9vZmZzZXQuYXR0cixcbiBcdFx1MDAyNmRldl9hdHRyX3RvZF9jb3JyZWN0aW9uLmF0dHIsXG4rXHRcdTAwMjZkZXZfYXR0cl9pMmNfYnVzX2N0cmwuYXR0cixcbiBcdE5VTEwsXG4gfTtcbiBcbkBAIC01MjM1LDYgKzUyNjQsNyBAQCBwdHBfb2NwX2luaXQodm9pZClcbiBcdGNvbnN0IGNoYXIgKndoYXQ7XG4gXHRpbnQgZXJyO1xuIFxuK1x0cmVxdWVzdF9tb2R1bGUoXCJpMmMtZGV2XCIpO1xuIFx0cHRwX29jcF9kZWJ1Z2ZzX2luaXQoKTtcbiBcbiBcdHdoYXQgPSBcInRpbWVjYXJkIGNsYXNzXCI7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQxMzo1NDoyNC41NzMxODk1OTJaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0ODQ1NzA4MzY3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTmV3IEkyQyBCdXMgQ29udHJvbCBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBzeXNmcyBhdHRyaWJ1dGUgY2FsbGVkIGBpMmNfYnVzX2N0cmxgIHdpdGhpbiBgZHJpdmVycy9wdHAvcHRwX29jcC5jYC4gVGhhdCdzIGludGVyZXN0aW5nLCBsZXQncyBzZWUgd2hhdCB0aGF0IGF0dHJpYnV0ZSAqZG9lcyouIEl0IGxvb2tzIGxpa2UgaXQncyBhbHNvIGJyaW5naW5nIGluIGByZXF1ZXN0X21vZHVsZShcImkyYy1kZXZcIik7YCBpbiBgcHRwX29jcF9pbml0YCB0byBlbnN1cmUgdGhlIG1vZHVsZSBpcyBsb2FkZWQuIFRoYXQncyBnb29kIHByYWN0aWNlLlxuXG5Gcm9tIHRoZSBkZXNjcmlwdGlvbiwgYGkyY19idXNfY3RybGAgaXMgbWFuaXB1bGF0aW5nIGBicC1cdTAwM2VwcHNfc2VsZWN0LVx1MDAzZV9fcGFkMWAuIEkgbmVlZCB0byBkaWcgZGVlcGVyIHRvIHVuZGVyc3RhbmQgd2hhdCBgcHBzX3NlbGVjdGAgaXMuIEl0J3MgbGlrZWx5IGEgc3RydWN0dXJlIG1lbWJlci4gVGhpcyB3aWxsIGxldCBtZSBhc3Nlc3Mgd2hhdCB0aGlzIGBfX3BhZDFgIGZpZWxkIGRvZXMuXG5cblRoZSBwYXRjaCBpcyBhbHNvIGNsYWltaW5nIHRoYXQgdGhpcyBuZXcgYXR0cmlidXRlIGlzIGFkZGVkIHRvIGBhZHZhX3RpbWVjYXJkX3gxX2F0dHJzYC4gVGhhdCdzIGhlbHBmdWwgZm9yIGNvbnRleHQuIEknbGwgcHJvYmFibHkgbG9vayBmb3IgZXhpc3RpbmcgYXR0cmlidXRlcyBhbmQgYW55IHJlbGV2YW50IGRlcGVuZGVuY2llcyBpbiB0aGF0IHN0cnVjdHVyZS4gSXQgaGVscHMgdG8gZ2l2ZSBjbHVlcyBhcyB0byBob3cgdGhpcyBuZXcgZmVhdHVyZSBpcyB1c2VkLlxuXG5Ob3csIEkgcmVhbGx5IG5lZWQgdG8gZ2V0IGludG8gYGRyaXZlcnMvcHRwL3B0cF9vY3AuY2AgZGlyZWN0bHkgdG8gc2VlIHdoYXQgY29uZmlndXJhdGlvbiBvcHRpb24gZW5hYmxlcyB0aGlzIHdob2xlIGZlYXR1cmUuIExldCdzIHNlZSB3aGF0IEkgY2FuIGZpbmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyOTcsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQxMzo1NDoyOS40MTg4OTk4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyMDk1MjE5LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwdHBfb2NwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvcHRwL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDEzOjU0OjI5LjQ4MTAwNDI0OFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1MTE1MTQ2NDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIFBUUCBEcml2ZXIgTG9jYXRpb24qKlxuXG5IbW0sIHNvIHRoZSBjb2RlIGluIHF1ZXN0aW9uIGlzIHdpdGhpbiBgZHJpdmVycy9wdHAvcHRwX29jcC5jYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiUmlnaHQsIGxldCdzIG5haWwgZG93biBob3cgdGhpcyBtb2R1bGUgZ2V0cyBidWlsdCBhbmQgY29uZmlndXJlZC5cIiBNeSBmaXJzdCBjb3Vyc2Ugb2YgYWN0aW9uIHdvdWxkIGJlIHRvIGNoZWNrIGVpdGhlciB0aGUgYE1ha2VmaWxlYCBvciB0aGUgYEtjb25maWdgIGZpbGUgd2l0aGluIHRoZSBgZHJpdmVycy9wdHAvYCBkaXJlY3RvcnkuIFRoYXQncyB0aGUgZ28tdG8gYXBwcm9hY2guIFRoZSBgTWFrZWZpbGVgIHdpbGwgdGVsbCBtZSBob3cgdGhlIGBwdHBfb2NwLmNgIGZpbGUgaXMgY29tcGlsZWQgYW5kIGxpbmtlZCBpbnRvIHRoZSBrZXJuZWwg4oCTIGFueSBkZXBlbmRlbmNpZXMsIGNvbXBpbGVyIGZsYWdzLCBhbmQgdGhlIGxpa2UuIFNpbXVsdGFuZW91c2x5LCB0aGUgYEtjb25maWdgIGZpbGUgaXMgZ29pbmcgdG8gcmV2ZWFsIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhhdCBjb250cm9sIHdoZXRoZXIgdGhpcyBkcml2ZXIgaXMgYWN0dWFsbHkgaW5jbHVkZWQgaW4gdGhlIGZpbmFsIGtlcm5lbCBpbWFnZS4gSXMgaXQgYSBtb2R1bGU/IEJ1aWx0LWluPyBJcyB0aGVyZSBhIGZlYXR1cmUgZmxhZyB0aGF0IGVuYWJsZXMgb3IgZGlzYWJsZXMgaXQ/IFVuZGVyc3RhbmRpbmcgdGhvc2UgYnVpbGQtdGltZSBhbmQgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMgaXMgY3J1Y2lhbCBiZWZvcmUgSSBkaXZlIGludG8gdGhlIGNvZGUgaXRzZWxmLiBJJ20gbG9va2luZyBmb3IgdGhlIGJ1aWxkIHByb2Nlc3MsIGFuZCB0aGUgY29uZGl0aW9ucyB1bmRlciB3aGljaCBpdCdzIGNvbXBpbGVkLCBhbmQgaWYgdGhlcmUgYXJlIGFueSBmbGFncyBJIGNvdWxkIHNldC5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc1MiwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDEzOjU0OjMyLjk5MjUyMTc1NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MDk0NTA0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwdHBfb2NwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvcHRwL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcHRwL01ha2VmaWxlPTIwPW9iai0kKENPTkZJR19QVFBfMTU4OF9DTE9DS19WTVcpXFx0Kz0gcHRwX3Ztdy5vXFxuZHJpdmVycy9wdHAvTWFrZWZpbGU6MjE6b2JqLSQoQ09ORklHX1BUUF8xNTg4X0NMT0NLX09DUClcXHQrPSBwdHBfb2NwLm9cXG5kcml2ZXJzL3B0cC9NYWtlZmlsZS0yMi1vYmotJChDT05GSUdfUFRQX0RGTF9UT0QpXFx0XFx0Kz0gcHRwX2RmbF90b2Qub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQxMzo1NDozMy4wNTM0NzMxMTVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTQ0MjU0NDQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBDT05GSUdfUFRQXzE1ODhfQ0xPQ0tfT0NQIENvbmZpZ3VyYXRpb24qKlxuXG5SaWdodCwgc28gYENPTkZJR19QVFBfMTU4OF9DTE9DS19PQ1BgIGlzIHRoZSBrZXkgdG8gZW5hYmxpbmcgdGhpcyBkcml2ZXIsIHRoYXQgbXVjaCBpcyBjbGVhci4gTXkgaW1tZWRpYXRlIG5leHQgdGhvdWdodCBpczogaXMgdGhpcyBhIFBDSSBkcml2ZXI/IEkgdmFndWVseSByZWNhbGwgc29tZSBPQ1AgaW1wbGVtZW50YXRpb25zIHBvdGVudGlhbGx5IGxldmVyYWdpbmcgUENJIGZvciBhY2Nlc3MuIFRvIGJlIGNlcnRhaW4sIEkgc2hvdWxkIHJlYWxseSB2ZXJpZnkgdGhpcyBxdWlja2x5IGJ5IGNoZWNraW5nIHRoZSBkcml2ZXIgc291cmNlIGl0c2VsZi4gTGV0IG1lIGdldCBhIGxvb2sgYXQgYGRyaXZlcnMvcHRwL3B0cF9vY3AuY2AgYW5kIHNlZSB3aGF0IHRoYXQgdGVsbHMgbWUuIFRoYXQgZmlsZSBzaG91bGQgY29udGFpbiB0aGUgY2x1ZXMgSSBuZWVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTk0LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjVUMTM6NTQ6MzUuOTk3NzI5ODIxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5NzM5MDI5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBjaV9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9wdHAvcHRwX29jcC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcHRwL3B0cF9vY3AuYz01MTkxPXB0cF9vY3BfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTUyMTItXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjUyMTM6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIHB0cF9vY3BfZHJpdmVyID0ge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01MjE0LVxcdC5uYW1lXFx0XFx0PSBLQlVJTERfTU9ETkFNRSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjVUMTM6NTQ6MzYuMDU3NDc0OTJaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzI1ODMyNjY1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBUaGlzIFBDSSBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIGlzIGEgUENJIGRyaXZlciwgZ290IGl0LiBUaGlzIHBhdGNoIGludHJvZHVjZXMgYGkyY19idXNfY3RybF9zaG93YCBhbmQgYGkyY19idXNfY3RybF9zdG9yZWAsIHdoaWNoIGFyZSBhY2Nlc3NpYmxlIHRocm91Z2ggc3lzZnMuIFRoYXQncyBpbW1lZGlhdGVseSBpbnRlcmVzdGluZywgYmVjYXVzZSBzeXNmcyBleHBvc3VyZSBpcyBhbHdheXMgYSBwb3RlbnRpYWwgYXR0YWNrIHN1cmZhY2UuIFBsdXMsIHRoZXJlJ3MgYSBgcmVxdWVzdF9tb2R1bGUoXCJpMmMtZGV2XCIpO2AgY2FsbCBhZGRlZCBpbiBgcHRwX29jcF9pbml0YC5cblxuVGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoaXMgaXMgd29ydGggZnV6emluZy4gVGhlIGZhY3QgdGhhdCBuZXcgc3lzZnMgYXR0cmlidXRlcyBhcmUgZXhwb3NlZCBtYWtlcyBhIHN0cm9uZyBjYXNlIGZvciBpdC4gQnV0LCB3YWl0LCBsZXQncyB6b29tIGluIG9uIHRob3NlIGZ1bmN0aW9uczogYGkyY19idXNfY3RybF9zaG93YCBhbmQgYGkyY19idXNfY3RybF9zdG9yZWAuIFRob3NlIGFyZSB0aGUgcmVhbCB0YXJnZXRzIGhlcmUuIE5vdywgYmVmb3JlIEkgZGl2ZSBkZWVwZXIsIEkgc2hvdWxkIG1ha2Ugc3VyZSB0aGVyZSBhcmVuJ3QgYW55IGRlcGVuZGVuY2llcyBvbiBgQ09ORklHX1BUUF8xNTg4X0NMT0NLX09DUGAgdGhhdCBJIG5lZWQgdG8gYmUgYXdhcmUgb2YuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM1NjIsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjVUMTM6NTQ6NDAuMzgzMzEwMDQ1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTk2ODE3OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUFRQXzE1ODhfQ0xPQ0tfT0NQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvcHRwL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9wdHAvS2NvbmZpZz0xOTg9Y29uZmlnIFBUUF8xNTg4X0NMT0NLX1ZNV1xcbi0tXFxuZHJpdmVycy9wdHAvS2NvbmZpZy0yMDktXFxuZHJpdmVycy9wdHAvS2NvbmZpZzoyMTA6Y29uZmlnIFBUUF8xNTg4X0NMT0NLX09DUFxcbmRyaXZlcnMvcHRwL0tjb25maWctMjExLVxcdHRyaXN0YXRlIFxcXCJPcGVuQ29tcHV0ZSBUaW1lQ2FyZCBhcyBQVFAgY2xvY2tcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI1VDEzOjU0OjQwLjQ0MzI4NjAwNFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjcyNDMyMjk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYW5hbHlzaXMgb2YgdGhlIHNpdHVhdGlvbiwgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBsaWtlIHlvdXJzZWxmOlxuXG4qKkFuYWx5emluZyBQVFBfMTU4OF9DTE9DS19PQ1AgRGVwZW5kZW5jaWVzKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoZSBkZXBlbmRlbmNpZXMgb2YgYFBUUF8xNTg4X0NMT0NLX09DUGAuIFRoaXMgaXMgd2hlcmUgdGhlIHJlYWwgZnVuIGJlZ2lucywgcGVlbGluZyBiYWNrIHRoZSBsYXllcnMgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBtb2R1bGUgaXMgaW50ZXJhY3Rpbmcgd2l0aCBldmVyeXRoaW5nIGVsc2UuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBsb29rIGZvciB0aGUgdHlwaWNhbCB0aGluZ3M6IGNsb2NrIHNvdXJjZXMsIGludGVycnVwdCBsaW5lcywgbWVtb3J5IGludGVyZmFjZXMsIGFuZCBhbnkgYXNzb2NpYXRlZCBjb250cm9sIHJlZ2lzdGVycy4gSSdsbCBuZWVkIHRvIGlkZW50aWZ5IHdoaWNoIG90aGVyIG1vZHVsZXMgdGhpcyBvbmUgaW50ZXJhY3RzIHdpdGggZGlyZWN0bHkgb24gdGhlIE9DUCBidXMsIGFuZCBpbiB3aGF0IHJvbGVzOiBtYXN0ZXIsIHNsYXZlLCBvciBwZXJoYXBzIGJvdGguXG5cbkknbSBleHBlY3RpbmcgdG8gc2VlIGRlcGVuZGVuY2llcyBvbiB0aGUgUEhZIGlmIHRoaXMgaGFzIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIGV4dGVybmFsIFBUUCBuZXR3b3JrIGludGVyZmFjZSwgb2J2aW91c2x5LiBJJ2xsIGJlIGxvb2tpbmcgY2FyZWZ1bGx5IGF0IHRoZSBkYXRhIHBhdGhzLCBlc3BlY2lhbGx5IGlmIHRoaXMgaXMgYSBoYXJkd2FyZSBpbXBsZW1lbnRhdGlvbi4gQXJlIHdlIHRhbGtpbmcgYWJvdXQgYSBkZWRpY2F0ZWQgaGFyZHdhcmUgUFRQIGVuZ2luZSwgb3IgaXMgYSBzb2Z0d2FyZSBpbXBsZW1lbnRhdGlvbiBpbnZvbHZlZD8gVGhhdCB3aWxsIGRyYW1hdGljYWxseSBjaGFuZ2UgdGhlIGRlcGVuZGVuY2llcy4gSSBhbHNvIHdhbnQgdG8gY2hlY2sgZm9yIGFueSBjcml0aWNhbCB0aW1pbmcgY29uc3RyYWludHMgb3Igc3luY2hyb25pemF0aW9uIHJlcXVpcmVtZW50czsgdGhpcyBpcyB0aGUgY3J1eCBvZiBQVFAsIGFmdGVyIGFsbC4gSWYgdGhlIGNvZGUgbWVudGlvbnMgYW55IHNwZWNpZmljIGNsb2NrIGRvbWFpbnMsIHRoYXQncyBjcnVjaWFsLiBJJ2xsIHRyYWNlIHRoZW0gYmFjayB0byB0aGVpciBvcmlnaW4gdG8gc2VlIGhvdyB0aGV5J3JlIGdlbmVyYXRlZCBhbmQgbWFuYWdlZC4gQW55IHBvdGVudGlhbCBpc3N1ZXMgd2l0aCBjbG9jayBza2V3IG9yIGppdHRlciB3aWxsIGltbWVkaWF0ZWx5IHN0YW5kIG91dC4gRmluYWxseSwgSSdsbCBiZSBsb29raW5nIGF0IGFueSBjb25maWd1cmF0aW9uIHJlZ2lzdGVycyBvciBjb250cm9sIHNpZ25hbHMgdG8gc2VlIGhvdyB0aGlzIGNsb2NrIGlzIG1hbmFnZWQgYW5kIHR1bmVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MDcxLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjVUMTM6NTQ6NDQuMTE1NzIwNDQ5WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcxNDEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvcHRwL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMjEwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMjEwOlxcdGNvbmZpZyBQVFBfMTU4OF9DTE9DS19PQ1BcXG4gMjExOlxcdFxcdHRyaXN0YXRlIFxcXCJPcGVuQ29tcHV0ZSBUaW1lQ2FyZCBhcyBQVFAgY2xvY2tcXFwiXFxuIDIxMjpcXHRcXHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLXFxuIDIxMzpcXHRcXHRkZXBlbmRzIG9uIEhBU19JT01FTSBcXHUwMDI2XFx1MDAyNiBQQ0lcXG4gMjE0OlxcdFxcdGRlcGVuZHMgb24gSTJDIFxcdTAwMjZcXHUwMDI2IE1URFxcbiAyMTU6XFx0XFx0ZGVwZW5kcyBvbiBTRVJJQUxfODI1MFxcbiAyMTY6XFx0XFx0ZGVwZW5kcyBvbiAhUzM5MFxcbiAyMTc6XFx0XFx0ZGVwZW5kcyBvbiBDT01NT05fQ0xLXFxuIDIxODpcXHRcXHRzZWxlY3QgTkVUX0RFVkxJTktcXG4gMjE5OlxcdFxcdHNlbGVjdCBDUkMxNlxcbiAyMjA6XFx0XFx0c2VsZWN0IERQTExcXG4gMjIxOlxcdFxcdGhlbHBcXG4gMjIyOlxcdFxcdCAgVGhpcyBkcml2ZXIgYWRkcyBzdXBwb3J0IGZvciBhbiBPcGVuQ29tcHV0ZSB0aW1lIGNhcmQuXFxuIDIyMzpcXHRcXG4gMjI0OlxcdFxcdCAgVGhlIE9wZW5Db21wdXRlIHRpbWUgY2FyZCBpcyBhbiBhdG9taWMgY2xvY2sgYWxvbmcgd2l0aFxcbiAyMjU6XFx0XFx0ICBhIEdQUyByZWNlaXZlciB0aGF0IHByb3ZpZGVzIGEgR3JhbmRtYXN0ZXIgY2xvY2sgc291cmNlXFxuIDIyNjpcXHRcXHQgIGZvciBhIFBUUCBlbmFibGVkIG5ldHdvcmsuXFxuIDIyNzpcXHRcXG4gMjI4OlxcdFxcdCAgTW9yZSBpbmZvcm1hdGlvbiBpcyBhdmFpbGFibGUgYXQgaHR0cDovL3d3dy50aW1pbmdjYXJkLmNvbS9cXG4gMjI5OlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQxMzo1NDo0NC4xMTU3OTMzOTlaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzU4NTMyMjUwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBUUCBPQ1AgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgdGhlIGBQVFBfMTU4OF9DTE9DS19PQ1BgIGRyaXZlci4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHRyYWNlIGl0cyBkZXBlbmRlbmNpZXMuIEl0IHJlbGllcyBvbiBhIG51bWJlciBvZiBleGlzdGluZyBjb25maWd1cmF0aW9uczogYFBUUF8xNTg4X0NMT0NLYCwgYEhBU19JT01FTWAsIGBQQ0lgLCBgSTJDYCwgYE1URGAsIGBTRVJJQUxfODI1MGAsIHRoZSBhYnNlbmNlIG9mIGBTMzkwYCwgYW5kIGBDT01NT05fQ0xLYC4gVGhhdCdzIGEgcmVhc29uYWJsZSBzZXQsIG5vdGhpbmcgcGFydGljdWxhcmx5IHN1cnByaXNpbmcgdGhlcmUuXG5cblRoZSBpbnRlcmVzdGluZyBwYXJ0IGlzIHRoZSBhZGRpdGlvbiBvZiBgcmVxdWVzdF9tb2R1bGUoXCJpMmMtZGV2XCIpO2AuIFRoaXMgbWFrZXMgbWUgaW1tZWRpYXRlbHkgY29uc2lkZXIgdGhlIHBvdGVudGlhbCBuZWVkIGZvciBgSTJDX0NIQVJERVZgIHRvIGJlIGVuYWJsZWQuIEkgbmVlZCB0byBjbGFyaWZ5IHRoYXQuIEFoLCByaWdodC4gYHJlcXVlc3RfbW9kdWxlKFwiaTJjLWRldlwiKWAgbWVhbnMgdGhlIGBpMmMtZGV2YCBtb2R1bGUgd2lsbCBiZSBsb2FkZWQgcmVnYXJkbGVzcy4gSWYgYEkyQ19DSEFSREVWYCAqaXMqIGVuYWJsZWQsIGl0IHdpbGwgbG9hZCB0b28uIE9rYXksIGdvdCBpdC5cblxuTm93LCBsZXQncyB6b29tIGluIG9uIHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkuIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBzeXNmcyBhdHRyaWJ1dGU6IGBpMmNfYnVzX2N0cmxgLiBUaGUgcGF0Y2ggaW1wbGVtZW50cyB0d28gc3lzZnMgZnVuY3Rpb25zOiBgaTJjX2J1c19jdHJsX3Nob3dgIGFuZCBgaTJjX2J1c19jdHJsX3N0b3JlYC4gVGhlIHBhdGNoIGlzIGFsbG93aW5nIHVzZXJzcGFjZSBhY2Nlc3MgdG8gcmVhZCBhbmQgd3JpdGUgdG8gdGhlIGBwcHNfc2VsZWN0LVx1MDAzZV9fcGFkMWAgbWVtb3J5LW1hcHBlZCByZWdpc3RlciB0aHJvdWdoIHRoZSBzeXNmcyBlbnRyeS4gXG5cbkxldCdzIGRvIGEgcXVpY2sgZG91YmxlLWNoZWNrIGZvciBhbnkgb3RoZXIgcmVsYXRlZCBjb25maWd1cmF0aW9ucy4gVGhlIG1haW4gY29uZmlnIHN5bWJvbCBpcyBgUFRQXzE1ODhfQ0xPQ0tfT0NQYCwgYnV0IGVuYWJsaW5nIGBJMkNfQ0hBUkRFVmAgbWlnaHQgYmUgYmVuZWZpY2lhbCBmb3IgdGVzdGluZy5cblxuSSdtIG1ha2luZyBhIG1lbnRhbCBub3RlIG9mIHRob3NlIHR3byBmdW5jdGlvbnM6IGBpMmNfYnVzX2N0cmxfc2hvd2AgYW5kIGBpMmNfYnVzX2N0cmxfc3RvcmVgLCB0byBrZWVwIGluIG1pbmQuXG5cbkJlZm9yZSBJIG1vdmUgb24sIEkgbmVlZCB0byBjb25maXJtIHRoYXQgYGkyY19idXNfY3RybF9zaG93YCBhbmQgYGkyY19idXNfY3RybF9zdG9yZWAgYXJlIHN0YXRpYy4gWWVzLCB0aGV5IGFyZS4gQW5kIHRoZSBpbXBsaWNhdGlvbnMgYXJlLi4ud2FpdCBhIG1pbnV0ZS4uLiBTeXprYWxsZXIgY2FuIGZ1enogc3lzZnMgYXR0cmlidXRlcy4gVGhhdCdzIGEgY3JpdGljYWwgcG9pbnQgdG8gY29uc2lkZXIgZHVyaW5nIHRoZSB0ZXN0aW5nIHBoYXNlIVxuXG5SaWdodCwgdGhhdCdzIGVub3VnaCBmb3Igbm93LiBUaW1lIHRvIGNhbGwgaXQgYSBzZXQtcmVzdWx0cyFcblxuXG4iLCJJbnB1dFRva2VucyI6NDczMSwiT3V0cHV0VG9rZW5zIjoxMzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNjYsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNVQxMzo1NDo1MS43MDExMTg2NDVaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5ODMzODcwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUFRQXzE1ODhfQ0xPQ0tfT0NQXCIsXG4gICAgXCJJMkNfQ0hBUkRFVlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImkyY19idXNfY3RybF9zaG93XCIsXG4gICAgXCJpMmNfYnVzX2N0cmxfc3RvcmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV3IHN5c2ZzIGF0dHJpYnV0ZSBgaTJjX2J1c19jdHJsYCB0byB0aGUgUFRQIE9DUCBkcml2ZXIsIHdoaWNoIGFsbG93cyByZWFkaW5nIGFuZCB3cml0aW5nIHRvIHRoZSBgcHBzX3NlbGVjdC1cXHUwMDNlX19wYWQxYCBtZW1vcnkgbWFwcGVkIHJlZ2lzdGVyLiBUaGlzIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXItc3BhY2UgdmlhIHN5c2ZzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlBUUF8xNTg4X0NMT0NLX09DUFwiLFxuICAgIFwiSTJDX0NIQVJERVZcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpMmNfYnVzX2N0cmxfc2hvd1wiLFxuICAgIFwiaTJjX2J1c19jdHJsX3N0b3JlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIG5ldyBzeXNmcyBhdHRyaWJ1dGUgYGkyY19idXNfY3RybGAgdG8gdGhlIFBUUCBPQ1AgZHJpdmVyLCB3aGljaCBhbGxvd3MgcmVhZGluZyBhbmQgd3JpdGluZyB0byB0aGUgYHBwc19zZWxlY3QtXFx1MDAzZV9fcGFkMWAgbWVtb3J5IG1hcHBlZCByZWdpc3Rlci4gVGhpcyBpcyByZWFjaGFibGUgZnJvbSB1c2VyLXNwYWNlIHZpYSBzeXNmcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowsqxkv[1] Phase: Succeeded StartedAt: 2026-06-25 13:55:03 +0000 UTC FinishedAt: 2026-06-25 13:55:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-25 13:55:03 +0000 UTC FinishedAt: 2026-06-25 13:55:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[2] Phase: Succeeded StartedAt: 2026-06-25 13:55:03 +0000 UTC FinishedAt: 2026-06-25 15:33:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 13:55:03 +0000 UTC FinishedAt: 2026-06-25 15:33:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 13:55:03 +0000 UTC FinishedAt: 2026-06-25 13:55:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 13:55:03 +0000 UTC FinishedAt: 2026-06-25 13:55:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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-workflowsqxkv/series-workflowsqxkv-convert-artifact-1514177712/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 13:55:13 +0000 UTC FinishedAt: 2026-06-25 14:18:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 13:55:13 +0000 UTC FinishedAt: 2026-06-25 14:18:28 +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:*a3e0f706-5b20-42a5-88e1-2cb474604b18,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-workflowsqxkv/series-workflowsqxkv-convert-artifact-1514177712/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": "ecff4d28-2cc5-45c0-9ab7-8bd7e017ab23", "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-workflowsqxkv/series-workflowsqxkv-build-action-3938480566/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 13:55:13 +0000 UTC FinishedAt: 2026-06-25 14:18:18 +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:*a3e0f706-5b20-42a5-88e1-2cb474604b18,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-workflowsqxkv/series-workflowsqxkv-convert-artifact-1514177712/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": "ecff4d28-2cc5-45c0-9ab7-8bd7e017ab23", "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-workflowsqxkv/series-workflowsqxkv-build-action-3938480566/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:18:28 +0000 UTC FinishedAt: 2026-06-25 14:18:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:18:28 +0000 UTC FinishedAt: 2026-06-25 14:18:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:18:28 +0000 UTC FinishedAt: 2026-06-25 14:18:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:18:28 +0000 UTC FinishedAt: 2026-06-25 14:18:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-workflowsqxkv/series-workflowsqxkv-convert-artifact-1497131159/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:18:38 +0000 UTC FinishedAt: 2026-06-25 14:20:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:18:38 +0000 UTC FinishedAt: 2026-06-25 14:20:28 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*ecff4d28-2cc5-45c0-9ab7-8bd7e017ab23,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-workflowsqxkv/series-workflowsqxkv-build-action-3938480566/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-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:20:38 +0000 UTC FinishedAt: 2026-06-25 14:20:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:20:38 +0000 UTC FinishedAt: 2026-06-25 14:20:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:20:38 +0000 UTC FinishedAt: 2026-06-25 14:43:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:20:38 +0000 UTC FinishedAt: 2026-06-25 14:43:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*a3e0f706-5b20-42a5-88e1-2cb474604b18,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-workflowsqxkv/series-workflowsqxkv-convert-artifact-1497131159/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": "b5d097a0-b502-499d-8ce0-33a39fef433a", "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-workflowsqxkv/series-workflowsqxkv-build-action-2837946075/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:20:38 +0000 UTC FinishedAt: 2026-06-25 14:43:35 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*a3e0f706-5b20-42a5-88e1-2cb474604b18,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-workflowsqxkv/series-workflowsqxkv-convert-artifact-1497131159/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": "b5d097a0-b502-499d-8ce0-33a39fef433a", "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-workflowsqxkv/series-workflowsqxkv-build-action-2837946075/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:43:45 +0000 UTC FinishedAt: 2026-06-25 14:43:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:43:45 +0000 UTC FinishedAt: 2026-06-25 14:43:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:43:45 +0000 UTC FinishedAt: 2026-06-25 14:45:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:43:45 +0000 UTC FinishedAt: 2026-06-25 14:45:32 +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:*b5d097a0-b502-499d-8ce0-33a39fef433a,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-workflowsqxkv/series-workflowsqxkv-build-action-2837946075/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-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:45:42 +0000 UTC FinishedAt: 2026-06-25 15:33:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:45:42 +0000 UTC FinishedAt: 2026-06-25 15:33:02 +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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"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:*ecff4d28-2cc5-45c0-9ab7-8bd7e017ab23,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*b5d097a0-b502-499d-8ce0-33a39fef433a,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-workflowsqxkv/series-workflowsqxkv-build-action-3938480566/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-workflowsqxkv/series-workflowsqxkv-build-action-2837946075/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:45:42 +0000 UTC FinishedAt: 2026-06-25 14:47:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:45:42 +0000 UTC FinishedAt: 2026-06-25 14:47:21 +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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"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-workflowsqxkv/series-workflowsqxkv-convert-artifact-1807587408/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:45:42 +0000 UTC FinishedAt: 2026-06-25 14:45:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:45:42 +0000 UTC FinishedAt: 2026-06-25 14:45:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:45:42 +0000 UTC FinishedAt: 2026-06-25 14:45:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:47:28 +0000 UTC FinishedAt: 2026-06-25 15:33:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqxkv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"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":["i2c_bus_ctrl_show","i2c_bus_ctrl_store"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"02f144fbb4c86c360495d33debe307cb46a57f95","config_name":"upstream-apparmor-kasan.config","enable_configs":["PTP_1588_CLOCK_OCP","I2C_CHARDEV"],"series_id":"44bdebf9-f418-46b5-8532-e53f49d066ff","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-06-25 14:47:28 +0000 UTC FinishedAt: 2026-06-25 15:32:52 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*ecff4d28-2cc5-45c0-9ab7-8bd7e017ab23,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*b5d097a0-b502-499d-8ce0-33a39fef433a,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-workflowsqxkv/series-workflowsqxkv-build-action-3938480566/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-workflowsqxkv/series-workflowsqxkv-build-action-2837946075/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-workflowsqxkv/series-workflowsqxkv-convert-artifact-1807587408/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,}