Name: series-workflowcs5kr Phase: Succeeded StartedAt: 2026-07-22 15:54:57 +0000 UTC FinishedAt: 2026-07-22 20:41:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[0] Phase: Succeeded StartedAt: 2026-07-22 15:54:57 +0000 UTC FinishedAt: 2026-07-22 16:17:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[0].run-triage Phase: Succeeded StartedAt: 2026-07-22 15:54:57 +0000 UTC FinishedAt: 2026-07-22 16:17:21 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VXLAN" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VXLAN" ], "series_id": "ffce983e-ca3d-480a-9140-5984aed27c7c" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "rtm_to_nh_config", "nexthop_create", "nh_fill_node" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIyIDE2OjE2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZYTEFOJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnRtX3RvX25oX2NvbmZpZyYjMzQ7LAogICAgJiMzNDtuZXh0aG9wX2NyZWF0ZSYjMzQ7LAogICAgJiMzNDtuaF9maWxsX25vZGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBuZXRsaW5rIGF0dHJpYnV0ZSBOSEFfRkRCX1BPUlQgdG8gc3BlY2lmeSBhIFVEUCBkZXN0aW5hdGlvbiBwb3J0IGZvciBGREIgbmV4dGhvcHMgKGUuZy4sIFZYTEFOKS4gSXQgbW9kaWZpZXMgdGhlIG5leHRob3AgbmV0bGluayBjb250cm9sIHBhdGggYW5kIFZYTEFOIGRhdGFwYXRoLiBUaGUgbmV0bGluayBjb250cm9sIHBhdGggZnVuY3Rpb25zIGFyZSBnb29kIHRhcmdldHMgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTY6MTY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA4NTNjMzI0NjVlOGQ3ZGM2MjYzMTUyYThhZjM0NTBjNThiMmYwMTAyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMjIgMTY6MTY6MzYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbmV4dGhvcC5oIGIvaW5jbHVkZS9uZXQvbmV4dGhvcC5oXG5pbmRleCA1NzJlNjljZGE0NzY2ZC4uMTllODY3MGQ5NjRkOWQgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL25ldC9uZXh0aG9wLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbmV0L25leHRob3AuaFxuQEAgLTI4LDYgJiM0MzsyOCw3IEBAIHN0cnVjdCBuaF9jb25maWcge1xuIFx0dThcdFx0bmhfcHJvdG9jb2w7XG4gXHR1OFx0XHRuaF9ibGFja2hvbGU7XG4gXHR1OFx0XHRuaF9mZGI7XG4mIzQzO1x0X19iZTE2XHRcdG5oX2ZkYl9wb3J0O1xuIFx0dTMyXHRcdG5oX2ZsYWdzO1xuIFxuIFx0aW50XHRcdG5oX2lmaW5kZXg7XG5AQCAtNjMsNiAmIzQzOzY0LDcgQEAgc3RydWN0IG5oX2luZm8ge1xuIFx0dThcdFx0XHRmYW1pbHk7XG4gXHRib29sXHRcdFx0cmVqZWN0X25oO1xuIFx0Ym9vbFx0XHRcdGZkYl9uaDtcbiYjNDM7XHRfX2JlMTZcdFx0XHRmZGJfcG9ydDtcbiBcbiBcdHVuaW9uIHtcbiBcdFx0c3RydWN0IGZpYl9uaF9jb21tb25cdGZpYl9uaGM7XG5AQCAtNTc0LDcgJiM0Mzs1NzYsOCBAQCBzdHJ1Y3QgZmliX25oX2NvbW1vbiAqbmV4dGhvcF9mZGJfbmhjKHN0cnVjdCBuZXh0aG9wICpuaClcbiB9XG4gXG4gc3RhdGljIGlubGluZSBzdHJ1Y3QgZmliX25oX2NvbW1vbiAqbmV4dGhvcF9wYXRoX2ZkYl9yZXN1bHQoc3RydWN0IG5leHRob3AgKm5oLFxuLVx0XHRcdFx0XHRcdFx0ICAgIGludCBoYXNoKVxuJiM0MztcdFx0XHRcdFx0XHRcdCAgICBpbnQgaGFzaCxcbiYjNDM7XHRcdFx0XHRcdFx0XHQgICAgX19iZTE2ICpmZGJfcG9ydClcbiB7XG4gXHRzdHJ1Y3QgbmhfaW5mbyAqbmhpO1xuIFx0c3RydWN0IG5leHRob3AgKm5ocDtcbkBAIC01ODMsNiAmIzQzOzU4Niw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGZpYl9uaF9jb21tb24gKm5leHRob3BfcGF0aF9mZGJfcmVzdWx0KHN0cnVjdCBuZXh0aG9wICpuaCxcbiBcdGlmICh1bmxpa2VseSghbmhwKSlcbiBcdFx0cmV0dXJuIE5VTEw7XG4gXHRuaGkgPSByY3VfZGVyZWZlcmVuY2UobmhwLVx1MDAzZW5oX2luZm8pO1xuJiM0MztcdCpmZGJfcG9ydCA9IG5oaS1cdTAwM2VmZGJfcG9ydDtcbiBcdHJldHVybiBcdTAwMjZuaGktXHUwMDNlZmliX25oYztcbiB9XG4gI2VuZGlmXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdnhsYW4uaCBiL2luY2x1ZGUvbmV0L3Z4bGFuLmhcbmluZGV4IGRmYmE4OTY5NWVmY2ZhLi5kZTQxYjM3NDY4OGYyOSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbmV0L3Z4bGFuLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbmV0L3Z4bGFuLmhcbkBAIC01NjcsOCAmIzQzOzU2Nyw5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB2eGxhbl9mZGJfbmhfcGF0aF9zZWxlY3Qoc3RydWN0IG5leHRob3AgKm5oLFxuIFx0XHRcdFx0XHQgICAgc3RydWN0IHZ4bGFuX3Jkc3QgKnJkc3QpXG4ge1xuIFx0c3RydWN0IGZpYl9uaF9jb21tb24gKm5oYztcbiYjNDM7XHRfX2JlMTYgZmRiX3BvcnQgPSAwO1xuIFxuLVx0bmhjID0gbmV4dGhvcF9wYXRoX2ZkYl9yZXN1bHQobmgsIGhhc2ggXHUwMDNlXHUwMDNlIDEpO1xuJiM0MztcdG5oYyA9IG5leHRob3BfcGF0aF9mZGJfcmVzdWx0KG5oLCBoYXNoIFx1MDAzZVx1MDAzZSAxLCBcdTAwMjZmZGJfcG9ydCk7XG4gXHRpZiAodW5saWtlbHkoIW5oYykpXG4gXHRcdHJldHVybiBmYWxzZTtcbiBcbkBAIC01ODMsNiAmIzQzOzU4NCw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB2eGxhbl9mZGJfbmhfcGF0aF9zZWxlY3Qoc3RydWN0IG5leHRob3AgKm5oLFxuIFx0XHRicmVhaztcbiBcdH1cbiBcbiYjNDM7XHRyZHN0LVx1MDAzZXJlbW90ZV9wb3J0ID0gZmRiX3BvcnQ7XG4mIzQzO1xuIFx0cmV0dXJuIHRydWU7XG4gfVxuIFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXh0aG9wLmggYi9pbmNsdWRlL3VhcGkvbGludXgvbmV4dGhvcC5oXG5pbmRleCBiYzQ5YmFmNGEyNjdmMC4uZTU4N2JiZjNiODkwYTMgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvbmV4dGhvcC5oXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL3VhcGkvbGludXgvbmV4dGhvcC5oXG5AQCAtODMsNiAmIzQzOzgzLDkgQEAgZW51bSB7XG4gXHQvKiB1MzI7IHJlYWQtb25seTsgd2hldGhlciBhbnkgZHJpdmVyIGNvbGxlY3RzIEhXIHN0YXRzICovXG4gXHROSEFfSFdfU1RBVFNfVVNFRCxcbiBcbiYjNDM7XHQvKiBiZTE2OyBVRFAgZGVzdGluYXRpb24gcG9ydCBmb3IgYW4gZmRiIG5leHRob3AgKGUuZy4gVlhMQU4pICovXG4mIzQzO1x0TkhBX0ZEQl9QT1JULFxuJiM0MztcbiBcdF9fTkhBX01BWCxcbiB9O1xuIFxuZGlmZiAtLWdpdCBhL25ldC9pcHY0L25leHRob3AuYyBiL25ldC9pcHY0L25leHRob3AuY1xuaW5kZXggNjIwNWJkNTdhYTg1MjAuLmI4MmRhM2VmZjYzYzkxIDEwMDY0NFxuLS0tIGEvbmV0L2lwdjQvbmV4dGhvcC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvaXB2NC9uZXh0aG9wLmNcbkBAIC0zOSw2ICYjNDM7MzksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgcnRtX25oX3BvbGljeV9uZXdbXSA9IHtcbiBcdFtOSEFfRU5DQVBfVFlQRV1cdD0geyAudHlwZSA9IE5MQV9VMTYgfSxcbiBcdFtOSEFfRU5DQVBdXHRcdD0geyAudHlwZSA9IE5MQV9ORVNURUQgfSxcbiBcdFtOSEFfRkRCXVx0XHQ9IHsgLnR5cGUgPSBOTEFfRkxBRyB9LFxuJiM0MztcdFtOSEFfRkRCX1BPUlRdXHRcdD0gTkxBX1BPTElDWV9NSU4oTkxBX0JFMTYsIDEpLFxuIFx0W05IQV9SRVNfR1JPVVBdXHRcdD0geyAudHlwZSA9IE5MQV9ORVNURUQgfSxcbiBcdFtOSEFfSFdfU1RBVFNfRU5BQkxFXVx0PSBOTEFfUE9MSUNZX01BWChOTEFfVTMyLCB0cnVlKSxcbiB9O1xuQEAgLTk1Niw2ICYjNDM7OTU3LDkgQEAgc3RhdGljIGludCBuaF9maWxsX25vZGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5leHRob3AgKm5oLFxuIFx0fSBlbHNlIGlmIChuaGktXHUwMDNlZmRiX25oKSB7XG4gXHRcdGlmIChubGFfcHV0X2ZsYWcoc2tiLCBOSEFfRkRCKSlcbiBcdFx0XHRnb3RvIG5sYV9wdXRfZmFpbHVyZTtcbiYjNDM7XHRcdGlmIChuaGktXHUwMDNlZmRiX3BvcnQgXHUwMDI2XHUwMDI2XG4mIzQzO1x0XHQgICAgbmxhX3B1dF9iZTE2KHNrYiwgTkhBX0ZEQl9QT1JULCBuaGktXHUwMDNlZmRiX3BvcnQpKVxuJiM0MztcdFx0XHRnb3RvIG5sYV9wdXRfZmFpbHVyZTtcbiBcdH0gZWxzZSB7XG4gXHRcdGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXY7XG4gXG5AQCAtMTA1NSw2ICYjNDM7MTA1OSw5IEBAIHN0YXRpYyBzaXplX3Qgbmhfbmxtc2dfc2l6ZV9zaW5nbGUoc3RydWN0IG5leHRob3AgKm5oKVxuIFx0XHRicmVhaztcbiBcdH1cbiBcbiYjNDM7XHRpZiAobmhpLVx1MDAzZWZkYl9wb3J0KVxuJiM0MztcdFx0c3ogJiM0Mzs9IG5sYV90b3RhbF9zaXplKDIpO1x0LyogTkhBX0ZEQl9QT1JUICovXG4mIzQzO1xuIFx0aWYgKG5oaS1cdTAwM2VmaWJfbmhjLm5oY19sd3RzdGF0ZSkge1xuIFx0XHRzeiAmIzQzOz0gbHd0dW5uZWxfZ2V0X2VuY2FwX3NpemUobmhpLVx1MDAzZWZpYl9uaGMubmhjX2x3dHN0YXRlKTtcbiBcdFx0c3ogJiM0Mzs9IG5sYV90b3RhbF9zaXplKDIpOyAgLyogTkhBX0VOQ0FQX1RZUEUgKi9cbkBAIC0yOTU2LDggJiM0MzsyOTYzLDEwIEBAIHN0YXRpYyBzdHJ1Y3QgbmV4dGhvcCAqbmV4dGhvcF9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmhfY29uZmlnICpjZmcsXG4gXHRuaGktXHUwMDNlZmFtaWx5ID0gY2ZnLVx1MDAzZW5oX2ZhbWlseTtcbiBcdG5oaS1cdTAwM2VmaWJfbmhjLm5oY19zY29wZSA9IFJUX1NDT1BFX0xJTks7XG4gXG4tXHRpZiAoY2ZnLVx1MDAzZW5oX2ZkYilcbiYjNDM7XHRpZiAoY2ZnLVx1MDAzZW5oX2ZkYikge1xuIFx0XHRuaGktXHUwMDNlZmRiX25oID0gMTtcbiYjNDM7XHRcdG5oaS1cdTAwM2VmZGJfcG9ydCA9IGNmZy1cdTAwM2VuaF9mZGJfcG9ydDtcbiYjNDM7XHR9XG4gXG4gXHRpZiAoY2ZnLVx1MDAzZW5oX2JsYWNraG9sZSkge1xuIFx0XHRuaGktXHUwMDNlcmVqZWN0X25oID0gMTtcbkBAIC0zMTQ3LDYgJiM0MzszMTU2LDE1IEBAIHN0YXRpYyBpbnQgcnRtX3RvX25oX2NvbmZpZyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsXG4gXHRcdGNmZy1cdTAwM2VuaF9mZGIgPSBubGFfZ2V0X2ZsYWcodGJbTkhBX0ZEQl0pO1xuIFx0fVxuIFxuJiM0MztcdGlmICh0YltOSEFfRkRCX1BPUlRdKSB7XG4mIzQzO1x0XHRpZiAoIXRiW05IQV9GREJdIHx8ICF0YltOSEFfR0FURVdBWV0pIHtcbiYjNDM7XHRcdFx0TkxfU0VUX0VSUl9NU0coZXh0YWNrLFxuJiM0MztcdFx0XHRcdCAgICAgICBcJiMzNDtGREIgcG9ydCBjYW4gb25seSBiZSBzZXQgb24gZmRiIG5leHRob3BzIHRoYXQgaGF2ZSBhIGdhdGV3YXlcJiMzNDspO1xuJiM0MztcdFx0XHRnb3RvIG91dDtcbiYjNDM7XHRcdH1cbiYjNDM7XHRcdGNmZy1cdTAwM2VuaF9mZGJfcG9ydCA9IG5sYV9nZXRfYmUxNih0YltOSEFfRkRCX1BPUlRdKTtcbiYjNDM7XHR9XG4mIzQzO1xuIFx0aWYgKHRiW05IQV9HUk9VUF0pIHtcbiBcdFx0aWYgKG5obS1cdTAwM2VuaF9mYW1pbHkgIT0gQUZfVU5TUEVDKSB7XG4gXHRcdFx0TkxfU0VUX0VSUl9NU0coZXh0YWNrLCBcJiMzNDtJbnZhbGlkIGZhbWlseSBmb3IgZ3JvdXBcJiMzNDspO1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9maWJfbmV4dGhvcHMuc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvZmliX25leHRob3BzLnNoXG5pbmRleCBhYzg2OGE3MzE2OTQ2YS4uMWNlNGY0NWZhNjUxNWYgMTAwNzU1XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvZmliX25leHRob3BzLnNoXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvZmliX25leHRob3BzLnNoXG5AQCAtNDMyLDYgJiM0Mzs0MzIsMTUgQEAgY2hlY2tfbmV4dGhvcF9mZGJfc3VwcG9ydCgpXG4gXHRmaVxuIH1cbiBcbiYjNDM7Y2hlY2tfbmV4dGhvcF9mZGJfcG9ydF9zdXBwb3J0KClcbiYjNDM7e1xuJiM0MztcdCRJUCBuZXh0aG9wIGhlbHAgMlx1MDAzZVx1MDAyNjEgfCBncmVwIC1xIFwmIzM0O2ZkYiBcXFsgcG9ydFwmIzM0O1xuJiM0MztcdGlmIFsgJD8gLW5lIDAgXTsgdGhlblxuJiM0MztcdFx0ZWNobyBcJiMzNDtTS0lQOiBpcHJvdXRlMiB0b28gb2xkLCBtaXNzaW5nIGZkYiBuZXh0aG9wIHBvcnQgc3VwcG9ydFwmIzM0O1xuJiM0MztcdFx0cmV0dXJuICRrc2Z0X3NraXBcbiYjNDM7XHRmaVxuJiM0Mzt9XG4mIzQzO1xuIGNoZWNrX25leHRob3BfcmVzX3N1cHBvcnQoKVxuIHtcbiBcdCRJUCBuZXh0aG9wIGhlbHAgMlx1MDAzZVx1MDAyNjEgfCBncmVwIC1xIHJlc2lsaWVudFxuQEAgLTUxNCw2ICYjNDM7NTIzLDMxIEBAIGlwdjZfZmRiX2dycF9mY25hbCgpXG4gXHRydW5fY21kIFwmIzM0OyRJUCBuZXh0aG9wIHJlcGxhY2UgaWQgNzIgdmlhIDIwMDE6ZGI4OjkxOjoyIGZkYlwmIzM0O1xuIFx0bG9nX3Rlc3QgJD8gMiBcJiMzNDtSZXBsYWNlIG5vbi1GREIgbmV4dGhvcCB0byBGREIgbmV4dGhvcCB3aGlsZSBpbiBhIGdyb3VwXCYjMzQ7XG4gXG4mIzQzO1x0IyBOSEFfRkRCX1BPUlQ6IG9wdGlvbmFsIHBlci1uZXh0aG9wIFZYTEFOIGRlc3RpbmF0aW9uIFVEUCBwb3J0LFxuJiM0MztcdCMgbGV0dGluZyBhbiBmZGIgbmV4dGhvcCBncm91cCBiYWxhbmNlIGEgZmxvdyBhY3Jvc3MgbGVncyB0aGF0IHNoYXJlXG4mIzQzO1x0IyBhbiB1bmRlcmxheSBJUCBidXQgbGlzdGVuIG9uIGRpZmZlcmVudCBVRFAgcG9ydHMuXG4mIzQzO1x0aWYgY2hlY2tfbmV4dGhvcF9mZGJfcG9ydF9zdXBwb3J0OyB0aGVuXG4mIzQzO1x0XHRydW5fY21kIFwmIzM0OyRJUCBuZXh0aG9wIGFkZCBpZCA4MCB2aWEgMjAwMTpkYjg6OTE6OjIgZmRiIHBvcnQgNDc5MFwmIzM0O1xuJiM0MztcdFx0Y2hlY2tfbmV4dGhvcCBcJiMzNDtpZCA4MFwmIzM0OyBcJiMzNDtpZCA4MCB2aWEgMjAwMTpkYjg6OTE6OjIgc2NvcGUgbGluayBmZGIgcG9ydCA0NzkwXCYjMzQ7XG4mIzQzO1x0XHRsb2dfdGVzdCAkPyAwIFwmIzM0O0ZkYiBuZXh0aG9wIHdpdGggcG9ydFwmIzM0O1xuJiM0MztcbiYjNDM7XHRcdHJ1bl9jbWQgXCYjMzQ7JElQIG5leHRob3AgYWRkIGlkIDgxIGZkYiBwb3J0IDQ3OTBcJiMzNDtcbiYjNDM7XHRcdGxvZ190ZXN0ICQ/IDIgXCYjMzQ7RmRiIG5leHRob3Agd2l0aCBwb3J0IGJ1dCBubyBnYXRld2F5XCYjMzQ7XG4mIzQzO1xuJiM0MztcdFx0cnVuX2NtZCBcJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgODEgdmlhIDIwMDE6ZGI4OjkxOjoyIGZkYiBwb3J0IDBcJiMzNDtcbiYjNDM7XHRcdGxvZ190ZXN0ICQ/IDIgXCYjMzQ7RmRiIG5leHRob3Agd2l0aCBwb3J0IDBcJiMzNDtcbiYjNDM7XG4mIzQzO1x0XHRydW5fY21kIFwmIzM0OyRJUCBuZXh0aG9wIGFkZCBpZCA4MiB2aWEgMjAwMTpkYjg6OTE6OjIgZmRiIHBvcnQgNDc4OVwmIzM0O1xuJiM0MztcdFx0cnVuX2NtZCBcJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgODMgdmlhIDIwMDE6ZGI4OjkxOjozIGZkYiBwb3J0IDU3ODlcJiMzNDtcbiYjNDM7XHRcdHJ1bl9jbWQgXCYjMzQ7JElQIG5leHRob3AgYWRkIGlkIDEwNiBncm91cCA4Mi84MyBmZGJcJiMzNDtcbiYjNDM7XHRcdGNoZWNrX25leHRob3AgXCYjMzQ7aWQgMTA2XCYjMzQ7IFwmIzM0O2lkIDEwNiBncm91cCA4Mi84MyBmZGJcJiMzNDtcbiYjNDM7XHRcdGxvZ190ZXN0ICQ/IDAgXCYjMzQ7RmRiIG5leHRob3AgZ3JvdXAgd2l0aCBsZWdzIGRpZmZlcmluZyBpbiBwb3J0XCYjMzQ7XG4mIzQzO1xuJiM0MztcdFx0cnVuX2NtZCBcJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgODQgdmlhIDIwMDE6ZGI4OjkxOjoyIGZkYlwmIzM0O1xuJiM0MztcdFx0Y2hlY2tfbmV4dGhvcCBcJiMzNDtpZCA4NFwmIzM0OyBcJiMzNDtpZCA4NCB2aWEgMjAwMTpkYjg6OTE6OjIgc2NvcGUgbGluayBmZGJcJiMzNDtcbiYjNDM7XHRcdGxvZ190ZXN0ICQ/IDAgXCYjMzQ7RmRiIG5leHRob3Agd2l0aG91dCBwb3J0IG9taXRzIHBvcnRcJiMzNDtcbiYjNDM7XHRmaVxuJiM0MztcbiBcdHJ1bl9jbWQgXCYjMzQ7JElQIGxpbmsgYWRkIG5hbWUgdngxMCB0eXBlIHZ4bGFuIGlkIDEwMTAgbG9jYWwgMjAwMTpkYjg6OTE6OjkgcmVtb3RlIDIwMDE6ZGI4OjkxOjoxMCBkc3Rwb3J0IDQ3ODkgbm9sZWFybmluZyBub3VkcGNzdW0gdG9zIGluaGVyaXQgdHRsIDEwMFwmIzM0O1xuIFx0cnVuX2NtZCBcJiMzNDskQlJJREdFIGZkYiBhZGQgMDI6MDI6MDA6MDA6MDA6MTMgZGV2IHZ4MTAgbmhpZCAxMDIgc2VsZlwmIzM0O1xuIFx0bG9nX3Rlc3QgJD8gMCBcJiMzNDtGZGIgbWFjIGFkZCB3aXRoIG5leHRob3AgZ3JvdXBcJiMzNDtcbkBAIC02MTQsNiAmIzQzOzY0OCwzMSBAQCBpcHY0X2ZkYl9ncnBfZmNuYWwoKVxuIFx0cnVuX2NtZCBcJiMzNDskSVAgbmV4dGhvcCByZXBsYWNlIGlkIDIwIHZpYSAxNzIuMTYuMS4yIGZkYlwmIzM0O1xuIFx0bG9nX3Rlc3QgJD8gMiBcJiMzNDtSZXBsYWNlIG5vbi1GREIgbmV4dGhvcCB0byBGREIgbmV4dGhvcCB3aGlsZSBpbiBhIGdyb3VwXCYjMzQ7XG4gXG4mIzQzO1x0IyBOSEFfRkRCX1BPUlQ6IG9wdGlvbmFsIHBlci1uZXh0aG9wIFZYTEFOIGRlc3RpbmF0aW9uIFVEUCBwb3J0LFxuJiM0MztcdCMgbGV0dGluZyBhbiBmZGIgbmV4dGhvcCBncm91cCBiYWxhbmNlIGEgZmxvdyBhY3Jvc3MgbGVncyB0aGF0IHNoYXJlXG4mIzQzO1x0IyBhbiB1bmRlcmxheSBJUCBidXQgbGlzdGVuIG9uIGRpZmZlcmVudCBVRFAgcG9ydHMuXG4mIzQzO1x0aWYgY2hlY2tfbmV4dGhvcF9mZGJfcG9ydF9zdXBwb3J0OyB0aGVuXG4mIzQzO1x0XHRydW5fY21kIFwmIzM0OyRJUCBuZXh0aG9wIGFkZCBpZCAzMCB2aWEgMTcyLjE2LjEuMiBmZGIgcG9ydCA0NzkwXCYjMzQ7XG4mIzQzO1x0XHRjaGVja19uZXh0aG9wIFwmIzM0O2lkIDMwXCYjMzQ7IFwmIzM0O2lkIDMwIHZpYSAxNzIuMTYuMS4yIHNjb3BlIGxpbmsgZmRiIHBvcnQgNDc5MFwmIzM0O1xuJiM0MztcdFx0bG9nX3Rlc3QgJD8gMCBcJiMzNDtGZGIgbmV4dGhvcCB3aXRoIHBvcnRcJiMzNDtcbiYjNDM7XG4mIzQzO1x0XHRydW5fY21kIFwmIzM0OyRJUCBuZXh0aG9wIGFkZCBpZCAzMSBmZGIgcG9ydCA0NzkwXCYjMzQ7XG4mIzQzO1x0XHRsb2dfdGVzdCAkPyAyIFwmIzM0O0ZkYiBuZXh0aG9wIHdpdGggcG9ydCBidXQgbm8gZ2F0ZXdheVwmIzM0O1xuJiM0MztcbiYjNDM7XHRcdHJ1bl9jbWQgXCYjMzQ7JElQIG5leHRob3AgYWRkIGlkIDMxIHZpYSAxNzIuMTYuMS4yIGZkYiBwb3J0IDBcJiMzNDtcbiYjNDM7XHRcdGxvZ190ZXN0ICQ/IDIgXCYjMzQ7RmRiIG5leHRob3Agd2l0aCBwb3J0IDBcJiMzNDtcbiYjNDM7XG4mIzQzO1x0XHRydW5fY21kIFwmIzM0OyRJUCBuZXh0aG9wIGFkZCBpZCAzMiB2aWEgMTcyLjE2LjEuMiBmZGIgcG9ydCA0Nzg5XCYjMzQ7XG4mIzQzO1x0XHRydW5fY21kIFwmIzM0OyRJUCBuZXh0aG9wIGFkZCBpZCAzMyB2aWEgMTcyLjE2LjEuMyBmZGIgcG9ydCA1Nzg5XCYjMzQ7XG4mIzQzO1x0XHRydW5fY21kIFwmIzM0OyRJUCBuZXh0aG9wIGFkZCBpZCAxMDUgZ3JvdXAgMzIvMzMgZmRiXCYjMzQ7XG4mIzQzO1x0XHRjaGVja19uZXh0aG9wIFwmIzM0O2lkIDEwNVwmIzM0OyBcJiMzNDtpZCAxMDUgZ3JvdXAgMzIvMzMgZmRiXCYjMzQ7XG4mIzQzO1x0XHRsb2dfdGVzdCAkPyAwIFwmIzM0O0ZkYiBuZXh0aG9wIGdyb3VwIHdpdGggbGVncyBkaWZmZXJpbmcgaW4gcG9ydFwmIzM0O1xuJiM0MztcbiYjNDM7XHRcdHJ1bl9jbWQgXCYjMzQ7JElQIG5leHRob3AgYWRkIGlkIDM0IHZpYSAxNzIuMTYuMS4yIGZkYlwmIzM0O1xuJiM0MztcdFx0Y2hlY2tfbmV4dGhvcCBcJiMzNDtpZCAzNFwmIzM0OyBcJiMzNDtpZCAzNCB2aWEgMTcyLjE2LjEuMiBzY29wZSBsaW5rIGZkYlwmIzM0O1xuJiM0MztcdFx0bG9nX3Rlc3QgJD8gMCBcJiMzNDtGZGIgbmV4dGhvcCB3aXRob3V0IHBvcnQgb21pdHMgcG9ydFwmIzM0O1xuJiM0MztcdGZpXG4mIzQzO1xuIFx0cnVuX2NtZCBcJiMzNDskSVAgbGluayBhZGQgbmFtZSB2eDEwIHR5cGUgdnhsYW4gaWQgMTAxMCBsb2NhbCAxMC4wLjAuMSByZW1vdGUgMTAuMC4wLjIgZHN0cG9ydCA0Nzg5IG5vbGVhcm5pbmcgbm91ZHBjc3VtIHRvcyBpbmhlcml0IHR0bCAxMDBcJiMzNDtcbiBcdHJ1bl9jbWQgXCYjMzQ7JEJSSURHRSBmZGIgYWRkIDAyOjAyOjAwOjAwOjAwOjEzIGRldiB2eDEwIG5oaWQgMTAyIHNlbGZcJiMzNDtcbiBcdGxvZ190ZXN0ICQ/IDAgXCYjMzQ7RmRiIG1hYyBhZGQgd2l0aCBuZXh0aG9wIGdyb3VwXCYjMzQ7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rlc3RfdnhsYW5fbmguc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGVzdF92eGxhbl9uaC5zaFxuaW5kZXggMjBmMzM2OWY3NzZiMTUuLjM0YTI0YTRmOTViZjdiIDEwMDc1NVxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rlc3RfdnhsYW5fbmguc2hcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90ZXN0X3Z4bGFuX25oLnNoXG5AQCAtNTYsNiAmIzQzOzU2LDE2IEBAIHRjX3N0YXRzX2dldCgpXG4gXHR0Y19ydWxlX2hhbmRsZV9zdGF0c19nZXQgXCYjMzQ7ZGV2IGR1bW15MSBlZ3Jlc3NcJiMzNDsgMTAxIFwmIzM0Oy5wYWNrZXRzXCYjMzQ7IFwmIzM0Oy1uICRuczFcJiMzNDtcbiB9XG4gXG4mIzQzO25oX3N0YXRzX2dldF9wb3J0KClcbiYjNDM7e1xuJiM0MztcdGlwIC1uIFwmIzM0OyRuczFcJiMzNDsgLXMgLWogbmV4dGhvcCBzaG93IGlkIDIwIHwganEgXCYjMzQ7LltdW1xcXCYjMzQ7Z3JvdXBfc3RhdHNcXFwmIzM0O11bXVtcXFwmIzM0O3BhY2tldHNcXFwmIzM0O11cJiMzNDtcbiYjNDM7fVxuJiM0MztcbiYjNDM7dGNfc3RhdHNfZ2V0X3BvcnQoKVxuJiM0Mzt7XG4mIzQzO1x0dGNfcnVsZV9oYW5kbGVfc3RhdHNfZ2V0IFwmIzM0O2RldiBkdW1teTEgZWdyZXNzXCYjMzQ7IDEwMiBcJiMzNDsucGFja2V0c1wmIzM0OyBcJiMzNDstbiAkbnMxXCYjMzQ7XG4mIzQzO31cbiYjNDM7XG4gYmFzaWNfdHhfY29tbW9uKClcbiB7XG4gXHRsb2NhbCBhZl9zdHI9JDE7IHNoaWZ0XG5AQCAtOTAsNiAmIzQzOzEwMCwyNyBAQCBiYXNpY190eF9jb21tb24oKVxuIFx0YnVzeXdhaXQgXCYjMzQ7JEJVU1lXQUlUX1RJTUVPVVRcJiMzNDsgdW50aWxfY291bnRlcl9pcyBcJiMzNDs9PSAxXCYjMzQ7IHRjX3N0YXRzX2dldCBcdTAwM2UgL2Rldi9udWxsXG4gXHRjaGVja19lcnIgJD8gXCYjMzQ7dGMgZmlsdGVyIHN0YXRzIGRpZCBub3QgaW5jcmVhc2VcJiMzNDtcbiBcbiYjNDM7XHQjIEFkZCBhIHNlY29uZCBGREIgbmV4dGhvcCBncm91cCB3aG9zZSBuZXh0aG9wIGNhcnJpZXMgYSBwZXItbmV4dGhvcFxuJiM0MztcdCMgZGVzdGluYXRpb24gcG9ydCAoTkhBX0ZEQl9QT1JUKSB0aGF0IGRpZmZlcnMgZnJvbSB0aGUgVlhMQU4gZGV2aWNlXG4mIzQzO1x0IyBkZWZhdWx0LiBNYXRjaGluZyBvdXRlciB0cmFmZmljIG11c3QgZWdyZXNzIHdpdGggdGhhdCBwb3J0LCBzbyBhXG4mIzQzO1x0IyBzZXBhcmF0ZSBmbG93ZXIgZmlsdGVyIGtleWVkIG9uIHRoZSBuZXcgcG9ydCBjYXRjaGVzIGl0LlxuJiM0MztcdGlmIGlwIG5leHRob3AgaGVscCAyXHUwMDNlXHUwMDI2MSB8IGdyZXAgLXEgXCYjMzQ7ZmRiIFxcWyBwb3J0XCYjMzQ7OyB0aGVuXG4mIzQzO1x0XHRydW5fY21kIFwmIzM0O3RjIC1uICRuczEgZmlsdGVyIGFkZCBkZXYgZHVtbXkxIGVncmVzcyBwcm90byAkcHJvdG8gcHJlZiAxIGhhbmRsZSAxMDIgZmxvd2VyIGlwX3Byb3RvIHVkcCBkc3RfaXAgJHJlbW90ZV9hZGRyIGRzdF9wb3J0IDQ3OTAgYWN0aW9uIHBhc3NcJiMzNDtcbiYjNDM7XG4mIzQzO1x0XHRydW5fY21kIFwmIzM0O2lwIC1uICRuczEgbmV4dGhvcCBhZGQgaWQgMiB2aWEgJHJlbW90ZV9hZGRyIGZkYiBwb3J0IDQ3OTBcJiMzNDtcbiYjNDM7XHRcdHJ1bl9jbWQgXCYjMzQ7aXAgLW4gJG5zMSBuZXh0aG9wIGFkZCBpZCAyMCBncm91cCAyIGZkYlwmIzM0O1xuJiM0MztcbiYjNDM7XHRcdHJ1bl9jbWQgXCYjMzQ7YnJpZGdlIC1uICRuczEgZmRiIGFkZCAwMDoxMToyMjozMzo0NDo2NiBkZXYgdngwIHNlbGYgc3RhdGljIG5oaWQgMjBcJiMzNDtcbiYjNDM7XG4mIzQzO1x0XHRydW5fY21kIFwmIzM0O2lwIG5ldG5zIGV4ZWMgJG5zMSBtYXVzZXphaG4gdngwIC1hIG93biAtYiAwMDoxMToyMjozMzo0NDo2NiAtYyAxIC1xXCYjMzQ7XG4mIzQzO1xuJiM0MztcdFx0YnVzeXdhaXQgXCYjMzQ7JEJVU1lXQUlUX1RJTUVPVVRcJiMzNDsgdW50aWxfY291bnRlcl9pcyBcJiMzNDs9PSAxXCYjMzQ7IG5oX3N0YXRzX2dldF9wb3J0IFx1MDAzZSAvZGV2L251bGxcbiYjNDM7XHRcdGNoZWNrX2VyciAkPyBcJiMzNDtGREIgbmV4dGhvcCBncm91cCBzdGF0cyBkaWQgbm90IGluY3JlYXNlICh3aXRoIHBvcnQpXCYjMzQ7XG4mIzQzO1xuJiM0MztcdFx0YnVzeXdhaXQgXCYjMzQ7JEJVU1lXQUlUX1RJTUVPVVRcJiMzNDsgdW50aWxfY291bnRlcl9pcyBcJiMzNDs9PSAxXCYjMzQ7IHRjX3N0YXRzX2dldF9wb3J0IFx1MDAzZSAvZGV2L251bGxcbiYjNDM7XHRcdGNoZWNrX2VyciAkPyBcJiMzNDt0YyBmaWx0ZXIgc3RhdHMgZGlkIG5vdCBpbmNyZWFzZSAod2l0aCBwb3J0KVwmIzM0O1xuJiM0MztcdGZpXG4mIzQzO1xuIFx0bG9nX3Rlc3QgXCYjMzQ7VlhMQU4gRkRCIG5leHRob3A6ICRhZl9zdHIgYmFzaWMgVHhcJiMzNDtcbiB9XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTY6MTY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZYTEFOJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnRtX3RvX25oX2NvbmZpZyYjMzQ7LAogICAgJiMzNDtuZXh0aG9wX2NyZWF0ZSYjMzQ7LAogICAgJiMzNDtuaF9maWxsX25vZGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBuZXRsaW5rIGF0dHJpYnV0ZSBOSEFfRkRCX1BPUlQgdG8gc3BlY2lmeSBhIFVEUCBkZXN0aW5hdGlvbiBwb3J0IGZvciBGREIgbmV4dGhvcHMgKGUuZy4sIFZYTEFOKS4gSXQgbW9kaWZpZXMgdGhlIG5leHRob3AgbmV0bGluayBjb250cm9sIHBhdGggYW5kIFZYTEFOIGRhdGFwYXRoLiBUaGUgbmV0bGluayBjb250cm9sIHBhdGggZnVuY3Rpb25zIGFyZSBnb29kIHRhcmdldHMgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDg1M2MzMjQ2NWU4ZDdkYzYyNjMxNTJhOGFmMzQ1MGM1OGIyZjAxMDIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEp1bCAyMiAxNjoxNjozNiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L25leHRob3AuaCBiL2luY2x1ZGUvbmV0L25leHRob3AuaAppbmRleCA1NzJlNjljZGE0NzY2ZC4uMTllODY3MGQ5NjRkOWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L25leHRob3AuaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL25ldC9uZXh0aG9wLmgKQEAgLTI4LDYgJiM0MzsyOCw3IEBAIHN0cnVjdCBuaF9jb25maWcgewogCXU4CQluaF9wcm90b2NvbDsKIAl1OAkJbmhfYmxhY2tob2xlOwogCXU4CQluaF9mZGI7CiYjNDM7CV9fYmUxNgkJbmhfZmRiX3BvcnQ7CiAJdTMyCQluaF9mbGFnczsKIAogCWludAkJbmhfaWZpbmRleDsKQEAgLTYzLDYgJiM0Mzs2NCw3IEBAIHN0cnVjdCBuaF9pbmZvIHsKIAl1OAkJCWZhbWlseTsKIAlib29sCQkJcmVqZWN0X25oOwogCWJvb2wJCQlmZGJfbmg7CiYjNDM7CV9fYmUxNgkJCWZkYl9wb3J0OwogCiAJdW5pb24gewogCQlzdHJ1Y3QgZmliX25oX2NvbW1vbglmaWJfbmhjOwpAQCAtNTc0LDcgJiM0Mzs1NzYsOCBAQCBzdHJ1Y3QgZmliX25oX2NvbW1vbiAqbmV4dGhvcF9mZGJfbmhjKHN0cnVjdCBuZXh0aG9wICpuaCkKIH0KIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgZmliX25oX2NvbW1vbiAqbmV4dGhvcF9wYXRoX2ZkYl9yZXN1bHQoc3RydWN0IG5leHRob3AgKm5oLAotCQkJCQkJCSAgICBpbnQgaGFzaCkKJiM0MzsJCQkJCQkJICAgIGludCBoYXNoLAomIzQzOwkJCQkJCQkgICAgX19iZTE2ICpmZGJfcG9ydCkKIHsKIAlzdHJ1Y3QgbmhfaW5mbyAqbmhpOwogCXN0cnVjdCBuZXh0aG9wICpuaHA7CkBAIC01ODMsNiAmIzQzOzU4Niw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGZpYl9uaF9jb21tb24gKm5leHRob3BfcGF0aF9mZGJfcmVzdWx0KHN0cnVjdCBuZXh0aG9wICpuaCwKIAlpZiAodW5saWtlbHkoIW5ocCkpCiAJCXJldHVybiBOVUxMOwogCW5oaSA9IHJjdV9kZXJlZmVyZW5jZShuaHAtJmd0O25oX2luZm8pOwomIzQzOwkqZmRiX3BvcnQgPSBuaGktJmd0O2ZkYl9wb3J0OwogCXJldHVybiAmYW1wO25oaS0mZ3Q7ZmliX25oYzsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdnhsYW4uaCBiL2luY2x1ZGUvbmV0L3Z4bGFuLmgKaW5kZXggZGZiYTg5Njk1ZWZjZmEuLmRlNDFiMzc0Njg4ZjI5IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC92eGxhbi5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbmV0L3Z4bGFuLmgKQEAgLTU2Nyw4ICYjNDM7NTY3LDkgQEAgc3RhdGljIGlubGluZSBib29sIHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdChzdHJ1Y3QgbmV4dGhvcCAqbmgsCiAJCQkJCSAgICBzdHJ1Y3QgdnhsYW5fcmRzdCAqcmRzdCkKIHsKIAlzdHJ1Y3QgZmliX25oX2NvbW1vbiAqbmhjOwomIzQzOwlfX2JlMTYgZmRiX3BvcnQgPSAwOwogCi0JbmhjID0gbmV4dGhvcF9wYXRoX2ZkYl9yZXN1bHQobmgsIGhhc2ggJmd0OyZndDsgMSk7CiYjNDM7CW5oYyA9IG5leHRob3BfcGF0aF9mZGJfcmVzdWx0KG5oLCBoYXNoICZndDsmZ3Q7IDEsICZhbXA7ZmRiX3BvcnQpOwogCWlmICh1bmxpa2VseSghbmhjKSkKIAkJcmV0dXJuIGZhbHNlOwogCkBAIC01ODMsNiAmIzQzOzU4NCw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB2eGxhbl9mZGJfbmhfcGF0aF9zZWxlY3Qoc3RydWN0IG5leHRob3AgKm5oLAogCQlicmVhazsKIAl9CiAKJiM0MzsJcmRzdC0mZ3Q7cmVtb3RlX3BvcnQgPSBmZGJfcG9ydDsKJiM0MzsKIAlyZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L25leHRob3AuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9uZXh0aG9wLmgKaW5kZXggYmM0OWJhZjRhMjY3ZjAuLmU1ODdiYmYzYjg5MGEzIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvbmV4dGhvcC5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvdWFwaS9saW51eC9uZXh0aG9wLmgKQEAgLTgzLDYgJiM0Mzs4Myw5IEBAIGVudW0gewogCS8qIHUzMjsgcmVhZC1vbmx5OyB3aGV0aGVyIGFueSBkcml2ZXIgY29sbGVjdHMgSFcgc3RhdHMgKi8KIAlOSEFfSFdfU1RBVFNfVVNFRCwKIAomIzQzOwkvKiBiZTE2OyBVRFAgZGVzdGluYXRpb24gcG9ydCBmb3IgYW4gZmRiIG5leHRob3AgKGUuZy4gVlhMQU4pICovCiYjNDM7CU5IQV9GREJfUE9SVCwKJiM0MzsKIAlfX05IQV9NQVgsCiB9OwogCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9uZXh0aG9wLmMgYi9uZXQvaXB2NC9uZXh0aG9wLmMKaW5kZXggNjIwNWJkNTdhYTg1MjAuLmI4MmRhM2VmZjYzYzkxIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9uZXh0aG9wLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L2lwdjQvbmV4dGhvcC5jCkBAIC0zOSw2ICYjNDM7MzksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgcnRtX25oX3BvbGljeV9uZXdbXSA9IHsKIAlbTkhBX0VOQ0FQX1RZUEVdCT0geyAudHlwZSA9IE5MQV9VMTYgfSwKIAlbTkhBX0VOQ0FQXQkJPSB7IC50eXBlID0gTkxBX05FU1RFRCB9LAogCVtOSEFfRkRCXQkJPSB7IC50eXBlID0gTkxBX0ZMQUcgfSwKJiM0MzsJW05IQV9GREJfUE9SVF0JCT0gTkxBX1BPTElDWV9NSU4oTkxBX0JFMTYsIDEpLAogCVtOSEFfUkVTX0dST1VQXQkJPSB7IC50eXBlID0gTkxBX05FU1RFRCB9LAogCVtOSEFfSFdfU1RBVFNfRU5BQkxFXQk9IE5MQV9QT0xJQ1lfTUFYKE5MQV9VMzIsIHRydWUpLAogfTsKQEAgLTk1Niw2ICYjNDM7OTU3LDkgQEAgc3RhdGljIGludCBuaF9maWxsX25vZGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5leHRob3AgKm5oLAogCX0gZWxzZSBpZiAobmhpLSZndDtmZGJfbmgpIHsKIAkJaWYgKG5sYV9wdXRfZmxhZyhza2IsIE5IQV9GREIpKQogCQkJZ290byBubGFfcHV0X2ZhaWx1cmU7CiYjNDM7CQlpZiAobmhpLSZndDtmZGJfcG9ydCAmYW1wOyZhbXA7CiYjNDM7CQkgICAgbmxhX3B1dF9iZTE2KHNrYiwgTkhBX0ZEQl9QT1JULCBuaGktJmd0O2ZkYl9wb3J0KSkKJiM0MzsJCQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsKIAl9IGVsc2UgewogCQljb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2OwogCkBAIC0xMDU1LDYgJiM0MzsxMDU5LDkgQEAgc3RhdGljIHNpemVfdCBuaF9ubG1zZ19zaXplX3NpbmdsZShzdHJ1Y3QgbmV4dGhvcCAqbmgpCiAJCWJyZWFrOwogCX0KIAomIzQzOwlpZiAobmhpLSZndDtmZGJfcG9ydCkKJiM0MzsJCXN6ICYjNDM7PSBubGFfdG90YWxfc2l6ZSgyKTsJLyogTkhBX0ZEQl9QT1JUICovCiYjNDM7CiAJaWYgKG5oaS0mZ3Q7ZmliX25oYy5uaGNfbHd0c3RhdGUpIHsKIAkJc3ogJiM0Mzs9IGx3dHVubmVsX2dldF9lbmNhcF9zaXplKG5oaS0mZ3Q7ZmliX25oYy5uaGNfbHd0c3RhdGUpOwogCQlzeiAmIzQzOz0gbmxhX3RvdGFsX3NpemUoMik7ICAvKiBOSEFfRU5DQVBfVFlQRSAqLwpAQCAtMjk1Niw4ICYjNDM7Mjk2MywxMCBAQCBzdGF0aWMgc3RydWN0IG5leHRob3AgKm5leHRob3BfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5oX2NvbmZpZyAqY2ZnLAogCW5oaS0mZ3Q7ZmFtaWx5ID0gY2ZnLSZndDtuaF9mYW1pbHk7CiAJbmhpLSZndDtmaWJfbmhjLm5oY19zY29wZSA9IFJUX1NDT1BFX0xJTks7CiAKLQlpZiAoY2ZnLSZndDtuaF9mZGIpCiYjNDM7CWlmIChjZmctJmd0O25oX2ZkYikgewogCQluaGktJmd0O2ZkYl9uaCA9IDE7CiYjNDM7CQluaGktJmd0O2ZkYl9wb3J0ID0gY2ZnLSZndDtuaF9mZGJfcG9ydDsKJiM0MzsJfQogCiAJaWYgKGNmZy0mZ3Q7bmhfYmxhY2tob2xlKSB7CiAJCW5oaS0mZ3Q7cmVqZWN0X25oID0gMTsKQEAgLTMxNDcsNiAmIzQzOzMxNTYsMTUgQEAgc3RhdGljIGludCBydG1fdG9fbmhfY29uZmlnKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJY2ZnLSZndDtuaF9mZGIgPSBubGFfZ2V0X2ZsYWcodGJbTkhBX0ZEQl0pOwogCX0KIAomIzQzOwlpZiAodGJbTkhBX0ZEQl9QT1JUXSkgewomIzQzOwkJaWYgKCF0YltOSEFfRkRCXSB8fCAhdGJbTkhBX0dBVEVXQVldKSB7CiYjNDM7CQkJTkxfU0VUX0VSUl9NU0coZXh0YWNrLAomIzQzOwkJCQkgICAgICAgJiMzNDtGREIgcG9ydCBjYW4gb25seSBiZSBzZXQgb24gZmRiIG5leHRob3BzIHRoYXQgaGF2ZSBhIGdhdGV3YXkmIzM0Oyk7CiYjNDM7CQkJZ290byBvdXQ7CiYjNDM7CQl9CiYjNDM7CQljZmctJmd0O25oX2ZkYl9wb3J0ID0gbmxhX2dldF9iZTE2KHRiW05IQV9GREJfUE9SVF0pOwomIzQzOwl9CiYjNDM7CiAJaWYgKHRiW05IQV9HUk9VUF0pIHsKIAkJaWYgKG5obS0mZ3Q7bmhfZmFtaWx5ICE9IEFGX1VOU1BFQykgewogCQkJTkxfU0VUX0VSUl9NU0coZXh0YWNrLCAmIzM0O0ludmFsaWQgZmFtaWx5IGZvciBncm91cCYjMzQ7KTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9maWJfbmV4dGhvcHMuc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvZmliX25leHRob3BzLnNoCmluZGV4IGFjODY4YTczMTY5NDZhLi4xY2U0ZjQ1ZmE2NTE1ZiAxMDA3NTUKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2ZpYl9uZXh0aG9wcy5zaAomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvZmliX25leHRob3BzLnNoCkBAIC00MzIsNiAmIzQzOzQzMiwxNSBAQCBjaGVja19uZXh0aG9wX2ZkYl9zdXBwb3J0KCkKIAlmaQogfQogCiYjNDM7Y2hlY2tfbmV4dGhvcF9mZGJfcG9ydF9zdXBwb3J0KCkKJiM0Mzt7CiYjNDM7CSRJUCBuZXh0aG9wIGhlbHAgMiZndDsmYW1wOzEgfCBncmVwIC1xICYjMzQ7ZmRiIFxbIHBvcnQmIzM0OwomIzQzOwlpZiBbICQ/IC1uZSAwIF07IHRoZW4KJiM0MzsJCWVjaG8gJiMzNDtTS0lQOiBpcHJvdXRlMiB0b28gb2xkLCBtaXNzaW5nIGZkYiBuZXh0aG9wIHBvcnQgc3VwcG9ydCYjMzQ7CiYjNDM7CQlyZXR1cm4gJGtzZnRfc2tpcAomIzQzOwlmaQomIzQzO30KJiM0MzsKIGNoZWNrX25leHRob3BfcmVzX3N1cHBvcnQoKQogewogCSRJUCBuZXh0aG9wIGhlbHAgMiZndDsmYW1wOzEgfCBncmVwIC1xIHJlc2lsaWVudApAQCAtNTE0LDYgJiM0Mzs1MjMsMzEgQEAgaXB2Nl9mZGJfZ3JwX2ZjbmFsKCkKIAlydW5fY21kICYjMzQ7JElQIG5leHRob3AgcmVwbGFjZSBpZCA3MiB2aWEgMjAwMTpkYjg6OTE6OjIgZmRiJiMzNDsKIAlsb2dfdGVzdCAkPyAyICYjMzQ7UmVwbGFjZSBub24tRkRCIG5leHRob3AgdG8gRkRCIG5leHRob3Agd2hpbGUgaW4gYSBncm91cCYjMzQ7CiAKJiM0MzsJIyBOSEFfRkRCX1BPUlQ6IG9wdGlvbmFsIHBlci1uZXh0aG9wIFZYTEFOIGRlc3RpbmF0aW9uIFVEUCBwb3J0LAomIzQzOwkjIGxldHRpbmcgYW4gZmRiIG5leHRob3AgZ3JvdXAgYmFsYW5jZSBhIGZsb3cgYWNyb3NzIGxlZ3MgdGhhdCBzaGFyZQomIzQzOwkjIGFuIHVuZGVybGF5IElQIGJ1dCBsaXN0ZW4gb24gZGlmZmVyZW50IFVEUCBwb3J0cy4KJiM0MzsJaWYgY2hlY2tfbmV4dGhvcF9mZGJfcG9ydF9zdXBwb3J0OyB0aGVuCiYjNDM7CQlydW5fY21kICYjMzQ7JElQIG5leHRob3AgYWRkIGlkIDgwIHZpYSAyMDAxOmRiODo5MTo6MiBmZGIgcG9ydCA0NzkwJiMzNDsKJiM0MzsJCWNoZWNrX25leHRob3AgJiMzNDtpZCA4MCYjMzQ7ICYjMzQ7aWQgODAgdmlhIDIwMDE6ZGI4OjkxOjoyIHNjb3BlIGxpbmsgZmRiIHBvcnQgNDc5MCYjMzQ7CiYjNDM7CQlsb2dfdGVzdCAkPyAwICYjMzQ7RmRiIG5leHRob3Agd2l0aCBwb3J0JiMzNDsKJiM0MzsKJiM0MzsJCXJ1bl9jbWQgJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgODEgZmRiIHBvcnQgNDc5MCYjMzQ7CiYjNDM7CQlsb2dfdGVzdCAkPyAyICYjMzQ7RmRiIG5leHRob3Agd2l0aCBwb3J0IGJ1dCBubyBnYXRld2F5JiMzNDsKJiM0MzsKJiM0MzsJCXJ1bl9jbWQgJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgODEgdmlhIDIwMDE6ZGI4OjkxOjoyIGZkYiBwb3J0IDAmIzM0OwomIzQzOwkJbG9nX3Rlc3QgJD8gMiAmIzM0O0ZkYiBuZXh0aG9wIHdpdGggcG9ydCAwJiMzNDsKJiM0MzsKJiM0MzsJCXJ1bl9jbWQgJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgODIgdmlhIDIwMDE6ZGI4OjkxOjoyIGZkYiBwb3J0IDQ3ODkmIzM0OwomIzQzOwkJcnVuX2NtZCAmIzM0OyRJUCBuZXh0aG9wIGFkZCBpZCA4MyB2aWEgMjAwMTpkYjg6OTE6OjMgZmRiIHBvcnQgNTc4OSYjMzQ7CiYjNDM7CQlydW5fY21kICYjMzQ7JElQIG5leHRob3AgYWRkIGlkIDEwNiBncm91cCA4Mi84MyBmZGImIzM0OwomIzQzOwkJY2hlY2tfbmV4dGhvcCAmIzM0O2lkIDEwNiYjMzQ7ICYjMzQ7aWQgMTA2IGdyb3VwIDgyLzgzIGZkYiYjMzQ7CiYjNDM7CQlsb2dfdGVzdCAkPyAwICYjMzQ7RmRiIG5leHRob3AgZ3JvdXAgd2l0aCBsZWdzIGRpZmZlcmluZyBpbiBwb3J0JiMzNDsKJiM0MzsKJiM0MzsJCXJ1bl9jbWQgJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgODQgdmlhIDIwMDE6ZGI4OjkxOjoyIGZkYiYjMzQ7CiYjNDM7CQljaGVja19uZXh0aG9wICYjMzQ7aWQgODQmIzM0OyAmIzM0O2lkIDg0IHZpYSAyMDAxOmRiODo5MTo6MiBzY29wZSBsaW5rIGZkYiYjMzQ7CiYjNDM7CQlsb2dfdGVzdCAkPyAwICYjMzQ7RmRiIG5leHRob3Agd2l0aG91dCBwb3J0IG9taXRzIHBvcnQmIzM0OwomIzQzOwlmaQomIzQzOwogCXJ1bl9jbWQgJiMzNDskSVAgbGluayBhZGQgbmFtZSB2eDEwIHR5cGUgdnhsYW4gaWQgMTAxMCBsb2NhbCAyMDAxOmRiODo5MTo6OSByZW1vdGUgMjAwMTpkYjg6OTE6OjEwIGRzdHBvcnQgNDc4OSBub2xlYXJuaW5nIG5vdWRwY3N1bSB0b3MgaW5oZXJpdCB0dGwgMTAwJiMzNDsKIAlydW5fY21kICYjMzQ7JEJSSURHRSBmZGIgYWRkIDAyOjAyOjAwOjAwOjAwOjEzIGRldiB2eDEwIG5oaWQgMTAyIHNlbGYmIzM0OwogCWxvZ190ZXN0ICQ/IDAgJiMzNDtGZGIgbWFjIGFkZCB3aXRoIG5leHRob3AgZ3JvdXAmIzM0OwpAQCAtNjE0LDYgJiM0Mzs2NDgsMzEgQEAgaXB2NF9mZGJfZ3JwX2ZjbmFsKCkKIAlydW5fY21kICYjMzQ7JElQIG5leHRob3AgcmVwbGFjZSBpZCAyMCB2aWEgMTcyLjE2LjEuMiBmZGImIzM0OwogCWxvZ190ZXN0ICQ/IDIgJiMzNDtSZXBsYWNlIG5vbi1GREIgbmV4dGhvcCB0byBGREIgbmV4dGhvcCB3aGlsZSBpbiBhIGdyb3VwJiMzNDsKIAomIzQzOwkjIE5IQV9GREJfUE9SVDogb3B0aW9uYWwgcGVyLW5leHRob3AgVlhMQU4gZGVzdGluYXRpb24gVURQIHBvcnQsCiYjNDM7CSMgbGV0dGluZyBhbiBmZGIgbmV4dGhvcCBncm91cCBiYWxhbmNlIGEgZmxvdyBhY3Jvc3MgbGVncyB0aGF0IHNoYXJlCiYjNDM7CSMgYW4gdW5kZXJsYXkgSVAgYnV0IGxpc3RlbiBvbiBkaWZmZXJlbnQgVURQIHBvcnRzLgomIzQzOwlpZiBjaGVja19uZXh0aG9wX2ZkYl9wb3J0X3N1cHBvcnQ7IHRoZW4KJiM0MzsJCXJ1bl9jbWQgJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgMzAgdmlhIDE3Mi4xNi4xLjIgZmRiIHBvcnQgNDc5MCYjMzQ7CiYjNDM7CQljaGVja19uZXh0aG9wICYjMzQ7aWQgMzAmIzM0OyAmIzM0O2lkIDMwIHZpYSAxNzIuMTYuMS4yIHNjb3BlIGxpbmsgZmRiIHBvcnQgNDc5MCYjMzQ7CiYjNDM7CQlsb2dfdGVzdCAkPyAwICYjMzQ7RmRiIG5leHRob3Agd2l0aCBwb3J0JiMzNDsKJiM0MzsKJiM0MzsJCXJ1bl9jbWQgJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgMzEgZmRiIHBvcnQgNDc5MCYjMzQ7CiYjNDM7CQlsb2dfdGVzdCAkPyAyICYjMzQ7RmRiIG5leHRob3Agd2l0aCBwb3J0IGJ1dCBubyBnYXRld2F5JiMzNDsKJiM0MzsKJiM0MzsJCXJ1bl9jbWQgJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgMzEgdmlhIDE3Mi4xNi4xLjIgZmRiIHBvcnQgMCYjMzQ7CiYjNDM7CQlsb2dfdGVzdCAkPyAyICYjMzQ7RmRiIG5leHRob3Agd2l0aCBwb3J0IDAmIzM0OwomIzQzOwomIzQzOwkJcnVuX2NtZCAmIzM0OyRJUCBuZXh0aG9wIGFkZCBpZCAzMiB2aWEgMTcyLjE2LjEuMiBmZGIgcG9ydCA0Nzg5JiMzNDsKJiM0MzsJCXJ1bl9jbWQgJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgMzMgdmlhIDE3Mi4xNi4xLjMgZmRiIHBvcnQgNTc4OSYjMzQ7CiYjNDM7CQlydW5fY21kICYjMzQ7JElQIG5leHRob3AgYWRkIGlkIDEwNSBncm91cCAzMi8zMyBmZGImIzM0OwomIzQzOwkJY2hlY2tfbmV4dGhvcCAmIzM0O2lkIDEwNSYjMzQ7ICYjMzQ7aWQgMTA1IGdyb3VwIDMyLzMzIGZkYiYjMzQ7CiYjNDM7CQlsb2dfdGVzdCAkPyAwICYjMzQ7RmRiIG5leHRob3AgZ3JvdXAgd2l0aCBsZWdzIGRpZmZlcmluZyBpbiBwb3J0JiMzNDsKJiM0MzsKJiM0MzsJCXJ1bl9jbWQgJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgMzQgdmlhIDE3Mi4xNi4xLjIgZmRiJiMzNDsKJiM0MzsJCWNoZWNrX25leHRob3AgJiMzNDtpZCAzNCYjMzQ7ICYjMzQ7aWQgMzQgdmlhIDE3Mi4xNi4xLjIgc2NvcGUgbGluayBmZGImIzM0OwomIzQzOwkJbG9nX3Rlc3QgJD8gMCAmIzM0O0ZkYiBuZXh0aG9wIHdpdGhvdXQgcG9ydCBvbWl0cyBwb3J0JiMzNDsKJiM0MzsJZmkKJiM0MzsKIAlydW5fY21kICYjMzQ7JElQIGxpbmsgYWRkIG5hbWUgdngxMCB0eXBlIHZ4bGFuIGlkIDEwMTAgbG9jYWwgMTAuMC4wLjEgcmVtb3RlIDEwLjAuMC4yIGRzdHBvcnQgNDc4OSBub2xlYXJuaW5nIG5vdWRwY3N1bSB0b3MgaW5oZXJpdCB0dGwgMTAwJiMzNDsKIAlydW5fY21kICYjMzQ7JEJSSURHRSBmZGIgYWRkIDAyOjAyOjAwOjAwOjAwOjEzIGRldiB2eDEwIG5oaWQgMTAyIHNlbGYmIzM0OwogCWxvZ190ZXN0ICQ/IDAgJiMzNDtGZGIgbWFjIGFkZCB3aXRoIG5leHRob3AgZ3JvdXAmIzM0OwpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rlc3RfdnhsYW5fbmguc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGVzdF92eGxhbl9uaC5zaAppbmRleCAyMGYzMzY5Zjc3NmIxNS4uMzRhMjRhNGY5NWJmN2IgMTAwNzU1Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90ZXN0X3Z4bGFuX25oLnNoCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90ZXN0X3Z4bGFuX25oLnNoCkBAIC01Niw2ICYjNDM7NTYsMTYgQEAgdGNfc3RhdHNfZ2V0KCkKIAl0Y19ydWxlX2hhbmRsZV9zdGF0c19nZXQgJiMzNDtkZXYgZHVtbXkxIGVncmVzcyYjMzQ7IDEwMSAmIzM0Oy5wYWNrZXRzJiMzNDsgJiMzNDstbiAkbnMxJiMzNDsKIH0KIAomIzQzO25oX3N0YXRzX2dldF9wb3J0KCkKJiM0Mzt7CiYjNDM7CWlwIC1uICYjMzQ7JG5zMSYjMzQ7IC1zIC1qIG5leHRob3Agc2hvdyBpZCAyMCB8IGpxICYjMzQ7LltdW1wmIzM0O2dyb3VwX3N0YXRzXCYjMzQ7XVtdW1wmIzM0O3BhY2tldHNcJiMzNDtdJiMzNDsKJiM0Mzt9CiYjNDM7CiYjNDM7dGNfc3RhdHNfZ2V0X3BvcnQoKQomIzQzO3sKJiM0MzsJdGNfcnVsZV9oYW5kbGVfc3RhdHNfZ2V0ICYjMzQ7ZGV2IGR1bW15MSBlZ3Jlc3MmIzM0OyAxMDIgJiMzNDsucGFja2V0cyYjMzQ7ICYjMzQ7LW4gJG5zMSYjMzQ7CiYjNDM7fQomIzQzOwogYmFzaWNfdHhfY29tbW9uKCkKIHsKIAlsb2NhbCBhZl9zdHI9JDE7IHNoaWZ0CkBAIC05MCw2ICYjNDM7MTAwLDI3IEBAIGJhc2ljX3R4X2NvbW1vbigpCiAJYnVzeXdhaXQgJiMzNDskQlVTWVdBSVRfVElNRU9VVCYjMzQ7IHVudGlsX2NvdW50ZXJfaXMgJiMzNDs9PSAxJiMzNDsgdGNfc3RhdHNfZ2V0ICZndDsgL2Rldi9udWxsCiAJY2hlY2tfZXJyICQ/ICYjMzQ7dGMgZmlsdGVyIHN0YXRzIGRpZCBub3QgaW5jcmVhc2UmIzM0OwogCiYjNDM7CSMgQWRkIGEgc2Vjb25kIEZEQiBuZXh0aG9wIGdyb3VwIHdob3NlIG5leHRob3AgY2FycmllcyBhIHBlci1uZXh0aG9wCiYjNDM7CSMgZGVzdGluYXRpb24gcG9ydCAoTkhBX0ZEQl9QT1JUKSB0aGF0IGRpZmZlcnMgZnJvbSB0aGUgVlhMQU4gZGV2aWNlCiYjNDM7CSMgZGVmYXVsdC4gTWF0Y2hpbmcgb3V0ZXIgdHJhZmZpYyBtdXN0IGVncmVzcyB3aXRoIHRoYXQgcG9ydCwgc28gYQomIzQzOwkjIHNlcGFyYXRlIGZsb3dlciBmaWx0ZXIga2V5ZWQgb24gdGhlIG5ldyBwb3J0IGNhdGNoZXMgaXQuCiYjNDM7CWlmIGlwIG5leHRob3AgaGVscCAyJmd0OyZhbXA7MSB8IGdyZXAgLXEgJiMzNDtmZGIgXFsgcG9ydCYjMzQ7OyB0aGVuCiYjNDM7CQlydW5fY21kICYjMzQ7dGMgLW4gJG5zMSBmaWx0ZXIgYWRkIGRldiBkdW1teTEgZWdyZXNzIHByb3RvICRwcm90byBwcmVmIDEgaGFuZGxlIDEwMiBmbG93ZXIgaXBfcHJvdG8gdWRwIGRzdF9pcCAkcmVtb3RlX2FkZHIgZHN0X3BvcnQgNDc5MCBhY3Rpb24gcGFzcyYjMzQ7CiYjNDM7CiYjNDM7CQlydW5fY21kICYjMzQ7aXAgLW4gJG5zMSBuZXh0aG9wIGFkZCBpZCAyIHZpYSAkcmVtb3RlX2FkZHIgZmRiIHBvcnQgNDc5MCYjMzQ7CiYjNDM7CQlydW5fY21kICYjMzQ7aXAgLW4gJG5zMSBuZXh0aG9wIGFkZCBpZCAyMCBncm91cCAyIGZkYiYjMzQ7CiYjNDM7CiYjNDM7CQlydW5fY21kICYjMzQ7YnJpZGdlIC1uICRuczEgZmRiIGFkZCAwMDoxMToyMjozMzo0NDo2NiBkZXYgdngwIHNlbGYgc3RhdGljIG5oaWQgMjAmIzM0OwomIzQzOwomIzQzOwkJcnVuX2NtZCAmIzM0O2lwIG5ldG5zIGV4ZWMgJG5zMSBtYXVzZXphaG4gdngwIC1hIG93biAtYiAwMDoxMToyMjozMzo0NDo2NiAtYyAxIC1xJiMzNDsKJiM0MzsKJiM0MzsJCWJ1c3l3YWl0ICYjMzQ7JEJVU1lXQUlUX1RJTUVPVVQmIzM0OyB1bnRpbF9jb3VudGVyX2lzICYjMzQ7PT0gMSYjMzQ7IG5oX3N0YXRzX2dldF9wb3J0ICZndDsgL2Rldi9udWxsCiYjNDM7CQljaGVja19lcnIgJD8gJiMzNDtGREIgbmV4dGhvcCBncm91cCBzdGF0cyBkaWQgbm90IGluY3JlYXNlICh3aXRoIHBvcnQpJiMzNDsKJiM0MzsKJiM0MzsJCWJ1c3l3YWl0ICYjMzQ7JEJVU1lXQUlUX1RJTUVPVVQmIzM0OyB1bnRpbF9jb3VudGVyX2lzICYjMzQ7PT0gMSYjMzQ7IHRjX3N0YXRzX2dldF9wb3J0ICZndDsgL2Rldi9udWxsCiYjNDM7CQljaGVja19lcnIgJD8gJiMzNDt0YyBmaWx0ZXIgc3RhdHMgZGlkIG5vdCBpbmNyZWFzZSAod2l0aCBwb3J0KSYjMzQ7CiYjNDM7CWZpCiYjNDM7CiAJbG9nX3Rlc3QgJiMzNDtWWExBTiBGREIgbmV4dGhvcDogJGFmX3N0ciBiYXNpYyBUeCYjMzQ7CiB9CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTY6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjQwOAoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDQwNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFZYTEFOIEZEQiBOZXh0aG9wIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgaW50cm9kdWNlcyBgTkhBX0ZEQl9QT1JUYCBzdXBwb3J0IGluIG5leHRob3BzLCBzcGVjaWZpY2FsbHkgZm9yIFZYTEFOIEZEQiBuZXh0aG9wcy4gVGhpcyBpcyBjb3JlIG5ldHdvcmtpbmcgZnVuY3Rpb25hbGl0eSwgc28gaXQgbmVlZHMgY2FyZWZ1bCByZXZpZXcuIEl0IGxvb2tzIGxpa2UgaXQgdG91Y2hlcyBxdWl0ZSBhIGZldyBmaWxlczogYGluY2x1ZGUvbmV0L25leHRob3AuaGAsIGBpbmNsdWRlL25ldC92eGxhbi5oYCwgYGluY2x1ZGUvdWFwaS9saW51eC9uZXh0aG9wLmhgLCBgbmV0L2lwdjQvbmV4dGhvcC5jYCwgYW5kIHNvbWUgc2VsZnRlc3RzLCB3aGljaCBpcyB3aGF0IEkmIzM5O2QgZXhwZWN0IGZvciB0aGlzIGtpbmQgb2YgY2hhbmdlLiBUaGUgcHJpbWFyeSBmdW5jdGlvbiBvZiB0aGlzIHBhdGNoIGlzIGFsbG93aW5nIHVzZXJzIHRvIHNwZWNpZnkgYSBVRFAgZGVzdGluYXRpb24gcG9ydCBmb3IgYW4gRkRCIG5leHRob3AuCgpMZXQmIzM5O3MgYnJlYWsgZG93biB0aGUgZnVuY3Rpb25zIG1vZGlmaWVkIGFuZCBzZWUgd2hhdCYjMzk7cyBiZWluZyBhZmZlY3RlZC4gSXQgbG9va3MgbGlrZSB3ZSBoYXZlOgotICAgYG5leHRob3BfcGF0aF9mZGJfcmVzdWx0YCBpbiBgaW5jbHVkZS9uZXQvbmV4dGhvcC5oYAotICAgYHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdGAgaW4gYGluY2x1ZGUvbmV0L3Z4bGFuLmhgCi0gICBgbmhfZmlsbF9ub2RlYCBpbiBgbmV0L2lwdjQvbmV4dGhvcC5jYAotICAgYG5oX25sbXNnX3NpemVfc2luZ2xlYCBpbiBgbmV0L2lwdjQvbmV4dGhvcC5jYAotICAgYG5leHRob3BfY3JlYXRlYCBpbiBgbmV0L2lwdjQvbmV4dGhvcC5jYAotICAgYHJ0bV90b19uaF9jb25maWdgIGluIGBuZXQvaXB2NC9uZXh0aG9wLmNgCgpJIG5lZWQgdG8gY29uZmlybSB0aGUgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMgZm9yIHRoaXMuIE9idmlvdXNseSwgYENPTkZJR19WWExBTmAgaXMgbmVjZXNzYXJ5IGZvciBWWExBTiBzdXBwb3J0LiBBcyBmb3IgdGhlIHJlc3Qgb2YgdGhlIG5leHRob3AgZnVuY3Rpb25hbGl0eSwgSSB0aGluayB0aGF0IGlzIGEgc3RhbmRhcmQgcGFydCBvZiBJUHY0IHJvdXRpbmcsIG5vdCBkaXJlY3RseSByZWxhdGVkIHRvIGBDT05GSUdfSVBfUk9VVEVfTVVMVElQQVRIYC4gTGV0JiMzOTtzIGNvbmZpcm0gdGhhdCBieSBjaGVja2luZyBgbmV0L2lwdjQvbmV4dGhvcC5jYCBhbmQgYGluY2x1ZGUvbmV0L25leHRob3AuaGAgZGVwZW5kZW5jaWVzLiBMb29rcyBsaWtlIGBuZXQvaXB2NC9uZXh0aG9wLmNgIGlzIGFsd2F5cyBjb21waWxlZCBmb3IgSVB2NCwgbm90IHVuZGVyIGBDT05GSUdfSVBfUk9VVEVfTVVMVElQQVRIYC4gTGV0JiMzOTtzIGNoZWNrIGBuZXQvaXB2NC9NYWtlZmlsZWAgdG8gYmUgc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxNjoxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZXh0aG9wLm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvaXB2NC9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvaXB2NC9NYWtlZmlsZT02PW9iai15ICAgICA6PSByb3V0ZS5vIGluZXRwZWVyLm8gcHJvdG9jb2wubyBcXFxuLS1cbm5ldC9pcHY0L01ha2VmaWxlLTE2LVx0ICAgICBpbmV0X2ZyYWdtZW50Lm8gcGluZy5vIGlwX3R1bm5lbF9jb3JlLm8gZ3JlX29mZmxvYWQubyBcXFxubmV0L2lwdjQvTWFrZWZpbGU6MTc6XHQgICAgIG1ldHJpY3MubyBuZXRsaW5rLm8gbmV4dGhvcC5vIHVkcF90dW5uZWxfc3R1Yi5vXG5uZXQvaXB2NC9NYWtlZmlsZS0xOC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxNjoxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3NDUwCgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKklQdjQgYW5kIFZYTEFOIENvbmNlcm5zKioKClJpZ2h0LCBzbyB0aGlzIGNvZGUgaXMgYnVpbHQgYXNzdW1pbmcgSVB2NCwgbm8gaWZzLCBhbmRzLCBvciBidXRzLiBPa2F5LCB0aGF0JiMzOTtzIGZpbmUgZm9yIHNvbWUgY29udGV4dHMsIGJ1dCBpbW1lZGlhdGVseSBJJiMzOTttIHRoaW5raW5nIGFib3V0IFZYTEFOLiBJcyB0aGlzIGdvaW5nIHRvIHBsYXkgbmljZWx5IHdpdGggVlhMQU4tZW5jYXBzdWxhdGVkIHRyYWZmaWM/IFRoZSBsb2dpYyB3aXRoaW4gYHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdGAgaXMgY3JpdGljYWwgaGVyZS4gSXQmIzM5O3MgdXNlZCBzbyBpdCBuZWVkcyB0aGUgcmlnaHQga2VybmVsIGNvbmZpZ3VyYXRpb24uIEkgcmVtZW1iZXIgbm93OiBJJiMzOTttIHByZXR0eSBzdXJlIHRoYXQgZnVuY3Rpb24gZGVwZW5kcyBvbiBgQ09ORklHX1ZYTEFOYCBiZWluZyBlbmFibGVkLiBJZiB0aGF0JiMzOTtzIG5vdCBzZXQsIHRoZSByZWxldmFudCBwYXJ0cyBvZiB0aGUgVlhMQU4gc3VwcG9ydCBhcmUgZ29pbmcgdG8gYmUgbWlzc2luZyBhbmQgdGhpcyB3aG9sZSB0aGluZyBjb3VsZCBmYWxsIGFwYXJ0LiBJIG5lZWQgdG8ga2VlcCB0aGF0IGRlcGVuZGVuY3kgaW4gbWluZCB3aGVuIGV2YWx1YXRpbmcgdGhpcywgZXNwZWNpYWxseSBpbiBhIFZYTEFOIGVudmlyb25tZW50LiBJJiMzOTttIGdvaW5nIHRvIG1ha2UgYSBtZW50YWwgbm90ZSB0byB2ZXJpZnkgdGhlIGNvbmZpZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxNjoxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2eGxhbl9mZGJfbmhfcGF0aF9zZWxlY3QmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTI2NTA9c3RhdGljIHZvaWQgdnhsYW5feG1pdF9uaChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yNjYzLVx0XHRnb3RvIGRyb3A7XG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MjY2NDpcdGRvX3htaXQgPSB2eGxhbl9mZGJfbmhfcGF0aF9zZWxlY3QobmgsIGhhc2gsIFx1MDAyNm5oX3Jkc3QpO1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTI2NjUtXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTI2ODA9c3RhdGljIG5ldGRldl90eF90IHZ4bGFuX3htaXRfbmhpZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yNjk3LVx0fVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjI2OTg6XHRkb194bWl0ID0gdnhsYW5fZmRiX25oX3BhdGhfc2VsZWN0KG5oLCBoYXNoLCBcdTAwMjZuaF9yZHN0KTtcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yNjk5LVx0cmN1X3JlYWRfdW5sb2NrKCk7XG4tLVxuaW5jbHVkZS9uZXQvdnhsYW4uaD01MzQ9c3RhdGljIGlubGluZSB2b2lkIHZ4bGFuX2ZsYWdfYXR0cl9lcnJvcihpbnQgYXR0cnR5cGUsXG4tLVxuaW5jbHVkZS9uZXQvdnhsYW4uaC01NjQtXG5pbmNsdWRlL25ldC92eGxhbi5oOjU2NTpzdGF0aWMgaW5saW5lIGJvb2wgdnhsYW5fZmRiX25oX3BhdGhfc2VsZWN0KHN0cnVjdCBuZXh0aG9wICpuaCxcbmluY2x1ZGUvbmV0L3Z4bGFuLmgtNTY2LVx0XHRcdFx0XHQgICAgdTMyIGhhc2gsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTY6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODEzNAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDM3OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgVlhMQU4gTmV4dCBIb3AgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJIG5lZWQgdG8gbWFrZSBzdXJlIGBDT05GSUdfVlhMQU5gIGlzIGVuYWJsZWQuIExldCYjMzk7cyBzdGFydCB0aGVyZS4gTm93LCBsZXQmIzM5O3Mgc2VlIHdoYXQgZWxzZSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGNvbmZpZ3VyYXRpb24td2lzZS4gSSBzZWUgYE5IQV9GREJfUE9SVGAgYXMgYSBuZXRsaW5rIGF0dHJpYnV0ZSwgd2hpY2ggaXMgdXNlZnVsLiBUaGUgY29yZSBzZWVtcyB0byByZXZvbHZlIGFyb3VuZCBgcnRtX3RvX25oX2NvbmZpZ2AsIHdoaWNoIGdldHMgY2FsbGVkIGZyb20gYHJ0bV9uZXduZXh0aG9wYCBpbiBgbmV0L2lwdjQvbmV4dGhvcC5jYCwgYW5kLCBpbXBvcnRhbnRseSwgYG5leHRob3BfY3JlYXRlYCB3aGljaCBpcyBpdHNlbGYgY2FsbGVkIGZyb20gYHJ0bV9uZXduZXh0aG9wYC4KCkkgbmVlZCB0byBmb2N1cyBvbiBhIGZldyBrZXkgc3ltYm9scyBoZXJlOiBgcnRtX3RvX25oX2NvbmZpZ2AsIGBuZXh0aG9wX2NyZWF0ZWAsIGBuaF9maWxsX25vZGVgLCBhbmQgYHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdGAuCgpMZXQgbWUgc2VlLCBpcyBgdnhsYW5fZmRiX25oX3BhdGhfc2VsZWN0YCBpbiB0aGUgaG90IHBhdGg/IEFoLCB5ZXMsIGl0JiMzOTtzIGNhbGxlZCBmcm9tIGB2eGxhbl94bWl0X25oYCBhbmQgYHZ4bGFuX3htaXRfbmhpZGAsIHdoaWNoIGFyZSB0aGVtc2VsdmVzIGNhbGxlZCBmcm9tIGB2eGxhbl94bWl0YC4gQW5kIGB2eGxhbl94bWl0YCBpcyB0aGUgYG5kb19zdGFydF94bWl0YCBmb3IgVlhMQU4g4oCTIGRlZmluaXRlbHkgYSBob3QgcGF0aCEgVGhhdCYjMzk7cyBzb21ldGhpbmcgd2Ugd2FudCB0byBhdm9pZCBpZiBwb3NzaWJsZS4KCkdvb2QsIG5vdyBsb29raW5nIGF0IGBydG1fdG9fbmhfY29uZmlnYCwgYG5leHRob3BfY3JlYXRlYCwgYW5kIGBuaF9maWxsX25vZGVgIHRoZXkgbG9vayBsaWtlIHRoZXkgYXJlIGFsbCBjb250cm9sIHBhdGggZnVuY3Rpb25zLCBkZWFsaW5nIHdpdGggbmV0bGluay4gVGhhdCBpcyBnb29kLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgdW5kZXJzdGFuZCB0aGUgZnVuY3Rpb24gY2FsbHMgYW5kIHRoZSBwYXRocyB0byB0aGVtLCBidXQgYXMgZmFyIGFzIEkgY2FuIHNlZSwgdGhlc2Ugc2hvdWxkIG5vdCBiZSBpbiB0aGUgaG90IHBhdGguCgpOb3csIGxldCYjMzk7cyBqdXN0IG1ha2Ugc3VyZSB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciBmdW5jdGlvbnMgdGhhdCBhcmUgY3JpdGljYWwgdG8gdGhpcywgbGV0JiMzOTtzIHNlZS4gTG9va3MgbGlrZSBgbmV4dGhvcF9wYXRoX2ZkYl9yZXN1bHRgIGlzIGFuIGlubGluZSBmdW5jdGlvbiBpbiBgaW5jbHVkZS9uZXQvbmV4dGhvcC5oYC4gT2theS4KClNvLCB0aGUga2V5IGZ1bmN0aW9ucyB0aGF0IHdhcnJhbnQgZnVydGhlciBzY3J1dGlueSBhcmU6IGBydG1fdG9fbmhfY29uZmlnYCwgYG5leHRob3BfY3JlYXRlYCwgYW5kIGBuaF9maWxsX25vZGVgLiBMZXQmIzM5O3MgZG91YmxlIGNoZWNrIGBydG1fdG9fbmhfY29uZmlnYCBhbmQgYG5leHRob3BfY3JlYXRlYCBhZ2FpbiwganVzdCB0byBtYWtlIHN1cmUgSSBhbSBvbiB0aGUgcmlnaHQgdHJhY2sgaGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxNjoxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydG1fdG9fbmhfY29uZmlnJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2lwdjQvbmV4dGhvcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9pcHY0L25leHRob3AuYz0zMDM4PXN0YXRpYyBpbnQgcnRtX25oX2dldF90aW1lcihzdHJ1Y3QgbmxhdHRyICphdHRyLCB1bnNpZ25lZCBsb25nIGZhbGxiYWNrLFxuLS1cbm5ldC9pcHY0L25leHRob3AuYy0zMDYyLVxubmV0L2lwdjQvbmV4dGhvcC5jOjMwNjM6c3RhdGljIGludCBydG1fdG9fbmhfY29uZmlnX2dycF9yZXMoc3RydWN0IG5sYXR0ciAqcmVzLCBzdHJ1Y3QgbmhfY29uZmlnICpjZmcsXG5uZXQvaXB2NC9uZXh0aG9wLmMtMzA2NC1cdFx0XHRcdCAgICBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spXG4tLVxubmV0L2lwdjQvbmV4dGhvcC5jLTMxMDEtXG5uZXQvaXB2NC9uZXh0aG9wLmM6MzEwMjpzdGF0aWMgaW50IHJ0bV90b19uaF9jb25maWcoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxubmV0L2lwdjQvbmV4dGhvcC5jLTMxMDMtXHRcdFx0ICAgIHN0cnVjdCBubG1zZ2hkciAqbmxoLCBzdHJ1Y3QgbmxhdHRyICoqdGIsXG4tLVxubmV0L2lwdjQvbmV4dGhvcC5jLTMxODktXHRcdGlmIChjZmctXHUwMDNlbmhfZ3JwX3R5cGUgPT0gTkVYVEhPUF9HUlBfVFlQRV9SRVMpXG5uZXQvaXB2NC9uZXh0aG9wLmM6MzE5MDpcdFx0XHRlcnIgPSBydG1fdG9fbmhfY29uZmlnX2dycF9yZXModGJbTkhBX1JFU19HUk9VUF0sXG5uZXQvaXB2NC9uZXh0aG9wLmMtMzE5MS1cdFx0XHRcdFx0XHQgICAgICAgY2ZnLCBleHRhY2spO1xuLS1cbm5ldC9pcHY0L25leHRob3AuYy0zMjc3LVxubmV0L2lwdjQvbmV4dGhvcC5jOjMyNzg6c3RhdGljIGludCBydG1fdG9fbmhfY29uZmlnX3J0bmwoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmxhdHRyICoqdGIsXG5uZXQvaXB2NC9uZXh0aG9wLmMtMzI3OS1cdFx0XHRcdCBzdHJ1Y3QgbmhfY29uZmlnICpjZmcsXG4tLVxubmV0L2lwdjQvbmV4dGhvcC5jPTMzMTA9c3RhdGljIGludCBydG1fbmV3X25leHRob3Aoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5sbXNnaGRyICpubGgsXG4tLVxubmV0L2lwdjQvbmV4dGhvcC5jLTMzMjQtXG5uZXQvaXB2NC9uZXh0aG9wLmM6MzMyNTpcdGVyciA9IHJ0bV90b19uaF9jb25maWcobmV0LCBza2IsIG5saCwgdGIsIFx1MDAyNmNmZywgZXh0YWNrKTtcbm5ldC9pcHY0L25leHRob3AuYy0zMzI2LVx0aWYgKGVycilcbi0tXG5uZXQvaXB2NC9uZXh0aG9wLmMtMzMzNi1cbm5ldC9pcHY0L25leHRob3AuYzozMzM3Olx0ZXJyID0gcnRtX3RvX25oX2NvbmZpZ19ydG5sKG5ldCwgdGIsIFx1MDAyNmNmZywgZXh0YWNrKTtcbm5ldC9pcHY0L25leHRob3AuYy0zMzM4LVx0aWYgKGVycilcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxNjoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NzAzCgkJCQkJCQlvdXRwdXQ6IDEyOQoJCQkJCQkJdGhvdWdodHM6IDIwOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiBOZXh0IEhvcCBDb25maWd1cmF0aW9uKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGdvYWwgaXMgdG8gdW5kZXJzdGFuZCBob3cgd2UmIzM5O3JlIGNvbmZpZ3VyaW5nIHRoZSBuZXh0LWhvcCBmdW5jdGlvbmFsaXR5LiBUaGUga2V5IGZ1bmN0aW9ucyBJIG5lZWQgdG8gZm9jdXMgb24gYXJlIGBydG1fdG9fbmhfY29uZmlnYCwgYG5leHRob3BfY3JlYXRlYCwgYW5kIGBuaF9maWxsX25vZGVgLiBUaGVzZSBzZWVtIHRvIGJlIHRoZSBjb3JlIGJ1aWxkaW5nIGJsb2Nrcy4KCkkgc2VlIHRoYXQgdGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBpbiBwbGF5IGlzIGBWWExBTmAuIEkmIzM5O20gY3VyaW91cyBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3VyYXRpb25zIGludm9sdmVkLCBzbyBJJiMzOTtsbCBuZWVkIHRvIGRpZyBhIGxpdHRsZSBkZWVwZXIgdG8gc2VlIGlmIGFueSBvdGhlcnMgaW5mbHVlbmNlIHRoaXMgcGFydCBvZiB0aGUgY29kZS4KCkFscmlnaHQsIEkgZm91bmQgYE5IQV9GREJfUE9SVGAsIGFuZCBpdCBpcyBwYXJ0IG9mIGBydG1fbmhfcG9saWN5X25ld2AgaW4gYG5ldC9pcHY0L25leHRob3AuY2AuIFRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgcGFydCBvZiB0aGUgY29kZSBJIG5lZWQgdG8gY29uc2lkZXIuCgpOb3csIEkmIzM5O2xsIHNldCB0aGUgYFdvcnRoRnV6emluZ2AgZmxhZyB0byBgdHJ1ZWAuIFRoZXNlIGZ1bmN0aW9ucyBzZWVtIGxpa2UgZ29vZCBjYW5kaWRhdGVzIHRvIHRlc3QgdGhvcm91Z2hseS4gSSYjMzk7bGwgbWFrZSBzdXJlIHRvIHByaW9yaXRpemUgZnV6emluZyBgcnRtX3RvX25oX2NvbmZpZ2AsIGBuZXh0aG9wX2NyZWF0ZWAsIGFuZCBgbmhfZmlsbF9ub2RlYC4KClRvIGJlIGNlcnRhaW4sIEkgd2FudCB0byBjb25maXJtIHRoYXQgYFZYTEFOYCBpcyB0aGUgb25seSBjb25maWd1cmF0aW9uIGFjdGl2ZWx5IGludm9sdmVkLiBJIHNlZSBgQ09ORklHX1ZYTEFOYCBpcyB0cmlzdGF0ZSwgc28gaXQmIzM5O3MgcG9zc2libGUuIEFyZSB0aGVyZSBvdGhlciBjb25maWdzIHRoYXQgaW5mbHVlbmNlIG5leHRob3AgYmVoYXZpb3I/IEhtbSwgYG5leHRob3Aub2AgYXBwZWFycyB0byBiZSBjb21waWxlZCB1bmNvbmRpdGlvbmFsbHkgZm9yIElQdjQsIHNvIG5vLCB0aGVyZSBkb24mIzM5O3QgYXBwZWFyIHRvIGJlIGFueSBvdGhlciBjb25maWdzLgoKTm93LCBJJiMzOTttIHJlYWR5IHRvIHVzZSB0aGUgYHNldC1yZXN1bHRzYCB0b29sIGFuZCBtb3ZlIGZvcndhcmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDE2OjE3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtWWExBTiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0bV90b19uaF9jb25maWcmIzM0OywKICAgICYjMzQ7bmV4dGhvcF9jcmVhdGUmIzM0OywKICAgICYjMzQ7bmhfZmlsbF9ub2RlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgYSBuZXcgbmV0bGluayBhdHRyaWJ1dGUgTkhBX0ZEQl9QT1JUIHRvIHNwZWNpZnkgYSBVRFAgZGVzdGluYXRpb24gcG9ydCBmb3IgRkRCIG5leHRob3BzIChlLmcuLCBWWExBTikuIEl0IG1vZGlmaWVzIHRoZSBuZXh0aG9wIG5ldGxpbmsgY29udHJvbCBwYXRoIGFuZCBWWExBTiBkYXRhcGF0aC4gVGhlIG5ldGxpbmsgY29udHJvbCBwYXRoIGZ1bmN0aW9ucyBhcmUgZ29vZCB0YXJnZXRzIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtWWExBTiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0bV90b19uaF9jb25maWcmIzM0OywKICAgICYjMzQ7bmV4dGhvcF9jcmVhdGUmIzM0OywKICAgICYjMzQ7bmhfZmlsbF9ub2RlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgYSBuZXcgbmV0bGluayBhdHRyaWJ1dGUgTkhBX0ZEQl9QT1JUIHRvIHNwZWNpZnkgYSBVRFAgZGVzdGluYXRpb24gcG9ydCBmb3IgRkRCIG5leHRob3BzIChlLmcuLCBWWExBTikuIEl0IG1vZGlmaWVzIHRoZSBuZXh0aG9wIG5ldGxpbmsgY29udHJvbCBwYXRoIGFuZCBWWExBTiBkYXRhcGF0aC4gVGhlIG5ldGxpbmsgY29udHJvbCBwYXRoIGZ1bmN0aW9ucyBhcmUgZ29vZCB0YXJnZXRzIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjJUMTY6MTY6MzguODQwMDIwNTY3WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzE0MDU4MDYxMTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVlhMQU5cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydG1fdG9fbmhfY29uZmlnXCIsXG4gICAgXCJuZXh0aG9wX2NyZWF0ZVwiLFxuICAgIFwibmhfZmlsbF9ub2RlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBuZXRsaW5rIGF0dHJpYnV0ZSBOSEFfRkRCX1BPUlQgdG8gc3BlY2lmeSBhIFVEUCBkZXN0aW5hdGlvbiBwb3J0IGZvciBGREIgbmV4dGhvcHMgKGUuZy4sIFZYTEFOKS4gSXQgbW9kaWZpZXMgdGhlIG5leHRob3AgbmV0bGluayBjb250cm9sIHBhdGggYW5kIFZYTEFOIGRhdGFwYXRoLiBUaGUgbmV0bGluayBjb250cm9sIHBhdGggZnVuY3Rpb25zIGFyZSBnb29kIHRhcmdldHMgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDE2OjE2OjM4Ljg0MDAyODIyN1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA2ODg0MjAwOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDg1M2MzMjQ2NWU4ZDdkYzYyNjMxNTJhOGFmMzQ1MGM1OGIyZjAxMDJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBKdWwgMjIgMTY6MTY6MzYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbmV4dGhvcC5oIGIvaW5jbHVkZS9uZXQvbmV4dGhvcC5oXFxuaW5kZXggNTcyZTY5Y2RhNDc2NmQuLjE5ZTg2NzBkOTY0ZDlkIDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvbmV0L25leHRob3AuaFxcbisrKyBiL2luY2x1ZGUvbmV0L25leHRob3AuaFxcbkBAIC0yOCw2ICsyOCw3IEBAIHN0cnVjdCBuaF9jb25maWcge1xcbiBcXHR1OFxcdFxcdG5oX3Byb3RvY29sO1xcbiBcXHR1OFxcdFxcdG5oX2JsYWNraG9sZTtcXG4gXFx0dThcXHRcXHRuaF9mZGI7XFxuK1xcdF9fYmUxNlxcdFxcdG5oX2ZkYl9wb3J0O1xcbiBcXHR1MzJcXHRcXHRuaF9mbGFncztcXG4gXFxuIFxcdGludFxcdFxcdG5oX2lmaW5kZXg7XFxuQEAgLTYzLDYgKzY0LDcgQEAgc3RydWN0IG5oX2luZm8ge1xcbiBcXHR1OFxcdFxcdFxcdGZhbWlseTtcXG4gXFx0Ym9vbFxcdFxcdFxcdHJlamVjdF9uaDtcXG4gXFx0Ym9vbFxcdFxcdFxcdGZkYl9uaDtcXG4rXFx0X19iZTE2XFx0XFx0XFx0ZmRiX3BvcnQ7XFxuIFxcbiBcXHR1bmlvbiB7XFxuIFxcdFxcdHN0cnVjdCBmaWJfbmhfY29tbW9uXFx0ZmliX25oYztcXG5AQCAtNTc0LDcgKzU3Niw4IEBAIHN0cnVjdCBmaWJfbmhfY29tbW9uICpuZXh0aG9wX2ZkYl9uaGMoc3RydWN0IG5leHRob3AgKm5oKVxcbiB9XFxuIFxcbiBzdGF0aWMgaW5saW5lIHN0cnVjdCBmaWJfbmhfY29tbW9uICpuZXh0aG9wX3BhdGhfZmRiX3Jlc3VsdChzdHJ1Y3QgbmV4dGhvcCAqbmgsXFxuLVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICBpbnQgaGFzaClcXG4rXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgIGludCBoYXNoLFxcbitcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgX19iZTE2ICpmZGJfcG9ydClcXG4ge1xcbiBcXHRzdHJ1Y3QgbmhfaW5mbyAqbmhpO1xcbiBcXHRzdHJ1Y3QgbmV4dGhvcCAqbmhwO1xcbkBAIC01ODMsNiArNTg2LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZmliX25oX2NvbW1vbiAqbmV4dGhvcF9wYXRoX2ZkYl9yZXN1bHQoc3RydWN0IG5leHRob3AgKm5oLFxcbiBcXHRpZiAodW5saWtlbHkoIW5ocCkpXFxuIFxcdFxcdHJldHVybiBOVUxMO1xcbiBcXHRuaGkgPSByY3VfZGVyZWZlcmVuY2UobmhwLVxcdTAwM2VuaF9pbmZvKTtcXG4rXFx0KmZkYl9wb3J0ID0gbmhpLVxcdTAwM2VmZGJfcG9ydDtcXG4gXFx0cmV0dXJuIFxcdTAwMjZuaGktXFx1MDAzZWZpYl9uaGM7XFxuIH1cXG4gI2VuZGlmXFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3Z4bGFuLmggYi9pbmNsdWRlL25ldC92eGxhbi5oXFxuaW5kZXggZGZiYTg5Njk1ZWZjZmEuLmRlNDFiMzc0Njg4ZjI5IDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvbmV0L3Z4bGFuLmhcXG4rKysgYi9pbmNsdWRlL25ldC92eGxhbi5oXFxuQEAgLTU2Nyw4ICs1NjcsOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgdnhsYW5fZmRiX25oX3BhdGhfc2VsZWN0KHN0cnVjdCBuZXh0aG9wICpuaCxcXG4gXFx0XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCB2eGxhbl9yZHN0ICpyZHN0KVxcbiB7XFxuIFxcdHN0cnVjdCBmaWJfbmhfY29tbW9uICpuaGM7XFxuK1xcdF9fYmUxNiBmZGJfcG9ydCA9IDA7XFxuIFxcbi1cXHRuaGMgPSBuZXh0aG9wX3BhdGhfZmRiX3Jlc3VsdChuaCwgaGFzaCBcXHUwMDNlXFx1MDAzZSAxKTtcXG4rXFx0bmhjID0gbmV4dGhvcF9wYXRoX2ZkYl9yZXN1bHQobmgsIGhhc2ggXFx1MDAzZVxcdTAwM2UgMSwgXFx1MDAyNmZkYl9wb3J0KTtcXG4gXFx0aWYgKHVubGlrZWx5KCFuaGMpKVxcbiBcXHRcXHRyZXR1cm4gZmFsc2U7XFxuIFxcbkBAIC01ODMsNiArNTg0LDggQEAgc3RhdGljIGlubGluZSBib29sIHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdChzdHJ1Y3QgbmV4dGhvcCAqbmgsXFxuIFxcdFxcdGJyZWFrO1xcbiBcXHR9XFxuIFxcbitcXHRyZHN0LVxcdTAwM2VyZW1vdGVfcG9ydCA9IGZkYl9wb3J0O1xcbitcXG4gXFx0cmV0dXJuIHRydWU7XFxuIH1cXG4gXFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXh0aG9wLmggYi9pbmNsdWRlL3VhcGkvbGludXgvbmV4dGhvcC5oXFxuaW5kZXggYmM0OWJhZjRhMjY3ZjAuLmU1ODdiYmYzYjg5MGEzIDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXh0aG9wLmhcXG4rKysgYi9pbmNsdWRlL3VhcGkvbGludXgvbmV4dGhvcC5oXFxuQEAgLTgzLDYgKzgzLDkgQEAgZW51bSB7XFxuIFxcdC8qIHUzMjsgcmVhZC1vbmx5OyB3aGV0aGVyIGFueSBkcml2ZXIgY29sbGVjdHMgSFcgc3RhdHMgKi9cXG4gXFx0TkhBX0hXX1NUQVRTX1VTRUQsXFxuIFxcbitcXHQvKiBiZTE2OyBVRFAgZGVzdGluYXRpb24gcG9ydCBmb3IgYW4gZmRiIG5leHRob3AgKGUuZy4gVlhMQU4pICovXFxuK1xcdE5IQV9GREJfUE9SVCxcXG4rXFxuIFxcdF9fTkhBX01BWCxcXG4gfTtcXG4gXFxuZGlmZiAtLWdpdCBhL25ldC9pcHY0L25leHRob3AuYyBiL25ldC9pcHY0L25leHRob3AuY1xcbmluZGV4IDYyMDViZDU3YWE4NTIwLi5iODJkYTNlZmY2M2M5MSAxMDA2NDRcXG4tLS0gYS9uZXQvaXB2NC9uZXh0aG9wLmNcXG4rKysgYi9uZXQvaXB2NC9uZXh0aG9wLmNcXG5AQCAtMzksNiArMzksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgcnRtX25oX3BvbGljeV9uZXdbXSA9IHtcXG4gXFx0W05IQV9FTkNBUF9UWVBFXVxcdD0geyAudHlwZSA9IE5MQV9VMTYgfSxcXG4gXFx0W05IQV9FTkNBUF1cXHRcXHQ9IHsgLnR5cGUgPSBOTEFfTkVTVEVEIH0sXFxuIFxcdFtOSEFfRkRCXVxcdFxcdD0geyAudHlwZSA9IE5MQV9GTEFHIH0sXFxuK1xcdFtOSEFfRkRCX1BPUlRdXFx0XFx0PSBOTEFfUE9MSUNZX01JTihOTEFfQkUxNiwgMSksXFxuIFxcdFtOSEFfUkVTX0dST1VQXVxcdFxcdD0geyAudHlwZSA9IE5MQV9ORVNURUQgfSxcXG4gXFx0W05IQV9IV19TVEFUU19FTkFCTEVdXFx0PSBOTEFfUE9MSUNZX01BWChOTEFfVTMyLCB0cnVlKSxcXG4gfTtcXG5AQCAtOTU2LDYgKzk1Nyw5IEBAIHN0YXRpYyBpbnQgbmhfZmlsbF9ub2RlKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXh0aG9wICpuaCxcXG4gXFx0fSBlbHNlIGlmIChuaGktXFx1MDAzZWZkYl9uaCkge1xcbiBcXHRcXHRpZiAobmxhX3B1dF9mbGFnKHNrYiwgTkhBX0ZEQikpXFxuIFxcdFxcdFxcdGdvdG8gbmxhX3B1dF9mYWlsdXJlO1xcbitcXHRcXHRpZiAobmhpLVxcdTAwM2VmZGJfcG9ydCBcXHUwMDI2XFx1MDAyNlxcbitcXHRcXHQgICAgbmxhX3B1dF9iZTE2KHNrYiwgTkhBX0ZEQl9QT1JULCBuaGktXFx1MDAzZWZkYl9wb3J0KSlcXG4rXFx0XFx0XFx0Z290byBubGFfcHV0X2ZhaWx1cmU7XFxuIFxcdH0gZWxzZSB7XFxuIFxcdFxcdGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXY7XFxuIFxcbkBAIC0xMDU1LDYgKzEwNTksOSBAQCBzdGF0aWMgc2l6ZV90IG5oX25sbXNnX3NpemVfc2luZ2xlKHN0cnVjdCBuZXh0aG9wICpuaClcXG4gXFx0XFx0YnJlYWs7XFxuIFxcdH1cXG4gXFxuK1xcdGlmIChuaGktXFx1MDAzZWZkYl9wb3J0KVxcbitcXHRcXHRzeiArPSBubGFfdG90YWxfc2l6ZSgyKTtcXHQvKiBOSEFfRkRCX1BPUlQgKi9cXG4rXFxuIFxcdGlmIChuaGktXFx1MDAzZWZpYl9uaGMubmhjX2x3dHN0YXRlKSB7XFxuIFxcdFxcdHN6ICs9IGx3dHVubmVsX2dldF9lbmNhcF9zaXplKG5oaS1cXHUwMDNlZmliX25oYy5uaGNfbHd0c3RhdGUpO1xcbiBcXHRcXHRzeiArPSBubGFfdG90YWxfc2l6ZSgyKTsgIC8qIE5IQV9FTkNBUF9UWVBFICovXFxuQEAgLTI5NTYsOCArMjk2MywxMCBAQCBzdGF0aWMgc3RydWN0IG5leHRob3AgKm5leHRob3BfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5oX2NvbmZpZyAqY2ZnLFxcbiBcXHRuaGktXFx1MDAzZWZhbWlseSA9IGNmZy1cXHUwMDNlbmhfZmFtaWx5O1xcbiBcXHRuaGktXFx1MDAzZWZpYl9uaGMubmhjX3Njb3BlID0gUlRfU0NPUEVfTElOSztcXG4gXFxuLVxcdGlmIChjZmctXFx1MDAzZW5oX2ZkYilcXG4rXFx0aWYgKGNmZy1cXHUwMDNlbmhfZmRiKSB7XFxuIFxcdFxcdG5oaS1cXHUwMDNlZmRiX25oID0gMTtcXG4rXFx0XFx0bmhpLVxcdTAwM2VmZGJfcG9ydCA9IGNmZy1cXHUwMDNlbmhfZmRiX3BvcnQ7XFxuK1xcdH1cXG4gXFxuIFxcdGlmIChjZmctXFx1MDAzZW5oX2JsYWNraG9sZSkge1xcbiBcXHRcXHRuaGktXFx1MDAzZXJlamVjdF9uaCA9IDE7XFxuQEAgLTMxNDcsNiArMzE1NiwxNSBAQCBzdGF0aWMgaW50IHJ0bV90b19uaF9jb25maWcoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiBcXHRcXHRjZmctXFx1MDAzZW5oX2ZkYiA9IG5sYV9nZXRfZmxhZyh0YltOSEFfRkRCXSk7XFxuIFxcdH1cXG4gXFxuK1xcdGlmICh0YltOSEFfRkRCX1BPUlRdKSB7XFxuK1xcdFxcdGlmICghdGJbTkhBX0ZEQl0gfHwgIXRiW05IQV9HQVRFV0FZXSkge1xcbitcXHRcXHRcXHROTF9TRVRfRVJSX01TRyhleHRhY2ssXFxuK1xcdFxcdFxcdFxcdCAgICAgICBcXFwiRkRCIHBvcnQgY2FuIG9ubHkgYmUgc2V0IG9uIGZkYiBuZXh0aG9wcyB0aGF0IGhhdmUgYSBnYXRld2F5XFxcIik7XFxuK1xcdFxcdFxcdGdvdG8gb3V0O1xcbitcXHRcXHR9XFxuK1xcdFxcdGNmZy1cXHUwMDNlbmhfZmRiX3BvcnQgPSBubGFfZ2V0X2JlMTYodGJbTkhBX0ZEQl9QT1JUXSk7XFxuK1xcdH1cXG4rXFxuIFxcdGlmICh0YltOSEFfR1JPVVBdKSB7XFxuIFxcdFxcdGlmIChuaG0tXFx1MDAzZW5oX2ZhbWlseSAhPSBBRl9VTlNQRUMpIHtcXG4gXFx0XFx0XFx0TkxfU0VUX0VSUl9NU0coZXh0YWNrLCBcXFwiSW52YWxpZCBmYW1pbHkgZm9yIGdyb3VwXFxcIik7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9maWJfbmV4dGhvcHMuc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvZmliX25leHRob3BzLnNoXFxuaW5kZXggYWM4NjhhNzMxNjk0NmEuLjFjZTRmNDVmYTY1MTVmIDEwMDc1NVxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9maWJfbmV4dGhvcHMuc2hcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvZmliX25leHRob3BzLnNoXFxuQEAgLTQzMiw2ICs0MzIsMTUgQEAgY2hlY2tfbmV4dGhvcF9mZGJfc3VwcG9ydCgpXFxuIFxcdGZpXFxuIH1cXG4gXFxuK2NoZWNrX25leHRob3BfZmRiX3BvcnRfc3VwcG9ydCgpXFxuK3tcXG4rXFx0JElQIG5leHRob3AgaGVscCAyXFx1MDAzZVxcdTAwMjYxIHwgZ3JlcCAtcSBcXFwiZmRiIFxcXFxbIHBvcnRcXFwiXFxuK1xcdGlmIFsgJD8gLW5lIDAgXTsgdGhlblxcbitcXHRcXHRlY2hvIFxcXCJTS0lQOiBpcHJvdXRlMiB0b28gb2xkLCBtaXNzaW5nIGZkYiBuZXh0aG9wIHBvcnQgc3VwcG9ydFxcXCJcXG4rXFx0XFx0cmV0dXJuICRrc2Z0X3NraXBcXG4rXFx0ZmlcXG4rfVxcbitcXG4gY2hlY2tfbmV4dGhvcF9yZXNfc3VwcG9ydCgpXFxuIHtcXG4gXFx0JElQIG5leHRob3AgaGVscCAyXFx1MDAzZVxcdTAwMjYxIHwgZ3JlcCAtcSByZXNpbGllbnRcXG5AQCAtNTE0LDYgKzUyMywzMSBAQCBpcHY2X2ZkYl9ncnBfZmNuYWwoKVxcbiBcXHRydW5fY21kIFxcXCIkSVAgbmV4dGhvcCByZXBsYWNlIGlkIDcyIHZpYSAyMDAxOmRiODo5MTo6MiBmZGJcXFwiXFxuIFxcdGxvZ190ZXN0ICQ/IDIgXFxcIlJlcGxhY2Ugbm9uLUZEQiBuZXh0aG9wIHRvIEZEQiBuZXh0aG9wIHdoaWxlIGluIGEgZ3JvdXBcXFwiXFxuIFxcbitcXHQjIE5IQV9GREJfUE9SVDogb3B0aW9uYWwgcGVyLW5leHRob3AgVlhMQU4gZGVzdGluYXRpb24gVURQIHBvcnQsXFxuK1xcdCMgbGV0dGluZyBhbiBmZGIgbmV4dGhvcCBncm91cCBiYWxhbmNlIGEgZmxvdyBhY3Jvc3MgbGVncyB0aGF0IHNoYXJlXFxuK1xcdCMgYW4gdW5kZXJsYXkgSVAgYnV0IGxpc3RlbiBvbiBkaWZmZXJlbnQgVURQIHBvcnRzLlxcbitcXHRpZiBjaGVja19uZXh0aG9wX2ZkYl9wb3J0X3N1cHBvcnQ7IHRoZW5cXG4rXFx0XFx0cnVuX2NtZCBcXFwiJElQIG5leHRob3AgYWRkIGlkIDgwIHZpYSAyMDAxOmRiODo5MTo6MiBmZGIgcG9ydCA0NzkwXFxcIlxcbitcXHRcXHRjaGVja19uZXh0aG9wIFxcXCJpZCA4MFxcXCIgXFxcImlkIDgwIHZpYSAyMDAxOmRiODo5MTo6MiBzY29wZSBsaW5rIGZkYiBwb3J0IDQ3OTBcXFwiXFxuK1xcdFxcdGxvZ190ZXN0ICQ/IDAgXFxcIkZkYiBuZXh0aG9wIHdpdGggcG9ydFxcXCJcXG4rXFxuK1xcdFxcdHJ1bl9jbWQgXFxcIiRJUCBuZXh0aG9wIGFkZCBpZCA4MSBmZGIgcG9ydCA0NzkwXFxcIlxcbitcXHRcXHRsb2dfdGVzdCAkPyAyIFxcXCJGZGIgbmV4dGhvcCB3aXRoIHBvcnQgYnV0IG5vIGdhdGV3YXlcXFwiXFxuK1xcbitcXHRcXHRydW5fY21kIFxcXCIkSVAgbmV4dGhvcCBhZGQgaWQgODEgdmlhIDIwMDE6ZGI4OjkxOjoyIGZkYiBwb3J0IDBcXFwiXFxuK1xcdFxcdGxvZ190ZXN0ICQ/IDIgXFxcIkZkYiBuZXh0aG9wIHdpdGggcG9ydCAwXFxcIlxcbitcXG4rXFx0XFx0cnVuX2NtZCBcXFwiJElQIG5leHRob3AgYWRkIGlkIDgyIHZpYSAyMDAxOmRiODo5MTo6MiBmZGIgcG9ydCA0Nzg5XFxcIlxcbitcXHRcXHRydW5fY21kIFxcXCIkSVAgbmV4dGhvcCBhZGQgaWQgODMgdmlhIDIwMDE6ZGI4OjkxOjozIGZkYiBwb3J0IDU3ODlcXFwiXFxuK1xcdFxcdHJ1bl9jbWQgXFxcIiRJUCBuZXh0aG9wIGFkZCBpZCAxMDYgZ3JvdXAgODIvODMgZmRiXFxcIlxcbitcXHRcXHRjaGVja19uZXh0aG9wIFxcXCJpZCAxMDZcXFwiIFxcXCJpZCAxMDYgZ3JvdXAgODIvODMgZmRiXFxcIlxcbitcXHRcXHRsb2dfdGVzdCAkPyAwIFxcXCJGZGIgbmV4dGhvcCBncm91cCB3aXRoIGxlZ3MgZGlmZmVyaW5nIGluIHBvcnRcXFwiXFxuK1xcbitcXHRcXHRydW5fY21kIFxcXCIkSVAgbmV4dGhvcCBhZGQgaWQgODQgdmlhIDIwMDE6ZGI4OjkxOjoyIGZkYlxcXCJcXG4rXFx0XFx0Y2hlY2tfbmV4dGhvcCBcXFwiaWQgODRcXFwiIFxcXCJpZCA4NCB2aWEgMjAwMTpkYjg6OTE6OjIgc2NvcGUgbGluayBmZGJcXFwiXFxuK1xcdFxcdGxvZ190ZXN0ICQ/IDAgXFxcIkZkYiBuZXh0aG9wIHdpdGhvdXQgcG9ydCBvbWl0cyBwb3J0XFxcIlxcbitcXHRmaVxcbitcXG4gXFx0cnVuX2NtZCBcXFwiJElQIGxpbmsgYWRkIG5hbWUgdngxMCB0eXBlIHZ4bGFuIGlkIDEwMTAgbG9jYWwgMjAwMTpkYjg6OTE6OjkgcmVtb3RlIDIwMDE6ZGI4OjkxOjoxMCBkc3Rwb3J0IDQ3ODkgbm9sZWFybmluZyBub3VkcGNzdW0gdG9zIGluaGVyaXQgdHRsIDEwMFxcXCJcXG4gXFx0cnVuX2NtZCBcXFwiJEJSSURHRSBmZGIgYWRkIDAyOjAyOjAwOjAwOjAwOjEzIGRldiB2eDEwIG5oaWQgMTAyIHNlbGZcXFwiXFxuIFxcdGxvZ190ZXN0ICQ/IDAgXFxcIkZkYiBtYWMgYWRkIHdpdGggbmV4dGhvcCBncm91cFxcXCJcXG5AQCAtNjE0LDYgKzY0OCwzMSBAQCBpcHY0X2ZkYl9ncnBfZmNuYWwoKVxcbiBcXHRydW5fY21kIFxcXCIkSVAgbmV4dGhvcCByZXBsYWNlIGlkIDIwIHZpYSAxNzIuMTYuMS4yIGZkYlxcXCJcXG4gXFx0bG9nX3Rlc3QgJD8gMiBcXFwiUmVwbGFjZSBub24tRkRCIG5leHRob3AgdG8gRkRCIG5leHRob3Agd2hpbGUgaW4gYSBncm91cFxcXCJcXG4gXFxuK1xcdCMgTkhBX0ZEQl9QT1JUOiBvcHRpb25hbCBwZXItbmV4dGhvcCBWWExBTiBkZXN0aW5hdGlvbiBVRFAgcG9ydCxcXG4rXFx0IyBsZXR0aW5nIGFuIGZkYiBuZXh0aG9wIGdyb3VwIGJhbGFuY2UgYSBmbG93IGFjcm9zcyBsZWdzIHRoYXQgc2hhcmVcXG4rXFx0IyBhbiB1bmRlcmxheSBJUCBidXQgbGlzdGVuIG9uIGRpZmZlcmVudCBVRFAgcG9ydHMuXFxuK1xcdGlmIGNoZWNrX25leHRob3BfZmRiX3BvcnRfc3VwcG9ydDsgdGhlblxcbitcXHRcXHRydW5fY21kIFxcXCIkSVAgbmV4dGhvcCBhZGQgaWQgMzAgdmlhIDE3Mi4xNi4xLjIgZmRiIHBvcnQgNDc5MFxcXCJcXG4rXFx0XFx0Y2hlY2tfbmV4dGhvcCBcXFwiaWQgMzBcXFwiIFxcXCJpZCAzMCB2aWEgMTcyLjE2LjEuMiBzY29wZSBsaW5rIGZkYiBwb3J0IDQ3OTBcXFwiXFxuK1xcdFxcdGxvZ190ZXN0ICQ/IDAgXFxcIkZkYiBuZXh0aG9wIHdpdGggcG9ydFxcXCJcXG4rXFxuK1xcdFxcdHJ1bl9jbWQgXFxcIiRJUCBuZXh0aG9wIGFkZCBpZCAzMSBmZGIgcG9ydCA0NzkwXFxcIlxcbitcXHRcXHRsb2dfdGVzdCAkPyAyIFxcXCJGZGIgbmV4dGhvcCB3aXRoIHBvcnQgYnV0IG5vIGdhdGV3YXlcXFwiXFxuK1xcbitcXHRcXHRydW5fY21kIFxcXCIkSVAgbmV4dGhvcCBhZGQgaWQgMzEgdmlhIDE3Mi4xNi4xLjIgZmRiIHBvcnQgMFxcXCJcXG4rXFx0XFx0bG9nX3Rlc3QgJD8gMiBcXFwiRmRiIG5leHRob3Agd2l0aCBwb3J0IDBcXFwiXFxuK1xcbitcXHRcXHRydW5fY21kIFxcXCIkSVAgbmV4dGhvcCBhZGQgaWQgMzIgdmlhIDE3Mi4xNi4xLjIgZmRiIHBvcnQgNDc4OVxcXCJcXG4rXFx0XFx0cnVuX2NtZCBcXFwiJElQIG5leHRob3AgYWRkIGlkIDMzIHZpYSAxNzIuMTYuMS4zIGZkYiBwb3J0IDU3ODlcXFwiXFxuK1xcdFxcdHJ1bl9jbWQgXFxcIiRJUCBuZXh0aG9wIGFkZCBpZCAxMDUgZ3JvdXAgMzIvMzMgZmRiXFxcIlxcbitcXHRcXHRjaGVja19uZXh0aG9wIFxcXCJpZCAxMDVcXFwiIFxcXCJpZCAxMDUgZ3JvdXAgMzIvMzMgZmRiXFxcIlxcbitcXHRcXHRsb2dfdGVzdCAkPyAwIFxcXCJGZGIgbmV4dGhvcCBncm91cCB3aXRoIGxlZ3MgZGlmZmVyaW5nIGluIHBvcnRcXFwiXFxuK1xcbitcXHRcXHRydW5fY21kIFxcXCIkSVAgbmV4dGhvcCBhZGQgaWQgMzQgdmlhIDE3Mi4xNi4xLjIgZmRiXFxcIlxcbitcXHRcXHRjaGVja19uZXh0aG9wIFxcXCJpZCAzNFxcXCIgXFxcImlkIDM0IHZpYSAxNzIuMTYuMS4yIHNjb3BlIGxpbmsgZmRiXFxcIlxcbitcXHRcXHRsb2dfdGVzdCAkPyAwIFxcXCJGZGIgbmV4dGhvcCB3aXRob3V0IHBvcnQgb21pdHMgcG9ydFxcXCJcXG4rXFx0ZmlcXG4rXFxuIFxcdHJ1bl9jbWQgXFxcIiRJUCBsaW5rIGFkZCBuYW1lIHZ4MTAgdHlwZSB2eGxhbiBpZCAxMDEwIGxvY2FsIDEwLjAuMC4xIHJlbW90ZSAxMC4wLjAuMiBkc3Rwb3J0IDQ3ODkgbm9sZWFybmluZyBub3VkcGNzdW0gdG9zIGluaGVyaXQgdHRsIDEwMFxcXCJcXG4gXFx0cnVuX2NtZCBcXFwiJEJSSURHRSBmZGIgYWRkIDAyOjAyOjAwOjAwOjAwOjEzIGRldiB2eDEwIG5oaWQgMTAyIHNlbGZcXFwiXFxuIFxcdGxvZ190ZXN0ICQ/IDAgXFxcIkZkYiBtYWMgYWRkIHdpdGggbmV4dGhvcCBncm91cFxcXCJcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rlc3RfdnhsYW5fbmguc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGVzdF92eGxhbl9uaC5zaFxcbmluZGV4IDIwZjMzNjlmNzc2YjE1Li4zNGEyNGE0Zjk1YmY3YiAxMDA3NTVcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGVzdF92eGxhbl9uaC5zaFxcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90ZXN0X3Z4bGFuX25oLnNoXFxuQEAgLTU2LDYgKzU2LDE2IEBAIHRjX3N0YXRzX2dldCgpXFxuIFxcdHRjX3J1bGVfaGFuZGxlX3N0YXRzX2dldCBcXFwiZGV2IGR1bW15MSBlZ3Jlc3NcXFwiIDEwMSBcXFwiLnBhY2tldHNcXFwiIFxcXCItbiAkbnMxXFxcIlxcbiB9XFxuIFxcbituaF9zdGF0c19nZXRfcG9ydCgpXFxuK3tcXG4rXFx0aXAgLW4gXFxcIiRuczFcXFwiIC1zIC1qIG5leHRob3Agc2hvdyBpZCAyMCB8IGpxIFxcXCIuW11bXFxcXFxcXCJncm91cF9zdGF0c1xcXFxcXFwiXVtdW1xcXFxcXFwicGFja2V0c1xcXFxcXFwiXVxcXCJcXG4rfVxcbitcXG4rdGNfc3RhdHNfZ2V0X3BvcnQoKVxcbit7XFxuK1xcdHRjX3J1bGVfaGFuZGxlX3N0YXRzX2dldCBcXFwiZGV2IGR1bW15MSBlZ3Jlc3NcXFwiIDEwMiBcXFwiLnBhY2tldHNcXFwiIFxcXCItbiAkbnMxXFxcIlxcbit9XFxuK1xcbiBiYXNpY190eF9jb21tb24oKVxcbiB7XFxuIFxcdGxvY2FsIGFmX3N0cj0kMTsgc2hpZnRcXG5AQCAtOTAsNiArMTAwLDI3IEBAIGJhc2ljX3R4X2NvbW1vbigpXFxuIFxcdGJ1c3l3YWl0IFxcXCIkQlVTWVdBSVRfVElNRU9VVFxcXCIgdW50aWxfY291bnRlcl9pcyBcXFwiPT0gMVxcXCIgdGNfc3RhdHNfZ2V0IFxcdTAwM2UgL2Rldi9udWxsXFxuIFxcdGNoZWNrX2VyciAkPyBcXFwidGMgZmlsdGVyIHN0YXRzIGRpZCBub3QgaW5jcmVhc2VcXFwiXFxuIFxcbitcXHQjIEFkZCBhIHNlY29uZCBGREIgbmV4dGhvcCBncm91cCB3aG9zZSBuZXh0aG9wIGNhcnJpZXMgYSBwZXItbmV4dGhvcFxcbitcXHQjIGRlc3RpbmF0aW9uIHBvcnQgKE5IQV9GREJfUE9SVCkgdGhhdCBkaWZmZXJzIGZyb20gdGhlIFZYTEFOIGRldmljZVxcbitcXHQjIGRlZmF1bHQuIE1hdGNoaW5nIG91dGVyIHRyYWZmaWMgbXVzdCBlZ3Jlc3Mgd2l0aCB0aGF0IHBvcnQsIHNvIGFcXG4rXFx0IyBzZXBhcmF0ZSBmbG93ZXIgZmlsdGVyIGtleWVkIG9uIHRoZSBuZXcgcG9ydCBjYXRjaGVzIGl0LlxcbitcXHRpZiBpcCBuZXh0aG9wIGhlbHAgMlxcdTAwM2VcXHUwMDI2MSB8IGdyZXAgLXEgXFxcImZkYiBcXFxcWyBwb3J0XFxcIjsgdGhlblxcbitcXHRcXHRydW5fY21kIFxcXCJ0YyAtbiAkbnMxIGZpbHRlciBhZGQgZGV2IGR1bW15MSBlZ3Jlc3MgcHJvdG8gJHByb3RvIHByZWYgMSBoYW5kbGUgMTAyIGZsb3dlciBpcF9wcm90byB1ZHAgZHN0X2lwICRyZW1vdGVfYWRkciBkc3RfcG9ydCA0NzkwIGFjdGlvbiBwYXNzXFxcIlxcbitcXG4rXFx0XFx0cnVuX2NtZCBcXFwiaXAgLW4gJG5zMSBuZXh0aG9wIGFkZCBpZCAyIHZpYSAkcmVtb3RlX2FkZHIgZmRiIHBvcnQgNDc5MFxcXCJcXG4rXFx0XFx0cnVuX2NtZCBcXFwiaXAgLW4gJG5zMSBuZXh0aG9wIGFkZCBpZCAyMCBncm91cCAyIGZkYlxcXCJcXG4rXFxuK1xcdFxcdHJ1bl9jbWQgXFxcImJyaWRnZSAtbiAkbnMxIGZkYiBhZGQgMDA6MTE6MjI6MzM6NDQ6NjYgZGV2IHZ4MCBzZWxmIHN0YXRpYyBuaGlkIDIwXFxcIlxcbitcXG4rXFx0XFx0cnVuX2NtZCBcXFwiaXAgbmV0bnMgZXhlYyAkbnMxIG1hdXNlemFobiB2eDAgLWEgb3duIC1iIDAwOjExOjIyOjMzOjQ0OjY2IC1jIDEgLXFcXFwiXFxuK1xcbitcXHRcXHRidXN5d2FpdCBcXFwiJEJVU1lXQUlUX1RJTUVPVVRcXFwiIHVudGlsX2NvdW50ZXJfaXMgXFxcIj09IDFcXFwiIG5oX3N0YXRzX2dldF9wb3J0IFxcdTAwM2UgL2Rldi9udWxsXFxuK1xcdFxcdGNoZWNrX2VyciAkPyBcXFwiRkRCIG5leHRob3AgZ3JvdXAgc3RhdHMgZGlkIG5vdCBpbmNyZWFzZSAod2l0aCBwb3J0KVxcXCJcXG4rXFxuK1xcdFxcdGJ1c3l3YWl0IFxcXCIkQlVTWVdBSVRfVElNRU9VVFxcXCIgdW50aWxfY291bnRlcl9pcyBcXFwiPT0gMVxcXCIgdGNfc3RhdHNfZ2V0X3BvcnQgXFx1MDAzZSAvZGV2L251bGxcXG4rXFx0XFx0Y2hlY2tfZXJyICQ/IFxcXCJ0YyBmaWx0ZXIgc3RhdHMgZGlkIG5vdCBpbmNyZWFzZSAod2l0aCBwb3J0KVxcXCJcXG4rXFx0ZmlcXG4rXFxuIFxcdGxvZ190ZXN0IFxcXCJWWExBTiBGREIgbmV4dGhvcDogJGFmX3N0ciBiYXNpYyBUeFxcXCJcXG4gfVxcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTY6MTY6MzkuOTE0ODc1NjI2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MzAzMzA5MjM0MjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVlhMQU5cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydG1fdG9fbmhfY29uZmlnXCIsXG4gICAgXCJuZXh0aG9wX2NyZWF0ZVwiLFxuICAgIFwibmhfZmlsbF9ub2RlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBuZXRsaW5rIGF0dHJpYnV0ZSBOSEFfRkRCX1BPUlQgdG8gc3BlY2lmeSBhIFVEUCBkZXN0aW5hdGlvbiBwb3J0IGZvciBGREIgbmV4dGhvcHMgKGUuZy4sIFZYTEFOKS4gSXQgbW9kaWZpZXMgdGhlIG5leHRob3AgbmV0bGluayBjb250cm9sIHBhdGggYW5kIFZYTEFOIGRhdGFwYXRoLiBUaGUgbmV0bGluayBjb250cm9sIHBhdGggZnVuY3Rpb25zIGFyZSBnb29kIHRhcmdldHMgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgODUzYzMyNDY1ZThkN2RjNjI2MzE1MmE4YWYzNDUwYzU4YjJmMDEwMlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDE2OjE2OjM2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbmV4dGhvcC5oIGIvaW5jbHVkZS9uZXQvbmV4dGhvcC5oXG5pbmRleCA1NzJlNjljZGE0NzY2ZC4uMTllODY3MGQ5NjRkOWQgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL25ldC9uZXh0aG9wLmhcbisrKyBiL2luY2x1ZGUvbmV0L25leHRob3AuaFxuQEAgLTI4LDYgKzI4LDcgQEAgc3RydWN0IG5oX2NvbmZpZyB7XG4gXHR1OFx0XHRuaF9wcm90b2NvbDtcbiBcdHU4XHRcdG5oX2JsYWNraG9sZTtcbiBcdHU4XHRcdG5oX2ZkYjtcbitcdF9fYmUxNlx0XHRuaF9mZGJfcG9ydDtcbiBcdHUzMlx0XHRuaF9mbGFncztcbiBcbiBcdGludFx0XHRuaF9pZmluZGV4O1xuQEAgLTYzLDYgKzY0LDcgQEAgc3RydWN0IG5oX2luZm8ge1xuIFx0dThcdFx0XHRmYW1pbHk7XG4gXHRib29sXHRcdFx0cmVqZWN0X25oO1xuIFx0Ym9vbFx0XHRcdGZkYl9uaDtcbitcdF9fYmUxNlx0XHRcdGZkYl9wb3J0O1xuIFxuIFx0dW5pb24ge1xuIFx0XHRzdHJ1Y3QgZmliX25oX2NvbW1vblx0ZmliX25oYztcbkBAIC01NzQsNyArNTc2LDggQEAgc3RydWN0IGZpYl9uaF9jb21tb24gKm5leHRob3BfZmRiX25oYyhzdHJ1Y3QgbmV4dGhvcCAqbmgpXG4gfVxuIFxuIHN0YXRpYyBpbmxpbmUgc3RydWN0IGZpYl9uaF9jb21tb24gKm5leHRob3BfcGF0aF9mZGJfcmVzdWx0KHN0cnVjdCBuZXh0aG9wICpuaCxcbi1cdFx0XHRcdFx0XHRcdCAgICBpbnQgaGFzaClcbitcdFx0XHRcdFx0XHRcdCAgICBpbnQgaGFzaCxcbitcdFx0XHRcdFx0XHRcdCAgICBfX2JlMTYgKmZkYl9wb3J0KVxuIHtcbiBcdHN0cnVjdCBuaF9pbmZvICpuaGk7XG4gXHRzdHJ1Y3QgbmV4dGhvcCAqbmhwO1xuQEAgLTU4Myw2ICs1ODYsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBmaWJfbmhfY29tbW9uICpuZXh0aG9wX3BhdGhfZmRiX3Jlc3VsdChzdHJ1Y3QgbmV4dGhvcCAqbmgsXG4gXHRpZiAodW5saWtlbHkoIW5ocCkpXG4gXHRcdHJldHVybiBOVUxMO1xuIFx0bmhpID0gcmN1X2RlcmVmZXJlbmNlKG5ocC1cdTAwM2VuaF9pbmZvKTtcbitcdCpmZGJfcG9ydCA9IG5oaS1cdTAwM2VmZGJfcG9ydDtcbiBcdHJldHVybiBcdTAwMjZuaGktXHUwMDNlZmliX25oYztcbiB9XG4gI2VuZGlmXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdnhsYW4uaCBiL2luY2x1ZGUvbmV0L3Z4bGFuLmhcbmluZGV4IGRmYmE4OTY5NWVmY2ZhLi5kZTQxYjM3NDY4OGYyOSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbmV0L3Z4bGFuLmhcbisrKyBiL2luY2x1ZGUvbmV0L3Z4bGFuLmhcbkBAIC01NjcsOCArNTY3LDkgQEAgc3RhdGljIGlubGluZSBib29sIHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdChzdHJ1Y3QgbmV4dGhvcCAqbmgsXG4gXHRcdFx0XHRcdCAgICBzdHJ1Y3QgdnhsYW5fcmRzdCAqcmRzdClcbiB7XG4gXHRzdHJ1Y3QgZmliX25oX2NvbW1vbiAqbmhjO1xuK1x0X19iZTE2IGZkYl9wb3J0ID0gMDtcbiBcbi1cdG5oYyA9IG5leHRob3BfcGF0aF9mZGJfcmVzdWx0KG5oLCBoYXNoIFx1MDAzZVx1MDAzZSAxKTtcbitcdG5oYyA9IG5leHRob3BfcGF0aF9mZGJfcmVzdWx0KG5oLCBoYXNoIFx1MDAzZVx1MDAzZSAxLCBcdTAwMjZmZGJfcG9ydCk7XG4gXHRpZiAodW5saWtlbHkoIW5oYykpXG4gXHRcdHJldHVybiBmYWxzZTtcbiBcbkBAIC01ODMsNiArNTg0LDggQEAgc3RhdGljIGlubGluZSBib29sIHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdChzdHJ1Y3QgbmV4dGhvcCAqbmgsXG4gXHRcdGJyZWFrO1xuIFx0fVxuIFxuK1x0cmRzdC1cdTAwM2VyZW1vdGVfcG9ydCA9IGZkYl9wb3J0O1xuK1xuIFx0cmV0dXJuIHRydWU7XG4gfVxuIFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXh0aG9wLmggYi9pbmNsdWRlL3VhcGkvbGludXgvbmV4dGhvcC5oXG5pbmRleCBiYzQ5YmFmNGEyNjdmMC4uZTU4N2JiZjNiODkwYTMgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvbmV4dGhvcC5oXG4rKysgYi9pbmNsdWRlL3VhcGkvbGludXgvbmV4dGhvcC5oXG5AQCAtODMsNiArODMsOSBAQCBlbnVtIHtcbiBcdC8qIHUzMjsgcmVhZC1vbmx5OyB3aGV0aGVyIGFueSBkcml2ZXIgY29sbGVjdHMgSFcgc3RhdHMgKi9cbiBcdE5IQV9IV19TVEFUU19VU0VELFxuIFxuK1x0LyogYmUxNjsgVURQIGRlc3RpbmF0aW9uIHBvcnQgZm9yIGFuIGZkYiBuZXh0aG9wIChlLmcuIFZYTEFOKSAqL1xuK1x0TkhBX0ZEQl9QT1JULFxuK1xuIFx0X19OSEFfTUFYLFxuIH07XG4gXG5kaWZmIC0tZ2l0IGEvbmV0L2lwdjQvbmV4dGhvcC5jIGIvbmV0L2lwdjQvbmV4dGhvcC5jXG5pbmRleCA2MjA1YmQ1N2FhODUyMC4uYjgyZGEzZWZmNjNjOTEgMTAwNjQ0XG4tLS0gYS9uZXQvaXB2NC9uZXh0aG9wLmNcbisrKyBiL25ldC9pcHY0L25leHRob3AuY1xuQEAgLTM5LDYgKzM5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IHJ0bV9uaF9wb2xpY3lfbmV3W10gPSB7XG4gXHRbTkhBX0VOQ0FQX1RZUEVdXHQ9IHsgLnR5cGUgPSBOTEFfVTE2IH0sXG4gXHRbTkhBX0VOQ0FQXVx0XHQ9IHsgLnR5cGUgPSBOTEFfTkVTVEVEIH0sXG4gXHRbTkhBX0ZEQl1cdFx0PSB7IC50eXBlID0gTkxBX0ZMQUcgfSxcbitcdFtOSEFfRkRCX1BPUlRdXHRcdD0gTkxBX1BPTElDWV9NSU4oTkxBX0JFMTYsIDEpLFxuIFx0W05IQV9SRVNfR1JPVVBdXHRcdD0geyAudHlwZSA9IE5MQV9ORVNURUQgfSxcbiBcdFtOSEFfSFdfU1RBVFNfRU5BQkxFXVx0PSBOTEFfUE9MSUNZX01BWChOTEFfVTMyLCB0cnVlKSxcbiB9O1xuQEAgLTk1Niw2ICs5NTcsOSBAQCBzdGF0aWMgaW50IG5oX2ZpbGxfbm9kZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV4dGhvcCAqbmgsXG4gXHR9IGVsc2UgaWYgKG5oaS1cdTAwM2VmZGJfbmgpIHtcbiBcdFx0aWYgKG5sYV9wdXRfZmxhZyhza2IsIE5IQV9GREIpKVxuIFx0XHRcdGdvdG8gbmxhX3B1dF9mYWlsdXJlO1xuK1x0XHRpZiAobmhpLVx1MDAzZWZkYl9wb3J0IFx1MDAyNlx1MDAyNlxuK1x0XHQgICAgbmxhX3B1dF9iZTE2KHNrYiwgTkhBX0ZEQl9QT1JULCBuaGktXHUwMDNlZmRiX3BvcnQpKVxuK1x0XHRcdGdvdG8gbmxhX3B1dF9mYWlsdXJlO1xuIFx0fSBlbHNlIHtcbiBcdFx0Y29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldjtcbiBcbkBAIC0xMDU1LDYgKzEwNTksOSBAQCBzdGF0aWMgc2l6ZV90IG5oX25sbXNnX3NpemVfc2luZ2xlKHN0cnVjdCBuZXh0aG9wICpuaClcbiBcdFx0YnJlYWs7XG4gXHR9XG4gXG4rXHRpZiAobmhpLVx1MDAzZWZkYl9wb3J0KVxuK1x0XHRzeiArPSBubGFfdG90YWxfc2l6ZSgyKTtcdC8qIE5IQV9GREJfUE9SVCAqL1xuK1xuIFx0aWYgKG5oaS1cdTAwM2VmaWJfbmhjLm5oY19sd3RzdGF0ZSkge1xuIFx0XHRzeiArPSBsd3R1bm5lbF9nZXRfZW5jYXBfc2l6ZShuaGktXHUwMDNlZmliX25oYy5uaGNfbHd0c3RhdGUpO1xuIFx0XHRzeiArPSBubGFfdG90YWxfc2l6ZSgyKTsgIC8qIE5IQV9FTkNBUF9UWVBFICovXG5AQCAtMjk1Niw4ICsyOTYzLDEwIEBAIHN0YXRpYyBzdHJ1Y3QgbmV4dGhvcCAqbmV4dGhvcF9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmhfY29uZmlnICpjZmcsXG4gXHRuaGktXHUwMDNlZmFtaWx5ID0gY2ZnLVx1MDAzZW5oX2ZhbWlseTtcbiBcdG5oaS1cdTAwM2VmaWJfbmhjLm5oY19zY29wZSA9IFJUX1NDT1BFX0xJTks7XG4gXG4tXHRpZiAoY2ZnLVx1MDAzZW5oX2ZkYilcbitcdGlmIChjZmctXHUwMDNlbmhfZmRiKSB7XG4gXHRcdG5oaS1cdTAwM2VmZGJfbmggPSAxO1xuK1x0XHRuaGktXHUwMDNlZmRiX3BvcnQgPSBjZmctXHUwMDNlbmhfZmRiX3BvcnQ7XG4rXHR9XG4gXG4gXHRpZiAoY2ZnLVx1MDAzZW5oX2JsYWNraG9sZSkge1xuIFx0XHRuaGktXHUwMDNlcmVqZWN0X25oID0gMTtcbkBAIC0zMTQ3LDYgKzMxNTYsMTUgQEAgc3RhdGljIGludCBydG1fdG9fbmhfY29uZmlnKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdFx0Y2ZnLVx1MDAzZW5oX2ZkYiA9IG5sYV9nZXRfZmxhZyh0YltOSEFfRkRCXSk7XG4gXHR9XG4gXG4rXHRpZiAodGJbTkhBX0ZEQl9QT1JUXSkge1xuK1x0XHRpZiAoIXRiW05IQV9GREJdIHx8ICF0YltOSEFfR0FURVdBWV0pIHtcbitcdFx0XHROTF9TRVRfRVJSX01TRyhleHRhY2ssXG4rXHRcdFx0XHQgICAgICAgXCJGREIgcG9ydCBjYW4gb25seSBiZSBzZXQgb24gZmRiIG5leHRob3BzIHRoYXQgaGF2ZSBhIGdhdGV3YXlcIik7XG4rXHRcdFx0Z290byBvdXQ7XG4rXHRcdH1cbitcdFx0Y2ZnLVx1MDAzZW5oX2ZkYl9wb3J0ID0gbmxhX2dldF9iZTE2KHRiW05IQV9GREJfUE9SVF0pO1xuK1x0fVxuK1xuIFx0aWYgKHRiW05IQV9HUk9VUF0pIHtcbiBcdFx0aWYgKG5obS1cdTAwM2VuaF9mYW1pbHkgIT0gQUZfVU5TUEVDKSB7XG4gXHRcdFx0TkxfU0VUX0VSUl9NU0coZXh0YWNrLCBcIkludmFsaWQgZmFtaWx5IGZvciBncm91cFwiKTtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvZmliX25leHRob3BzLnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2ZpYl9uZXh0aG9wcy5zaFxuaW5kZXggYWM4NjhhNzMxNjk0NmEuLjFjZTRmNDVmYTY1MTVmIDEwMDc1NVxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2ZpYl9uZXh0aG9wcy5zaFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2ZpYl9uZXh0aG9wcy5zaFxuQEAgLTQzMiw2ICs0MzIsMTUgQEAgY2hlY2tfbmV4dGhvcF9mZGJfc3VwcG9ydCgpXG4gXHRmaVxuIH1cbiBcbitjaGVja19uZXh0aG9wX2ZkYl9wb3J0X3N1cHBvcnQoKVxuK3tcbitcdCRJUCBuZXh0aG9wIGhlbHAgMlx1MDAzZVx1MDAyNjEgfCBncmVwIC1xIFwiZmRiIFxcWyBwb3J0XCJcbitcdGlmIFsgJD8gLW5lIDAgXTsgdGhlblxuK1x0XHRlY2hvIFwiU0tJUDogaXByb3V0ZTIgdG9vIG9sZCwgbWlzc2luZyBmZGIgbmV4dGhvcCBwb3J0IHN1cHBvcnRcIlxuK1x0XHRyZXR1cm4gJGtzZnRfc2tpcFxuK1x0Zmlcbit9XG4rXG4gY2hlY2tfbmV4dGhvcF9yZXNfc3VwcG9ydCgpXG4ge1xuIFx0JElQIG5leHRob3AgaGVscCAyXHUwMDNlXHUwMDI2MSB8IGdyZXAgLXEgcmVzaWxpZW50XG5AQCAtNTE0LDYgKzUyMywzMSBAQCBpcHY2X2ZkYl9ncnBfZmNuYWwoKVxuIFx0cnVuX2NtZCBcIiRJUCBuZXh0aG9wIHJlcGxhY2UgaWQgNzIgdmlhIDIwMDE6ZGI4OjkxOjoyIGZkYlwiXG4gXHRsb2dfdGVzdCAkPyAyIFwiUmVwbGFjZSBub24tRkRCIG5leHRob3AgdG8gRkRCIG5leHRob3Agd2hpbGUgaW4gYSBncm91cFwiXG4gXG4rXHQjIE5IQV9GREJfUE9SVDogb3B0aW9uYWwgcGVyLW5leHRob3AgVlhMQU4gZGVzdGluYXRpb24gVURQIHBvcnQsXG4rXHQjIGxldHRpbmcgYW4gZmRiIG5leHRob3AgZ3JvdXAgYmFsYW5jZSBhIGZsb3cgYWNyb3NzIGxlZ3MgdGhhdCBzaGFyZVxuK1x0IyBhbiB1bmRlcmxheSBJUCBidXQgbGlzdGVuIG9uIGRpZmZlcmVudCBVRFAgcG9ydHMuXG4rXHRpZiBjaGVja19uZXh0aG9wX2ZkYl9wb3J0X3N1cHBvcnQ7IHRoZW5cbitcdFx0cnVuX2NtZCBcIiRJUCBuZXh0aG9wIGFkZCBpZCA4MCB2aWEgMjAwMTpkYjg6OTE6OjIgZmRiIHBvcnQgNDc5MFwiXG4rXHRcdGNoZWNrX25leHRob3AgXCJpZCA4MFwiIFwiaWQgODAgdmlhIDIwMDE6ZGI4OjkxOjoyIHNjb3BlIGxpbmsgZmRiIHBvcnQgNDc5MFwiXG4rXHRcdGxvZ190ZXN0ICQ/IDAgXCJGZGIgbmV4dGhvcCB3aXRoIHBvcnRcIlxuK1xuK1x0XHRydW5fY21kIFwiJElQIG5leHRob3AgYWRkIGlkIDgxIGZkYiBwb3J0IDQ3OTBcIlxuK1x0XHRsb2dfdGVzdCAkPyAyIFwiRmRiIG5leHRob3Agd2l0aCBwb3J0IGJ1dCBubyBnYXRld2F5XCJcbitcbitcdFx0cnVuX2NtZCBcIiRJUCBuZXh0aG9wIGFkZCBpZCA4MSB2aWEgMjAwMTpkYjg6OTE6OjIgZmRiIHBvcnQgMFwiXG4rXHRcdGxvZ190ZXN0ICQ/IDIgXCJGZGIgbmV4dGhvcCB3aXRoIHBvcnQgMFwiXG4rXG4rXHRcdHJ1bl9jbWQgXCIkSVAgbmV4dGhvcCBhZGQgaWQgODIgdmlhIDIwMDE6ZGI4OjkxOjoyIGZkYiBwb3J0IDQ3ODlcIlxuK1x0XHRydW5fY21kIFwiJElQIG5leHRob3AgYWRkIGlkIDgzIHZpYSAyMDAxOmRiODo5MTo6MyBmZGIgcG9ydCA1Nzg5XCJcbitcdFx0cnVuX2NtZCBcIiRJUCBuZXh0aG9wIGFkZCBpZCAxMDYgZ3JvdXAgODIvODMgZmRiXCJcbitcdFx0Y2hlY2tfbmV4dGhvcCBcImlkIDEwNlwiIFwiaWQgMTA2IGdyb3VwIDgyLzgzIGZkYlwiXG4rXHRcdGxvZ190ZXN0ICQ/IDAgXCJGZGIgbmV4dGhvcCBncm91cCB3aXRoIGxlZ3MgZGlmZmVyaW5nIGluIHBvcnRcIlxuK1xuK1x0XHRydW5fY21kIFwiJElQIG5leHRob3AgYWRkIGlkIDg0IHZpYSAyMDAxOmRiODo5MTo6MiBmZGJcIlxuK1x0XHRjaGVja19uZXh0aG9wIFwiaWQgODRcIiBcImlkIDg0IHZpYSAyMDAxOmRiODo5MTo6MiBzY29wZSBsaW5rIGZkYlwiXG4rXHRcdGxvZ190ZXN0ICQ/IDAgXCJGZGIgbmV4dGhvcCB3aXRob3V0IHBvcnQgb21pdHMgcG9ydFwiXG4rXHRmaVxuK1xuIFx0cnVuX2NtZCBcIiRJUCBsaW5rIGFkZCBuYW1lIHZ4MTAgdHlwZSB2eGxhbiBpZCAxMDEwIGxvY2FsIDIwMDE6ZGI4OjkxOjo5IHJlbW90ZSAyMDAxOmRiODo5MTo6MTAgZHN0cG9ydCA0Nzg5IG5vbGVhcm5pbmcgbm91ZHBjc3VtIHRvcyBpbmhlcml0IHR0bCAxMDBcIlxuIFx0cnVuX2NtZCBcIiRCUklER0UgZmRiIGFkZCAwMjowMjowMDowMDowMDoxMyBkZXYgdngxMCBuaGlkIDEwMiBzZWxmXCJcbiBcdGxvZ190ZXN0ICQ/IDAgXCJGZGIgbWFjIGFkZCB3aXRoIG5leHRob3AgZ3JvdXBcIlxuQEAgLTYxNCw2ICs2NDgsMzEgQEAgaXB2NF9mZGJfZ3JwX2ZjbmFsKClcbiBcdHJ1bl9jbWQgXCIkSVAgbmV4dGhvcCByZXBsYWNlIGlkIDIwIHZpYSAxNzIuMTYuMS4yIGZkYlwiXG4gXHRsb2dfdGVzdCAkPyAyIFwiUmVwbGFjZSBub24tRkRCIG5leHRob3AgdG8gRkRCIG5leHRob3Agd2hpbGUgaW4gYSBncm91cFwiXG4gXG4rXHQjIE5IQV9GREJfUE9SVDogb3B0aW9uYWwgcGVyLW5leHRob3AgVlhMQU4gZGVzdGluYXRpb24gVURQIHBvcnQsXG4rXHQjIGxldHRpbmcgYW4gZmRiIG5leHRob3AgZ3JvdXAgYmFsYW5jZSBhIGZsb3cgYWNyb3NzIGxlZ3MgdGhhdCBzaGFyZVxuK1x0IyBhbiB1bmRlcmxheSBJUCBidXQgbGlzdGVuIG9uIGRpZmZlcmVudCBVRFAgcG9ydHMuXG4rXHRpZiBjaGVja19uZXh0aG9wX2ZkYl9wb3J0X3N1cHBvcnQ7IHRoZW5cbitcdFx0cnVuX2NtZCBcIiRJUCBuZXh0aG9wIGFkZCBpZCAzMCB2aWEgMTcyLjE2LjEuMiBmZGIgcG9ydCA0NzkwXCJcbitcdFx0Y2hlY2tfbmV4dGhvcCBcImlkIDMwXCIgXCJpZCAzMCB2aWEgMTcyLjE2LjEuMiBzY29wZSBsaW5rIGZkYiBwb3J0IDQ3OTBcIlxuK1x0XHRsb2dfdGVzdCAkPyAwIFwiRmRiIG5leHRob3Agd2l0aCBwb3J0XCJcbitcbitcdFx0cnVuX2NtZCBcIiRJUCBuZXh0aG9wIGFkZCBpZCAzMSBmZGIgcG9ydCA0NzkwXCJcbitcdFx0bG9nX3Rlc3QgJD8gMiBcIkZkYiBuZXh0aG9wIHdpdGggcG9ydCBidXQgbm8gZ2F0ZXdheVwiXG4rXG4rXHRcdHJ1bl9jbWQgXCIkSVAgbmV4dGhvcCBhZGQgaWQgMzEgdmlhIDE3Mi4xNi4xLjIgZmRiIHBvcnQgMFwiXG4rXHRcdGxvZ190ZXN0ICQ/IDIgXCJGZGIgbmV4dGhvcCB3aXRoIHBvcnQgMFwiXG4rXG4rXHRcdHJ1bl9jbWQgXCIkSVAgbmV4dGhvcCBhZGQgaWQgMzIgdmlhIDE3Mi4xNi4xLjIgZmRiIHBvcnQgNDc4OVwiXG4rXHRcdHJ1bl9jbWQgXCIkSVAgbmV4dGhvcCBhZGQgaWQgMzMgdmlhIDE3Mi4xNi4xLjMgZmRiIHBvcnQgNTc4OVwiXG4rXHRcdHJ1bl9jbWQgXCIkSVAgbmV4dGhvcCBhZGQgaWQgMTA1IGdyb3VwIDMyLzMzIGZkYlwiXG4rXHRcdGNoZWNrX25leHRob3AgXCJpZCAxMDVcIiBcImlkIDEwNSBncm91cCAzMi8zMyBmZGJcIlxuK1x0XHRsb2dfdGVzdCAkPyAwIFwiRmRiIG5leHRob3AgZ3JvdXAgd2l0aCBsZWdzIGRpZmZlcmluZyBpbiBwb3J0XCJcbitcbitcdFx0cnVuX2NtZCBcIiRJUCBuZXh0aG9wIGFkZCBpZCAzNCB2aWEgMTcyLjE2LjEuMiBmZGJcIlxuK1x0XHRjaGVja19uZXh0aG9wIFwiaWQgMzRcIiBcImlkIDM0IHZpYSAxNzIuMTYuMS4yIHNjb3BlIGxpbmsgZmRiXCJcbitcdFx0bG9nX3Rlc3QgJD8gMCBcIkZkYiBuZXh0aG9wIHdpdGhvdXQgcG9ydCBvbWl0cyBwb3J0XCJcbitcdGZpXG4rXG4gXHRydW5fY21kIFwiJElQIGxpbmsgYWRkIG5hbWUgdngxMCB0eXBlIHZ4bGFuIGlkIDEwMTAgbG9jYWwgMTAuMC4wLjEgcmVtb3RlIDEwLjAuMC4yIGRzdHBvcnQgNDc4OSBub2xlYXJuaW5nIG5vdWRwY3N1bSB0b3MgaW5oZXJpdCB0dGwgMTAwXCJcbiBcdHJ1bl9jbWQgXCIkQlJJREdFIGZkYiBhZGQgMDI6MDI6MDA6MDA6MDA6MTMgZGV2IHZ4MTAgbmhpZCAxMDIgc2VsZlwiXG4gXHRsb2dfdGVzdCAkPyAwIFwiRmRiIG1hYyBhZGQgd2l0aCBuZXh0aG9wIGdyb3VwXCJcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGVzdF92eGxhbl9uaC5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90ZXN0X3Z4bGFuX25oLnNoXG5pbmRleCAyMGYzMzY5Zjc3NmIxNS4uMzRhMjRhNGY5NWJmN2IgMTAwNzU1XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGVzdF92eGxhbl9uaC5zaFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rlc3RfdnhsYW5fbmguc2hcbkBAIC01Niw2ICs1NiwxNiBAQCB0Y19zdGF0c19nZXQoKVxuIFx0dGNfcnVsZV9oYW5kbGVfc3RhdHNfZ2V0IFwiZGV2IGR1bW15MSBlZ3Jlc3NcIiAxMDEgXCIucGFja2V0c1wiIFwiLW4gJG5zMVwiXG4gfVxuIFxuK25oX3N0YXRzX2dldF9wb3J0KClcbit7XG4rXHRpcCAtbiBcIiRuczFcIiAtcyAtaiBuZXh0aG9wIHNob3cgaWQgMjAgfCBqcSBcIi5bXVtcXFwiZ3JvdXBfc3RhdHNcXFwiXVtdW1xcXCJwYWNrZXRzXFxcIl1cIlxuK31cbitcbit0Y19zdGF0c19nZXRfcG9ydCgpXG4re1xuK1x0dGNfcnVsZV9oYW5kbGVfc3RhdHNfZ2V0IFwiZGV2IGR1bW15MSBlZ3Jlc3NcIiAxMDIgXCIucGFja2V0c1wiIFwiLW4gJG5zMVwiXG4rfVxuK1xuIGJhc2ljX3R4X2NvbW1vbigpXG4ge1xuIFx0bG9jYWwgYWZfc3RyPSQxOyBzaGlmdFxuQEAgLTkwLDYgKzEwMCwyNyBAQCBiYXNpY190eF9jb21tb24oKVxuIFx0YnVzeXdhaXQgXCIkQlVTWVdBSVRfVElNRU9VVFwiIHVudGlsX2NvdW50ZXJfaXMgXCI9PSAxXCIgdGNfc3RhdHNfZ2V0IFx1MDAzZSAvZGV2L251bGxcbiBcdGNoZWNrX2VyciAkPyBcInRjIGZpbHRlciBzdGF0cyBkaWQgbm90IGluY3JlYXNlXCJcbiBcbitcdCMgQWRkIGEgc2Vjb25kIEZEQiBuZXh0aG9wIGdyb3VwIHdob3NlIG5leHRob3AgY2FycmllcyBhIHBlci1uZXh0aG9wXG4rXHQjIGRlc3RpbmF0aW9uIHBvcnQgKE5IQV9GREJfUE9SVCkgdGhhdCBkaWZmZXJzIGZyb20gdGhlIFZYTEFOIGRldmljZVxuK1x0IyBkZWZhdWx0LiBNYXRjaGluZyBvdXRlciB0cmFmZmljIG11c3QgZWdyZXNzIHdpdGggdGhhdCBwb3J0LCBzbyBhXG4rXHQjIHNlcGFyYXRlIGZsb3dlciBmaWx0ZXIga2V5ZWQgb24gdGhlIG5ldyBwb3J0IGNhdGNoZXMgaXQuXG4rXHRpZiBpcCBuZXh0aG9wIGhlbHAgMlx1MDAzZVx1MDAyNjEgfCBncmVwIC1xIFwiZmRiIFxcWyBwb3J0XCI7IHRoZW5cbitcdFx0cnVuX2NtZCBcInRjIC1uICRuczEgZmlsdGVyIGFkZCBkZXYgZHVtbXkxIGVncmVzcyBwcm90byAkcHJvdG8gcHJlZiAxIGhhbmRsZSAxMDIgZmxvd2VyIGlwX3Byb3RvIHVkcCBkc3RfaXAgJHJlbW90ZV9hZGRyIGRzdF9wb3J0IDQ3OTAgYWN0aW9uIHBhc3NcIlxuK1xuK1x0XHRydW5fY21kIFwiaXAgLW4gJG5zMSBuZXh0aG9wIGFkZCBpZCAyIHZpYSAkcmVtb3RlX2FkZHIgZmRiIHBvcnQgNDc5MFwiXG4rXHRcdHJ1bl9jbWQgXCJpcCAtbiAkbnMxIG5leHRob3AgYWRkIGlkIDIwIGdyb3VwIDIgZmRiXCJcbitcbitcdFx0cnVuX2NtZCBcImJyaWRnZSAtbiAkbnMxIGZkYiBhZGQgMDA6MTE6MjI6MzM6NDQ6NjYgZGV2IHZ4MCBzZWxmIHN0YXRpYyBuaGlkIDIwXCJcbitcbitcdFx0cnVuX2NtZCBcImlwIG5ldG5zIGV4ZWMgJG5zMSBtYXVzZXphaG4gdngwIC1hIG93biAtYiAwMDoxMToyMjozMzo0NDo2NiAtYyAxIC1xXCJcbitcbitcdFx0YnVzeXdhaXQgXCIkQlVTWVdBSVRfVElNRU9VVFwiIHVudGlsX2NvdW50ZXJfaXMgXCI9PSAxXCIgbmhfc3RhdHNfZ2V0X3BvcnQgXHUwMDNlIC9kZXYvbnVsbFxuK1x0XHRjaGVja19lcnIgJD8gXCJGREIgbmV4dGhvcCBncm91cCBzdGF0cyBkaWQgbm90IGluY3JlYXNlICh3aXRoIHBvcnQpXCJcbitcbitcdFx0YnVzeXdhaXQgXCIkQlVTWVdBSVRfVElNRU9VVFwiIHVudGlsX2NvdW50ZXJfaXMgXCI9PSAxXCIgdGNfc3RhdHNfZ2V0X3BvcnQgXHUwMDNlIC9kZXYvbnVsbFxuK1x0XHRjaGVja19lcnIgJD8gXCJ0YyBmaWx0ZXIgc3RhdHMgZGlkIG5vdCBpbmNyZWFzZSAod2l0aCBwb3J0KVwiXG4rXHRmaVxuK1xuIFx0bG9nX3Rlc3QgXCJWWExBTiBGREIgbmV4dGhvcDogJGFmX3N0ciBiYXNpYyBUeFwiXG4gfVxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTY6MTY6MzkuOTE0ODc4MTc1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzE3NTc1OTU4OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFZYTEFOIEZEQiBOZXh0aG9wIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IGludHJvZHVjZXMgYE5IQV9GREJfUE9SVGAgc3VwcG9ydCBpbiBuZXh0aG9wcywgc3BlY2lmaWNhbGx5IGZvciBWWExBTiBGREIgbmV4dGhvcHMuIFRoaXMgaXMgY29yZSBuZXR3b3JraW5nIGZ1bmN0aW9uYWxpdHksIHNvIGl0IG5lZWRzIGNhcmVmdWwgcmV2aWV3LiBJdCBsb29rcyBsaWtlIGl0IHRvdWNoZXMgcXVpdGUgYSBmZXcgZmlsZXM6IGBpbmNsdWRlL25ldC9uZXh0aG9wLmhgLCBgaW5jbHVkZS9uZXQvdnhsYW4uaGAsIGBpbmNsdWRlL3VhcGkvbGludXgvbmV4dGhvcC5oYCwgYG5ldC9pcHY0L25leHRob3AuY2AsIGFuZCBzb21lIHNlbGZ0ZXN0cywgd2hpY2ggaXMgd2hhdCBJJ2QgZXhwZWN0IGZvciB0aGlzIGtpbmQgb2YgY2hhbmdlLiBUaGUgcHJpbWFyeSBmdW5jdGlvbiBvZiB0aGlzIHBhdGNoIGlzIGFsbG93aW5nIHVzZXJzIHRvIHNwZWNpZnkgYSBVRFAgZGVzdGluYXRpb24gcG9ydCBmb3IgYW4gRkRCIG5leHRob3AuXG5cbkxldCdzIGJyZWFrIGRvd24gdGhlIGZ1bmN0aW9ucyBtb2RpZmllZCBhbmQgc2VlIHdoYXQncyBiZWluZyBhZmZlY3RlZC4gSXQgbG9va3MgbGlrZSB3ZSBoYXZlOlxuLSAgIGBuZXh0aG9wX3BhdGhfZmRiX3Jlc3VsdGAgaW4gYGluY2x1ZGUvbmV0L25leHRob3AuaGBcbi0gICBgdnhsYW5fZmRiX25oX3BhdGhfc2VsZWN0YCBpbiBgaW5jbHVkZS9uZXQvdnhsYW4uaGBcbi0gICBgbmhfZmlsbF9ub2RlYCBpbiBgbmV0L2lwdjQvbmV4dGhvcC5jYFxuLSAgIGBuaF9ubG1zZ19zaXplX3NpbmdsZWAgaW4gYG5ldC9pcHY0L25leHRob3AuY2Bcbi0gICBgbmV4dGhvcF9jcmVhdGVgIGluIGBuZXQvaXB2NC9uZXh0aG9wLmNgXG4tICAgYHJ0bV90b19uaF9jb25maWdgIGluIGBuZXQvaXB2NC9uZXh0aG9wLmNgXG5cbkkgbmVlZCB0byBjb25maXJtIHRoZSBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcyBmb3IgdGhpcy4gT2J2aW91c2x5LCBgQ09ORklHX1ZYTEFOYCBpcyBuZWNlc3NhcnkgZm9yIFZYTEFOIHN1cHBvcnQuIEFzIGZvciB0aGUgcmVzdCBvZiB0aGUgbmV4dGhvcCBmdW5jdGlvbmFsaXR5LCBJIHRoaW5rIHRoYXQgaXMgYSBzdGFuZGFyZCBwYXJ0IG9mIElQdjQgcm91dGluZywgbm90IGRpcmVjdGx5IHJlbGF0ZWQgdG8gYENPTkZJR19JUF9ST1VURV9NVUxUSVBBVEhgLiBMZXQncyBjb25maXJtIHRoYXQgYnkgY2hlY2tpbmcgYG5ldC9pcHY0L25leHRob3AuY2AgYW5kIGBpbmNsdWRlL25ldC9uZXh0aG9wLmhgIGRlcGVuZGVuY2llcy4gTG9va3MgbGlrZSBgbmV0L2lwdjQvbmV4dGhvcC5jYCBpcyBhbHdheXMgY29tcGlsZWQgZm9yIElQdjQsIG5vdCB1bmRlciBgQ09ORklHX0lQX1JPVVRFX01VTFRJUEFUSGAuIExldCdzIGNoZWNrIGBuZXQvaXB2NC9NYWtlZmlsZWAgdG8gYmUgc3VyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NjQwOCwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwNiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDE2OjE2OjQ3LjA5MDY0MDUzNFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjM5NjM3NzgxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5leHRob3Aub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvaXB2NC9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvaXB2NC9NYWtlZmlsZT02PW9iai15ICAgICA6PSByb3V0ZS5vIGluZXRwZWVyLm8gcHJvdG9jb2wubyBcXFxcXFxuLS1cXG5uZXQvaXB2NC9NYWtlZmlsZS0xNi1cXHQgICAgIGluZXRfZnJhZ21lbnQubyBwaW5nLm8gaXBfdHVubmVsX2NvcmUubyBncmVfb2ZmbG9hZC5vIFxcXFxcXG5uZXQvaXB2NC9NYWtlZmlsZToxNzpcXHQgICAgIG1ldHJpY3MubyBuZXRsaW5rLm8gbmV4dGhvcC5vIHVkcF90dW5uZWxfc3R1Yi5vXFxubmV0L2lwdjQvTWFrZWZpbGUtMTgtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDE2OjE2OjQ4LjczMDI5OTczNVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxMzk0NDEwMTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKklQdjQgYW5kIFZYTEFOIENvbmNlcm5zKipcblxuUmlnaHQsIHNvIHRoaXMgY29kZSBpcyBidWlsdCBhc3N1bWluZyBJUHY0LCBubyBpZnMsIGFuZHMsIG9yIGJ1dHMuIE9rYXksIHRoYXQncyBmaW5lIGZvciBzb21lIGNvbnRleHRzLCBidXQgaW1tZWRpYXRlbHkgSSdtIHRoaW5raW5nIGFib3V0IFZYTEFOLiBJcyB0aGlzIGdvaW5nIHRvIHBsYXkgbmljZWx5IHdpdGggVlhMQU4tZW5jYXBzdWxhdGVkIHRyYWZmaWM/IFRoZSBsb2dpYyB3aXRoaW4gYHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdGAgaXMgY3JpdGljYWwgaGVyZS4gSXQncyB1c2VkIHNvIGl0IG5lZWRzIHRoZSByaWdodCBrZXJuZWwgY29uZmlndXJhdGlvbi4gSSByZW1lbWJlciBub3c6IEknbSBwcmV0dHkgc3VyZSB0aGF0IGZ1bmN0aW9uIGRlcGVuZHMgb24gYENPTkZJR19WWExBTmAgYmVpbmcgZW5hYmxlZC4gSWYgdGhhdCdzIG5vdCBzZXQsIHRoZSByZWxldmFudCBwYXJ0cyBvZiB0aGUgVlhMQU4gc3VwcG9ydCBhcmUgZ29pbmcgdG8gYmUgbWlzc2luZyBhbmQgdGhpcyB3aG9sZSB0aGluZyBjb3VsZCBmYWxsIGFwYXJ0LiBJIG5lZWQgdG8ga2VlcCB0aGF0IGRlcGVuZGVuY3kgaW4gbWluZCB3aGVuIGV2YWx1YXRpbmcgdGhpcywgZXNwZWNpYWxseSBpbiBhIFZYTEFOIGVudmlyb25tZW50LiBJJ20gZ29pbmcgdG8gbWFrZSBhIG1lbnRhbCBub3RlIHRvIHZlcmlmeSB0aGUgY29uZmlnLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3NDUwLCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTY6MTY6NTEuODY5NzQzMzgzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5MDM4MDAzODQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidnhsYW5fZmRiX25oX3BhdGhfc2VsZWN0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MjY1MD1zdGF0aWMgdm9pZCB2eGxhbl94bWl0X25oKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMjY2My1cXHRcXHRnb3RvIGRyb3A7XFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjI2NjQ6XFx0ZG9feG1pdCA9IHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdChuaCwgaGFzaCwgXFx1MDAyNm5oX3Jkc3QpO1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yNjY1LVxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTI2ODA9c3RhdGljIG5ldGRldl90eF90IHZ4bGFuX3htaXRfbmhpZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTI2OTctXFx0fVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzoyNjk4OlxcdGRvX3htaXQgPSB2eGxhbl9mZGJfbmhfcGF0aF9zZWxlY3QobmgsIGhhc2gsIFxcdTAwMjZuaF9yZHN0KTtcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMjY5OS1cXHRyY3VfcmVhZF91bmxvY2soKTtcXG4tLVxcbmluY2x1ZGUvbmV0L3Z4bGFuLmg9NTM0PXN0YXRpYyBpbmxpbmUgdm9pZCB2eGxhbl9mbGFnX2F0dHJfZXJyb3IoaW50IGF0dHJ0eXBlLFxcbi0tXFxuaW5jbHVkZS9uZXQvdnhsYW4uaC01NjQtXFxuaW5jbHVkZS9uZXQvdnhsYW4uaDo1NjU6c3RhdGljIGlubGluZSBib29sIHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdChzdHJ1Y3QgbmV4dGhvcCAqbmgsXFxuaW5jbHVkZS9uZXQvdnhsYW4uaC01NjYtXFx0XFx0XFx0XFx0XFx0ICAgIHUzMiBoYXNoLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQxNjoxNjo1Ni43NzM1NTcxNzdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NjE3MzA0MTY0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBWWExBTiBOZXh0IEhvcCBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSBuZWVkIHRvIG1ha2Ugc3VyZSBgQ09ORklHX1ZYTEFOYCBpcyBlbmFibGVkLiBMZXQncyBzdGFydCB0aGVyZS4gTm93LCBsZXQncyBzZWUgd2hhdCBlbHNlIHdlJ3JlIGRlYWxpbmcgd2l0aCBjb25maWd1cmF0aW9uLXdpc2UuIEkgc2VlIGBOSEFfRkRCX1BPUlRgIGFzIGEgbmV0bGluayBhdHRyaWJ1dGUsIHdoaWNoIGlzIHVzZWZ1bC4gVGhlIGNvcmUgc2VlbXMgdG8gcmV2b2x2ZSBhcm91bmQgYHJ0bV90b19uaF9jb25maWdgLCB3aGljaCBnZXRzIGNhbGxlZCBmcm9tIGBydG1fbmV3bmV4dGhvcGAgaW4gYG5ldC9pcHY0L25leHRob3AuY2AsIGFuZCwgaW1wb3J0YW50bHksIGBuZXh0aG9wX2NyZWF0ZWAgd2hpY2ggaXMgaXRzZWxmIGNhbGxlZCBmcm9tIGBydG1fbmV3bmV4dGhvcGAuXG5cbkkgbmVlZCB0byBmb2N1cyBvbiBhIGZldyBrZXkgc3ltYm9scyBoZXJlOiBgcnRtX3RvX25oX2NvbmZpZ2AsIGBuZXh0aG9wX2NyZWF0ZWAsIGBuaF9maWxsX25vZGVgLCBhbmQgYHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdGAuXG5cbkxldCBtZSBzZWUsIGlzIGB2eGxhbl9mZGJfbmhfcGF0aF9zZWxlY3RgIGluIHRoZSBob3QgcGF0aD8gQWgsIHllcywgaXQncyBjYWxsZWQgZnJvbSBgdnhsYW5feG1pdF9uaGAgYW5kIGB2eGxhbl94bWl0X25oaWRgLCB3aGljaCBhcmUgdGhlbXNlbHZlcyBjYWxsZWQgZnJvbSBgdnhsYW5feG1pdGAuIEFuZCBgdnhsYW5feG1pdGAgaXMgdGhlIGBuZG9fc3RhcnRfeG1pdGAgZm9yIFZYTEFOIOKAkyBkZWZpbml0ZWx5IGEgaG90IHBhdGghIFRoYXQncyBzb21ldGhpbmcgd2Ugd2FudCB0byBhdm9pZCBpZiBwb3NzaWJsZS5cblxuR29vZCwgbm93IGxvb2tpbmcgYXQgYHJ0bV90b19uaF9jb25maWdgLCBgbmV4dGhvcF9jcmVhdGVgLCBhbmQgYG5oX2ZpbGxfbm9kZWAgdGhleSBsb29rIGxpa2UgdGhleSBhcmUgYWxsIGNvbnRyb2wgcGF0aCBmdW5jdGlvbnMsIGRlYWxpbmcgd2l0aCBuZXRsaW5rLiBUaGF0IGlzIGdvb2QuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBmdW5jdGlvbiBjYWxscyBhbmQgdGhlIHBhdGhzIHRvIHRoZW0sIGJ1dCBhcyBmYXIgYXMgSSBjYW4gc2VlLCB0aGVzZSBzaG91bGQgbm90IGJlIGluIHRoZSBob3QgcGF0aC5cblxuTm93LCBsZXQncyBqdXN0IG1ha2Ugc3VyZSB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIGZ1bmN0aW9ucyB0aGF0IGFyZSBjcml0aWNhbCB0byB0aGlzLCBsZXQncyBzZWUuIExvb2tzIGxpa2UgYG5leHRob3BfcGF0aF9mZGJfcmVzdWx0YCBpcyBhbiBpbmxpbmUgZnVuY3Rpb24gaW4gYGluY2x1ZGUvbmV0L25leHRob3AuaGAuIE9rYXkuXG5cblNvLCB0aGUga2V5IGZ1bmN0aW9ucyB0aGF0IHdhcnJhbnQgZnVydGhlciBzY3J1dGlueSBhcmU6IGBydG1fdG9fbmhfY29uZmlnYCwgYG5leHRob3BfY3JlYXRlYCwgYW5kIGBuaF9maWxsX25vZGVgLiBMZXQncyBkb3VibGUgY2hlY2sgYHJ0bV90b19uaF9jb25maWdgIGFuZCBgbmV4dGhvcF9jcmVhdGVgIGFnYWluLCBqdXN0IHRvIG1ha2Ugc3VyZSBJIGFtIG9uIHRoZSByaWdodCB0cmFjayBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MTM0LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzc5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDE2OjE3OjAzLjM5MDg2MzcwMloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTkzNTYzNzIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnRtX3RvX25oX2NvbmZpZ1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvaXB2NC9uZXh0aG9wLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2lwdjQvbmV4dGhvcC5jPTMwMzg9c3RhdGljIGludCBydG1fbmhfZ2V0X3RpbWVyKHN0cnVjdCBubGF0dHIgKmF0dHIsIHVuc2lnbmVkIGxvbmcgZmFsbGJhY2ssXFxuLS1cXG5uZXQvaXB2NC9uZXh0aG9wLmMtMzA2Mi1cXG5uZXQvaXB2NC9uZXh0aG9wLmM6MzA2MzpzdGF0aWMgaW50IHJ0bV90b19uaF9jb25maWdfZ3JwX3JlcyhzdHJ1Y3QgbmxhdHRyICpyZXMsIHN0cnVjdCBuaF9jb25maWcgKmNmZyxcXG5uZXQvaXB2NC9uZXh0aG9wLmMtMzA2NC1cXHRcXHRcXHRcXHQgICAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKVxcbi0tXFxubmV0L2lwdjQvbmV4dGhvcC5jLTMxMDEtXFxubmV0L2lwdjQvbmV4dGhvcC5jOjMxMDI6c3RhdGljIGludCBydG1fdG9fbmhfY29uZmlnKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5uZXQvaXB2NC9uZXh0aG9wLmMtMzEwMy1cXHRcXHRcXHQgICAgc3RydWN0IG5sbXNnaGRyICpubGgsIHN0cnVjdCBubGF0dHIgKip0YixcXG4tLVxcbm5ldC9pcHY0L25leHRob3AuYy0zMTg5LVxcdFxcdGlmIChjZmctXFx1MDAzZW5oX2dycF90eXBlID09IE5FWFRIT1BfR1JQX1RZUEVfUkVTKVxcbm5ldC9pcHY0L25leHRob3AuYzozMTkwOlxcdFxcdFxcdGVyciA9IHJ0bV90b19uaF9jb25maWdfZ3JwX3Jlcyh0YltOSEFfUkVTX0dST1VQXSxcXG5uZXQvaXB2NC9uZXh0aG9wLmMtMzE5MS1cXHRcXHRcXHRcXHRcXHRcXHQgICAgICAgY2ZnLCBleHRhY2spO1xcbi0tXFxubmV0L2lwdjQvbmV4dGhvcC5jLTMyNzctXFxubmV0L2lwdjQvbmV4dGhvcC5jOjMyNzg6c3RhdGljIGludCBydG1fdG9fbmhfY29uZmlnX3J0bmwoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmxhdHRyICoqdGIsXFxubmV0L2lwdjQvbmV4dGhvcC5jLTMyNzktXFx0XFx0XFx0XFx0IHN0cnVjdCBuaF9jb25maWcgKmNmZyxcXG4tLVxcbm5ldC9pcHY0L25leHRob3AuYz0zMzEwPXN0YXRpYyBpbnQgcnRtX25ld19uZXh0aG9wKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBubG1zZ2hkciAqbmxoLFxcbi0tXFxubmV0L2lwdjQvbmV4dGhvcC5jLTMzMjQtXFxubmV0L2lwdjQvbmV4dGhvcC5jOjMzMjU6XFx0ZXJyID0gcnRtX3RvX25oX2NvbmZpZyhuZXQsIHNrYiwgbmxoLCB0YiwgXFx1MDAyNmNmZywgZXh0YWNrKTtcXG5uZXQvaXB2NC9uZXh0aG9wLmMtMzMyNi1cXHRpZiAoZXJyKVxcbi0tXFxubmV0L2lwdjQvbmV4dGhvcC5jLTMzMzYtXFxubmV0L2lwdjQvbmV4dGhvcC5jOjMzMzc6XFx0ZXJyID0gcnRtX3RvX25oX2NvbmZpZ19ydG5sKG5ldCwgdGIsIFxcdTAwMjZjZmcsIGV4dGFjayk7XFxubmV0L2lwdjQvbmV4dGhvcC5jLTMzMzgtXFx0aWYgKGVycilcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTY6MTc6MDMuOTkwMjI1NTk0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjAyNDQ2MTc1MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiBOZXh0IEhvcCBDb25maWd1cmF0aW9uKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBnb2FsIGlzIHRvIHVuZGVyc3RhbmQgaG93IHdlJ3JlIGNvbmZpZ3VyaW5nIHRoZSBuZXh0LWhvcCBmdW5jdGlvbmFsaXR5LiBUaGUga2V5IGZ1bmN0aW9ucyBJIG5lZWQgdG8gZm9jdXMgb24gYXJlIGBydG1fdG9fbmhfY29uZmlnYCwgYG5leHRob3BfY3JlYXRlYCwgYW5kIGBuaF9maWxsX25vZGVgLiBUaGVzZSBzZWVtIHRvIGJlIHRoZSBjb3JlIGJ1aWxkaW5nIGJsb2Nrcy5cblxuSSBzZWUgdGhhdCB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIGluIHBsYXkgaXMgYFZYTEFOYC4gSSdtIGN1cmlvdXMgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBjb25maWd1cmF0aW9ucyBpbnZvbHZlZCwgc28gSSdsbCBuZWVkIHRvIGRpZyBhIGxpdHRsZSBkZWVwZXIgdG8gc2VlIGlmIGFueSBvdGhlcnMgaW5mbHVlbmNlIHRoaXMgcGFydCBvZiB0aGUgY29kZS5cblxuQWxyaWdodCwgSSBmb3VuZCBgTkhBX0ZEQl9QT1JUYCwgYW5kIGl0IGlzIHBhcnQgb2YgYHJ0bV9uaF9wb2xpY3lfbmV3YCBpbiBgbmV0L2lwdjQvbmV4dGhvcC5jYC4gVGhpcyBpcyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBwYXJ0IG9mIHRoZSBjb2RlIEkgbmVlZCB0byBjb25zaWRlci5cblxuTm93LCBJJ2xsIHNldCB0aGUgYFdvcnRoRnV6emluZ2AgZmxhZyB0byBgdHJ1ZWAuIFRoZXNlIGZ1bmN0aW9ucyBzZWVtIGxpa2UgZ29vZCBjYW5kaWRhdGVzIHRvIHRlc3QgdGhvcm91Z2hseS4gSSdsbCBtYWtlIHN1cmUgdG8gcHJpb3JpdGl6ZSBmdXp6aW5nIGBydG1fdG9fbmhfY29uZmlnYCwgYG5leHRob3BfY3JlYXRlYCwgYW5kIGBuaF9maWxsX25vZGVgLlxuXG5UbyBiZSBjZXJ0YWluLCBJIHdhbnQgdG8gY29uZmlybSB0aGF0IGBWWExBTmAgaXMgdGhlIG9ubHkgY29uZmlndXJhdGlvbiBhY3RpdmVseSBpbnZvbHZlZC4gSSBzZWUgYENPTkZJR19WWExBTmAgaXMgdHJpc3RhdGUsIHNvIGl0J3MgcG9zc2libGUuIEFyZSB0aGVyZSBvdGhlciBjb25maWdzIHRoYXQgaW5mbHVlbmNlIG5leHRob3AgYmVoYXZpb3I/IEhtbSwgYG5leHRob3Aub2AgYXBwZWFycyB0byBiZSBjb21waWxlZCB1bmNvbmRpdGlvbmFsbHkgZm9yIElQdjQsIHNvIG5vLCB0aGVyZSBkb24ndCBhcHBlYXIgdG8gYmUgYW55IG90aGVyIGNvbmZpZ3MuXG5cbk5vdywgSSdtIHJlYWR5IHRvIHVzZSB0aGUgYHNldC1yZXN1bHRzYCB0b29sIGFuZCBtb3ZlIGZvcndhcmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk3MDMsIk91dHB1dFRva2VucyI6MTI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjA5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDE2OjE3OjEwLjAxNDY5MDE0NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzMTEwMTE0MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVlhMQU5cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydG1fdG9fbmhfY29uZmlnXCIsXG4gICAgXCJuZXh0aG9wX2NyZWF0ZVwiLFxuICAgIFwibmhfZmlsbF9ub2RlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBuZXRsaW5rIGF0dHJpYnV0ZSBOSEFfRkRCX1BPUlQgdG8gc3BlY2lmeSBhIFVEUCBkZXN0aW5hdGlvbiBwb3J0IGZvciBGREIgbmV4dGhvcHMgKGUuZy4sIFZYTEFOKS4gSXQgbW9kaWZpZXMgdGhlIG5leHRob3AgbmV0bGluayBjb250cm9sIHBhdGggYW5kIFZYTEFOIGRhdGFwYXRoLiBUaGUgbmV0bGluayBjb250cm9sIHBhdGggZnVuY3Rpb25zIGFyZSBnb29kIHRhcmdldHMgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVlhMQU5cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydG1fdG9fbmhfY29uZmlnXCIsXG4gICAgXCJuZXh0aG9wX2NyZWF0ZVwiLFxuICAgIFwibmhfZmlsbF9ub2RlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBuZXRsaW5rIGF0dHJpYnV0ZSBOSEFfRkRCX1BPUlQgdG8gc3BlY2lmeSBhIFVEUCBkZXN0aW5hdGlvbiBwb3J0IGZvciBGREIgbmV4dGhvcHMgKGUuZy4sIFZYTEFOKS4gSXQgbW9kaWZpZXMgdGhlIG5leHRob3AgbmV0bGluayBjb250cm9sIHBhdGggYW5kIFZYTEFOIGRhdGFwYXRoLiBUaGUgbmV0bGluayBjb250cm9sIHBhdGggZnVuY3Rpb25zIGFyZSBnb29kIHRhcmdldHMgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowcs5kr[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-22 15:54:57 +0000 UTC FinishedAt: 2026-07-22 16:17:11 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VXLAN" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VXLAN" ], "series_id": "ffce983e-ca3d-480a-9140-5984aed27c7c" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "rtm_to_nh_config", "nexthop_create", "nh_fill_node" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIyIDE2OjE2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZYTEFOJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnRtX3RvX25oX2NvbmZpZyYjMzQ7LAogICAgJiMzNDtuZXh0aG9wX2NyZWF0ZSYjMzQ7LAogICAgJiMzNDtuaF9maWxsX25vZGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBuZXRsaW5rIGF0dHJpYnV0ZSBOSEFfRkRCX1BPUlQgdG8gc3BlY2lmeSBhIFVEUCBkZXN0aW5hdGlvbiBwb3J0IGZvciBGREIgbmV4dGhvcHMgKGUuZy4sIFZYTEFOKS4gSXQgbW9kaWZpZXMgdGhlIG5leHRob3AgbmV0bGluayBjb250cm9sIHBhdGggYW5kIFZYTEFOIGRhdGFwYXRoLiBUaGUgbmV0bGluayBjb250cm9sIHBhdGggZnVuY3Rpb25zIGFyZSBnb29kIHRhcmdldHMgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTY6MTY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA4NTNjMzI0NjVlOGQ3ZGM2MjYzMTUyYThhZjM0NTBjNThiMmYwMTAyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMjIgMTY6MTY6MzYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbmV4dGhvcC5oIGIvaW5jbHVkZS9uZXQvbmV4dGhvcC5oXG5pbmRleCA1NzJlNjljZGE0NzY2ZC4uMTllODY3MGQ5NjRkOWQgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL25ldC9uZXh0aG9wLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbmV0L25leHRob3AuaFxuQEAgLTI4LDYgJiM0MzsyOCw3IEBAIHN0cnVjdCBuaF9jb25maWcge1xuIFx0dThcdFx0bmhfcHJvdG9jb2w7XG4gXHR1OFx0XHRuaF9ibGFja2hvbGU7XG4gXHR1OFx0XHRuaF9mZGI7XG4mIzQzO1x0X19iZTE2XHRcdG5oX2ZkYl9wb3J0O1xuIFx0dTMyXHRcdG5oX2ZsYWdzO1xuIFxuIFx0aW50XHRcdG5oX2lmaW5kZXg7XG5AQCAtNjMsNiAmIzQzOzY0LDcgQEAgc3RydWN0IG5oX2luZm8ge1xuIFx0dThcdFx0XHRmYW1pbHk7XG4gXHRib29sXHRcdFx0cmVqZWN0X25oO1xuIFx0Ym9vbFx0XHRcdGZkYl9uaDtcbiYjNDM7XHRfX2JlMTZcdFx0XHRmZGJfcG9ydDtcbiBcbiBcdHVuaW9uIHtcbiBcdFx0c3RydWN0IGZpYl9uaF9jb21tb25cdGZpYl9uaGM7XG5AQCAtNTc0LDcgJiM0Mzs1NzYsOCBAQCBzdHJ1Y3QgZmliX25oX2NvbW1vbiAqbmV4dGhvcF9mZGJfbmhjKHN0cnVjdCBuZXh0aG9wICpuaClcbiB9XG4gXG4gc3RhdGljIGlubGluZSBzdHJ1Y3QgZmliX25oX2NvbW1vbiAqbmV4dGhvcF9wYXRoX2ZkYl9yZXN1bHQoc3RydWN0IG5leHRob3AgKm5oLFxuLVx0XHRcdFx0XHRcdFx0ICAgIGludCBoYXNoKVxuJiM0MztcdFx0XHRcdFx0XHRcdCAgICBpbnQgaGFzaCxcbiYjNDM7XHRcdFx0XHRcdFx0XHQgICAgX19iZTE2ICpmZGJfcG9ydClcbiB7XG4gXHRzdHJ1Y3QgbmhfaW5mbyAqbmhpO1xuIFx0c3RydWN0IG5leHRob3AgKm5ocDtcbkBAIC01ODMsNiAmIzQzOzU4Niw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGZpYl9uaF9jb21tb24gKm5leHRob3BfcGF0aF9mZGJfcmVzdWx0KHN0cnVjdCBuZXh0aG9wICpuaCxcbiBcdGlmICh1bmxpa2VseSghbmhwKSlcbiBcdFx0cmV0dXJuIE5VTEw7XG4gXHRuaGkgPSByY3VfZGVyZWZlcmVuY2UobmhwLVx1MDAzZW5oX2luZm8pO1xuJiM0MztcdCpmZGJfcG9ydCA9IG5oaS1cdTAwM2VmZGJfcG9ydDtcbiBcdHJldHVybiBcdTAwMjZuaGktXHUwMDNlZmliX25oYztcbiB9XG4gI2VuZGlmXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdnhsYW4uaCBiL2luY2x1ZGUvbmV0L3Z4bGFuLmhcbmluZGV4IGRmYmE4OTY5NWVmY2ZhLi5kZTQxYjM3NDY4OGYyOSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbmV0L3Z4bGFuLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbmV0L3Z4bGFuLmhcbkBAIC01NjcsOCAmIzQzOzU2Nyw5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB2eGxhbl9mZGJfbmhfcGF0aF9zZWxlY3Qoc3RydWN0IG5leHRob3AgKm5oLFxuIFx0XHRcdFx0XHQgICAgc3RydWN0IHZ4bGFuX3Jkc3QgKnJkc3QpXG4ge1xuIFx0c3RydWN0IGZpYl9uaF9jb21tb24gKm5oYztcbiYjNDM7XHRfX2JlMTYgZmRiX3BvcnQgPSAwO1xuIFxuLVx0bmhjID0gbmV4dGhvcF9wYXRoX2ZkYl9yZXN1bHQobmgsIGhhc2ggXHUwMDNlXHUwMDNlIDEpO1xuJiM0MztcdG5oYyA9IG5leHRob3BfcGF0aF9mZGJfcmVzdWx0KG5oLCBoYXNoIFx1MDAzZVx1MDAzZSAxLCBcdTAwMjZmZGJfcG9ydCk7XG4gXHRpZiAodW5saWtlbHkoIW5oYykpXG4gXHRcdHJldHVybiBmYWxzZTtcbiBcbkBAIC01ODMsNiAmIzQzOzU4NCw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB2eGxhbl9mZGJfbmhfcGF0aF9zZWxlY3Qoc3RydWN0IG5leHRob3AgKm5oLFxuIFx0XHRicmVhaztcbiBcdH1cbiBcbiYjNDM7XHRyZHN0LVx1MDAzZXJlbW90ZV9wb3J0ID0gZmRiX3BvcnQ7XG4mIzQzO1xuIFx0cmV0dXJuIHRydWU7XG4gfVxuIFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXh0aG9wLmggYi9pbmNsdWRlL3VhcGkvbGludXgvbmV4dGhvcC5oXG5pbmRleCBiYzQ5YmFmNGEyNjdmMC4uZTU4N2JiZjNiODkwYTMgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvbmV4dGhvcC5oXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL3VhcGkvbGludXgvbmV4dGhvcC5oXG5AQCAtODMsNiAmIzQzOzgzLDkgQEAgZW51bSB7XG4gXHQvKiB1MzI7IHJlYWQtb25seTsgd2hldGhlciBhbnkgZHJpdmVyIGNvbGxlY3RzIEhXIHN0YXRzICovXG4gXHROSEFfSFdfU1RBVFNfVVNFRCxcbiBcbiYjNDM7XHQvKiBiZTE2OyBVRFAgZGVzdGluYXRpb24gcG9ydCBmb3IgYW4gZmRiIG5leHRob3AgKGUuZy4gVlhMQU4pICovXG4mIzQzO1x0TkhBX0ZEQl9QT1JULFxuJiM0MztcbiBcdF9fTkhBX01BWCxcbiB9O1xuIFxuZGlmZiAtLWdpdCBhL25ldC9pcHY0L25leHRob3AuYyBiL25ldC9pcHY0L25leHRob3AuY1xuaW5kZXggNjIwNWJkNTdhYTg1MjAuLmI4MmRhM2VmZjYzYzkxIDEwMDY0NFxuLS0tIGEvbmV0L2lwdjQvbmV4dGhvcC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvaXB2NC9uZXh0aG9wLmNcbkBAIC0zOSw2ICYjNDM7MzksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgcnRtX25oX3BvbGljeV9uZXdbXSA9IHtcbiBcdFtOSEFfRU5DQVBfVFlQRV1cdD0geyAudHlwZSA9IE5MQV9VMTYgfSxcbiBcdFtOSEFfRU5DQVBdXHRcdD0geyAudHlwZSA9IE5MQV9ORVNURUQgfSxcbiBcdFtOSEFfRkRCXVx0XHQ9IHsgLnR5cGUgPSBOTEFfRkxBRyB9LFxuJiM0MztcdFtOSEFfRkRCX1BPUlRdXHRcdD0gTkxBX1BPTElDWV9NSU4oTkxBX0JFMTYsIDEpLFxuIFx0W05IQV9SRVNfR1JPVVBdXHRcdD0geyAudHlwZSA9IE5MQV9ORVNURUQgfSxcbiBcdFtOSEFfSFdfU1RBVFNfRU5BQkxFXVx0PSBOTEFfUE9MSUNZX01BWChOTEFfVTMyLCB0cnVlKSxcbiB9O1xuQEAgLTk1Niw2ICYjNDM7OTU3LDkgQEAgc3RhdGljIGludCBuaF9maWxsX25vZGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5leHRob3AgKm5oLFxuIFx0fSBlbHNlIGlmIChuaGktXHUwMDNlZmRiX25oKSB7XG4gXHRcdGlmIChubGFfcHV0X2ZsYWcoc2tiLCBOSEFfRkRCKSlcbiBcdFx0XHRnb3RvIG5sYV9wdXRfZmFpbHVyZTtcbiYjNDM7XHRcdGlmIChuaGktXHUwMDNlZmRiX3BvcnQgXHUwMDI2XHUwMDI2XG4mIzQzO1x0XHQgICAgbmxhX3B1dF9iZTE2KHNrYiwgTkhBX0ZEQl9QT1JULCBuaGktXHUwMDNlZmRiX3BvcnQpKVxuJiM0MztcdFx0XHRnb3RvIG5sYV9wdXRfZmFpbHVyZTtcbiBcdH0gZWxzZSB7XG4gXHRcdGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXY7XG4gXG5AQCAtMTA1NSw2ICYjNDM7MTA1OSw5IEBAIHN0YXRpYyBzaXplX3Qgbmhfbmxtc2dfc2l6ZV9zaW5nbGUoc3RydWN0IG5leHRob3AgKm5oKVxuIFx0XHRicmVhaztcbiBcdH1cbiBcbiYjNDM7XHRpZiAobmhpLVx1MDAzZWZkYl9wb3J0KVxuJiM0MztcdFx0c3ogJiM0Mzs9IG5sYV90b3RhbF9zaXplKDIpO1x0LyogTkhBX0ZEQl9QT1JUICovXG4mIzQzO1xuIFx0aWYgKG5oaS1cdTAwM2VmaWJfbmhjLm5oY19sd3RzdGF0ZSkge1xuIFx0XHRzeiAmIzQzOz0gbHd0dW5uZWxfZ2V0X2VuY2FwX3NpemUobmhpLVx1MDAzZWZpYl9uaGMubmhjX2x3dHN0YXRlKTtcbiBcdFx0c3ogJiM0Mzs9IG5sYV90b3RhbF9zaXplKDIpOyAgLyogTkhBX0VOQ0FQX1RZUEUgKi9cbkBAIC0yOTU2LDggJiM0MzsyOTYzLDEwIEBAIHN0YXRpYyBzdHJ1Y3QgbmV4dGhvcCAqbmV4dGhvcF9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmhfY29uZmlnICpjZmcsXG4gXHRuaGktXHUwMDNlZmFtaWx5ID0gY2ZnLVx1MDAzZW5oX2ZhbWlseTtcbiBcdG5oaS1cdTAwM2VmaWJfbmhjLm5oY19zY29wZSA9IFJUX1NDT1BFX0xJTks7XG4gXG4tXHRpZiAoY2ZnLVx1MDAzZW5oX2ZkYilcbiYjNDM7XHRpZiAoY2ZnLVx1MDAzZW5oX2ZkYikge1xuIFx0XHRuaGktXHUwMDNlZmRiX25oID0gMTtcbiYjNDM7XHRcdG5oaS1cdTAwM2VmZGJfcG9ydCA9IGNmZy1cdTAwM2VuaF9mZGJfcG9ydDtcbiYjNDM7XHR9XG4gXG4gXHRpZiAoY2ZnLVx1MDAzZW5oX2JsYWNraG9sZSkge1xuIFx0XHRuaGktXHUwMDNlcmVqZWN0X25oID0gMTtcbkBAIC0zMTQ3LDYgJiM0MzszMTU2LDE1IEBAIHN0YXRpYyBpbnQgcnRtX3RvX25oX2NvbmZpZyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsXG4gXHRcdGNmZy1cdTAwM2VuaF9mZGIgPSBubGFfZ2V0X2ZsYWcodGJbTkhBX0ZEQl0pO1xuIFx0fVxuIFxuJiM0MztcdGlmICh0YltOSEFfRkRCX1BPUlRdKSB7XG4mIzQzO1x0XHRpZiAoIXRiW05IQV9GREJdIHx8ICF0YltOSEFfR0FURVdBWV0pIHtcbiYjNDM7XHRcdFx0TkxfU0VUX0VSUl9NU0coZXh0YWNrLFxuJiM0MztcdFx0XHRcdCAgICAgICBcJiMzNDtGREIgcG9ydCBjYW4gb25seSBiZSBzZXQgb24gZmRiIG5leHRob3BzIHRoYXQgaGF2ZSBhIGdhdGV3YXlcJiMzNDspO1xuJiM0MztcdFx0XHRnb3RvIG91dDtcbiYjNDM7XHRcdH1cbiYjNDM7XHRcdGNmZy1cdTAwM2VuaF9mZGJfcG9ydCA9IG5sYV9nZXRfYmUxNih0YltOSEFfRkRCX1BPUlRdKTtcbiYjNDM7XHR9XG4mIzQzO1xuIFx0aWYgKHRiW05IQV9HUk9VUF0pIHtcbiBcdFx0aWYgKG5obS1cdTAwM2VuaF9mYW1pbHkgIT0gQUZfVU5TUEVDKSB7XG4gXHRcdFx0TkxfU0VUX0VSUl9NU0coZXh0YWNrLCBcJiMzNDtJbnZhbGlkIGZhbWlseSBmb3IgZ3JvdXBcJiMzNDspO1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9maWJfbmV4dGhvcHMuc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvZmliX25leHRob3BzLnNoXG5pbmRleCBhYzg2OGE3MzE2OTQ2YS4uMWNlNGY0NWZhNjUxNWYgMTAwNzU1XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvZmliX25leHRob3BzLnNoXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvZmliX25leHRob3BzLnNoXG5AQCAtNDMyLDYgJiM0Mzs0MzIsMTUgQEAgY2hlY2tfbmV4dGhvcF9mZGJfc3VwcG9ydCgpXG4gXHRmaVxuIH1cbiBcbiYjNDM7Y2hlY2tfbmV4dGhvcF9mZGJfcG9ydF9zdXBwb3J0KClcbiYjNDM7e1xuJiM0MztcdCRJUCBuZXh0aG9wIGhlbHAgMlx1MDAzZVx1MDAyNjEgfCBncmVwIC1xIFwmIzM0O2ZkYiBcXFsgcG9ydFwmIzM0O1xuJiM0MztcdGlmIFsgJD8gLW5lIDAgXTsgdGhlblxuJiM0MztcdFx0ZWNobyBcJiMzNDtTS0lQOiBpcHJvdXRlMiB0b28gb2xkLCBtaXNzaW5nIGZkYiBuZXh0aG9wIHBvcnQgc3VwcG9ydFwmIzM0O1xuJiM0MztcdFx0cmV0dXJuICRrc2Z0X3NraXBcbiYjNDM7XHRmaVxuJiM0Mzt9XG4mIzQzO1xuIGNoZWNrX25leHRob3BfcmVzX3N1cHBvcnQoKVxuIHtcbiBcdCRJUCBuZXh0aG9wIGhlbHAgMlx1MDAzZVx1MDAyNjEgfCBncmVwIC1xIHJlc2lsaWVudFxuQEAgLTUxNCw2ICYjNDM7NTIzLDMxIEBAIGlwdjZfZmRiX2dycF9mY25hbCgpXG4gXHRydW5fY21kIFwmIzM0OyRJUCBuZXh0aG9wIHJlcGxhY2UgaWQgNzIgdmlhIDIwMDE6ZGI4OjkxOjoyIGZkYlwmIzM0O1xuIFx0bG9nX3Rlc3QgJD8gMiBcJiMzNDtSZXBsYWNlIG5vbi1GREIgbmV4dGhvcCB0byBGREIgbmV4dGhvcCB3aGlsZSBpbiBhIGdyb3VwXCYjMzQ7XG4gXG4mIzQzO1x0IyBOSEFfRkRCX1BPUlQ6IG9wdGlvbmFsIHBlci1uZXh0aG9wIFZYTEFOIGRlc3RpbmF0aW9uIFVEUCBwb3J0LFxuJiM0MztcdCMgbGV0dGluZyBhbiBmZGIgbmV4dGhvcCBncm91cCBiYWxhbmNlIGEgZmxvdyBhY3Jvc3MgbGVncyB0aGF0IHNoYXJlXG4mIzQzO1x0IyBhbiB1bmRlcmxheSBJUCBidXQgbGlzdGVuIG9uIGRpZmZlcmVudCBVRFAgcG9ydHMuXG4mIzQzO1x0aWYgY2hlY2tfbmV4dGhvcF9mZGJfcG9ydF9zdXBwb3J0OyB0aGVuXG4mIzQzO1x0XHRydW5fY21kIFwmIzM0OyRJUCBuZXh0aG9wIGFkZCBpZCA4MCB2aWEgMjAwMTpkYjg6OTE6OjIgZmRiIHBvcnQgNDc5MFwmIzM0O1xuJiM0MztcdFx0Y2hlY2tfbmV4dGhvcCBcJiMzNDtpZCA4MFwmIzM0OyBcJiMzNDtpZCA4MCB2aWEgMjAwMTpkYjg6OTE6OjIgc2NvcGUgbGluayBmZGIgcG9ydCA0NzkwXCYjMzQ7XG4mIzQzO1x0XHRsb2dfdGVzdCAkPyAwIFwmIzM0O0ZkYiBuZXh0aG9wIHdpdGggcG9ydFwmIzM0O1xuJiM0MztcbiYjNDM7XHRcdHJ1bl9jbWQgXCYjMzQ7JElQIG5leHRob3AgYWRkIGlkIDgxIGZkYiBwb3J0IDQ3OTBcJiMzNDtcbiYjNDM7XHRcdGxvZ190ZXN0ICQ/IDIgXCYjMzQ7RmRiIG5leHRob3Agd2l0aCBwb3J0IGJ1dCBubyBnYXRld2F5XCYjMzQ7XG4mIzQzO1xuJiM0MztcdFx0cnVuX2NtZCBcJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgODEgdmlhIDIwMDE6ZGI4OjkxOjoyIGZkYiBwb3J0IDBcJiMzNDtcbiYjNDM7XHRcdGxvZ190ZXN0ICQ/IDIgXCYjMzQ7RmRiIG5leHRob3Agd2l0aCBwb3J0IDBcJiMzNDtcbiYjNDM7XG4mIzQzO1x0XHRydW5fY21kIFwmIzM0OyRJUCBuZXh0aG9wIGFkZCBpZCA4MiB2aWEgMjAwMTpkYjg6OTE6OjIgZmRiIHBvcnQgNDc4OVwmIzM0O1xuJiM0MztcdFx0cnVuX2NtZCBcJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgODMgdmlhIDIwMDE6ZGI4OjkxOjozIGZkYiBwb3J0IDU3ODlcJiMzNDtcbiYjNDM7XHRcdHJ1bl9jbWQgXCYjMzQ7JElQIG5leHRob3AgYWRkIGlkIDEwNiBncm91cCA4Mi84MyBmZGJcJiMzNDtcbiYjNDM7XHRcdGNoZWNrX25leHRob3AgXCYjMzQ7aWQgMTA2XCYjMzQ7IFwmIzM0O2lkIDEwNiBncm91cCA4Mi84MyBmZGJcJiMzNDtcbiYjNDM7XHRcdGxvZ190ZXN0ICQ/IDAgXCYjMzQ7RmRiIG5leHRob3AgZ3JvdXAgd2l0aCBsZWdzIGRpZmZlcmluZyBpbiBwb3J0XCYjMzQ7XG4mIzQzO1xuJiM0MztcdFx0cnVuX2NtZCBcJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgODQgdmlhIDIwMDE6ZGI4OjkxOjoyIGZkYlwmIzM0O1xuJiM0MztcdFx0Y2hlY2tfbmV4dGhvcCBcJiMzNDtpZCA4NFwmIzM0OyBcJiMzNDtpZCA4NCB2aWEgMjAwMTpkYjg6OTE6OjIgc2NvcGUgbGluayBmZGJcJiMzNDtcbiYjNDM7XHRcdGxvZ190ZXN0ICQ/IDAgXCYjMzQ7RmRiIG5leHRob3Agd2l0aG91dCBwb3J0IG9taXRzIHBvcnRcJiMzNDtcbiYjNDM7XHRmaVxuJiM0MztcbiBcdHJ1bl9jbWQgXCYjMzQ7JElQIGxpbmsgYWRkIG5hbWUgdngxMCB0eXBlIHZ4bGFuIGlkIDEwMTAgbG9jYWwgMjAwMTpkYjg6OTE6OjkgcmVtb3RlIDIwMDE6ZGI4OjkxOjoxMCBkc3Rwb3J0IDQ3ODkgbm9sZWFybmluZyBub3VkcGNzdW0gdG9zIGluaGVyaXQgdHRsIDEwMFwmIzM0O1xuIFx0cnVuX2NtZCBcJiMzNDskQlJJREdFIGZkYiBhZGQgMDI6MDI6MDA6MDA6MDA6MTMgZGV2IHZ4MTAgbmhpZCAxMDIgc2VsZlwmIzM0O1xuIFx0bG9nX3Rlc3QgJD8gMCBcJiMzNDtGZGIgbWFjIGFkZCB3aXRoIG5leHRob3AgZ3JvdXBcJiMzNDtcbkBAIC02MTQsNiAmIzQzOzY0OCwzMSBAQCBpcHY0X2ZkYl9ncnBfZmNuYWwoKVxuIFx0cnVuX2NtZCBcJiMzNDskSVAgbmV4dGhvcCByZXBsYWNlIGlkIDIwIHZpYSAxNzIuMTYuMS4yIGZkYlwmIzM0O1xuIFx0bG9nX3Rlc3QgJD8gMiBcJiMzNDtSZXBsYWNlIG5vbi1GREIgbmV4dGhvcCB0byBGREIgbmV4dGhvcCB3aGlsZSBpbiBhIGdyb3VwXCYjMzQ7XG4gXG4mIzQzO1x0IyBOSEFfRkRCX1BPUlQ6IG9wdGlvbmFsIHBlci1uZXh0aG9wIFZYTEFOIGRlc3RpbmF0aW9uIFVEUCBwb3J0LFxuJiM0MztcdCMgbGV0dGluZyBhbiBmZGIgbmV4dGhvcCBncm91cCBiYWxhbmNlIGEgZmxvdyBhY3Jvc3MgbGVncyB0aGF0IHNoYXJlXG4mIzQzO1x0IyBhbiB1bmRlcmxheSBJUCBidXQgbGlzdGVuIG9uIGRpZmZlcmVudCBVRFAgcG9ydHMuXG4mIzQzO1x0aWYgY2hlY2tfbmV4dGhvcF9mZGJfcG9ydF9zdXBwb3J0OyB0aGVuXG4mIzQzO1x0XHRydW5fY21kIFwmIzM0OyRJUCBuZXh0aG9wIGFkZCBpZCAzMCB2aWEgMTcyLjE2LjEuMiBmZGIgcG9ydCA0NzkwXCYjMzQ7XG4mIzQzO1x0XHRjaGVja19uZXh0aG9wIFwmIzM0O2lkIDMwXCYjMzQ7IFwmIzM0O2lkIDMwIHZpYSAxNzIuMTYuMS4yIHNjb3BlIGxpbmsgZmRiIHBvcnQgNDc5MFwmIzM0O1xuJiM0MztcdFx0bG9nX3Rlc3QgJD8gMCBcJiMzNDtGZGIgbmV4dGhvcCB3aXRoIHBvcnRcJiMzNDtcbiYjNDM7XG4mIzQzO1x0XHRydW5fY21kIFwmIzM0OyRJUCBuZXh0aG9wIGFkZCBpZCAzMSBmZGIgcG9ydCA0NzkwXCYjMzQ7XG4mIzQzO1x0XHRsb2dfdGVzdCAkPyAyIFwmIzM0O0ZkYiBuZXh0aG9wIHdpdGggcG9ydCBidXQgbm8gZ2F0ZXdheVwmIzM0O1xuJiM0MztcbiYjNDM7XHRcdHJ1bl9jbWQgXCYjMzQ7JElQIG5leHRob3AgYWRkIGlkIDMxIHZpYSAxNzIuMTYuMS4yIGZkYiBwb3J0IDBcJiMzNDtcbiYjNDM7XHRcdGxvZ190ZXN0ICQ/IDIgXCYjMzQ7RmRiIG5leHRob3Agd2l0aCBwb3J0IDBcJiMzNDtcbiYjNDM7XG4mIzQzO1x0XHRydW5fY21kIFwmIzM0OyRJUCBuZXh0aG9wIGFkZCBpZCAzMiB2aWEgMTcyLjE2LjEuMiBmZGIgcG9ydCA0Nzg5XCYjMzQ7XG4mIzQzO1x0XHRydW5fY21kIFwmIzM0OyRJUCBuZXh0aG9wIGFkZCBpZCAzMyB2aWEgMTcyLjE2LjEuMyBmZGIgcG9ydCA1Nzg5XCYjMzQ7XG4mIzQzO1x0XHRydW5fY21kIFwmIzM0OyRJUCBuZXh0aG9wIGFkZCBpZCAxMDUgZ3JvdXAgMzIvMzMgZmRiXCYjMzQ7XG4mIzQzO1x0XHRjaGVja19uZXh0aG9wIFwmIzM0O2lkIDEwNVwmIzM0OyBcJiMzNDtpZCAxMDUgZ3JvdXAgMzIvMzMgZmRiXCYjMzQ7XG4mIzQzO1x0XHRsb2dfdGVzdCAkPyAwIFwmIzM0O0ZkYiBuZXh0aG9wIGdyb3VwIHdpdGggbGVncyBkaWZmZXJpbmcgaW4gcG9ydFwmIzM0O1xuJiM0MztcbiYjNDM7XHRcdHJ1bl9jbWQgXCYjMzQ7JElQIG5leHRob3AgYWRkIGlkIDM0IHZpYSAxNzIuMTYuMS4yIGZkYlwmIzM0O1xuJiM0MztcdFx0Y2hlY2tfbmV4dGhvcCBcJiMzNDtpZCAzNFwmIzM0OyBcJiMzNDtpZCAzNCB2aWEgMTcyLjE2LjEuMiBzY29wZSBsaW5rIGZkYlwmIzM0O1xuJiM0MztcdFx0bG9nX3Rlc3QgJD8gMCBcJiMzNDtGZGIgbmV4dGhvcCB3aXRob3V0IHBvcnQgb21pdHMgcG9ydFwmIzM0O1xuJiM0MztcdGZpXG4mIzQzO1xuIFx0cnVuX2NtZCBcJiMzNDskSVAgbGluayBhZGQgbmFtZSB2eDEwIHR5cGUgdnhsYW4gaWQgMTAxMCBsb2NhbCAxMC4wLjAuMSByZW1vdGUgMTAuMC4wLjIgZHN0cG9ydCA0Nzg5IG5vbGVhcm5pbmcgbm91ZHBjc3VtIHRvcyBpbmhlcml0IHR0bCAxMDBcJiMzNDtcbiBcdHJ1bl9jbWQgXCYjMzQ7JEJSSURHRSBmZGIgYWRkIDAyOjAyOjAwOjAwOjAwOjEzIGRldiB2eDEwIG5oaWQgMTAyIHNlbGZcJiMzNDtcbiBcdGxvZ190ZXN0ICQ/IDAgXCYjMzQ7RmRiIG1hYyBhZGQgd2l0aCBuZXh0aG9wIGdyb3VwXCYjMzQ7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rlc3RfdnhsYW5fbmguc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGVzdF92eGxhbl9uaC5zaFxuaW5kZXggMjBmMzM2OWY3NzZiMTUuLjM0YTI0YTRmOTViZjdiIDEwMDc1NVxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rlc3RfdnhsYW5fbmguc2hcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90ZXN0X3Z4bGFuX25oLnNoXG5AQCAtNTYsNiAmIzQzOzU2LDE2IEBAIHRjX3N0YXRzX2dldCgpXG4gXHR0Y19ydWxlX2hhbmRsZV9zdGF0c19nZXQgXCYjMzQ7ZGV2IGR1bW15MSBlZ3Jlc3NcJiMzNDsgMTAxIFwmIzM0Oy5wYWNrZXRzXCYjMzQ7IFwmIzM0Oy1uICRuczFcJiMzNDtcbiB9XG4gXG4mIzQzO25oX3N0YXRzX2dldF9wb3J0KClcbiYjNDM7e1xuJiM0MztcdGlwIC1uIFwmIzM0OyRuczFcJiMzNDsgLXMgLWogbmV4dGhvcCBzaG93IGlkIDIwIHwganEgXCYjMzQ7LltdW1xcXCYjMzQ7Z3JvdXBfc3RhdHNcXFwmIzM0O11bXVtcXFwmIzM0O3BhY2tldHNcXFwmIzM0O11cJiMzNDtcbiYjNDM7fVxuJiM0MztcbiYjNDM7dGNfc3RhdHNfZ2V0X3BvcnQoKVxuJiM0Mzt7XG4mIzQzO1x0dGNfcnVsZV9oYW5kbGVfc3RhdHNfZ2V0IFwmIzM0O2RldiBkdW1teTEgZWdyZXNzXCYjMzQ7IDEwMiBcJiMzNDsucGFja2V0c1wmIzM0OyBcJiMzNDstbiAkbnMxXCYjMzQ7XG4mIzQzO31cbiYjNDM7XG4gYmFzaWNfdHhfY29tbW9uKClcbiB7XG4gXHRsb2NhbCBhZl9zdHI9JDE7IHNoaWZ0XG5AQCAtOTAsNiAmIzQzOzEwMCwyNyBAQCBiYXNpY190eF9jb21tb24oKVxuIFx0YnVzeXdhaXQgXCYjMzQ7JEJVU1lXQUlUX1RJTUVPVVRcJiMzNDsgdW50aWxfY291bnRlcl9pcyBcJiMzNDs9PSAxXCYjMzQ7IHRjX3N0YXRzX2dldCBcdTAwM2UgL2Rldi9udWxsXG4gXHRjaGVja19lcnIgJD8gXCYjMzQ7dGMgZmlsdGVyIHN0YXRzIGRpZCBub3QgaW5jcmVhc2VcJiMzNDtcbiBcbiYjNDM7XHQjIEFkZCBhIHNlY29uZCBGREIgbmV4dGhvcCBncm91cCB3aG9zZSBuZXh0aG9wIGNhcnJpZXMgYSBwZXItbmV4dGhvcFxuJiM0MztcdCMgZGVzdGluYXRpb24gcG9ydCAoTkhBX0ZEQl9QT1JUKSB0aGF0IGRpZmZlcnMgZnJvbSB0aGUgVlhMQU4gZGV2aWNlXG4mIzQzO1x0IyBkZWZhdWx0LiBNYXRjaGluZyBvdXRlciB0cmFmZmljIG11c3QgZWdyZXNzIHdpdGggdGhhdCBwb3J0LCBzbyBhXG4mIzQzO1x0IyBzZXBhcmF0ZSBmbG93ZXIgZmlsdGVyIGtleWVkIG9uIHRoZSBuZXcgcG9ydCBjYXRjaGVzIGl0LlxuJiM0MztcdGlmIGlwIG5leHRob3AgaGVscCAyXHUwMDNlXHUwMDI2MSB8IGdyZXAgLXEgXCYjMzQ7ZmRiIFxcWyBwb3J0XCYjMzQ7OyB0aGVuXG4mIzQzO1x0XHRydW5fY21kIFwmIzM0O3RjIC1uICRuczEgZmlsdGVyIGFkZCBkZXYgZHVtbXkxIGVncmVzcyBwcm90byAkcHJvdG8gcHJlZiAxIGhhbmRsZSAxMDIgZmxvd2VyIGlwX3Byb3RvIHVkcCBkc3RfaXAgJHJlbW90ZV9hZGRyIGRzdF9wb3J0IDQ3OTAgYWN0aW9uIHBhc3NcJiMzNDtcbiYjNDM7XG4mIzQzO1x0XHRydW5fY21kIFwmIzM0O2lwIC1uICRuczEgbmV4dGhvcCBhZGQgaWQgMiB2aWEgJHJlbW90ZV9hZGRyIGZkYiBwb3J0IDQ3OTBcJiMzNDtcbiYjNDM7XHRcdHJ1bl9jbWQgXCYjMzQ7aXAgLW4gJG5zMSBuZXh0aG9wIGFkZCBpZCAyMCBncm91cCAyIGZkYlwmIzM0O1xuJiM0MztcbiYjNDM7XHRcdHJ1bl9jbWQgXCYjMzQ7YnJpZGdlIC1uICRuczEgZmRiIGFkZCAwMDoxMToyMjozMzo0NDo2NiBkZXYgdngwIHNlbGYgc3RhdGljIG5oaWQgMjBcJiMzNDtcbiYjNDM7XG4mIzQzO1x0XHRydW5fY21kIFwmIzM0O2lwIG5ldG5zIGV4ZWMgJG5zMSBtYXVzZXphaG4gdngwIC1hIG93biAtYiAwMDoxMToyMjozMzo0NDo2NiAtYyAxIC1xXCYjMzQ7XG4mIzQzO1xuJiM0MztcdFx0YnVzeXdhaXQgXCYjMzQ7JEJVU1lXQUlUX1RJTUVPVVRcJiMzNDsgdW50aWxfY291bnRlcl9pcyBcJiMzNDs9PSAxXCYjMzQ7IG5oX3N0YXRzX2dldF9wb3J0IFx1MDAzZSAvZGV2L251bGxcbiYjNDM7XHRcdGNoZWNrX2VyciAkPyBcJiMzNDtGREIgbmV4dGhvcCBncm91cCBzdGF0cyBkaWQgbm90IGluY3JlYXNlICh3aXRoIHBvcnQpXCYjMzQ7XG4mIzQzO1xuJiM0MztcdFx0YnVzeXdhaXQgXCYjMzQ7JEJVU1lXQUlUX1RJTUVPVVRcJiMzNDsgdW50aWxfY291bnRlcl9pcyBcJiMzNDs9PSAxXCYjMzQ7IHRjX3N0YXRzX2dldF9wb3J0IFx1MDAzZSAvZGV2L251bGxcbiYjNDM7XHRcdGNoZWNrX2VyciAkPyBcJiMzNDt0YyBmaWx0ZXIgc3RhdHMgZGlkIG5vdCBpbmNyZWFzZSAod2l0aCBwb3J0KVwmIzM0O1xuJiM0MztcdGZpXG4mIzQzO1xuIFx0bG9nX3Rlc3QgXCYjMzQ7VlhMQU4gRkRCIG5leHRob3A6ICRhZl9zdHIgYmFzaWMgVHhcJiMzNDtcbiB9XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTY6MTY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZYTEFOJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnRtX3RvX25oX2NvbmZpZyYjMzQ7LAogICAgJiMzNDtuZXh0aG9wX2NyZWF0ZSYjMzQ7LAogICAgJiMzNDtuaF9maWxsX25vZGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBuZXRsaW5rIGF0dHJpYnV0ZSBOSEFfRkRCX1BPUlQgdG8gc3BlY2lmeSBhIFVEUCBkZXN0aW5hdGlvbiBwb3J0IGZvciBGREIgbmV4dGhvcHMgKGUuZy4sIFZYTEFOKS4gSXQgbW9kaWZpZXMgdGhlIG5leHRob3AgbmV0bGluayBjb250cm9sIHBhdGggYW5kIFZYTEFOIGRhdGFwYXRoLiBUaGUgbmV0bGluayBjb250cm9sIHBhdGggZnVuY3Rpb25zIGFyZSBnb29kIHRhcmdldHMgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDg1M2MzMjQ2NWU4ZDdkYzYyNjMxNTJhOGFmMzQ1MGM1OGIyZjAxMDIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEp1bCAyMiAxNjoxNjozNiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L25leHRob3AuaCBiL2luY2x1ZGUvbmV0L25leHRob3AuaAppbmRleCA1NzJlNjljZGE0NzY2ZC4uMTllODY3MGQ5NjRkOWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L25leHRob3AuaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL25ldC9uZXh0aG9wLmgKQEAgLTI4LDYgJiM0MzsyOCw3IEBAIHN0cnVjdCBuaF9jb25maWcgewogCXU4CQluaF9wcm90b2NvbDsKIAl1OAkJbmhfYmxhY2tob2xlOwogCXU4CQluaF9mZGI7CiYjNDM7CV9fYmUxNgkJbmhfZmRiX3BvcnQ7CiAJdTMyCQluaF9mbGFnczsKIAogCWludAkJbmhfaWZpbmRleDsKQEAgLTYzLDYgJiM0Mzs2NCw3IEBAIHN0cnVjdCBuaF9pbmZvIHsKIAl1OAkJCWZhbWlseTsKIAlib29sCQkJcmVqZWN0X25oOwogCWJvb2wJCQlmZGJfbmg7CiYjNDM7CV9fYmUxNgkJCWZkYl9wb3J0OwogCiAJdW5pb24gewogCQlzdHJ1Y3QgZmliX25oX2NvbW1vbglmaWJfbmhjOwpAQCAtNTc0LDcgJiM0Mzs1NzYsOCBAQCBzdHJ1Y3QgZmliX25oX2NvbW1vbiAqbmV4dGhvcF9mZGJfbmhjKHN0cnVjdCBuZXh0aG9wICpuaCkKIH0KIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgZmliX25oX2NvbW1vbiAqbmV4dGhvcF9wYXRoX2ZkYl9yZXN1bHQoc3RydWN0IG5leHRob3AgKm5oLAotCQkJCQkJCSAgICBpbnQgaGFzaCkKJiM0MzsJCQkJCQkJICAgIGludCBoYXNoLAomIzQzOwkJCQkJCQkgICAgX19iZTE2ICpmZGJfcG9ydCkKIHsKIAlzdHJ1Y3QgbmhfaW5mbyAqbmhpOwogCXN0cnVjdCBuZXh0aG9wICpuaHA7CkBAIC01ODMsNiAmIzQzOzU4Niw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGZpYl9uaF9jb21tb24gKm5leHRob3BfcGF0aF9mZGJfcmVzdWx0KHN0cnVjdCBuZXh0aG9wICpuaCwKIAlpZiAodW5saWtlbHkoIW5ocCkpCiAJCXJldHVybiBOVUxMOwogCW5oaSA9IHJjdV9kZXJlZmVyZW5jZShuaHAtJmd0O25oX2luZm8pOwomIzQzOwkqZmRiX3BvcnQgPSBuaGktJmd0O2ZkYl9wb3J0OwogCXJldHVybiAmYW1wO25oaS0mZ3Q7ZmliX25oYzsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdnhsYW4uaCBiL2luY2x1ZGUvbmV0L3Z4bGFuLmgKaW5kZXggZGZiYTg5Njk1ZWZjZmEuLmRlNDFiMzc0Njg4ZjI5IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC92eGxhbi5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbmV0L3Z4bGFuLmgKQEAgLTU2Nyw4ICYjNDM7NTY3LDkgQEAgc3RhdGljIGlubGluZSBib29sIHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdChzdHJ1Y3QgbmV4dGhvcCAqbmgsCiAJCQkJCSAgICBzdHJ1Y3QgdnhsYW5fcmRzdCAqcmRzdCkKIHsKIAlzdHJ1Y3QgZmliX25oX2NvbW1vbiAqbmhjOwomIzQzOwlfX2JlMTYgZmRiX3BvcnQgPSAwOwogCi0JbmhjID0gbmV4dGhvcF9wYXRoX2ZkYl9yZXN1bHQobmgsIGhhc2ggJmd0OyZndDsgMSk7CiYjNDM7CW5oYyA9IG5leHRob3BfcGF0aF9mZGJfcmVzdWx0KG5oLCBoYXNoICZndDsmZ3Q7IDEsICZhbXA7ZmRiX3BvcnQpOwogCWlmICh1bmxpa2VseSghbmhjKSkKIAkJcmV0dXJuIGZhbHNlOwogCkBAIC01ODMsNiAmIzQzOzU4NCw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB2eGxhbl9mZGJfbmhfcGF0aF9zZWxlY3Qoc3RydWN0IG5leHRob3AgKm5oLAogCQlicmVhazsKIAl9CiAKJiM0MzsJcmRzdC0mZ3Q7cmVtb3RlX3BvcnQgPSBmZGJfcG9ydDsKJiM0MzsKIAlyZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L25leHRob3AuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9uZXh0aG9wLmgKaW5kZXggYmM0OWJhZjRhMjY3ZjAuLmU1ODdiYmYzYjg5MGEzIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvbmV4dGhvcC5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvdWFwaS9saW51eC9uZXh0aG9wLmgKQEAgLTgzLDYgJiM0Mzs4Myw5IEBAIGVudW0gewogCS8qIHUzMjsgcmVhZC1vbmx5OyB3aGV0aGVyIGFueSBkcml2ZXIgY29sbGVjdHMgSFcgc3RhdHMgKi8KIAlOSEFfSFdfU1RBVFNfVVNFRCwKIAomIzQzOwkvKiBiZTE2OyBVRFAgZGVzdGluYXRpb24gcG9ydCBmb3IgYW4gZmRiIG5leHRob3AgKGUuZy4gVlhMQU4pICovCiYjNDM7CU5IQV9GREJfUE9SVCwKJiM0MzsKIAlfX05IQV9NQVgsCiB9OwogCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9uZXh0aG9wLmMgYi9uZXQvaXB2NC9uZXh0aG9wLmMKaW5kZXggNjIwNWJkNTdhYTg1MjAuLmI4MmRhM2VmZjYzYzkxIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9uZXh0aG9wLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L2lwdjQvbmV4dGhvcC5jCkBAIC0zOSw2ICYjNDM7MzksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgcnRtX25oX3BvbGljeV9uZXdbXSA9IHsKIAlbTkhBX0VOQ0FQX1RZUEVdCT0geyAudHlwZSA9IE5MQV9VMTYgfSwKIAlbTkhBX0VOQ0FQXQkJPSB7IC50eXBlID0gTkxBX05FU1RFRCB9LAogCVtOSEFfRkRCXQkJPSB7IC50eXBlID0gTkxBX0ZMQUcgfSwKJiM0MzsJW05IQV9GREJfUE9SVF0JCT0gTkxBX1BPTElDWV9NSU4oTkxBX0JFMTYsIDEpLAogCVtOSEFfUkVTX0dST1VQXQkJPSB7IC50eXBlID0gTkxBX05FU1RFRCB9LAogCVtOSEFfSFdfU1RBVFNfRU5BQkxFXQk9IE5MQV9QT0xJQ1lfTUFYKE5MQV9VMzIsIHRydWUpLAogfTsKQEAgLTk1Niw2ICYjNDM7OTU3LDkgQEAgc3RhdGljIGludCBuaF9maWxsX25vZGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5leHRob3AgKm5oLAogCX0gZWxzZSBpZiAobmhpLSZndDtmZGJfbmgpIHsKIAkJaWYgKG5sYV9wdXRfZmxhZyhza2IsIE5IQV9GREIpKQogCQkJZ290byBubGFfcHV0X2ZhaWx1cmU7CiYjNDM7CQlpZiAobmhpLSZndDtmZGJfcG9ydCAmYW1wOyZhbXA7CiYjNDM7CQkgICAgbmxhX3B1dF9iZTE2KHNrYiwgTkhBX0ZEQl9QT1JULCBuaGktJmd0O2ZkYl9wb3J0KSkKJiM0MzsJCQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsKIAl9IGVsc2UgewogCQljb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2OwogCkBAIC0xMDU1LDYgJiM0MzsxMDU5LDkgQEAgc3RhdGljIHNpemVfdCBuaF9ubG1zZ19zaXplX3NpbmdsZShzdHJ1Y3QgbmV4dGhvcCAqbmgpCiAJCWJyZWFrOwogCX0KIAomIzQzOwlpZiAobmhpLSZndDtmZGJfcG9ydCkKJiM0MzsJCXN6ICYjNDM7PSBubGFfdG90YWxfc2l6ZSgyKTsJLyogTkhBX0ZEQl9QT1JUICovCiYjNDM7CiAJaWYgKG5oaS0mZ3Q7ZmliX25oYy5uaGNfbHd0c3RhdGUpIHsKIAkJc3ogJiM0Mzs9IGx3dHVubmVsX2dldF9lbmNhcF9zaXplKG5oaS0mZ3Q7ZmliX25oYy5uaGNfbHd0c3RhdGUpOwogCQlzeiAmIzQzOz0gbmxhX3RvdGFsX3NpemUoMik7ICAvKiBOSEFfRU5DQVBfVFlQRSAqLwpAQCAtMjk1Niw4ICYjNDM7Mjk2MywxMCBAQCBzdGF0aWMgc3RydWN0IG5leHRob3AgKm5leHRob3BfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5oX2NvbmZpZyAqY2ZnLAogCW5oaS0mZ3Q7ZmFtaWx5ID0gY2ZnLSZndDtuaF9mYW1pbHk7CiAJbmhpLSZndDtmaWJfbmhjLm5oY19zY29wZSA9IFJUX1NDT1BFX0xJTks7CiAKLQlpZiAoY2ZnLSZndDtuaF9mZGIpCiYjNDM7CWlmIChjZmctJmd0O25oX2ZkYikgewogCQluaGktJmd0O2ZkYl9uaCA9IDE7CiYjNDM7CQluaGktJmd0O2ZkYl9wb3J0ID0gY2ZnLSZndDtuaF9mZGJfcG9ydDsKJiM0MzsJfQogCiAJaWYgKGNmZy0mZ3Q7bmhfYmxhY2tob2xlKSB7CiAJCW5oaS0mZ3Q7cmVqZWN0X25oID0gMTsKQEAgLTMxNDcsNiAmIzQzOzMxNTYsMTUgQEAgc3RhdGljIGludCBydG1fdG9fbmhfY29uZmlnKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJY2ZnLSZndDtuaF9mZGIgPSBubGFfZ2V0X2ZsYWcodGJbTkhBX0ZEQl0pOwogCX0KIAomIzQzOwlpZiAodGJbTkhBX0ZEQl9QT1JUXSkgewomIzQzOwkJaWYgKCF0YltOSEFfRkRCXSB8fCAhdGJbTkhBX0dBVEVXQVldKSB7CiYjNDM7CQkJTkxfU0VUX0VSUl9NU0coZXh0YWNrLAomIzQzOwkJCQkgICAgICAgJiMzNDtGREIgcG9ydCBjYW4gb25seSBiZSBzZXQgb24gZmRiIG5leHRob3BzIHRoYXQgaGF2ZSBhIGdhdGV3YXkmIzM0Oyk7CiYjNDM7CQkJZ290byBvdXQ7CiYjNDM7CQl9CiYjNDM7CQljZmctJmd0O25oX2ZkYl9wb3J0ID0gbmxhX2dldF9iZTE2KHRiW05IQV9GREJfUE9SVF0pOwomIzQzOwl9CiYjNDM7CiAJaWYgKHRiW05IQV9HUk9VUF0pIHsKIAkJaWYgKG5obS0mZ3Q7bmhfZmFtaWx5ICE9IEFGX1VOU1BFQykgewogCQkJTkxfU0VUX0VSUl9NU0coZXh0YWNrLCAmIzM0O0ludmFsaWQgZmFtaWx5IGZvciBncm91cCYjMzQ7KTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9maWJfbmV4dGhvcHMuc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvZmliX25leHRob3BzLnNoCmluZGV4IGFjODY4YTczMTY5NDZhLi4xY2U0ZjQ1ZmE2NTE1ZiAxMDA3NTUKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2ZpYl9uZXh0aG9wcy5zaAomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvZmliX25leHRob3BzLnNoCkBAIC00MzIsNiAmIzQzOzQzMiwxNSBAQCBjaGVja19uZXh0aG9wX2ZkYl9zdXBwb3J0KCkKIAlmaQogfQogCiYjNDM7Y2hlY2tfbmV4dGhvcF9mZGJfcG9ydF9zdXBwb3J0KCkKJiM0Mzt7CiYjNDM7CSRJUCBuZXh0aG9wIGhlbHAgMiZndDsmYW1wOzEgfCBncmVwIC1xICYjMzQ7ZmRiIFxbIHBvcnQmIzM0OwomIzQzOwlpZiBbICQ/IC1uZSAwIF07IHRoZW4KJiM0MzsJCWVjaG8gJiMzNDtTS0lQOiBpcHJvdXRlMiB0b28gb2xkLCBtaXNzaW5nIGZkYiBuZXh0aG9wIHBvcnQgc3VwcG9ydCYjMzQ7CiYjNDM7CQlyZXR1cm4gJGtzZnRfc2tpcAomIzQzOwlmaQomIzQzO30KJiM0MzsKIGNoZWNrX25leHRob3BfcmVzX3N1cHBvcnQoKQogewogCSRJUCBuZXh0aG9wIGhlbHAgMiZndDsmYW1wOzEgfCBncmVwIC1xIHJlc2lsaWVudApAQCAtNTE0LDYgJiM0Mzs1MjMsMzEgQEAgaXB2Nl9mZGJfZ3JwX2ZjbmFsKCkKIAlydW5fY21kICYjMzQ7JElQIG5leHRob3AgcmVwbGFjZSBpZCA3MiB2aWEgMjAwMTpkYjg6OTE6OjIgZmRiJiMzNDsKIAlsb2dfdGVzdCAkPyAyICYjMzQ7UmVwbGFjZSBub24tRkRCIG5leHRob3AgdG8gRkRCIG5leHRob3Agd2hpbGUgaW4gYSBncm91cCYjMzQ7CiAKJiM0MzsJIyBOSEFfRkRCX1BPUlQ6IG9wdGlvbmFsIHBlci1uZXh0aG9wIFZYTEFOIGRlc3RpbmF0aW9uIFVEUCBwb3J0LAomIzQzOwkjIGxldHRpbmcgYW4gZmRiIG5leHRob3AgZ3JvdXAgYmFsYW5jZSBhIGZsb3cgYWNyb3NzIGxlZ3MgdGhhdCBzaGFyZQomIzQzOwkjIGFuIHVuZGVybGF5IElQIGJ1dCBsaXN0ZW4gb24gZGlmZmVyZW50IFVEUCBwb3J0cy4KJiM0MzsJaWYgY2hlY2tfbmV4dGhvcF9mZGJfcG9ydF9zdXBwb3J0OyB0aGVuCiYjNDM7CQlydW5fY21kICYjMzQ7JElQIG5leHRob3AgYWRkIGlkIDgwIHZpYSAyMDAxOmRiODo5MTo6MiBmZGIgcG9ydCA0NzkwJiMzNDsKJiM0MzsJCWNoZWNrX25leHRob3AgJiMzNDtpZCA4MCYjMzQ7ICYjMzQ7aWQgODAgdmlhIDIwMDE6ZGI4OjkxOjoyIHNjb3BlIGxpbmsgZmRiIHBvcnQgNDc5MCYjMzQ7CiYjNDM7CQlsb2dfdGVzdCAkPyAwICYjMzQ7RmRiIG5leHRob3Agd2l0aCBwb3J0JiMzNDsKJiM0MzsKJiM0MzsJCXJ1bl9jbWQgJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgODEgZmRiIHBvcnQgNDc5MCYjMzQ7CiYjNDM7CQlsb2dfdGVzdCAkPyAyICYjMzQ7RmRiIG5leHRob3Agd2l0aCBwb3J0IGJ1dCBubyBnYXRld2F5JiMzNDsKJiM0MzsKJiM0MzsJCXJ1bl9jbWQgJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgODEgdmlhIDIwMDE6ZGI4OjkxOjoyIGZkYiBwb3J0IDAmIzM0OwomIzQzOwkJbG9nX3Rlc3QgJD8gMiAmIzM0O0ZkYiBuZXh0aG9wIHdpdGggcG9ydCAwJiMzNDsKJiM0MzsKJiM0MzsJCXJ1bl9jbWQgJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgODIgdmlhIDIwMDE6ZGI4OjkxOjoyIGZkYiBwb3J0IDQ3ODkmIzM0OwomIzQzOwkJcnVuX2NtZCAmIzM0OyRJUCBuZXh0aG9wIGFkZCBpZCA4MyB2aWEgMjAwMTpkYjg6OTE6OjMgZmRiIHBvcnQgNTc4OSYjMzQ7CiYjNDM7CQlydW5fY21kICYjMzQ7JElQIG5leHRob3AgYWRkIGlkIDEwNiBncm91cCA4Mi84MyBmZGImIzM0OwomIzQzOwkJY2hlY2tfbmV4dGhvcCAmIzM0O2lkIDEwNiYjMzQ7ICYjMzQ7aWQgMTA2IGdyb3VwIDgyLzgzIGZkYiYjMzQ7CiYjNDM7CQlsb2dfdGVzdCAkPyAwICYjMzQ7RmRiIG5leHRob3AgZ3JvdXAgd2l0aCBsZWdzIGRpZmZlcmluZyBpbiBwb3J0JiMzNDsKJiM0MzsKJiM0MzsJCXJ1bl9jbWQgJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgODQgdmlhIDIwMDE6ZGI4OjkxOjoyIGZkYiYjMzQ7CiYjNDM7CQljaGVja19uZXh0aG9wICYjMzQ7aWQgODQmIzM0OyAmIzM0O2lkIDg0IHZpYSAyMDAxOmRiODo5MTo6MiBzY29wZSBsaW5rIGZkYiYjMzQ7CiYjNDM7CQlsb2dfdGVzdCAkPyAwICYjMzQ7RmRiIG5leHRob3Agd2l0aG91dCBwb3J0IG9taXRzIHBvcnQmIzM0OwomIzQzOwlmaQomIzQzOwogCXJ1bl9jbWQgJiMzNDskSVAgbGluayBhZGQgbmFtZSB2eDEwIHR5cGUgdnhsYW4gaWQgMTAxMCBsb2NhbCAyMDAxOmRiODo5MTo6OSByZW1vdGUgMjAwMTpkYjg6OTE6OjEwIGRzdHBvcnQgNDc4OSBub2xlYXJuaW5nIG5vdWRwY3N1bSB0b3MgaW5oZXJpdCB0dGwgMTAwJiMzNDsKIAlydW5fY21kICYjMzQ7JEJSSURHRSBmZGIgYWRkIDAyOjAyOjAwOjAwOjAwOjEzIGRldiB2eDEwIG5oaWQgMTAyIHNlbGYmIzM0OwogCWxvZ190ZXN0ICQ/IDAgJiMzNDtGZGIgbWFjIGFkZCB3aXRoIG5leHRob3AgZ3JvdXAmIzM0OwpAQCAtNjE0LDYgJiM0Mzs2NDgsMzEgQEAgaXB2NF9mZGJfZ3JwX2ZjbmFsKCkKIAlydW5fY21kICYjMzQ7JElQIG5leHRob3AgcmVwbGFjZSBpZCAyMCB2aWEgMTcyLjE2LjEuMiBmZGImIzM0OwogCWxvZ190ZXN0ICQ/IDIgJiMzNDtSZXBsYWNlIG5vbi1GREIgbmV4dGhvcCB0byBGREIgbmV4dGhvcCB3aGlsZSBpbiBhIGdyb3VwJiMzNDsKIAomIzQzOwkjIE5IQV9GREJfUE9SVDogb3B0aW9uYWwgcGVyLW5leHRob3AgVlhMQU4gZGVzdGluYXRpb24gVURQIHBvcnQsCiYjNDM7CSMgbGV0dGluZyBhbiBmZGIgbmV4dGhvcCBncm91cCBiYWxhbmNlIGEgZmxvdyBhY3Jvc3MgbGVncyB0aGF0IHNoYXJlCiYjNDM7CSMgYW4gdW5kZXJsYXkgSVAgYnV0IGxpc3RlbiBvbiBkaWZmZXJlbnQgVURQIHBvcnRzLgomIzQzOwlpZiBjaGVja19uZXh0aG9wX2ZkYl9wb3J0X3N1cHBvcnQ7IHRoZW4KJiM0MzsJCXJ1bl9jbWQgJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgMzAgdmlhIDE3Mi4xNi4xLjIgZmRiIHBvcnQgNDc5MCYjMzQ7CiYjNDM7CQljaGVja19uZXh0aG9wICYjMzQ7aWQgMzAmIzM0OyAmIzM0O2lkIDMwIHZpYSAxNzIuMTYuMS4yIHNjb3BlIGxpbmsgZmRiIHBvcnQgNDc5MCYjMzQ7CiYjNDM7CQlsb2dfdGVzdCAkPyAwICYjMzQ7RmRiIG5leHRob3Agd2l0aCBwb3J0JiMzNDsKJiM0MzsKJiM0MzsJCXJ1bl9jbWQgJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgMzEgZmRiIHBvcnQgNDc5MCYjMzQ7CiYjNDM7CQlsb2dfdGVzdCAkPyAyICYjMzQ7RmRiIG5leHRob3Agd2l0aCBwb3J0IGJ1dCBubyBnYXRld2F5JiMzNDsKJiM0MzsKJiM0MzsJCXJ1bl9jbWQgJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgMzEgdmlhIDE3Mi4xNi4xLjIgZmRiIHBvcnQgMCYjMzQ7CiYjNDM7CQlsb2dfdGVzdCAkPyAyICYjMzQ7RmRiIG5leHRob3Agd2l0aCBwb3J0IDAmIzM0OwomIzQzOwomIzQzOwkJcnVuX2NtZCAmIzM0OyRJUCBuZXh0aG9wIGFkZCBpZCAzMiB2aWEgMTcyLjE2LjEuMiBmZGIgcG9ydCA0Nzg5JiMzNDsKJiM0MzsJCXJ1bl9jbWQgJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgMzMgdmlhIDE3Mi4xNi4xLjMgZmRiIHBvcnQgNTc4OSYjMzQ7CiYjNDM7CQlydW5fY21kICYjMzQ7JElQIG5leHRob3AgYWRkIGlkIDEwNSBncm91cCAzMi8zMyBmZGImIzM0OwomIzQzOwkJY2hlY2tfbmV4dGhvcCAmIzM0O2lkIDEwNSYjMzQ7ICYjMzQ7aWQgMTA1IGdyb3VwIDMyLzMzIGZkYiYjMzQ7CiYjNDM7CQlsb2dfdGVzdCAkPyAwICYjMzQ7RmRiIG5leHRob3AgZ3JvdXAgd2l0aCBsZWdzIGRpZmZlcmluZyBpbiBwb3J0JiMzNDsKJiM0MzsKJiM0MzsJCXJ1bl9jbWQgJiMzNDskSVAgbmV4dGhvcCBhZGQgaWQgMzQgdmlhIDE3Mi4xNi4xLjIgZmRiJiMzNDsKJiM0MzsJCWNoZWNrX25leHRob3AgJiMzNDtpZCAzNCYjMzQ7ICYjMzQ7aWQgMzQgdmlhIDE3Mi4xNi4xLjIgc2NvcGUgbGluayBmZGImIzM0OwomIzQzOwkJbG9nX3Rlc3QgJD8gMCAmIzM0O0ZkYiBuZXh0aG9wIHdpdGhvdXQgcG9ydCBvbWl0cyBwb3J0JiMzNDsKJiM0MzsJZmkKJiM0MzsKIAlydW5fY21kICYjMzQ7JElQIGxpbmsgYWRkIG5hbWUgdngxMCB0eXBlIHZ4bGFuIGlkIDEwMTAgbG9jYWwgMTAuMC4wLjEgcmVtb3RlIDEwLjAuMC4yIGRzdHBvcnQgNDc4OSBub2xlYXJuaW5nIG5vdWRwY3N1bSB0b3MgaW5oZXJpdCB0dGwgMTAwJiMzNDsKIAlydW5fY21kICYjMzQ7JEJSSURHRSBmZGIgYWRkIDAyOjAyOjAwOjAwOjAwOjEzIGRldiB2eDEwIG5oaWQgMTAyIHNlbGYmIzM0OwogCWxvZ190ZXN0ICQ/IDAgJiMzNDtGZGIgbWFjIGFkZCB3aXRoIG5leHRob3AgZ3JvdXAmIzM0OwpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rlc3RfdnhsYW5fbmguc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGVzdF92eGxhbl9uaC5zaAppbmRleCAyMGYzMzY5Zjc3NmIxNS4uMzRhMjRhNGY5NWJmN2IgMTAwNzU1Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90ZXN0X3Z4bGFuX25oLnNoCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90ZXN0X3Z4bGFuX25oLnNoCkBAIC01Niw2ICYjNDM7NTYsMTYgQEAgdGNfc3RhdHNfZ2V0KCkKIAl0Y19ydWxlX2hhbmRsZV9zdGF0c19nZXQgJiMzNDtkZXYgZHVtbXkxIGVncmVzcyYjMzQ7IDEwMSAmIzM0Oy5wYWNrZXRzJiMzNDsgJiMzNDstbiAkbnMxJiMzNDsKIH0KIAomIzQzO25oX3N0YXRzX2dldF9wb3J0KCkKJiM0Mzt7CiYjNDM7CWlwIC1uICYjMzQ7JG5zMSYjMzQ7IC1zIC1qIG5leHRob3Agc2hvdyBpZCAyMCB8IGpxICYjMzQ7LltdW1wmIzM0O2dyb3VwX3N0YXRzXCYjMzQ7XVtdW1wmIzM0O3BhY2tldHNcJiMzNDtdJiMzNDsKJiM0Mzt9CiYjNDM7CiYjNDM7dGNfc3RhdHNfZ2V0X3BvcnQoKQomIzQzO3sKJiM0MzsJdGNfcnVsZV9oYW5kbGVfc3RhdHNfZ2V0ICYjMzQ7ZGV2IGR1bW15MSBlZ3Jlc3MmIzM0OyAxMDIgJiMzNDsucGFja2V0cyYjMzQ7ICYjMzQ7LW4gJG5zMSYjMzQ7CiYjNDM7fQomIzQzOwogYmFzaWNfdHhfY29tbW9uKCkKIHsKIAlsb2NhbCBhZl9zdHI9JDE7IHNoaWZ0CkBAIC05MCw2ICYjNDM7MTAwLDI3IEBAIGJhc2ljX3R4X2NvbW1vbigpCiAJYnVzeXdhaXQgJiMzNDskQlVTWVdBSVRfVElNRU9VVCYjMzQ7IHVudGlsX2NvdW50ZXJfaXMgJiMzNDs9PSAxJiMzNDsgdGNfc3RhdHNfZ2V0ICZndDsgL2Rldi9udWxsCiAJY2hlY2tfZXJyICQ/ICYjMzQ7dGMgZmlsdGVyIHN0YXRzIGRpZCBub3QgaW5jcmVhc2UmIzM0OwogCiYjNDM7CSMgQWRkIGEgc2Vjb25kIEZEQiBuZXh0aG9wIGdyb3VwIHdob3NlIG5leHRob3AgY2FycmllcyBhIHBlci1uZXh0aG9wCiYjNDM7CSMgZGVzdGluYXRpb24gcG9ydCAoTkhBX0ZEQl9QT1JUKSB0aGF0IGRpZmZlcnMgZnJvbSB0aGUgVlhMQU4gZGV2aWNlCiYjNDM7CSMgZGVmYXVsdC4gTWF0Y2hpbmcgb3V0ZXIgdHJhZmZpYyBtdXN0IGVncmVzcyB3aXRoIHRoYXQgcG9ydCwgc28gYQomIzQzOwkjIHNlcGFyYXRlIGZsb3dlciBmaWx0ZXIga2V5ZWQgb24gdGhlIG5ldyBwb3J0IGNhdGNoZXMgaXQuCiYjNDM7CWlmIGlwIG5leHRob3AgaGVscCAyJmd0OyZhbXA7MSB8IGdyZXAgLXEgJiMzNDtmZGIgXFsgcG9ydCYjMzQ7OyB0aGVuCiYjNDM7CQlydW5fY21kICYjMzQ7dGMgLW4gJG5zMSBmaWx0ZXIgYWRkIGRldiBkdW1teTEgZWdyZXNzIHByb3RvICRwcm90byBwcmVmIDEgaGFuZGxlIDEwMiBmbG93ZXIgaXBfcHJvdG8gdWRwIGRzdF9pcCAkcmVtb3RlX2FkZHIgZHN0X3BvcnQgNDc5MCBhY3Rpb24gcGFzcyYjMzQ7CiYjNDM7CiYjNDM7CQlydW5fY21kICYjMzQ7aXAgLW4gJG5zMSBuZXh0aG9wIGFkZCBpZCAyIHZpYSAkcmVtb3RlX2FkZHIgZmRiIHBvcnQgNDc5MCYjMzQ7CiYjNDM7CQlydW5fY21kICYjMzQ7aXAgLW4gJG5zMSBuZXh0aG9wIGFkZCBpZCAyMCBncm91cCAyIGZkYiYjMzQ7CiYjNDM7CiYjNDM7CQlydW5fY21kICYjMzQ7YnJpZGdlIC1uICRuczEgZmRiIGFkZCAwMDoxMToyMjozMzo0NDo2NiBkZXYgdngwIHNlbGYgc3RhdGljIG5oaWQgMjAmIzM0OwomIzQzOwomIzQzOwkJcnVuX2NtZCAmIzM0O2lwIG5ldG5zIGV4ZWMgJG5zMSBtYXVzZXphaG4gdngwIC1hIG93biAtYiAwMDoxMToyMjozMzo0NDo2NiAtYyAxIC1xJiMzNDsKJiM0MzsKJiM0MzsJCWJ1c3l3YWl0ICYjMzQ7JEJVU1lXQUlUX1RJTUVPVVQmIzM0OyB1bnRpbF9jb3VudGVyX2lzICYjMzQ7PT0gMSYjMzQ7IG5oX3N0YXRzX2dldF9wb3J0ICZndDsgL2Rldi9udWxsCiYjNDM7CQljaGVja19lcnIgJD8gJiMzNDtGREIgbmV4dGhvcCBncm91cCBzdGF0cyBkaWQgbm90IGluY3JlYXNlICh3aXRoIHBvcnQpJiMzNDsKJiM0MzsKJiM0MzsJCWJ1c3l3YWl0ICYjMzQ7JEJVU1lXQUlUX1RJTUVPVVQmIzM0OyB1bnRpbF9jb3VudGVyX2lzICYjMzQ7PT0gMSYjMzQ7IHRjX3N0YXRzX2dldF9wb3J0ICZndDsgL2Rldi9udWxsCiYjNDM7CQljaGVja19lcnIgJD8gJiMzNDt0YyBmaWx0ZXIgc3RhdHMgZGlkIG5vdCBpbmNyZWFzZSAod2l0aCBwb3J0KSYjMzQ7CiYjNDM7CWZpCiYjNDM7CiAJbG9nX3Rlc3QgJiMzNDtWWExBTiBGREIgbmV4dGhvcDogJGFmX3N0ciBiYXNpYyBUeCYjMzQ7CiB9CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTY6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjQwOAoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDQwNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFZYTEFOIEZEQiBOZXh0aG9wIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgaW50cm9kdWNlcyBgTkhBX0ZEQl9QT1JUYCBzdXBwb3J0IGluIG5leHRob3BzLCBzcGVjaWZpY2FsbHkgZm9yIFZYTEFOIEZEQiBuZXh0aG9wcy4gVGhpcyBpcyBjb3JlIG5ldHdvcmtpbmcgZnVuY3Rpb25hbGl0eSwgc28gaXQgbmVlZHMgY2FyZWZ1bCByZXZpZXcuIEl0IGxvb2tzIGxpa2UgaXQgdG91Y2hlcyBxdWl0ZSBhIGZldyBmaWxlczogYGluY2x1ZGUvbmV0L25leHRob3AuaGAsIGBpbmNsdWRlL25ldC92eGxhbi5oYCwgYGluY2x1ZGUvdWFwaS9saW51eC9uZXh0aG9wLmhgLCBgbmV0L2lwdjQvbmV4dGhvcC5jYCwgYW5kIHNvbWUgc2VsZnRlc3RzLCB3aGljaCBpcyB3aGF0IEkmIzM5O2QgZXhwZWN0IGZvciB0aGlzIGtpbmQgb2YgY2hhbmdlLiBUaGUgcHJpbWFyeSBmdW5jdGlvbiBvZiB0aGlzIHBhdGNoIGlzIGFsbG93aW5nIHVzZXJzIHRvIHNwZWNpZnkgYSBVRFAgZGVzdGluYXRpb24gcG9ydCBmb3IgYW4gRkRCIG5leHRob3AuCgpMZXQmIzM5O3MgYnJlYWsgZG93biB0aGUgZnVuY3Rpb25zIG1vZGlmaWVkIGFuZCBzZWUgd2hhdCYjMzk7cyBiZWluZyBhZmZlY3RlZC4gSXQgbG9va3MgbGlrZSB3ZSBoYXZlOgotICAgYG5leHRob3BfcGF0aF9mZGJfcmVzdWx0YCBpbiBgaW5jbHVkZS9uZXQvbmV4dGhvcC5oYAotICAgYHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdGAgaW4gYGluY2x1ZGUvbmV0L3Z4bGFuLmhgCi0gICBgbmhfZmlsbF9ub2RlYCBpbiBgbmV0L2lwdjQvbmV4dGhvcC5jYAotICAgYG5oX25sbXNnX3NpemVfc2luZ2xlYCBpbiBgbmV0L2lwdjQvbmV4dGhvcC5jYAotICAgYG5leHRob3BfY3JlYXRlYCBpbiBgbmV0L2lwdjQvbmV4dGhvcC5jYAotICAgYHJ0bV90b19uaF9jb25maWdgIGluIGBuZXQvaXB2NC9uZXh0aG9wLmNgCgpJIG5lZWQgdG8gY29uZmlybSB0aGUgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMgZm9yIHRoaXMuIE9idmlvdXNseSwgYENPTkZJR19WWExBTmAgaXMgbmVjZXNzYXJ5IGZvciBWWExBTiBzdXBwb3J0LiBBcyBmb3IgdGhlIHJlc3Qgb2YgdGhlIG5leHRob3AgZnVuY3Rpb25hbGl0eSwgSSB0aGluayB0aGF0IGlzIGEgc3RhbmRhcmQgcGFydCBvZiBJUHY0IHJvdXRpbmcsIG5vdCBkaXJlY3RseSByZWxhdGVkIHRvIGBDT05GSUdfSVBfUk9VVEVfTVVMVElQQVRIYC4gTGV0JiMzOTtzIGNvbmZpcm0gdGhhdCBieSBjaGVja2luZyBgbmV0L2lwdjQvbmV4dGhvcC5jYCBhbmQgYGluY2x1ZGUvbmV0L25leHRob3AuaGAgZGVwZW5kZW5jaWVzLiBMb29rcyBsaWtlIGBuZXQvaXB2NC9uZXh0aG9wLmNgIGlzIGFsd2F5cyBjb21waWxlZCBmb3IgSVB2NCwgbm90IHVuZGVyIGBDT05GSUdfSVBfUk9VVEVfTVVMVElQQVRIYC4gTGV0JiMzOTtzIGNoZWNrIGBuZXQvaXB2NC9NYWtlZmlsZWAgdG8gYmUgc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxNjoxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZXh0aG9wLm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvaXB2NC9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvaXB2NC9NYWtlZmlsZT02PW9iai15ICAgICA6PSByb3V0ZS5vIGluZXRwZWVyLm8gcHJvdG9jb2wubyBcXFxuLS1cbm5ldC9pcHY0L01ha2VmaWxlLTE2LVx0ICAgICBpbmV0X2ZyYWdtZW50Lm8gcGluZy5vIGlwX3R1bm5lbF9jb3JlLm8gZ3JlX29mZmxvYWQubyBcXFxubmV0L2lwdjQvTWFrZWZpbGU6MTc6XHQgICAgIG1ldHJpY3MubyBuZXRsaW5rLm8gbmV4dGhvcC5vIHVkcF90dW5uZWxfc3R1Yi5vXG5uZXQvaXB2NC9NYWtlZmlsZS0xOC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxNjoxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3NDUwCgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKklQdjQgYW5kIFZYTEFOIENvbmNlcm5zKioKClJpZ2h0LCBzbyB0aGlzIGNvZGUgaXMgYnVpbHQgYXNzdW1pbmcgSVB2NCwgbm8gaWZzLCBhbmRzLCBvciBidXRzLiBPa2F5LCB0aGF0JiMzOTtzIGZpbmUgZm9yIHNvbWUgY29udGV4dHMsIGJ1dCBpbW1lZGlhdGVseSBJJiMzOTttIHRoaW5raW5nIGFib3V0IFZYTEFOLiBJcyB0aGlzIGdvaW5nIHRvIHBsYXkgbmljZWx5IHdpdGggVlhMQU4tZW5jYXBzdWxhdGVkIHRyYWZmaWM/IFRoZSBsb2dpYyB3aXRoaW4gYHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdGAgaXMgY3JpdGljYWwgaGVyZS4gSXQmIzM5O3MgdXNlZCBzbyBpdCBuZWVkcyB0aGUgcmlnaHQga2VybmVsIGNvbmZpZ3VyYXRpb24uIEkgcmVtZW1iZXIgbm93OiBJJiMzOTttIHByZXR0eSBzdXJlIHRoYXQgZnVuY3Rpb24gZGVwZW5kcyBvbiBgQ09ORklHX1ZYTEFOYCBiZWluZyBlbmFibGVkLiBJZiB0aGF0JiMzOTtzIG5vdCBzZXQsIHRoZSByZWxldmFudCBwYXJ0cyBvZiB0aGUgVlhMQU4gc3VwcG9ydCBhcmUgZ29pbmcgdG8gYmUgbWlzc2luZyBhbmQgdGhpcyB3aG9sZSB0aGluZyBjb3VsZCBmYWxsIGFwYXJ0LiBJIG5lZWQgdG8ga2VlcCB0aGF0IGRlcGVuZGVuY3kgaW4gbWluZCB3aGVuIGV2YWx1YXRpbmcgdGhpcywgZXNwZWNpYWxseSBpbiBhIFZYTEFOIGVudmlyb25tZW50LiBJJiMzOTttIGdvaW5nIHRvIG1ha2UgYSBtZW50YWwgbm90ZSB0byB2ZXJpZnkgdGhlIGNvbmZpZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxNjoxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2eGxhbl9mZGJfbmhfcGF0aF9zZWxlY3QmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTI2NTA9c3RhdGljIHZvaWQgdnhsYW5feG1pdF9uaChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yNjYzLVx0XHRnb3RvIGRyb3A7XG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MjY2NDpcdGRvX3htaXQgPSB2eGxhbl9mZGJfbmhfcGF0aF9zZWxlY3QobmgsIGhhc2gsIFx1MDAyNm5oX3Jkc3QpO1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTI2NjUtXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTI2ODA9c3RhdGljIG5ldGRldl90eF90IHZ4bGFuX3htaXRfbmhpZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yNjk3LVx0fVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjI2OTg6XHRkb194bWl0ID0gdnhsYW5fZmRiX25oX3BhdGhfc2VsZWN0KG5oLCBoYXNoLCBcdTAwMjZuaF9yZHN0KTtcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yNjk5LVx0cmN1X3JlYWRfdW5sb2NrKCk7XG4tLVxuaW5jbHVkZS9uZXQvdnhsYW4uaD01MzQ9c3RhdGljIGlubGluZSB2b2lkIHZ4bGFuX2ZsYWdfYXR0cl9lcnJvcihpbnQgYXR0cnR5cGUsXG4tLVxuaW5jbHVkZS9uZXQvdnhsYW4uaC01NjQtXG5pbmNsdWRlL25ldC92eGxhbi5oOjU2NTpzdGF0aWMgaW5saW5lIGJvb2wgdnhsYW5fZmRiX25oX3BhdGhfc2VsZWN0KHN0cnVjdCBuZXh0aG9wICpuaCxcbmluY2x1ZGUvbmV0L3Z4bGFuLmgtNTY2LVx0XHRcdFx0XHQgICAgdTMyIGhhc2gsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMTY6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODEzNAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDM3OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgVlhMQU4gTmV4dCBIb3AgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJIG5lZWQgdG8gbWFrZSBzdXJlIGBDT05GSUdfVlhMQU5gIGlzIGVuYWJsZWQuIExldCYjMzk7cyBzdGFydCB0aGVyZS4gTm93LCBsZXQmIzM5O3Mgc2VlIHdoYXQgZWxzZSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGNvbmZpZ3VyYXRpb24td2lzZS4gSSBzZWUgYE5IQV9GREJfUE9SVGAgYXMgYSBuZXRsaW5rIGF0dHJpYnV0ZSwgd2hpY2ggaXMgdXNlZnVsLiBUaGUgY29yZSBzZWVtcyB0byByZXZvbHZlIGFyb3VuZCBgcnRtX3RvX25oX2NvbmZpZ2AsIHdoaWNoIGdldHMgY2FsbGVkIGZyb20gYHJ0bV9uZXduZXh0aG9wYCBpbiBgbmV0L2lwdjQvbmV4dGhvcC5jYCwgYW5kLCBpbXBvcnRhbnRseSwgYG5leHRob3BfY3JlYXRlYCB3aGljaCBpcyBpdHNlbGYgY2FsbGVkIGZyb20gYHJ0bV9uZXduZXh0aG9wYC4KCkkgbmVlZCB0byBmb2N1cyBvbiBhIGZldyBrZXkgc3ltYm9scyBoZXJlOiBgcnRtX3RvX25oX2NvbmZpZ2AsIGBuZXh0aG9wX2NyZWF0ZWAsIGBuaF9maWxsX25vZGVgLCBhbmQgYHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdGAuCgpMZXQgbWUgc2VlLCBpcyBgdnhsYW5fZmRiX25oX3BhdGhfc2VsZWN0YCBpbiB0aGUgaG90IHBhdGg/IEFoLCB5ZXMsIGl0JiMzOTtzIGNhbGxlZCBmcm9tIGB2eGxhbl94bWl0X25oYCBhbmQgYHZ4bGFuX3htaXRfbmhpZGAsIHdoaWNoIGFyZSB0aGVtc2VsdmVzIGNhbGxlZCBmcm9tIGB2eGxhbl94bWl0YC4gQW5kIGB2eGxhbl94bWl0YCBpcyB0aGUgYG5kb19zdGFydF94bWl0YCBmb3IgVlhMQU4g4oCTIGRlZmluaXRlbHkgYSBob3QgcGF0aCEgVGhhdCYjMzk7cyBzb21ldGhpbmcgd2Ugd2FudCB0byBhdm9pZCBpZiBwb3NzaWJsZS4KCkdvb2QsIG5vdyBsb29raW5nIGF0IGBydG1fdG9fbmhfY29uZmlnYCwgYG5leHRob3BfY3JlYXRlYCwgYW5kIGBuaF9maWxsX25vZGVgIHRoZXkgbG9vayBsaWtlIHRoZXkgYXJlIGFsbCBjb250cm9sIHBhdGggZnVuY3Rpb25zLCBkZWFsaW5nIHdpdGggbmV0bGluay4gVGhhdCBpcyBnb29kLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgdW5kZXJzdGFuZCB0aGUgZnVuY3Rpb24gY2FsbHMgYW5kIHRoZSBwYXRocyB0byB0aGVtLCBidXQgYXMgZmFyIGFzIEkgY2FuIHNlZSwgdGhlc2Ugc2hvdWxkIG5vdCBiZSBpbiB0aGUgaG90IHBhdGguCgpOb3csIGxldCYjMzk7cyBqdXN0IG1ha2Ugc3VyZSB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciBmdW5jdGlvbnMgdGhhdCBhcmUgY3JpdGljYWwgdG8gdGhpcywgbGV0JiMzOTtzIHNlZS4gTG9va3MgbGlrZSBgbmV4dGhvcF9wYXRoX2ZkYl9yZXN1bHRgIGlzIGFuIGlubGluZSBmdW5jdGlvbiBpbiBgaW5jbHVkZS9uZXQvbmV4dGhvcC5oYC4gT2theS4KClNvLCB0aGUga2V5IGZ1bmN0aW9ucyB0aGF0IHdhcnJhbnQgZnVydGhlciBzY3J1dGlueSBhcmU6IGBydG1fdG9fbmhfY29uZmlnYCwgYG5leHRob3BfY3JlYXRlYCwgYW5kIGBuaF9maWxsX25vZGVgLiBMZXQmIzM5O3MgZG91YmxlIGNoZWNrIGBydG1fdG9fbmhfY29uZmlnYCBhbmQgYG5leHRob3BfY3JlYXRlYCBhZ2FpbiwganVzdCB0byBtYWtlIHN1cmUgSSBhbSBvbiB0aGUgcmlnaHQgdHJhY2sgaGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxNjoxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydG1fdG9fbmhfY29uZmlnJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2lwdjQvbmV4dGhvcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9pcHY0L25leHRob3AuYz0zMDM4PXN0YXRpYyBpbnQgcnRtX25oX2dldF90aW1lcihzdHJ1Y3QgbmxhdHRyICphdHRyLCB1bnNpZ25lZCBsb25nIGZhbGxiYWNrLFxuLS1cbm5ldC9pcHY0L25leHRob3AuYy0zMDYyLVxubmV0L2lwdjQvbmV4dGhvcC5jOjMwNjM6c3RhdGljIGludCBydG1fdG9fbmhfY29uZmlnX2dycF9yZXMoc3RydWN0IG5sYXR0ciAqcmVzLCBzdHJ1Y3QgbmhfY29uZmlnICpjZmcsXG5uZXQvaXB2NC9uZXh0aG9wLmMtMzA2NC1cdFx0XHRcdCAgICBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spXG4tLVxubmV0L2lwdjQvbmV4dGhvcC5jLTMxMDEtXG5uZXQvaXB2NC9uZXh0aG9wLmM6MzEwMjpzdGF0aWMgaW50IHJ0bV90b19uaF9jb25maWcoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxubmV0L2lwdjQvbmV4dGhvcC5jLTMxMDMtXHRcdFx0ICAgIHN0cnVjdCBubG1zZ2hkciAqbmxoLCBzdHJ1Y3QgbmxhdHRyICoqdGIsXG4tLVxubmV0L2lwdjQvbmV4dGhvcC5jLTMxODktXHRcdGlmIChjZmctXHUwMDNlbmhfZ3JwX3R5cGUgPT0gTkVYVEhPUF9HUlBfVFlQRV9SRVMpXG5uZXQvaXB2NC9uZXh0aG9wLmM6MzE5MDpcdFx0XHRlcnIgPSBydG1fdG9fbmhfY29uZmlnX2dycF9yZXModGJbTkhBX1JFU19HUk9VUF0sXG5uZXQvaXB2NC9uZXh0aG9wLmMtMzE5MS1cdFx0XHRcdFx0XHQgICAgICAgY2ZnLCBleHRhY2spO1xuLS1cbm5ldC9pcHY0L25leHRob3AuYy0zMjc3LVxubmV0L2lwdjQvbmV4dGhvcC5jOjMyNzg6c3RhdGljIGludCBydG1fdG9fbmhfY29uZmlnX3J0bmwoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmxhdHRyICoqdGIsXG5uZXQvaXB2NC9uZXh0aG9wLmMtMzI3OS1cdFx0XHRcdCBzdHJ1Y3QgbmhfY29uZmlnICpjZmcsXG4tLVxubmV0L2lwdjQvbmV4dGhvcC5jPTMzMTA9c3RhdGljIGludCBydG1fbmV3X25leHRob3Aoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5sbXNnaGRyICpubGgsXG4tLVxubmV0L2lwdjQvbmV4dGhvcC5jLTMzMjQtXG5uZXQvaXB2NC9uZXh0aG9wLmM6MzMyNTpcdGVyciA9IHJ0bV90b19uaF9jb25maWcobmV0LCBza2IsIG5saCwgdGIsIFx1MDAyNmNmZywgZXh0YWNrKTtcbm5ldC9pcHY0L25leHRob3AuYy0zMzI2LVx0aWYgKGVycilcbi0tXG5uZXQvaXB2NC9uZXh0aG9wLmMtMzMzNi1cbm5ldC9pcHY0L25leHRob3AuYzozMzM3Olx0ZXJyID0gcnRtX3RvX25oX2NvbmZpZ19ydG5sKG5ldCwgdGIsIFx1MDAyNmNmZywgZXh0YWNrKTtcbm5ldC9pcHY0L25leHRob3AuYy0zMzM4LVx0aWYgKGVycilcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAxNjoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NzAzCgkJCQkJCQlvdXRwdXQ6IDEyOQoJCQkJCQkJdGhvdWdodHM6IDIwOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiBOZXh0IEhvcCBDb25maWd1cmF0aW9uKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGdvYWwgaXMgdG8gdW5kZXJzdGFuZCBob3cgd2UmIzM5O3JlIGNvbmZpZ3VyaW5nIHRoZSBuZXh0LWhvcCBmdW5jdGlvbmFsaXR5LiBUaGUga2V5IGZ1bmN0aW9ucyBJIG5lZWQgdG8gZm9jdXMgb24gYXJlIGBydG1fdG9fbmhfY29uZmlnYCwgYG5leHRob3BfY3JlYXRlYCwgYW5kIGBuaF9maWxsX25vZGVgLiBUaGVzZSBzZWVtIHRvIGJlIHRoZSBjb3JlIGJ1aWxkaW5nIGJsb2Nrcy4KCkkgc2VlIHRoYXQgdGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBpbiBwbGF5IGlzIGBWWExBTmAuIEkmIzM5O20gY3VyaW91cyBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3VyYXRpb25zIGludm9sdmVkLCBzbyBJJiMzOTtsbCBuZWVkIHRvIGRpZyBhIGxpdHRsZSBkZWVwZXIgdG8gc2VlIGlmIGFueSBvdGhlcnMgaW5mbHVlbmNlIHRoaXMgcGFydCBvZiB0aGUgY29kZS4KCkFscmlnaHQsIEkgZm91bmQgYE5IQV9GREJfUE9SVGAsIGFuZCBpdCBpcyBwYXJ0IG9mIGBydG1fbmhfcG9saWN5X25ld2AgaW4gYG5ldC9pcHY0L25leHRob3AuY2AuIFRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgcGFydCBvZiB0aGUgY29kZSBJIG5lZWQgdG8gY29uc2lkZXIuCgpOb3csIEkmIzM5O2xsIHNldCB0aGUgYFdvcnRoRnV6emluZ2AgZmxhZyB0byBgdHJ1ZWAuIFRoZXNlIGZ1bmN0aW9ucyBzZWVtIGxpa2UgZ29vZCBjYW5kaWRhdGVzIHRvIHRlc3QgdGhvcm91Z2hseS4gSSYjMzk7bGwgbWFrZSBzdXJlIHRvIHByaW9yaXRpemUgZnV6emluZyBgcnRtX3RvX25oX2NvbmZpZ2AsIGBuZXh0aG9wX2NyZWF0ZWAsIGFuZCBgbmhfZmlsbF9ub2RlYC4KClRvIGJlIGNlcnRhaW4sIEkgd2FudCB0byBjb25maXJtIHRoYXQgYFZYTEFOYCBpcyB0aGUgb25seSBjb25maWd1cmF0aW9uIGFjdGl2ZWx5IGludm9sdmVkLiBJIHNlZSBgQ09ORklHX1ZYTEFOYCBpcyB0cmlzdGF0ZSwgc28gaXQmIzM5O3MgcG9zc2libGUuIEFyZSB0aGVyZSBvdGhlciBjb25maWdzIHRoYXQgaW5mbHVlbmNlIG5leHRob3AgYmVoYXZpb3I/IEhtbSwgYG5leHRob3Aub2AgYXBwZWFycyB0byBiZSBjb21waWxlZCB1bmNvbmRpdGlvbmFsbHkgZm9yIElQdjQsIHNvIG5vLCB0aGVyZSBkb24mIzM5O3QgYXBwZWFyIHRvIGJlIGFueSBvdGhlciBjb25maWdzLgoKTm93LCBJJiMzOTttIHJlYWR5IHRvIHVzZSB0aGUgYHNldC1yZXN1bHRzYCB0b29sIGFuZCBtb3ZlIGZvcndhcmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDE2OjE3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtWWExBTiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0bV90b19uaF9jb25maWcmIzM0OywKICAgICYjMzQ7bmV4dGhvcF9jcmVhdGUmIzM0OywKICAgICYjMzQ7bmhfZmlsbF9ub2RlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgYSBuZXcgbmV0bGluayBhdHRyaWJ1dGUgTkhBX0ZEQl9QT1JUIHRvIHNwZWNpZnkgYSBVRFAgZGVzdGluYXRpb24gcG9ydCBmb3IgRkRCIG5leHRob3BzIChlLmcuLCBWWExBTikuIEl0IG1vZGlmaWVzIHRoZSBuZXh0aG9wIG5ldGxpbmsgY29udHJvbCBwYXRoIGFuZCBWWExBTiBkYXRhcGF0aC4gVGhlIG5ldGxpbmsgY29udHJvbCBwYXRoIGZ1bmN0aW9ucyBhcmUgZ29vZCB0YXJnZXRzIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtWWExBTiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0bV90b19uaF9jb25maWcmIzM0OywKICAgICYjMzQ7bmV4dGhvcF9jcmVhdGUmIzM0OywKICAgICYjMzQ7bmhfZmlsbF9ub2RlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgYSBuZXcgbmV0bGluayBhdHRyaWJ1dGUgTkhBX0ZEQl9QT1JUIHRvIHNwZWNpZnkgYSBVRFAgZGVzdGluYXRpb24gcG9ydCBmb3IgRkRCIG5leHRob3BzIChlLmcuLCBWWExBTikuIEl0IG1vZGlmaWVzIHRoZSBuZXh0aG9wIG5ldGxpbmsgY29udHJvbCBwYXRoIGFuZCBWWExBTiBkYXRhcGF0aC4gVGhlIG5ldGxpbmsgY29udHJvbCBwYXRoIGZ1bmN0aW9ucyBhcmUgZ29vZCB0YXJnZXRzIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjJUMTY6MTY6MzguODQwMDIwNTY3WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzE0MDU4MDYxMTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVlhMQU5cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydG1fdG9fbmhfY29uZmlnXCIsXG4gICAgXCJuZXh0aG9wX2NyZWF0ZVwiLFxuICAgIFwibmhfZmlsbF9ub2RlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBuZXRsaW5rIGF0dHJpYnV0ZSBOSEFfRkRCX1BPUlQgdG8gc3BlY2lmeSBhIFVEUCBkZXN0aW5hdGlvbiBwb3J0IGZvciBGREIgbmV4dGhvcHMgKGUuZy4sIFZYTEFOKS4gSXQgbW9kaWZpZXMgdGhlIG5leHRob3AgbmV0bGluayBjb250cm9sIHBhdGggYW5kIFZYTEFOIGRhdGFwYXRoLiBUaGUgbmV0bGluayBjb250cm9sIHBhdGggZnVuY3Rpb25zIGFyZSBnb29kIHRhcmdldHMgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDE2OjE2OjM4Ljg0MDAyODIyN1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA2ODg0MjAwOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDg1M2MzMjQ2NWU4ZDdkYzYyNjMxNTJhOGFmMzQ1MGM1OGIyZjAxMDJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBKdWwgMjIgMTY6MTY6MzYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbmV4dGhvcC5oIGIvaW5jbHVkZS9uZXQvbmV4dGhvcC5oXFxuaW5kZXggNTcyZTY5Y2RhNDc2NmQuLjE5ZTg2NzBkOTY0ZDlkIDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvbmV0L25leHRob3AuaFxcbisrKyBiL2luY2x1ZGUvbmV0L25leHRob3AuaFxcbkBAIC0yOCw2ICsyOCw3IEBAIHN0cnVjdCBuaF9jb25maWcge1xcbiBcXHR1OFxcdFxcdG5oX3Byb3RvY29sO1xcbiBcXHR1OFxcdFxcdG5oX2JsYWNraG9sZTtcXG4gXFx0dThcXHRcXHRuaF9mZGI7XFxuK1xcdF9fYmUxNlxcdFxcdG5oX2ZkYl9wb3J0O1xcbiBcXHR1MzJcXHRcXHRuaF9mbGFncztcXG4gXFxuIFxcdGludFxcdFxcdG5oX2lmaW5kZXg7XFxuQEAgLTYzLDYgKzY0LDcgQEAgc3RydWN0IG5oX2luZm8ge1xcbiBcXHR1OFxcdFxcdFxcdGZhbWlseTtcXG4gXFx0Ym9vbFxcdFxcdFxcdHJlamVjdF9uaDtcXG4gXFx0Ym9vbFxcdFxcdFxcdGZkYl9uaDtcXG4rXFx0X19iZTE2XFx0XFx0XFx0ZmRiX3BvcnQ7XFxuIFxcbiBcXHR1bmlvbiB7XFxuIFxcdFxcdHN0cnVjdCBmaWJfbmhfY29tbW9uXFx0ZmliX25oYztcXG5AQCAtNTc0LDcgKzU3Niw4IEBAIHN0cnVjdCBmaWJfbmhfY29tbW9uICpuZXh0aG9wX2ZkYl9uaGMoc3RydWN0IG5leHRob3AgKm5oKVxcbiB9XFxuIFxcbiBzdGF0aWMgaW5saW5lIHN0cnVjdCBmaWJfbmhfY29tbW9uICpuZXh0aG9wX3BhdGhfZmRiX3Jlc3VsdChzdHJ1Y3QgbmV4dGhvcCAqbmgsXFxuLVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICBpbnQgaGFzaClcXG4rXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgIGludCBoYXNoLFxcbitcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgX19iZTE2ICpmZGJfcG9ydClcXG4ge1xcbiBcXHRzdHJ1Y3QgbmhfaW5mbyAqbmhpO1xcbiBcXHRzdHJ1Y3QgbmV4dGhvcCAqbmhwO1xcbkBAIC01ODMsNiArNTg2LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZmliX25oX2NvbW1vbiAqbmV4dGhvcF9wYXRoX2ZkYl9yZXN1bHQoc3RydWN0IG5leHRob3AgKm5oLFxcbiBcXHRpZiAodW5saWtlbHkoIW5ocCkpXFxuIFxcdFxcdHJldHVybiBOVUxMO1xcbiBcXHRuaGkgPSByY3VfZGVyZWZlcmVuY2UobmhwLVxcdTAwM2VuaF9pbmZvKTtcXG4rXFx0KmZkYl9wb3J0ID0gbmhpLVxcdTAwM2VmZGJfcG9ydDtcXG4gXFx0cmV0dXJuIFxcdTAwMjZuaGktXFx1MDAzZWZpYl9uaGM7XFxuIH1cXG4gI2VuZGlmXFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3Z4bGFuLmggYi9pbmNsdWRlL25ldC92eGxhbi5oXFxuaW5kZXggZGZiYTg5Njk1ZWZjZmEuLmRlNDFiMzc0Njg4ZjI5IDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvbmV0L3Z4bGFuLmhcXG4rKysgYi9pbmNsdWRlL25ldC92eGxhbi5oXFxuQEAgLTU2Nyw4ICs1NjcsOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgdnhsYW5fZmRiX25oX3BhdGhfc2VsZWN0KHN0cnVjdCBuZXh0aG9wICpuaCxcXG4gXFx0XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCB2eGxhbl9yZHN0ICpyZHN0KVxcbiB7XFxuIFxcdHN0cnVjdCBmaWJfbmhfY29tbW9uICpuaGM7XFxuK1xcdF9fYmUxNiBmZGJfcG9ydCA9IDA7XFxuIFxcbi1cXHRuaGMgPSBuZXh0aG9wX3BhdGhfZmRiX3Jlc3VsdChuaCwgaGFzaCBcXHUwMDNlXFx1MDAzZSAxKTtcXG4rXFx0bmhjID0gbmV4dGhvcF9wYXRoX2ZkYl9yZXN1bHQobmgsIGhhc2ggXFx1MDAzZVxcdTAwM2UgMSwgXFx1MDAyNmZkYl9wb3J0KTtcXG4gXFx0aWYgKHVubGlrZWx5KCFuaGMpKVxcbiBcXHRcXHRyZXR1cm4gZmFsc2U7XFxuIFxcbkBAIC01ODMsNiArNTg0LDggQEAgc3RhdGljIGlubGluZSBib29sIHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdChzdHJ1Y3QgbmV4dGhvcCAqbmgsXFxuIFxcdFxcdGJyZWFrO1xcbiBcXHR9XFxuIFxcbitcXHRyZHN0LVxcdTAwM2VyZW1vdGVfcG9ydCA9IGZkYl9wb3J0O1xcbitcXG4gXFx0cmV0dXJuIHRydWU7XFxuIH1cXG4gXFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXh0aG9wLmggYi9pbmNsdWRlL3VhcGkvbGludXgvbmV4dGhvcC5oXFxuaW5kZXggYmM0OWJhZjRhMjY3ZjAuLmU1ODdiYmYzYjg5MGEzIDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXh0aG9wLmhcXG4rKysgYi9pbmNsdWRlL3VhcGkvbGludXgvbmV4dGhvcC5oXFxuQEAgLTgzLDYgKzgzLDkgQEAgZW51bSB7XFxuIFxcdC8qIHUzMjsgcmVhZC1vbmx5OyB3aGV0aGVyIGFueSBkcml2ZXIgY29sbGVjdHMgSFcgc3RhdHMgKi9cXG4gXFx0TkhBX0hXX1NUQVRTX1VTRUQsXFxuIFxcbitcXHQvKiBiZTE2OyBVRFAgZGVzdGluYXRpb24gcG9ydCBmb3IgYW4gZmRiIG5leHRob3AgKGUuZy4gVlhMQU4pICovXFxuK1xcdE5IQV9GREJfUE9SVCxcXG4rXFxuIFxcdF9fTkhBX01BWCxcXG4gfTtcXG4gXFxuZGlmZiAtLWdpdCBhL25ldC9pcHY0L25leHRob3AuYyBiL25ldC9pcHY0L25leHRob3AuY1xcbmluZGV4IDYyMDViZDU3YWE4NTIwLi5iODJkYTNlZmY2M2M5MSAxMDA2NDRcXG4tLS0gYS9uZXQvaXB2NC9uZXh0aG9wLmNcXG4rKysgYi9uZXQvaXB2NC9uZXh0aG9wLmNcXG5AQCAtMzksNiArMzksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgcnRtX25oX3BvbGljeV9uZXdbXSA9IHtcXG4gXFx0W05IQV9FTkNBUF9UWVBFXVxcdD0geyAudHlwZSA9IE5MQV9VMTYgfSxcXG4gXFx0W05IQV9FTkNBUF1cXHRcXHQ9IHsgLnR5cGUgPSBOTEFfTkVTVEVEIH0sXFxuIFxcdFtOSEFfRkRCXVxcdFxcdD0geyAudHlwZSA9IE5MQV9GTEFHIH0sXFxuK1xcdFtOSEFfRkRCX1BPUlRdXFx0XFx0PSBOTEFfUE9MSUNZX01JTihOTEFfQkUxNiwgMSksXFxuIFxcdFtOSEFfUkVTX0dST1VQXVxcdFxcdD0geyAudHlwZSA9IE5MQV9ORVNURUQgfSxcXG4gXFx0W05IQV9IV19TVEFUU19FTkFCTEVdXFx0PSBOTEFfUE9MSUNZX01BWChOTEFfVTMyLCB0cnVlKSxcXG4gfTtcXG5AQCAtOTU2LDYgKzk1Nyw5IEBAIHN0YXRpYyBpbnQgbmhfZmlsbF9ub2RlKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXh0aG9wICpuaCxcXG4gXFx0fSBlbHNlIGlmIChuaGktXFx1MDAzZWZkYl9uaCkge1xcbiBcXHRcXHRpZiAobmxhX3B1dF9mbGFnKHNrYiwgTkhBX0ZEQikpXFxuIFxcdFxcdFxcdGdvdG8gbmxhX3B1dF9mYWlsdXJlO1xcbitcXHRcXHRpZiAobmhpLVxcdTAwM2VmZGJfcG9ydCBcXHUwMDI2XFx1MDAyNlxcbitcXHRcXHQgICAgbmxhX3B1dF9iZTE2KHNrYiwgTkhBX0ZEQl9QT1JULCBuaGktXFx1MDAzZWZkYl9wb3J0KSlcXG4rXFx0XFx0XFx0Z290byBubGFfcHV0X2ZhaWx1cmU7XFxuIFxcdH0gZWxzZSB7XFxuIFxcdFxcdGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXY7XFxuIFxcbkBAIC0xMDU1LDYgKzEwNTksOSBAQCBzdGF0aWMgc2l6ZV90IG5oX25sbXNnX3NpemVfc2luZ2xlKHN0cnVjdCBuZXh0aG9wICpuaClcXG4gXFx0XFx0YnJlYWs7XFxuIFxcdH1cXG4gXFxuK1xcdGlmIChuaGktXFx1MDAzZWZkYl9wb3J0KVxcbitcXHRcXHRzeiArPSBubGFfdG90YWxfc2l6ZSgyKTtcXHQvKiBOSEFfRkRCX1BPUlQgKi9cXG4rXFxuIFxcdGlmIChuaGktXFx1MDAzZWZpYl9uaGMubmhjX2x3dHN0YXRlKSB7XFxuIFxcdFxcdHN6ICs9IGx3dHVubmVsX2dldF9lbmNhcF9zaXplKG5oaS1cXHUwMDNlZmliX25oYy5uaGNfbHd0c3RhdGUpO1xcbiBcXHRcXHRzeiArPSBubGFfdG90YWxfc2l6ZSgyKTsgIC8qIE5IQV9FTkNBUF9UWVBFICovXFxuQEAgLTI5NTYsOCArMjk2MywxMCBAQCBzdGF0aWMgc3RydWN0IG5leHRob3AgKm5leHRob3BfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5oX2NvbmZpZyAqY2ZnLFxcbiBcXHRuaGktXFx1MDAzZWZhbWlseSA9IGNmZy1cXHUwMDNlbmhfZmFtaWx5O1xcbiBcXHRuaGktXFx1MDAzZWZpYl9uaGMubmhjX3Njb3BlID0gUlRfU0NPUEVfTElOSztcXG4gXFxuLVxcdGlmIChjZmctXFx1MDAzZW5oX2ZkYilcXG4rXFx0aWYgKGNmZy1cXHUwMDNlbmhfZmRiKSB7XFxuIFxcdFxcdG5oaS1cXHUwMDNlZmRiX25oID0gMTtcXG4rXFx0XFx0bmhpLVxcdTAwM2VmZGJfcG9ydCA9IGNmZy1cXHUwMDNlbmhfZmRiX3BvcnQ7XFxuK1xcdH1cXG4gXFxuIFxcdGlmIChjZmctXFx1MDAzZW5oX2JsYWNraG9sZSkge1xcbiBcXHRcXHRuaGktXFx1MDAzZXJlamVjdF9uaCA9IDE7XFxuQEAgLTMxNDcsNiArMzE1NiwxNSBAQCBzdGF0aWMgaW50IHJ0bV90b19uaF9jb25maWcoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiBcXHRcXHRjZmctXFx1MDAzZW5oX2ZkYiA9IG5sYV9nZXRfZmxhZyh0YltOSEFfRkRCXSk7XFxuIFxcdH1cXG4gXFxuK1xcdGlmICh0YltOSEFfRkRCX1BPUlRdKSB7XFxuK1xcdFxcdGlmICghdGJbTkhBX0ZEQl0gfHwgIXRiW05IQV9HQVRFV0FZXSkge1xcbitcXHRcXHRcXHROTF9TRVRfRVJSX01TRyhleHRhY2ssXFxuK1xcdFxcdFxcdFxcdCAgICAgICBcXFwiRkRCIHBvcnQgY2FuIG9ubHkgYmUgc2V0IG9uIGZkYiBuZXh0aG9wcyB0aGF0IGhhdmUgYSBnYXRld2F5XFxcIik7XFxuK1xcdFxcdFxcdGdvdG8gb3V0O1xcbitcXHRcXHR9XFxuK1xcdFxcdGNmZy1cXHUwMDNlbmhfZmRiX3BvcnQgPSBubGFfZ2V0X2JlMTYodGJbTkhBX0ZEQl9QT1JUXSk7XFxuK1xcdH1cXG4rXFxuIFxcdGlmICh0YltOSEFfR1JPVVBdKSB7XFxuIFxcdFxcdGlmIChuaG0tXFx1MDAzZW5oX2ZhbWlseSAhPSBBRl9VTlNQRUMpIHtcXG4gXFx0XFx0XFx0TkxfU0VUX0VSUl9NU0coZXh0YWNrLCBcXFwiSW52YWxpZCBmYW1pbHkgZm9yIGdyb3VwXFxcIik7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9maWJfbmV4dGhvcHMuc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvZmliX25leHRob3BzLnNoXFxuaW5kZXggYWM4NjhhNzMxNjk0NmEuLjFjZTRmNDVmYTY1MTVmIDEwMDc1NVxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9maWJfbmV4dGhvcHMuc2hcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvZmliX25leHRob3BzLnNoXFxuQEAgLTQzMiw2ICs0MzIsMTUgQEAgY2hlY2tfbmV4dGhvcF9mZGJfc3VwcG9ydCgpXFxuIFxcdGZpXFxuIH1cXG4gXFxuK2NoZWNrX25leHRob3BfZmRiX3BvcnRfc3VwcG9ydCgpXFxuK3tcXG4rXFx0JElQIG5leHRob3AgaGVscCAyXFx1MDAzZVxcdTAwMjYxIHwgZ3JlcCAtcSBcXFwiZmRiIFxcXFxbIHBvcnRcXFwiXFxuK1xcdGlmIFsgJD8gLW5lIDAgXTsgdGhlblxcbitcXHRcXHRlY2hvIFxcXCJTS0lQOiBpcHJvdXRlMiB0b28gb2xkLCBtaXNzaW5nIGZkYiBuZXh0aG9wIHBvcnQgc3VwcG9ydFxcXCJcXG4rXFx0XFx0cmV0dXJuICRrc2Z0X3NraXBcXG4rXFx0ZmlcXG4rfVxcbitcXG4gY2hlY2tfbmV4dGhvcF9yZXNfc3VwcG9ydCgpXFxuIHtcXG4gXFx0JElQIG5leHRob3AgaGVscCAyXFx1MDAzZVxcdTAwMjYxIHwgZ3JlcCAtcSByZXNpbGllbnRcXG5AQCAtNTE0LDYgKzUyMywzMSBAQCBpcHY2X2ZkYl9ncnBfZmNuYWwoKVxcbiBcXHRydW5fY21kIFxcXCIkSVAgbmV4dGhvcCByZXBsYWNlIGlkIDcyIHZpYSAyMDAxOmRiODo5MTo6MiBmZGJcXFwiXFxuIFxcdGxvZ190ZXN0ICQ/IDIgXFxcIlJlcGxhY2Ugbm9uLUZEQiBuZXh0aG9wIHRvIEZEQiBuZXh0aG9wIHdoaWxlIGluIGEgZ3JvdXBcXFwiXFxuIFxcbitcXHQjIE5IQV9GREJfUE9SVDogb3B0aW9uYWwgcGVyLW5leHRob3AgVlhMQU4gZGVzdGluYXRpb24gVURQIHBvcnQsXFxuK1xcdCMgbGV0dGluZyBhbiBmZGIgbmV4dGhvcCBncm91cCBiYWxhbmNlIGEgZmxvdyBhY3Jvc3MgbGVncyB0aGF0IHNoYXJlXFxuK1xcdCMgYW4gdW5kZXJsYXkgSVAgYnV0IGxpc3RlbiBvbiBkaWZmZXJlbnQgVURQIHBvcnRzLlxcbitcXHRpZiBjaGVja19uZXh0aG9wX2ZkYl9wb3J0X3N1cHBvcnQ7IHRoZW5cXG4rXFx0XFx0cnVuX2NtZCBcXFwiJElQIG5leHRob3AgYWRkIGlkIDgwIHZpYSAyMDAxOmRiODo5MTo6MiBmZGIgcG9ydCA0NzkwXFxcIlxcbitcXHRcXHRjaGVja19uZXh0aG9wIFxcXCJpZCA4MFxcXCIgXFxcImlkIDgwIHZpYSAyMDAxOmRiODo5MTo6MiBzY29wZSBsaW5rIGZkYiBwb3J0IDQ3OTBcXFwiXFxuK1xcdFxcdGxvZ190ZXN0ICQ/IDAgXFxcIkZkYiBuZXh0aG9wIHdpdGggcG9ydFxcXCJcXG4rXFxuK1xcdFxcdHJ1bl9jbWQgXFxcIiRJUCBuZXh0aG9wIGFkZCBpZCA4MSBmZGIgcG9ydCA0NzkwXFxcIlxcbitcXHRcXHRsb2dfdGVzdCAkPyAyIFxcXCJGZGIgbmV4dGhvcCB3aXRoIHBvcnQgYnV0IG5vIGdhdGV3YXlcXFwiXFxuK1xcbitcXHRcXHRydW5fY21kIFxcXCIkSVAgbmV4dGhvcCBhZGQgaWQgODEgdmlhIDIwMDE6ZGI4OjkxOjoyIGZkYiBwb3J0IDBcXFwiXFxuK1xcdFxcdGxvZ190ZXN0ICQ/IDIgXFxcIkZkYiBuZXh0aG9wIHdpdGggcG9ydCAwXFxcIlxcbitcXG4rXFx0XFx0cnVuX2NtZCBcXFwiJElQIG5leHRob3AgYWRkIGlkIDgyIHZpYSAyMDAxOmRiODo5MTo6MiBmZGIgcG9ydCA0Nzg5XFxcIlxcbitcXHRcXHRydW5fY21kIFxcXCIkSVAgbmV4dGhvcCBhZGQgaWQgODMgdmlhIDIwMDE6ZGI4OjkxOjozIGZkYiBwb3J0IDU3ODlcXFwiXFxuK1xcdFxcdHJ1bl9jbWQgXFxcIiRJUCBuZXh0aG9wIGFkZCBpZCAxMDYgZ3JvdXAgODIvODMgZmRiXFxcIlxcbitcXHRcXHRjaGVja19uZXh0aG9wIFxcXCJpZCAxMDZcXFwiIFxcXCJpZCAxMDYgZ3JvdXAgODIvODMgZmRiXFxcIlxcbitcXHRcXHRsb2dfdGVzdCAkPyAwIFxcXCJGZGIgbmV4dGhvcCBncm91cCB3aXRoIGxlZ3MgZGlmZmVyaW5nIGluIHBvcnRcXFwiXFxuK1xcbitcXHRcXHRydW5fY21kIFxcXCIkSVAgbmV4dGhvcCBhZGQgaWQgODQgdmlhIDIwMDE6ZGI4OjkxOjoyIGZkYlxcXCJcXG4rXFx0XFx0Y2hlY2tfbmV4dGhvcCBcXFwiaWQgODRcXFwiIFxcXCJpZCA4NCB2aWEgMjAwMTpkYjg6OTE6OjIgc2NvcGUgbGluayBmZGJcXFwiXFxuK1xcdFxcdGxvZ190ZXN0ICQ/IDAgXFxcIkZkYiBuZXh0aG9wIHdpdGhvdXQgcG9ydCBvbWl0cyBwb3J0XFxcIlxcbitcXHRmaVxcbitcXG4gXFx0cnVuX2NtZCBcXFwiJElQIGxpbmsgYWRkIG5hbWUgdngxMCB0eXBlIHZ4bGFuIGlkIDEwMTAgbG9jYWwgMjAwMTpkYjg6OTE6OjkgcmVtb3RlIDIwMDE6ZGI4OjkxOjoxMCBkc3Rwb3J0IDQ3ODkgbm9sZWFybmluZyBub3VkcGNzdW0gdG9zIGluaGVyaXQgdHRsIDEwMFxcXCJcXG4gXFx0cnVuX2NtZCBcXFwiJEJSSURHRSBmZGIgYWRkIDAyOjAyOjAwOjAwOjAwOjEzIGRldiB2eDEwIG5oaWQgMTAyIHNlbGZcXFwiXFxuIFxcdGxvZ190ZXN0ICQ/IDAgXFxcIkZkYiBtYWMgYWRkIHdpdGggbmV4dGhvcCBncm91cFxcXCJcXG5AQCAtNjE0LDYgKzY0OCwzMSBAQCBpcHY0X2ZkYl9ncnBfZmNuYWwoKVxcbiBcXHRydW5fY21kIFxcXCIkSVAgbmV4dGhvcCByZXBsYWNlIGlkIDIwIHZpYSAxNzIuMTYuMS4yIGZkYlxcXCJcXG4gXFx0bG9nX3Rlc3QgJD8gMiBcXFwiUmVwbGFjZSBub24tRkRCIG5leHRob3AgdG8gRkRCIG5leHRob3Agd2hpbGUgaW4gYSBncm91cFxcXCJcXG4gXFxuK1xcdCMgTkhBX0ZEQl9QT1JUOiBvcHRpb25hbCBwZXItbmV4dGhvcCBWWExBTiBkZXN0aW5hdGlvbiBVRFAgcG9ydCxcXG4rXFx0IyBsZXR0aW5nIGFuIGZkYiBuZXh0aG9wIGdyb3VwIGJhbGFuY2UgYSBmbG93IGFjcm9zcyBsZWdzIHRoYXQgc2hhcmVcXG4rXFx0IyBhbiB1bmRlcmxheSBJUCBidXQgbGlzdGVuIG9uIGRpZmZlcmVudCBVRFAgcG9ydHMuXFxuK1xcdGlmIGNoZWNrX25leHRob3BfZmRiX3BvcnRfc3VwcG9ydDsgdGhlblxcbitcXHRcXHRydW5fY21kIFxcXCIkSVAgbmV4dGhvcCBhZGQgaWQgMzAgdmlhIDE3Mi4xNi4xLjIgZmRiIHBvcnQgNDc5MFxcXCJcXG4rXFx0XFx0Y2hlY2tfbmV4dGhvcCBcXFwiaWQgMzBcXFwiIFxcXCJpZCAzMCB2aWEgMTcyLjE2LjEuMiBzY29wZSBsaW5rIGZkYiBwb3J0IDQ3OTBcXFwiXFxuK1xcdFxcdGxvZ190ZXN0ICQ/IDAgXFxcIkZkYiBuZXh0aG9wIHdpdGggcG9ydFxcXCJcXG4rXFxuK1xcdFxcdHJ1bl9jbWQgXFxcIiRJUCBuZXh0aG9wIGFkZCBpZCAzMSBmZGIgcG9ydCA0NzkwXFxcIlxcbitcXHRcXHRsb2dfdGVzdCAkPyAyIFxcXCJGZGIgbmV4dGhvcCB3aXRoIHBvcnQgYnV0IG5vIGdhdGV3YXlcXFwiXFxuK1xcbitcXHRcXHRydW5fY21kIFxcXCIkSVAgbmV4dGhvcCBhZGQgaWQgMzEgdmlhIDE3Mi4xNi4xLjIgZmRiIHBvcnQgMFxcXCJcXG4rXFx0XFx0bG9nX3Rlc3QgJD8gMiBcXFwiRmRiIG5leHRob3Agd2l0aCBwb3J0IDBcXFwiXFxuK1xcbitcXHRcXHRydW5fY21kIFxcXCIkSVAgbmV4dGhvcCBhZGQgaWQgMzIgdmlhIDE3Mi4xNi4xLjIgZmRiIHBvcnQgNDc4OVxcXCJcXG4rXFx0XFx0cnVuX2NtZCBcXFwiJElQIG5leHRob3AgYWRkIGlkIDMzIHZpYSAxNzIuMTYuMS4zIGZkYiBwb3J0IDU3ODlcXFwiXFxuK1xcdFxcdHJ1bl9jbWQgXFxcIiRJUCBuZXh0aG9wIGFkZCBpZCAxMDUgZ3JvdXAgMzIvMzMgZmRiXFxcIlxcbitcXHRcXHRjaGVja19uZXh0aG9wIFxcXCJpZCAxMDVcXFwiIFxcXCJpZCAxMDUgZ3JvdXAgMzIvMzMgZmRiXFxcIlxcbitcXHRcXHRsb2dfdGVzdCAkPyAwIFxcXCJGZGIgbmV4dGhvcCBncm91cCB3aXRoIGxlZ3MgZGlmZmVyaW5nIGluIHBvcnRcXFwiXFxuK1xcbitcXHRcXHRydW5fY21kIFxcXCIkSVAgbmV4dGhvcCBhZGQgaWQgMzQgdmlhIDE3Mi4xNi4xLjIgZmRiXFxcIlxcbitcXHRcXHRjaGVja19uZXh0aG9wIFxcXCJpZCAzNFxcXCIgXFxcImlkIDM0IHZpYSAxNzIuMTYuMS4yIHNjb3BlIGxpbmsgZmRiXFxcIlxcbitcXHRcXHRsb2dfdGVzdCAkPyAwIFxcXCJGZGIgbmV4dGhvcCB3aXRob3V0IHBvcnQgb21pdHMgcG9ydFxcXCJcXG4rXFx0ZmlcXG4rXFxuIFxcdHJ1bl9jbWQgXFxcIiRJUCBsaW5rIGFkZCBuYW1lIHZ4MTAgdHlwZSB2eGxhbiBpZCAxMDEwIGxvY2FsIDEwLjAuMC4xIHJlbW90ZSAxMC4wLjAuMiBkc3Rwb3J0IDQ3ODkgbm9sZWFybmluZyBub3VkcGNzdW0gdG9zIGluaGVyaXQgdHRsIDEwMFxcXCJcXG4gXFx0cnVuX2NtZCBcXFwiJEJSSURHRSBmZGIgYWRkIDAyOjAyOjAwOjAwOjAwOjEzIGRldiB2eDEwIG5oaWQgMTAyIHNlbGZcXFwiXFxuIFxcdGxvZ190ZXN0ICQ/IDAgXFxcIkZkYiBtYWMgYWRkIHdpdGggbmV4dGhvcCBncm91cFxcXCJcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rlc3RfdnhsYW5fbmguc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGVzdF92eGxhbl9uaC5zaFxcbmluZGV4IDIwZjMzNjlmNzc2YjE1Li4zNGEyNGE0Zjk1YmY3YiAxMDA3NTVcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGVzdF92eGxhbl9uaC5zaFxcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90ZXN0X3Z4bGFuX25oLnNoXFxuQEAgLTU2LDYgKzU2LDE2IEBAIHRjX3N0YXRzX2dldCgpXFxuIFxcdHRjX3J1bGVfaGFuZGxlX3N0YXRzX2dldCBcXFwiZGV2IGR1bW15MSBlZ3Jlc3NcXFwiIDEwMSBcXFwiLnBhY2tldHNcXFwiIFxcXCItbiAkbnMxXFxcIlxcbiB9XFxuIFxcbituaF9zdGF0c19nZXRfcG9ydCgpXFxuK3tcXG4rXFx0aXAgLW4gXFxcIiRuczFcXFwiIC1zIC1qIG5leHRob3Agc2hvdyBpZCAyMCB8IGpxIFxcXCIuW11bXFxcXFxcXCJncm91cF9zdGF0c1xcXFxcXFwiXVtdW1xcXFxcXFwicGFja2V0c1xcXFxcXFwiXVxcXCJcXG4rfVxcbitcXG4rdGNfc3RhdHNfZ2V0X3BvcnQoKVxcbit7XFxuK1xcdHRjX3J1bGVfaGFuZGxlX3N0YXRzX2dldCBcXFwiZGV2IGR1bW15MSBlZ3Jlc3NcXFwiIDEwMiBcXFwiLnBhY2tldHNcXFwiIFxcXCItbiAkbnMxXFxcIlxcbit9XFxuK1xcbiBiYXNpY190eF9jb21tb24oKVxcbiB7XFxuIFxcdGxvY2FsIGFmX3N0cj0kMTsgc2hpZnRcXG5AQCAtOTAsNiArMTAwLDI3IEBAIGJhc2ljX3R4X2NvbW1vbigpXFxuIFxcdGJ1c3l3YWl0IFxcXCIkQlVTWVdBSVRfVElNRU9VVFxcXCIgdW50aWxfY291bnRlcl9pcyBcXFwiPT0gMVxcXCIgdGNfc3RhdHNfZ2V0IFxcdTAwM2UgL2Rldi9udWxsXFxuIFxcdGNoZWNrX2VyciAkPyBcXFwidGMgZmlsdGVyIHN0YXRzIGRpZCBub3QgaW5jcmVhc2VcXFwiXFxuIFxcbitcXHQjIEFkZCBhIHNlY29uZCBGREIgbmV4dGhvcCBncm91cCB3aG9zZSBuZXh0aG9wIGNhcnJpZXMgYSBwZXItbmV4dGhvcFxcbitcXHQjIGRlc3RpbmF0aW9uIHBvcnQgKE5IQV9GREJfUE9SVCkgdGhhdCBkaWZmZXJzIGZyb20gdGhlIFZYTEFOIGRldmljZVxcbitcXHQjIGRlZmF1bHQuIE1hdGNoaW5nIG91dGVyIHRyYWZmaWMgbXVzdCBlZ3Jlc3Mgd2l0aCB0aGF0IHBvcnQsIHNvIGFcXG4rXFx0IyBzZXBhcmF0ZSBmbG93ZXIgZmlsdGVyIGtleWVkIG9uIHRoZSBuZXcgcG9ydCBjYXRjaGVzIGl0LlxcbitcXHRpZiBpcCBuZXh0aG9wIGhlbHAgMlxcdTAwM2VcXHUwMDI2MSB8IGdyZXAgLXEgXFxcImZkYiBcXFxcWyBwb3J0XFxcIjsgdGhlblxcbitcXHRcXHRydW5fY21kIFxcXCJ0YyAtbiAkbnMxIGZpbHRlciBhZGQgZGV2IGR1bW15MSBlZ3Jlc3MgcHJvdG8gJHByb3RvIHByZWYgMSBoYW5kbGUgMTAyIGZsb3dlciBpcF9wcm90byB1ZHAgZHN0X2lwICRyZW1vdGVfYWRkciBkc3RfcG9ydCA0NzkwIGFjdGlvbiBwYXNzXFxcIlxcbitcXG4rXFx0XFx0cnVuX2NtZCBcXFwiaXAgLW4gJG5zMSBuZXh0aG9wIGFkZCBpZCAyIHZpYSAkcmVtb3RlX2FkZHIgZmRiIHBvcnQgNDc5MFxcXCJcXG4rXFx0XFx0cnVuX2NtZCBcXFwiaXAgLW4gJG5zMSBuZXh0aG9wIGFkZCBpZCAyMCBncm91cCAyIGZkYlxcXCJcXG4rXFxuK1xcdFxcdHJ1bl9jbWQgXFxcImJyaWRnZSAtbiAkbnMxIGZkYiBhZGQgMDA6MTE6MjI6MzM6NDQ6NjYgZGV2IHZ4MCBzZWxmIHN0YXRpYyBuaGlkIDIwXFxcIlxcbitcXG4rXFx0XFx0cnVuX2NtZCBcXFwiaXAgbmV0bnMgZXhlYyAkbnMxIG1hdXNlemFobiB2eDAgLWEgb3duIC1iIDAwOjExOjIyOjMzOjQ0OjY2IC1jIDEgLXFcXFwiXFxuK1xcbitcXHRcXHRidXN5d2FpdCBcXFwiJEJVU1lXQUlUX1RJTUVPVVRcXFwiIHVudGlsX2NvdW50ZXJfaXMgXFxcIj09IDFcXFwiIG5oX3N0YXRzX2dldF9wb3J0IFxcdTAwM2UgL2Rldi9udWxsXFxuK1xcdFxcdGNoZWNrX2VyciAkPyBcXFwiRkRCIG5leHRob3AgZ3JvdXAgc3RhdHMgZGlkIG5vdCBpbmNyZWFzZSAod2l0aCBwb3J0KVxcXCJcXG4rXFxuK1xcdFxcdGJ1c3l3YWl0IFxcXCIkQlVTWVdBSVRfVElNRU9VVFxcXCIgdW50aWxfY291bnRlcl9pcyBcXFwiPT0gMVxcXCIgdGNfc3RhdHNfZ2V0X3BvcnQgXFx1MDAzZSAvZGV2L251bGxcXG4rXFx0XFx0Y2hlY2tfZXJyICQ/IFxcXCJ0YyBmaWx0ZXIgc3RhdHMgZGlkIG5vdCBpbmNyZWFzZSAod2l0aCBwb3J0KVxcXCJcXG4rXFx0ZmlcXG4rXFxuIFxcdGxvZ190ZXN0IFxcXCJWWExBTiBGREIgbmV4dGhvcDogJGFmX3N0ciBiYXNpYyBUeFxcXCJcXG4gfVxcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTY6MTY6MzkuOTE0ODc1NjI2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MzAzMzA5MjM0MjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVlhMQU5cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydG1fdG9fbmhfY29uZmlnXCIsXG4gICAgXCJuZXh0aG9wX2NyZWF0ZVwiLFxuICAgIFwibmhfZmlsbF9ub2RlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBuZXRsaW5rIGF0dHJpYnV0ZSBOSEFfRkRCX1BPUlQgdG8gc3BlY2lmeSBhIFVEUCBkZXN0aW5hdGlvbiBwb3J0IGZvciBGREIgbmV4dGhvcHMgKGUuZy4sIFZYTEFOKS4gSXQgbW9kaWZpZXMgdGhlIG5leHRob3AgbmV0bGluayBjb250cm9sIHBhdGggYW5kIFZYTEFOIGRhdGFwYXRoLiBUaGUgbmV0bGluayBjb250cm9sIHBhdGggZnVuY3Rpb25zIGFyZSBnb29kIHRhcmdldHMgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgODUzYzMyNDY1ZThkN2RjNjI2MzE1MmE4YWYzNDUwYzU4YjJmMDEwMlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDE2OjE2OjM2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbmV4dGhvcC5oIGIvaW5jbHVkZS9uZXQvbmV4dGhvcC5oXG5pbmRleCA1NzJlNjljZGE0NzY2ZC4uMTllODY3MGQ5NjRkOWQgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL25ldC9uZXh0aG9wLmhcbisrKyBiL2luY2x1ZGUvbmV0L25leHRob3AuaFxuQEAgLTI4LDYgKzI4LDcgQEAgc3RydWN0IG5oX2NvbmZpZyB7XG4gXHR1OFx0XHRuaF9wcm90b2NvbDtcbiBcdHU4XHRcdG5oX2JsYWNraG9sZTtcbiBcdHU4XHRcdG5oX2ZkYjtcbitcdF9fYmUxNlx0XHRuaF9mZGJfcG9ydDtcbiBcdHUzMlx0XHRuaF9mbGFncztcbiBcbiBcdGludFx0XHRuaF9pZmluZGV4O1xuQEAgLTYzLDYgKzY0LDcgQEAgc3RydWN0IG5oX2luZm8ge1xuIFx0dThcdFx0XHRmYW1pbHk7XG4gXHRib29sXHRcdFx0cmVqZWN0X25oO1xuIFx0Ym9vbFx0XHRcdGZkYl9uaDtcbitcdF9fYmUxNlx0XHRcdGZkYl9wb3J0O1xuIFxuIFx0dW5pb24ge1xuIFx0XHRzdHJ1Y3QgZmliX25oX2NvbW1vblx0ZmliX25oYztcbkBAIC01NzQsNyArNTc2LDggQEAgc3RydWN0IGZpYl9uaF9jb21tb24gKm5leHRob3BfZmRiX25oYyhzdHJ1Y3QgbmV4dGhvcCAqbmgpXG4gfVxuIFxuIHN0YXRpYyBpbmxpbmUgc3RydWN0IGZpYl9uaF9jb21tb24gKm5leHRob3BfcGF0aF9mZGJfcmVzdWx0KHN0cnVjdCBuZXh0aG9wICpuaCxcbi1cdFx0XHRcdFx0XHRcdCAgICBpbnQgaGFzaClcbitcdFx0XHRcdFx0XHRcdCAgICBpbnQgaGFzaCxcbitcdFx0XHRcdFx0XHRcdCAgICBfX2JlMTYgKmZkYl9wb3J0KVxuIHtcbiBcdHN0cnVjdCBuaF9pbmZvICpuaGk7XG4gXHRzdHJ1Y3QgbmV4dGhvcCAqbmhwO1xuQEAgLTU4Myw2ICs1ODYsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBmaWJfbmhfY29tbW9uICpuZXh0aG9wX3BhdGhfZmRiX3Jlc3VsdChzdHJ1Y3QgbmV4dGhvcCAqbmgsXG4gXHRpZiAodW5saWtlbHkoIW5ocCkpXG4gXHRcdHJldHVybiBOVUxMO1xuIFx0bmhpID0gcmN1X2RlcmVmZXJlbmNlKG5ocC1cdTAwM2VuaF9pbmZvKTtcbitcdCpmZGJfcG9ydCA9IG5oaS1cdTAwM2VmZGJfcG9ydDtcbiBcdHJldHVybiBcdTAwMjZuaGktXHUwMDNlZmliX25oYztcbiB9XG4gI2VuZGlmXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdnhsYW4uaCBiL2luY2x1ZGUvbmV0L3Z4bGFuLmhcbmluZGV4IGRmYmE4OTY5NWVmY2ZhLi5kZTQxYjM3NDY4OGYyOSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbmV0L3Z4bGFuLmhcbisrKyBiL2luY2x1ZGUvbmV0L3Z4bGFuLmhcbkBAIC01NjcsOCArNTY3LDkgQEAgc3RhdGljIGlubGluZSBib29sIHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdChzdHJ1Y3QgbmV4dGhvcCAqbmgsXG4gXHRcdFx0XHRcdCAgICBzdHJ1Y3QgdnhsYW5fcmRzdCAqcmRzdClcbiB7XG4gXHRzdHJ1Y3QgZmliX25oX2NvbW1vbiAqbmhjO1xuK1x0X19iZTE2IGZkYl9wb3J0ID0gMDtcbiBcbi1cdG5oYyA9IG5leHRob3BfcGF0aF9mZGJfcmVzdWx0KG5oLCBoYXNoIFx1MDAzZVx1MDAzZSAxKTtcbitcdG5oYyA9IG5leHRob3BfcGF0aF9mZGJfcmVzdWx0KG5oLCBoYXNoIFx1MDAzZVx1MDAzZSAxLCBcdTAwMjZmZGJfcG9ydCk7XG4gXHRpZiAodW5saWtlbHkoIW5oYykpXG4gXHRcdHJldHVybiBmYWxzZTtcbiBcbkBAIC01ODMsNiArNTg0LDggQEAgc3RhdGljIGlubGluZSBib29sIHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdChzdHJ1Y3QgbmV4dGhvcCAqbmgsXG4gXHRcdGJyZWFrO1xuIFx0fVxuIFxuK1x0cmRzdC1cdTAwM2VyZW1vdGVfcG9ydCA9IGZkYl9wb3J0O1xuK1xuIFx0cmV0dXJuIHRydWU7XG4gfVxuIFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXh0aG9wLmggYi9pbmNsdWRlL3VhcGkvbGludXgvbmV4dGhvcC5oXG5pbmRleCBiYzQ5YmFmNGEyNjdmMC4uZTU4N2JiZjNiODkwYTMgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvbmV4dGhvcC5oXG4rKysgYi9pbmNsdWRlL3VhcGkvbGludXgvbmV4dGhvcC5oXG5AQCAtODMsNiArODMsOSBAQCBlbnVtIHtcbiBcdC8qIHUzMjsgcmVhZC1vbmx5OyB3aGV0aGVyIGFueSBkcml2ZXIgY29sbGVjdHMgSFcgc3RhdHMgKi9cbiBcdE5IQV9IV19TVEFUU19VU0VELFxuIFxuK1x0LyogYmUxNjsgVURQIGRlc3RpbmF0aW9uIHBvcnQgZm9yIGFuIGZkYiBuZXh0aG9wIChlLmcuIFZYTEFOKSAqL1xuK1x0TkhBX0ZEQl9QT1JULFxuK1xuIFx0X19OSEFfTUFYLFxuIH07XG4gXG5kaWZmIC0tZ2l0IGEvbmV0L2lwdjQvbmV4dGhvcC5jIGIvbmV0L2lwdjQvbmV4dGhvcC5jXG5pbmRleCA2MjA1YmQ1N2FhODUyMC4uYjgyZGEzZWZmNjNjOTEgMTAwNjQ0XG4tLS0gYS9uZXQvaXB2NC9uZXh0aG9wLmNcbisrKyBiL25ldC9pcHY0L25leHRob3AuY1xuQEAgLTM5LDYgKzM5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IHJ0bV9uaF9wb2xpY3lfbmV3W10gPSB7XG4gXHRbTkhBX0VOQ0FQX1RZUEVdXHQ9IHsgLnR5cGUgPSBOTEFfVTE2IH0sXG4gXHRbTkhBX0VOQ0FQXVx0XHQ9IHsgLnR5cGUgPSBOTEFfTkVTVEVEIH0sXG4gXHRbTkhBX0ZEQl1cdFx0PSB7IC50eXBlID0gTkxBX0ZMQUcgfSxcbitcdFtOSEFfRkRCX1BPUlRdXHRcdD0gTkxBX1BPTElDWV9NSU4oTkxBX0JFMTYsIDEpLFxuIFx0W05IQV9SRVNfR1JPVVBdXHRcdD0geyAudHlwZSA9IE5MQV9ORVNURUQgfSxcbiBcdFtOSEFfSFdfU1RBVFNfRU5BQkxFXVx0PSBOTEFfUE9MSUNZX01BWChOTEFfVTMyLCB0cnVlKSxcbiB9O1xuQEAgLTk1Niw2ICs5NTcsOSBAQCBzdGF0aWMgaW50IG5oX2ZpbGxfbm9kZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV4dGhvcCAqbmgsXG4gXHR9IGVsc2UgaWYgKG5oaS1cdTAwM2VmZGJfbmgpIHtcbiBcdFx0aWYgKG5sYV9wdXRfZmxhZyhza2IsIE5IQV9GREIpKVxuIFx0XHRcdGdvdG8gbmxhX3B1dF9mYWlsdXJlO1xuK1x0XHRpZiAobmhpLVx1MDAzZWZkYl9wb3J0IFx1MDAyNlx1MDAyNlxuK1x0XHQgICAgbmxhX3B1dF9iZTE2KHNrYiwgTkhBX0ZEQl9QT1JULCBuaGktXHUwMDNlZmRiX3BvcnQpKVxuK1x0XHRcdGdvdG8gbmxhX3B1dF9mYWlsdXJlO1xuIFx0fSBlbHNlIHtcbiBcdFx0Y29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldjtcbiBcbkBAIC0xMDU1LDYgKzEwNTksOSBAQCBzdGF0aWMgc2l6ZV90IG5oX25sbXNnX3NpemVfc2luZ2xlKHN0cnVjdCBuZXh0aG9wICpuaClcbiBcdFx0YnJlYWs7XG4gXHR9XG4gXG4rXHRpZiAobmhpLVx1MDAzZWZkYl9wb3J0KVxuK1x0XHRzeiArPSBubGFfdG90YWxfc2l6ZSgyKTtcdC8qIE5IQV9GREJfUE9SVCAqL1xuK1xuIFx0aWYgKG5oaS1cdTAwM2VmaWJfbmhjLm5oY19sd3RzdGF0ZSkge1xuIFx0XHRzeiArPSBsd3R1bm5lbF9nZXRfZW5jYXBfc2l6ZShuaGktXHUwMDNlZmliX25oYy5uaGNfbHd0c3RhdGUpO1xuIFx0XHRzeiArPSBubGFfdG90YWxfc2l6ZSgyKTsgIC8qIE5IQV9FTkNBUF9UWVBFICovXG5AQCAtMjk1Niw4ICsyOTYzLDEwIEBAIHN0YXRpYyBzdHJ1Y3QgbmV4dGhvcCAqbmV4dGhvcF9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmhfY29uZmlnICpjZmcsXG4gXHRuaGktXHUwMDNlZmFtaWx5ID0gY2ZnLVx1MDAzZW5oX2ZhbWlseTtcbiBcdG5oaS1cdTAwM2VmaWJfbmhjLm5oY19zY29wZSA9IFJUX1NDT1BFX0xJTks7XG4gXG4tXHRpZiAoY2ZnLVx1MDAzZW5oX2ZkYilcbitcdGlmIChjZmctXHUwMDNlbmhfZmRiKSB7XG4gXHRcdG5oaS1cdTAwM2VmZGJfbmggPSAxO1xuK1x0XHRuaGktXHUwMDNlZmRiX3BvcnQgPSBjZmctXHUwMDNlbmhfZmRiX3BvcnQ7XG4rXHR9XG4gXG4gXHRpZiAoY2ZnLVx1MDAzZW5oX2JsYWNraG9sZSkge1xuIFx0XHRuaGktXHUwMDNlcmVqZWN0X25oID0gMTtcbkBAIC0zMTQ3LDYgKzMxNTYsMTUgQEAgc3RhdGljIGludCBydG1fdG9fbmhfY29uZmlnKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdFx0Y2ZnLVx1MDAzZW5oX2ZkYiA9IG5sYV9nZXRfZmxhZyh0YltOSEFfRkRCXSk7XG4gXHR9XG4gXG4rXHRpZiAodGJbTkhBX0ZEQl9QT1JUXSkge1xuK1x0XHRpZiAoIXRiW05IQV9GREJdIHx8ICF0YltOSEFfR0FURVdBWV0pIHtcbitcdFx0XHROTF9TRVRfRVJSX01TRyhleHRhY2ssXG4rXHRcdFx0XHQgICAgICAgXCJGREIgcG9ydCBjYW4gb25seSBiZSBzZXQgb24gZmRiIG5leHRob3BzIHRoYXQgaGF2ZSBhIGdhdGV3YXlcIik7XG4rXHRcdFx0Z290byBvdXQ7XG4rXHRcdH1cbitcdFx0Y2ZnLVx1MDAzZW5oX2ZkYl9wb3J0ID0gbmxhX2dldF9iZTE2KHRiW05IQV9GREJfUE9SVF0pO1xuK1x0fVxuK1xuIFx0aWYgKHRiW05IQV9HUk9VUF0pIHtcbiBcdFx0aWYgKG5obS1cdTAwM2VuaF9mYW1pbHkgIT0gQUZfVU5TUEVDKSB7XG4gXHRcdFx0TkxfU0VUX0VSUl9NU0coZXh0YWNrLCBcIkludmFsaWQgZmFtaWx5IGZvciBncm91cFwiKTtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvZmliX25leHRob3BzLnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2ZpYl9uZXh0aG9wcy5zaFxuaW5kZXggYWM4NjhhNzMxNjk0NmEuLjFjZTRmNDVmYTY1MTVmIDEwMDc1NVxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2ZpYl9uZXh0aG9wcy5zaFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2ZpYl9uZXh0aG9wcy5zaFxuQEAgLTQzMiw2ICs0MzIsMTUgQEAgY2hlY2tfbmV4dGhvcF9mZGJfc3VwcG9ydCgpXG4gXHRmaVxuIH1cbiBcbitjaGVja19uZXh0aG9wX2ZkYl9wb3J0X3N1cHBvcnQoKVxuK3tcbitcdCRJUCBuZXh0aG9wIGhlbHAgMlx1MDAzZVx1MDAyNjEgfCBncmVwIC1xIFwiZmRiIFxcWyBwb3J0XCJcbitcdGlmIFsgJD8gLW5lIDAgXTsgdGhlblxuK1x0XHRlY2hvIFwiU0tJUDogaXByb3V0ZTIgdG9vIG9sZCwgbWlzc2luZyBmZGIgbmV4dGhvcCBwb3J0IHN1cHBvcnRcIlxuK1x0XHRyZXR1cm4gJGtzZnRfc2tpcFxuK1x0Zmlcbit9XG4rXG4gY2hlY2tfbmV4dGhvcF9yZXNfc3VwcG9ydCgpXG4ge1xuIFx0JElQIG5leHRob3AgaGVscCAyXHUwMDNlXHUwMDI2MSB8IGdyZXAgLXEgcmVzaWxpZW50XG5AQCAtNTE0LDYgKzUyMywzMSBAQCBpcHY2X2ZkYl9ncnBfZmNuYWwoKVxuIFx0cnVuX2NtZCBcIiRJUCBuZXh0aG9wIHJlcGxhY2UgaWQgNzIgdmlhIDIwMDE6ZGI4OjkxOjoyIGZkYlwiXG4gXHRsb2dfdGVzdCAkPyAyIFwiUmVwbGFjZSBub24tRkRCIG5leHRob3AgdG8gRkRCIG5leHRob3Agd2hpbGUgaW4gYSBncm91cFwiXG4gXG4rXHQjIE5IQV9GREJfUE9SVDogb3B0aW9uYWwgcGVyLW5leHRob3AgVlhMQU4gZGVzdGluYXRpb24gVURQIHBvcnQsXG4rXHQjIGxldHRpbmcgYW4gZmRiIG5leHRob3AgZ3JvdXAgYmFsYW5jZSBhIGZsb3cgYWNyb3NzIGxlZ3MgdGhhdCBzaGFyZVxuK1x0IyBhbiB1bmRlcmxheSBJUCBidXQgbGlzdGVuIG9uIGRpZmZlcmVudCBVRFAgcG9ydHMuXG4rXHRpZiBjaGVja19uZXh0aG9wX2ZkYl9wb3J0X3N1cHBvcnQ7IHRoZW5cbitcdFx0cnVuX2NtZCBcIiRJUCBuZXh0aG9wIGFkZCBpZCA4MCB2aWEgMjAwMTpkYjg6OTE6OjIgZmRiIHBvcnQgNDc5MFwiXG4rXHRcdGNoZWNrX25leHRob3AgXCJpZCA4MFwiIFwiaWQgODAgdmlhIDIwMDE6ZGI4OjkxOjoyIHNjb3BlIGxpbmsgZmRiIHBvcnQgNDc5MFwiXG4rXHRcdGxvZ190ZXN0ICQ/IDAgXCJGZGIgbmV4dGhvcCB3aXRoIHBvcnRcIlxuK1xuK1x0XHRydW5fY21kIFwiJElQIG5leHRob3AgYWRkIGlkIDgxIGZkYiBwb3J0IDQ3OTBcIlxuK1x0XHRsb2dfdGVzdCAkPyAyIFwiRmRiIG5leHRob3Agd2l0aCBwb3J0IGJ1dCBubyBnYXRld2F5XCJcbitcbitcdFx0cnVuX2NtZCBcIiRJUCBuZXh0aG9wIGFkZCBpZCA4MSB2aWEgMjAwMTpkYjg6OTE6OjIgZmRiIHBvcnQgMFwiXG4rXHRcdGxvZ190ZXN0ICQ/IDIgXCJGZGIgbmV4dGhvcCB3aXRoIHBvcnQgMFwiXG4rXG4rXHRcdHJ1bl9jbWQgXCIkSVAgbmV4dGhvcCBhZGQgaWQgODIgdmlhIDIwMDE6ZGI4OjkxOjoyIGZkYiBwb3J0IDQ3ODlcIlxuK1x0XHRydW5fY21kIFwiJElQIG5leHRob3AgYWRkIGlkIDgzIHZpYSAyMDAxOmRiODo5MTo6MyBmZGIgcG9ydCA1Nzg5XCJcbitcdFx0cnVuX2NtZCBcIiRJUCBuZXh0aG9wIGFkZCBpZCAxMDYgZ3JvdXAgODIvODMgZmRiXCJcbitcdFx0Y2hlY2tfbmV4dGhvcCBcImlkIDEwNlwiIFwiaWQgMTA2IGdyb3VwIDgyLzgzIGZkYlwiXG4rXHRcdGxvZ190ZXN0ICQ/IDAgXCJGZGIgbmV4dGhvcCBncm91cCB3aXRoIGxlZ3MgZGlmZmVyaW5nIGluIHBvcnRcIlxuK1xuK1x0XHRydW5fY21kIFwiJElQIG5leHRob3AgYWRkIGlkIDg0IHZpYSAyMDAxOmRiODo5MTo6MiBmZGJcIlxuK1x0XHRjaGVja19uZXh0aG9wIFwiaWQgODRcIiBcImlkIDg0IHZpYSAyMDAxOmRiODo5MTo6MiBzY29wZSBsaW5rIGZkYlwiXG4rXHRcdGxvZ190ZXN0ICQ/IDAgXCJGZGIgbmV4dGhvcCB3aXRob3V0IHBvcnQgb21pdHMgcG9ydFwiXG4rXHRmaVxuK1xuIFx0cnVuX2NtZCBcIiRJUCBsaW5rIGFkZCBuYW1lIHZ4MTAgdHlwZSB2eGxhbiBpZCAxMDEwIGxvY2FsIDIwMDE6ZGI4OjkxOjo5IHJlbW90ZSAyMDAxOmRiODo5MTo6MTAgZHN0cG9ydCA0Nzg5IG5vbGVhcm5pbmcgbm91ZHBjc3VtIHRvcyBpbmhlcml0IHR0bCAxMDBcIlxuIFx0cnVuX2NtZCBcIiRCUklER0UgZmRiIGFkZCAwMjowMjowMDowMDowMDoxMyBkZXYgdngxMCBuaGlkIDEwMiBzZWxmXCJcbiBcdGxvZ190ZXN0ICQ/IDAgXCJGZGIgbWFjIGFkZCB3aXRoIG5leHRob3AgZ3JvdXBcIlxuQEAgLTYxNCw2ICs2NDgsMzEgQEAgaXB2NF9mZGJfZ3JwX2ZjbmFsKClcbiBcdHJ1bl9jbWQgXCIkSVAgbmV4dGhvcCByZXBsYWNlIGlkIDIwIHZpYSAxNzIuMTYuMS4yIGZkYlwiXG4gXHRsb2dfdGVzdCAkPyAyIFwiUmVwbGFjZSBub24tRkRCIG5leHRob3AgdG8gRkRCIG5leHRob3Agd2hpbGUgaW4gYSBncm91cFwiXG4gXG4rXHQjIE5IQV9GREJfUE9SVDogb3B0aW9uYWwgcGVyLW5leHRob3AgVlhMQU4gZGVzdGluYXRpb24gVURQIHBvcnQsXG4rXHQjIGxldHRpbmcgYW4gZmRiIG5leHRob3AgZ3JvdXAgYmFsYW5jZSBhIGZsb3cgYWNyb3NzIGxlZ3MgdGhhdCBzaGFyZVxuK1x0IyBhbiB1bmRlcmxheSBJUCBidXQgbGlzdGVuIG9uIGRpZmZlcmVudCBVRFAgcG9ydHMuXG4rXHRpZiBjaGVja19uZXh0aG9wX2ZkYl9wb3J0X3N1cHBvcnQ7IHRoZW5cbitcdFx0cnVuX2NtZCBcIiRJUCBuZXh0aG9wIGFkZCBpZCAzMCB2aWEgMTcyLjE2LjEuMiBmZGIgcG9ydCA0NzkwXCJcbitcdFx0Y2hlY2tfbmV4dGhvcCBcImlkIDMwXCIgXCJpZCAzMCB2aWEgMTcyLjE2LjEuMiBzY29wZSBsaW5rIGZkYiBwb3J0IDQ3OTBcIlxuK1x0XHRsb2dfdGVzdCAkPyAwIFwiRmRiIG5leHRob3Agd2l0aCBwb3J0XCJcbitcbitcdFx0cnVuX2NtZCBcIiRJUCBuZXh0aG9wIGFkZCBpZCAzMSBmZGIgcG9ydCA0NzkwXCJcbitcdFx0bG9nX3Rlc3QgJD8gMiBcIkZkYiBuZXh0aG9wIHdpdGggcG9ydCBidXQgbm8gZ2F0ZXdheVwiXG4rXG4rXHRcdHJ1bl9jbWQgXCIkSVAgbmV4dGhvcCBhZGQgaWQgMzEgdmlhIDE3Mi4xNi4xLjIgZmRiIHBvcnQgMFwiXG4rXHRcdGxvZ190ZXN0ICQ/IDIgXCJGZGIgbmV4dGhvcCB3aXRoIHBvcnQgMFwiXG4rXG4rXHRcdHJ1bl9jbWQgXCIkSVAgbmV4dGhvcCBhZGQgaWQgMzIgdmlhIDE3Mi4xNi4xLjIgZmRiIHBvcnQgNDc4OVwiXG4rXHRcdHJ1bl9jbWQgXCIkSVAgbmV4dGhvcCBhZGQgaWQgMzMgdmlhIDE3Mi4xNi4xLjMgZmRiIHBvcnQgNTc4OVwiXG4rXHRcdHJ1bl9jbWQgXCIkSVAgbmV4dGhvcCBhZGQgaWQgMTA1IGdyb3VwIDMyLzMzIGZkYlwiXG4rXHRcdGNoZWNrX25leHRob3AgXCJpZCAxMDVcIiBcImlkIDEwNSBncm91cCAzMi8zMyBmZGJcIlxuK1x0XHRsb2dfdGVzdCAkPyAwIFwiRmRiIG5leHRob3AgZ3JvdXAgd2l0aCBsZWdzIGRpZmZlcmluZyBpbiBwb3J0XCJcbitcbitcdFx0cnVuX2NtZCBcIiRJUCBuZXh0aG9wIGFkZCBpZCAzNCB2aWEgMTcyLjE2LjEuMiBmZGJcIlxuK1x0XHRjaGVja19uZXh0aG9wIFwiaWQgMzRcIiBcImlkIDM0IHZpYSAxNzIuMTYuMS4yIHNjb3BlIGxpbmsgZmRiXCJcbitcdFx0bG9nX3Rlc3QgJD8gMCBcIkZkYiBuZXh0aG9wIHdpdGhvdXQgcG9ydCBvbWl0cyBwb3J0XCJcbitcdGZpXG4rXG4gXHRydW5fY21kIFwiJElQIGxpbmsgYWRkIG5hbWUgdngxMCB0eXBlIHZ4bGFuIGlkIDEwMTAgbG9jYWwgMTAuMC4wLjEgcmVtb3RlIDEwLjAuMC4yIGRzdHBvcnQgNDc4OSBub2xlYXJuaW5nIG5vdWRwY3N1bSB0b3MgaW5oZXJpdCB0dGwgMTAwXCJcbiBcdHJ1bl9jbWQgXCIkQlJJREdFIGZkYiBhZGQgMDI6MDI6MDA6MDA6MDA6MTMgZGV2IHZ4MTAgbmhpZCAxMDIgc2VsZlwiXG4gXHRsb2dfdGVzdCAkPyAwIFwiRmRiIG1hYyBhZGQgd2l0aCBuZXh0aG9wIGdyb3VwXCJcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGVzdF92eGxhbl9uaC5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90ZXN0X3Z4bGFuX25oLnNoXG5pbmRleCAyMGYzMzY5Zjc3NmIxNS4uMzRhMjRhNGY5NWJmN2IgMTAwNzU1XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGVzdF92eGxhbl9uaC5zaFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rlc3RfdnhsYW5fbmguc2hcbkBAIC01Niw2ICs1NiwxNiBAQCB0Y19zdGF0c19nZXQoKVxuIFx0dGNfcnVsZV9oYW5kbGVfc3RhdHNfZ2V0IFwiZGV2IGR1bW15MSBlZ3Jlc3NcIiAxMDEgXCIucGFja2V0c1wiIFwiLW4gJG5zMVwiXG4gfVxuIFxuK25oX3N0YXRzX2dldF9wb3J0KClcbit7XG4rXHRpcCAtbiBcIiRuczFcIiAtcyAtaiBuZXh0aG9wIHNob3cgaWQgMjAgfCBqcSBcIi5bXVtcXFwiZ3JvdXBfc3RhdHNcXFwiXVtdW1xcXCJwYWNrZXRzXFxcIl1cIlxuK31cbitcbit0Y19zdGF0c19nZXRfcG9ydCgpXG4re1xuK1x0dGNfcnVsZV9oYW5kbGVfc3RhdHNfZ2V0IFwiZGV2IGR1bW15MSBlZ3Jlc3NcIiAxMDIgXCIucGFja2V0c1wiIFwiLW4gJG5zMVwiXG4rfVxuK1xuIGJhc2ljX3R4X2NvbW1vbigpXG4ge1xuIFx0bG9jYWwgYWZfc3RyPSQxOyBzaGlmdFxuQEAgLTkwLDYgKzEwMCwyNyBAQCBiYXNpY190eF9jb21tb24oKVxuIFx0YnVzeXdhaXQgXCIkQlVTWVdBSVRfVElNRU9VVFwiIHVudGlsX2NvdW50ZXJfaXMgXCI9PSAxXCIgdGNfc3RhdHNfZ2V0IFx1MDAzZSAvZGV2L251bGxcbiBcdGNoZWNrX2VyciAkPyBcInRjIGZpbHRlciBzdGF0cyBkaWQgbm90IGluY3JlYXNlXCJcbiBcbitcdCMgQWRkIGEgc2Vjb25kIEZEQiBuZXh0aG9wIGdyb3VwIHdob3NlIG5leHRob3AgY2FycmllcyBhIHBlci1uZXh0aG9wXG4rXHQjIGRlc3RpbmF0aW9uIHBvcnQgKE5IQV9GREJfUE9SVCkgdGhhdCBkaWZmZXJzIGZyb20gdGhlIFZYTEFOIGRldmljZVxuK1x0IyBkZWZhdWx0LiBNYXRjaGluZyBvdXRlciB0cmFmZmljIG11c3QgZWdyZXNzIHdpdGggdGhhdCBwb3J0LCBzbyBhXG4rXHQjIHNlcGFyYXRlIGZsb3dlciBmaWx0ZXIga2V5ZWQgb24gdGhlIG5ldyBwb3J0IGNhdGNoZXMgaXQuXG4rXHRpZiBpcCBuZXh0aG9wIGhlbHAgMlx1MDAzZVx1MDAyNjEgfCBncmVwIC1xIFwiZmRiIFxcWyBwb3J0XCI7IHRoZW5cbitcdFx0cnVuX2NtZCBcInRjIC1uICRuczEgZmlsdGVyIGFkZCBkZXYgZHVtbXkxIGVncmVzcyBwcm90byAkcHJvdG8gcHJlZiAxIGhhbmRsZSAxMDIgZmxvd2VyIGlwX3Byb3RvIHVkcCBkc3RfaXAgJHJlbW90ZV9hZGRyIGRzdF9wb3J0IDQ3OTAgYWN0aW9uIHBhc3NcIlxuK1xuK1x0XHRydW5fY21kIFwiaXAgLW4gJG5zMSBuZXh0aG9wIGFkZCBpZCAyIHZpYSAkcmVtb3RlX2FkZHIgZmRiIHBvcnQgNDc5MFwiXG4rXHRcdHJ1bl9jbWQgXCJpcCAtbiAkbnMxIG5leHRob3AgYWRkIGlkIDIwIGdyb3VwIDIgZmRiXCJcbitcbitcdFx0cnVuX2NtZCBcImJyaWRnZSAtbiAkbnMxIGZkYiBhZGQgMDA6MTE6MjI6MzM6NDQ6NjYgZGV2IHZ4MCBzZWxmIHN0YXRpYyBuaGlkIDIwXCJcbitcbitcdFx0cnVuX2NtZCBcImlwIG5ldG5zIGV4ZWMgJG5zMSBtYXVzZXphaG4gdngwIC1hIG93biAtYiAwMDoxMToyMjozMzo0NDo2NiAtYyAxIC1xXCJcbitcbitcdFx0YnVzeXdhaXQgXCIkQlVTWVdBSVRfVElNRU9VVFwiIHVudGlsX2NvdW50ZXJfaXMgXCI9PSAxXCIgbmhfc3RhdHNfZ2V0X3BvcnQgXHUwMDNlIC9kZXYvbnVsbFxuK1x0XHRjaGVja19lcnIgJD8gXCJGREIgbmV4dGhvcCBncm91cCBzdGF0cyBkaWQgbm90IGluY3JlYXNlICh3aXRoIHBvcnQpXCJcbitcbitcdFx0YnVzeXdhaXQgXCIkQlVTWVdBSVRfVElNRU9VVFwiIHVudGlsX2NvdW50ZXJfaXMgXCI9PSAxXCIgdGNfc3RhdHNfZ2V0X3BvcnQgXHUwMDNlIC9kZXYvbnVsbFxuK1x0XHRjaGVja19lcnIgJD8gXCJ0YyBmaWx0ZXIgc3RhdHMgZGlkIG5vdCBpbmNyZWFzZSAod2l0aCBwb3J0KVwiXG4rXHRmaVxuK1xuIFx0bG9nX3Rlc3QgXCJWWExBTiBGREIgbmV4dGhvcDogJGFmX3N0ciBiYXNpYyBUeFwiXG4gfVxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTY6MTY6MzkuOTE0ODc4MTc1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzE3NTc1OTU4OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFZYTEFOIEZEQiBOZXh0aG9wIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IGludHJvZHVjZXMgYE5IQV9GREJfUE9SVGAgc3VwcG9ydCBpbiBuZXh0aG9wcywgc3BlY2lmaWNhbGx5IGZvciBWWExBTiBGREIgbmV4dGhvcHMuIFRoaXMgaXMgY29yZSBuZXR3b3JraW5nIGZ1bmN0aW9uYWxpdHksIHNvIGl0IG5lZWRzIGNhcmVmdWwgcmV2aWV3LiBJdCBsb29rcyBsaWtlIGl0IHRvdWNoZXMgcXVpdGUgYSBmZXcgZmlsZXM6IGBpbmNsdWRlL25ldC9uZXh0aG9wLmhgLCBgaW5jbHVkZS9uZXQvdnhsYW4uaGAsIGBpbmNsdWRlL3VhcGkvbGludXgvbmV4dGhvcC5oYCwgYG5ldC9pcHY0L25leHRob3AuY2AsIGFuZCBzb21lIHNlbGZ0ZXN0cywgd2hpY2ggaXMgd2hhdCBJJ2QgZXhwZWN0IGZvciB0aGlzIGtpbmQgb2YgY2hhbmdlLiBUaGUgcHJpbWFyeSBmdW5jdGlvbiBvZiB0aGlzIHBhdGNoIGlzIGFsbG93aW5nIHVzZXJzIHRvIHNwZWNpZnkgYSBVRFAgZGVzdGluYXRpb24gcG9ydCBmb3IgYW4gRkRCIG5leHRob3AuXG5cbkxldCdzIGJyZWFrIGRvd24gdGhlIGZ1bmN0aW9ucyBtb2RpZmllZCBhbmQgc2VlIHdoYXQncyBiZWluZyBhZmZlY3RlZC4gSXQgbG9va3MgbGlrZSB3ZSBoYXZlOlxuLSAgIGBuZXh0aG9wX3BhdGhfZmRiX3Jlc3VsdGAgaW4gYGluY2x1ZGUvbmV0L25leHRob3AuaGBcbi0gICBgdnhsYW5fZmRiX25oX3BhdGhfc2VsZWN0YCBpbiBgaW5jbHVkZS9uZXQvdnhsYW4uaGBcbi0gICBgbmhfZmlsbF9ub2RlYCBpbiBgbmV0L2lwdjQvbmV4dGhvcC5jYFxuLSAgIGBuaF9ubG1zZ19zaXplX3NpbmdsZWAgaW4gYG5ldC9pcHY0L25leHRob3AuY2Bcbi0gICBgbmV4dGhvcF9jcmVhdGVgIGluIGBuZXQvaXB2NC9uZXh0aG9wLmNgXG4tICAgYHJ0bV90b19uaF9jb25maWdgIGluIGBuZXQvaXB2NC9uZXh0aG9wLmNgXG5cbkkgbmVlZCB0byBjb25maXJtIHRoZSBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcyBmb3IgdGhpcy4gT2J2aW91c2x5LCBgQ09ORklHX1ZYTEFOYCBpcyBuZWNlc3NhcnkgZm9yIFZYTEFOIHN1cHBvcnQuIEFzIGZvciB0aGUgcmVzdCBvZiB0aGUgbmV4dGhvcCBmdW5jdGlvbmFsaXR5LCBJIHRoaW5rIHRoYXQgaXMgYSBzdGFuZGFyZCBwYXJ0IG9mIElQdjQgcm91dGluZywgbm90IGRpcmVjdGx5IHJlbGF0ZWQgdG8gYENPTkZJR19JUF9ST1VURV9NVUxUSVBBVEhgLiBMZXQncyBjb25maXJtIHRoYXQgYnkgY2hlY2tpbmcgYG5ldC9pcHY0L25leHRob3AuY2AgYW5kIGBpbmNsdWRlL25ldC9uZXh0aG9wLmhgIGRlcGVuZGVuY2llcy4gTG9va3MgbGlrZSBgbmV0L2lwdjQvbmV4dGhvcC5jYCBpcyBhbHdheXMgY29tcGlsZWQgZm9yIElQdjQsIG5vdCB1bmRlciBgQ09ORklHX0lQX1JPVVRFX01VTFRJUEFUSGAuIExldCdzIGNoZWNrIGBuZXQvaXB2NC9NYWtlZmlsZWAgdG8gYmUgc3VyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NjQwOCwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwNiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDE2OjE2OjQ3LjA5MDY0MDUzNFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjM5NjM3NzgxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5leHRob3Aub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvaXB2NC9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvaXB2NC9NYWtlZmlsZT02PW9iai15ICAgICA6PSByb3V0ZS5vIGluZXRwZWVyLm8gcHJvdG9jb2wubyBcXFxcXFxuLS1cXG5uZXQvaXB2NC9NYWtlZmlsZS0xNi1cXHQgICAgIGluZXRfZnJhZ21lbnQubyBwaW5nLm8gaXBfdHVubmVsX2NvcmUubyBncmVfb2ZmbG9hZC5vIFxcXFxcXG5uZXQvaXB2NC9NYWtlZmlsZToxNzpcXHQgICAgIG1ldHJpY3MubyBuZXRsaW5rLm8gbmV4dGhvcC5vIHVkcF90dW5uZWxfc3R1Yi5vXFxubmV0L2lwdjQvTWFrZWZpbGUtMTgtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDE2OjE2OjQ4LjczMDI5OTczNVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxMzk0NDEwMTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKklQdjQgYW5kIFZYTEFOIENvbmNlcm5zKipcblxuUmlnaHQsIHNvIHRoaXMgY29kZSBpcyBidWlsdCBhc3N1bWluZyBJUHY0LCBubyBpZnMsIGFuZHMsIG9yIGJ1dHMuIE9rYXksIHRoYXQncyBmaW5lIGZvciBzb21lIGNvbnRleHRzLCBidXQgaW1tZWRpYXRlbHkgSSdtIHRoaW5raW5nIGFib3V0IFZYTEFOLiBJcyB0aGlzIGdvaW5nIHRvIHBsYXkgbmljZWx5IHdpdGggVlhMQU4tZW5jYXBzdWxhdGVkIHRyYWZmaWM/IFRoZSBsb2dpYyB3aXRoaW4gYHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdGAgaXMgY3JpdGljYWwgaGVyZS4gSXQncyB1c2VkIHNvIGl0IG5lZWRzIHRoZSByaWdodCBrZXJuZWwgY29uZmlndXJhdGlvbi4gSSByZW1lbWJlciBub3c6IEknbSBwcmV0dHkgc3VyZSB0aGF0IGZ1bmN0aW9uIGRlcGVuZHMgb24gYENPTkZJR19WWExBTmAgYmVpbmcgZW5hYmxlZC4gSWYgdGhhdCdzIG5vdCBzZXQsIHRoZSByZWxldmFudCBwYXJ0cyBvZiB0aGUgVlhMQU4gc3VwcG9ydCBhcmUgZ29pbmcgdG8gYmUgbWlzc2luZyBhbmQgdGhpcyB3aG9sZSB0aGluZyBjb3VsZCBmYWxsIGFwYXJ0LiBJIG5lZWQgdG8ga2VlcCB0aGF0IGRlcGVuZGVuY3kgaW4gbWluZCB3aGVuIGV2YWx1YXRpbmcgdGhpcywgZXNwZWNpYWxseSBpbiBhIFZYTEFOIGVudmlyb25tZW50LiBJJ20gZ29pbmcgdG8gbWFrZSBhIG1lbnRhbCBub3RlIHRvIHZlcmlmeSB0aGUgY29uZmlnLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3NDUwLCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTY6MTY6NTEuODY5NzQzMzgzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5MDM4MDAzODQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidnhsYW5fZmRiX25oX3BhdGhfc2VsZWN0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MjY1MD1zdGF0aWMgdm9pZCB2eGxhbl94bWl0X25oKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMjY2My1cXHRcXHRnb3RvIGRyb3A7XFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjI2NjQ6XFx0ZG9feG1pdCA9IHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdChuaCwgaGFzaCwgXFx1MDAyNm5oX3Jkc3QpO1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0yNjY1LVxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTI2ODA9c3RhdGljIG5ldGRldl90eF90IHZ4bGFuX3htaXRfbmhpZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTI2OTctXFx0fVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzoyNjk4OlxcdGRvX3htaXQgPSB2eGxhbl9mZGJfbmhfcGF0aF9zZWxlY3QobmgsIGhhc2gsIFxcdTAwMjZuaF9yZHN0KTtcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMjY5OS1cXHRyY3VfcmVhZF91bmxvY2soKTtcXG4tLVxcbmluY2x1ZGUvbmV0L3Z4bGFuLmg9NTM0PXN0YXRpYyBpbmxpbmUgdm9pZCB2eGxhbl9mbGFnX2F0dHJfZXJyb3IoaW50IGF0dHJ0eXBlLFxcbi0tXFxuaW5jbHVkZS9uZXQvdnhsYW4uaC01NjQtXFxuaW5jbHVkZS9uZXQvdnhsYW4uaDo1NjU6c3RhdGljIGlubGluZSBib29sIHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdChzdHJ1Y3QgbmV4dGhvcCAqbmgsXFxuaW5jbHVkZS9uZXQvdnhsYW4uaC01NjYtXFx0XFx0XFx0XFx0XFx0ICAgIHUzMiBoYXNoLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQxNjoxNjo1Ni43NzM1NTcxNzdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NjE3MzA0MTY0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBWWExBTiBOZXh0IEhvcCBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSBuZWVkIHRvIG1ha2Ugc3VyZSBgQ09ORklHX1ZYTEFOYCBpcyBlbmFibGVkLiBMZXQncyBzdGFydCB0aGVyZS4gTm93LCBsZXQncyBzZWUgd2hhdCBlbHNlIHdlJ3JlIGRlYWxpbmcgd2l0aCBjb25maWd1cmF0aW9uLXdpc2UuIEkgc2VlIGBOSEFfRkRCX1BPUlRgIGFzIGEgbmV0bGluayBhdHRyaWJ1dGUsIHdoaWNoIGlzIHVzZWZ1bC4gVGhlIGNvcmUgc2VlbXMgdG8gcmV2b2x2ZSBhcm91bmQgYHJ0bV90b19uaF9jb25maWdgLCB3aGljaCBnZXRzIGNhbGxlZCBmcm9tIGBydG1fbmV3bmV4dGhvcGAgaW4gYG5ldC9pcHY0L25leHRob3AuY2AsIGFuZCwgaW1wb3J0YW50bHksIGBuZXh0aG9wX2NyZWF0ZWAgd2hpY2ggaXMgaXRzZWxmIGNhbGxlZCBmcm9tIGBydG1fbmV3bmV4dGhvcGAuXG5cbkkgbmVlZCB0byBmb2N1cyBvbiBhIGZldyBrZXkgc3ltYm9scyBoZXJlOiBgcnRtX3RvX25oX2NvbmZpZ2AsIGBuZXh0aG9wX2NyZWF0ZWAsIGBuaF9maWxsX25vZGVgLCBhbmQgYHZ4bGFuX2ZkYl9uaF9wYXRoX3NlbGVjdGAuXG5cbkxldCBtZSBzZWUsIGlzIGB2eGxhbl9mZGJfbmhfcGF0aF9zZWxlY3RgIGluIHRoZSBob3QgcGF0aD8gQWgsIHllcywgaXQncyBjYWxsZWQgZnJvbSBgdnhsYW5feG1pdF9uaGAgYW5kIGB2eGxhbl94bWl0X25oaWRgLCB3aGljaCBhcmUgdGhlbXNlbHZlcyBjYWxsZWQgZnJvbSBgdnhsYW5feG1pdGAuIEFuZCBgdnhsYW5feG1pdGAgaXMgdGhlIGBuZG9fc3RhcnRfeG1pdGAgZm9yIFZYTEFOIOKAkyBkZWZpbml0ZWx5IGEgaG90IHBhdGghIFRoYXQncyBzb21ldGhpbmcgd2Ugd2FudCB0byBhdm9pZCBpZiBwb3NzaWJsZS5cblxuR29vZCwgbm93IGxvb2tpbmcgYXQgYHJ0bV90b19uaF9jb25maWdgLCBgbmV4dGhvcF9jcmVhdGVgLCBhbmQgYG5oX2ZpbGxfbm9kZWAgdGhleSBsb29rIGxpa2UgdGhleSBhcmUgYWxsIGNvbnRyb2wgcGF0aCBmdW5jdGlvbnMsIGRlYWxpbmcgd2l0aCBuZXRsaW5rLiBUaGF0IGlzIGdvb2QuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBmdW5jdGlvbiBjYWxscyBhbmQgdGhlIHBhdGhzIHRvIHRoZW0sIGJ1dCBhcyBmYXIgYXMgSSBjYW4gc2VlLCB0aGVzZSBzaG91bGQgbm90IGJlIGluIHRoZSBob3QgcGF0aC5cblxuTm93LCBsZXQncyBqdXN0IG1ha2Ugc3VyZSB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIGZ1bmN0aW9ucyB0aGF0IGFyZSBjcml0aWNhbCB0byB0aGlzLCBsZXQncyBzZWUuIExvb2tzIGxpa2UgYG5leHRob3BfcGF0aF9mZGJfcmVzdWx0YCBpcyBhbiBpbmxpbmUgZnVuY3Rpb24gaW4gYGluY2x1ZGUvbmV0L25leHRob3AuaGAuIE9rYXkuXG5cblNvLCB0aGUga2V5IGZ1bmN0aW9ucyB0aGF0IHdhcnJhbnQgZnVydGhlciBzY3J1dGlueSBhcmU6IGBydG1fdG9fbmhfY29uZmlnYCwgYG5leHRob3BfY3JlYXRlYCwgYW5kIGBuaF9maWxsX25vZGVgLiBMZXQncyBkb3VibGUgY2hlY2sgYHJ0bV90b19uaF9jb25maWdgIGFuZCBgbmV4dGhvcF9jcmVhdGVgIGFnYWluLCBqdXN0IHRvIG1ha2Ugc3VyZSBJIGFtIG9uIHRoZSByaWdodCB0cmFjayBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MTM0LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzc5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDE2OjE3OjAzLjM5MDg2MzcwMloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTkzNTYzNzIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnRtX3RvX25oX2NvbmZpZ1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvaXB2NC9uZXh0aG9wLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2lwdjQvbmV4dGhvcC5jPTMwMzg9c3RhdGljIGludCBydG1fbmhfZ2V0X3RpbWVyKHN0cnVjdCBubGF0dHIgKmF0dHIsIHVuc2lnbmVkIGxvbmcgZmFsbGJhY2ssXFxuLS1cXG5uZXQvaXB2NC9uZXh0aG9wLmMtMzA2Mi1cXG5uZXQvaXB2NC9uZXh0aG9wLmM6MzA2MzpzdGF0aWMgaW50IHJ0bV90b19uaF9jb25maWdfZ3JwX3JlcyhzdHJ1Y3QgbmxhdHRyICpyZXMsIHN0cnVjdCBuaF9jb25maWcgKmNmZyxcXG5uZXQvaXB2NC9uZXh0aG9wLmMtMzA2NC1cXHRcXHRcXHRcXHQgICAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKVxcbi0tXFxubmV0L2lwdjQvbmV4dGhvcC5jLTMxMDEtXFxubmV0L2lwdjQvbmV4dGhvcC5jOjMxMDI6c3RhdGljIGludCBydG1fdG9fbmhfY29uZmlnKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5uZXQvaXB2NC9uZXh0aG9wLmMtMzEwMy1cXHRcXHRcXHQgICAgc3RydWN0IG5sbXNnaGRyICpubGgsIHN0cnVjdCBubGF0dHIgKip0YixcXG4tLVxcbm5ldC9pcHY0L25leHRob3AuYy0zMTg5LVxcdFxcdGlmIChjZmctXFx1MDAzZW5oX2dycF90eXBlID09IE5FWFRIT1BfR1JQX1RZUEVfUkVTKVxcbm5ldC9pcHY0L25leHRob3AuYzozMTkwOlxcdFxcdFxcdGVyciA9IHJ0bV90b19uaF9jb25maWdfZ3JwX3Jlcyh0YltOSEFfUkVTX0dST1VQXSxcXG5uZXQvaXB2NC9uZXh0aG9wLmMtMzE5MS1cXHRcXHRcXHRcXHRcXHRcXHQgICAgICAgY2ZnLCBleHRhY2spO1xcbi0tXFxubmV0L2lwdjQvbmV4dGhvcC5jLTMyNzctXFxubmV0L2lwdjQvbmV4dGhvcC5jOjMyNzg6c3RhdGljIGludCBydG1fdG9fbmhfY29uZmlnX3J0bmwoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmxhdHRyICoqdGIsXFxubmV0L2lwdjQvbmV4dGhvcC5jLTMyNzktXFx0XFx0XFx0XFx0IHN0cnVjdCBuaF9jb25maWcgKmNmZyxcXG4tLVxcbm5ldC9pcHY0L25leHRob3AuYz0zMzEwPXN0YXRpYyBpbnQgcnRtX25ld19uZXh0aG9wKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBubG1zZ2hkciAqbmxoLFxcbi0tXFxubmV0L2lwdjQvbmV4dGhvcC5jLTMzMjQtXFxubmV0L2lwdjQvbmV4dGhvcC5jOjMzMjU6XFx0ZXJyID0gcnRtX3RvX25oX2NvbmZpZyhuZXQsIHNrYiwgbmxoLCB0YiwgXFx1MDAyNmNmZywgZXh0YWNrKTtcXG5uZXQvaXB2NC9uZXh0aG9wLmMtMzMyNi1cXHRpZiAoZXJyKVxcbi0tXFxubmV0L2lwdjQvbmV4dGhvcC5jLTMzMzYtXFxubmV0L2lwdjQvbmV4dGhvcC5jOjMzMzc6XFx0ZXJyID0gcnRtX3RvX25oX2NvbmZpZ19ydG5sKG5ldCwgdGIsIFxcdTAwMjZjZmcsIGV4dGFjayk7XFxubmV0L2lwdjQvbmV4dGhvcC5jLTMzMzgtXFx0aWYgKGVycilcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMTY6MTc6MDMuOTkwMjI1NTk0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjAyNDQ2MTc1MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiBOZXh0IEhvcCBDb25maWd1cmF0aW9uKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBnb2FsIGlzIHRvIHVuZGVyc3RhbmQgaG93IHdlJ3JlIGNvbmZpZ3VyaW5nIHRoZSBuZXh0LWhvcCBmdW5jdGlvbmFsaXR5LiBUaGUga2V5IGZ1bmN0aW9ucyBJIG5lZWQgdG8gZm9jdXMgb24gYXJlIGBydG1fdG9fbmhfY29uZmlnYCwgYG5leHRob3BfY3JlYXRlYCwgYW5kIGBuaF9maWxsX25vZGVgLiBUaGVzZSBzZWVtIHRvIGJlIHRoZSBjb3JlIGJ1aWxkaW5nIGJsb2Nrcy5cblxuSSBzZWUgdGhhdCB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIGluIHBsYXkgaXMgYFZYTEFOYC4gSSdtIGN1cmlvdXMgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBjb25maWd1cmF0aW9ucyBpbnZvbHZlZCwgc28gSSdsbCBuZWVkIHRvIGRpZyBhIGxpdHRsZSBkZWVwZXIgdG8gc2VlIGlmIGFueSBvdGhlcnMgaW5mbHVlbmNlIHRoaXMgcGFydCBvZiB0aGUgY29kZS5cblxuQWxyaWdodCwgSSBmb3VuZCBgTkhBX0ZEQl9QT1JUYCwgYW5kIGl0IGlzIHBhcnQgb2YgYHJ0bV9uaF9wb2xpY3lfbmV3YCBpbiBgbmV0L2lwdjQvbmV4dGhvcC5jYC4gVGhpcyBpcyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBwYXJ0IG9mIHRoZSBjb2RlIEkgbmVlZCB0byBjb25zaWRlci5cblxuTm93LCBJJ2xsIHNldCB0aGUgYFdvcnRoRnV6emluZ2AgZmxhZyB0byBgdHJ1ZWAuIFRoZXNlIGZ1bmN0aW9ucyBzZWVtIGxpa2UgZ29vZCBjYW5kaWRhdGVzIHRvIHRlc3QgdGhvcm91Z2hseS4gSSdsbCBtYWtlIHN1cmUgdG8gcHJpb3JpdGl6ZSBmdXp6aW5nIGBydG1fdG9fbmhfY29uZmlnYCwgYG5leHRob3BfY3JlYXRlYCwgYW5kIGBuaF9maWxsX25vZGVgLlxuXG5UbyBiZSBjZXJ0YWluLCBJIHdhbnQgdG8gY29uZmlybSB0aGF0IGBWWExBTmAgaXMgdGhlIG9ubHkgY29uZmlndXJhdGlvbiBhY3RpdmVseSBpbnZvbHZlZC4gSSBzZWUgYENPTkZJR19WWExBTmAgaXMgdHJpc3RhdGUsIHNvIGl0J3MgcG9zc2libGUuIEFyZSB0aGVyZSBvdGhlciBjb25maWdzIHRoYXQgaW5mbHVlbmNlIG5leHRob3AgYmVoYXZpb3I/IEhtbSwgYG5leHRob3Aub2AgYXBwZWFycyB0byBiZSBjb21waWxlZCB1bmNvbmRpdGlvbmFsbHkgZm9yIElQdjQsIHNvIG5vLCB0aGVyZSBkb24ndCBhcHBlYXIgdG8gYmUgYW55IG90aGVyIGNvbmZpZ3MuXG5cbk5vdywgSSdtIHJlYWR5IHRvIHVzZSB0aGUgYHNldC1yZXN1bHRzYCB0b29sIGFuZCBtb3ZlIGZvcndhcmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk3MDMsIk91dHB1dFRva2VucyI6MTI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjA5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDE2OjE3OjEwLjAxNDY5MDE0NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzMTEwMTE0MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVlhMQU5cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydG1fdG9fbmhfY29uZmlnXCIsXG4gICAgXCJuZXh0aG9wX2NyZWF0ZVwiLFxuICAgIFwibmhfZmlsbF9ub2RlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBuZXRsaW5rIGF0dHJpYnV0ZSBOSEFfRkRCX1BPUlQgdG8gc3BlY2lmeSBhIFVEUCBkZXN0aW5hdGlvbiBwb3J0IGZvciBGREIgbmV4dGhvcHMgKGUuZy4sIFZYTEFOKS4gSXQgbW9kaWZpZXMgdGhlIG5leHRob3AgbmV0bGluayBjb250cm9sIHBhdGggYW5kIFZYTEFOIGRhdGFwYXRoLiBUaGUgbmV0bGluayBjb250cm9sIHBhdGggZnVuY3Rpb25zIGFyZSBnb29kIHRhcmdldHMgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVlhMQU5cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydG1fdG9fbmhfY29uZmlnXCIsXG4gICAgXCJuZXh0aG9wX2NyZWF0ZVwiLFxuICAgIFwibmhfZmlsbF9ub2RlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBuZXRsaW5rIGF0dHJpYnV0ZSBOSEFfRkRCX1BPUlQgdG8gc3BlY2lmeSBhIFVEUCBkZXN0aW5hdGlvbiBwb3J0IGZvciBGREIgbmV4dGhvcHMgKGUuZy4sIFZYTEFOKS4gSXQgbW9kaWZpZXMgdGhlIG5leHRob3AgbmV0bGluayBjb250cm9sIHBhdGggYW5kIFZYTEFOIGRhdGFwYXRoLiBUaGUgbmV0bGluayBjb250cm9sIHBhdGggZnVuY3Rpb25zIGFyZSBnb29kIHRhcmdldHMgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowcs5kr[1] Phase: Succeeded StartedAt: 2026-07-22 16:17:21 +0000 UTC FinishedAt: 2026-07-22 16:17:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-22 16:17:21 +0000 UTC FinishedAt: 2026-07-22 16:17:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[2] Phase: Succeeded StartedAt: 2026-07-22 16:17:21 +0000 UTC FinishedAt: 2026-07-22 20:41:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-22 16:17:21 +0000 UTC FinishedAt: 2026-07-22 20:41:28 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-22 16:17:21 +0000 UTC FinishedAt: 2026-07-22 16:17:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-22 16:17:21 +0000 UTC FinishedAt: 2026-07-22 16:17:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},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-workflowcs5kr/series-workflowcs5kr-convert-artifact-1344317457/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-22 16:17:43 +0000 UTC FinishedAt: 2026-07-22 17:00:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-22 16:17:43 +0000 UTC FinishedAt: 2026-07-22 17:00:27 +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:*736b9924-7582-4355-a321-3b6b81c034b2,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-workflowcs5kr/series-workflowcs5kr-convert-artifact-1344317457/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": "530281f9-a45b-4c7d-8c81-9e6e3db4a2bd", "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-workflowcs5kr/series-workflowcs5kr-build-action-1565690303/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-22 16:17:43 +0000 UTC FinishedAt: 2026-07-22 17:00:17 +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:*736b9924-7582-4355-a321-3b6b81c034b2,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-workflowcs5kr/series-workflowcs5kr-convert-artifact-1344317457/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": "530281f9-a45b-4c7d-8c81-9e6e3db4a2bd", "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-workflowcs5kr/series-workflowcs5kr-build-action-1565690303/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-22 17:00:27 +0000 UTC FinishedAt: 2026-07-22 17:00:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-22 17:00:27 +0000 UTC FinishedAt: 2026-07-22 17:00:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-22 17:00:27 +0000 UTC FinishedAt: 2026-07-22 17:00:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-22 17:00:27 +0000 UTC FinishedAt: 2026-07-22 17:00:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},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-workflowcs5kr/series-workflowcs5kr-convert-artifact-296209636/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-22 17:00:37 +0000 UTC FinishedAt: 2026-07-22 17:02:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-22 17:00:37 +0000 UTC FinishedAt: 2026-07-22 17:02:30 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*530281f9-a45b-4c7d-8c81-9e6e3db4a2bd,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-workflowcs5kr/series-workflowcs5kr-build-action-1565690303/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-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-22 17:02:40 +0000 UTC FinishedAt: 2026-07-22 17:02:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-22 17:02:40 +0000 UTC FinishedAt: 2026-07-22 17:02:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-22 17:02:40 +0000 UTC FinishedAt: 2026-07-22 17:37:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-22 17:02:40 +0000 UTC FinishedAt: 2026-07-22 17:37:05 +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:*736b9924-7582-4355-a321-3b6b81c034b2,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-workflowcs5kr/series-workflowcs5kr-convert-artifact-296209636/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": "02d862f7-a1f6-47d5-bdfa-d620a962167b", "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-workflowcs5kr/series-workflowcs5kr-build-action-4037400176/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-22 17:02:40 +0000 UTC FinishedAt: 2026-07-22 17:36:55 +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:*736b9924-7582-4355-a321-3b6b81c034b2,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-workflowcs5kr/series-workflowcs5kr-convert-artifact-296209636/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": "02d862f7-a1f6-47d5-bdfa-d620a962167b", "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-workflowcs5kr/series-workflowcs5kr-build-action-4037400176/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-22 17:37:05 +0000 UTC FinishedAt: 2026-07-22 17:37:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-22 17:37:05 +0000 UTC FinishedAt: 2026-07-22 17:37:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-22 17:37:05 +0000 UTC FinishedAt: 2026-07-22 17:39:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-22 17:37:05 +0000 UTC FinishedAt: 2026-07-22 17:38:57 +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:*02d862f7-a1f6-47d5-bdfa-d620a962167b,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-workflowcs5kr/series-workflowcs5kr-build-action-4037400176/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-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-22 17:39:07 +0000 UTC FinishedAt: 2026-07-22 20:41:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-22 17:39:07 +0000 UTC FinishedAt: 2026-07-22 20:41:28 +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":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"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:*530281f9-a45b-4c7d-8c81-9e6e3db4a2bd,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*02d862f7-a1f6-47d5-bdfa-d620a962167b,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-workflowcs5kr/series-workflowcs5kr-build-action-1565690303/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-workflowcs5kr/series-workflowcs5kr-build-action-4037400176/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-22 17:39:07 +0000 UTC FinishedAt: 2026-07-22 17:40:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-22 17:39:07 +0000 UTC FinishedAt: 2026-07-22 17:39:32 +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":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"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-workflowcs5kr/series-workflowcs5kr-convert-artifact-789544813/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-22 17:39:07 +0000 UTC FinishedAt: 2026-07-22 17:39:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-22 17:39:07 +0000 UTC FinishedAt: 2026-07-22 17:39:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-22 17:39:07 +0000 UTC FinishedAt: 2026-07-22 17:39:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-22 17:40:08 +0000 UTC FinishedAt: 2026-07-22 20:41:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcs5kr[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtm_to_nh_config","nexthop_create","nh_fill_node"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"ffce983e-ca3d-480a-9140-5984aed27c7c","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-22 17:40:08 +0000 UTC FinishedAt: 2026-07-22 20:41:18 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*530281f9-a45b-4c7d-8c81-9e6e3db4a2bd,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*02d862f7-a1f6-47d5-bdfa-d620a962167b,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-workflowcs5kr/series-workflowcs5kr-build-action-1565690303/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-workflowcs5kr/series-workflowcs5kr-build-action-4037400176/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-workflowcs5kr/series-workflowcs5kr-convert-artifact-789544813/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,}