Name: series-workflow5mcrf Phase: Succeeded StartedAt: 2026-06-28 22:15:11 +0000 UTC FinishedAt: 2026-06-29 02:11:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[0] Phase: Succeeded StartedAt: 2026-06-28 22:15:11 +0000 UTC FinishedAt: 2026-06-28 22:23:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[0].run-triage Phase: Succeeded StartedAt: 2026-06-28 22:15:11 +0000 UTC FinishedAt: 2026-06-28 22:23:07 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "840ef6c78e6a2f694b578ecb9063241c992aaa9e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DAMON_SYSFS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "840ef6c78e6a2f694b578ecb9063241c992aaa9e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DAMON_SYSFS" ], "series_id": "f3b2b46b-1a8d-496e-9779-ebb7fc5dd739" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "damon_sysfs_schemes_add_dirs", "damon_sysfs_schemes_rm_dirs", "damon_sysfs_targets_add_dirs", "damon_sysfs_targets_rm_dirs", "damon_sysfs_contexts_add_dirs", "damon_sysfs_contexts_rm_dirs", "damon_sysfs_kdamonds_add_dirs", "damon_sysfs_kdamonds_rm_dirs" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": true, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDIyOjIxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RBTU9OX1NZU0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZGFtb25fc3lzZnNfc2NoZW1lc19hZGRfZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc19zY2hlbWVzX3JtX2RpcnMmIzM0OywKICAgICYjMzQ7ZGFtb25fc3lzZnNfdGFyZ2V0c19hZGRfZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc190YXJnZXRzX3JtX2RpcnMmIzM0OywKICAgICYjMzQ7ZGFtb25fc3lzZnNfY29udGV4dHNfYWRkX2RpcnMmIzM0OywKICAgICYjMzQ7ZGFtb25fc3lzZnNfY29udGV4dHNfcm1fZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc19rZGFtb25kc19hZGRfZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc19rZGFtb25kc19ybV9kaXJzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGtvYmplY3QgbGVha3MgYW5kIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBpc3N1ZXMgaW4gREFNT04gc3lzZnMgZGlyZWN0b3J5IG1hbmFnZW1lbnQgYnkgYWRkaW5nIG1pc3Npbmcga29iamVjdF9kZWwoKSBjYWxscy4gVGhpcyBpcyBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUgdmlhIHN5c2ZzIGludGVyYWN0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAyMjoyMTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGE0YWQwNzkwOWEyZTBmYzNiMWM0MDVlYzk1YzQxZDNmNzZhODNiNjlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEp1biAyOCAyMjoyMTowNSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9tbS9kYW1vbi9zeXNmcy1zY2hlbWVzLmMgYi9tbS9kYW1vbi9zeXNmcy1zY2hlbWVzLmNcbmluZGV4IDMyOWNmZDBiYmU5ZjMyLi4wYjhhNmYxZjZiOWZjNSAxMDA2NDRcbi0tLSBhL21tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbW0vZGFtb24vc3lzZnMtc2NoZW1lcy5jXG5AQCAtMzM0LDYgJiM0MzszMzQsNyBAQCBzdGF0aWMgdm9pZCBkYW1vbl9zeXNmc19zY2hlbWVfcmVnaW9uc19ybV9kaXJzKFxuIFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHIsIG5leHQsIFx1MDAyNnJlZ2lvbnMtXHUwMDNlcmVnaW9uc19saXN0LCBsaXN0KSB7XG4gXHRcdGRhbW9zX3N5c2ZzX3JlZ2lvbl9ybV9kaXJzKHIpO1xuIFx0XHRsaXN0X2RlbChcdTAwMjZyLVx1MDAzZWxpc3QpO1xuJiM0MztcdFx0a29iamVjdF9kZWwoXHUwMDI2ci1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2ci1cdTAwM2Vrb2JqKTtcbiBcdFx0cmVnaW9ucy1cdTAwM2Vucl9yZWdpb25zLS07XG4gXHR9XG5AQCAtOTEzLDggJiM0Mzs5MTQsMTAgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfc2NoZW1lX2ZpbHRlcnNfcm1fZGlycyhcbiBcdHN0cnVjdCBkYW1vbl9zeXNmc19zY2hlbWVfZmlsdGVyICoqZmlsdGVyc19hcnIgPSBmaWx0ZXJzLVx1MDAzZWZpbHRlcnNfYXJyO1xuIFx0aW50IGk7XG4gXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBmaWx0ZXJzLVx1MDAzZW5yOyBpJiM0MzsmIzQzOylcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBmaWx0ZXJzLVx1MDAzZW5yOyBpJiM0MzsmIzQzOykge1xuJiM0MztcdFx0a29iamVjdF9kZWwoXHUwMDI2ZmlsdGVyc19hcnJbaV0tXHUwMDNla29iaik7XG4gXHRcdGtvYmplY3RfcHV0KFx1MDAyNmZpbHRlcnNfYXJyW2ldLVx1MDAzZWtvYmopO1xuJiM0MztcdH1cbiBcdGZpbHRlcnMtXHUwMDNlbnIgPSAwO1xuIFx0a2ZyZWUoZmlsdGVyc19hcnIpO1xuIFx0ZmlsdGVycy1cdTAwM2VmaWx0ZXJzX2FyciA9IE5VTEw7XG5AQCAtMTQ2Miw4ICYjNDM7MTQ2NSwxMCBAQCBzdGF0aWMgdm9pZCBkYW1vc19zeXNmc19xdW90YV9nb2Fsc19ybV9kaXJzKFxuIFx0c3RydWN0IGRhbW9zX3N5c2ZzX3F1b3RhX2dvYWwgKipnb2Fsc19hcnIgPSBnb2Fscy1cdTAwM2Vnb2Fsc19hcnI7XG4gXHRpbnQgaTtcbiBcbi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGdvYWxzLVx1MDAzZW5yOyBpJiM0MzsmIzQzOylcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBnb2Fscy1cdTAwM2VucjsgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRcdGtvYmplY3RfZGVsKFx1MDAyNmdvYWxzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2Z29hbHNfYXJyW2ldLVx1MDAzZWtvYmopO1xuJiM0MztcdH1cbiBcdGdvYWxzLVx1MDAzZW5yID0gMDtcbiBcdGtmcmVlKGdvYWxzX2Fycik7XG4gXHRnb2Fscy1cdTAwM2Vnb2Fsc19hcnIgPSBOVUxMO1xuQEAgLTIxNDMsOCAmIzQzOzIxNDgsMTAgQEAgc3RhdGljIHZvaWQgZGFtb3Nfc3lzZnNfZGVzdHNfcm1fZGlycyhcbiBcdHN0cnVjdCBkYW1vc19zeXNmc19kZXN0ICoqZGVzdHNfYXJyID0gZGVzdHMtXHUwMDNlZGVzdHNfYXJyO1xuIFx0aW50IGk7XG4gXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBkZXN0cy1cdTAwM2VucjsgaSYjNDM7JiM0MzspXG4mIzQzO1x0Zm9yIChpID0gMDsgaSBcdTAwM2MgZGVzdHMtXHUwMDNlbnI7IGkmIzQzOyYjNDM7KSB7XG4mIzQzO1x0XHRrb2JqZWN0X2RlbChcdTAwMjZkZXN0c19hcnJbaV0tXHUwMDNla29iaik7XG4gXHRcdGtvYmplY3RfcHV0KFx1MDAyNmRlc3RzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiYjNDM7XHR9XG4gXHRkZXN0cy1cdTAwM2VuciA9IDA7XG4gXHRrZnJlZShkZXN0c19hcnIpO1xuIFx0ZGVzdHMtXHUwMDNlZGVzdHNfYXJyID0gTlVMTDtcbkBAIC0yNjg2LDYgJiM0MzsyNjkzLDcgQEAgdm9pZCBkYW1vbl9zeXNmc19zY2hlbWVzX3JtX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX3NjaGVtZXMgKnNjaGVtZXMpXG4gXG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBzY2hlbWVzLVx1MDAzZW5yOyBpJiM0MzsmIzQzOykge1xuIFx0XHRkYW1vbl9zeXNmc19zY2hlbWVfcm1fZGlycyhzY2hlbWVzX2FycltpXSk7XG4mIzQzO1x0XHRrb2JqZWN0X2RlbChcdTAwMjZzY2hlbWVzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2c2NoZW1lc19hcnJbaV0tXHUwMDNla29iaik7XG4gXHR9XG4gXHRzY2hlbWVzLVx1MDAzZW5yID0gMDtcbkBAIC0yNzI3LDEzICYjNDM7MjczNSwxNSBAQCBzdGF0aWMgaW50IGRhbW9uX3N5c2ZzX3NjaGVtZXNfYWRkX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX3NjaGVtZXMgKnNjaGVtZXMsXG4gXHRcdFx0Z290byBvdXQ7XG4gXHRcdGVyciA9IGRhbW9uX3N5c2ZzX3NjaGVtZV9hZGRfZGlycyhzY2hlbWUpO1xuIFx0XHRpZiAoZXJyKVxuLVx0XHRcdGdvdG8gb3V0O1xuJiM0MztcdFx0XHRnb3RvIGRlbF9vdXQ7XG4gXG4gXHRcdHNjaGVtZXNfYXJyW2ldID0gc2NoZW1lO1xuIFx0XHRzY2hlbWVzLVx1MDAzZW5yJiM0MzsmIzQzOztcbiBcdH1cbiBcdHJldHVybiAwO1xuIFxuJiM0MztkZWxfb3V0OlxuJiM0MztcdGtvYmplY3RfZGVsKFx1MDAyNnNjaGVtZS1cdTAwM2Vrb2JqKTtcbiBvdXQ6XG4gXHRkYW1vbl9zeXNmc19zY2hlbWVzX3JtX2RpcnMoc2NoZW1lcyk7XG4gXHRrb2JqZWN0X3B1dChcdTAwMjZzY2hlbWUtXHUwMDNla29iaik7XG5AQCAtMzEyNywxMiAmIzQzOzMxMzcsMTQgQEAgdm9pZCBkYW1vc19zeXNmc19wb3B1bGF0ZV9yZWdpb25fZGlyKHN0cnVjdCBkYW1vbl9zeXNmc19zY2hlbWVzICpzeXNmc19zY2hlbWVzLFxuIFx0XHRcdFx0c3lzZnNfcmVnaW9ucy1cdTAwM2Vucl9yZWdpb25zKSlcbiBcdFx0Z290byBvdXQ7XG4gXHRpZiAoZGFtb3Nfc3lzZnNfcmVnaW9uX2FkZF9kaXJzKHJlZ2lvbiwgY3R4LCByKSlcbi1cdFx0Z290byBvdXQ7XG4mIzQzO1x0XHRnb3RvIGRlbF9vdXQ7XG4gXG4gXHRsaXN0X2FkZF90YWlsKFx1MDAyNnJlZ2lvbi1cdTAwM2VsaXN0LCBcdTAwMjZzeXNmc19yZWdpb25zLVx1MDAzZXJlZ2lvbnNfbGlzdCk7XG4gXHRzeXNmc19yZWdpb25zLVx1MDAzZW5yX3JlZ2lvbnMmIzQzOyYjNDM7O1xuIFx0cmV0dXJuO1xuIFxuJiM0MztkZWxfb3V0OlxuJiM0MztcdGtvYmplY3RfZGVsKFx1MDAyNnJlZ2lvbi1cdTAwM2Vrb2JqKTtcbiBvdXQ6XG4gXHRrb2JqZWN0X3B1dChcdTAwMjZyZWdpb24tXHUwMDNla29iaik7XG4gfVxuZGlmZiAtLWdpdCBhL21tL2RhbW9uL3N5c2ZzLmMgYi9tbS9kYW1vbi9zeXNmcy5jXG5pbmRleCAyZTk1ZTNiYWM3NzRkYy4uZmZiYzk5NDExZjUzYjMgMTAwNjQ0XG4tLS0gYS9tbS9kYW1vbi9zeXNmcy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9tbS9kYW1vbi9zeXNmcy5jXG5AQCAtMTA3LDggJiM0MzsxMDcsMTAgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfcmVnaW9uc19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19yZWdpb25zICpyZWdpb25zKVxuIFx0c3RydWN0IGRhbW9uX3N5c2ZzX3JlZ2lvbiAqKnJlZ2lvbnNfYXJyID0gcmVnaW9ucy1cdTAwM2VyZWdpb25zX2FycjtcbiBcdGludCBpO1xuIFxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgcmVnaW9ucy1cdTAwM2VucjsgaSYjNDM7JiM0MzspXG4mIzQzO1x0Zm9yIChpID0gMDsgaSBcdTAwM2MgcmVnaW9ucy1cdTAwM2VucjsgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRcdGtvYmplY3RfZGVsKFx1MDAyNnJlZ2lvbnNfYXJyW2ldLVx1MDAzZWtvYmopO1xuIFx0XHRrb2JqZWN0X3B1dChcdTAwMjZyZWdpb25zX2FycltpXS1cdTAwM2Vrb2JqKTtcbiYjNDM7XHR9XG4gXHRyZWdpb25zLVx1MDAzZW5yID0gMDtcbiBcdGtmcmVlKHJlZ2lvbnNfYXJyKTtcbiBcdHJlZ2lvbnMtXHUwMDNlcmVnaW9uc19hcnIgPSBOVUxMO1xuQEAgLTMzMyw2ICYjNDM7MzM1LDcgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfdGFyZ2V0c19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc190YXJnZXRzICp0YXJnZXRzKVxuIFxuIFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgdGFyZ2V0cy1cdTAwM2VucjsgaSYjNDM7JiM0MzspIHtcbiBcdFx0ZGFtb25fc3lzZnNfdGFyZ2V0X3JtX2RpcnModGFyZ2V0c19hcnJbaV0pO1xuJiM0MztcdFx0a29iamVjdF9kZWwoXHUwMDI2dGFyZ2V0c19hcnJbaV0tXHUwMDNla29iaik7XG4gXHRcdGtvYmplY3RfcHV0KFx1MDAyNnRhcmdldHNfYXJyW2ldLVx1MDAzZWtvYmopO1xuIFx0fVxuIFx0dGFyZ2V0cy1cdTAwM2VuciA9IDA7XG5AQCAtMzcxLDEzICYjNDM7Mzc0LDE1IEBAIHN0YXRpYyBpbnQgZGFtb25fc3lzZnNfdGFyZ2V0c19hZGRfZGlycyhzdHJ1Y3QgZGFtb25fc3lzZnNfdGFyZ2V0cyAqdGFyZ2V0cyxcbiBcbiBcdFx0ZXJyID0gZGFtb25fc3lzZnNfdGFyZ2V0X2FkZF9kaXJzKHRhcmdldCk7XG4gXHRcdGlmIChlcnIpXG4tXHRcdFx0Z290byBvdXQ7XG4mIzQzO1x0XHRcdGdvdG8gZGVsX291dDtcbiBcbiBcdFx0dGFyZ2V0c19hcnJbaV0gPSB0YXJnZXQ7XG4gXHRcdHRhcmdldHMtXHUwMDNlbnImIzQzOyYjNDM7O1xuIFx0fVxuIFx0cmV0dXJuIDA7XG4gXG4mIzQzO2RlbF9vdXQ6XG4mIzQzO1x0a29iamVjdF9kZWwoXHUwMDI2dGFyZ2V0LVx1MDAzZWtvYmopO1xuIG91dDpcbiBcdGRhbW9uX3N5c2ZzX3RhcmdldHNfcm1fZGlycyh0YXJnZXRzKTtcbiBcdGtvYmplY3RfcHV0KFx1MDAyNnRhcmdldC1cdTAwM2Vrb2JqKTtcbkBAIC05NTcsOCAmIzQzOzk2MiwxMCBAQCBzdGF0aWMgdm9pZCBkYW1vbl9zeXNmc19maWx0ZXJzX3JtX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX2ZpbHRlcnMgKmZpbHRlcnMpXG4gXHRzdHJ1Y3QgZGFtb25fc3lzZnNfZmlsdGVyICoqZmlsdGVyc19hcnIgPSBmaWx0ZXJzLVx1MDAzZWZpbHRlcnNfYXJyO1xuIFx0aW50IGk7XG4gXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBmaWx0ZXJzLVx1MDAzZW5yOyBpJiM0MzsmIzQzOylcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBmaWx0ZXJzLVx1MDAzZW5yOyBpJiM0MzsmIzQzOykge1xuJiM0MztcdFx0a29iamVjdF9kZWwoXHUwMDI2ZmlsdGVyc19hcnJbaV0tXHUwMDNla29iaik7XG4gXHRcdGtvYmplY3RfcHV0KFx1MDAyNmZpbHRlcnNfYXJyW2ldLVx1MDAzZWtvYmopO1xuJiM0MztcdH1cbiBcdGZpbHRlcnMtXHUwMDNlbnIgPSAwO1xuIFx0a2ZyZWUoZmlsdGVyc19hcnIpO1xuIFx0ZmlsdGVycy1cdTAwM2VmaWx0ZXJzX2FyciA9IE5VTEw7XG5AQCAtMTEzNCw2ICYjNDM7MTE0MSw3IEBAIHN0YXRpYyB2b2lkIGRhbW9uX3N5c2ZzX3Byb2Jlc19ybV9kaXJzKFxuIFxuIFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgcHJvYmVzLVx1MDAzZW5yOyBpJiM0MzsmIzQzOykge1xuIFx0XHRkYW1vbl9zeXNmc19wcm9iZV9ybV9kaXJzKHByb2Jlc19hcnJbaV0pO1xuJiM0MztcdFx0a29iamVjdF9kZWwoXHUwMDI2cHJvYmVzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2cHJvYmVzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdH1cbiBcdHByb2Jlcy1cdTAwM2VuciA9IDA7XG5AQCAtMTE3NSw2ICYjNDM7MTE4Myw3IEBAIHN0YXRpYyBpbnQgZGFtb25fc3lzZnNfcHJvYmVzX2FkZF9kaXJzKFxuIFxuIFx0XHRlcnIgPSBkYW1vbl9zeXNmc19wcm9iZV9hZGRfZGlycyhwcm9iZSk7XG4gXHRcdGlmIChlcnIpIHtcbiYjNDM7XHRcdFx0a29iamVjdF9kZWwoXHUwMDI2cHJvYmUtXHUwMDNla29iaik7XG4gXHRcdFx0a29iamVjdF9wdXQoXHUwMDI2cHJvYmUtXHUwMDNla29iaik7XG4gXHRcdFx0ZGFtb25fc3lzZnNfcHJvYmVzX3JtX2RpcnMocHJvYmVzKTtcbiBcdFx0XHRyZXR1cm4gZXJyO1xuQEAgLTE2NDIsNiAmIzQzOzE2NTEsNyBAQCBzdGF0aWMgdm9pZCBkYW1vbl9zeXNmc19jb250ZXh0c19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19jb250ZXh0cyAqY29udGV4dHMpXG4gXG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBjb250ZXh0cy1cdTAwM2VucjsgaSYjNDM7JiM0MzspIHtcbiBcdFx0ZGFtb25fc3lzZnNfY29udGV4dF9ybV9kaXJzKGNvbnRleHRzX2FycltpXSk7XG4mIzQzO1x0XHRrb2JqZWN0X2RlbChcdTAwMjZjb250ZXh0c19hcnJbaV0tXHUwMDNla29iaik7XG4gXHRcdGtvYmplY3RfcHV0KFx1MDAyNmNvbnRleHRzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdH1cbiBcdGNvbnRleHRzLVx1MDAzZW5yID0gMDtcbkBAIC0xNjgwLDEzICYjNDM7MTY5MCwxNSBAQCBzdGF0aWMgaW50IGRhbW9uX3N5c2ZzX2NvbnRleHRzX2FkZF9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19jb250ZXh0cyAqY29udGV4dHMsXG4gXG4gXHRcdGVyciA9IGRhbW9uX3N5c2ZzX2NvbnRleHRfYWRkX2RpcnMoY29udGV4dCk7XG4gXHRcdGlmIChlcnIpXG4tXHRcdFx0Z290byBvdXQ7XG4mIzQzO1x0XHRcdGdvdG8gZGVsX291dDtcbiBcbiBcdFx0Y29udGV4dHNfYXJyW2ldID0gY29udGV4dDtcbiBcdFx0Y29udGV4dHMtXHUwMDNlbnImIzQzOyYjNDM7O1xuIFx0fVxuIFx0cmV0dXJuIDA7XG4gXG4mIzQzO2RlbF9vdXQ6XG4mIzQzO1x0a29iamVjdF9kZWwoXHUwMDI2Y29udGV4dC1cdTAwM2Vrb2JqKTtcbiBvdXQ6XG4gXHRkYW1vbl9zeXNmc19jb250ZXh0c19ybV9kaXJzKGNvbnRleHRzKTtcbiBcdGtvYmplY3RfcHV0KFx1MDAyNmNvbnRleHQtXHUwMDNla29iaik7XG5AQCAtMjUwMSw2ICYjNDM7MjUxMyw3IEBAIHN0YXRpYyB2b2lkIGRhbW9uX3N5c2ZzX2tkYW1vbmRzX3JtX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX2tkYW1vbmRzICprZGFtb25kcylcbiBcbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIGtkYW1vbmRzLVx1MDAzZW5yOyBpJiM0MzsmIzQzOykge1xuIFx0XHRkYW1vbl9zeXNmc19rZGFtb25kX3JtX2RpcnMoa2RhbW9uZHNfYXJyW2ldKTtcbiYjNDM7XHRcdGtvYmplY3RfZGVsKFx1MDAyNmtkYW1vbmRzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2a2RhbW9uZHNfYXJyW2ldLVx1MDAzZWtvYmopO1xuIFx0fVxuIFx0a2RhbW9uZHMtXHUwMDNlbnIgPSAwO1xuQEAgLTI1NTUsMTMgJiM0MzsyNTY4LDE1IEBAIHN0YXRpYyBpbnQgZGFtb25fc3lzZnNfa2RhbW9uZHNfYWRkX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX2tkYW1vbmRzICprZGFtb25kcyxcbiBcbiBcdFx0ZXJyID0gZGFtb25fc3lzZnNfa2RhbW9uZF9hZGRfZGlycyhrZGFtb25kKTtcbiBcdFx0aWYgKGVycilcbi1cdFx0XHRnb3RvIG91dDtcbiYjNDM7XHRcdFx0Z290byBkZWxfb3V0O1xuIFxuIFx0XHRrZGFtb25kc19hcnJbaV0gPSBrZGFtb25kO1xuIFx0XHRrZGFtb25kcy1cdTAwM2VuciYjNDM7JiM0Mzs7XG4gXHR9XG4gXHRyZXR1cm4gMDtcbiBcbiYjNDM7ZGVsX291dDpcbiYjNDM7XHRrb2JqZWN0X2RlbChcdTAwMjZrZGFtb25kLVx1MDAzZWtvYmopO1xuIG91dDpcbiBcdGRhbW9uX3N5c2ZzX2tkYW1vbmRzX3JtX2RpcnMoa2RhbW9uZHMpO1xuIFx0a29iamVjdF9wdXQoXHUwMDI2a2RhbW9uZC1cdTAwM2Vrb2JqKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAyMjoyMTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtEQU1PTl9TWVNGUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2RhbW9uX3N5c2ZzX3NjaGVtZXNfYWRkX2RpcnMmIzM0OywKICAgICYjMzQ7ZGFtb25fc3lzZnNfc2NoZW1lc19ybV9kaXJzJiMzNDssCiAgICAmIzM0O2RhbW9uX3N5c2ZzX3RhcmdldHNfYWRkX2RpcnMmIzM0OywKICAgICYjMzQ7ZGFtb25fc3lzZnNfdGFyZ2V0c19ybV9kaXJzJiMzNDssCiAgICAmIzM0O2RhbW9uX3N5c2ZzX2NvbnRleHRzX2FkZF9kaXJzJiMzNDssCiAgICAmIzM0O2RhbW9uX3N5c2ZzX2NvbnRleHRzX3JtX2RpcnMmIzM0OywKICAgICYjMzQ7ZGFtb25fc3lzZnNfa2RhbW9uZHNfYWRkX2RpcnMmIzM0OywKICAgICYjMzQ7ZGFtb25fc3lzZnNfa2RhbW9uZHNfcm1fZGlycyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBrb2JqZWN0IGxlYWtzIGFuZCBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgaXNzdWVzIGluIERBTU9OIHN5c2ZzIGRpcmVjdG9yeSBtYW5hZ2VtZW50IGJ5IGFkZGluZyBtaXNzaW5nIGtvYmplY3RfZGVsKCkgY2FsbHMuIFRoaXMgaXMgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlIHZpYSBzeXNmcyBpbnRlcmFjdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGE0YWQwNzkwOWEyZTBmYzNiMWM0MDVlYzk1YzQxZDNmNzZhODNiNjkKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU3VuIEp1biAyOCAyMjoyMTowNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL21tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuYyBiL21tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuYwppbmRleCAzMjljZmQwYmJlOWYzMi4uMGI4YTZmMWY2YjlmYzUgMTAwNjQ0Ci0tLSBhL21tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuYwomIzQzOyYjNDM7JiM0MzsgYi9tbS9kYW1vbi9zeXNmcy1zY2hlbWVzLmMKQEAgLTMzNCw2ICYjNDM7MzM0LDcgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfc2NoZW1lX3JlZ2lvbnNfcm1fZGlycygKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUociwgbmV4dCwgJmFtcDtyZWdpb25zLSZndDtyZWdpb25zX2xpc3QsIGxpc3QpIHsKIAkJZGFtb3Nfc3lzZnNfcmVnaW9uX3JtX2RpcnMocik7CiAJCWxpc3RfZGVsKCZhbXA7ci0mZ3Q7bGlzdCk7CiYjNDM7CQlrb2JqZWN0X2RlbCgmYW1wO3ItJmd0O2tvYmopOwogCQlrb2JqZWN0X3B1dCgmYW1wO3ItJmd0O2tvYmopOwogCQlyZWdpb25zLSZndDtucl9yZWdpb25zLS07CiAJfQpAQCAtOTEzLDggJiM0Mzs5MTQsMTAgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfc2NoZW1lX2ZpbHRlcnNfcm1fZGlycygKIAlzdHJ1Y3QgZGFtb25fc3lzZnNfc2NoZW1lX2ZpbHRlciAqKmZpbHRlcnNfYXJyID0gZmlsdGVycy0mZ3Q7ZmlsdGVyc19hcnI7CiAJaW50IGk7CiAKLQlmb3IgKGkgPSAwOyBpICZsdDsgZmlsdGVycy0mZ3Q7bnI7IGkmIzQzOyYjNDM7KQomIzQzOwlmb3IgKGkgPSAwOyBpICZsdDsgZmlsdGVycy0mZ3Q7bnI7IGkmIzQzOyYjNDM7KSB7CiYjNDM7CQlrb2JqZWN0X2RlbCgmYW1wO2ZpbHRlcnNfYXJyW2ldLSZndDtrb2JqKTsKIAkJa29iamVjdF9wdXQoJmFtcDtmaWx0ZXJzX2FycltpXS0mZ3Q7a29iaik7CiYjNDM7CX0KIAlmaWx0ZXJzLSZndDtuciA9IDA7CiAJa2ZyZWUoZmlsdGVyc19hcnIpOwogCWZpbHRlcnMtJmd0O2ZpbHRlcnNfYXJyID0gTlVMTDsKQEAgLTE0NjIsOCAmIzQzOzE0NjUsMTAgQEAgc3RhdGljIHZvaWQgZGFtb3Nfc3lzZnNfcXVvdGFfZ29hbHNfcm1fZGlycygKIAlzdHJ1Y3QgZGFtb3Nfc3lzZnNfcXVvdGFfZ29hbCAqKmdvYWxzX2FyciA9IGdvYWxzLSZndDtnb2Fsc19hcnI7CiAJaW50IGk7CiAKLQlmb3IgKGkgPSAwOyBpICZsdDsgZ29hbHMtJmd0O25yOyBpJiM0MzsmIzQzOykKJiM0MzsJZm9yIChpID0gMDsgaSAmbHQ7IGdvYWxzLSZndDtucjsgaSYjNDM7JiM0MzspIHsKJiM0MzsJCWtvYmplY3RfZGVsKCZhbXA7Z29hbHNfYXJyW2ldLSZndDtrb2JqKTsKIAkJa29iamVjdF9wdXQoJmFtcDtnb2Fsc19hcnJbaV0tJmd0O2tvYmopOwomIzQzOwl9CiAJZ29hbHMtJmd0O25yID0gMDsKIAlrZnJlZShnb2Fsc19hcnIpOwogCWdvYWxzLSZndDtnb2Fsc19hcnIgPSBOVUxMOwpAQCAtMjE0Myw4ICYjNDM7MjE0OCwxMCBAQCBzdGF0aWMgdm9pZCBkYW1vc19zeXNmc19kZXN0c19ybV9kaXJzKAogCXN0cnVjdCBkYW1vc19zeXNmc19kZXN0ICoqZGVzdHNfYXJyID0gZGVzdHMtJmd0O2Rlc3RzX2FycjsKIAlpbnQgaTsKIAotCWZvciAoaSA9IDA7IGkgJmx0OyBkZXN0cy0mZ3Q7bnI7IGkmIzQzOyYjNDM7KQomIzQzOwlmb3IgKGkgPSAwOyBpICZsdDsgZGVzdHMtJmd0O25yOyBpJiM0MzsmIzQzOykgewomIzQzOwkJa29iamVjdF9kZWwoJmFtcDtkZXN0c19hcnJbaV0tJmd0O2tvYmopOwogCQlrb2JqZWN0X3B1dCgmYW1wO2Rlc3RzX2FycltpXS0mZ3Q7a29iaik7CiYjNDM7CX0KIAlkZXN0cy0mZ3Q7bnIgPSAwOwogCWtmcmVlKGRlc3RzX2Fycik7CiAJZGVzdHMtJmd0O2Rlc3RzX2FyciA9IE5VTEw7CkBAIC0yNjg2LDYgJiM0MzsyNjkzLDcgQEAgdm9pZCBkYW1vbl9zeXNmc19zY2hlbWVzX3JtX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX3NjaGVtZXMgKnNjaGVtZXMpCiAKIAlmb3IgKGkgPSAwOyBpICZsdDsgc2NoZW1lcy0mZ3Q7bnI7IGkmIzQzOyYjNDM7KSB7CiAJCWRhbW9uX3N5c2ZzX3NjaGVtZV9ybV9kaXJzKHNjaGVtZXNfYXJyW2ldKTsKJiM0MzsJCWtvYmplY3RfZGVsKCZhbXA7c2NoZW1lc19hcnJbaV0tJmd0O2tvYmopOwogCQlrb2JqZWN0X3B1dCgmYW1wO3NjaGVtZXNfYXJyW2ldLSZndDtrb2JqKTsKIAl9CiAJc2NoZW1lcy0mZ3Q7bnIgPSAwOwpAQCAtMjcyNywxMyAmIzQzOzI3MzUsMTUgQEAgc3RhdGljIGludCBkYW1vbl9zeXNmc19zY2hlbWVzX2FkZF9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19zY2hlbWVzICpzY2hlbWVzLAogCQkJZ290byBvdXQ7CiAJCWVyciA9IGRhbW9uX3N5c2ZzX3NjaGVtZV9hZGRfZGlycyhzY2hlbWUpOwogCQlpZiAoZXJyKQotCQkJZ290byBvdXQ7CiYjNDM7CQkJZ290byBkZWxfb3V0OwogCiAJCXNjaGVtZXNfYXJyW2ldID0gc2NoZW1lOwogCQlzY2hlbWVzLSZndDtuciYjNDM7JiM0Mzs7CiAJfQogCXJldHVybiAwOwogCiYjNDM7ZGVsX291dDoKJiM0MzsJa29iamVjdF9kZWwoJmFtcDtzY2hlbWUtJmd0O2tvYmopOwogb3V0OgogCWRhbW9uX3N5c2ZzX3NjaGVtZXNfcm1fZGlycyhzY2hlbWVzKTsKIAlrb2JqZWN0X3B1dCgmYW1wO3NjaGVtZS0mZ3Q7a29iaik7CkBAIC0zMTI3LDEyICYjNDM7MzEzNywxNCBAQCB2b2lkIGRhbW9zX3N5c2ZzX3BvcHVsYXRlX3JlZ2lvbl9kaXIoc3RydWN0IGRhbW9uX3N5c2ZzX3NjaGVtZXMgKnN5c2ZzX3NjaGVtZXMsCiAJCQkJc3lzZnNfcmVnaW9ucy0mZ3Q7bnJfcmVnaW9ucykpCiAJCWdvdG8gb3V0OwogCWlmIChkYW1vc19zeXNmc19yZWdpb25fYWRkX2RpcnMocmVnaW9uLCBjdHgsIHIpKQotCQlnb3RvIG91dDsKJiM0MzsJCWdvdG8gZGVsX291dDsKIAogCWxpc3RfYWRkX3RhaWwoJmFtcDtyZWdpb24tJmd0O2xpc3QsICZhbXA7c3lzZnNfcmVnaW9ucy0mZ3Q7cmVnaW9uc19saXN0KTsKIAlzeXNmc19yZWdpb25zLSZndDtucl9yZWdpb25zJiM0MzsmIzQzOzsKIAlyZXR1cm47CiAKJiM0MztkZWxfb3V0OgomIzQzOwlrb2JqZWN0X2RlbCgmYW1wO3JlZ2lvbi0mZ3Q7a29iaik7CiBvdXQ6CiAJa29iamVjdF9wdXQoJmFtcDtyZWdpb24tJmd0O2tvYmopOwogfQpkaWZmIC0tZ2l0IGEvbW0vZGFtb24vc3lzZnMuYyBiL21tL2RhbW9uL3N5c2ZzLmMKaW5kZXggMmU5NWUzYmFjNzc0ZGMuLmZmYmM5OTQxMWY1M2IzIDEwMDY0NAotLS0gYS9tbS9kYW1vbi9zeXNmcy5jCiYjNDM7JiM0MzsmIzQzOyBiL21tL2RhbW9uL3N5c2ZzLmMKQEAgLTEwNyw4ICYjNDM7MTA3LDEwIEBAIHN0YXRpYyB2b2lkIGRhbW9uX3N5c2ZzX3JlZ2lvbnNfcm1fZGlycyhzdHJ1Y3QgZGFtb25fc3lzZnNfcmVnaW9ucyAqcmVnaW9ucykKIAlzdHJ1Y3QgZGFtb25fc3lzZnNfcmVnaW9uICoqcmVnaW9uc19hcnIgPSByZWdpb25zLSZndDtyZWdpb25zX2FycjsKIAlpbnQgaTsKIAotCWZvciAoaSA9IDA7IGkgJmx0OyByZWdpb25zLSZndDtucjsgaSYjNDM7JiM0MzspCiYjNDM7CWZvciAoaSA9IDA7IGkgJmx0OyByZWdpb25zLSZndDtucjsgaSYjNDM7JiM0MzspIHsKJiM0MzsJCWtvYmplY3RfZGVsKCZhbXA7cmVnaW9uc19hcnJbaV0tJmd0O2tvYmopOwogCQlrb2JqZWN0X3B1dCgmYW1wO3JlZ2lvbnNfYXJyW2ldLSZndDtrb2JqKTsKJiM0MzsJfQogCXJlZ2lvbnMtJmd0O25yID0gMDsKIAlrZnJlZShyZWdpb25zX2Fycik7CiAJcmVnaW9ucy0mZ3Q7cmVnaW9uc19hcnIgPSBOVUxMOwpAQCAtMzMzLDYgJiM0MzszMzUsNyBAQCBzdGF0aWMgdm9pZCBkYW1vbl9zeXNmc190YXJnZXRzX3JtX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX3RhcmdldHMgKnRhcmdldHMpCiAKIAlmb3IgKGkgPSAwOyBpICZsdDsgdGFyZ2V0cy0mZ3Q7bnI7IGkmIzQzOyYjNDM7KSB7CiAJCWRhbW9uX3N5c2ZzX3RhcmdldF9ybV9kaXJzKHRhcmdldHNfYXJyW2ldKTsKJiM0MzsJCWtvYmplY3RfZGVsKCZhbXA7dGFyZ2V0c19hcnJbaV0tJmd0O2tvYmopOwogCQlrb2JqZWN0X3B1dCgmYW1wO3RhcmdldHNfYXJyW2ldLSZndDtrb2JqKTsKIAl9CiAJdGFyZ2V0cy0mZ3Q7bnIgPSAwOwpAQCAtMzcxLDEzICYjNDM7Mzc0LDE1IEBAIHN0YXRpYyBpbnQgZGFtb25fc3lzZnNfdGFyZ2V0c19hZGRfZGlycyhzdHJ1Y3QgZGFtb25fc3lzZnNfdGFyZ2V0cyAqdGFyZ2V0cywKIAogCQllcnIgPSBkYW1vbl9zeXNmc190YXJnZXRfYWRkX2RpcnModGFyZ2V0KTsKIAkJaWYgKGVycikKLQkJCWdvdG8gb3V0OwomIzQzOwkJCWdvdG8gZGVsX291dDsKIAogCQl0YXJnZXRzX2FycltpXSA9IHRhcmdldDsKIAkJdGFyZ2V0cy0mZ3Q7bnImIzQzOyYjNDM7OwogCX0KIAlyZXR1cm4gMDsKIAomIzQzO2RlbF9vdXQ6CiYjNDM7CWtvYmplY3RfZGVsKCZhbXA7dGFyZ2V0LSZndDtrb2JqKTsKIG91dDoKIAlkYW1vbl9zeXNmc190YXJnZXRzX3JtX2RpcnModGFyZ2V0cyk7CiAJa29iamVjdF9wdXQoJmFtcDt0YXJnZXQtJmd0O2tvYmopOwpAQCAtOTU3LDggJiM0Mzs5NjIsMTAgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfZmlsdGVyc19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19maWx0ZXJzICpmaWx0ZXJzKQogCXN0cnVjdCBkYW1vbl9zeXNmc19maWx0ZXIgKipmaWx0ZXJzX2FyciA9IGZpbHRlcnMtJmd0O2ZpbHRlcnNfYXJyOwogCWludCBpOwogCi0JZm9yIChpID0gMDsgaSAmbHQ7IGZpbHRlcnMtJmd0O25yOyBpJiM0MzsmIzQzOykKJiM0MzsJZm9yIChpID0gMDsgaSAmbHQ7IGZpbHRlcnMtJmd0O25yOyBpJiM0MzsmIzQzOykgewomIzQzOwkJa29iamVjdF9kZWwoJmFtcDtmaWx0ZXJzX2FycltpXS0mZ3Q7a29iaik7CiAJCWtvYmplY3RfcHV0KCZhbXA7ZmlsdGVyc19hcnJbaV0tJmd0O2tvYmopOwomIzQzOwl9CiAJZmlsdGVycy0mZ3Q7bnIgPSAwOwogCWtmcmVlKGZpbHRlcnNfYXJyKTsKIAlmaWx0ZXJzLSZndDtmaWx0ZXJzX2FyciA9IE5VTEw7CkBAIC0xMTM0LDYgJiM0MzsxMTQxLDcgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfcHJvYmVzX3JtX2RpcnMoCiAKIAlmb3IgKGkgPSAwOyBpICZsdDsgcHJvYmVzLSZndDtucjsgaSYjNDM7JiM0MzspIHsKIAkJZGFtb25fc3lzZnNfcHJvYmVfcm1fZGlycyhwcm9iZXNfYXJyW2ldKTsKJiM0MzsJCWtvYmplY3RfZGVsKCZhbXA7cHJvYmVzX2FycltpXS0mZ3Q7a29iaik7CiAJCWtvYmplY3RfcHV0KCZhbXA7cHJvYmVzX2FycltpXS0mZ3Q7a29iaik7CiAJfQogCXByb2Jlcy0mZ3Q7bnIgPSAwOwpAQCAtMTE3NSw2ICYjNDM7MTE4Myw3IEBAIHN0YXRpYyBpbnQgZGFtb25fc3lzZnNfcHJvYmVzX2FkZF9kaXJzKAogCiAJCWVyciA9IGRhbW9uX3N5c2ZzX3Byb2JlX2FkZF9kaXJzKHByb2JlKTsKIAkJaWYgKGVycikgewomIzQzOwkJCWtvYmplY3RfZGVsKCZhbXA7cHJvYmUtJmd0O2tvYmopOwogCQkJa29iamVjdF9wdXQoJmFtcDtwcm9iZS0mZ3Q7a29iaik7CiAJCQlkYW1vbl9zeXNmc19wcm9iZXNfcm1fZGlycyhwcm9iZXMpOwogCQkJcmV0dXJuIGVycjsKQEAgLTE2NDIsNiAmIzQzOzE2NTEsNyBAQCBzdGF0aWMgdm9pZCBkYW1vbl9zeXNmc19jb250ZXh0c19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19jb250ZXh0cyAqY29udGV4dHMpCiAKIAlmb3IgKGkgPSAwOyBpICZsdDsgY29udGV4dHMtJmd0O25yOyBpJiM0MzsmIzQzOykgewogCQlkYW1vbl9zeXNmc19jb250ZXh0X3JtX2RpcnMoY29udGV4dHNfYXJyW2ldKTsKJiM0MzsJCWtvYmplY3RfZGVsKCZhbXA7Y29udGV4dHNfYXJyW2ldLSZndDtrb2JqKTsKIAkJa29iamVjdF9wdXQoJmFtcDtjb250ZXh0c19hcnJbaV0tJmd0O2tvYmopOwogCX0KIAljb250ZXh0cy0mZ3Q7bnIgPSAwOwpAQCAtMTY4MCwxMyAmIzQzOzE2OTAsMTUgQEAgc3RhdGljIGludCBkYW1vbl9zeXNmc19jb250ZXh0c19hZGRfZGlycyhzdHJ1Y3QgZGFtb25fc3lzZnNfY29udGV4dHMgKmNvbnRleHRzLAogCiAJCWVyciA9IGRhbW9uX3N5c2ZzX2NvbnRleHRfYWRkX2RpcnMoY29udGV4dCk7CiAJCWlmIChlcnIpCi0JCQlnb3RvIG91dDsKJiM0MzsJCQlnb3RvIGRlbF9vdXQ7CiAKIAkJY29udGV4dHNfYXJyW2ldID0gY29udGV4dDsKIAkJY29udGV4dHMtJmd0O25yJiM0MzsmIzQzOzsKIAl9CiAJcmV0dXJuIDA7CiAKJiM0MztkZWxfb3V0OgomIzQzOwlrb2JqZWN0X2RlbCgmYW1wO2NvbnRleHQtJmd0O2tvYmopOwogb3V0OgogCWRhbW9uX3N5c2ZzX2NvbnRleHRzX3JtX2RpcnMoY29udGV4dHMpOwogCWtvYmplY3RfcHV0KCZhbXA7Y29udGV4dC0mZ3Q7a29iaik7CkBAIC0yNTAxLDYgJiM0MzsyNTEzLDcgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfa2RhbW9uZHNfcm1fZGlycyhzdHJ1Y3QgZGFtb25fc3lzZnNfa2RhbW9uZHMgKmtkYW1vbmRzKQogCiAJZm9yIChpID0gMDsgaSAmbHQ7IGtkYW1vbmRzLSZndDtucjsgaSYjNDM7JiM0MzspIHsKIAkJZGFtb25fc3lzZnNfa2RhbW9uZF9ybV9kaXJzKGtkYW1vbmRzX2FycltpXSk7CiYjNDM7CQlrb2JqZWN0X2RlbCgmYW1wO2tkYW1vbmRzX2FycltpXS0mZ3Q7a29iaik7CiAJCWtvYmplY3RfcHV0KCZhbXA7a2RhbW9uZHNfYXJyW2ldLSZndDtrb2JqKTsKIAl9CiAJa2RhbW9uZHMtJmd0O25yID0gMDsKQEAgLTI1NTUsMTMgJiM0MzsyNTY4LDE1IEBAIHN0YXRpYyBpbnQgZGFtb25fc3lzZnNfa2RhbW9uZHNfYWRkX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX2tkYW1vbmRzICprZGFtb25kcywKIAogCQllcnIgPSBkYW1vbl9zeXNmc19rZGFtb25kX2FkZF9kaXJzKGtkYW1vbmQpOwogCQlpZiAoZXJyKQotCQkJZ290byBvdXQ7CiYjNDM7CQkJZ290byBkZWxfb3V0OwogCiAJCWtkYW1vbmRzX2FycltpXSA9IGtkYW1vbmQ7CiAJCWtkYW1vbmRzLSZndDtuciYjNDM7JiM0Mzs7CiAJfQogCXJldHVybiAwOwogCiYjNDM7ZGVsX291dDoKJiM0MzsJa29iamVjdF9kZWwoJmFtcDtrZGFtb25kLSZndDtrb2JqKTsKIG91dDoKIAlkYW1vbl9zeXNmc19rZGFtb25kc19ybV9kaXJzKGtkYW1vbmRzKTsKIAlrb2JqZWN0X3B1dCgmYW1wO2tkYW1vbmQtJmd0O2tvYmopOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAyMjoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NDk4CgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogMjY2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRBTU9OIFN5c2ZzIFBhdGNoIFJldmlldyoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCBoZXJlIHRoYXQmIzM5O3MgdG91Y2hpbmcgYG1tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuY2AgYW5kIGBtbS9kYW1vbi9zeXNmcy5jYC4gTG9va3MgbGlrZSBpdCYjMzk7cyBhZGRyZXNzaW5nIGEgcHJldHR5IG5hc3R5IGJ1Zywgd2hlcmUgd2UmIzM5O3JlIG1pc3NpbmcgYGtvYmplY3RfZGVsKClgIGNhbGxzIGJlZm9yZSBga29iamVjdF9wdXQoKWAgaW4gdGhlIGBybV9kaXJzYCBmdW5jdGlvbnMgYW5kIGVycm9yIHBhdGhzIGluIHRoZSBgYWRkX2RpcnNgIGZ1bmN0aW9ucy4gU2VlbXMgbGlrZSB0aGlzIGlzIGEgcmVjaXBlIGZvciBzeXNmcyBkaXJlY3RvcnkgbGVha3Mgb3IsIGV2ZW4gd29yc2UsIHVzZS1hZnRlci1mcmVlIG9yIGRvdWJsZS1mcmVlIHNjZW5hcmlvcy4gTm90IGdvb2QhCgpOb3csIHRoZSBxdWVzdGlvbiBpcywgaXMgdGhpcyBzb21ldGhpbmcgd2Ugc2hvdWxkIGJlIGZ1enppbmc/IExldCYjMzk7cyBzZWUuLi4gaXQmIzM5O3MgbW9kaWZ5aW5nIGZpbGVzIHJlbGF0ZWQgdG8gREFNT04sIHdoaWNoIGlzIGEga2VybmVsIHN1YnN5c3RlbS4gQW5kIGl0IGRlYWxzIHdpdGggc3lzZnMgaW50ZXJmYWNlcy4gUmlnaHQsIHN5c2ZzLi4uIHN5emthbGxlciBjYW4gZGVmaW5pdGVseSBnZXQgYXQgdGhvc2Ugd2l0aCBgc3l6X21vdW50X2ltYWdlYCBvciBqdXN0IGJ5IGhpdHRpbmcgdGhlbSBkaXJlY3RseS4gSG9sZCBvbiBhIHNlY29uZCwgZG9lc24mIzM5O3Qgc3l6a2FsbGVyICphbHJlYWR5KiBmdXp6IHN5c2ZzPyBZZXMsIGl0IGRvZXMuIFNvIHRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBmaXhpbmcgYSByZWFsIGJ1ZyByZWxhdGVkIHRvIGBrb2JqZWN0YCBoYW5kbGluZy4gSXQmIzM5O3MgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcgYmVjYXVzZSBpdCYjMzk7cyBmaXhpbmcgYSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0eS4KCk5vdywgbGV0JiMzOTtzIHNlZSB3aGF0IGNvbmZpZyBvcHRpb25zIHdlIG5lZWQgdG8gYWN0dWFsbHkgZW5hYmxlIERBTU9OIHN5c2ZzIHNvIHdlIGNhbiBnZXQgdGhpcyB0aGluZyBmdXp6ZWQgcHJvcGVybHkuIFRpbWUgdG8gZGlnIGludG8gdGhlIGNvbmZpZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAyMjoyMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgREFNT05fU1lTRlMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vZGFtb24vS2NvbmZpZz01Nj1jb25maWcgREFNT05fVkFERFJfS1VOSVRfVEVTVFxuLS1cbm1tL2RhbW9uL0tjb25maWctNjctXG5tbS9kYW1vbi9LY29uZmlnOjY4OmNvbmZpZyBEQU1PTl9TWVNGU1xubW0vZGFtb24vS2NvbmZpZy02OS1cdGJvb2wgXCYjMzQ7REFNT04gc3lzZnMgaW50ZXJmYWNlXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy03NS1cbm1tL2RhbW9uL0tjb25maWc6NzY6Y29uZmlnIERBTU9OX1NZU0ZTX0tVTklUX1RFU1Rcbm1tL2RhbW9uL0tjb25maWctNzctXHRib29sIFwmIzM0O1Rlc3QgZm9yIGRhbW9uIHN5c2ZzIGludGVyZmFjZVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMjI6MjE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTI0MwoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipOYXZpZ2F0aW5nIHRoZSBEQU1PTiBDb25maWd1cmF0aW9uIExhbmRzY2FwZSoqCgpSaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgYERBTU9OX1NZU0ZTYCBpcyBjb25maWd1cmVkIHdpdGhpbiB0aGlzIHByb2plY3QuIE15IGZpcnN0IGluc3RpbmN0LCBhbmQgdGhlIG1vc3QgbG9naWNhbCBwbGFjZSB0byBzdGFydCwgaXMgdGhlIGBLY29uZmlnYCBmaWxlLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gZ29pbmcgdG8gbG9vayBhdCBgbW0vZGFtb24vS2NvbmZpZ2AuIEl0JiMzOTtzIGFsbW9zdCBjZXJ0YWluIHRoYXQgdGhlIGBEQU1PTl9TWVNGU2Agb3B0aW9uLCBpZiBwcmVzZW50LCB3aWxsIGJlIGRlZmluZWQgb3IgYXQgbGVhc3QgcmVmZXJlbmNlZCB0aGVyZS4gVGhhdCYjMzk7cyB0aGUgY29yZSBjb25maWd1cmF0aW9uIGZpbGUgZm9yIG1lbW9yeSBtYW5hZ2VtZW50IGFuZCBEQU1PTiBpcywgYWZ0ZXIgYWxsLCBhIG1lbW9yeSBtb25pdG9yaW5nIGFuZCBvcHRpbWl6YXRpb24gdG9vbC4gSSBleHBlY3QgdG8gZmluZCBkZXBlbmRlbmNpZXMsIGRlZmF1bHQgdmFsdWVzLCBhbmQgbWF5YmUgZXZlbiBzb21lIGhlbHAgdGV4dCBleHBsYWluaW5nIHRoZSBpbXBsaWNhdGlvbnMgb2YgZW5hYmxpbmcgb3IgZGlzYWJsaW5nIHRoaXMgZmVhdHVyZS4gTXkgZ29hbCBpcyB0byBnZXQgYSBxdWljayBvdmVydmlldyBvZiBob3cgdGhpcyBzcGVjaWZpYyBzeXNmcyBpbnRlcmZhY2UgaXMgY29udHJvbGxlZC4gRnJvbSB0aGVyZSwgSSBjYW4gc3RhcnQgdG8gdW5kZXJzdGFuZCBpdHMgaW1wYWN0IG9uIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMjI6MjE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDttbS9kYW1vbi9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNjAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICA2MDpcdFx0aGVscFxuICA2MTpcdFx0ICBUaGlzIGJ1aWxkcyB0aGUgREFNT04gdmlydHVhbCBhZGRyZXNzZXMgb3BlcmF0aW9ucyBLdW5pdCB0ZXN0IHN1aXRlLlxuICA2MjpcdFxuICA2MzpcdFx0ICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBLVW5pdCBhbmQgdW5pdCB0ZXN0cyBpbiBnZW5lcmFsLCBwbGVhc2UgcmVmZXJcbiAgNjQ6XHRcdCAgdG8gdGhlIEtVbml0IGRvY3VtZW50YXRpb24uXG4gIDY1Olx0XG4gIDY2Olx0XHQgIElmIHVuc3VyZSwgc2F5IE4uXG4gIDY3Olx0XG4gIDY4Olx0Y29uZmlnIERBTU9OX1NZU0ZTXG4gIDY5Olx0XHRib29sIFwmIzM0O0RBTU9OIHN5c2ZzIGludGVyZmFjZVwmIzM0O1xuICA3MDpcdFx0ZGVwZW5kcyBvbiBEQU1PTiBcdTAwMjZcdTAwMjYgU1lTRlNcbiAgNzE6XHRcdGRlZmF1bHQgREFNT05cbiAgNzI6XHRcdGhlbHBcbiAgNzM6XHRcdCAgVGhpcyBidWlsZHMgdGhlIHN5c2ZzIGludGVyZmFjZSBmb3IgREFNT04uICBUaGUgdXNlciBzcGFjZSBjYW4gdXNlXG4gIDc0Olx0XHQgIHRoZSBpbnRlcmZhY2UgZm9yIGFyYml0cmFyeSBkYXRhIGFjY2VzcyBtb25pdG9yaW5nLlxuICA3NTpcdFxuICA3NjpcdGNvbmZpZyBEQU1PTl9TWVNGU19LVU5JVF9URVNUXG4gIDc3Olx0XHRib29sIFwmIzM0O1Rlc3QgZm9yIGRhbW9uIHN5c2ZzIGludGVyZmFjZVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4gIDc4Olx0XHRkZXBlbmRzIG9uIERBTU9OX1NZU0ZTIFx1MDAyNlx1MDAyNiBLVU5JVD15XG4gIDc5Olx0XHRkZWZhdWx0IEtVTklUX0FMTF9URVNUU1xuICA4MDpcdFx0aGVscFxuICA4MTpcdFx0ICBUaGlzIGJ1aWxkcyB0aGUgREFNT04gc3lzZnMgaW50ZXJmYWNlIEt1bml0IHRlc3Qgc3VpdGUuXG4gIDgyOlx0XG4gIDgzOlx0XHQgIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIEtVbml0IGFuZCB1bml0IHRlc3RzIGluIGdlbmVyYWwsIHBsZWFzZSByZWZlclxuICA4NDpcdFx0ICB0byB0aGUgS1VuaXQgZG9jdW1lbnRhdGlvbi5cbiAgODU6XHRcbiAgODY6XHRcdCAgSWYgdW5zdXJlLCBzYXkgTi5cbiAgODc6XHRcbiAgODg6XHRjb25maWcgREFNT05fUkVDTEFJTVxuICA4OTpcdFx0Ym9vbCBcJiMzNDtCdWlsZCBEQU1PTi1iYXNlZCByZWNsYWltIChEQU1PTl9SRUNMQUlNKVwmIzM0O1xuICA5MDpcdFx0ZGVwZW5kcyBvbiBEQU1PTl9QQUREUlxuICA5MTpcdFx0aGVscFxuICA5MjpcdFx0ICBUaGlzIGJ1aWxkcyB0aGUgREFNT04tYmFzZWQgcmVjbGFtYXRpb24gc3Vic3lzdGVtLiAgSXQgZmluZHMgcGFnZXNcbiAgOTM6XHRcdCAgdGhhdCBub3QgYWNjZXNzZWQgZm9yIGEgbG9uZyB0aW1lIChjb2xkKSB1c2luZyBEQU1PTiBhbmQgcmVjbGFpbVxuICA5NDpcdFx0ICB0aG9zZS5cbiAgOTU6XHRcbiAgOTY6XHRcdCAgVGhpcyBpcyBzdWdnZXN0ZWQgdG8gYmUgdXNlZCBhcyBhIHByb2FjdGl2ZSBhbmQgbGlnaHR3ZWlnaHRcbiAgOTc6XHRcdCAgcmVjbGFtYXRpb24gdW5kZXIgbGlnaHQgbWVtb3J5IHByZXNzdXJlLCB3aGlsZSB0aGUgdHJhZGl0aW9uYWwgcGFnZVxuICA5ODpcdFx0ICBzY2FubmluZy1iYXNlZCByZWNsYW1hdGlvbiBpcyB1c2VkIGZvciBoZWF2eSBwcmVzc3VyZS5cbiAgOTk6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAyMjoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MDU3CgkJCQkJCQlvdXRwdXQ6IDE5NgoJCQkJCQkJdGhvdWdodHM6IDQ4NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIERBTU9OIFN5c2ZzIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgYERBTU9OX1NZU0ZTYCBpcyB0aGUga2V5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGhlcmUuIEl0JiMzOTtzIGNsZWFybHkgZGVwZW5kZW50IG9uIGBEQU1PTmAgYW5kIGBTWVNGU2AsIHdoaWNoIG1ha2VzIHNlbnNlLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgc2NvcGUgb2YgdGhpcyBjaGFuZ2UsIHNvIEkmIzM5O20gc2Nhbm5pbmcgdGhlIG1vZGlmaWVkIGZ1bmN0aW9ucyB0byB1bmRlcnN0YW5kIHdoYXQmIzM5O3MgYmVpbmcgdG91Y2hlZC4KClRoZSBwYXRjaCBzZWVtcyBoZWF2aWx5IGZvY3VzZWQgb24gc3lzZnMgZGlyZWN0b3J5IG1hbmlwdWxhdGlvbiB3aXRoaW4gdGhlIERBTU9OIHN1YnN5c3RlbS4gSSBzZWUgc2V2ZXJhbCBmdW5jdGlvbnMgd2l0aCAmIzM0O3JtX2RpcnMmIzM0OyBhbmQgJiMzNDthZGRfZGlycyYjMzQ7IGluIHRoZWlyIG5hbWVzLiBJJiMzOTt2ZSBnb3Q6CgoqICAgYGRhbW9uX3N5c2ZzX3NjaGVtZV9yZWdpb25zX3JtX2RpcnNgCiogICBgZGFtb25fc3lzZnNfc2NoZW1lX2ZpbHRlcnNfcm1fZGlyc2AKKiAgIGBkYW1vc19zeXNmc19xdW90YV9nb2Fsc19ybV9kaXJzYAoqICAgYGRhbW9zX3N5c2ZzX2Rlc3RzX3JtX2RpcnNgCiogICBgZGFtb25fc3lzZnNfc2NoZW1lc19ybV9kaXJzYAoqICAgYGRhbW9uX3N5c2ZzX3NjaGVtZXNfYWRkX2RpcnNgCiogICBgZGFtb3Nfc3lzZnNfcG9wdWxhdGVfcmVnaW9uX2RpcmAKKiAgIGBkYW1vbl9zeXNmc19yZWdpb25zX3JtX2RpcnNgCiogICBgZGFtb25fc3lzZnNfdGFyZ2V0c19ybV9kaXJzYAoqICAgYGRhbW9uX3N5c2ZzX3RhcmdldHNfYWRkX2RpcnNgCiogICBgZGFtb25fc3lzZnNfZmlsdGVyc19ybV9kaXJzYAoqICAgYGRhbW9uX3N5c2ZzX3Byb2Jlc19ybV9kaXJzYAoqICAgYGRhbW9uX3N5c2ZzX3Byb2Jlc19hZGRfZGlyc2AKKiAgIGBkYW1vbl9zeXNmc19jb250ZXh0c19ybV9kaXJzYAoqICAgYGRhbW9uX3N5c2ZzX2NvbnRleHRzX2FkZF9kaXJzYAoqICAgYGRhbW9uX3N5c2ZzX2tkYW1vbmRzX3JtX2RpcnNgCiogICBgZGFtb25fc3lzZnNfa2RhbW9uZHNfYWRkX2RpcnNgCgpJdCBsb29rcyBsaWtlIHRoZSBwYXRjaCBpcyBhZGRpbmcgYW5kIHJlbW92aW5nIHN5c2ZzIGRpcmVjdG9yaWVzIHJlbGF0ZWQgdG8gc2NoZW1lcywgdGFyZ2V0cywgY29udGV4dHMsIGFuZCBrZGFtb25kcy4gSSBjYW4gcHJvYmFibHkgbmFycm93IGRvd24gbXkgYW5hbHlzaXMgYnkgZm9jdXNpbmcgb24gYSBzZWxlY3QgZmV3LCBzcGVjaWZpY2FsbHkgdGhlIGFkZC9yZW1vdmUgcGFpcnMgZm9yIHNjaGVtZXMsIHRhcmdldHMsIGNvbnRleHRzLCBhbmQga2RhbW9uZHMuCgpUbyBjb25maXJtIG15IHVuZGVyc3RhbmRpbmcsIEkmIzM5O20gY2hlY2tpbmcgdGhhdCBgREFNT05fU1lTRlNgIGlzIGluZGVlZCB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIGl0ZW0gaGVyZS4gQW5kIHllcywgaXQgaXMuIFRoYXQgY29uZmlybXMgdGhlIHNjb3BlIG9mIHRoaXMgcGF0Y2guCgpJJiMzOTttIHJlYWR5IHRvIGNhbGwgc2V0LXJlc3VsdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMjI6MjE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RBTU9OX1NZU0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZGFtb25fc3lzZnNfc2NoZW1lc19hZGRfZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc19zY2hlbWVzX3JtX2RpcnMmIzM0OywKICAgICYjMzQ7ZGFtb25fc3lzZnNfdGFyZ2V0c19hZGRfZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc190YXJnZXRzX3JtX2RpcnMmIzM0OywKICAgICYjMzQ7ZGFtb25fc3lzZnNfY29udGV4dHNfYWRkX2RpcnMmIzM0OywKICAgICYjMzQ7ZGFtb25fc3lzZnNfY29udGV4dHNfcm1fZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc19rZGFtb25kc19hZGRfZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc19rZGFtb25kc19ybV9kaXJzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGtvYmplY3QgbGVha3MgYW5kIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBpc3N1ZXMgaW4gREFNT04gc3lzZnMgZGlyZWN0b3J5IG1hbmFnZW1lbnQgYnkgYWRkaW5nIG1pc3Npbmcga29iamVjdF9kZWwoKSBjYWxscy4gVGhpcyBpcyBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUgdmlhIHN5c2ZzIGludGVyYWN0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7REFNT05fU1lTRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkYW1vbl9zeXNmc19zY2hlbWVzX2FkZF9kaXJzJiMzNDssCiAgICAmIzM0O2RhbW9uX3N5c2ZzX3NjaGVtZXNfcm1fZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc190YXJnZXRzX2FkZF9kaXJzJiMzNDssCiAgICAmIzM0O2RhbW9uX3N5c2ZzX3RhcmdldHNfcm1fZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc19jb250ZXh0c19hZGRfZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc19jb250ZXh0c19ybV9kaXJzJiMzNDssCiAgICAmIzM0O2RhbW9uX3N5c2ZzX2tkYW1vbmRzX2FkZF9kaXJzJiMzNDssCiAgICAmIzM0O2RhbW9uX3N5c2ZzX2tkYW1vbmRzX3JtX2RpcnMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMga29iamVjdCBsZWFrcyBhbmQgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIGlzc3VlcyBpbiBEQU1PTiBzeXNmcyBkaXJlY3RvcnkgbWFuYWdlbWVudCBieSBhZGRpbmcgbWlzc2luZyBrb2JqZWN0X2RlbCgpIGNhbGxzLiBUaGlzIGlzIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZSB2aWEgc3lzZnMgaW50ZXJhY3Rpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMjhUMjI6MjE6MDYuNzUyMTAzNzA5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg1Njc3NDg0MzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiREFNT05fU1lTRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkYW1vbl9zeXNmc19zY2hlbWVzX2FkZF9kaXJzXCIsXG4gICAgXCJkYW1vbl9zeXNmc19zY2hlbWVzX3JtX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX3RhcmdldHNfYWRkX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX3RhcmdldHNfcm1fZGlyc1wiLFxuICAgIFwiZGFtb25fc3lzZnNfY29udGV4dHNfYWRkX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX2NvbnRleHRzX3JtX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX2tkYW1vbmRzX2FkZF9kaXJzXCIsXG4gICAgXCJkYW1vbl9zeXNmc19rZGFtb25kc19ybV9kaXJzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMga29iamVjdCBsZWFrcyBhbmQgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIGlzc3VlcyBpbiBEQU1PTiBzeXNmcyBkaXJlY3RvcnkgbWFuYWdlbWVudCBieSBhZGRpbmcgbWlzc2luZyBrb2JqZWN0X2RlbCgpIGNhbGxzLiBUaGlzIGlzIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZSB2aWEgc3lzZnMgaW50ZXJhY3Rpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQyMjoyMTowNi43NTIxMDg4MDlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyMDE2OTU3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGE0YWQwNzkwOWEyZTBmYzNiMWM0MDVlYzk1YzQxZDNmNzZhODNiNjlcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBKdW4gMjggMjI6MjE6MDUgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbW0vZGFtb24vc3lzZnMtc2NoZW1lcy5jIGIvbW0vZGFtb24vc3lzZnMtc2NoZW1lcy5jXFxuaW5kZXggMzI5Y2ZkMGJiZTlmMzIuLjBiOGE2ZjFmNmI5ZmM1IDEwMDY0NFxcbi0tLSBhL21tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuY1xcbisrKyBiL21tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuY1xcbkBAIC0zMzQsNiArMzM0LDcgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfc2NoZW1lX3JlZ2lvbnNfcm1fZGlycyhcXG4gXFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHIsIG5leHQsIFxcdTAwMjZyZWdpb25zLVxcdTAwM2VyZWdpb25zX2xpc3QsIGxpc3QpIHtcXG4gXFx0XFx0ZGFtb3Nfc3lzZnNfcmVnaW9uX3JtX2RpcnMocik7XFxuIFxcdFxcdGxpc3RfZGVsKFxcdTAwMjZyLVxcdTAwM2VsaXN0KTtcXG4rXFx0XFx0a29iamVjdF9kZWwoXFx1MDAyNnItXFx1MDAzZWtvYmopO1xcbiBcXHRcXHRrb2JqZWN0X3B1dChcXHUwMDI2ci1cXHUwMDNla29iaik7XFxuIFxcdFxcdHJlZ2lvbnMtXFx1MDAzZW5yX3JlZ2lvbnMtLTtcXG4gXFx0fVxcbkBAIC05MTMsOCArOTE0LDEwIEBAIHN0YXRpYyB2b2lkIGRhbW9uX3N5c2ZzX3NjaGVtZV9maWx0ZXJzX3JtX2RpcnMoXFxuIFxcdHN0cnVjdCBkYW1vbl9zeXNmc19zY2hlbWVfZmlsdGVyICoqZmlsdGVyc19hcnIgPSBmaWx0ZXJzLVxcdTAwM2VmaWx0ZXJzX2FycjtcXG4gXFx0aW50IGk7XFxuIFxcbi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgZmlsdGVycy1cXHUwMDNlbnI7IGkrKylcXG4rXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGZpbHRlcnMtXFx1MDAzZW5yOyBpKyspIHtcXG4rXFx0XFx0a29iamVjdF9kZWwoXFx1MDAyNmZpbHRlcnNfYXJyW2ldLVxcdTAwM2Vrb2JqKTtcXG4gXFx0XFx0a29iamVjdF9wdXQoXFx1MDAyNmZpbHRlcnNfYXJyW2ldLVxcdTAwM2Vrb2JqKTtcXG4rXFx0fVxcbiBcXHRmaWx0ZXJzLVxcdTAwM2VuciA9IDA7XFxuIFxcdGtmcmVlKGZpbHRlcnNfYXJyKTtcXG4gXFx0ZmlsdGVycy1cXHUwMDNlZmlsdGVyc19hcnIgPSBOVUxMO1xcbkBAIC0xNDYyLDggKzE0NjUsMTAgQEAgc3RhdGljIHZvaWQgZGFtb3Nfc3lzZnNfcXVvdGFfZ29hbHNfcm1fZGlycyhcXG4gXFx0c3RydWN0IGRhbW9zX3N5c2ZzX3F1b3RhX2dvYWwgKipnb2Fsc19hcnIgPSBnb2Fscy1cXHUwMDNlZ29hbHNfYXJyO1xcbiBcXHRpbnQgaTtcXG4gXFxuLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBnb2Fscy1cXHUwMDNlbnI7IGkrKylcXG4rXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGdvYWxzLVxcdTAwM2VucjsgaSsrKSB7XFxuK1xcdFxcdGtvYmplY3RfZGVsKFxcdTAwMjZnb2Fsc19hcnJbaV0tXFx1MDAzZWtvYmopO1xcbiBcXHRcXHRrb2JqZWN0X3B1dChcXHUwMDI2Z29hbHNfYXJyW2ldLVxcdTAwM2Vrb2JqKTtcXG4rXFx0fVxcbiBcXHRnb2Fscy1cXHUwMDNlbnIgPSAwO1xcbiBcXHRrZnJlZShnb2Fsc19hcnIpO1xcbiBcXHRnb2Fscy1cXHUwMDNlZ29hbHNfYXJyID0gTlVMTDtcXG5AQCAtMjE0Myw4ICsyMTQ4LDEwIEBAIHN0YXRpYyB2b2lkIGRhbW9zX3N5c2ZzX2Rlc3RzX3JtX2RpcnMoXFxuIFxcdHN0cnVjdCBkYW1vc19zeXNmc19kZXN0ICoqZGVzdHNfYXJyID0gZGVzdHMtXFx1MDAzZWRlc3RzX2FycjtcXG4gXFx0aW50IGk7XFxuIFxcbi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgZGVzdHMtXFx1MDAzZW5yOyBpKyspXFxuK1xcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBkZXN0cy1cXHUwMDNlbnI7IGkrKykge1xcbitcXHRcXHRrb2JqZWN0X2RlbChcXHUwMDI2ZGVzdHNfYXJyW2ldLVxcdTAwM2Vrb2JqKTtcXG4gXFx0XFx0a29iamVjdF9wdXQoXFx1MDAyNmRlc3RzX2FycltpXS1cXHUwMDNla29iaik7XFxuK1xcdH1cXG4gXFx0ZGVzdHMtXFx1MDAzZW5yID0gMDtcXG4gXFx0a2ZyZWUoZGVzdHNfYXJyKTtcXG4gXFx0ZGVzdHMtXFx1MDAzZWRlc3RzX2FyciA9IE5VTEw7XFxuQEAgLTI2ODYsNiArMjY5Myw3IEBAIHZvaWQgZGFtb25fc3lzZnNfc2NoZW1lc19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19zY2hlbWVzICpzY2hlbWVzKVxcbiBcXG4gXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIHNjaGVtZXMtXFx1MDAzZW5yOyBpKyspIHtcXG4gXFx0XFx0ZGFtb25fc3lzZnNfc2NoZW1lX3JtX2RpcnMoc2NoZW1lc19hcnJbaV0pO1xcbitcXHRcXHRrb2JqZWN0X2RlbChcXHUwMDI2c2NoZW1lc19hcnJbaV0tXFx1MDAzZWtvYmopO1xcbiBcXHRcXHRrb2JqZWN0X3B1dChcXHUwMDI2c2NoZW1lc19hcnJbaV0tXFx1MDAzZWtvYmopO1xcbiBcXHR9XFxuIFxcdHNjaGVtZXMtXFx1MDAzZW5yID0gMDtcXG5AQCAtMjcyNywxMyArMjczNSwxNSBAQCBzdGF0aWMgaW50IGRhbW9uX3N5c2ZzX3NjaGVtZXNfYWRkX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX3NjaGVtZXMgKnNjaGVtZXMsXFxuIFxcdFxcdFxcdGdvdG8gb3V0O1xcbiBcXHRcXHRlcnIgPSBkYW1vbl9zeXNmc19zY2hlbWVfYWRkX2RpcnMoc2NoZW1lKTtcXG4gXFx0XFx0aWYgKGVycilcXG4tXFx0XFx0XFx0Z290byBvdXQ7XFxuK1xcdFxcdFxcdGdvdG8gZGVsX291dDtcXG4gXFxuIFxcdFxcdHNjaGVtZXNfYXJyW2ldID0gc2NoZW1lO1xcbiBcXHRcXHRzY2hlbWVzLVxcdTAwM2VucisrO1xcbiBcXHR9XFxuIFxcdHJldHVybiAwO1xcbiBcXG4rZGVsX291dDpcXG4rXFx0a29iamVjdF9kZWwoXFx1MDAyNnNjaGVtZS1cXHUwMDNla29iaik7XFxuIG91dDpcXG4gXFx0ZGFtb25fc3lzZnNfc2NoZW1lc19ybV9kaXJzKHNjaGVtZXMpO1xcbiBcXHRrb2JqZWN0X3B1dChcXHUwMDI2c2NoZW1lLVxcdTAwM2Vrb2JqKTtcXG5AQCAtMzEyNywxMiArMzEzNywxNCBAQCB2b2lkIGRhbW9zX3N5c2ZzX3BvcHVsYXRlX3JlZ2lvbl9kaXIoc3RydWN0IGRhbW9uX3N5c2ZzX3NjaGVtZXMgKnN5c2ZzX3NjaGVtZXMsXFxuIFxcdFxcdFxcdFxcdHN5c2ZzX3JlZ2lvbnMtXFx1MDAzZW5yX3JlZ2lvbnMpKVxcbiBcXHRcXHRnb3RvIG91dDtcXG4gXFx0aWYgKGRhbW9zX3N5c2ZzX3JlZ2lvbl9hZGRfZGlycyhyZWdpb24sIGN0eCwgcikpXFxuLVxcdFxcdGdvdG8gb3V0O1xcbitcXHRcXHRnb3RvIGRlbF9vdXQ7XFxuIFxcbiBcXHRsaXN0X2FkZF90YWlsKFxcdTAwMjZyZWdpb24tXFx1MDAzZWxpc3QsIFxcdTAwMjZzeXNmc19yZWdpb25zLVxcdTAwM2VyZWdpb25zX2xpc3QpO1xcbiBcXHRzeXNmc19yZWdpb25zLVxcdTAwM2Vucl9yZWdpb25zKys7XFxuIFxcdHJldHVybjtcXG4gXFxuK2RlbF9vdXQ6XFxuK1xcdGtvYmplY3RfZGVsKFxcdTAwMjZyZWdpb24tXFx1MDAzZWtvYmopO1xcbiBvdXQ6XFxuIFxcdGtvYmplY3RfcHV0KFxcdTAwMjZyZWdpb24tXFx1MDAzZWtvYmopO1xcbiB9XFxuZGlmZiAtLWdpdCBhL21tL2RhbW9uL3N5c2ZzLmMgYi9tbS9kYW1vbi9zeXNmcy5jXFxuaW5kZXggMmU5NWUzYmFjNzc0ZGMuLmZmYmM5OTQxMWY1M2IzIDEwMDY0NFxcbi0tLSBhL21tL2RhbW9uL3N5c2ZzLmNcXG4rKysgYi9tbS9kYW1vbi9zeXNmcy5jXFxuQEAgLTEwNyw4ICsxMDcsMTAgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfcmVnaW9uc19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19yZWdpb25zICpyZWdpb25zKVxcbiBcXHRzdHJ1Y3QgZGFtb25fc3lzZnNfcmVnaW9uICoqcmVnaW9uc19hcnIgPSByZWdpb25zLVxcdTAwM2VyZWdpb25zX2FycjtcXG4gXFx0aW50IGk7XFxuIFxcbi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgcmVnaW9ucy1cXHUwMDNlbnI7IGkrKylcXG4rXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIHJlZ2lvbnMtXFx1MDAzZW5yOyBpKyspIHtcXG4rXFx0XFx0a29iamVjdF9kZWwoXFx1MDAyNnJlZ2lvbnNfYXJyW2ldLVxcdTAwM2Vrb2JqKTtcXG4gXFx0XFx0a29iamVjdF9wdXQoXFx1MDAyNnJlZ2lvbnNfYXJyW2ldLVxcdTAwM2Vrb2JqKTtcXG4rXFx0fVxcbiBcXHRyZWdpb25zLVxcdTAwM2VuciA9IDA7XFxuIFxcdGtmcmVlKHJlZ2lvbnNfYXJyKTtcXG4gXFx0cmVnaW9ucy1cXHUwMDNlcmVnaW9uc19hcnIgPSBOVUxMO1xcbkBAIC0zMzMsNiArMzM1LDcgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfdGFyZ2V0c19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc190YXJnZXRzICp0YXJnZXRzKVxcbiBcXG4gXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIHRhcmdldHMtXFx1MDAzZW5yOyBpKyspIHtcXG4gXFx0XFx0ZGFtb25fc3lzZnNfdGFyZ2V0X3JtX2RpcnModGFyZ2V0c19hcnJbaV0pO1xcbitcXHRcXHRrb2JqZWN0X2RlbChcXHUwMDI2dGFyZ2V0c19hcnJbaV0tXFx1MDAzZWtvYmopO1xcbiBcXHRcXHRrb2JqZWN0X3B1dChcXHUwMDI2dGFyZ2V0c19hcnJbaV0tXFx1MDAzZWtvYmopO1xcbiBcXHR9XFxuIFxcdHRhcmdldHMtXFx1MDAzZW5yID0gMDtcXG5AQCAtMzcxLDEzICszNzQsMTUgQEAgc3RhdGljIGludCBkYW1vbl9zeXNmc190YXJnZXRzX2FkZF9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc190YXJnZXRzICp0YXJnZXRzLFxcbiBcXG4gXFx0XFx0ZXJyID0gZGFtb25fc3lzZnNfdGFyZ2V0X2FkZF9kaXJzKHRhcmdldCk7XFxuIFxcdFxcdGlmIChlcnIpXFxuLVxcdFxcdFxcdGdvdG8gb3V0O1xcbitcXHRcXHRcXHRnb3RvIGRlbF9vdXQ7XFxuIFxcbiBcXHRcXHR0YXJnZXRzX2FycltpXSA9IHRhcmdldDtcXG4gXFx0XFx0dGFyZ2V0cy1cXHUwMDNlbnIrKztcXG4gXFx0fVxcbiBcXHRyZXR1cm4gMDtcXG4gXFxuK2RlbF9vdXQ6XFxuK1xcdGtvYmplY3RfZGVsKFxcdTAwMjZ0YXJnZXQtXFx1MDAzZWtvYmopO1xcbiBvdXQ6XFxuIFxcdGRhbW9uX3N5c2ZzX3RhcmdldHNfcm1fZGlycyh0YXJnZXRzKTtcXG4gXFx0a29iamVjdF9wdXQoXFx1MDAyNnRhcmdldC1cXHUwMDNla29iaik7XFxuQEAgLTk1Nyw4ICs5NjIsMTAgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfZmlsdGVyc19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19maWx0ZXJzICpmaWx0ZXJzKVxcbiBcXHRzdHJ1Y3QgZGFtb25fc3lzZnNfZmlsdGVyICoqZmlsdGVyc19hcnIgPSBmaWx0ZXJzLVxcdTAwM2VmaWx0ZXJzX2FycjtcXG4gXFx0aW50IGk7XFxuIFxcbi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgZmlsdGVycy1cXHUwMDNlbnI7IGkrKylcXG4rXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGZpbHRlcnMtXFx1MDAzZW5yOyBpKyspIHtcXG4rXFx0XFx0a29iamVjdF9kZWwoXFx1MDAyNmZpbHRlcnNfYXJyW2ldLVxcdTAwM2Vrb2JqKTtcXG4gXFx0XFx0a29iamVjdF9wdXQoXFx1MDAyNmZpbHRlcnNfYXJyW2ldLVxcdTAwM2Vrb2JqKTtcXG4rXFx0fVxcbiBcXHRmaWx0ZXJzLVxcdTAwM2VuciA9IDA7XFxuIFxcdGtmcmVlKGZpbHRlcnNfYXJyKTtcXG4gXFx0ZmlsdGVycy1cXHUwMDNlZmlsdGVyc19hcnIgPSBOVUxMO1xcbkBAIC0xMTM0LDYgKzExNDEsNyBAQCBzdGF0aWMgdm9pZCBkYW1vbl9zeXNmc19wcm9iZXNfcm1fZGlycyhcXG4gXFxuIFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBwcm9iZXMtXFx1MDAzZW5yOyBpKyspIHtcXG4gXFx0XFx0ZGFtb25fc3lzZnNfcHJvYmVfcm1fZGlycyhwcm9iZXNfYXJyW2ldKTtcXG4rXFx0XFx0a29iamVjdF9kZWwoXFx1MDAyNnByb2Jlc19hcnJbaV0tXFx1MDAzZWtvYmopO1xcbiBcXHRcXHRrb2JqZWN0X3B1dChcXHUwMDI2cHJvYmVzX2FycltpXS1cXHUwMDNla29iaik7XFxuIFxcdH1cXG4gXFx0cHJvYmVzLVxcdTAwM2VuciA9IDA7XFxuQEAgLTExNzUsNiArMTE4Myw3IEBAIHN0YXRpYyBpbnQgZGFtb25fc3lzZnNfcHJvYmVzX2FkZF9kaXJzKFxcbiBcXG4gXFx0XFx0ZXJyID0gZGFtb25fc3lzZnNfcHJvYmVfYWRkX2RpcnMocHJvYmUpO1xcbiBcXHRcXHRpZiAoZXJyKSB7XFxuK1xcdFxcdFxcdGtvYmplY3RfZGVsKFxcdTAwMjZwcm9iZS1cXHUwMDNla29iaik7XFxuIFxcdFxcdFxcdGtvYmplY3RfcHV0KFxcdTAwMjZwcm9iZS1cXHUwMDNla29iaik7XFxuIFxcdFxcdFxcdGRhbW9uX3N5c2ZzX3Byb2Jlc19ybV9kaXJzKHByb2Jlcyk7XFxuIFxcdFxcdFxcdHJldHVybiBlcnI7XFxuQEAgLTE2NDIsNiArMTY1MSw3IEBAIHN0YXRpYyB2b2lkIGRhbW9uX3N5c2ZzX2NvbnRleHRzX3JtX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX2NvbnRleHRzICpjb250ZXh0cylcXG4gXFxuIFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBjb250ZXh0cy1cXHUwMDNlbnI7IGkrKykge1xcbiBcXHRcXHRkYW1vbl9zeXNmc19jb250ZXh0X3JtX2RpcnMoY29udGV4dHNfYXJyW2ldKTtcXG4rXFx0XFx0a29iamVjdF9kZWwoXFx1MDAyNmNvbnRleHRzX2FycltpXS1cXHUwMDNla29iaik7XFxuIFxcdFxcdGtvYmplY3RfcHV0KFxcdTAwMjZjb250ZXh0c19hcnJbaV0tXFx1MDAzZWtvYmopO1xcbiBcXHR9XFxuIFxcdGNvbnRleHRzLVxcdTAwM2VuciA9IDA7XFxuQEAgLTE2ODAsMTMgKzE2OTAsMTUgQEAgc3RhdGljIGludCBkYW1vbl9zeXNmc19jb250ZXh0c19hZGRfZGlycyhzdHJ1Y3QgZGFtb25fc3lzZnNfY29udGV4dHMgKmNvbnRleHRzLFxcbiBcXG4gXFx0XFx0ZXJyID0gZGFtb25fc3lzZnNfY29udGV4dF9hZGRfZGlycyhjb250ZXh0KTtcXG4gXFx0XFx0aWYgKGVycilcXG4tXFx0XFx0XFx0Z290byBvdXQ7XFxuK1xcdFxcdFxcdGdvdG8gZGVsX291dDtcXG4gXFxuIFxcdFxcdGNvbnRleHRzX2FycltpXSA9IGNvbnRleHQ7XFxuIFxcdFxcdGNvbnRleHRzLVxcdTAwM2VucisrO1xcbiBcXHR9XFxuIFxcdHJldHVybiAwO1xcbiBcXG4rZGVsX291dDpcXG4rXFx0a29iamVjdF9kZWwoXFx1MDAyNmNvbnRleHQtXFx1MDAzZWtvYmopO1xcbiBvdXQ6XFxuIFxcdGRhbW9uX3N5c2ZzX2NvbnRleHRzX3JtX2RpcnMoY29udGV4dHMpO1xcbiBcXHRrb2JqZWN0X3B1dChcXHUwMDI2Y29udGV4dC1cXHUwMDNla29iaik7XFxuQEAgLTI1MDEsNiArMjUxMyw3IEBAIHN0YXRpYyB2b2lkIGRhbW9uX3N5c2ZzX2tkYW1vbmRzX3JtX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX2tkYW1vbmRzICprZGFtb25kcylcXG4gXFxuIFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBrZGFtb25kcy1cXHUwMDNlbnI7IGkrKykge1xcbiBcXHRcXHRkYW1vbl9zeXNmc19rZGFtb25kX3JtX2RpcnMoa2RhbW9uZHNfYXJyW2ldKTtcXG4rXFx0XFx0a29iamVjdF9kZWwoXFx1MDAyNmtkYW1vbmRzX2FycltpXS1cXHUwMDNla29iaik7XFxuIFxcdFxcdGtvYmplY3RfcHV0KFxcdTAwMjZrZGFtb25kc19hcnJbaV0tXFx1MDAzZWtvYmopO1xcbiBcXHR9XFxuIFxcdGtkYW1vbmRzLVxcdTAwM2VuciA9IDA7XFxuQEAgLTI1NTUsMTMgKzI1NjgsMTUgQEAgc3RhdGljIGludCBkYW1vbl9zeXNmc19rZGFtb25kc19hZGRfZGlycyhzdHJ1Y3QgZGFtb25fc3lzZnNfa2RhbW9uZHMgKmtkYW1vbmRzLFxcbiBcXG4gXFx0XFx0ZXJyID0gZGFtb25fc3lzZnNfa2RhbW9uZF9hZGRfZGlycyhrZGFtb25kKTtcXG4gXFx0XFx0aWYgKGVycilcXG4tXFx0XFx0XFx0Z290byBvdXQ7XFxuK1xcdFxcdFxcdGdvdG8gZGVsX291dDtcXG4gXFxuIFxcdFxcdGtkYW1vbmRzX2FycltpXSA9IGtkYW1vbmQ7XFxuIFxcdFxcdGtkYW1vbmRzLVxcdTAwM2VucisrO1xcbiBcXHR9XFxuIFxcdHJldHVybiAwO1xcbiBcXG4rZGVsX291dDpcXG4rXFx0a29iamVjdF9kZWwoXFx1MDAyNmtkYW1vbmQtXFx1MDAzZWtvYmopO1xcbiBvdXQ6XFxuIFxcdGRhbW9uX3N5c2ZzX2tkYW1vbmRzX3JtX2RpcnMoa2RhbW9uZHMpO1xcbiBcXHRrb2JqZWN0X3B1dChcXHUwMDI2a2RhbW9uZC1cXHUwMDNla29iaik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDIyOjIxOjA3LjE3MjkyNjY0OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTgxNDY5MTU0MTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiREFNT05fU1lTRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkYW1vbl9zeXNmc19zY2hlbWVzX2FkZF9kaXJzXCIsXG4gICAgXCJkYW1vbl9zeXNmc19zY2hlbWVzX3JtX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX3RhcmdldHNfYWRkX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX3RhcmdldHNfcm1fZGlyc1wiLFxuICAgIFwiZGFtb25fc3lzZnNfY29udGV4dHNfYWRkX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX2NvbnRleHRzX3JtX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX2tkYW1vbmRzX2FkZF9kaXJzXCIsXG4gICAgXCJkYW1vbl9zeXNmc19rZGFtb25kc19ybV9kaXJzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMga29iamVjdCBsZWFrcyBhbmQgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIGlzc3VlcyBpbiBEQU1PTiBzeXNmcyBkaXJlY3RvcnkgbWFuYWdlbWVudCBieSBhZGRpbmcgbWlzc2luZyBrb2JqZWN0X2RlbCgpIGNhbGxzLiBUaGlzIGlzIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZSB2aWEgc3lzZnMgaW50ZXJhY3Rpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGE0YWQwNzkwOWEyZTBmYzNiMWM0MDVlYzk1YzQxZDNmNzZhODNiNjlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEp1biAyOCAyMjoyMTowNSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL21tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuYyBiL21tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuY1xuaW5kZXggMzI5Y2ZkMGJiZTlmMzIuLjBiOGE2ZjFmNmI5ZmM1IDEwMDY0NFxuLS0tIGEvbW0vZGFtb24vc3lzZnMtc2NoZW1lcy5jXG4rKysgYi9tbS9kYW1vbi9zeXNmcy1zY2hlbWVzLmNcbkBAIC0zMzQsNiArMzM0LDcgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfc2NoZW1lX3JlZ2lvbnNfcm1fZGlycyhcbiBcdGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShyLCBuZXh0LCBcdTAwMjZyZWdpb25zLVx1MDAzZXJlZ2lvbnNfbGlzdCwgbGlzdCkge1xuIFx0XHRkYW1vc19zeXNmc19yZWdpb25fcm1fZGlycyhyKTtcbiBcdFx0bGlzdF9kZWwoXHUwMDI2ci1cdTAwM2VsaXN0KTtcbitcdFx0a29iamVjdF9kZWwoXHUwMDI2ci1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2ci1cdTAwM2Vrb2JqKTtcbiBcdFx0cmVnaW9ucy1cdTAwM2Vucl9yZWdpb25zLS07XG4gXHR9XG5AQCAtOTEzLDggKzkxNCwxMCBAQCBzdGF0aWMgdm9pZCBkYW1vbl9zeXNmc19zY2hlbWVfZmlsdGVyc19ybV9kaXJzKFxuIFx0c3RydWN0IGRhbW9uX3N5c2ZzX3NjaGVtZV9maWx0ZXIgKipmaWx0ZXJzX2FyciA9IGZpbHRlcnMtXHUwMDNlZmlsdGVyc19hcnI7XG4gXHRpbnQgaTtcbiBcbi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGZpbHRlcnMtXHUwMDNlbnI7IGkrKylcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIGZpbHRlcnMtXHUwMDNlbnI7IGkrKykge1xuK1x0XHRrb2JqZWN0X2RlbChcdTAwMjZmaWx0ZXJzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2ZmlsdGVyc19hcnJbaV0tXHUwMDNla29iaik7XG4rXHR9XG4gXHRmaWx0ZXJzLVx1MDAzZW5yID0gMDtcbiBcdGtmcmVlKGZpbHRlcnNfYXJyKTtcbiBcdGZpbHRlcnMtXHUwMDNlZmlsdGVyc19hcnIgPSBOVUxMO1xuQEAgLTE0NjIsOCArMTQ2NSwxMCBAQCBzdGF0aWMgdm9pZCBkYW1vc19zeXNmc19xdW90YV9nb2Fsc19ybV9kaXJzKFxuIFx0c3RydWN0IGRhbW9zX3N5c2ZzX3F1b3RhX2dvYWwgKipnb2Fsc19hcnIgPSBnb2Fscy1cdTAwM2Vnb2Fsc19hcnI7XG4gXHRpbnQgaTtcbiBcbi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGdvYWxzLVx1MDAzZW5yOyBpKyspXG4rXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBnb2Fscy1cdTAwM2VucjsgaSsrKSB7XG4rXHRcdGtvYmplY3RfZGVsKFx1MDAyNmdvYWxzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2Z29hbHNfYXJyW2ldLVx1MDAzZWtvYmopO1xuK1x0fVxuIFx0Z29hbHMtXHUwMDNlbnIgPSAwO1xuIFx0a2ZyZWUoZ29hbHNfYXJyKTtcbiBcdGdvYWxzLVx1MDAzZWdvYWxzX2FyciA9IE5VTEw7XG5AQCAtMjE0Myw4ICsyMTQ4LDEwIEBAIHN0YXRpYyB2b2lkIGRhbW9zX3N5c2ZzX2Rlc3RzX3JtX2RpcnMoXG4gXHRzdHJ1Y3QgZGFtb3Nfc3lzZnNfZGVzdCAqKmRlc3RzX2FyciA9IGRlc3RzLVx1MDAzZWRlc3RzX2FycjtcbiBcdGludCBpO1xuIFxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgZGVzdHMtXHUwMDNlbnI7IGkrKylcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIGRlc3RzLVx1MDAzZW5yOyBpKyspIHtcbitcdFx0a29iamVjdF9kZWwoXHUwMDI2ZGVzdHNfYXJyW2ldLVx1MDAzZWtvYmopO1xuIFx0XHRrb2JqZWN0X3B1dChcdTAwMjZkZXN0c19hcnJbaV0tXHUwMDNla29iaik7XG4rXHR9XG4gXHRkZXN0cy1cdTAwM2VuciA9IDA7XG4gXHRrZnJlZShkZXN0c19hcnIpO1xuIFx0ZGVzdHMtXHUwMDNlZGVzdHNfYXJyID0gTlVMTDtcbkBAIC0yNjg2LDYgKzI2OTMsNyBAQCB2b2lkIGRhbW9uX3N5c2ZzX3NjaGVtZXNfcm1fZGlycyhzdHJ1Y3QgZGFtb25fc3lzZnNfc2NoZW1lcyAqc2NoZW1lcylcbiBcbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIHNjaGVtZXMtXHUwMDNlbnI7IGkrKykge1xuIFx0XHRkYW1vbl9zeXNmc19zY2hlbWVfcm1fZGlycyhzY2hlbWVzX2FycltpXSk7XG4rXHRcdGtvYmplY3RfZGVsKFx1MDAyNnNjaGVtZXNfYXJyW2ldLVx1MDAzZWtvYmopO1xuIFx0XHRrb2JqZWN0X3B1dChcdTAwMjZzY2hlbWVzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdH1cbiBcdHNjaGVtZXMtXHUwMDNlbnIgPSAwO1xuQEAgLTI3MjcsMTMgKzI3MzUsMTUgQEAgc3RhdGljIGludCBkYW1vbl9zeXNmc19zY2hlbWVzX2FkZF9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19zY2hlbWVzICpzY2hlbWVzLFxuIFx0XHRcdGdvdG8gb3V0O1xuIFx0XHRlcnIgPSBkYW1vbl9zeXNmc19zY2hlbWVfYWRkX2RpcnMoc2NoZW1lKTtcbiBcdFx0aWYgKGVycilcbi1cdFx0XHRnb3RvIG91dDtcbitcdFx0XHRnb3RvIGRlbF9vdXQ7XG4gXG4gXHRcdHNjaGVtZXNfYXJyW2ldID0gc2NoZW1lO1xuIFx0XHRzY2hlbWVzLVx1MDAzZW5yKys7XG4gXHR9XG4gXHRyZXR1cm4gMDtcbiBcbitkZWxfb3V0OlxuK1x0a29iamVjdF9kZWwoXHUwMDI2c2NoZW1lLVx1MDAzZWtvYmopO1xuIG91dDpcbiBcdGRhbW9uX3N5c2ZzX3NjaGVtZXNfcm1fZGlycyhzY2hlbWVzKTtcbiBcdGtvYmplY3RfcHV0KFx1MDAyNnNjaGVtZS1cdTAwM2Vrb2JqKTtcbkBAIC0zMTI3LDEyICszMTM3LDE0IEBAIHZvaWQgZGFtb3Nfc3lzZnNfcG9wdWxhdGVfcmVnaW9uX2RpcihzdHJ1Y3QgZGFtb25fc3lzZnNfc2NoZW1lcyAqc3lzZnNfc2NoZW1lcyxcbiBcdFx0XHRcdHN5c2ZzX3JlZ2lvbnMtXHUwMDNlbnJfcmVnaW9ucykpXG4gXHRcdGdvdG8gb3V0O1xuIFx0aWYgKGRhbW9zX3N5c2ZzX3JlZ2lvbl9hZGRfZGlycyhyZWdpb24sIGN0eCwgcikpXG4tXHRcdGdvdG8gb3V0O1xuK1x0XHRnb3RvIGRlbF9vdXQ7XG4gXG4gXHRsaXN0X2FkZF90YWlsKFx1MDAyNnJlZ2lvbi1cdTAwM2VsaXN0LCBcdTAwMjZzeXNmc19yZWdpb25zLVx1MDAzZXJlZ2lvbnNfbGlzdCk7XG4gXHRzeXNmc19yZWdpb25zLVx1MDAzZW5yX3JlZ2lvbnMrKztcbiBcdHJldHVybjtcbiBcbitkZWxfb3V0OlxuK1x0a29iamVjdF9kZWwoXHUwMDI2cmVnaW9uLVx1MDAzZWtvYmopO1xuIG91dDpcbiBcdGtvYmplY3RfcHV0KFx1MDAyNnJlZ2lvbi1cdTAwM2Vrb2JqKTtcbiB9XG5kaWZmIC0tZ2l0IGEvbW0vZGFtb24vc3lzZnMuYyBiL21tL2RhbW9uL3N5c2ZzLmNcbmluZGV4IDJlOTVlM2JhYzc3NGRjLi5mZmJjOTk0MTFmNTNiMyAxMDA2NDRcbi0tLSBhL21tL2RhbW9uL3N5c2ZzLmNcbisrKyBiL21tL2RhbW9uL3N5c2ZzLmNcbkBAIC0xMDcsOCArMTA3LDEwIEBAIHN0YXRpYyB2b2lkIGRhbW9uX3N5c2ZzX3JlZ2lvbnNfcm1fZGlycyhzdHJ1Y3QgZGFtb25fc3lzZnNfcmVnaW9ucyAqcmVnaW9ucylcbiBcdHN0cnVjdCBkYW1vbl9zeXNmc19yZWdpb24gKipyZWdpb25zX2FyciA9IHJlZ2lvbnMtXHUwMDNlcmVnaW9uc19hcnI7XG4gXHRpbnQgaTtcbiBcbi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIHJlZ2lvbnMtXHUwMDNlbnI7IGkrKylcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIHJlZ2lvbnMtXHUwMDNlbnI7IGkrKykge1xuK1x0XHRrb2JqZWN0X2RlbChcdTAwMjZyZWdpb25zX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2cmVnaW9uc19hcnJbaV0tXHUwMDNla29iaik7XG4rXHR9XG4gXHRyZWdpb25zLVx1MDAzZW5yID0gMDtcbiBcdGtmcmVlKHJlZ2lvbnNfYXJyKTtcbiBcdHJlZ2lvbnMtXHUwMDNlcmVnaW9uc19hcnIgPSBOVUxMO1xuQEAgLTMzMyw2ICszMzUsNyBAQCBzdGF0aWMgdm9pZCBkYW1vbl9zeXNmc190YXJnZXRzX3JtX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX3RhcmdldHMgKnRhcmdldHMpXG4gXG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyB0YXJnZXRzLVx1MDAzZW5yOyBpKyspIHtcbiBcdFx0ZGFtb25fc3lzZnNfdGFyZ2V0X3JtX2RpcnModGFyZ2V0c19hcnJbaV0pO1xuK1x0XHRrb2JqZWN0X2RlbChcdTAwMjZ0YXJnZXRzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2dGFyZ2V0c19hcnJbaV0tXHUwMDNla29iaik7XG4gXHR9XG4gXHR0YXJnZXRzLVx1MDAzZW5yID0gMDtcbkBAIC0zNzEsMTMgKzM3NCwxNSBAQCBzdGF0aWMgaW50IGRhbW9uX3N5c2ZzX3RhcmdldHNfYWRkX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX3RhcmdldHMgKnRhcmdldHMsXG4gXG4gXHRcdGVyciA9IGRhbW9uX3N5c2ZzX3RhcmdldF9hZGRfZGlycyh0YXJnZXQpO1xuIFx0XHRpZiAoZXJyKVxuLVx0XHRcdGdvdG8gb3V0O1xuK1x0XHRcdGdvdG8gZGVsX291dDtcbiBcbiBcdFx0dGFyZ2V0c19hcnJbaV0gPSB0YXJnZXQ7XG4gXHRcdHRhcmdldHMtXHUwMDNlbnIrKztcbiBcdH1cbiBcdHJldHVybiAwO1xuIFxuK2RlbF9vdXQ6XG4rXHRrb2JqZWN0X2RlbChcdTAwMjZ0YXJnZXQtXHUwMDNla29iaik7XG4gb3V0OlxuIFx0ZGFtb25fc3lzZnNfdGFyZ2V0c19ybV9kaXJzKHRhcmdldHMpO1xuIFx0a29iamVjdF9wdXQoXHUwMDI2dGFyZ2V0LVx1MDAzZWtvYmopO1xuQEAgLTk1Nyw4ICs5NjIsMTAgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfZmlsdGVyc19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19maWx0ZXJzICpmaWx0ZXJzKVxuIFx0c3RydWN0IGRhbW9uX3N5c2ZzX2ZpbHRlciAqKmZpbHRlcnNfYXJyID0gZmlsdGVycy1cdTAwM2VmaWx0ZXJzX2FycjtcbiBcdGludCBpO1xuIFxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgZmlsdGVycy1cdTAwM2VucjsgaSsrKVxuK1x0Zm9yIChpID0gMDsgaSBcdTAwM2MgZmlsdGVycy1cdTAwM2VucjsgaSsrKSB7XG4rXHRcdGtvYmplY3RfZGVsKFx1MDAyNmZpbHRlcnNfYXJyW2ldLVx1MDAzZWtvYmopO1xuIFx0XHRrb2JqZWN0X3B1dChcdTAwMjZmaWx0ZXJzX2FycltpXS1cdTAwM2Vrb2JqKTtcbitcdH1cbiBcdGZpbHRlcnMtXHUwMDNlbnIgPSAwO1xuIFx0a2ZyZWUoZmlsdGVyc19hcnIpO1xuIFx0ZmlsdGVycy1cdTAwM2VmaWx0ZXJzX2FyciA9IE5VTEw7XG5AQCAtMTEzNCw2ICsxMTQxLDcgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfcHJvYmVzX3JtX2RpcnMoXG4gXG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBwcm9iZXMtXHUwMDNlbnI7IGkrKykge1xuIFx0XHRkYW1vbl9zeXNmc19wcm9iZV9ybV9kaXJzKHByb2Jlc19hcnJbaV0pO1xuK1x0XHRrb2JqZWN0X2RlbChcdTAwMjZwcm9iZXNfYXJyW2ldLVx1MDAzZWtvYmopO1xuIFx0XHRrb2JqZWN0X3B1dChcdTAwMjZwcm9iZXNfYXJyW2ldLVx1MDAzZWtvYmopO1xuIFx0fVxuIFx0cHJvYmVzLVx1MDAzZW5yID0gMDtcbkBAIC0xMTc1LDYgKzExODMsNyBAQCBzdGF0aWMgaW50IGRhbW9uX3N5c2ZzX3Byb2Jlc19hZGRfZGlycyhcbiBcbiBcdFx0ZXJyID0gZGFtb25fc3lzZnNfcHJvYmVfYWRkX2RpcnMocHJvYmUpO1xuIFx0XHRpZiAoZXJyKSB7XG4rXHRcdFx0a29iamVjdF9kZWwoXHUwMDI2cHJvYmUtXHUwMDNla29iaik7XG4gXHRcdFx0a29iamVjdF9wdXQoXHUwMDI2cHJvYmUtXHUwMDNla29iaik7XG4gXHRcdFx0ZGFtb25fc3lzZnNfcHJvYmVzX3JtX2RpcnMocHJvYmVzKTtcbiBcdFx0XHRyZXR1cm4gZXJyO1xuQEAgLTE2NDIsNiArMTY1MSw3IEBAIHN0YXRpYyB2b2lkIGRhbW9uX3N5c2ZzX2NvbnRleHRzX3JtX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX2NvbnRleHRzICpjb250ZXh0cylcbiBcbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIGNvbnRleHRzLVx1MDAzZW5yOyBpKyspIHtcbiBcdFx0ZGFtb25fc3lzZnNfY29udGV4dF9ybV9kaXJzKGNvbnRleHRzX2FycltpXSk7XG4rXHRcdGtvYmplY3RfZGVsKFx1MDAyNmNvbnRleHRzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2Y29udGV4dHNfYXJyW2ldLVx1MDAzZWtvYmopO1xuIFx0fVxuIFx0Y29udGV4dHMtXHUwMDNlbnIgPSAwO1xuQEAgLTE2ODAsMTMgKzE2OTAsMTUgQEAgc3RhdGljIGludCBkYW1vbl9zeXNmc19jb250ZXh0c19hZGRfZGlycyhzdHJ1Y3QgZGFtb25fc3lzZnNfY29udGV4dHMgKmNvbnRleHRzLFxuIFxuIFx0XHRlcnIgPSBkYW1vbl9zeXNmc19jb250ZXh0X2FkZF9kaXJzKGNvbnRleHQpO1xuIFx0XHRpZiAoZXJyKVxuLVx0XHRcdGdvdG8gb3V0O1xuK1x0XHRcdGdvdG8gZGVsX291dDtcbiBcbiBcdFx0Y29udGV4dHNfYXJyW2ldID0gY29udGV4dDtcbiBcdFx0Y29udGV4dHMtXHUwMDNlbnIrKztcbiBcdH1cbiBcdHJldHVybiAwO1xuIFxuK2RlbF9vdXQ6XG4rXHRrb2JqZWN0X2RlbChcdTAwMjZjb250ZXh0LVx1MDAzZWtvYmopO1xuIG91dDpcbiBcdGRhbW9uX3N5c2ZzX2NvbnRleHRzX3JtX2RpcnMoY29udGV4dHMpO1xuIFx0a29iamVjdF9wdXQoXHUwMDI2Y29udGV4dC1cdTAwM2Vrb2JqKTtcbkBAIC0yNTAxLDYgKzI1MTMsNyBAQCBzdGF0aWMgdm9pZCBkYW1vbl9zeXNmc19rZGFtb25kc19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19rZGFtb25kcyAqa2RhbW9uZHMpXG4gXG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBrZGFtb25kcy1cdTAwM2VucjsgaSsrKSB7XG4gXHRcdGRhbW9uX3N5c2ZzX2tkYW1vbmRfcm1fZGlycyhrZGFtb25kc19hcnJbaV0pO1xuK1x0XHRrb2JqZWN0X2RlbChcdTAwMjZrZGFtb25kc19hcnJbaV0tXHUwMDNla29iaik7XG4gXHRcdGtvYmplY3RfcHV0KFx1MDAyNmtkYW1vbmRzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdH1cbiBcdGtkYW1vbmRzLVx1MDAzZW5yID0gMDtcbkBAIC0yNTU1LDEzICsyNTY4LDE1IEBAIHN0YXRpYyBpbnQgZGFtb25fc3lzZnNfa2RhbW9uZHNfYWRkX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX2tkYW1vbmRzICprZGFtb25kcyxcbiBcbiBcdFx0ZXJyID0gZGFtb25fc3lzZnNfa2RhbW9uZF9hZGRfZGlycyhrZGFtb25kKTtcbiBcdFx0aWYgKGVycilcbi1cdFx0XHRnb3RvIG91dDtcbitcdFx0XHRnb3RvIGRlbF9vdXQ7XG4gXG4gXHRcdGtkYW1vbmRzX2FycltpXSA9IGtkYW1vbmQ7XG4gXHRcdGtkYW1vbmRzLVx1MDAzZW5yKys7XG4gXHR9XG4gXHRyZXR1cm4gMDtcbiBcbitkZWxfb3V0OlxuK1x0a29iamVjdF9kZWwoXHUwMDI2a2RhbW9uZC1cdTAwM2Vrb2JqKTtcbiBvdXQ6XG4gXHRkYW1vbl9zeXNmc19rZGFtb25kc19ybV9kaXJzKGtkYW1vbmRzKTtcbiBcdGtvYmplY3RfcHV0KFx1MDAyNmtkYW1vbmQtXHUwMDNla29iaik7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQyMjoyMTowNy4xNzI5MjgwNzhaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MjQxMjI2MDQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkRBTU9OIFN5c2ZzIFBhdGNoIFJldmlldyoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2ggaGVyZSB0aGF0J3MgdG91Y2hpbmcgYG1tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuY2AgYW5kIGBtbS9kYW1vbi9zeXNmcy5jYC4gTG9va3MgbGlrZSBpdCdzIGFkZHJlc3NpbmcgYSBwcmV0dHkgbmFzdHkgYnVnLCB3aGVyZSB3ZSdyZSBtaXNzaW5nIGBrb2JqZWN0X2RlbCgpYCBjYWxscyBiZWZvcmUgYGtvYmplY3RfcHV0KClgIGluIHRoZSBgcm1fZGlyc2AgZnVuY3Rpb25zIGFuZCBlcnJvciBwYXRocyBpbiB0aGUgYGFkZF9kaXJzYCBmdW5jdGlvbnMuIFNlZW1zIGxpa2UgdGhpcyBpcyBhIHJlY2lwZSBmb3Igc3lzZnMgZGlyZWN0b3J5IGxlYWtzIG9yLCBldmVuIHdvcnNlLCB1c2UtYWZ0ZXItZnJlZSBvciBkb3VibGUtZnJlZSBzY2VuYXJpb3MuIE5vdCBnb29kIVxuXG5Ob3csIHRoZSBxdWVzdGlvbiBpcywgaXMgdGhpcyBzb21ldGhpbmcgd2Ugc2hvdWxkIGJlIGZ1enppbmc/IExldCdzIHNlZS4uLiBpdCdzIG1vZGlmeWluZyBmaWxlcyByZWxhdGVkIHRvIERBTU9OLCB3aGljaCBpcyBhIGtlcm5lbCBzdWJzeXN0ZW0uIEFuZCBpdCBkZWFscyB3aXRoIHN5c2ZzIGludGVyZmFjZXMuIFJpZ2h0LCBzeXNmcy4uLiBzeXprYWxsZXIgY2FuIGRlZmluaXRlbHkgZ2V0IGF0IHRob3NlIHdpdGggYHN5el9tb3VudF9pbWFnZWAgb3IganVzdCBieSBoaXR0aW5nIHRoZW0gZGlyZWN0bHkuIEhvbGQgb24gYSBzZWNvbmQsIGRvZXNuJ3Qgc3l6a2FsbGVyICphbHJlYWR5KiBmdXp6IHN5c2ZzPyBZZXMsIGl0IGRvZXMuIFNvIHRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBmaXhpbmcgYSByZWFsIGJ1ZyByZWxhdGVkIHRvIGBrb2JqZWN0YCBoYW5kbGluZy4gSXQncyBhIHByaW1lIHRhcmdldCBmb3IgZnV6emluZyBiZWNhdXNlIGl0J3MgZml4aW5nIGEgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdHkuXG5cbk5vdywgbGV0J3Mgc2VlIHdoYXQgY29uZmlnIG9wdGlvbnMgd2UgbmVlZCB0byBhY3R1YWxseSBlbmFibGUgREFNT04gc3lzZnMgc28gd2UgY2FuIGdldCB0aGlzIHRoaW5nIGZ1enplZCBwcm9wZXJseS4gVGltZSB0byBkaWcgaW50byB0aGUgY29uZmlnLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDk4LCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMjI6MjE6MTIuNDE0MTU1NjlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjI1Njg5NDAzMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgREFNT05fU1lTRlNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibW0vZGFtb24vS2NvbmZpZz01Nj1jb25maWcgREFNT05fVkFERFJfS1VOSVRfVEVTVFxcbi0tXFxubW0vZGFtb24vS2NvbmZpZy02Ny1cXG5tbS9kYW1vbi9LY29uZmlnOjY4OmNvbmZpZyBEQU1PTl9TWVNGU1xcbm1tL2RhbW9uL0tjb25maWctNjktXFx0Ym9vbCBcXFwiREFNT04gc3lzZnMgaW50ZXJmYWNlXFxcIlxcbi0tXFxubW0vZGFtb24vS2NvbmZpZy03NS1cXG5tbS9kYW1vbi9LY29uZmlnOjc2OmNvbmZpZyBEQU1PTl9TWVNGU19LVU5JVF9URVNUXFxubW0vZGFtb24vS2NvbmZpZy03Ny1cXHRib29sIFxcXCJUZXN0IGZvciBkYW1vbiBzeXNmcyBpbnRlcmZhY2VcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMjI6MjE6MTQuNjcxMDU1MjcyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA4NDg4NjQxMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKk5hdmlnYXRpbmcgdGhlIERBTU9OIENvbmZpZ3VyYXRpb24gTGFuZHNjYXBlKipcblxuUmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgYERBTU9OX1NZU0ZTYCBpcyBjb25maWd1cmVkIHdpdGhpbiB0aGlzIHByb2plY3QuIE15IGZpcnN0IGluc3RpbmN0LCBhbmQgdGhlIG1vc3QgbG9naWNhbCBwbGFjZSB0byBzdGFydCwgaXMgdGhlIGBLY29uZmlnYCBmaWxlLiBTcGVjaWZpY2FsbHksIEknbSBnb2luZyB0byBsb29rIGF0IGBtbS9kYW1vbi9LY29uZmlnYC4gSXQncyBhbG1vc3QgY2VydGFpbiB0aGF0IHRoZSBgREFNT05fU1lTRlNgIG9wdGlvbiwgaWYgcHJlc2VudCwgd2lsbCBiZSBkZWZpbmVkIG9yIGF0IGxlYXN0IHJlZmVyZW5jZWQgdGhlcmUuIFRoYXQncyB0aGUgY29yZSBjb25maWd1cmF0aW9uIGZpbGUgZm9yIG1lbW9yeSBtYW5hZ2VtZW50IGFuZCBEQU1PTiBpcywgYWZ0ZXIgYWxsLCBhIG1lbW9yeSBtb25pdG9yaW5nIGFuZCBvcHRpbWl6YXRpb24gdG9vbC4gSSBleHBlY3QgdG8gZmluZCBkZXBlbmRlbmNpZXMsIGRlZmF1bHQgdmFsdWVzLCBhbmQgbWF5YmUgZXZlbiBzb21lIGhlbHAgdGV4dCBleHBsYWluaW5nIHRoZSBpbXBsaWNhdGlvbnMgb2YgZW5hYmxpbmcgb3IgZGlzYWJsaW5nIHRoaXMgZmVhdHVyZS4gTXkgZ29hbCBpcyB0byBnZXQgYSBxdWljayBvdmVydmlldyBvZiBob3cgdGhpcyBzcGVjaWZpYyBzeXNmcyBpbnRlcmZhY2UgaXMgY29udHJvbGxlZC4gRnJvbSB0aGVyZSwgSSBjYW4gc3RhcnQgdG8gdW5kZXJzdGFuZCBpdHMgaW1wYWN0IG9uIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyNDMsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQyMjoyMToxNy43NTU5NDMzNzNaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjY1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJtbS9kYW1vbi9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDYwLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDYwOlxcdFxcdGhlbHBcXG4gIDYxOlxcdFxcdCAgVGhpcyBidWlsZHMgdGhlIERBTU9OIHZpcnR1YWwgYWRkcmVzc2VzIG9wZXJhdGlvbnMgS3VuaXQgdGVzdCBzdWl0ZS5cXG4gIDYyOlxcdFxcbiAgNjM6XFx0XFx0ICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBLVW5pdCBhbmQgdW5pdCB0ZXN0cyBpbiBnZW5lcmFsLCBwbGVhc2UgcmVmZXJcXG4gIDY0OlxcdFxcdCAgdG8gdGhlIEtVbml0IGRvY3VtZW50YXRpb24uXFxuICA2NTpcXHRcXG4gIDY2OlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgTi5cXG4gIDY3OlxcdFxcbiAgNjg6XFx0Y29uZmlnIERBTU9OX1NZU0ZTXFxuICA2OTpcXHRcXHRib29sIFxcXCJEQU1PTiBzeXNmcyBpbnRlcmZhY2VcXFwiXFxuICA3MDpcXHRcXHRkZXBlbmRzIG9uIERBTU9OIFxcdTAwMjZcXHUwMDI2IFNZU0ZTXFxuICA3MTpcXHRcXHRkZWZhdWx0IERBTU9OXFxuICA3MjpcXHRcXHRoZWxwXFxuICA3MzpcXHRcXHQgIFRoaXMgYnVpbGRzIHRoZSBzeXNmcyBpbnRlcmZhY2UgZm9yIERBTU9OLiAgVGhlIHVzZXIgc3BhY2UgY2FuIHVzZVxcbiAgNzQ6XFx0XFx0ICB0aGUgaW50ZXJmYWNlIGZvciBhcmJpdHJhcnkgZGF0YSBhY2Nlc3MgbW9uaXRvcmluZy5cXG4gIDc1OlxcdFxcbiAgNzY6XFx0Y29uZmlnIERBTU9OX1NZU0ZTX0tVTklUX1RFU1RcXG4gIDc3OlxcdFxcdGJvb2wgXFxcIlRlc3QgZm9yIGRhbW9uIHN5c2ZzIGludGVyZmFjZVxcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcbiAgNzg6XFx0XFx0ZGVwZW5kcyBvbiBEQU1PTl9TWVNGUyBcXHUwMDI2XFx1MDAyNiBLVU5JVD15XFxuICA3OTpcXHRcXHRkZWZhdWx0IEtVTklUX0FMTF9URVNUU1xcbiAgODA6XFx0XFx0aGVscFxcbiAgODE6XFx0XFx0ICBUaGlzIGJ1aWxkcyB0aGUgREFNT04gc3lzZnMgaW50ZXJmYWNlIEt1bml0IHRlc3Qgc3VpdGUuXFxuICA4MjpcXHRcXG4gIDgzOlxcdFxcdCAgRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gS1VuaXQgYW5kIHVuaXQgdGVzdHMgaW4gZ2VuZXJhbCwgcGxlYXNlIHJlZmVyXFxuICA4NDpcXHRcXHQgIHRvIHRoZSBLVW5pdCBkb2N1bWVudGF0aW9uLlxcbiAgODU6XFx0XFxuICA4NjpcXHRcXHQgIElmIHVuc3VyZSwgc2F5IE4uXFxuICA4NzpcXHRcXG4gIDg4OlxcdGNvbmZpZyBEQU1PTl9SRUNMQUlNXFxuICA4OTpcXHRcXHRib29sIFxcXCJCdWlsZCBEQU1PTi1iYXNlZCByZWNsYWltIChEQU1PTl9SRUNMQUlNKVxcXCJcXG4gIDkwOlxcdFxcdGRlcGVuZHMgb24gREFNT05fUEFERFJcXG4gIDkxOlxcdFxcdGhlbHBcXG4gIDkyOlxcdFxcdCAgVGhpcyBidWlsZHMgdGhlIERBTU9OLWJhc2VkIHJlY2xhbWF0aW9uIHN1YnN5c3RlbS4gIEl0IGZpbmRzIHBhZ2VzXFxuICA5MzpcXHRcXHQgIHRoYXQgbm90IGFjY2Vzc2VkIGZvciBhIGxvbmcgdGltZSAoY29sZCkgdXNpbmcgREFNT04gYW5kIHJlY2xhaW1cXG4gIDk0OlxcdFxcdCAgdGhvc2UuXFxuICA5NTpcXHRcXG4gIDk2OlxcdFxcdCAgVGhpcyBpcyBzdWdnZXN0ZWQgdG8gYmUgdXNlZCBhcyBhIHByb2FjdGl2ZSBhbmQgbGlnaHR3ZWlnaHRcXG4gIDk3OlxcdFxcdCAgcmVjbGFtYXRpb24gdW5kZXIgbGlnaHQgbWVtb3J5IHByZXNzdXJlLCB3aGlsZSB0aGUgdHJhZGl0aW9uYWwgcGFnZVxcbiAgOTg6XFx0XFx0ICBzY2FubmluZy1iYXNlZCByZWNsYW1hdGlvbiBpcyB1c2VkIGZvciBoZWF2eSBwcmVzc3VyZS5cXG4gIDk5OlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQyMjoyMToxNy43NTYwMDE1OTNaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NDgyNDM1NjI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgREFNT04gU3lzZnMgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgYERBTU9OX1NZU0ZTYCBpcyB0aGUga2V5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGhlcmUuIEl0J3MgY2xlYXJseSBkZXBlbmRlbnQgb24gYERBTU9OYCBhbmQgYFNZU0ZTYCwgd2hpY2ggbWFrZXMgc2Vuc2UuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBzY29wZSBvZiB0aGlzIGNoYW5nZSwgc28gSSdtIHNjYW5uaW5nIHRoZSBtb2RpZmllZCBmdW5jdGlvbnMgdG8gdW5kZXJzdGFuZCB3aGF0J3MgYmVpbmcgdG91Y2hlZC5cblxuVGhlIHBhdGNoIHNlZW1zIGhlYXZpbHkgZm9jdXNlZCBvbiBzeXNmcyBkaXJlY3RvcnkgbWFuaXB1bGF0aW9uIHdpdGhpbiB0aGUgREFNT04gc3Vic3lzdGVtLiBJIHNlZSBzZXZlcmFsIGZ1bmN0aW9ucyB3aXRoIFwicm1fZGlyc1wiIGFuZCBcImFkZF9kaXJzXCIgaW4gdGhlaXIgbmFtZXMuIEkndmUgZ290OlxuXG4qICAgYGRhbW9uX3N5c2ZzX3NjaGVtZV9yZWdpb25zX3JtX2RpcnNgXG4qICAgYGRhbW9uX3N5c2ZzX3NjaGVtZV9maWx0ZXJzX3JtX2RpcnNgXG4qICAgYGRhbW9zX3N5c2ZzX3F1b3RhX2dvYWxzX3JtX2RpcnNgXG4qICAgYGRhbW9zX3N5c2ZzX2Rlc3RzX3JtX2RpcnNgXG4qICAgYGRhbW9uX3N5c2ZzX3NjaGVtZXNfcm1fZGlyc2BcbiogICBgZGFtb25fc3lzZnNfc2NoZW1lc19hZGRfZGlyc2BcbiogICBgZGFtb3Nfc3lzZnNfcG9wdWxhdGVfcmVnaW9uX2RpcmBcbiogICBgZGFtb25fc3lzZnNfcmVnaW9uc19ybV9kaXJzYFxuKiAgIGBkYW1vbl9zeXNmc190YXJnZXRzX3JtX2RpcnNgXG4qICAgYGRhbW9uX3N5c2ZzX3RhcmdldHNfYWRkX2RpcnNgXG4qICAgYGRhbW9uX3N5c2ZzX2ZpbHRlcnNfcm1fZGlyc2BcbiogICBgZGFtb25fc3lzZnNfcHJvYmVzX3JtX2RpcnNgXG4qICAgYGRhbW9uX3N5c2ZzX3Byb2Jlc19hZGRfZGlyc2BcbiogICBgZGFtb25fc3lzZnNfY29udGV4dHNfcm1fZGlyc2BcbiogICBgZGFtb25fc3lzZnNfY29udGV4dHNfYWRkX2RpcnNgXG4qICAgYGRhbW9uX3N5c2ZzX2tkYW1vbmRzX3JtX2RpcnNgXG4qICAgYGRhbW9uX3N5c2ZzX2tkYW1vbmRzX2FkZF9kaXJzYFxuXG5JdCBsb29rcyBsaWtlIHRoZSBwYXRjaCBpcyBhZGRpbmcgYW5kIHJlbW92aW5nIHN5c2ZzIGRpcmVjdG9yaWVzIHJlbGF0ZWQgdG8gc2NoZW1lcywgdGFyZ2V0cywgY29udGV4dHMsIGFuZCBrZGFtb25kcy4gSSBjYW4gcHJvYmFibHkgbmFycm93IGRvd24gbXkgYW5hbHlzaXMgYnkgZm9jdXNpbmcgb24gYSBzZWxlY3QgZmV3LCBzcGVjaWZpY2FsbHkgdGhlIGFkZC9yZW1vdmUgcGFpcnMgZm9yIHNjaGVtZXMsIHRhcmdldHMsIGNvbnRleHRzLCBhbmQga2RhbW9uZHMuXG5cblRvIGNvbmZpcm0gbXkgdW5kZXJzdGFuZGluZywgSSdtIGNoZWNraW5nIHRoYXQgYERBTU9OX1NZU0ZTYCBpcyBpbmRlZWQgdGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBpdGVtIGhlcmUuIEFuZCB5ZXMsIGl0IGlzLiBUaGF0IGNvbmZpcm1zIHRoZSBzY29wZSBvZiB0aGlzIHBhdGNoLlxuXG5JJ20gcmVhZHkgdG8gY2FsbCBzZXQtcmVzdWx0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjA1NywiT3V0cHV0VG9rZW5zIjoxOTYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0ODcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQyMjoyMToyNS4yMzg0MzkwMTdaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxMzk4OTYyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJEQU1PTl9TWVNGU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImRhbW9uX3N5c2ZzX3NjaGVtZXNfYWRkX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX3NjaGVtZXNfcm1fZGlyc1wiLFxuICAgIFwiZGFtb25fc3lzZnNfdGFyZ2V0c19hZGRfZGlyc1wiLFxuICAgIFwiZGFtb25fc3lzZnNfdGFyZ2V0c19ybV9kaXJzXCIsXG4gICAgXCJkYW1vbl9zeXNmc19jb250ZXh0c19hZGRfZGlyc1wiLFxuICAgIFwiZGFtb25fc3lzZnNfY29udGV4dHNfcm1fZGlyc1wiLFxuICAgIFwiZGFtb25fc3lzZnNfa2RhbW9uZHNfYWRkX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX2tkYW1vbmRzX3JtX2RpcnNcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBrb2JqZWN0IGxlYWtzIGFuZCBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgaXNzdWVzIGluIERBTU9OIHN5c2ZzIGRpcmVjdG9yeSBtYW5hZ2VtZW50IGJ5IGFkZGluZyBtaXNzaW5nIGtvYmplY3RfZGVsKCkgY2FsbHMuIFRoaXMgaXMgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlIHZpYSBzeXNmcyBpbnRlcmFjdGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiREFNT05fU1lTRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkYW1vbl9zeXNmc19zY2hlbWVzX2FkZF9kaXJzXCIsXG4gICAgXCJkYW1vbl9zeXNmc19zY2hlbWVzX3JtX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX3RhcmdldHNfYWRkX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX3RhcmdldHNfcm1fZGlyc1wiLFxuICAgIFwiZGFtb25fc3lzZnNfY29udGV4dHNfYWRkX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX2NvbnRleHRzX3JtX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX2tkYW1vbmRzX2FkZF9kaXJzXCIsXG4gICAgXCJkYW1vbl9zeXNmc19rZGFtb25kc19ybV9kaXJzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMga29iamVjdCBsZWFrcyBhbmQgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIGlzc3VlcyBpbiBEQU1PTiBzeXNmcyBkaXJlY3RvcnkgbWFuYWdlbWVudCBieSBhZGRpbmcgbWlzc2luZyBrb2JqZWN0X2RlbCgpIGNhbGxzLiBUaGlzIGlzIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZSB2aWEgc3lzZnMgaW50ZXJhY3Rpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow5mcrf[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-28 22:15:11 +0000 UTC FinishedAt: 2026-06-28 22:21:27 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "840ef6c78e6a2f694b578ecb9063241c992aaa9e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DAMON_SYSFS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "840ef6c78e6a2f694b578ecb9063241c992aaa9e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DAMON_SYSFS" ], "series_id": "f3b2b46b-1a8d-496e-9779-ebb7fc5dd739" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "damon_sysfs_schemes_add_dirs", "damon_sysfs_schemes_rm_dirs", "damon_sysfs_targets_add_dirs", "damon_sysfs_targets_rm_dirs", "damon_sysfs_contexts_add_dirs", "damon_sysfs_contexts_rm_dirs", "damon_sysfs_kdamonds_add_dirs", "damon_sysfs_kdamonds_rm_dirs" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": true, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDIyOjIxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RBTU9OX1NZU0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZGFtb25fc3lzZnNfc2NoZW1lc19hZGRfZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc19zY2hlbWVzX3JtX2RpcnMmIzM0OywKICAgICYjMzQ7ZGFtb25fc3lzZnNfdGFyZ2V0c19hZGRfZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc190YXJnZXRzX3JtX2RpcnMmIzM0OywKICAgICYjMzQ7ZGFtb25fc3lzZnNfY29udGV4dHNfYWRkX2RpcnMmIzM0OywKICAgICYjMzQ7ZGFtb25fc3lzZnNfY29udGV4dHNfcm1fZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc19rZGFtb25kc19hZGRfZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc19rZGFtb25kc19ybV9kaXJzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGtvYmplY3QgbGVha3MgYW5kIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBpc3N1ZXMgaW4gREFNT04gc3lzZnMgZGlyZWN0b3J5IG1hbmFnZW1lbnQgYnkgYWRkaW5nIG1pc3Npbmcga29iamVjdF9kZWwoKSBjYWxscy4gVGhpcyBpcyBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUgdmlhIHN5c2ZzIGludGVyYWN0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAyMjoyMTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGE0YWQwNzkwOWEyZTBmYzNiMWM0MDVlYzk1YzQxZDNmNzZhODNiNjlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEp1biAyOCAyMjoyMTowNSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9tbS9kYW1vbi9zeXNmcy1zY2hlbWVzLmMgYi9tbS9kYW1vbi9zeXNmcy1zY2hlbWVzLmNcbmluZGV4IDMyOWNmZDBiYmU5ZjMyLi4wYjhhNmYxZjZiOWZjNSAxMDA2NDRcbi0tLSBhL21tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbW0vZGFtb24vc3lzZnMtc2NoZW1lcy5jXG5AQCAtMzM0LDYgJiM0MzszMzQsNyBAQCBzdGF0aWMgdm9pZCBkYW1vbl9zeXNmc19zY2hlbWVfcmVnaW9uc19ybV9kaXJzKFxuIFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHIsIG5leHQsIFx1MDAyNnJlZ2lvbnMtXHUwMDNlcmVnaW9uc19saXN0LCBsaXN0KSB7XG4gXHRcdGRhbW9zX3N5c2ZzX3JlZ2lvbl9ybV9kaXJzKHIpO1xuIFx0XHRsaXN0X2RlbChcdTAwMjZyLVx1MDAzZWxpc3QpO1xuJiM0MztcdFx0a29iamVjdF9kZWwoXHUwMDI2ci1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2ci1cdTAwM2Vrb2JqKTtcbiBcdFx0cmVnaW9ucy1cdTAwM2Vucl9yZWdpb25zLS07XG4gXHR9XG5AQCAtOTEzLDggJiM0Mzs5MTQsMTAgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfc2NoZW1lX2ZpbHRlcnNfcm1fZGlycyhcbiBcdHN0cnVjdCBkYW1vbl9zeXNmc19zY2hlbWVfZmlsdGVyICoqZmlsdGVyc19hcnIgPSBmaWx0ZXJzLVx1MDAzZWZpbHRlcnNfYXJyO1xuIFx0aW50IGk7XG4gXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBmaWx0ZXJzLVx1MDAzZW5yOyBpJiM0MzsmIzQzOylcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBmaWx0ZXJzLVx1MDAzZW5yOyBpJiM0MzsmIzQzOykge1xuJiM0MztcdFx0a29iamVjdF9kZWwoXHUwMDI2ZmlsdGVyc19hcnJbaV0tXHUwMDNla29iaik7XG4gXHRcdGtvYmplY3RfcHV0KFx1MDAyNmZpbHRlcnNfYXJyW2ldLVx1MDAzZWtvYmopO1xuJiM0MztcdH1cbiBcdGZpbHRlcnMtXHUwMDNlbnIgPSAwO1xuIFx0a2ZyZWUoZmlsdGVyc19hcnIpO1xuIFx0ZmlsdGVycy1cdTAwM2VmaWx0ZXJzX2FyciA9IE5VTEw7XG5AQCAtMTQ2Miw4ICYjNDM7MTQ2NSwxMCBAQCBzdGF0aWMgdm9pZCBkYW1vc19zeXNmc19xdW90YV9nb2Fsc19ybV9kaXJzKFxuIFx0c3RydWN0IGRhbW9zX3N5c2ZzX3F1b3RhX2dvYWwgKipnb2Fsc19hcnIgPSBnb2Fscy1cdTAwM2Vnb2Fsc19hcnI7XG4gXHRpbnQgaTtcbiBcbi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGdvYWxzLVx1MDAzZW5yOyBpJiM0MzsmIzQzOylcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBnb2Fscy1cdTAwM2VucjsgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRcdGtvYmplY3RfZGVsKFx1MDAyNmdvYWxzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2Z29hbHNfYXJyW2ldLVx1MDAzZWtvYmopO1xuJiM0MztcdH1cbiBcdGdvYWxzLVx1MDAzZW5yID0gMDtcbiBcdGtmcmVlKGdvYWxzX2Fycik7XG4gXHRnb2Fscy1cdTAwM2Vnb2Fsc19hcnIgPSBOVUxMO1xuQEAgLTIxNDMsOCAmIzQzOzIxNDgsMTAgQEAgc3RhdGljIHZvaWQgZGFtb3Nfc3lzZnNfZGVzdHNfcm1fZGlycyhcbiBcdHN0cnVjdCBkYW1vc19zeXNmc19kZXN0ICoqZGVzdHNfYXJyID0gZGVzdHMtXHUwMDNlZGVzdHNfYXJyO1xuIFx0aW50IGk7XG4gXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBkZXN0cy1cdTAwM2VucjsgaSYjNDM7JiM0MzspXG4mIzQzO1x0Zm9yIChpID0gMDsgaSBcdTAwM2MgZGVzdHMtXHUwMDNlbnI7IGkmIzQzOyYjNDM7KSB7XG4mIzQzO1x0XHRrb2JqZWN0X2RlbChcdTAwMjZkZXN0c19hcnJbaV0tXHUwMDNla29iaik7XG4gXHRcdGtvYmplY3RfcHV0KFx1MDAyNmRlc3RzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiYjNDM7XHR9XG4gXHRkZXN0cy1cdTAwM2VuciA9IDA7XG4gXHRrZnJlZShkZXN0c19hcnIpO1xuIFx0ZGVzdHMtXHUwMDNlZGVzdHNfYXJyID0gTlVMTDtcbkBAIC0yNjg2LDYgJiM0MzsyNjkzLDcgQEAgdm9pZCBkYW1vbl9zeXNmc19zY2hlbWVzX3JtX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX3NjaGVtZXMgKnNjaGVtZXMpXG4gXG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBzY2hlbWVzLVx1MDAzZW5yOyBpJiM0MzsmIzQzOykge1xuIFx0XHRkYW1vbl9zeXNmc19zY2hlbWVfcm1fZGlycyhzY2hlbWVzX2FycltpXSk7XG4mIzQzO1x0XHRrb2JqZWN0X2RlbChcdTAwMjZzY2hlbWVzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2c2NoZW1lc19hcnJbaV0tXHUwMDNla29iaik7XG4gXHR9XG4gXHRzY2hlbWVzLVx1MDAzZW5yID0gMDtcbkBAIC0yNzI3LDEzICYjNDM7MjczNSwxNSBAQCBzdGF0aWMgaW50IGRhbW9uX3N5c2ZzX3NjaGVtZXNfYWRkX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX3NjaGVtZXMgKnNjaGVtZXMsXG4gXHRcdFx0Z290byBvdXQ7XG4gXHRcdGVyciA9IGRhbW9uX3N5c2ZzX3NjaGVtZV9hZGRfZGlycyhzY2hlbWUpO1xuIFx0XHRpZiAoZXJyKVxuLVx0XHRcdGdvdG8gb3V0O1xuJiM0MztcdFx0XHRnb3RvIGRlbF9vdXQ7XG4gXG4gXHRcdHNjaGVtZXNfYXJyW2ldID0gc2NoZW1lO1xuIFx0XHRzY2hlbWVzLVx1MDAzZW5yJiM0MzsmIzQzOztcbiBcdH1cbiBcdHJldHVybiAwO1xuIFxuJiM0MztkZWxfb3V0OlxuJiM0MztcdGtvYmplY3RfZGVsKFx1MDAyNnNjaGVtZS1cdTAwM2Vrb2JqKTtcbiBvdXQ6XG4gXHRkYW1vbl9zeXNmc19zY2hlbWVzX3JtX2RpcnMoc2NoZW1lcyk7XG4gXHRrb2JqZWN0X3B1dChcdTAwMjZzY2hlbWUtXHUwMDNla29iaik7XG5AQCAtMzEyNywxMiAmIzQzOzMxMzcsMTQgQEAgdm9pZCBkYW1vc19zeXNmc19wb3B1bGF0ZV9yZWdpb25fZGlyKHN0cnVjdCBkYW1vbl9zeXNmc19zY2hlbWVzICpzeXNmc19zY2hlbWVzLFxuIFx0XHRcdFx0c3lzZnNfcmVnaW9ucy1cdTAwM2Vucl9yZWdpb25zKSlcbiBcdFx0Z290byBvdXQ7XG4gXHRpZiAoZGFtb3Nfc3lzZnNfcmVnaW9uX2FkZF9kaXJzKHJlZ2lvbiwgY3R4LCByKSlcbi1cdFx0Z290byBvdXQ7XG4mIzQzO1x0XHRnb3RvIGRlbF9vdXQ7XG4gXG4gXHRsaXN0X2FkZF90YWlsKFx1MDAyNnJlZ2lvbi1cdTAwM2VsaXN0LCBcdTAwMjZzeXNmc19yZWdpb25zLVx1MDAzZXJlZ2lvbnNfbGlzdCk7XG4gXHRzeXNmc19yZWdpb25zLVx1MDAzZW5yX3JlZ2lvbnMmIzQzOyYjNDM7O1xuIFx0cmV0dXJuO1xuIFxuJiM0MztkZWxfb3V0OlxuJiM0MztcdGtvYmplY3RfZGVsKFx1MDAyNnJlZ2lvbi1cdTAwM2Vrb2JqKTtcbiBvdXQ6XG4gXHRrb2JqZWN0X3B1dChcdTAwMjZyZWdpb24tXHUwMDNla29iaik7XG4gfVxuZGlmZiAtLWdpdCBhL21tL2RhbW9uL3N5c2ZzLmMgYi9tbS9kYW1vbi9zeXNmcy5jXG5pbmRleCAyZTk1ZTNiYWM3NzRkYy4uZmZiYzk5NDExZjUzYjMgMTAwNjQ0XG4tLS0gYS9tbS9kYW1vbi9zeXNmcy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9tbS9kYW1vbi9zeXNmcy5jXG5AQCAtMTA3LDggJiM0MzsxMDcsMTAgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfcmVnaW9uc19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19yZWdpb25zICpyZWdpb25zKVxuIFx0c3RydWN0IGRhbW9uX3N5c2ZzX3JlZ2lvbiAqKnJlZ2lvbnNfYXJyID0gcmVnaW9ucy1cdTAwM2VyZWdpb25zX2FycjtcbiBcdGludCBpO1xuIFxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgcmVnaW9ucy1cdTAwM2VucjsgaSYjNDM7JiM0MzspXG4mIzQzO1x0Zm9yIChpID0gMDsgaSBcdTAwM2MgcmVnaW9ucy1cdTAwM2VucjsgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRcdGtvYmplY3RfZGVsKFx1MDAyNnJlZ2lvbnNfYXJyW2ldLVx1MDAzZWtvYmopO1xuIFx0XHRrb2JqZWN0X3B1dChcdTAwMjZyZWdpb25zX2FycltpXS1cdTAwM2Vrb2JqKTtcbiYjNDM7XHR9XG4gXHRyZWdpb25zLVx1MDAzZW5yID0gMDtcbiBcdGtmcmVlKHJlZ2lvbnNfYXJyKTtcbiBcdHJlZ2lvbnMtXHUwMDNlcmVnaW9uc19hcnIgPSBOVUxMO1xuQEAgLTMzMyw2ICYjNDM7MzM1LDcgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfdGFyZ2V0c19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc190YXJnZXRzICp0YXJnZXRzKVxuIFxuIFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgdGFyZ2V0cy1cdTAwM2VucjsgaSYjNDM7JiM0MzspIHtcbiBcdFx0ZGFtb25fc3lzZnNfdGFyZ2V0X3JtX2RpcnModGFyZ2V0c19hcnJbaV0pO1xuJiM0MztcdFx0a29iamVjdF9kZWwoXHUwMDI2dGFyZ2V0c19hcnJbaV0tXHUwMDNla29iaik7XG4gXHRcdGtvYmplY3RfcHV0KFx1MDAyNnRhcmdldHNfYXJyW2ldLVx1MDAzZWtvYmopO1xuIFx0fVxuIFx0dGFyZ2V0cy1cdTAwM2VuciA9IDA7XG5AQCAtMzcxLDEzICYjNDM7Mzc0LDE1IEBAIHN0YXRpYyBpbnQgZGFtb25fc3lzZnNfdGFyZ2V0c19hZGRfZGlycyhzdHJ1Y3QgZGFtb25fc3lzZnNfdGFyZ2V0cyAqdGFyZ2V0cyxcbiBcbiBcdFx0ZXJyID0gZGFtb25fc3lzZnNfdGFyZ2V0X2FkZF9kaXJzKHRhcmdldCk7XG4gXHRcdGlmIChlcnIpXG4tXHRcdFx0Z290byBvdXQ7XG4mIzQzO1x0XHRcdGdvdG8gZGVsX291dDtcbiBcbiBcdFx0dGFyZ2V0c19hcnJbaV0gPSB0YXJnZXQ7XG4gXHRcdHRhcmdldHMtXHUwMDNlbnImIzQzOyYjNDM7O1xuIFx0fVxuIFx0cmV0dXJuIDA7XG4gXG4mIzQzO2RlbF9vdXQ6XG4mIzQzO1x0a29iamVjdF9kZWwoXHUwMDI2dGFyZ2V0LVx1MDAzZWtvYmopO1xuIG91dDpcbiBcdGRhbW9uX3N5c2ZzX3RhcmdldHNfcm1fZGlycyh0YXJnZXRzKTtcbiBcdGtvYmplY3RfcHV0KFx1MDAyNnRhcmdldC1cdTAwM2Vrb2JqKTtcbkBAIC05NTcsOCAmIzQzOzk2MiwxMCBAQCBzdGF0aWMgdm9pZCBkYW1vbl9zeXNmc19maWx0ZXJzX3JtX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX2ZpbHRlcnMgKmZpbHRlcnMpXG4gXHRzdHJ1Y3QgZGFtb25fc3lzZnNfZmlsdGVyICoqZmlsdGVyc19hcnIgPSBmaWx0ZXJzLVx1MDAzZWZpbHRlcnNfYXJyO1xuIFx0aW50IGk7XG4gXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBmaWx0ZXJzLVx1MDAzZW5yOyBpJiM0MzsmIzQzOylcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBmaWx0ZXJzLVx1MDAzZW5yOyBpJiM0MzsmIzQzOykge1xuJiM0MztcdFx0a29iamVjdF9kZWwoXHUwMDI2ZmlsdGVyc19hcnJbaV0tXHUwMDNla29iaik7XG4gXHRcdGtvYmplY3RfcHV0KFx1MDAyNmZpbHRlcnNfYXJyW2ldLVx1MDAzZWtvYmopO1xuJiM0MztcdH1cbiBcdGZpbHRlcnMtXHUwMDNlbnIgPSAwO1xuIFx0a2ZyZWUoZmlsdGVyc19hcnIpO1xuIFx0ZmlsdGVycy1cdTAwM2VmaWx0ZXJzX2FyciA9IE5VTEw7XG5AQCAtMTEzNCw2ICYjNDM7MTE0MSw3IEBAIHN0YXRpYyB2b2lkIGRhbW9uX3N5c2ZzX3Byb2Jlc19ybV9kaXJzKFxuIFxuIFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgcHJvYmVzLVx1MDAzZW5yOyBpJiM0MzsmIzQzOykge1xuIFx0XHRkYW1vbl9zeXNmc19wcm9iZV9ybV9kaXJzKHByb2Jlc19hcnJbaV0pO1xuJiM0MztcdFx0a29iamVjdF9kZWwoXHUwMDI2cHJvYmVzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2cHJvYmVzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdH1cbiBcdHByb2Jlcy1cdTAwM2VuciA9IDA7XG5AQCAtMTE3NSw2ICYjNDM7MTE4Myw3IEBAIHN0YXRpYyBpbnQgZGFtb25fc3lzZnNfcHJvYmVzX2FkZF9kaXJzKFxuIFxuIFx0XHRlcnIgPSBkYW1vbl9zeXNmc19wcm9iZV9hZGRfZGlycyhwcm9iZSk7XG4gXHRcdGlmIChlcnIpIHtcbiYjNDM7XHRcdFx0a29iamVjdF9kZWwoXHUwMDI2cHJvYmUtXHUwMDNla29iaik7XG4gXHRcdFx0a29iamVjdF9wdXQoXHUwMDI2cHJvYmUtXHUwMDNla29iaik7XG4gXHRcdFx0ZGFtb25fc3lzZnNfcHJvYmVzX3JtX2RpcnMocHJvYmVzKTtcbiBcdFx0XHRyZXR1cm4gZXJyO1xuQEAgLTE2NDIsNiAmIzQzOzE2NTEsNyBAQCBzdGF0aWMgdm9pZCBkYW1vbl9zeXNmc19jb250ZXh0c19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19jb250ZXh0cyAqY29udGV4dHMpXG4gXG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBjb250ZXh0cy1cdTAwM2VucjsgaSYjNDM7JiM0MzspIHtcbiBcdFx0ZGFtb25fc3lzZnNfY29udGV4dF9ybV9kaXJzKGNvbnRleHRzX2FycltpXSk7XG4mIzQzO1x0XHRrb2JqZWN0X2RlbChcdTAwMjZjb250ZXh0c19hcnJbaV0tXHUwMDNla29iaik7XG4gXHRcdGtvYmplY3RfcHV0KFx1MDAyNmNvbnRleHRzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdH1cbiBcdGNvbnRleHRzLVx1MDAzZW5yID0gMDtcbkBAIC0xNjgwLDEzICYjNDM7MTY5MCwxNSBAQCBzdGF0aWMgaW50IGRhbW9uX3N5c2ZzX2NvbnRleHRzX2FkZF9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19jb250ZXh0cyAqY29udGV4dHMsXG4gXG4gXHRcdGVyciA9IGRhbW9uX3N5c2ZzX2NvbnRleHRfYWRkX2RpcnMoY29udGV4dCk7XG4gXHRcdGlmIChlcnIpXG4tXHRcdFx0Z290byBvdXQ7XG4mIzQzO1x0XHRcdGdvdG8gZGVsX291dDtcbiBcbiBcdFx0Y29udGV4dHNfYXJyW2ldID0gY29udGV4dDtcbiBcdFx0Y29udGV4dHMtXHUwMDNlbnImIzQzOyYjNDM7O1xuIFx0fVxuIFx0cmV0dXJuIDA7XG4gXG4mIzQzO2RlbF9vdXQ6XG4mIzQzO1x0a29iamVjdF9kZWwoXHUwMDI2Y29udGV4dC1cdTAwM2Vrb2JqKTtcbiBvdXQ6XG4gXHRkYW1vbl9zeXNmc19jb250ZXh0c19ybV9kaXJzKGNvbnRleHRzKTtcbiBcdGtvYmplY3RfcHV0KFx1MDAyNmNvbnRleHQtXHUwMDNla29iaik7XG5AQCAtMjUwMSw2ICYjNDM7MjUxMyw3IEBAIHN0YXRpYyB2b2lkIGRhbW9uX3N5c2ZzX2tkYW1vbmRzX3JtX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX2tkYW1vbmRzICprZGFtb25kcylcbiBcbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIGtkYW1vbmRzLVx1MDAzZW5yOyBpJiM0MzsmIzQzOykge1xuIFx0XHRkYW1vbl9zeXNmc19rZGFtb25kX3JtX2RpcnMoa2RhbW9uZHNfYXJyW2ldKTtcbiYjNDM7XHRcdGtvYmplY3RfZGVsKFx1MDAyNmtkYW1vbmRzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2a2RhbW9uZHNfYXJyW2ldLVx1MDAzZWtvYmopO1xuIFx0fVxuIFx0a2RhbW9uZHMtXHUwMDNlbnIgPSAwO1xuQEAgLTI1NTUsMTMgJiM0MzsyNTY4LDE1IEBAIHN0YXRpYyBpbnQgZGFtb25fc3lzZnNfa2RhbW9uZHNfYWRkX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX2tkYW1vbmRzICprZGFtb25kcyxcbiBcbiBcdFx0ZXJyID0gZGFtb25fc3lzZnNfa2RhbW9uZF9hZGRfZGlycyhrZGFtb25kKTtcbiBcdFx0aWYgKGVycilcbi1cdFx0XHRnb3RvIG91dDtcbiYjNDM7XHRcdFx0Z290byBkZWxfb3V0O1xuIFxuIFx0XHRrZGFtb25kc19hcnJbaV0gPSBrZGFtb25kO1xuIFx0XHRrZGFtb25kcy1cdTAwM2VuciYjNDM7JiM0Mzs7XG4gXHR9XG4gXHRyZXR1cm4gMDtcbiBcbiYjNDM7ZGVsX291dDpcbiYjNDM7XHRrb2JqZWN0X2RlbChcdTAwMjZrZGFtb25kLVx1MDAzZWtvYmopO1xuIG91dDpcbiBcdGRhbW9uX3N5c2ZzX2tkYW1vbmRzX3JtX2RpcnMoa2RhbW9uZHMpO1xuIFx0a29iamVjdF9wdXQoXHUwMDI2a2RhbW9uZC1cdTAwM2Vrb2JqKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAyMjoyMTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtEQU1PTl9TWVNGUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2RhbW9uX3N5c2ZzX3NjaGVtZXNfYWRkX2RpcnMmIzM0OywKICAgICYjMzQ7ZGFtb25fc3lzZnNfc2NoZW1lc19ybV9kaXJzJiMzNDssCiAgICAmIzM0O2RhbW9uX3N5c2ZzX3RhcmdldHNfYWRkX2RpcnMmIzM0OywKICAgICYjMzQ7ZGFtb25fc3lzZnNfdGFyZ2V0c19ybV9kaXJzJiMzNDssCiAgICAmIzM0O2RhbW9uX3N5c2ZzX2NvbnRleHRzX2FkZF9kaXJzJiMzNDssCiAgICAmIzM0O2RhbW9uX3N5c2ZzX2NvbnRleHRzX3JtX2RpcnMmIzM0OywKICAgICYjMzQ7ZGFtb25fc3lzZnNfa2RhbW9uZHNfYWRkX2RpcnMmIzM0OywKICAgICYjMzQ7ZGFtb25fc3lzZnNfa2RhbW9uZHNfcm1fZGlycyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBrb2JqZWN0IGxlYWtzIGFuZCBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgaXNzdWVzIGluIERBTU9OIHN5c2ZzIGRpcmVjdG9yeSBtYW5hZ2VtZW50IGJ5IGFkZGluZyBtaXNzaW5nIGtvYmplY3RfZGVsKCkgY2FsbHMuIFRoaXMgaXMgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlIHZpYSBzeXNmcyBpbnRlcmFjdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGE0YWQwNzkwOWEyZTBmYzNiMWM0MDVlYzk1YzQxZDNmNzZhODNiNjkKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU3VuIEp1biAyOCAyMjoyMTowNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL21tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuYyBiL21tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuYwppbmRleCAzMjljZmQwYmJlOWYzMi4uMGI4YTZmMWY2YjlmYzUgMTAwNjQ0Ci0tLSBhL21tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuYwomIzQzOyYjNDM7JiM0MzsgYi9tbS9kYW1vbi9zeXNmcy1zY2hlbWVzLmMKQEAgLTMzNCw2ICYjNDM7MzM0LDcgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfc2NoZW1lX3JlZ2lvbnNfcm1fZGlycygKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUociwgbmV4dCwgJmFtcDtyZWdpb25zLSZndDtyZWdpb25zX2xpc3QsIGxpc3QpIHsKIAkJZGFtb3Nfc3lzZnNfcmVnaW9uX3JtX2RpcnMocik7CiAJCWxpc3RfZGVsKCZhbXA7ci0mZ3Q7bGlzdCk7CiYjNDM7CQlrb2JqZWN0X2RlbCgmYW1wO3ItJmd0O2tvYmopOwogCQlrb2JqZWN0X3B1dCgmYW1wO3ItJmd0O2tvYmopOwogCQlyZWdpb25zLSZndDtucl9yZWdpb25zLS07CiAJfQpAQCAtOTEzLDggJiM0Mzs5MTQsMTAgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfc2NoZW1lX2ZpbHRlcnNfcm1fZGlycygKIAlzdHJ1Y3QgZGFtb25fc3lzZnNfc2NoZW1lX2ZpbHRlciAqKmZpbHRlcnNfYXJyID0gZmlsdGVycy0mZ3Q7ZmlsdGVyc19hcnI7CiAJaW50IGk7CiAKLQlmb3IgKGkgPSAwOyBpICZsdDsgZmlsdGVycy0mZ3Q7bnI7IGkmIzQzOyYjNDM7KQomIzQzOwlmb3IgKGkgPSAwOyBpICZsdDsgZmlsdGVycy0mZ3Q7bnI7IGkmIzQzOyYjNDM7KSB7CiYjNDM7CQlrb2JqZWN0X2RlbCgmYW1wO2ZpbHRlcnNfYXJyW2ldLSZndDtrb2JqKTsKIAkJa29iamVjdF9wdXQoJmFtcDtmaWx0ZXJzX2FycltpXS0mZ3Q7a29iaik7CiYjNDM7CX0KIAlmaWx0ZXJzLSZndDtuciA9IDA7CiAJa2ZyZWUoZmlsdGVyc19hcnIpOwogCWZpbHRlcnMtJmd0O2ZpbHRlcnNfYXJyID0gTlVMTDsKQEAgLTE0NjIsOCAmIzQzOzE0NjUsMTAgQEAgc3RhdGljIHZvaWQgZGFtb3Nfc3lzZnNfcXVvdGFfZ29hbHNfcm1fZGlycygKIAlzdHJ1Y3QgZGFtb3Nfc3lzZnNfcXVvdGFfZ29hbCAqKmdvYWxzX2FyciA9IGdvYWxzLSZndDtnb2Fsc19hcnI7CiAJaW50IGk7CiAKLQlmb3IgKGkgPSAwOyBpICZsdDsgZ29hbHMtJmd0O25yOyBpJiM0MzsmIzQzOykKJiM0MzsJZm9yIChpID0gMDsgaSAmbHQ7IGdvYWxzLSZndDtucjsgaSYjNDM7JiM0MzspIHsKJiM0MzsJCWtvYmplY3RfZGVsKCZhbXA7Z29hbHNfYXJyW2ldLSZndDtrb2JqKTsKIAkJa29iamVjdF9wdXQoJmFtcDtnb2Fsc19hcnJbaV0tJmd0O2tvYmopOwomIzQzOwl9CiAJZ29hbHMtJmd0O25yID0gMDsKIAlrZnJlZShnb2Fsc19hcnIpOwogCWdvYWxzLSZndDtnb2Fsc19hcnIgPSBOVUxMOwpAQCAtMjE0Myw4ICYjNDM7MjE0OCwxMCBAQCBzdGF0aWMgdm9pZCBkYW1vc19zeXNmc19kZXN0c19ybV9kaXJzKAogCXN0cnVjdCBkYW1vc19zeXNmc19kZXN0ICoqZGVzdHNfYXJyID0gZGVzdHMtJmd0O2Rlc3RzX2FycjsKIAlpbnQgaTsKIAotCWZvciAoaSA9IDA7IGkgJmx0OyBkZXN0cy0mZ3Q7bnI7IGkmIzQzOyYjNDM7KQomIzQzOwlmb3IgKGkgPSAwOyBpICZsdDsgZGVzdHMtJmd0O25yOyBpJiM0MzsmIzQzOykgewomIzQzOwkJa29iamVjdF9kZWwoJmFtcDtkZXN0c19hcnJbaV0tJmd0O2tvYmopOwogCQlrb2JqZWN0X3B1dCgmYW1wO2Rlc3RzX2FycltpXS0mZ3Q7a29iaik7CiYjNDM7CX0KIAlkZXN0cy0mZ3Q7bnIgPSAwOwogCWtmcmVlKGRlc3RzX2Fycik7CiAJZGVzdHMtJmd0O2Rlc3RzX2FyciA9IE5VTEw7CkBAIC0yNjg2LDYgJiM0MzsyNjkzLDcgQEAgdm9pZCBkYW1vbl9zeXNmc19zY2hlbWVzX3JtX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX3NjaGVtZXMgKnNjaGVtZXMpCiAKIAlmb3IgKGkgPSAwOyBpICZsdDsgc2NoZW1lcy0mZ3Q7bnI7IGkmIzQzOyYjNDM7KSB7CiAJCWRhbW9uX3N5c2ZzX3NjaGVtZV9ybV9kaXJzKHNjaGVtZXNfYXJyW2ldKTsKJiM0MzsJCWtvYmplY3RfZGVsKCZhbXA7c2NoZW1lc19hcnJbaV0tJmd0O2tvYmopOwogCQlrb2JqZWN0X3B1dCgmYW1wO3NjaGVtZXNfYXJyW2ldLSZndDtrb2JqKTsKIAl9CiAJc2NoZW1lcy0mZ3Q7bnIgPSAwOwpAQCAtMjcyNywxMyAmIzQzOzI3MzUsMTUgQEAgc3RhdGljIGludCBkYW1vbl9zeXNmc19zY2hlbWVzX2FkZF9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19zY2hlbWVzICpzY2hlbWVzLAogCQkJZ290byBvdXQ7CiAJCWVyciA9IGRhbW9uX3N5c2ZzX3NjaGVtZV9hZGRfZGlycyhzY2hlbWUpOwogCQlpZiAoZXJyKQotCQkJZ290byBvdXQ7CiYjNDM7CQkJZ290byBkZWxfb3V0OwogCiAJCXNjaGVtZXNfYXJyW2ldID0gc2NoZW1lOwogCQlzY2hlbWVzLSZndDtuciYjNDM7JiM0Mzs7CiAJfQogCXJldHVybiAwOwogCiYjNDM7ZGVsX291dDoKJiM0MzsJa29iamVjdF9kZWwoJmFtcDtzY2hlbWUtJmd0O2tvYmopOwogb3V0OgogCWRhbW9uX3N5c2ZzX3NjaGVtZXNfcm1fZGlycyhzY2hlbWVzKTsKIAlrb2JqZWN0X3B1dCgmYW1wO3NjaGVtZS0mZ3Q7a29iaik7CkBAIC0zMTI3LDEyICYjNDM7MzEzNywxNCBAQCB2b2lkIGRhbW9zX3N5c2ZzX3BvcHVsYXRlX3JlZ2lvbl9kaXIoc3RydWN0IGRhbW9uX3N5c2ZzX3NjaGVtZXMgKnN5c2ZzX3NjaGVtZXMsCiAJCQkJc3lzZnNfcmVnaW9ucy0mZ3Q7bnJfcmVnaW9ucykpCiAJCWdvdG8gb3V0OwogCWlmIChkYW1vc19zeXNmc19yZWdpb25fYWRkX2RpcnMocmVnaW9uLCBjdHgsIHIpKQotCQlnb3RvIG91dDsKJiM0MzsJCWdvdG8gZGVsX291dDsKIAogCWxpc3RfYWRkX3RhaWwoJmFtcDtyZWdpb24tJmd0O2xpc3QsICZhbXA7c3lzZnNfcmVnaW9ucy0mZ3Q7cmVnaW9uc19saXN0KTsKIAlzeXNmc19yZWdpb25zLSZndDtucl9yZWdpb25zJiM0MzsmIzQzOzsKIAlyZXR1cm47CiAKJiM0MztkZWxfb3V0OgomIzQzOwlrb2JqZWN0X2RlbCgmYW1wO3JlZ2lvbi0mZ3Q7a29iaik7CiBvdXQ6CiAJa29iamVjdF9wdXQoJmFtcDtyZWdpb24tJmd0O2tvYmopOwogfQpkaWZmIC0tZ2l0IGEvbW0vZGFtb24vc3lzZnMuYyBiL21tL2RhbW9uL3N5c2ZzLmMKaW5kZXggMmU5NWUzYmFjNzc0ZGMuLmZmYmM5OTQxMWY1M2IzIDEwMDY0NAotLS0gYS9tbS9kYW1vbi9zeXNmcy5jCiYjNDM7JiM0MzsmIzQzOyBiL21tL2RhbW9uL3N5c2ZzLmMKQEAgLTEwNyw4ICYjNDM7MTA3LDEwIEBAIHN0YXRpYyB2b2lkIGRhbW9uX3N5c2ZzX3JlZ2lvbnNfcm1fZGlycyhzdHJ1Y3QgZGFtb25fc3lzZnNfcmVnaW9ucyAqcmVnaW9ucykKIAlzdHJ1Y3QgZGFtb25fc3lzZnNfcmVnaW9uICoqcmVnaW9uc19hcnIgPSByZWdpb25zLSZndDtyZWdpb25zX2FycjsKIAlpbnQgaTsKIAotCWZvciAoaSA9IDA7IGkgJmx0OyByZWdpb25zLSZndDtucjsgaSYjNDM7JiM0MzspCiYjNDM7CWZvciAoaSA9IDA7IGkgJmx0OyByZWdpb25zLSZndDtucjsgaSYjNDM7JiM0MzspIHsKJiM0MzsJCWtvYmplY3RfZGVsKCZhbXA7cmVnaW9uc19hcnJbaV0tJmd0O2tvYmopOwogCQlrb2JqZWN0X3B1dCgmYW1wO3JlZ2lvbnNfYXJyW2ldLSZndDtrb2JqKTsKJiM0MzsJfQogCXJlZ2lvbnMtJmd0O25yID0gMDsKIAlrZnJlZShyZWdpb25zX2Fycik7CiAJcmVnaW9ucy0mZ3Q7cmVnaW9uc19hcnIgPSBOVUxMOwpAQCAtMzMzLDYgJiM0MzszMzUsNyBAQCBzdGF0aWMgdm9pZCBkYW1vbl9zeXNmc190YXJnZXRzX3JtX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX3RhcmdldHMgKnRhcmdldHMpCiAKIAlmb3IgKGkgPSAwOyBpICZsdDsgdGFyZ2V0cy0mZ3Q7bnI7IGkmIzQzOyYjNDM7KSB7CiAJCWRhbW9uX3N5c2ZzX3RhcmdldF9ybV9kaXJzKHRhcmdldHNfYXJyW2ldKTsKJiM0MzsJCWtvYmplY3RfZGVsKCZhbXA7dGFyZ2V0c19hcnJbaV0tJmd0O2tvYmopOwogCQlrb2JqZWN0X3B1dCgmYW1wO3RhcmdldHNfYXJyW2ldLSZndDtrb2JqKTsKIAl9CiAJdGFyZ2V0cy0mZ3Q7bnIgPSAwOwpAQCAtMzcxLDEzICYjNDM7Mzc0LDE1IEBAIHN0YXRpYyBpbnQgZGFtb25fc3lzZnNfdGFyZ2V0c19hZGRfZGlycyhzdHJ1Y3QgZGFtb25fc3lzZnNfdGFyZ2V0cyAqdGFyZ2V0cywKIAogCQllcnIgPSBkYW1vbl9zeXNmc190YXJnZXRfYWRkX2RpcnModGFyZ2V0KTsKIAkJaWYgKGVycikKLQkJCWdvdG8gb3V0OwomIzQzOwkJCWdvdG8gZGVsX291dDsKIAogCQl0YXJnZXRzX2FycltpXSA9IHRhcmdldDsKIAkJdGFyZ2V0cy0mZ3Q7bnImIzQzOyYjNDM7OwogCX0KIAlyZXR1cm4gMDsKIAomIzQzO2RlbF9vdXQ6CiYjNDM7CWtvYmplY3RfZGVsKCZhbXA7dGFyZ2V0LSZndDtrb2JqKTsKIG91dDoKIAlkYW1vbl9zeXNmc190YXJnZXRzX3JtX2RpcnModGFyZ2V0cyk7CiAJa29iamVjdF9wdXQoJmFtcDt0YXJnZXQtJmd0O2tvYmopOwpAQCAtOTU3LDggJiM0Mzs5NjIsMTAgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfZmlsdGVyc19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19maWx0ZXJzICpmaWx0ZXJzKQogCXN0cnVjdCBkYW1vbl9zeXNmc19maWx0ZXIgKipmaWx0ZXJzX2FyciA9IGZpbHRlcnMtJmd0O2ZpbHRlcnNfYXJyOwogCWludCBpOwogCi0JZm9yIChpID0gMDsgaSAmbHQ7IGZpbHRlcnMtJmd0O25yOyBpJiM0MzsmIzQzOykKJiM0MzsJZm9yIChpID0gMDsgaSAmbHQ7IGZpbHRlcnMtJmd0O25yOyBpJiM0MzsmIzQzOykgewomIzQzOwkJa29iamVjdF9kZWwoJmFtcDtmaWx0ZXJzX2FycltpXS0mZ3Q7a29iaik7CiAJCWtvYmplY3RfcHV0KCZhbXA7ZmlsdGVyc19hcnJbaV0tJmd0O2tvYmopOwomIzQzOwl9CiAJZmlsdGVycy0mZ3Q7bnIgPSAwOwogCWtmcmVlKGZpbHRlcnNfYXJyKTsKIAlmaWx0ZXJzLSZndDtmaWx0ZXJzX2FyciA9IE5VTEw7CkBAIC0xMTM0LDYgJiM0MzsxMTQxLDcgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfcHJvYmVzX3JtX2RpcnMoCiAKIAlmb3IgKGkgPSAwOyBpICZsdDsgcHJvYmVzLSZndDtucjsgaSYjNDM7JiM0MzspIHsKIAkJZGFtb25fc3lzZnNfcHJvYmVfcm1fZGlycyhwcm9iZXNfYXJyW2ldKTsKJiM0MzsJCWtvYmplY3RfZGVsKCZhbXA7cHJvYmVzX2FycltpXS0mZ3Q7a29iaik7CiAJCWtvYmplY3RfcHV0KCZhbXA7cHJvYmVzX2FycltpXS0mZ3Q7a29iaik7CiAJfQogCXByb2Jlcy0mZ3Q7bnIgPSAwOwpAQCAtMTE3NSw2ICYjNDM7MTE4Myw3IEBAIHN0YXRpYyBpbnQgZGFtb25fc3lzZnNfcHJvYmVzX2FkZF9kaXJzKAogCiAJCWVyciA9IGRhbW9uX3N5c2ZzX3Byb2JlX2FkZF9kaXJzKHByb2JlKTsKIAkJaWYgKGVycikgewomIzQzOwkJCWtvYmplY3RfZGVsKCZhbXA7cHJvYmUtJmd0O2tvYmopOwogCQkJa29iamVjdF9wdXQoJmFtcDtwcm9iZS0mZ3Q7a29iaik7CiAJCQlkYW1vbl9zeXNmc19wcm9iZXNfcm1fZGlycyhwcm9iZXMpOwogCQkJcmV0dXJuIGVycjsKQEAgLTE2NDIsNiAmIzQzOzE2NTEsNyBAQCBzdGF0aWMgdm9pZCBkYW1vbl9zeXNmc19jb250ZXh0c19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19jb250ZXh0cyAqY29udGV4dHMpCiAKIAlmb3IgKGkgPSAwOyBpICZsdDsgY29udGV4dHMtJmd0O25yOyBpJiM0MzsmIzQzOykgewogCQlkYW1vbl9zeXNmc19jb250ZXh0X3JtX2RpcnMoY29udGV4dHNfYXJyW2ldKTsKJiM0MzsJCWtvYmplY3RfZGVsKCZhbXA7Y29udGV4dHNfYXJyW2ldLSZndDtrb2JqKTsKIAkJa29iamVjdF9wdXQoJmFtcDtjb250ZXh0c19hcnJbaV0tJmd0O2tvYmopOwogCX0KIAljb250ZXh0cy0mZ3Q7bnIgPSAwOwpAQCAtMTY4MCwxMyAmIzQzOzE2OTAsMTUgQEAgc3RhdGljIGludCBkYW1vbl9zeXNmc19jb250ZXh0c19hZGRfZGlycyhzdHJ1Y3QgZGFtb25fc3lzZnNfY29udGV4dHMgKmNvbnRleHRzLAogCiAJCWVyciA9IGRhbW9uX3N5c2ZzX2NvbnRleHRfYWRkX2RpcnMoY29udGV4dCk7CiAJCWlmIChlcnIpCi0JCQlnb3RvIG91dDsKJiM0MzsJCQlnb3RvIGRlbF9vdXQ7CiAKIAkJY29udGV4dHNfYXJyW2ldID0gY29udGV4dDsKIAkJY29udGV4dHMtJmd0O25yJiM0MzsmIzQzOzsKIAl9CiAJcmV0dXJuIDA7CiAKJiM0MztkZWxfb3V0OgomIzQzOwlrb2JqZWN0X2RlbCgmYW1wO2NvbnRleHQtJmd0O2tvYmopOwogb3V0OgogCWRhbW9uX3N5c2ZzX2NvbnRleHRzX3JtX2RpcnMoY29udGV4dHMpOwogCWtvYmplY3RfcHV0KCZhbXA7Y29udGV4dC0mZ3Q7a29iaik7CkBAIC0yNTAxLDYgJiM0MzsyNTEzLDcgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfa2RhbW9uZHNfcm1fZGlycyhzdHJ1Y3QgZGFtb25fc3lzZnNfa2RhbW9uZHMgKmtkYW1vbmRzKQogCiAJZm9yIChpID0gMDsgaSAmbHQ7IGtkYW1vbmRzLSZndDtucjsgaSYjNDM7JiM0MzspIHsKIAkJZGFtb25fc3lzZnNfa2RhbW9uZF9ybV9kaXJzKGtkYW1vbmRzX2FycltpXSk7CiYjNDM7CQlrb2JqZWN0X2RlbCgmYW1wO2tkYW1vbmRzX2FycltpXS0mZ3Q7a29iaik7CiAJCWtvYmplY3RfcHV0KCZhbXA7a2RhbW9uZHNfYXJyW2ldLSZndDtrb2JqKTsKIAl9CiAJa2RhbW9uZHMtJmd0O25yID0gMDsKQEAgLTI1NTUsMTMgJiM0MzsyNTY4LDE1IEBAIHN0YXRpYyBpbnQgZGFtb25fc3lzZnNfa2RhbW9uZHNfYWRkX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX2tkYW1vbmRzICprZGFtb25kcywKIAogCQllcnIgPSBkYW1vbl9zeXNmc19rZGFtb25kX2FkZF9kaXJzKGtkYW1vbmQpOwogCQlpZiAoZXJyKQotCQkJZ290byBvdXQ7CiYjNDM7CQkJZ290byBkZWxfb3V0OwogCiAJCWtkYW1vbmRzX2FycltpXSA9IGtkYW1vbmQ7CiAJCWtkYW1vbmRzLSZndDtuciYjNDM7JiM0Mzs7CiAJfQogCXJldHVybiAwOwogCiYjNDM7ZGVsX291dDoKJiM0MzsJa29iamVjdF9kZWwoJmFtcDtrZGFtb25kLSZndDtrb2JqKTsKIG91dDoKIAlkYW1vbl9zeXNmc19rZGFtb25kc19ybV9kaXJzKGtkYW1vbmRzKTsKIAlrb2JqZWN0X3B1dCgmYW1wO2tkYW1vbmQtJmd0O2tvYmopOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAyMjoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NDk4CgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogMjY2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRBTU9OIFN5c2ZzIFBhdGNoIFJldmlldyoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCBoZXJlIHRoYXQmIzM5O3MgdG91Y2hpbmcgYG1tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuY2AgYW5kIGBtbS9kYW1vbi9zeXNmcy5jYC4gTG9va3MgbGlrZSBpdCYjMzk7cyBhZGRyZXNzaW5nIGEgcHJldHR5IG5hc3R5IGJ1Zywgd2hlcmUgd2UmIzM5O3JlIG1pc3NpbmcgYGtvYmplY3RfZGVsKClgIGNhbGxzIGJlZm9yZSBga29iamVjdF9wdXQoKWAgaW4gdGhlIGBybV9kaXJzYCBmdW5jdGlvbnMgYW5kIGVycm9yIHBhdGhzIGluIHRoZSBgYWRkX2RpcnNgIGZ1bmN0aW9ucy4gU2VlbXMgbGlrZSB0aGlzIGlzIGEgcmVjaXBlIGZvciBzeXNmcyBkaXJlY3RvcnkgbGVha3Mgb3IsIGV2ZW4gd29yc2UsIHVzZS1hZnRlci1mcmVlIG9yIGRvdWJsZS1mcmVlIHNjZW5hcmlvcy4gTm90IGdvb2QhCgpOb3csIHRoZSBxdWVzdGlvbiBpcywgaXMgdGhpcyBzb21ldGhpbmcgd2Ugc2hvdWxkIGJlIGZ1enppbmc/IExldCYjMzk7cyBzZWUuLi4gaXQmIzM5O3MgbW9kaWZ5aW5nIGZpbGVzIHJlbGF0ZWQgdG8gREFNT04sIHdoaWNoIGlzIGEga2VybmVsIHN1YnN5c3RlbS4gQW5kIGl0IGRlYWxzIHdpdGggc3lzZnMgaW50ZXJmYWNlcy4gUmlnaHQsIHN5c2ZzLi4uIHN5emthbGxlciBjYW4gZGVmaW5pdGVseSBnZXQgYXQgdGhvc2Ugd2l0aCBgc3l6X21vdW50X2ltYWdlYCBvciBqdXN0IGJ5IGhpdHRpbmcgdGhlbSBkaXJlY3RseS4gSG9sZCBvbiBhIHNlY29uZCwgZG9lc24mIzM5O3Qgc3l6a2FsbGVyICphbHJlYWR5KiBmdXp6IHN5c2ZzPyBZZXMsIGl0IGRvZXMuIFNvIHRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBmaXhpbmcgYSByZWFsIGJ1ZyByZWxhdGVkIHRvIGBrb2JqZWN0YCBoYW5kbGluZy4gSXQmIzM5O3MgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcgYmVjYXVzZSBpdCYjMzk7cyBmaXhpbmcgYSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0eS4KCk5vdywgbGV0JiMzOTtzIHNlZSB3aGF0IGNvbmZpZyBvcHRpb25zIHdlIG5lZWQgdG8gYWN0dWFsbHkgZW5hYmxlIERBTU9OIHN5c2ZzIHNvIHdlIGNhbiBnZXQgdGhpcyB0aGluZyBmdXp6ZWQgcHJvcGVybHkuIFRpbWUgdG8gZGlnIGludG8gdGhlIGNvbmZpZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAyMjoyMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgREFNT05fU1lTRlMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vZGFtb24vS2NvbmZpZz01Nj1jb25maWcgREFNT05fVkFERFJfS1VOSVRfVEVTVFxuLS1cbm1tL2RhbW9uL0tjb25maWctNjctXG5tbS9kYW1vbi9LY29uZmlnOjY4OmNvbmZpZyBEQU1PTl9TWVNGU1xubW0vZGFtb24vS2NvbmZpZy02OS1cdGJvb2wgXCYjMzQ7REFNT04gc3lzZnMgaW50ZXJmYWNlXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy03NS1cbm1tL2RhbW9uL0tjb25maWc6NzY6Y29uZmlnIERBTU9OX1NZU0ZTX0tVTklUX1RFU1Rcbm1tL2RhbW9uL0tjb25maWctNzctXHRib29sIFwmIzM0O1Rlc3QgZm9yIGRhbW9uIHN5c2ZzIGludGVyZmFjZVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMjI6MjE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTI0MwoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipOYXZpZ2F0aW5nIHRoZSBEQU1PTiBDb25maWd1cmF0aW9uIExhbmRzY2FwZSoqCgpSaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgYERBTU9OX1NZU0ZTYCBpcyBjb25maWd1cmVkIHdpdGhpbiB0aGlzIHByb2plY3QuIE15IGZpcnN0IGluc3RpbmN0LCBhbmQgdGhlIG1vc3QgbG9naWNhbCBwbGFjZSB0byBzdGFydCwgaXMgdGhlIGBLY29uZmlnYCBmaWxlLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gZ29pbmcgdG8gbG9vayBhdCBgbW0vZGFtb24vS2NvbmZpZ2AuIEl0JiMzOTtzIGFsbW9zdCBjZXJ0YWluIHRoYXQgdGhlIGBEQU1PTl9TWVNGU2Agb3B0aW9uLCBpZiBwcmVzZW50LCB3aWxsIGJlIGRlZmluZWQgb3IgYXQgbGVhc3QgcmVmZXJlbmNlZCB0aGVyZS4gVGhhdCYjMzk7cyB0aGUgY29yZSBjb25maWd1cmF0aW9uIGZpbGUgZm9yIG1lbW9yeSBtYW5hZ2VtZW50IGFuZCBEQU1PTiBpcywgYWZ0ZXIgYWxsLCBhIG1lbW9yeSBtb25pdG9yaW5nIGFuZCBvcHRpbWl6YXRpb24gdG9vbC4gSSBleHBlY3QgdG8gZmluZCBkZXBlbmRlbmNpZXMsIGRlZmF1bHQgdmFsdWVzLCBhbmQgbWF5YmUgZXZlbiBzb21lIGhlbHAgdGV4dCBleHBsYWluaW5nIHRoZSBpbXBsaWNhdGlvbnMgb2YgZW5hYmxpbmcgb3IgZGlzYWJsaW5nIHRoaXMgZmVhdHVyZS4gTXkgZ29hbCBpcyB0byBnZXQgYSBxdWljayBvdmVydmlldyBvZiBob3cgdGhpcyBzcGVjaWZpYyBzeXNmcyBpbnRlcmZhY2UgaXMgY29udHJvbGxlZC4gRnJvbSB0aGVyZSwgSSBjYW4gc3RhcnQgdG8gdW5kZXJzdGFuZCBpdHMgaW1wYWN0IG9uIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMjI6MjE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDttbS9kYW1vbi9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNjAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICA2MDpcdFx0aGVscFxuICA2MTpcdFx0ICBUaGlzIGJ1aWxkcyB0aGUgREFNT04gdmlydHVhbCBhZGRyZXNzZXMgb3BlcmF0aW9ucyBLdW5pdCB0ZXN0IHN1aXRlLlxuICA2MjpcdFxuICA2MzpcdFx0ICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBLVW5pdCBhbmQgdW5pdCB0ZXN0cyBpbiBnZW5lcmFsLCBwbGVhc2UgcmVmZXJcbiAgNjQ6XHRcdCAgdG8gdGhlIEtVbml0IGRvY3VtZW50YXRpb24uXG4gIDY1Olx0XG4gIDY2Olx0XHQgIElmIHVuc3VyZSwgc2F5IE4uXG4gIDY3Olx0XG4gIDY4Olx0Y29uZmlnIERBTU9OX1NZU0ZTXG4gIDY5Olx0XHRib29sIFwmIzM0O0RBTU9OIHN5c2ZzIGludGVyZmFjZVwmIzM0O1xuICA3MDpcdFx0ZGVwZW5kcyBvbiBEQU1PTiBcdTAwMjZcdTAwMjYgU1lTRlNcbiAgNzE6XHRcdGRlZmF1bHQgREFNT05cbiAgNzI6XHRcdGhlbHBcbiAgNzM6XHRcdCAgVGhpcyBidWlsZHMgdGhlIHN5c2ZzIGludGVyZmFjZSBmb3IgREFNT04uICBUaGUgdXNlciBzcGFjZSBjYW4gdXNlXG4gIDc0Olx0XHQgIHRoZSBpbnRlcmZhY2UgZm9yIGFyYml0cmFyeSBkYXRhIGFjY2VzcyBtb25pdG9yaW5nLlxuICA3NTpcdFxuICA3NjpcdGNvbmZpZyBEQU1PTl9TWVNGU19LVU5JVF9URVNUXG4gIDc3Olx0XHRib29sIFwmIzM0O1Rlc3QgZm9yIGRhbW9uIHN5c2ZzIGludGVyZmFjZVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4gIDc4Olx0XHRkZXBlbmRzIG9uIERBTU9OX1NZU0ZTIFx1MDAyNlx1MDAyNiBLVU5JVD15XG4gIDc5Olx0XHRkZWZhdWx0IEtVTklUX0FMTF9URVNUU1xuICA4MDpcdFx0aGVscFxuICA4MTpcdFx0ICBUaGlzIGJ1aWxkcyB0aGUgREFNT04gc3lzZnMgaW50ZXJmYWNlIEt1bml0IHRlc3Qgc3VpdGUuXG4gIDgyOlx0XG4gIDgzOlx0XHQgIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIEtVbml0IGFuZCB1bml0IHRlc3RzIGluIGdlbmVyYWwsIHBsZWFzZSByZWZlclxuICA4NDpcdFx0ICB0byB0aGUgS1VuaXQgZG9jdW1lbnRhdGlvbi5cbiAgODU6XHRcbiAgODY6XHRcdCAgSWYgdW5zdXJlLCBzYXkgTi5cbiAgODc6XHRcbiAgODg6XHRjb25maWcgREFNT05fUkVDTEFJTVxuICA4OTpcdFx0Ym9vbCBcJiMzNDtCdWlsZCBEQU1PTi1iYXNlZCByZWNsYWltIChEQU1PTl9SRUNMQUlNKVwmIzM0O1xuICA5MDpcdFx0ZGVwZW5kcyBvbiBEQU1PTl9QQUREUlxuICA5MTpcdFx0aGVscFxuICA5MjpcdFx0ICBUaGlzIGJ1aWxkcyB0aGUgREFNT04tYmFzZWQgcmVjbGFtYXRpb24gc3Vic3lzdGVtLiAgSXQgZmluZHMgcGFnZXNcbiAgOTM6XHRcdCAgdGhhdCBub3QgYWNjZXNzZWQgZm9yIGEgbG9uZyB0aW1lIChjb2xkKSB1c2luZyBEQU1PTiBhbmQgcmVjbGFpbVxuICA5NDpcdFx0ICB0aG9zZS5cbiAgOTU6XHRcbiAgOTY6XHRcdCAgVGhpcyBpcyBzdWdnZXN0ZWQgdG8gYmUgdXNlZCBhcyBhIHByb2FjdGl2ZSBhbmQgbGlnaHR3ZWlnaHRcbiAgOTc6XHRcdCAgcmVjbGFtYXRpb24gdW5kZXIgbGlnaHQgbWVtb3J5IHByZXNzdXJlLCB3aGlsZSB0aGUgdHJhZGl0aW9uYWwgcGFnZVxuICA5ODpcdFx0ICBzY2FubmluZy1iYXNlZCByZWNsYW1hdGlvbiBpcyB1c2VkIGZvciBoZWF2eSBwcmVzc3VyZS5cbiAgOTk6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAyMjoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MDU3CgkJCQkJCQlvdXRwdXQ6IDE5NgoJCQkJCQkJdGhvdWdodHM6IDQ4NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIERBTU9OIFN5c2ZzIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgYERBTU9OX1NZU0ZTYCBpcyB0aGUga2V5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGhlcmUuIEl0JiMzOTtzIGNsZWFybHkgZGVwZW5kZW50IG9uIGBEQU1PTmAgYW5kIGBTWVNGU2AsIHdoaWNoIG1ha2VzIHNlbnNlLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgc2NvcGUgb2YgdGhpcyBjaGFuZ2UsIHNvIEkmIzM5O20gc2Nhbm5pbmcgdGhlIG1vZGlmaWVkIGZ1bmN0aW9ucyB0byB1bmRlcnN0YW5kIHdoYXQmIzM5O3MgYmVpbmcgdG91Y2hlZC4KClRoZSBwYXRjaCBzZWVtcyBoZWF2aWx5IGZvY3VzZWQgb24gc3lzZnMgZGlyZWN0b3J5IG1hbmlwdWxhdGlvbiB3aXRoaW4gdGhlIERBTU9OIHN1YnN5c3RlbS4gSSBzZWUgc2V2ZXJhbCBmdW5jdGlvbnMgd2l0aCAmIzM0O3JtX2RpcnMmIzM0OyBhbmQgJiMzNDthZGRfZGlycyYjMzQ7IGluIHRoZWlyIG5hbWVzLiBJJiMzOTt2ZSBnb3Q6CgoqICAgYGRhbW9uX3N5c2ZzX3NjaGVtZV9yZWdpb25zX3JtX2RpcnNgCiogICBgZGFtb25fc3lzZnNfc2NoZW1lX2ZpbHRlcnNfcm1fZGlyc2AKKiAgIGBkYW1vc19zeXNmc19xdW90YV9nb2Fsc19ybV9kaXJzYAoqICAgYGRhbW9zX3N5c2ZzX2Rlc3RzX3JtX2RpcnNgCiogICBgZGFtb25fc3lzZnNfc2NoZW1lc19ybV9kaXJzYAoqICAgYGRhbW9uX3N5c2ZzX3NjaGVtZXNfYWRkX2RpcnNgCiogICBgZGFtb3Nfc3lzZnNfcG9wdWxhdGVfcmVnaW9uX2RpcmAKKiAgIGBkYW1vbl9zeXNmc19yZWdpb25zX3JtX2RpcnNgCiogICBgZGFtb25fc3lzZnNfdGFyZ2V0c19ybV9kaXJzYAoqICAgYGRhbW9uX3N5c2ZzX3RhcmdldHNfYWRkX2RpcnNgCiogICBgZGFtb25fc3lzZnNfZmlsdGVyc19ybV9kaXJzYAoqICAgYGRhbW9uX3N5c2ZzX3Byb2Jlc19ybV9kaXJzYAoqICAgYGRhbW9uX3N5c2ZzX3Byb2Jlc19hZGRfZGlyc2AKKiAgIGBkYW1vbl9zeXNmc19jb250ZXh0c19ybV9kaXJzYAoqICAgYGRhbW9uX3N5c2ZzX2NvbnRleHRzX2FkZF9kaXJzYAoqICAgYGRhbW9uX3N5c2ZzX2tkYW1vbmRzX3JtX2RpcnNgCiogICBgZGFtb25fc3lzZnNfa2RhbW9uZHNfYWRkX2RpcnNgCgpJdCBsb29rcyBsaWtlIHRoZSBwYXRjaCBpcyBhZGRpbmcgYW5kIHJlbW92aW5nIHN5c2ZzIGRpcmVjdG9yaWVzIHJlbGF0ZWQgdG8gc2NoZW1lcywgdGFyZ2V0cywgY29udGV4dHMsIGFuZCBrZGFtb25kcy4gSSBjYW4gcHJvYmFibHkgbmFycm93IGRvd24gbXkgYW5hbHlzaXMgYnkgZm9jdXNpbmcgb24gYSBzZWxlY3QgZmV3LCBzcGVjaWZpY2FsbHkgdGhlIGFkZC9yZW1vdmUgcGFpcnMgZm9yIHNjaGVtZXMsIHRhcmdldHMsIGNvbnRleHRzLCBhbmQga2RhbW9uZHMuCgpUbyBjb25maXJtIG15IHVuZGVyc3RhbmRpbmcsIEkmIzM5O20gY2hlY2tpbmcgdGhhdCBgREFNT05fU1lTRlNgIGlzIGluZGVlZCB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIGl0ZW0gaGVyZS4gQW5kIHllcywgaXQgaXMuIFRoYXQgY29uZmlybXMgdGhlIHNjb3BlIG9mIHRoaXMgcGF0Y2guCgpJJiMzOTttIHJlYWR5IHRvIGNhbGwgc2V0LXJlc3VsdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMjI6MjE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RBTU9OX1NZU0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZGFtb25fc3lzZnNfc2NoZW1lc19hZGRfZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc19zY2hlbWVzX3JtX2RpcnMmIzM0OywKICAgICYjMzQ7ZGFtb25fc3lzZnNfdGFyZ2V0c19hZGRfZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc190YXJnZXRzX3JtX2RpcnMmIzM0OywKICAgICYjMzQ7ZGFtb25fc3lzZnNfY29udGV4dHNfYWRkX2RpcnMmIzM0OywKICAgICYjMzQ7ZGFtb25fc3lzZnNfY29udGV4dHNfcm1fZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc19rZGFtb25kc19hZGRfZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc19rZGFtb25kc19ybV9kaXJzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGtvYmplY3QgbGVha3MgYW5kIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBpc3N1ZXMgaW4gREFNT04gc3lzZnMgZGlyZWN0b3J5IG1hbmFnZW1lbnQgYnkgYWRkaW5nIG1pc3Npbmcga29iamVjdF9kZWwoKSBjYWxscy4gVGhpcyBpcyBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUgdmlhIHN5c2ZzIGludGVyYWN0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7REFNT05fU1lTRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkYW1vbl9zeXNmc19zY2hlbWVzX2FkZF9kaXJzJiMzNDssCiAgICAmIzM0O2RhbW9uX3N5c2ZzX3NjaGVtZXNfcm1fZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc190YXJnZXRzX2FkZF9kaXJzJiMzNDssCiAgICAmIzM0O2RhbW9uX3N5c2ZzX3RhcmdldHNfcm1fZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc19jb250ZXh0c19hZGRfZGlycyYjMzQ7LAogICAgJiMzNDtkYW1vbl9zeXNmc19jb250ZXh0c19ybV9kaXJzJiMzNDssCiAgICAmIzM0O2RhbW9uX3N5c2ZzX2tkYW1vbmRzX2FkZF9kaXJzJiMzNDssCiAgICAmIzM0O2RhbW9uX3N5c2ZzX2tkYW1vbmRzX3JtX2RpcnMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMga29iamVjdCBsZWFrcyBhbmQgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIGlzc3VlcyBpbiBEQU1PTiBzeXNmcyBkaXJlY3RvcnkgbWFuYWdlbWVudCBieSBhZGRpbmcgbWlzc2luZyBrb2JqZWN0X2RlbCgpIGNhbGxzLiBUaGlzIGlzIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZSB2aWEgc3lzZnMgaW50ZXJhY3Rpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMjhUMjI6MjE6MDYuNzUyMTAzNzA5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg1Njc3NDg0MzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiREFNT05fU1lTRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkYW1vbl9zeXNmc19zY2hlbWVzX2FkZF9kaXJzXCIsXG4gICAgXCJkYW1vbl9zeXNmc19zY2hlbWVzX3JtX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX3RhcmdldHNfYWRkX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX3RhcmdldHNfcm1fZGlyc1wiLFxuICAgIFwiZGFtb25fc3lzZnNfY29udGV4dHNfYWRkX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX2NvbnRleHRzX3JtX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX2tkYW1vbmRzX2FkZF9kaXJzXCIsXG4gICAgXCJkYW1vbl9zeXNmc19rZGFtb25kc19ybV9kaXJzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMga29iamVjdCBsZWFrcyBhbmQgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIGlzc3VlcyBpbiBEQU1PTiBzeXNmcyBkaXJlY3RvcnkgbWFuYWdlbWVudCBieSBhZGRpbmcgbWlzc2luZyBrb2JqZWN0X2RlbCgpIGNhbGxzLiBUaGlzIGlzIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZSB2aWEgc3lzZnMgaW50ZXJhY3Rpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQyMjoyMTowNi43NTIxMDg4MDlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyMDE2OTU3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGE0YWQwNzkwOWEyZTBmYzNiMWM0MDVlYzk1YzQxZDNmNzZhODNiNjlcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBKdW4gMjggMjI6MjE6MDUgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbW0vZGFtb24vc3lzZnMtc2NoZW1lcy5jIGIvbW0vZGFtb24vc3lzZnMtc2NoZW1lcy5jXFxuaW5kZXggMzI5Y2ZkMGJiZTlmMzIuLjBiOGE2ZjFmNmI5ZmM1IDEwMDY0NFxcbi0tLSBhL21tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuY1xcbisrKyBiL21tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuY1xcbkBAIC0zMzQsNiArMzM0LDcgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfc2NoZW1lX3JlZ2lvbnNfcm1fZGlycyhcXG4gXFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHIsIG5leHQsIFxcdTAwMjZyZWdpb25zLVxcdTAwM2VyZWdpb25zX2xpc3QsIGxpc3QpIHtcXG4gXFx0XFx0ZGFtb3Nfc3lzZnNfcmVnaW9uX3JtX2RpcnMocik7XFxuIFxcdFxcdGxpc3RfZGVsKFxcdTAwMjZyLVxcdTAwM2VsaXN0KTtcXG4rXFx0XFx0a29iamVjdF9kZWwoXFx1MDAyNnItXFx1MDAzZWtvYmopO1xcbiBcXHRcXHRrb2JqZWN0X3B1dChcXHUwMDI2ci1cXHUwMDNla29iaik7XFxuIFxcdFxcdHJlZ2lvbnMtXFx1MDAzZW5yX3JlZ2lvbnMtLTtcXG4gXFx0fVxcbkBAIC05MTMsOCArOTE0LDEwIEBAIHN0YXRpYyB2b2lkIGRhbW9uX3N5c2ZzX3NjaGVtZV9maWx0ZXJzX3JtX2RpcnMoXFxuIFxcdHN0cnVjdCBkYW1vbl9zeXNmc19zY2hlbWVfZmlsdGVyICoqZmlsdGVyc19hcnIgPSBmaWx0ZXJzLVxcdTAwM2VmaWx0ZXJzX2FycjtcXG4gXFx0aW50IGk7XFxuIFxcbi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgZmlsdGVycy1cXHUwMDNlbnI7IGkrKylcXG4rXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGZpbHRlcnMtXFx1MDAzZW5yOyBpKyspIHtcXG4rXFx0XFx0a29iamVjdF9kZWwoXFx1MDAyNmZpbHRlcnNfYXJyW2ldLVxcdTAwM2Vrb2JqKTtcXG4gXFx0XFx0a29iamVjdF9wdXQoXFx1MDAyNmZpbHRlcnNfYXJyW2ldLVxcdTAwM2Vrb2JqKTtcXG4rXFx0fVxcbiBcXHRmaWx0ZXJzLVxcdTAwM2VuciA9IDA7XFxuIFxcdGtmcmVlKGZpbHRlcnNfYXJyKTtcXG4gXFx0ZmlsdGVycy1cXHUwMDNlZmlsdGVyc19hcnIgPSBOVUxMO1xcbkBAIC0xNDYyLDggKzE0NjUsMTAgQEAgc3RhdGljIHZvaWQgZGFtb3Nfc3lzZnNfcXVvdGFfZ29hbHNfcm1fZGlycyhcXG4gXFx0c3RydWN0IGRhbW9zX3N5c2ZzX3F1b3RhX2dvYWwgKipnb2Fsc19hcnIgPSBnb2Fscy1cXHUwMDNlZ29hbHNfYXJyO1xcbiBcXHRpbnQgaTtcXG4gXFxuLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBnb2Fscy1cXHUwMDNlbnI7IGkrKylcXG4rXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGdvYWxzLVxcdTAwM2VucjsgaSsrKSB7XFxuK1xcdFxcdGtvYmplY3RfZGVsKFxcdTAwMjZnb2Fsc19hcnJbaV0tXFx1MDAzZWtvYmopO1xcbiBcXHRcXHRrb2JqZWN0X3B1dChcXHUwMDI2Z29hbHNfYXJyW2ldLVxcdTAwM2Vrb2JqKTtcXG4rXFx0fVxcbiBcXHRnb2Fscy1cXHUwMDNlbnIgPSAwO1xcbiBcXHRrZnJlZShnb2Fsc19hcnIpO1xcbiBcXHRnb2Fscy1cXHUwMDNlZ29hbHNfYXJyID0gTlVMTDtcXG5AQCAtMjE0Myw4ICsyMTQ4LDEwIEBAIHN0YXRpYyB2b2lkIGRhbW9zX3N5c2ZzX2Rlc3RzX3JtX2RpcnMoXFxuIFxcdHN0cnVjdCBkYW1vc19zeXNmc19kZXN0ICoqZGVzdHNfYXJyID0gZGVzdHMtXFx1MDAzZWRlc3RzX2FycjtcXG4gXFx0aW50IGk7XFxuIFxcbi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgZGVzdHMtXFx1MDAzZW5yOyBpKyspXFxuK1xcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBkZXN0cy1cXHUwMDNlbnI7IGkrKykge1xcbitcXHRcXHRrb2JqZWN0X2RlbChcXHUwMDI2ZGVzdHNfYXJyW2ldLVxcdTAwM2Vrb2JqKTtcXG4gXFx0XFx0a29iamVjdF9wdXQoXFx1MDAyNmRlc3RzX2FycltpXS1cXHUwMDNla29iaik7XFxuK1xcdH1cXG4gXFx0ZGVzdHMtXFx1MDAzZW5yID0gMDtcXG4gXFx0a2ZyZWUoZGVzdHNfYXJyKTtcXG4gXFx0ZGVzdHMtXFx1MDAzZWRlc3RzX2FyciA9IE5VTEw7XFxuQEAgLTI2ODYsNiArMjY5Myw3IEBAIHZvaWQgZGFtb25fc3lzZnNfc2NoZW1lc19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19zY2hlbWVzICpzY2hlbWVzKVxcbiBcXG4gXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIHNjaGVtZXMtXFx1MDAzZW5yOyBpKyspIHtcXG4gXFx0XFx0ZGFtb25fc3lzZnNfc2NoZW1lX3JtX2RpcnMoc2NoZW1lc19hcnJbaV0pO1xcbitcXHRcXHRrb2JqZWN0X2RlbChcXHUwMDI2c2NoZW1lc19hcnJbaV0tXFx1MDAzZWtvYmopO1xcbiBcXHRcXHRrb2JqZWN0X3B1dChcXHUwMDI2c2NoZW1lc19hcnJbaV0tXFx1MDAzZWtvYmopO1xcbiBcXHR9XFxuIFxcdHNjaGVtZXMtXFx1MDAzZW5yID0gMDtcXG5AQCAtMjcyNywxMyArMjczNSwxNSBAQCBzdGF0aWMgaW50IGRhbW9uX3N5c2ZzX3NjaGVtZXNfYWRkX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX3NjaGVtZXMgKnNjaGVtZXMsXFxuIFxcdFxcdFxcdGdvdG8gb3V0O1xcbiBcXHRcXHRlcnIgPSBkYW1vbl9zeXNmc19zY2hlbWVfYWRkX2RpcnMoc2NoZW1lKTtcXG4gXFx0XFx0aWYgKGVycilcXG4tXFx0XFx0XFx0Z290byBvdXQ7XFxuK1xcdFxcdFxcdGdvdG8gZGVsX291dDtcXG4gXFxuIFxcdFxcdHNjaGVtZXNfYXJyW2ldID0gc2NoZW1lO1xcbiBcXHRcXHRzY2hlbWVzLVxcdTAwM2VucisrO1xcbiBcXHR9XFxuIFxcdHJldHVybiAwO1xcbiBcXG4rZGVsX291dDpcXG4rXFx0a29iamVjdF9kZWwoXFx1MDAyNnNjaGVtZS1cXHUwMDNla29iaik7XFxuIG91dDpcXG4gXFx0ZGFtb25fc3lzZnNfc2NoZW1lc19ybV9kaXJzKHNjaGVtZXMpO1xcbiBcXHRrb2JqZWN0X3B1dChcXHUwMDI2c2NoZW1lLVxcdTAwM2Vrb2JqKTtcXG5AQCAtMzEyNywxMiArMzEzNywxNCBAQCB2b2lkIGRhbW9zX3N5c2ZzX3BvcHVsYXRlX3JlZ2lvbl9kaXIoc3RydWN0IGRhbW9uX3N5c2ZzX3NjaGVtZXMgKnN5c2ZzX3NjaGVtZXMsXFxuIFxcdFxcdFxcdFxcdHN5c2ZzX3JlZ2lvbnMtXFx1MDAzZW5yX3JlZ2lvbnMpKVxcbiBcXHRcXHRnb3RvIG91dDtcXG4gXFx0aWYgKGRhbW9zX3N5c2ZzX3JlZ2lvbl9hZGRfZGlycyhyZWdpb24sIGN0eCwgcikpXFxuLVxcdFxcdGdvdG8gb3V0O1xcbitcXHRcXHRnb3RvIGRlbF9vdXQ7XFxuIFxcbiBcXHRsaXN0X2FkZF90YWlsKFxcdTAwMjZyZWdpb24tXFx1MDAzZWxpc3QsIFxcdTAwMjZzeXNmc19yZWdpb25zLVxcdTAwM2VyZWdpb25zX2xpc3QpO1xcbiBcXHRzeXNmc19yZWdpb25zLVxcdTAwM2Vucl9yZWdpb25zKys7XFxuIFxcdHJldHVybjtcXG4gXFxuK2RlbF9vdXQ6XFxuK1xcdGtvYmplY3RfZGVsKFxcdTAwMjZyZWdpb24tXFx1MDAzZWtvYmopO1xcbiBvdXQ6XFxuIFxcdGtvYmplY3RfcHV0KFxcdTAwMjZyZWdpb24tXFx1MDAzZWtvYmopO1xcbiB9XFxuZGlmZiAtLWdpdCBhL21tL2RhbW9uL3N5c2ZzLmMgYi9tbS9kYW1vbi9zeXNmcy5jXFxuaW5kZXggMmU5NWUzYmFjNzc0ZGMuLmZmYmM5OTQxMWY1M2IzIDEwMDY0NFxcbi0tLSBhL21tL2RhbW9uL3N5c2ZzLmNcXG4rKysgYi9tbS9kYW1vbi9zeXNmcy5jXFxuQEAgLTEwNyw4ICsxMDcsMTAgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfcmVnaW9uc19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19yZWdpb25zICpyZWdpb25zKVxcbiBcXHRzdHJ1Y3QgZGFtb25fc3lzZnNfcmVnaW9uICoqcmVnaW9uc19hcnIgPSByZWdpb25zLVxcdTAwM2VyZWdpb25zX2FycjtcXG4gXFx0aW50IGk7XFxuIFxcbi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgcmVnaW9ucy1cXHUwMDNlbnI7IGkrKylcXG4rXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIHJlZ2lvbnMtXFx1MDAzZW5yOyBpKyspIHtcXG4rXFx0XFx0a29iamVjdF9kZWwoXFx1MDAyNnJlZ2lvbnNfYXJyW2ldLVxcdTAwM2Vrb2JqKTtcXG4gXFx0XFx0a29iamVjdF9wdXQoXFx1MDAyNnJlZ2lvbnNfYXJyW2ldLVxcdTAwM2Vrb2JqKTtcXG4rXFx0fVxcbiBcXHRyZWdpb25zLVxcdTAwM2VuciA9IDA7XFxuIFxcdGtmcmVlKHJlZ2lvbnNfYXJyKTtcXG4gXFx0cmVnaW9ucy1cXHUwMDNlcmVnaW9uc19hcnIgPSBOVUxMO1xcbkBAIC0zMzMsNiArMzM1LDcgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfdGFyZ2V0c19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc190YXJnZXRzICp0YXJnZXRzKVxcbiBcXG4gXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIHRhcmdldHMtXFx1MDAzZW5yOyBpKyspIHtcXG4gXFx0XFx0ZGFtb25fc3lzZnNfdGFyZ2V0X3JtX2RpcnModGFyZ2V0c19hcnJbaV0pO1xcbitcXHRcXHRrb2JqZWN0X2RlbChcXHUwMDI2dGFyZ2V0c19hcnJbaV0tXFx1MDAzZWtvYmopO1xcbiBcXHRcXHRrb2JqZWN0X3B1dChcXHUwMDI2dGFyZ2V0c19hcnJbaV0tXFx1MDAzZWtvYmopO1xcbiBcXHR9XFxuIFxcdHRhcmdldHMtXFx1MDAzZW5yID0gMDtcXG5AQCAtMzcxLDEzICszNzQsMTUgQEAgc3RhdGljIGludCBkYW1vbl9zeXNmc190YXJnZXRzX2FkZF9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc190YXJnZXRzICp0YXJnZXRzLFxcbiBcXG4gXFx0XFx0ZXJyID0gZGFtb25fc3lzZnNfdGFyZ2V0X2FkZF9kaXJzKHRhcmdldCk7XFxuIFxcdFxcdGlmIChlcnIpXFxuLVxcdFxcdFxcdGdvdG8gb3V0O1xcbitcXHRcXHRcXHRnb3RvIGRlbF9vdXQ7XFxuIFxcbiBcXHRcXHR0YXJnZXRzX2FycltpXSA9IHRhcmdldDtcXG4gXFx0XFx0dGFyZ2V0cy1cXHUwMDNlbnIrKztcXG4gXFx0fVxcbiBcXHRyZXR1cm4gMDtcXG4gXFxuK2RlbF9vdXQ6XFxuK1xcdGtvYmplY3RfZGVsKFxcdTAwMjZ0YXJnZXQtXFx1MDAzZWtvYmopO1xcbiBvdXQ6XFxuIFxcdGRhbW9uX3N5c2ZzX3RhcmdldHNfcm1fZGlycyh0YXJnZXRzKTtcXG4gXFx0a29iamVjdF9wdXQoXFx1MDAyNnRhcmdldC1cXHUwMDNla29iaik7XFxuQEAgLTk1Nyw4ICs5NjIsMTAgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfZmlsdGVyc19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19maWx0ZXJzICpmaWx0ZXJzKVxcbiBcXHRzdHJ1Y3QgZGFtb25fc3lzZnNfZmlsdGVyICoqZmlsdGVyc19hcnIgPSBmaWx0ZXJzLVxcdTAwM2VmaWx0ZXJzX2FycjtcXG4gXFx0aW50IGk7XFxuIFxcbi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgZmlsdGVycy1cXHUwMDNlbnI7IGkrKylcXG4rXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGZpbHRlcnMtXFx1MDAzZW5yOyBpKyspIHtcXG4rXFx0XFx0a29iamVjdF9kZWwoXFx1MDAyNmZpbHRlcnNfYXJyW2ldLVxcdTAwM2Vrb2JqKTtcXG4gXFx0XFx0a29iamVjdF9wdXQoXFx1MDAyNmZpbHRlcnNfYXJyW2ldLVxcdTAwM2Vrb2JqKTtcXG4rXFx0fVxcbiBcXHRmaWx0ZXJzLVxcdTAwM2VuciA9IDA7XFxuIFxcdGtmcmVlKGZpbHRlcnNfYXJyKTtcXG4gXFx0ZmlsdGVycy1cXHUwMDNlZmlsdGVyc19hcnIgPSBOVUxMO1xcbkBAIC0xMTM0LDYgKzExNDEsNyBAQCBzdGF0aWMgdm9pZCBkYW1vbl9zeXNmc19wcm9iZXNfcm1fZGlycyhcXG4gXFxuIFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBwcm9iZXMtXFx1MDAzZW5yOyBpKyspIHtcXG4gXFx0XFx0ZGFtb25fc3lzZnNfcHJvYmVfcm1fZGlycyhwcm9iZXNfYXJyW2ldKTtcXG4rXFx0XFx0a29iamVjdF9kZWwoXFx1MDAyNnByb2Jlc19hcnJbaV0tXFx1MDAzZWtvYmopO1xcbiBcXHRcXHRrb2JqZWN0X3B1dChcXHUwMDI2cHJvYmVzX2FycltpXS1cXHUwMDNla29iaik7XFxuIFxcdH1cXG4gXFx0cHJvYmVzLVxcdTAwM2VuciA9IDA7XFxuQEAgLTExNzUsNiArMTE4Myw3IEBAIHN0YXRpYyBpbnQgZGFtb25fc3lzZnNfcHJvYmVzX2FkZF9kaXJzKFxcbiBcXG4gXFx0XFx0ZXJyID0gZGFtb25fc3lzZnNfcHJvYmVfYWRkX2RpcnMocHJvYmUpO1xcbiBcXHRcXHRpZiAoZXJyKSB7XFxuK1xcdFxcdFxcdGtvYmplY3RfZGVsKFxcdTAwMjZwcm9iZS1cXHUwMDNla29iaik7XFxuIFxcdFxcdFxcdGtvYmplY3RfcHV0KFxcdTAwMjZwcm9iZS1cXHUwMDNla29iaik7XFxuIFxcdFxcdFxcdGRhbW9uX3N5c2ZzX3Byb2Jlc19ybV9kaXJzKHByb2Jlcyk7XFxuIFxcdFxcdFxcdHJldHVybiBlcnI7XFxuQEAgLTE2NDIsNiArMTY1MSw3IEBAIHN0YXRpYyB2b2lkIGRhbW9uX3N5c2ZzX2NvbnRleHRzX3JtX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX2NvbnRleHRzICpjb250ZXh0cylcXG4gXFxuIFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBjb250ZXh0cy1cXHUwMDNlbnI7IGkrKykge1xcbiBcXHRcXHRkYW1vbl9zeXNmc19jb250ZXh0X3JtX2RpcnMoY29udGV4dHNfYXJyW2ldKTtcXG4rXFx0XFx0a29iamVjdF9kZWwoXFx1MDAyNmNvbnRleHRzX2FycltpXS1cXHUwMDNla29iaik7XFxuIFxcdFxcdGtvYmplY3RfcHV0KFxcdTAwMjZjb250ZXh0c19hcnJbaV0tXFx1MDAzZWtvYmopO1xcbiBcXHR9XFxuIFxcdGNvbnRleHRzLVxcdTAwM2VuciA9IDA7XFxuQEAgLTE2ODAsMTMgKzE2OTAsMTUgQEAgc3RhdGljIGludCBkYW1vbl9zeXNmc19jb250ZXh0c19hZGRfZGlycyhzdHJ1Y3QgZGFtb25fc3lzZnNfY29udGV4dHMgKmNvbnRleHRzLFxcbiBcXG4gXFx0XFx0ZXJyID0gZGFtb25fc3lzZnNfY29udGV4dF9hZGRfZGlycyhjb250ZXh0KTtcXG4gXFx0XFx0aWYgKGVycilcXG4tXFx0XFx0XFx0Z290byBvdXQ7XFxuK1xcdFxcdFxcdGdvdG8gZGVsX291dDtcXG4gXFxuIFxcdFxcdGNvbnRleHRzX2FycltpXSA9IGNvbnRleHQ7XFxuIFxcdFxcdGNvbnRleHRzLVxcdTAwM2VucisrO1xcbiBcXHR9XFxuIFxcdHJldHVybiAwO1xcbiBcXG4rZGVsX291dDpcXG4rXFx0a29iamVjdF9kZWwoXFx1MDAyNmNvbnRleHQtXFx1MDAzZWtvYmopO1xcbiBvdXQ6XFxuIFxcdGRhbW9uX3N5c2ZzX2NvbnRleHRzX3JtX2RpcnMoY29udGV4dHMpO1xcbiBcXHRrb2JqZWN0X3B1dChcXHUwMDI2Y29udGV4dC1cXHUwMDNla29iaik7XFxuQEAgLTI1MDEsNiArMjUxMyw3IEBAIHN0YXRpYyB2b2lkIGRhbW9uX3N5c2ZzX2tkYW1vbmRzX3JtX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX2tkYW1vbmRzICprZGFtb25kcylcXG4gXFxuIFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBrZGFtb25kcy1cXHUwMDNlbnI7IGkrKykge1xcbiBcXHRcXHRkYW1vbl9zeXNmc19rZGFtb25kX3JtX2RpcnMoa2RhbW9uZHNfYXJyW2ldKTtcXG4rXFx0XFx0a29iamVjdF9kZWwoXFx1MDAyNmtkYW1vbmRzX2FycltpXS1cXHUwMDNla29iaik7XFxuIFxcdFxcdGtvYmplY3RfcHV0KFxcdTAwMjZrZGFtb25kc19hcnJbaV0tXFx1MDAzZWtvYmopO1xcbiBcXHR9XFxuIFxcdGtkYW1vbmRzLVxcdTAwM2VuciA9IDA7XFxuQEAgLTI1NTUsMTMgKzI1NjgsMTUgQEAgc3RhdGljIGludCBkYW1vbl9zeXNmc19rZGFtb25kc19hZGRfZGlycyhzdHJ1Y3QgZGFtb25fc3lzZnNfa2RhbW9uZHMgKmtkYW1vbmRzLFxcbiBcXG4gXFx0XFx0ZXJyID0gZGFtb25fc3lzZnNfa2RhbW9uZF9hZGRfZGlycyhrZGFtb25kKTtcXG4gXFx0XFx0aWYgKGVycilcXG4tXFx0XFx0XFx0Z290byBvdXQ7XFxuK1xcdFxcdFxcdGdvdG8gZGVsX291dDtcXG4gXFxuIFxcdFxcdGtkYW1vbmRzX2FycltpXSA9IGtkYW1vbmQ7XFxuIFxcdFxcdGtkYW1vbmRzLVxcdTAwM2VucisrO1xcbiBcXHR9XFxuIFxcdHJldHVybiAwO1xcbiBcXG4rZGVsX291dDpcXG4rXFx0a29iamVjdF9kZWwoXFx1MDAyNmtkYW1vbmQtXFx1MDAzZWtvYmopO1xcbiBvdXQ6XFxuIFxcdGRhbW9uX3N5c2ZzX2tkYW1vbmRzX3JtX2RpcnMoa2RhbW9uZHMpO1xcbiBcXHRrb2JqZWN0X3B1dChcXHUwMDI2a2RhbW9uZC1cXHUwMDNla29iaik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDIyOjIxOjA3LjE3MjkyNjY0OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTgxNDY5MTU0MTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiREFNT05fU1lTRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkYW1vbl9zeXNmc19zY2hlbWVzX2FkZF9kaXJzXCIsXG4gICAgXCJkYW1vbl9zeXNmc19zY2hlbWVzX3JtX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX3RhcmdldHNfYWRkX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX3RhcmdldHNfcm1fZGlyc1wiLFxuICAgIFwiZGFtb25fc3lzZnNfY29udGV4dHNfYWRkX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX2NvbnRleHRzX3JtX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX2tkYW1vbmRzX2FkZF9kaXJzXCIsXG4gICAgXCJkYW1vbl9zeXNmc19rZGFtb25kc19ybV9kaXJzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMga29iamVjdCBsZWFrcyBhbmQgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIGlzc3VlcyBpbiBEQU1PTiBzeXNmcyBkaXJlY3RvcnkgbWFuYWdlbWVudCBieSBhZGRpbmcgbWlzc2luZyBrb2JqZWN0X2RlbCgpIGNhbGxzLiBUaGlzIGlzIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZSB2aWEgc3lzZnMgaW50ZXJhY3Rpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGE0YWQwNzkwOWEyZTBmYzNiMWM0MDVlYzk1YzQxZDNmNzZhODNiNjlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEp1biAyOCAyMjoyMTowNSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL21tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuYyBiL21tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuY1xuaW5kZXggMzI5Y2ZkMGJiZTlmMzIuLjBiOGE2ZjFmNmI5ZmM1IDEwMDY0NFxuLS0tIGEvbW0vZGFtb24vc3lzZnMtc2NoZW1lcy5jXG4rKysgYi9tbS9kYW1vbi9zeXNmcy1zY2hlbWVzLmNcbkBAIC0zMzQsNiArMzM0LDcgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfc2NoZW1lX3JlZ2lvbnNfcm1fZGlycyhcbiBcdGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShyLCBuZXh0LCBcdTAwMjZyZWdpb25zLVx1MDAzZXJlZ2lvbnNfbGlzdCwgbGlzdCkge1xuIFx0XHRkYW1vc19zeXNmc19yZWdpb25fcm1fZGlycyhyKTtcbiBcdFx0bGlzdF9kZWwoXHUwMDI2ci1cdTAwM2VsaXN0KTtcbitcdFx0a29iamVjdF9kZWwoXHUwMDI2ci1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2ci1cdTAwM2Vrb2JqKTtcbiBcdFx0cmVnaW9ucy1cdTAwM2Vucl9yZWdpb25zLS07XG4gXHR9XG5AQCAtOTEzLDggKzkxNCwxMCBAQCBzdGF0aWMgdm9pZCBkYW1vbl9zeXNmc19zY2hlbWVfZmlsdGVyc19ybV9kaXJzKFxuIFx0c3RydWN0IGRhbW9uX3N5c2ZzX3NjaGVtZV9maWx0ZXIgKipmaWx0ZXJzX2FyciA9IGZpbHRlcnMtXHUwMDNlZmlsdGVyc19hcnI7XG4gXHRpbnQgaTtcbiBcbi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGZpbHRlcnMtXHUwMDNlbnI7IGkrKylcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIGZpbHRlcnMtXHUwMDNlbnI7IGkrKykge1xuK1x0XHRrb2JqZWN0X2RlbChcdTAwMjZmaWx0ZXJzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2ZmlsdGVyc19hcnJbaV0tXHUwMDNla29iaik7XG4rXHR9XG4gXHRmaWx0ZXJzLVx1MDAzZW5yID0gMDtcbiBcdGtmcmVlKGZpbHRlcnNfYXJyKTtcbiBcdGZpbHRlcnMtXHUwMDNlZmlsdGVyc19hcnIgPSBOVUxMO1xuQEAgLTE0NjIsOCArMTQ2NSwxMCBAQCBzdGF0aWMgdm9pZCBkYW1vc19zeXNmc19xdW90YV9nb2Fsc19ybV9kaXJzKFxuIFx0c3RydWN0IGRhbW9zX3N5c2ZzX3F1b3RhX2dvYWwgKipnb2Fsc19hcnIgPSBnb2Fscy1cdTAwM2Vnb2Fsc19hcnI7XG4gXHRpbnQgaTtcbiBcbi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGdvYWxzLVx1MDAzZW5yOyBpKyspXG4rXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBnb2Fscy1cdTAwM2VucjsgaSsrKSB7XG4rXHRcdGtvYmplY3RfZGVsKFx1MDAyNmdvYWxzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2Z29hbHNfYXJyW2ldLVx1MDAzZWtvYmopO1xuK1x0fVxuIFx0Z29hbHMtXHUwMDNlbnIgPSAwO1xuIFx0a2ZyZWUoZ29hbHNfYXJyKTtcbiBcdGdvYWxzLVx1MDAzZWdvYWxzX2FyciA9IE5VTEw7XG5AQCAtMjE0Myw4ICsyMTQ4LDEwIEBAIHN0YXRpYyB2b2lkIGRhbW9zX3N5c2ZzX2Rlc3RzX3JtX2RpcnMoXG4gXHRzdHJ1Y3QgZGFtb3Nfc3lzZnNfZGVzdCAqKmRlc3RzX2FyciA9IGRlc3RzLVx1MDAzZWRlc3RzX2FycjtcbiBcdGludCBpO1xuIFxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgZGVzdHMtXHUwMDNlbnI7IGkrKylcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIGRlc3RzLVx1MDAzZW5yOyBpKyspIHtcbitcdFx0a29iamVjdF9kZWwoXHUwMDI2ZGVzdHNfYXJyW2ldLVx1MDAzZWtvYmopO1xuIFx0XHRrb2JqZWN0X3B1dChcdTAwMjZkZXN0c19hcnJbaV0tXHUwMDNla29iaik7XG4rXHR9XG4gXHRkZXN0cy1cdTAwM2VuciA9IDA7XG4gXHRrZnJlZShkZXN0c19hcnIpO1xuIFx0ZGVzdHMtXHUwMDNlZGVzdHNfYXJyID0gTlVMTDtcbkBAIC0yNjg2LDYgKzI2OTMsNyBAQCB2b2lkIGRhbW9uX3N5c2ZzX3NjaGVtZXNfcm1fZGlycyhzdHJ1Y3QgZGFtb25fc3lzZnNfc2NoZW1lcyAqc2NoZW1lcylcbiBcbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIHNjaGVtZXMtXHUwMDNlbnI7IGkrKykge1xuIFx0XHRkYW1vbl9zeXNmc19zY2hlbWVfcm1fZGlycyhzY2hlbWVzX2FycltpXSk7XG4rXHRcdGtvYmplY3RfZGVsKFx1MDAyNnNjaGVtZXNfYXJyW2ldLVx1MDAzZWtvYmopO1xuIFx0XHRrb2JqZWN0X3B1dChcdTAwMjZzY2hlbWVzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdH1cbiBcdHNjaGVtZXMtXHUwMDNlbnIgPSAwO1xuQEAgLTI3MjcsMTMgKzI3MzUsMTUgQEAgc3RhdGljIGludCBkYW1vbl9zeXNmc19zY2hlbWVzX2FkZF9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19zY2hlbWVzICpzY2hlbWVzLFxuIFx0XHRcdGdvdG8gb3V0O1xuIFx0XHRlcnIgPSBkYW1vbl9zeXNmc19zY2hlbWVfYWRkX2RpcnMoc2NoZW1lKTtcbiBcdFx0aWYgKGVycilcbi1cdFx0XHRnb3RvIG91dDtcbitcdFx0XHRnb3RvIGRlbF9vdXQ7XG4gXG4gXHRcdHNjaGVtZXNfYXJyW2ldID0gc2NoZW1lO1xuIFx0XHRzY2hlbWVzLVx1MDAzZW5yKys7XG4gXHR9XG4gXHRyZXR1cm4gMDtcbiBcbitkZWxfb3V0OlxuK1x0a29iamVjdF9kZWwoXHUwMDI2c2NoZW1lLVx1MDAzZWtvYmopO1xuIG91dDpcbiBcdGRhbW9uX3N5c2ZzX3NjaGVtZXNfcm1fZGlycyhzY2hlbWVzKTtcbiBcdGtvYmplY3RfcHV0KFx1MDAyNnNjaGVtZS1cdTAwM2Vrb2JqKTtcbkBAIC0zMTI3LDEyICszMTM3LDE0IEBAIHZvaWQgZGFtb3Nfc3lzZnNfcG9wdWxhdGVfcmVnaW9uX2RpcihzdHJ1Y3QgZGFtb25fc3lzZnNfc2NoZW1lcyAqc3lzZnNfc2NoZW1lcyxcbiBcdFx0XHRcdHN5c2ZzX3JlZ2lvbnMtXHUwMDNlbnJfcmVnaW9ucykpXG4gXHRcdGdvdG8gb3V0O1xuIFx0aWYgKGRhbW9zX3N5c2ZzX3JlZ2lvbl9hZGRfZGlycyhyZWdpb24sIGN0eCwgcikpXG4tXHRcdGdvdG8gb3V0O1xuK1x0XHRnb3RvIGRlbF9vdXQ7XG4gXG4gXHRsaXN0X2FkZF90YWlsKFx1MDAyNnJlZ2lvbi1cdTAwM2VsaXN0LCBcdTAwMjZzeXNmc19yZWdpb25zLVx1MDAzZXJlZ2lvbnNfbGlzdCk7XG4gXHRzeXNmc19yZWdpb25zLVx1MDAzZW5yX3JlZ2lvbnMrKztcbiBcdHJldHVybjtcbiBcbitkZWxfb3V0OlxuK1x0a29iamVjdF9kZWwoXHUwMDI2cmVnaW9uLVx1MDAzZWtvYmopO1xuIG91dDpcbiBcdGtvYmplY3RfcHV0KFx1MDAyNnJlZ2lvbi1cdTAwM2Vrb2JqKTtcbiB9XG5kaWZmIC0tZ2l0IGEvbW0vZGFtb24vc3lzZnMuYyBiL21tL2RhbW9uL3N5c2ZzLmNcbmluZGV4IDJlOTVlM2JhYzc3NGRjLi5mZmJjOTk0MTFmNTNiMyAxMDA2NDRcbi0tLSBhL21tL2RhbW9uL3N5c2ZzLmNcbisrKyBiL21tL2RhbW9uL3N5c2ZzLmNcbkBAIC0xMDcsOCArMTA3LDEwIEBAIHN0YXRpYyB2b2lkIGRhbW9uX3N5c2ZzX3JlZ2lvbnNfcm1fZGlycyhzdHJ1Y3QgZGFtb25fc3lzZnNfcmVnaW9ucyAqcmVnaW9ucylcbiBcdHN0cnVjdCBkYW1vbl9zeXNmc19yZWdpb24gKipyZWdpb25zX2FyciA9IHJlZ2lvbnMtXHUwMDNlcmVnaW9uc19hcnI7XG4gXHRpbnQgaTtcbiBcbi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIHJlZ2lvbnMtXHUwMDNlbnI7IGkrKylcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIHJlZ2lvbnMtXHUwMDNlbnI7IGkrKykge1xuK1x0XHRrb2JqZWN0X2RlbChcdTAwMjZyZWdpb25zX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2cmVnaW9uc19hcnJbaV0tXHUwMDNla29iaik7XG4rXHR9XG4gXHRyZWdpb25zLVx1MDAzZW5yID0gMDtcbiBcdGtmcmVlKHJlZ2lvbnNfYXJyKTtcbiBcdHJlZ2lvbnMtXHUwMDNlcmVnaW9uc19hcnIgPSBOVUxMO1xuQEAgLTMzMyw2ICszMzUsNyBAQCBzdGF0aWMgdm9pZCBkYW1vbl9zeXNmc190YXJnZXRzX3JtX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX3RhcmdldHMgKnRhcmdldHMpXG4gXG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyB0YXJnZXRzLVx1MDAzZW5yOyBpKyspIHtcbiBcdFx0ZGFtb25fc3lzZnNfdGFyZ2V0X3JtX2RpcnModGFyZ2V0c19hcnJbaV0pO1xuK1x0XHRrb2JqZWN0X2RlbChcdTAwMjZ0YXJnZXRzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2dGFyZ2V0c19hcnJbaV0tXHUwMDNla29iaik7XG4gXHR9XG4gXHR0YXJnZXRzLVx1MDAzZW5yID0gMDtcbkBAIC0zNzEsMTMgKzM3NCwxNSBAQCBzdGF0aWMgaW50IGRhbW9uX3N5c2ZzX3RhcmdldHNfYWRkX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX3RhcmdldHMgKnRhcmdldHMsXG4gXG4gXHRcdGVyciA9IGRhbW9uX3N5c2ZzX3RhcmdldF9hZGRfZGlycyh0YXJnZXQpO1xuIFx0XHRpZiAoZXJyKVxuLVx0XHRcdGdvdG8gb3V0O1xuK1x0XHRcdGdvdG8gZGVsX291dDtcbiBcbiBcdFx0dGFyZ2V0c19hcnJbaV0gPSB0YXJnZXQ7XG4gXHRcdHRhcmdldHMtXHUwMDNlbnIrKztcbiBcdH1cbiBcdHJldHVybiAwO1xuIFxuK2RlbF9vdXQ6XG4rXHRrb2JqZWN0X2RlbChcdTAwMjZ0YXJnZXQtXHUwMDNla29iaik7XG4gb3V0OlxuIFx0ZGFtb25fc3lzZnNfdGFyZ2V0c19ybV9kaXJzKHRhcmdldHMpO1xuIFx0a29iamVjdF9wdXQoXHUwMDI2dGFyZ2V0LVx1MDAzZWtvYmopO1xuQEAgLTk1Nyw4ICs5NjIsMTAgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfZmlsdGVyc19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19maWx0ZXJzICpmaWx0ZXJzKVxuIFx0c3RydWN0IGRhbW9uX3N5c2ZzX2ZpbHRlciAqKmZpbHRlcnNfYXJyID0gZmlsdGVycy1cdTAwM2VmaWx0ZXJzX2FycjtcbiBcdGludCBpO1xuIFxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgZmlsdGVycy1cdTAwM2VucjsgaSsrKVxuK1x0Zm9yIChpID0gMDsgaSBcdTAwM2MgZmlsdGVycy1cdTAwM2VucjsgaSsrKSB7XG4rXHRcdGtvYmplY3RfZGVsKFx1MDAyNmZpbHRlcnNfYXJyW2ldLVx1MDAzZWtvYmopO1xuIFx0XHRrb2JqZWN0X3B1dChcdTAwMjZmaWx0ZXJzX2FycltpXS1cdTAwM2Vrb2JqKTtcbitcdH1cbiBcdGZpbHRlcnMtXHUwMDNlbnIgPSAwO1xuIFx0a2ZyZWUoZmlsdGVyc19hcnIpO1xuIFx0ZmlsdGVycy1cdTAwM2VmaWx0ZXJzX2FyciA9IE5VTEw7XG5AQCAtMTEzNCw2ICsxMTQxLDcgQEAgc3RhdGljIHZvaWQgZGFtb25fc3lzZnNfcHJvYmVzX3JtX2RpcnMoXG4gXG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBwcm9iZXMtXHUwMDNlbnI7IGkrKykge1xuIFx0XHRkYW1vbl9zeXNmc19wcm9iZV9ybV9kaXJzKHByb2Jlc19hcnJbaV0pO1xuK1x0XHRrb2JqZWN0X2RlbChcdTAwMjZwcm9iZXNfYXJyW2ldLVx1MDAzZWtvYmopO1xuIFx0XHRrb2JqZWN0X3B1dChcdTAwMjZwcm9iZXNfYXJyW2ldLVx1MDAzZWtvYmopO1xuIFx0fVxuIFx0cHJvYmVzLVx1MDAzZW5yID0gMDtcbkBAIC0xMTc1LDYgKzExODMsNyBAQCBzdGF0aWMgaW50IGRhbW9uX3N5c2ZzX3Byb2Jlc19hZGRfZGlycyhcbiBcbiBcdFx0ZXJyID0gZGFtb25fc3lzZnNfcHJvYmVfYWRkX2RpcnMocHJvYmUpO1xuIFx0XHRpZiAoZXJyKSB7XG4rXHRcdFx0a29iamVjdF9kZWwoXHUwMDI2cHJvYmUtXHUwMDNla29iaik7XG4gXHRcdFx0a29iamVjdF9wdXQoXHUwMDI2cHJvYmUtXHUwMDNla29iaik7XG4gXHRcdFx0ZGFtb25fc3lzZnNfcHJvYmVzX3JtX2RpcnMocHJvYmVzKTtcbiBcdFx0XHRyZXR1cm4gZXJyO1xuQEAgLTE2NDIsNiArMTY1MSw3IEBAIHN0YXRpYyB2b2lkIGRhbW9uX3N5c2ZzX2NvbnRleHRzX3JtX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX2NvbnRleHRzICpjb250ZXh0cylcbiBcbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIGNvbnRleHRzLVx1MDAzZW5yOyBpKyspIHtcbiBcdFx0ZGFtb25fc3lzZnNfY29udGV4dF9ybV9kaXJzKGNvbnRleHRzX2FycltpXSk7XG4rXHRcdGtvYmplY3RfZGVsKFx1MDAyNmNvbnRleHRzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdFx0a29iamVjdF9wdXQoXHUwMDI2Y29udGV4dHNfYXJyW2ldLVx1MDAzZWtvYmopO1xuIFx0fVxuIFx0Y29udGV4dHMtXHUwMDNlbnIgPSAwO1xuQEAgLTE2ODAsMTMgKzE2OTAsMTUgQEAgc3RhdGljIGludCBkYW1vbl9zeXNmc19jb250ZXh0c19hZGRfZGlycyhzdHJ1Y3QgZGFtb25fc3lzZnNfY29udGV4dHMgKmNvbnRleHRzLFxuIFxuIFx0XHRlcnIgPSBkYW1vbl9zeXNmc19jb250ZXh0X2FkZF9kaXJzKGNvbnRleHQpO1xuIFx0XHRpZiAoZXJyKVxuLVx0XHRcdGdvdG8gb3V0O1xuK1x0XHRcdGdvdG8gZGVsX291dDtcbiBcbiBcdFx0Y29udGV4dHNfYXJyW2ldID0gY29udGV4dDtcbiBcdFx0Y29udGV4dHMtXHUwMDNlbnIrKztcbiBcdH1cbiBcdHJldHVybiAwO1xuIFxuK2RlbF9vdXQ6XG4rXHRrb2JqZWN0X2RlbChcdTAwMjZjb250ZXh0LVx1MDAzZWtvYmopO1xuIG91dDpcbiBcdGRhbW9uX3N5c2ZzX2NvbnRleHRzX3JtX2RpcnMoY29udGV4dHMpO1xuIFx0a29iamVjdF9wdXQoXHUwMDI2Y29udGV4dC1cdTAwM2Vrb2JqKTtcbkBAIC0yNTAxLDYgKzI1MTMsNyBAQCBzdGF0aWMgdm9pZCBkYW1vbl9zeXNmc19rZGFtb25kc19ybV9kaXJzKHN0cnVjdCBkYW1vbl9zeXNmc19rZGFtb25kcyAqa2RhbW9uZHMpXG4gXG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBrZGFtb25kcy1cdTAwM2VucjsgaSsrKSB7XG4gXHRcdGRhbW9uX3N5c2ZzX2tkYW1vbmRfcm1fZGlycyhrZGFtb25kc19hcnJbaV0pO1xuK1x0XHRrb2JqZWN0X2RlbChcdTAwMjZrZGFtb25kc19hcnJbaV0tXHUwMDNla29iaik7XG4gXHRcdGtvYmplY3RfcHV0KFx1MDAyNmtkYW1vbmRzX2FycltpXS1cdTAwM2Vrb2JqKTtcbiBcdH1cbiBcdGtkYW1vbmRzLVx1MDAzZW5yID0gMDtcbkBAIC0yNTU1LDEzICsyNTY4LDE1IEBAIHN0YXRpYyBpbnQgZGFtb25fc3lzZnNfa2RhbW9uZHNfYWRkX2RpcnMoc3RydWN0IGRhbW9uX3N5c2ZzX2tkYW1vbmRzICprZGFtb25kcyxcbiBcbiBcdFx0ZXJyID0gZGFtb25fc3lzZnNfa2RhbW9uZF9hZGRfZGlycyhrZGFtb25kKTtcbiBcdFx0aWYgKGVycilcbi1cdFx0XHRnb3RvIG91dDtcbitcdFx0XHRnb3RvIGRlbF9vdXQ7XG4gXG4gXHRcdGtkYW1vbmRzX2FycltpXSA9IGtkYW1vbmQ7XG4gXHRcdGtkYW1vbmRzLVx1MDAzZW5yKys7XG4gXHR9XG4gXHRyZXR1cm4gMDtcbiBcbitkZWxfb3V0OlxuK1x0a29iamVjdF9kZWwoXHUwMDI2a2RhbW9uZC1cdTAwM2Vrb2JqKTtcbiBvdXQ6XG4gXHRkYW1vbl9zeXNmc19rZGFtb25kc19ybV9kaXJzKGtkYW1vbmRzKTtcbiBcdGtvYmplY3RfcHV0KFx1MDAyNmtkYW1vbmQtXHUwMDNla29iaik7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQyMjoyMTowNy4xNzI5MjgwNzhaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MjQxMjI2MDQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkRBTU9OIFN5c2ZzIFBhdGNoIFJldmlldyoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2ggaGVyZSB0aGF0J3MgdG91Y2hpbmcgYG1tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuY2AgYW5kIGBtbS9kYW1vbi9zeXNmcy5jYC4gTG9va3MgbGlrZSBpdCdzIGFkZHJlc3NpbmcgYSBwcmV0dHkgbmFzdHkgYnVnLCB3aGVyZSB3ZSdyZSBtaXNzaW5nIGBrb2JqZWN0X2RlbCgpYCBjYWxscyBiZWZvcmUgYGtvYmplY3RfcHV0KClgIGluIHRoZSBgcm1fZGlyc2AgZnVuY3Rpb25zIGFuZCBlcnJvciBwYXRocyBpbiB0aGUgYGFkZF9kaXJzYCBmdW5jdGlvbnMuIFNlZW1zIGxpa2UgdGhpcyBpcyBhIHJlY2lwZSBmb3Igc3lzZnMgZGlyZWN0b3J5IGxlYWtzIG9yLCBldmVuIHdvcnNlLCB1c2UtYWZ0ZXItZnJlZSBvciBkb3VibGUtZnJlZSBzY2VuYXJpb3MuIE5vdCBnb29kIVxuXG5Ob3csIHRoZSBxdWVzdGlvbiBpcywgaXMgdGhpcyBzb21ldGhpbmcgd2Ugc2hvdWxkIGJlIGZ1enppbmc/IExldCdzIHNlZS4uLiBpdCdzIG1vZGlmeWluZyBmaWxlcyByZWxhdGVkIHRvIERBTU9OLCB3aGljaCBpcyBhIGtlcm5lbCBzdWJzeXN0ZW0uIEFuZCBpdCBkZWFscyB3aXRoIHN5c2ZzIGludGVyZmFjZXMuIFJpZ2h0LCBzeXNmcy4uLiBzeXprYWxsZXIgY2FuIGRlZmluaXRlbHkgZ2V0IGF0IHRob3NlIHdpdGggYHN5el9tb3VudF9pbWFnZWAgb3IganVzdCBieSBoaXR0aW5nIHRoZW0gZGlyZWN0bHkuIEhvbGQgb24gYSBzZWNvbmQsIGRvZXNuJ3Qgc3l6a2FsbGVyICphbHJlYWR5KiBmdXp6IHN5c2ZzPyBZZXMsIGl0IGRvZXMuIFNvIHRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBmaXhpbmcgYSByZWFsIGJ1ZyByZWxhdGVkIHRvIGBrb2JqZWN0YCBoYW5kbGluZy4gSXQncyBhIHByaW1lIHRhcmdldCBmb3IgZnV6emluZyBiZWNhdXNlIGl0J3MgZml4aW5nIGEgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdHkuXG5cbk5vdywgbGV0J3Mgc2VlIHdoYXQgY29uZmlnIG9wdGlvbnMgd2UgbmVlZCB0byBhY3R1YWxseSBlbmFibGUgREFNT04gc3lzZnMgc28gd2UgY2FuIGdldCB0aGlzIHRoaW5nIGZ1enplZCBwcm9wZXJseS4gVGltZSB0byBkaWcgaW50byB0aGUgY29uZmlnLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDk4LCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMjI6MjE6MTIuNDE0MTU1NjlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjI1Njg5NDAzMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgREFNT05fU1lTRlNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibW0vZGFtb24vS2NvbmZpZz01Nj1jb25maWcgREFNT05fVkFERFJfS1VOSVRfVEVTVFxcbi0tXFxubW0vZGFtb24vS2NvbmZpZy02Ny1cXG5tbS9kYW1vbi9LY29uZmlnOjY4OmNvbmZpZyBEQU1PTl9TWVNGU1xcbm1tL2RhbW9uL0tjb25maWctNjktXFx0Ym9vbCBcXFwiREFNT04gc3lzZnMgaW50ZXJmYWNlXFxcIlxcbi0tXFxubW0vZGFtb24vS2NvbmZpZy03NS1cXG5tbS9kYW1vbi9LY29uZmlnOjc2OmNvbmZpZyBEQU1PTl9TWVNGU19LVU5JVF9URVNUXFxubW0vZGFtb24vS2NvbmZpZy03Ny1cXHRib29sIFxcXCJUZXN0IGZvciBkYW1vbiBzeXNmcyBpbnRlcmZhY2VcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMjI6MjE6MTQuNjcxMDU1MjcyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA4NDg4NjQxMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKk5hdmlnYXRpbmcgdGhlIERBTU9OIENvbmZpZ3VyYXRpb24gTGFuZHNjYXBlKipcblxuUmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgYERBTU9OX1NZU0ZTYCBpcyBjb25maWd1cmVkIHdpdGhpbiB0aGlzIHByb2plY3QuIE15IGZpcnN0IGluc3RpbmN0LCBhbmQgdGhlIG1vc3QgbG9naWNhbCBwbGFjZSB0byBzdGFydCwgaXMgdGhlIGBLY29uZmlnYCBmaWxlLiBTcGVjaWZpY2FsbHksIEknbSBnb2luZyB0byBsb29rIGF0IGBtbS9kYW1vbi9LY29uZmlnYC4gSXQncyBhbG1vc3QgY2VydGFpbiB0aGF0IHRoZSBgREFNT05fU1lTRlNgIG9wdGlvbiwgaWYgcHJlc2VudCwgd2lsbCBiZSBkZWZpbmVkIG9yIGF0IGxlYXN0IHJlZmVyZW5jZWQgdGhlcmUuIFRoYXQncyB0aGUgY29yZSBjb25maWd1cmF0aW9uIGZpbGUgZm9yIG1lbW9yeSBtYW5hZ2VtZW50IGFuZCBEQU1PTiBpcywgYWZ0ZXIgYWxsLCBhIG1lbW9yeSBtb25pdG9yaW5nIGFuZCBvcHRpbWl6YXRpb24gdG9vbC4gSSBleHBlY3QgdG8gZmluZCBkZXBlbmRlbmNpZXMsIGRlZmF1bHQgdmFsdWVzLCBhbmQgbWF5YmUgZXZlbiBzb21lIGhlbHAgdGV4dCBleHBsYWluaW5nIHRoZSBpbXBsaWNhdGlvbnMgb2YgZW5hYmxpbmcgb3IgZGlzYWJsaW5nIHRoaXMgZmVhdHVyZS4gTXkgZ29hbCBpcyB0byBnZXQgYSBxdWljayBvdmVydmlldyBvZiBob3cgdGhpcyBzcGVjaWZpYyBzeXNmcyBpbnRlcmZhY2UgaXMgY29udHJvbGxlZC4gRnJvbSB0aGVyZSwgSSBjYW4gc3RhcnQgdG8gdW5kZXJzdGFuZCBpdHMgaW1wYWN0IG9uIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyNDMsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQyMjoyMToxNy43NTU5NDMzNzNaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjY1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJtbS9kYW1vbi9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDYwLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDYwOlxcdFxcdGhlbHBcXG4gIDYxOlxcdFxcdCAgVGhpcyBidWlsZHMgdGhlIERBTU9OIHZpcnR1YWwgYWRkcmVzc2VzIG9wZXJhdGlvbnMgS3VuaXQgdGVzdCBzdWl0ZS5cXG4gIDYyOlxcdFxcbiAgNjM6XFx0XFx0ICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBLVW5pdCBhbmQgdW5pdCB0ZXN0cyBpbiBnZW5lcmFsLCBwbGVhc2UgcmVmZXJcXG4gIDY0OlxcdFxcdCAgdG8gdGhlIEtVbml0IGRvY3VtZW50YXRpb24uXFxuICA2NTpcXHRcXG4gIDY2OlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgTi5cXG4gIDY3OlxcdFxcbiAgNjg6XFx0Y29uZmlnIERBTU9OX1NZU0ZTXFxuICA2OTpcXHRcXHRib29sIFxcXCJEQU1PTiBzeXNmcyBpbnRlcmZhY2VcXFwiXFxuICA3MDpcXHRcXHRkZXBlbmRzIG9uIERBTU9OIFxcdTAwMjZcXHUwMDI2IFNZU0ZTXFxuICA3MTpcXHRcXHRkZWZhdWx0IERBTU9OXFxuICA3MjpcXHRcXHRoZWxwXFxuICA3MzpcXHRcXHQgIFRoaXMgYnVpbGRzIHRoZSBzeXNmcyBpbnRlcmZhY2UgZm9yIERBTU9OLiAgVGhlIHVzZXIgc3BhY2UgY2FuIHVzZVxcbiAgNzQ6XFx0XFx0ICB0aGUgaW50ZXJmYWNlIGZvciBhcmJpdHJhcnkgZGF0YSBhY2Nlc3MgbW9uaXRvcmluZy5cXG4gIDc1OlxcdFxcbiAgNzY6XFx0Y29uZmlnIERBTU9OX1NZU0ZTX0tVTklUX1RFU1RcXG4gIDc3OlxcdFxcdGJvb2wgXFxcIlRlc3QgZm9yIGRhbW9uIHN5c2ZzIGludGVyZmFjZVxcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcbiAgNzg6XFx0XFx0ZGVwZW5kcyBvbiBEQU1PTl9TWVNGUyBcXHUwMDI2XFx1MDAyNiBLVU5JVD15XFxuICA3OTpcXHRcXHRkZWZhdWx0IEtVTklUX0FMTF9URVNUU1xcbiAgODA6XFx0XFx0aGVscFxcbiAgODE6XFx0XFx0ICBUaGlzIGJ1aWxkcyB0aGUgREFNT04gc3lzZnMgaW50ZXJmYWNlIEt1bml0IHRlc3Qgc3VpdGUuXFxuICA4MjpcXHRcXG4gIDgzOlxcdFxcdCAgRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gS1VuaXQgYW5kIHVuaXQgdGVzdHMgaW4gZ2VuZXJhbCwgcGxlYXNlIHJlZmVyXFxuICA4NDpcXHRcXHQgIHRvIHRoZSBLVW5pdCBkb2N1bWVudGF0aW9uLlxcbiAgODU6XFx0XFxuICA4NjpcXHRcXHQgIElmIHVuc3VyZSwgc2F5IE4uXFxuICA4NzpcXHRcXG4gIDg4OlxcdGNvbmZpZyBEQU1PTl9SRUNMQUlNXFxuICA4OTpcXHRcXHRib29sIFxcXCJCdWlsZCBEQU1PTi1iYXNlZCByZWNsYWltIChEQU1PTl9SRUNMQUlNKVxcXCJcXG4gIDkwOlxcdFxcdGRlcGVuZHMgb24gREFNT05fUEFERFJcXG4gIDkxOlxcdFxcdGhlbHBcXG4gIDkyOlxcdFxcdCAgVGhpcyBidWlsZHMgdGhlIERBTU9OLWJhc2VkIHJlY2xhbWF0aW9uIHN1YnN5c3RlbS4gIEl0IGZpbmRzIHBhZ2VzXFxuICA5MzpcXHRcXHQgIHRoYXQgbm90IGFjY2Vzc2VkIGZvciBhIGxvbmcgdGltZSAoY29sZCkgdXNpbmcgREFNT04gYW5kIHJlY2xhaW1cXG4gIDk0OlxcdFxcdCAgdGhvc2UuXFxuICA5NTpcXHRcXG4gIDk2OlxcdFxcdCAgVGhpcyBpcyBzdWdnZXN0ZWQgdG8gYmUgdXNlZCBhcyBhIHByb2FjdGl2ZSBhbmQgbGlnaHR3ZWlnaHRcXG4gIDk3OlxcdFxcdCAgcmVjbGFtYXRpb24gdW5kZXIgbGlnaHQgbWVtb3J5IHByZXNzdXJlLCB3aGlsZSB0aGUgdHJhZGl0aW9uYWwgcGFnZVxcbiAgOTg6XFx0XFx0ICBzY2FubmluZy1iYXNlZCByZWNsYW1hdGlvbiBpcyB1c2VkIGZvciBoZWF2eSBwcmVzc3VyZS5cXG4gIDk5OlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQyMjoyMToxNy43NTYwMDE1OTNaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NDgyNDM1NjI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgREFNT04gU3lzZnMgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgYERBTU9OX1NZU0ZTYCBpcyB0aGUga2V5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGhlcmUuIEl0J3MgY2xlYXJseSBkZXBlbmRlbnQgb24gYERBTU9OYCBhbmQgYFNZU0ZTYCwgd2hpY2ggbWFrZXMgc2Vuc2UuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBzY29wZSBvZiB0aGlzIGNoYW5nZSwgc28gSSdtIHNjYW5uaW5nIHRoZSBtb2RpZmllZCBmdW5jdGlvbnMgdG8gdW5kZXJzdGFuZCB3aGF0J3MgYmVpbmcgdG91Y2hlZC5cblxuVGhlIHBhdGNoIHNlZW1zIGhlYXZpbHkgZm9jdXNlZCBvbiBzeXNmcyBkaXJlY3RvcnkgbWFuaXB1bGF0aW9uIHdpdGhpbiB0aGUgREFNT04gc3Vic3lzdGVtLiBJIHNlZSBzZXZlcmFsIGZ1bmN0aW9ucyB3aXRoIFwicm1fZGlyc1wiIGFuZCBcImFkZF9kaXJzXCIgaW4gdGhlaXIgbmFtZXMuIEkndmUgZ290OlxuXG4qICAgYGRhbW9uX3N5c2ZzX3NjaGVtZV9yZWdpb25zX3JtX2RpcnNgXG4qICAgYGRhbW9uX3N5c2ZzX3NjaGVtZV9maWx0ZXJzX3JtX2RpcnNgXG4qICAgYGRhbW9zX3N5c2ZzX3F1b3RhX2dvYWxzX3JtX2RpcnNgXG4qICAgYGRhbW9zX3N5c2ZzX2Rlc3RzX3JtX2RpcnNgXG4qICAgYGRhbW9uX3N5c2ZzX3NjaGVtZXNfcm1fZGlyc2BcbiogICBgZGFtb25fc3lzZnNfc2NoZW1lc19hZGRfZGlyc2BcbiogICBgZGFtb3Nfc3lzZnNfcG9wdWxhdGVfcmVnaW9uX2RpcmBcbiogICBgZGFtb25fc3lzZnNfcmVnaW9uc19ybV9kaXJzYFxuKiAgIGBkYW1vbl9zeXNmc190YXJnZXRzX3JtX2RpcnNgXG4qICAgYGRhbW9uX3N5c2ZzX3RhcmdldHNfYWRkX2RpcnNgXG4qICAgYGRhbW9uX3N5c2ZzX2ZpbHRlcnNfcm1fZGlyc2BcbiogICBgZGFtb25fc3lzZnNfcHJvYmVzX3JtX2RpcnNgXG4qICAgYGRhbW9uX3N5c2ZzX3Byb2Jlc19hZGRfZGlyc2BcbiogICBgZGFtb25fc3lzZnNfY29udGV4dHNfcm1fZGlyc2BcbiogICBgZGFtb25fc3lzZnNfY29udGV4dHNfYWRkX2RpcnNgXG4qICAgYGRhbW9uX3N5c2ZzX2tkYW1vbmRzX3JtX2RpcnNgXG4qICAgYGRhbW9uX3N5c2ZzX2tkYW1vbmRzX2FkZF9kaXJzYFxuXG5JdCBsb29rcyBsaWtlIHRoZSBwYXRjaCBpcyBhZGRpbmcgYW5kIHJlbW92aW5nIHN5c2ZzIGRpcmVjdG9yaWVzIHJlbGF0ZWQgdG8gc2NoZW1lcywgdGFyZ2V0cywgY29udGV4dHMsIGFuZCBrZGFtb25kcy4gSSBjYW4gcHJvYmFibHkgbmFycm93IGRvd24gbXkgYW5hbHlzaXMgYnkgZm9jdXNpbmcgb24gYSBzZWxlY3QgZmV3LCBzcGVjaWZpY2FsbHkgdGhlIGFkZC9yZW1vdmUgcGFpcnMgZm9yIHNjaGVtZXMsIHRhcmdldHMsIGNvbnRleHRzLCBhbmQga2RhbW9uZHMuXG5cblRvIGNvbmZpcm0gbXkgdW5kZXJzdGFuZGluZywgSSdtIGNoZWNraW5nIHRoYXQgYERBTU9OX1NZU0ZTYCBpcyBpbmRlZWQgdGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBpdGVtIGhlcmUuIEFuZCB5ZXMsIGl0IGlzLiBUaGF0IGNvbmZpcm1zIHRoZSBzY29wZSBvZiB0aGlzIHBhdGNoLlxuXG5JJ20gcmVhZHkgdG8gY2FsbCBzZXQtcmVzdWx0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjA1NywiT3V0cHV0VG9rZW5zIjoxOTYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0ODcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQyMjoyMToyNS4yMzg0MzkwMTdaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxMzk4OTYyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJEQU1PTl9TWVNGU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImRhbW9uX3N5c2ZzX3NjaGVtZXNfYWRkX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX3NjaGVtZXNfcm1fZGlyc1wiLFxuICAgIFwiZGFtb25fc3lzZnNfdGFyZ2V0c19hZGRfZGlyc1wiLFxuICAgIFwiZGFtb25fc3lzZnNfdGFyZ2V0c19ybV9kaXJzXCIsXG4gICAgXCJkYW1vbl9zeXNmc19jb250ZXh0c19hZGRfZGlyc1wiLFxuICAgIFwiZGFtb25fc3lzZnNfY29udGV4dHNfcm1fZGlyc1wiLFxuICAgIFwiZGFtb25fc3lzZnNfa2RhbW9uZHNfYWRkX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX2tkYW1vbmRzX3JtX2RpcnNcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBrb2JqZWN0IGxlYWtzIGFuZCBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgaXNzdWVzIGluIERBTU9OIHN5c2ZzIGRpcmVjdG9yeSBtYW5hZ2VtZW50IGJ5IGFkZGluZyBtaXNzaW5nIGtvYmplY3RfZGVsKCkgY2FsbHMuIFRoaXMgaXMgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlIHZpYSBzeXNmcyBpbnRlcmFjdGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiREFNT05fU1lTRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkYW1vbl9zeXNmc19zY2hlbWVzX2FkZF9kaXJzXCIsXG4gICAgXCJkYW1vbl9zeXNmc19zY2hlbWVzX3JtX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX3RhcmdldHNfYWRkX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX3RhcmdldHNfcm1fZGlyc1wiLFxuICAgIFwiZGFtb25fc3lzZnNfY29udGV4dHNfYWRkX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX2NvbnRleHRzX3JtX2RpcnNcIixcbiAgICBcImRhbW9uX3N5c2ZzX2tkYW1vbmRzX2FkZF9kaXJzXCIsXG4gICAgXCJkYW1vbl9zeXNmc19rZGFtb25kc19ybV9kaXJzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMga29iamVjdCBsZWFrcyBhbmQgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIGlzc3VlcyBpbiBEQU1PTiBzeXNmcyBkaXJlY3RvcnkgbWFuYWdlbWVudCBieSBhZGRpbmcgbWlzc2luZyBrb2JqZWN0X2RlbCgpIGNhbGxzLiBUaGlzIGlzIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZSB2aWEgc3lzZnMgaW50ZXJhY3Rpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow5mcrf[1] Phase: Succeeded StartedAt: 2026-06-28 22:23:07 +0000 UTC FinishedAt: 2026-06-28 22:23:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-28 22:23:07 +0000 UTC FinishedAt: 2026-06-28 22:23:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[2] Phase: Succeeded StartedAt: 2026-06-28 22:23:07 +0000 UTC FinishedAt: 2026-06-29 02:11:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-06-28 22:23:08 +0000 UTC FinishedAt: 2026-06-29 02:11:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},"patched":{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-28 22:23:08 +0000 UTC FinishedAt: 2026-06-28 22:23:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-28 22:23:08 +0000 UTC FinishedAt: 2026-06-28 22:23:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow5mcrf/series-workflow5mcrf-convert-artifact-1548520152/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-28 22:23:31 +0000 UTC FinishedAt: 2026-06-28 22:44:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-28 22:23:31 +0000 UTC FinishedAt: 2026-06-28 22:44:12 +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:*6b80fb20-7896-4d88-8017-d24bba85dffe,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-workflow5mcrf/series-workflow5mcrf-convert-artifact-1548520152/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": "fb54d165-eb8b-477e-8aeb-0b528404c781", "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-workflow5mcrf/series-workflow5mcrf-build-action-473506574/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-28 22:23:32 +0000 UTC FinishedAt: 2026-06-28 22:44:02 +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:*6b80fb20-7896-4d88-8017-d24bba85dffe,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-workflow5mcrf/series-workflow5mcrf-convert-artifact-1548520152/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": "fb54d165-eb8b-477e-8aeb-0b528404c781", "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-workflow5mcrf/series-workflow5mcrf-build-action-473506574/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-28 22:44:12 +0000 UTC FinishedAt: 2026-06-28 22:44:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-28 22:44:12 +0000 UTC FinishedAt: 2026-06-28 22:44:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-28 22:44:12 +0000 UTC FinishedAt: 2026-06-28 22:44:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-28 22:44:12 +0000 UTC FinishedAt: 2026-06-28 22:44:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow5mcrf/series-workflow5mcrf-convert-artifact-639125823/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-28 22:44:22 +0000 UTC FinishedAt: 2026-06-28 22:46:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-28 22:44:22 +0000 UTC FinishedAt: 2026-06-28 22:46:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*fb54d165-eb8b-477e-8aeb-0b528404c781,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-workflow5mcrf/series-workflow5mcrf-build-action-473506574/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-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-28 22:46:30 +0000 UTC FinishedAt: 2026-06-28 22:46:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-28 22:46:30 +0000 UTC FinishedAt: 2026-06-28 22:46:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-28 22:46:30 +0000 UTC FinishedAt: 2026-06-28 23:06:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-28 22:46:30 +0000 UTC FinishedAt: 2026-06-28 23:06:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*6b80fb20-7896-4d88-8017-d24bba85dffe,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-workflow5mcrf/series-workflow5mcrf-convert-artifact-639125823/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": "cdbda484-032f-4269-b64b-c146d95ebdb4", "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-workflow5mcrf/series-workflow5mcrf-build-action-1494109523/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-28 22:46:30 +0000 UTC FinishedAt: 2026-06-28 23:06:35 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*6b80fb20-7896-4d88-8017-d24bba85dffe,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-workflow5mcrf/series-workflow5mcrf-convert-artifact-639125823/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": "cdbda484-032f-4269-b64b-c146d95ebdb4", "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-workflow5mcrf/series-workflow5mcrf-build-action-1494109523/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-28 23:06:45 +0000 UTC FinishedAt: 2026-06-28 23:06:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-28 23:06:45 +0000 UTC FinishedAt: 2026-06-28 23:06:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-06-28 23:06:45 +0000 UTC FinishedAt: 2026-06-28 23:09:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-06-28 23:06:45 +0000 UTC FinishedAt: 2026-06-28 23:08:53 +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:*cdbda484-032f-4269-b64b-c146d95ebdb4,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-workflow5mcrf/series-workflow5mcrf-build-action-1494109523/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-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-06-28 23:09:02 +0000 UTC FinishedAt: 2026-06-29 02:11:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-06-28 23:09:02 +0000 UTC FinishedAt: 2026-06-29 02:11:26 +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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},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:*fb54d165-eb8b-477e-8aeb-0b528404c781,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*cdbda484-032f-4269-b64b-c146d95ebdb4,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-workflow5mcrf/series-workflow5mcrf-build-action-473506574/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-workflow5mcrf/series-workflow5mcrf-build-action-1494109523/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-06-28 23:09:02 +0000 UTC FinishedAt: 2026-06-28 23:09:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-06-28 23:09:02 +0000 UTC FinishedAt: 2026-06-28 23:09:08 +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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},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-workflow5mcrf/series-workflow5mcrf-convert-artifact-2457806808/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-06-28 23:09:02 +0000 UTC FinishedAt: 2026-06-28 23:09:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-06-28 23:09:02 +0000 UTC FinishedAt: 2026-06-28 23:09:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-06-28 23:09:02 +0000 UTC FinishedAt: 2026-06-28 23:09:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-06-28 23:09:12 +0000 UTC FinishedAt: 2026-06-29 02:11:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5mcrf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_sysfs_schemes_add_dirs","damon_sysfs_schemes_rm_dirs","damon_sysfs_targets_add_dirs","damon_sysfs_targets_rm_dirs","damon_sysfs_contexts_add_dirs","damon_sysfs_contexts_rm_dirs","damon_sysfs_kdamonds_add_dirs","damon_sysfs_kdamonds_rm_dirs"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON_SYSFS"],"series_id":"f3b2b46b-1a8d-496e-9779-ebb7fc5dd739","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-06-28 23:09:12 +0000 UTC FinishedAt: 2026-06-29 02:11:16 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*fb54d165-eb8b-477e-8aeb-0b528404c781,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*cdbda484-032f-4269-b64b-c146d95ebdb4,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-workflow5mcrf/series-workflow5mcrf-build-action-473506574/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-workflow5mcrf/series-workflow5mcrf-build-action-1494109523/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-workflow5mcrf/series-workflow5mcrf-convert-artifact-2457806808/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,}