Name: series-workflowfq9wm Phase: Succeeded StartedAt: 2026-07-18 04:51:12 +0000 UTC FinishedAt: 2026-07-18 06:35:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[0] Phase: Succeeded StartedAt: 2026-07-18 04:51:12 +0000 UTC FinishedAt: 2026-07-18 05:11:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[0].run-triage Phase: Succeeded StartedAt: 2026-07-18 04:51:12 +0000 UTC FinishedAt: 2026-07-18 05:11:03 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "a204badd8432f93b7e862e7dac6db0fe3d65f370", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "a204badd8432f93b7e862e7dac6db0fe3d65f370", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "07ea8625-d5f0-4d0d-bb2f-988e8c05e973" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_sbi_ext_v01_handler" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE4IDA1OjEwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9zYmlfZXh0X3YwMV9oYW5kbGVyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHRoZSBoYW5kbGluZyBvZiBTQkkgdjAuMSBJUEkgYW5kIHJlbW90ZSBmZW5jZSBjYWxscyBpbiBSSVNDLVYgS1ZNIHdoZW4gdGFyZ2V0aW5nIGFsbCB2Q1BVcy4gSXQgcmVwbGFjZXMgYSBiaXRtYXNrIGNhbGN1bGF0aW9uIHRoYXQgY291bGQgb3ZlcmZsb3cgb3IgbWlzcyB2Q1BVcyB3aXRoIHByb3BlciB2Q1BVIGl0ZXJhdGlvbiBhbmQgY29ycmVjdCBoYmFzZS9obWFzayB2YWx1ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgS1ZNIGh5cGVydmlzb3IgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IGEgZ3Vlc3QgZXhlY3V0aW5nIHNwZWNpZmljIFNCSSBjYWxscy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOCAwNToxMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDk1NzE0ZTI0MDQyZWVlNWVhZDFkZGQyZmM2MzIwNzRiMTZkZDMyZjhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEp1bCAxOCAwNToxMDoxOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV92MDEuYyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3YwMS5jXG5pbmRleCBjOWMzMjNkNDU3N2E5OC4uZGU1NDRlYTNmMjhkYzMgMTAwNjQ0XG4tLS0gYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV92MDEuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfdjAxLmNcbkBAIC0xNiw4ICYjNDM7MTYsOSBAQFxuIHN0YXRpYyBpbnQga3ZtX3NiaV9leHRfdjAxX2hhbmRsZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3Qga3ZtX3J1biAqcnVuLFxuIFx0XHRcdFx0ICAgc3RydWN0IGt2bV92Y3B1X3NiaV9yZXR1cm4gKnJldGRhdGEpXG4ge1xuLVx0dWxvbmcgaG1hc2s7XG4tXHRpbnQgaSwgcmV0ID0gMDtcbiYjNDM7XHR1bG9uZyBoYmFzZSA9IDAsIGhtYXNrO1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgaTtcbiYjNDM7XHRpbnQgcmV0ID0gMDtcbiBcdHU2NCBuZXh0X2N5Y2xlO1xuIFx0c3RydWN0IGt2bV92Y3B1ICpydmNwdTtcbiBcdHN0cnVjdCBrdm0gKmt2bSA9IHZjcHUtXHUwMDNla3ZtO1xuQEAgLTQ2LDIwICYjNDM7NDcsMjUgQEAgc3RhdGljIGludCBrdm1fc2JpX2V4dF92MDFfaGFuZGxlcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fcnVuICpydW4sXG4gXHRcdHJldCA9IGt2bV9yaXNjdl92Y3B1X3Vuc2V0X2ludGVycnVwdCh2Y3B1LCBJUlFfVlNfU09GVCk7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBTQklfRVhUXzBfMV9TRU5EX0lQSTpcbi1cdFx0aWYgKGNwLVx1MDAzZWEwKVxuJiM0MztcdFx0aWYgKGNwLVx1MDAzZWEwKSB7XG4gXHRcdFx0aG1hc2sgPSBrdm1fcmlzY3ZfdmNwdV91bnByaXZfcmVhZCh2Y3B1LCBmYWxzZSwgY3AtXHUwMDNlYTAsIHV0cmFwKTtcbi1cdFx0ZWxzZVxuLVx0XHRcdGhtYXNrID0gKDFVTCBcdTAwM2NcdTAwM2MgYXRvbWljX3JlYWQoXHUwMDI2a3ZtLVx1MDAzZW9ubGluZV92Y3B1cykpIC0gMTtcbi1cdFx0aWYgKHV0cmFwLVx1MDAzZXNjYXVzZSlcbi1cdFx0XHRicmVhaztcbi1cbi1cdFx0Zm9yX2VhY2hfc2V0X2JpdChpLCBcdTAwMjZobWFzaywgQklUU19QRVJfTE9ORykge1xuLVx0XHRcdHJ2Y3B1ID0ga3ZtX2dldF92Y3B1X2J5X2lkKHZjcHUtXHUwMDNla3ZtLCBpKTtcbi1cdFx0XHRpZiAoIXJ2Y3B1KVxuLVx0XHRcdFx0Y29udGludWU7XG4tXHRcdFx0cmV0ID0ga3ZtX3Jpc2N2X3ZjcHVfc2V0X2ludGVycnVwdChydmNwdSwgSVJRX1ZTX1NPRlQpO1xuLVx0XHRcdGlmIChyZXQgXHUwMDNjIDApXG4mIzQzO1x0XHRcdGlmICh1dHJhcC1cdTAwM2VzY2F1c2UpXG4gXHRcdFx0XHRicmVhaztcbiYjNDM7XG4mIzQzO1x0XHRcdGZvcl9lYWNoX3NldF9iaXQoaSwgXHUwMDI2aG1hc2ssIEJJVFNfUEVSX0xPTkcpIHtcbiYjNDM7XHRcdFx0XHRydmNwdSA9IGt2bV9nZXRfdmNwdV9ieV9pZCh2Y3B1LVx1MDAzZWt2bSwgaSk7XG4mIzQzO1x0XHRcdFx0aWYgKCFydmNwdSlcbiYjNDM7XHRcdFx0XHRcdGNvbnRpbnVlO1xuJiM0MztcdFx0XHRcdHJldCA9IGt2bV9yaXNjdl92Y3B1X3NldF9pbnRlcnJ1cHQocnZjcHUsIElSUV9WU19TT0ZUKTtcbiYjNDM7XHRcdFx0XHRpZiAocmV0IFx1MDAzYyAwKVxuJiM0MztcdFx0XHRcdFx0YnJlYWs7XG4mIzQzO1x0XHRcdH1cbiYjNDM7XHRcdH0gZWxzZSB7XG4mIzQzO1x0XHRcdGt2bV9mb3JfZWFjaF92Y3B1KGksIHJ2Y3B1LCBrdm0pIHtcbiYjNDM7XHRcdFx0XHRyZXQgPSBrdm1fcmlzY3ZfdmNwdV9zZXRfaW50ZXJydXB0KHJ2Y3B1LCBJUlFfVlNfU09GVCk7XG4mIzQzO1x0XHRcdFx0aWYgKHJldCBcdTAwM2MgMClcbiYjNDM7XHRcdFx0XHRcdGJyZWFrO1xuJiM0MztcdFx0XHR9XG4gXHRcdH1cbiBcdFx0YnJlYWs7XG4gXHRjYXNlIFNCSV9FWFRfMF8xX1NIVVRET1dOOlxuQEAgLTcwLDI5ICYjNDM7NzYsMzEgQEAgc3RhdGljIGludCBrdm1fc2JpX2V4dF92MDFfaGFuZGxlcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fcnVuICpydW4sXG4gXHRjYXNlIFNCSV9FWFRfMF8xX1JFTU9URV9GRU5DRV9JOlxuIFx0Y2FzZSBTQklfRVhUXzBfMV9SRU1PVEVfU0ZFTkNFX1ZNQTpcbiBcdGNhc2UgU0JJX0VYVF8wXzFfUkVNT1RFX1NGRU5DRV9WTUFfQVNJRDpcbi1cdFx0aWYgKGNwLVx1MDAzZWEwKVxuJiM0MztcdFx0aWYgKGNwLVx1MDAzZWEwKSB7XG4gXHRcdFx0aG1hc2sgPSBrdm1fcmlzY3ZfdmNwdV91bnByaXZfcmVhZCh2Y3B1LCBmYWxzZSwgY3AtXHUwMDNlYTAsIHV0cmFwKTtcbi1cdFx0ZWxzZVxuLVx0XHRcdGhtYXNrID0gKDFVTCBcdTAwM2NcdTAwM2MgYXRvbWljX3JlYWQoXHUwMDI2a3ZtLVx1MDAzZW9ubGluZV92Y3B1cykpIC0gMTtcbiYjNDM7XHRcdH0gZWxzZSB7XG4mIzQzO1x0XHRcdGhiYXNlID0gLTFVTDtcbiYjNDM7XHRcdFx0aG1hc2sgPSAwO1xuJiM0MztcdFx0fVxuIFx0XHRpZiAodXRyYXAtXHUwMDNlc2NhdXNlKVxuIFx0XHRcdGJyZWFrO1xuIFxuIFx0XHRpZiAoY3AtXHUwMDNlYTcgPT0gU0JJX0VYVF8wXzFfUkVNT1RFX0ZFTkNFX0kpXG4tXHRcdFx0a3ZtX3Jpc2N2X2ZlbmNlX2kodmNwdS1cdTAwM2Vrdm0sIDAsIGhtYXNrKTtcbiYjNDM7XHRcdFx0a3ZtX3Jpc2N2X2ZlbmNlX2kodmNwdS1cdTAwM2Vrdm0sIGhiYXNlLCBobWFzayk7XG4gXHRcdGVsc2UgaWYgKGNwLVx1MDAzZWE3ID09IFNCSV9FWFRfMF8xX1JFTU9URV9TRkVOQ0VfVk1BKSB7XG4gXHRcdFx0dm1pZCA9IFJFQURfT05DRSh2Y3B1LVx1MDAzZWt2bS1cdTAwM2VhcmNoLnZtaWQudm1pZCk7XG4gXHRcdFx0aWYgKGNwLVx1MDAzZWExID09IDAgXHUwMDI2XHUwMDI2IGNwLVx1MDAzZWEyID09IDApXG4tXHRcdFx0XHRrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYWxsKHZjcHUtXHUwMDNla3ZtLCAwLCBobWFzaywgdm1pZCk7XG4mIzQzO1x0XHRcdFx0a3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FsbCh2Y3B1LVx1MDAzZWt2bSwgaGJhc2UsIGhtYXNrLCB2bWlkKTtcbiBcdFx0XHRlbHNlXG4tXHRcdFx0XHRrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfZ3ZhKHZjcHUtXHUwMDNla3ZtLCAwLCBobWFzaywgY3AtXHUwMDNlYTEsXG4mIzQzO1x0XHRcdFx0a3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2d2YSh2Y3B1LVx1MDAzZWt2bSwgaGJhc2UsIGhtYXNrLCBjcC1cdTAwM2VhMSxcbiBcdFx0XHRcdFx0XHRcdCAgY3AtXHUwMDNlYTIsIFBBR0VfU0hJRlQsIHZtaWQpO1xuIFx0XHR9IGVsc2Uge1xuIFx0XHRcdHZtaWQgPSBSRUFEX09OQ0UodmNwdS1cdTAwM2Vrdm0tXHUwMDNlYXJjaC52bWlkLnZtaWQpO1xuIFx0XHRcdGlmIChjcC1cdTAwM2VhMSA9PSAwIFx1MDAyNlx1MDAyNiBjcC1cdTAwM2VhMiA9PSAwKVxuLVx0XHRcdFx0a3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FzaWRfYWxsKHZjcHUtXHUwMDNla3ZtLCAwLCBobWFzayxcbiYjNDM7XHRcdFx0XHRrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYXNpZF9hbGwodmNwdS1cdTAwM2Vrdm0sIGhiYXNlLCBobWFzayxcbiBcdFx0XHRcdFx0XHRcdCAgICAgICBjcC1cdTAwM2VhMywgdm1pZCk7XG4gXHRcdFx0ZWxzZVxuLVx0XHRcdFx0a3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FzaWRfZ3ZhKHZjcHUtXHUwMDNla3ZtLCAwLCBobWFzayxcbiYjNDM7XHRcdFx0XHRrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYXNpZF9ndmEodmNwdS1cdTAwM2Vrdm0sIGhiYXNlLCBobWFzayxcbiBcdFx0XHRcdFx0XHRcdCAgICAgICBjcC1cdTAwM2VhMSwgY3AtXHUwMDNlYTIsIFBBR0VfU0hJRlQsXG4gXHRcdFx0XHRcdFx0XHQgICAgICAgY3AtXHUwMDNlYTMsIHZtaWQpO1xuIFx0XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDU6MTA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX3NiaV9leHRfdjAxX2hhbmRsZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgdGhlIGhhbmRsaW5nIG9mIFNCSSB2MC4xIElQSSBhbmQgcmVtb3RlIGZlbmNlIGNhbGxzIGluIFJJU0MtViBLVk0gd2hlbiB0YXJnZXRpbmcgYWxsIHZDUFVzLiBJdCByZXBsYWNlcyBhIGJpdG1hc2sgY2FsY3VsYXRpb24gdGhhdCBjb3VsZCBvdmVyZmxvdyBvciBtaXNzIHZDUFVzIHdpdGggcHJvcGVyIHZDUFUgaXRlcmF0aW9uIGFuZCBjb3JyZWN0IGhiYXNlL2htYXNrIHZhbHVlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBLVk0gaHlwZXJ2aXNvciB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgYnkgYSBndWVzdCBleGVjdXRpbmcgc3BlY2lmaWMgU0JJIGNhbGxzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA5NTcxNGUyNDA0MmVlZTVlYWQxZGRkMmZjNjMyMDc0YjE2ZGQzMmY4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBKdWwgMTggMDU6MTA6MTggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV92MDEuYyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3YwMS5jCmluZGV4IGM5YzMyM2Q0NTc3YTk4Li5kZTU0NGVhM2YyOGRjMyAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfdjAxLmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfdjAxLmMKQEAgLTE2LDggJiM0MzsxNiw5IEBACiBzdGF0aWMgaW50IGt2bV9zYmlfZXh0X3YwMV9oYW5kbGVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9ydW4gKnJ1biwKIAkJCQkgICBzdHJ1Y3Qga3ZtX3ZjcHVfc2JpX3JldHVybiAqcmV0ZGF0YSkKIHsKLQl1bG9uZyBobWFzazsKLQlpbnQgaSwgcmV0ID0gMDsKJiM0MzsJdWxvbmcgaGJhc2UgPSAwLCBobWFzazsKJiM0MzsJdW5zaWduZWQgbG9uZyBpOwomIzQzOwlpbnQgcmV0ID0gMDsKIAl1NjQgbmV4dF9jeWNsZTsKIAlzdHJ1Y3Qga3ZtX3ZjcHUgKnJ2Y3B1OwogCXN0cnVjdCBrdm0gKmt2bSA9IHZjcHUtJmd0O2t2bTsKQEAgLTQ2LDIwICYjNDM7NDcsMjUgQEAgc3RhdGljIGludCBrdm1fc2JpX2V4dF92MDFfaGFuZGxlcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fcnVuICpydW4sCiAJCXJldCA9IGt2bV9yaXNjdl92Y3B1X3Vuc2V0X2ludGVycnVwdCh2Y3B1LCBJUlFfVlNfU09GVCk7CiAJCWJyZWFrOwogCWNhc2UgU0JJX0VYVF8wXzFfU0VORF9JUEk6Ci0JCWlmIChjcC0mZ3Q7YTApCiYjNDM7CQlpZiAoY3AtJmd0O2EwKSB7CiAJCQlobWFzayA9IGt2bV9yaXNjdl92Y3B1X3VucHJpdl9yZWFkKHZjcHUsIGZhbHNlLCBjcC0mZ3Q7YTAsIHV0cmFwKTsKLQkJZWxzZQotCQkJaG1hc2sgPSAoMVVMICZsdDsmbHQ7IGF0b21pY19yZWFkKCZhbXA7a3ZtLSZndDtvbmxpbmVfdmNwdXMpKSAtIDE7Ci0JCWlmICh1dHJhcC0mZ3Q7c2NhdXNlKQotCQkJYnJlYWs7Ci0KLQkJZm9yX2VhY2hfc2V0X2JpdChpLCAmYW1wO2htYXNrLCBCSVRTX1BFUl9MT05HKSB7Ci0JCQlydmNwdSA9IGt2bV9nZXRfdmNwdV9ieV9pZCh2Y3B1LSZndDtrdm0sIGkpOwotCQkJaWYgKCFydmNwdSkKLQkJCQljb250aW51ZTsKLQkJCXJldCA9IGt2bV9yaXNjdl92Y3B1X3NldF9pbnRlcnJ1cHQocnZjcHUsIElSUV9WU19TT0ZUKTsKLQkJCWlmIChyZXQgJmx0OyAwKQomIzQzOwkJCWlmICh1dHJhcC0mZ3Q7c2NhdXNlKQogCQkJCWJyZWFrOwomIzQzOwomIzQzOwkJCWZvcl9lYWNoX3NldF9iaXQoaSwgJmFtcDtobWFzaywgQklUU19QRVJfTE9ORykgewomIzQzOwkJCQlydmNwdSA9IGt2bV9nZXRfdmNwdV9ieV9pZCh2Y3B1LSZndDtrdm0sIGkpOwomIzQzOwkJCQlpZiAoIXJ2Y3B1KQomIzQzOwkJCQkJY29udGludWU7CiYjNDM7CQkJCXJldCA9IGt2bV9yaXNjdl92Y3B1X3NldF9pbnRlcnJ1cHQocnZjcHUsIElSUV9WU19TT0ZUKTsKJiM0MzsJCQkJaWYgKHJldCAmbHQ7IDApCiYjNDM7CQkJCQlicmVhazsKJiM0MzsJCQl9CiYjNDM7CQl9IGVsc2UgewomIzQzOwkJCWt2bV9mb3JfZWFjaF92Y3B1KGksIHJ2Y3B1LCBrdm0pIHsKJiM0MzsJCQkJcmV0ID0ga3ZtX3Jpc2N2X3ZjcHVfc2V0X2ludGVycnVwdChydmNwdSwgSVJRX1ZTX1NPRlQpOwomIzQzOwkJCQlpZiAocmV0ICZsdDsgMCkKJiM0MzsJCQkJCWJyZWFrOwomIzQzOwkJCX0KIAkJfQogCQlicmVhazsKIAljYXNlIFNCSV9FWFRfMF8xX1NIVVRET1dOOgpAQCAtNzAsMjkgJiM0Mzs3NiwzMSBAQCBzdGF0aWMgaW50IGt2bV9zYmlfZXh0X3YwMV9oYW5kbGVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9ydW4gKnJ1biwKIAljYXNlIFNCSV9FWFRfMF8xX1JFTU9URV9GRU5DRV9JOgogCWNhc2UgU0JJX0VYVF8wXzFfUkVNT1RFX1NGRU5DRV9WTUE6CiAJY2FzZSBTQklfRVhUXzBfMV9SRU1PVEVfU0ZFTkNFX1ZNQV9BU0lEOgotCQlpZiAoY3AtJmd0O2EwKQomIzQzOwkJaWYgKGNwLSZndDthMCkgewogCQkJaG1hc2sgPSBrdm1fcmlzY3ZfdmNwdV91bnByaXZfcmVhZCh2Y3B1LCBmYWxzZSwgY3AtJmd0O2EwLCB1dHJhcCk7Ci0JCWVsc2UKLQkJCWhtYXNrID0gKDFVTCAmbHQ7Jmx0OyBhdG9taWNfcmVhZCgmYW1wO2t2bS0mZ3Q7b25saW5lX3ZjcHVzKSkgLSAxOwomIzQzOwkJfSBlbHNlIHsKJiM0MzsJCQloYmFzZSA9IC0xVUw7CiYjNDM7CQkJaG1hc2sgPSAwOwomIzQzOwkJfQogCQlpZiAodXRyYXAtJmd0O3NjYXVzZSkKIAkJCWJyZWFrOwogCiAJCWlmIChjcC0mZ3Q7YTcgPT0gU0JJX0VYVF8wXzFfUkVNT1RFX0ZFTkNFX0kpCi0JCQlrdm1fcmlzY3ZfZmVuY2VfaSh2Y3B1LSZndDtrdm0sIDAsIGhtYXNrKTsKJiM0MzsJCQlrdm1fcmlzY3ZfZmVuY2VfaSh2Y3B1LSZndDtrdm0sIGhiYXNlLCBobWFzayk7CiAJCWVsc2UgaWYgKGNwLSZndDthNyA9PSBTQklfRVhUXzBfMV9SRU1PVEVfU0ZFTkNFX1ZNQSkgewogCQkJdm1pZCA9IFJFQURfT05DRSh2Y3B1LSZndDtrdm0tJmd0O2FyY2gudm1pZC52bWlkKTsKIAkJCWlmIChjcC0mZ3Q7YTEgPT0gMCAmYW1wOyZhbXA7IGNwLSZndDthMiA9PSAwKQotCQkJCWt2bV9yaXNjdl9oZmVuY2VfdnZtYV9hbGwodmNwdS0mZ3Q7a3ZtLCAwLCBobWFzaywgdm1pZCk7CiYjNDM7CQkJCWt2bV9yaXNjdl9oZmVuY2VfdnZtYV9hbGwodmNwdS0mZ3Q7a3ZtLCBoYmFzZSwgaG1hc2ssIHZtaWQpOwogCQkJZWxzZQotCQkJCWt2bV9yaXNjdl9oZmVuY2VfdnZtYV9ndmEodmNwdS0mZ3Q7a3ZtLCAwLCBobWFzaywgY3AtJmd0O2ExLAomIzQzOwkJCQlrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfZ3ZhKHZjcHUtJmd0O2t2bSwgaGJhc2UsIGhtYXNrLCBjcC0mZ3Q7YTEsCiAJCQkJCQkJICBjcC0mZ3Q7YTIsIFBBR0VfU0hJRlQsIHZtaWQpOwogCQl9IGVsc2UgewogCQkJdm1pZCA9IFJFQURfT05DRSh2Y3B1LSZndDtrdm0tJmd0O2FyY2gudm1pZC52bWlkKTsKIAkJCWlmIChjcC0mZ3Q7YTEgPT0gMCAmYW1wOyZhbXA7IGNwLSZndDthMiA9PSAwKQotCQkJCWt2bV9yaXNjdl9oZmVuY2VfdnZtYV9hc2lkX2FsbCh2Y3B1LSZndDtrdm0sIDAsIGhtYXNrLAomIzQzOwkJCQlrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYXNpZF9hbGwodmNwdS0mZ3Q7a3ZtLCBoYmFzZSwgaG1hc2ssCiAJCQkJCQkJICAgICAgIGNwLSZndDthMywgdm1pZCk7CiAJCQllbHNlCi0JCQkJa3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FzaWRfZ3ZhKHZjcHUtJmd0O2t2bSwgMCwgaG1hc2ssCiYjNDM7CQkJCWt2bV9yaXNjdl9oZmVuY2VfdnZtYV9hc2lkX2d2YSh2Y3B1LSZndDtrdm0sIGhiYXNlLCBobWFzaywKIAkJCQkJCQkgICAgICAgY3AtJmd0O2ExLCBjcC0mZ3Q7YTIsIFBBR0VfU0hJRlQsCiAJCQkJCQkJICAgICAgIGNwLSZndDthMywgdm1pZCk7CiAJCX0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDU6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzIxNgoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDM3OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBSSVNDLVYgS1ZNIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYGFyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3YwMS5jYCBhbmQgc3BlY2lmaWNhbGx5IHRoZSBga3ZtX3NiaV9leHRfdjAxX2hhbmRsZXJgIGZ1bmN0aW9uLiBGcm9tIHRoZSBkaWZmLCBpdCBsb29rcyBsaWtlIGl0JiMzOTtzIGFkZHJlc3NpbmcgYSBzdWJ0bGUgYnV0IHBvdGVudGlhbGx5IGltcGFjdGZ1bCBidWcgcmVsYXRlZCB0byBob3cgd2UmIzM5O3JlIGhhbmRsaW5nIGBobWFza2AgYW5kIGBoYmFzZWAgd2l0aGluIHRoZSBTQkkgZXh0ZW5zaW9ucywgc3BlY2lmaWNhbGx5IGZvciB0aGUgaW50ZXItcHJvY2Vzc29yIGludGVycnVwdCAoYFNCSV9FWFRfMF8xX1NFTkRfSVBJYCkgYW5kIHRoZSByZW1vdGUgZmVuY2Ugb3BlcmF0aW9ucyAoYFNCSV9FWFRfMF8xX1JFTU9URV9GRU5DRV9JYCwgYFNCSV9FWFRfMF8xX1JFTU9URV9TRkVOQ0VfVk1BYCwgYW5kIGBTQklfRVhUXzBfMV9SRU1PVEVfU0ZFTkNFX1ZNQV9BU0lEYCkuCgpUaGUgb3JpZ2luYWwgaW1wbGVtZW50YXRpb24gb2YgYFNCSV9FWFRfMF8xX1NFTkRfSVBJYCB3YXMgbWFraW5nIGEgZGFuZ2Vyb3VzIGFzc3VtcHRpb24uIFdoZW4gYGNwLSZndDthMGAgaXMgemVybywgdGhlIGNvZGUgd2FzIGNhbGN1bGF0aW5nIGBobWFza2AgYmFzZWQgb24gdGhlICp0b3RhbCogbnVtYmVyIG9mIG9ubGluZSB2Q1BVcyB1c2luZyBhIGxlZnQgc2hpZnQgYW5kIHN1YnRyYWN0aW9uLiBUaGlzIGlzIHByb2JsZW1hdGljIGZvciB0d28gbWFpbiByZWFzb25zLiBGaXJzdGx5LCBpZiB3ZSBoYXZlIGEgc2lnbmlmaWNhbnQgbnVtYmVyIG9mIHZDUFVzLCB0aGF0IHNoaWZ0IGNvdWxkIGVhc2lseSBvdmVyZmxvdy4gU2Vjb25kbHksIGFuZCBwb3RlbnRpYWxseSBtb3JlIGNydWNpYWxseSwgaXQgYXNzdW1lcyB2Q1BVIElEcyBhcmUgY29udGlndW91cywgd2hpY2ggbWF5IG5vdCBhbHdheXMgYmUgdGhlIGNhc2UgaW4gYSBkeW5hbWljIGVudmlyb25tZW50LCBwYXJ0aWN1bGFybHkgaWYgdkNQVXMgYXJlIGhvdHBsdWdnZWQuIEl0IHNvdW5kcyBsaWtlIHRoZXkmIzM5O3ZlIGZpeGVkIHRoaXMgYnkgdXNpbmcgYGt2bV9mb3JfZWFjaF92Y3B1YCB3aGljaCBpcyBkZWZpbml0ZWx5IHRoZSByaWdodCBhcHByb2FjaCBhbmQgYWRkcmVzc2VzIGJvdGggY29uY2VybnMuCgpUaGUgZmVuY2Ugb3BlcmF0aW9ucyB3ZXJlIHNpbWlsYXJseSBmbGF3ZWQgaW4gdGhlIGluaXRpYWwgaW1wbGVtZW50YXRpb24uIFdoZW4gYGNwLSZndDthMGAgd2FzIHplcm8sIHRoZXkgd2VyZSBzZXR0aW5nIGBoYmFzZWAgdG8gYC0xVUxgIGFuZCBgaG1hc2tgIHRvIGAwYCwgd2hpY2gsIGluIGVmZmVjdCwgbWVhbnQgKmFsbCogdkNQVXMuIEluc3RlYWQsIHRoZSBvbGRlciBjb2RlIHNldCBobWFzayBhcyBhYm92ZSwgbGVhZGluZyB0byB1bmV4cGVjdGVkIGJlaGF2aW9yLiBUaGUgcGF0Y2gmIzM5O3MgY2hhbmdlIGNvcnJlY3RseSB0YXJnZXRzIHRoaXMgYW5kIGxpa2VseSBjb3JyZWN0cyBzb21lIGlzc3VlcyBmb3IgZmVuY2Ugb3BlcmF0aW9ucy4KClRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBwcmV0dHkgaW1wb3J0YW50IG9uZSwgYWN0dWFsbHkgd2l0aGluIHRoZSBLVk0gaW5mcmFzdHJ1Y3R1cmUgb24gUklTQy1WLiBJdCYjMzk7cyBkZWZpbml0ZWx5IHJlYWNoYWJsZSB2aWEgdGhlIEtWTSBpb2N0bHMsIHNvIGl0JiMzOTtzIHNvbWV0aGluZyB0aGF0JiMzOTtzIGV4cG9zZWQgdG8gdXNlciBzcGFjZS4gR2l2ZW4gdGhpcywgYW5kIHRoZSBwb3RlbnRpYWwgZm9yIGEgc3VidGxlIG1pc2JlaGF2aW9yLCB0aGlzIGlzIGRlZmluaXRlbHkgV29ydGhGdXp6aW5nPXRydWUuIEkgbmVlZCB0byBtYWtlIGEgbm90ZSBvZiB0aGlzLgoKTm93LCBsZXQgbWUganVzdCBxdWlja2x5IGNvbmZpcm0gYSBmZXcgdGhpbmdzLiBJJiMzOTtsbCB0YWtlIGEgcXVpY2sgbG9vayBhdCBgYXJjaC9yaXNjdi9rdm0vS2NvbmZpZ2AgdG8gY29uZmlybSB0aGF0IGBDT05GSUdfS1ZNYCBpcyBpbmRlZWQgZW5hYmxlZC4gVGhlbiwgSSB3aWxsIG5lZWQgdG8gc2V0IHVwIG15IGZ1enppbmcgdG9vbHMgdG8gdGVzdCB0aGVzZSBpb2N0bHMgdGhvcm91Z2hseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOCAwNToxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgS1ZNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTE5LVxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDU6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzkyMAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDMxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBSSVNDLVYgS1ZNIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgZGlnZ2luZyBpbnRvIGBhcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV92MDEuY2AuIFJpZ2h0IGF3YXksIEkgc2VlIHRoaXMgaXMgYWJvdXQgUklTQy1WIEtWTSwgc3BlY2lmaWNhbGx5IGhvdyB0aGUgU0JJIHYwLjEgY2FsbHMgYXJlIGhhbmRsZWQuIFRoZSBjb3JlIG9mIHRoaXMgc2VlbXMgdG8gcmV2b2x2ZSBhcm91bmQgdGhvc2UgU0JJIGV4dGVuc2lvbiBjYWxsczogYFNCSV9FWFRfMF8xX1NFTkRfSVBJYCwgYFNCSV9FWFRfMF8xX1JFTU9URV9GRU5DRV9JYCwgYW5kIHRoZSBgU0ZFTkNFYCB2YXJpYW50cy4KClRoZSBzaWduaWZpY2FudCBjaGFuZ2UgaXMgaW4gaG93IHRoZSBjb2RlIGludGVycHJldHMgYGNwLSZndDthMGAgYmVpbmcgemVybywgdGhlIHRhcmdldCBvZiB0aGUgU0JJIGNhbGwuIFRoYXQgc2lnbmlmaWVzIGFsbCBvbmxpbmUgdkNQVXMgaW4gU0JJIHYwLjEuIFRoZSBvbGQgYXBwcm9hY2gsIGBobWFzayA9ICgxVUwgJmx0OyZsdDsgYXRvbWljX3JlYWQoJmFtcDtrdm0tJmd0O29ubGluZV92Y3B1cykpIC0gMTtgLCB3YXMgY2xlYXJseSBwcm9ibGVtYXRpYy4gSWYgd2UgaGF2ZSBhIGxhcmdlIG51bWJlciBvZiBvbmxpbmUgdkNQVXMsIG9yIGlmIHRoZWlyIElEcyBhcmVuJiMzOTt0IHNlcXVlbnRpYWwsIHRoYXQgYml0IG1hbmlwdWxhdGlvbiBnb2VzIHNpZGV3YXlzIHByZXR0eSBmYXN0LiBJdCYjMzk7cyBhIGNsYXNzaWMgb2ZmLWJ5LW9uZSBvciBpbnRlZ2VyIG92ZXJmbG93IHNjZW5hcmlvIHdhaXRpbmcgdG8gaGFwcGVuLgoKVGhlIGZpeCBzZWVtcyBlbGVnYW50OiBpdCBub3cgbGV2ZXJhZ2VzIGBrdm1fZm9yX2VhY2hfdmNwdWAgZm9yIHRoZSBJUEkgY2FsbHMuIEZvciB0aGUgcmVtb3RlIGZlbmNlcywgaXQgbm93IHNldHMgYGhiYXNlID0gLTFVTDsgaG1hc2sgPSAwO2AuIFRoaXMgc2lnbmFscyB0byB0aGUgbG93ZXItbGV2ZWwgZmVuY2UgZnVuY3Rpb25zIHRoYXQgYWxsIHZDUFVzIGFyZSB0aGUgdGFyZ2V0LiBUaGF0IHNlZW1zIG11Y2ggY2xlYW5lciBhbmQgbW9yZSByb2J1c3QuIE5vIG1vcmUgcmVsaWFuY2Ugb24gY29udGlndW91cyBJRHMgb3Igd29ycnkgYWJvdXQgZXhjZWVkaW5nIHRoZSBiaXRzIGFsbG93ZWQuCgpGdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBjbGVhciBpbXByb3ZlbWVudCBpbiBLVk0gZm9yIFJJU0MtVi4gSXQmIzM5O3MgYSBjaGFuZ2UgdG8gdGhlIGZ1bmRhbWVudGFsIGxvZ2ljIG9mIGhvdyB3ZSB0YXJnZXQgdkNQVXMgaW4gU0JJIGNhbGxzLiBHaXZlbiBpdHMgbmF0dXJlLCBpdCB3YXJyYW50cyBhIGNsb3NlIGxvb2ssIGFuZCBkZWZpbml0ZWx5IG1lcml0cyBmdXp6aW5nLiBJJiMzOTtsbCBmb2N1cyBteSBmdXp6aW5nIGVmZm9ydHMgb24gYGt2bV9zYmlfZXh0X3YwMV9oYW5kbGVyYCwgYW5kIEkmIzM5O2xsIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBgS1ZNYCBjb25maWcgaXMgZW5hYmxlZC4KCk5vdywgbGV0JiMzOTtzIGp1c3QgbWFrZSBzdXJlIHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlncyBJIG5lZWQgdG8gY29uc2lkZXIgZm9yIHRob3JvdWdoIGNvdmVyYWdlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE4IDA1OjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBLVk0mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3Jpc2N2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTE5LVxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDU6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTE4OQoJCQkJCQkJb3V0cHV0OiAxMzIKCQkJCQkJCXRob3VnaHRzOiAxOTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBLVk0gU0JJIEV4dGVuc2lvbiBIYW5kbGVyKioKCk9rYXksIHNvIHRoZSBjb25maWd1cmF0aW9uIEkmIzM5O20gbG9va2luZyBhdCBpcyBmb3IgYEtWTWAsIGFuZCB0aGUgc3BlY2lmaWMgZnVuY3Rpb24gb2YgaW50ZXJlc3QgaXMgYGt2bV9zYmlfZXh0X3YwMV9oYW5kbGVyYC4gTGV0JiMzOTtzIGp1c3QgbWFrZSBhYnNvbHV0ZWx5IHN1cmUgdGhhdCB0aGlzIGlzIHRoZSBvbmx5IGFyZWEgdG91Y2hlZCBieSB0aGlzIGNoYW5nZS4gKlllcywgZ29vZCwgdGhlIGRpZmYgb25seSBzaG93cyBtb2RpZmljYXRpb25zIHRvIGBrdm1fc2JpX2V4dF92MDFfaGFuZGxlcmAuKiBUaGF0IHNpbXBsaWZpZXMgdGhpbmdzLgoKTm93LCB0aGUgaW1wb3J0YW50IHF1ZXN0aW9uOiBjYW4gd2UgZnV6eiB0aGlzPyBHaXZlbiB0aGF0IHRoaXMgcmVsYXRlcyB0byBLVk0gb24gUklTQy1WLCBhbmQgSSBrbm93IHRoYXQgc3l6a2FsbGVyIHN1cHBvcnRzIEtWTSBvbiBSSVNDLVYsIHRoZSBhbnN3ZXIgaXMgKnllcyouCgpUaGUgY29yZSBvZiB0aGUgaXNzdWUgaGVyZSBpcyB0aGF0IHRoZSBwYXRjaCBhZGRyZXNzZXMgaG93IHRoZSBoeXBlcnZpc29yIGhhbmRsZXMgU0JJIHYwLjEgSVBJIGFuZCByZW1vdGUgZmVuY2UgY2FsbHMgd2l0aGluIFJJU0MtViBLVk0sIHBhcnRpY3VsYXJseSB3aGVuIHRhcmdldGluZyAqYWxsKiB2aXJ0dWFsIENQVXMuIEl0IGxvb2tzIGxpa2UgdGhlcmUgd2FzIGEgcG90ZW50aWFsIGZsYXcgaW4gdGhlIHByZXZpb3VzIGltcGxlbWVudGF0aW9uIOKAkyBhIGJpdG1hc2sgY2FsY3VsYXRpb24gdGhhdCBjb3VsZCBlaXRoZXIgb3ZlcmZsb3cgb3IsIHdvcnNlLCBjb21wbGV0ZWx5IG1pc3Mgc29tZSBvZiB0aGUgdkNQVXMuIFRoZSBmaXggaXMgYSBtb3JlIHJvYnVzdCBhcHByb2FjaCwgaXRlcmF0aW5nIHByb3Blcmx5IHRocm91Z2ggdGhlIHZDUFVzIGFuZCBlbnN1cmluZyB0aGUgY29ycmVjdCBgaGJhc2VgL2BobWFza2AgdmFsdWVzIGFyZSB1c2VkLiBUaGlzIHJlcHJlc2VudHMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgS1ZNIGh5cGVydmlzb3IgaXRzZWxmLiBJdCYjMzk7cyB0cmlnZ2VyZWQgYnkgYSBndWVzdCBpc3N1aW5nIHNwZWNpZmljIFNCSSBjYWxscywgc28gaXQmIzM5O3MgZGlyZWN0bHkgdGVzdGFibGUuCgpBbHJpZ2h0LCBJJiMzOTttIGNvbmZpZGVudCBpbiBteSBhc3Nlc3NtZW50LiBJJiMzOTtsbCBkb2N1bWVudCBteSBmaW5kaW5ncyBhbmQgc2V0IHRoZSByZXN1bHRzIGFjY29yZGluZ2x5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE4IDA1OjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fc2JpX2V4dF92MDFfaGFuZGxlciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyB0aGUgaGFuZGxpbmcgb2YgU0JJIHYwLjEgSVBJIGFuZCByZW1vdGUgZmVuY2UgY2FsbHMgaW4gUklTQy1WIEtWTSB3aGVuIHRhcmdldGluZyBhbGwgdkNQVXMuIEl0IHJlcGxhY2VzIGEgYml0bWFzayBjYWxjdWxhdGlvbiB0aGF0IGNvdWxkIG92ZXJmbG93IG9yIG1pc3MgdkNQVXMgd2l0aCBwcm9wZXIgdkNQVSBpdGVyYXRpb24gYW5kIGNvcnJlY3QgaGJhc2UvaG1hc2sgdmFsdWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIEtWTSBoeXBlcnZpc29yIHRoYXQgY2FuIGJlIHRyaWdnZXJlZCBieSBhIGd1ZXN0IGV4ZWN1dGluZyBzcGVjaWZpYyBTQkkgY2FsbHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9zYmlfZXh0X3YwMV9oYW5kbGVyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHRoZSBoYW5kbGluZyBvZiBTQkkgdjAuMSBJUEkgYW5kIHJlbW90ZSBmZW5jZSBjYWxscyBpbiBSSVNDLVYgS1ZNIHdoZW4gdGFyZ2V0aW5nIGFsbCB2Q1BVcy4gSXQgcmVwbGFjZXMgYSBiaXRtYXNrIGNhbGN1bGF0aW9uIHRoYXQgY291bGQgb3ZlcmZsb3cgb3IgbWlzcyB2Q1BVcyB3aXRoIHByb3BlciB2Q1BVIGl0ZXJhdGlvbiBhbmQgY29ycmVjdCBoYmFzZS9obWFzayB2YWx1ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgS1ZNIGh5cGVydmlzb3IgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IGEgZ3Vlc3QgZXhlY3V0aW5nIHNwZWNpZmljIFNCSSBjYWxscy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE4VDA1OjEwOjIwLjA2MzQ0NzQ2NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMxMDUyNTEwOTg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9zYmlfZXh0X3YwMV9oYW5kbGVyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgdGhlIGhhbmRsaW5nIG9mIFNCSSB2MC4xIElQSSBhbmQgcmVtb3RlIGZlbmNlIGNhbGxzIGluIFJJU0MtViBLVk0gd2hlbiB0YXJnZXRpbmcgYWxsIHZDUFVzLiBJdCByZXBsYWNlcyBhIGJpdG1hc2sgY2FsY3VsYXRpb24gdGhhdCBjb3VsZCBvdmVyZmxvdyBvciBtaXNzIHZDUFVzIHdpdGggcHJvcGVyIHZDUFUgaXRlcmF0aW9uIGFuZCBjb3JyZWN0IGhiYXNlL2htYXNrIHZhbHVlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBLVk0gaHlwZXJ2aXNvciB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgYnkgYSBndWVzdCBleGVjdXRpbmcgc3BlY2lmaWMgU0JJIGNhbGxzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwNToxMDoyMC4wNjM0NTQxODRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQwMTIwMTg2OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDk1NzE0ZTI0MDQyZWVlNWVhZDFkZGQyZmM2MzIwNzRiMTZkZDMyZjhcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFNhdCBKdWwgMTggMDU6MTA6MTggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfdjAxLmMgYi9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV92MDEuY1xcbmluZGV4IGM5YzMyM2Q0NTc3YTk4Li5kZTU0NGVhM2YyOGRjMyAxMDA2NDRcXG4tLS0gYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV92MDEuY1xcbisrKyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3YwMS5jXFxuQEAgLTE2LDggKzE2LDkgQEBcXG4gc3RhdGljIGludCBrdm1fc2JpX2V4dF92MDFfaGFuZGxlcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fcnVuICpydW4sXFxuIFxcdFxcdFxcdFxcdCAgIHN0cnVjdCBrdm1fdmNwdV9zYmlfcmV0dXJuICpyZXRkYXRhKVxcbiB7XFxuLVxcdHVsb25nIGhtYXNrO1xcbi1cXHRpbnQgaSwgcmV0ID0gMDtcXG4rXFx0dWxvbmcgaGJhc2UgPSAwLCBobWFzaztcXG4rXFx0dW5zaWduZWQgbG9uZyBpO1xcbitcXHRpbnQgcmV0ID0gMDtcXG4gXFx0dTY0IG5leHRfY3ljbGU7XFxuIFxcdHN0cnVjdCBrdm1fdmNwdSAqcnZjcHU7XFxuIFxcdHN0cnVjdCBrdm0gKmt2bSA9IHZjcHUtXFx1MDAzZWt2bTtcXG5AQCAtNDYsMjAgKzQ3LDI1IEBAIHN0YXRpYyBpbnQga3ZtX3NiaV9leHRfdjAxX2hhbmRsZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3Qga3ZtX3J1biAqcnVuLFxcbiBcXHRcXHRyZXQgPSBrdm1fcmlzY3ZfdmNwdV91bnNldF9pbnRlcnJ1cHQodmNwdSwgSVJRX1ZTX1NPRlQpO1xcbiBcXHRcXHRicmVhaztcXG4gXFx0Y2FzZSBTQklfRVhUXzBfMV9TRU5EX0lQSTpcXG4tXFx0XFx0aWYgKGNwLVxcdTAwM2VhMClcXG4rXFx0XFx0aWYgKGNwLVxcdTAwM2VhMCkge1xcbiBcXHRcXHRcXHRobWFzayA9IGt2bV9yaXNjdl92Y3B1X3VucHJpdl9yZWFkKHZjcHUsIGZhbHNlLCBjcC1cXHUwMDNlYTAsIHV0cmFwKTtcXG4tXFx0XFx0ZWxzZVxcbi1cXHRcXHRcXHRobWFzayA9ICgxVUwgXFx1MDAzY1xcdTAwM2MgYXRvbWljX3JlYWQoXFx1MDAyNmt2bS1cXHUwMDNlb25saW5lX3ZjcHVzKSkgLSAxO1xcbi1cXHRcXHRpZiAodXRyYXAtXFx1MDAzZXNjYXVzZSlcXG4tXFx0XFx0XFx0YnJlYWs7XFxuLVxcbi1cXHRcXHRmb3JfZWFjaF9zZXRfYml0KGksIFxcdTAwMjZobWFzaywgQklUU19QRVJfTE9ORykge1xcbi1cXHRcXHRcXHRydmNwdSA9IGt2bV9nZXRfdmNwdV9ieV9pZCh2Y3B1LVxcdTAwM2Vrdm0sIGkpO1xcbi1cXHRcXHRcXHRpZiAoIXJ2Y3B1KVxcbi1cXHRcXHRcXHRcXHRjb250aW51ZTtcXG4tXFx0XFx0XFx0cmV0ID0ga3ZtX3Jpc2N2X3ZjcHVfc2V0X2ludGVycnVwdChydmNwdSwgSVJRX1ZTX1NPRlQpO1xcbi1cXHRcXHRcXHRpZiAocmV0IFxcdTAwM2MgMClcXG4rXFx0XFx0XFx0aWYgKHV0cmFwLVxcdTAwM2VzY2F1c2UpXFxuIFxcdFxcdFxcdFxcdGJyZWFrO1xcbitcXG4rXFx0XFx0XFx0Zm9yX2VhY2hfc2V0X2JpdChpLCBcXHUwMDI2aG1hc2ssIEJJVFNfUEVSX0xPTkcpIHtcXG4rXFx0XFx0XFx0XFx0cnZjcHUgPSBrdm1fZ2V0X3ZjcHVfYnlfaWQodmNwdS1cXHUwMDNla3ZtLCBpKTtcXG4rXFx0XFx0XFx0XFx0aWYgKCFydmNwdSlcXG4rXFx0XFx0XFx0XFx0XFx0Y29udGludWU7XFxuK1xcdFxcdFxcdFxcdHJldCA9IGt2bV9yaXNjdl92Y3B1X3NldF9pbnRlcnJ1cHQocnZjcHUsIElSUV9WU19TT0ZUKTtcXG4rXFx0XFx0XFx0XFx0aWYgKHJldCBcXHUwMDNjIDApXFxuK1xcdFxcdFxcdFxcdFxcdGJyZWFrO1xcbitcXHRcXHRcXHR9XFxuK1xcdFxcdH0gZWxzZSB7XFxuK1xcdFxcdFxcdGt2bV9mb3JfZWFjaF92Y3B1KGksIHJ2Y3B1LCBrdm0pIHtcXG4rXFx0XFx0XFx0XFx0cmV0ID0ga3ZtX3Jpc2N2X3ZjcHVfc2V0X2ludGVycnVwdChydmNwdSwgSVJRX1ZTX1NPRlQpO1xcbitcXHRcXHRcXHRcXHRpZiAocmV0IFxcdTAwM2MgMClcXG4rXFx0XFx0XFx0XFx0XFx0YnJlYWs7XFxuK1xcdFxcdFxcdH1cXG4gXFx0XFx0fVxcbiBcXHRcXHRicmVhaztcXG4gXFx0Y2FzZSBTQklfRVhUXzBfMV9TSFVURE9XTjpcXG5AQCAtNzAsMjkgKzc2LDMxIEBAIHN0YXRpYyBpbnQga3ZtX3NiaV9leHRfdjAxX2hhbmRsZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3Qga3ZtX3J1biAqcnVuLFxcbiBcXHRjYXNlIFNCSV9FWFRfMF8xX1JFTU9URV9GRU5DRV9JOlxcbiBcXHRjYXNlIFNCSV9FWFRfMF8xX1JFTU9URV9TRkVOQ0VfVk1BOlxcbiBcXHRjYXNlIFNCSV9FWFRfMF8xX1JFTU9URV9TRkVOQ0VfVk1BX0FTSUQ6XFxuLVxcdFxcdGlmIChjcC1cXHUwMDNlYTApXFxuK1xcdFxcdGlmIChjcC1cXHUwMDNlYTApIHtcXG4gXFx0XFx0XFx0aG1hc2sgPSBrdm1fcmlzY3ZfdmNwdV91bnByaXZfcmVhZCh2Y3B1LCBmYWxzZSwgY3AtXFx1MDAzZWEwLCB1dHJhcCk7XFxuLVxcdFxcdGVsc2VcXG4tXFx0XFx0XFx0aG1hc2sgPSAoMVVMIFxcdTAwM2NcXHUwMDNjIGF0b21pY19yZWFkKFxcdTAwMjZrdm0tXFx1MDAzZW9ubGluZV92Y3B1cykpIC0gMTtcXG4rXFx0XFx0fSBlbHNlIHtcXG4rXFx0XFx0XFx0aGJhc2UgPSAtMVVMO1xcbitcXHRcXHRcXHRobWFzayA9IDA7XFxuK1xcdFxcdH1cXG4gXFx0XFx0aWYgKHV0cmFwLVxcdTAwM2VzY2F1c2UpXFxuIFxcdFxcdFxcdGJyZWFrO1xcbiBcXG4gXFx0XFx0aWYgKGNwLVxcdTAwM2VhNyA9PSBTQklfRVhUXzBfMV9SRU1PVEVfRkVOQ0VfSSlcXG4tXFx0XFx0XFx0a3ZtX3Jpc2N2X2ZlbmNlX2kodmNwdS1cXHUwMDNla3ZtLCAwLCBobWFzayk7XFxuK1xcdFxcdFxcdGt2bV9yaXNjdl9mZW5jZV9pKHZjcHUtXFx1MDAzZWt2bSwgaGJhc2UsIGhtYXNrKTtcXG4gXFx0XFx0ZWxzZSBpZiAoY3AtXFx1MDAzZWE3ID09IFNCSV9FWFRfMF8xX1JFTU9URV9TRkVOQ0VfVk1BKSB7XFxuIFxcdFxcdFxcdHZtaWQgPSBSRUFEX09OQ0UodmNwdS1cXHUwMDNla3ZtLVxcdTAwM2VhcmNoLnZtaWQudm1pZCk7XFxuIFxcdFxcdFxcdGlmIChjcC1cXHUwMDNlYTEgPT0gMCBcXHUwMDI2XFx1MDAyNiBjcC1cXHUwMDNlYTIgPT0gMClcXG4tXFx0XFx0XFx0XFx0a3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FsbCh2Y3B1LVxcdTAwM2Vrdm0sIDAsIGhtYXNrLCB2bWlkKTtcXG4rXFx0XFx0XFx0XFx0a3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FsbCh2Y3B1LVxcdTAwM2Vrdm0sIGhiYXNlLCBobWFzaywgdm1pZCk7XFxuIFxcdFxcdFxcdGVsc2VcXG4tXFx0XFx0XFx0XFx0a3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2d2YSh2Y3B1LVxcdTAwM2Vrdm0sIDAsIGhtYXNrLCBjcC1cXHUwMDNlYTEsXFxuK1xcdFxcdFxcdFxcdGt2bV9yaXNjdl9oZmVuY2VfdnZtYV9ndmEodmNwdS1cXHUwMDNla3ZtLCBoYmFzZSwgaG1hc2ssIGNwLVxcdTAwM2VhMSxcXG4gXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICBjcC1cXHUwMDNlYTIsIFBBR0VfU0hJRlQsIHZtaWQpO1xcbiBcXHRcXHR9IGVsc2Uge1xcbiBcXHRcXHRcXHR2bWlkID0gUkVBRF9PTkNFKHZjcHUtXFx1MDAzZWt2bS1cXHUwMDNlYXJjaC52bWlkLnZtaWQpO1xcbiBcXHRcXHRcXHRpZiAoY3AtXFx1MDAzZWExID09IDAgXFx1MDAyNlxcdTAwMjYgY3AtXFx1MDAzZWEyID09IDApXFxuLVxcdFxcdFxcdFxcdGt2bV9yaXNjdl9oZmVuY2VfdnZtYV9hc2lkX2FsbCh2Y3B1LVxcdTAwM2Vrdm0sIDAsIGhtYXNrLFxcbitcXHRcXHRcXHRcXHRrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYXNpZF9hbGwodmNwdS1cXHUwMDNla3ZtLCBoYmFzZSwgaG1hc2ssXFxuIFxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBjcC1cXHUwMDNlYTMsIHZtaWQpO1xcbiBcXHRcXHRcXHRlbHNlXFxuLVxcdFxcdFxcdFxcdGt2bV9yaXNjdl9oZmVuY2VfdnZtYV9hc2lkX2d2YSh2Y3B1LVxcdTAwM2Vrdm0sIDAsIGhtYXNrLFxcbitcXHRcXHRcXHRcXHRrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYXNpZF9ndmEodmNwdS1cXHUwMDNla3ZtLCBoYmFzZSwgaG1hc2ssXFxuIFxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBjcC1cXHUwMDNlYTEsIGNwLVxcdTAwM2VhMiwgUEFHRV9TSElGVCxcXG4gXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgIGNwLVxcdTAwM2VhMywgdm1pZCk7XFxuIFxcdFxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMThUMDU6MTA6MjAuNDY1NzE2NzQzWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDY1MDIzMzQ1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fc2JpX2V4dF92MDFfaGFuZGxlclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHRoZSBoYW5kbGluZyBvZiBTQkkgdjAuMSBJUEkgYW5kIHJlbW90ZSBmZW5jZSBjYWxscyBpbiBSSVNDLVYgS1ZNIHdoZW4gdGFyZ2V0aW5nIGFsbCB2Q1BVcy4gSXQgcmVwbGFjZXMgYSBiaXRtYXNrIGNhbGN1bGF0aW9uIHRoYXQgY291bGQgb3ZlcmZsb3cgb3IgbWlzcyB2Q1BVcyB3aXRoIHByb3BlciB2Q1BVIGl0ZXJhdGlvbiBhbmQgY29ycmVjdCBoYmFzZS9obWFzayB2YWx1ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgS1ZNIGh5cGVydmlzb3IgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IGEgZ3Vlc3QgZXhlY3V0aW5nIHNwZWNpZmljIFNCSSBjYWxscy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA5NTcxNGUyNDA0MmVlZTVlYWQxZGRkMmZjNjMyMDc0YjE2ZGQzMmY4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdWwgMTggMDU6MTA6MTggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV92MDEuYyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3YwMS5jXG5pbmRleCBjOWMzMjNkNDU3N2E5OC4uZGU1NDRlYTNmMjhkYzMgMTAwNjQ0XG4tLS0gYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV92MDEuY1xuKysrIGIvYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfdjAxLmNcbkBAIC0xNiw4ICsxNiw5IEBAXG4gc3RhdGljIGludCBrdm1fc2JpX2V4dF92MDFfaGFuZGxlcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fcnVuICpydW4sXG4gXHRcdFx0XHQgICBzdHJ1Y3Qga3ZtX3ZjcHVfc2JpX3JldHVybiAqcmV0ZGF0YSlcbiB7XG4tXHR1bG9uZyBobWFzaztcbi1cdGludCBpLCByZXQgPSAwO1xuK1x0dWxvbmcgaGJhc2UgPSAwLCBobWFzaztcbitcdHVuc2lnbmVkIGxvbmcgaTtcbitcdGludCByZXQgPSAwO1xuIFx0dTY0IG5leHRfY3ljbGU7XG4gXHRzdHJ1Y3Qga3ZtX3ZjcHUgKnJ2Y3B1O1xuIFx0c3RydWN0IGt2bSAqa3ZtID0gdmNwdS1cdTAwM2Vrdm07XG5AQCAtNDYsMjAgKzQ3LDI1IEBAIHN0YXRpYyBpbnQga3ZtX3NiaV9leHRfdjAxX2hhbmRsZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3Qga3ZtX3J1biAqcnVuLFxuIFx0XHRyZXQgPSBrdm1fcmlzY3ZfdmNwdV91bnNldF9pbnRlcnJ1cHQodmNwdSwgSVJRX1ZTX1NPRlQpO1xuIFx0XHRicmVhaztcbiBcdGNhc2UgU0JJX0VYVF8wXzFfU0VORF9JUEk6XG4tXHRcdGlmIChjcC1cdTAwM2VhMClcbitcdFx0aWYgKGNwLVx1MDAzZWEwKSB7XG4gXHRcdFx0aG1hc2sgPSBrdm1fcmlzY3ZfdmNwdV91bnByaXZfcmVhZCh2Y3B1LCBmYWxzZSwgY3AtXHUwMDNlYTAsIHV0cmFwKTtcbi1cdFx0ZWxzZVxuLVx0XHRcdGhtYXNrID0gKDFVTCBcdTAwM2NcdTAwM2MgYXRvbWljX3JlYWQoXHUwMDI2a3ZtLVx1MDAzZW9ubGluZV92Y3B1cykpIC0gMTtcbi1cdFx0aWYgKHV0cmFwLVx1MDAzZXNjYXVzZSlcbi1cdFx0XHRicmVhaztcbi1cbi1cdFx0Zm9yX2VhY2hfc2V0X2JpdChpLCBcdTAwMjZobWFzaywgQklUU19QRVJfTE9ORykge1xuLVx0XHRcdHJ2Y3B1ID0ga3ZtX2dldF92Y3B1X2J5X2lkKHZjcHUtXHUwMDNla3ZtLCBpKTtcbi1cdFx0XHRpZiAoIXJ2Y3B1KVxuLVx0XHRcdFx0Y29udGludWU7XG4tXHRcdFx0cmV0ID0ga3ZtX3Jpc2N2X3ZjcHVfc2V0X2ludGVycnVwdChydmNwdSwgSVJRX1ZTX1NPRlQpO1xuLVx0XHRcdGlmIChyZXQgXHUwMDNjIDApXG4rXHRcdFx0aWYgKHV0cmFwLVx1MDAzZXNjYXVzZSlcbiBcdFx0XHRcdGJyZWFrO1xuK1xuK1x0XHRcdGZvcl9lYWNoX3NldF9iaXQoaSwgXHUwMDI2aG1hc2ssIEJJVFNfUEVSX0xPTkcpIHtcbitcdFx0XHRcdHJ2Y3B1ID0ga3ZtX2dldF92Y3B1X2J5X2lkKHZjcHUtXHUwMDNla3ZtLCBpKTtcbitcdFx0XHRcdGlmICghcnZjcHUpXG4rXHRcdFx0XHRcdGNvbnRpbnVlO1xuK1x0XHRcdFx0cmV0ID0ga3ZtX3Jpc2N2X3ZjcHVfc2V0X2ludGVycnVwdChydmNwdSwgSVJRX1ZTX1NPRlQpO1xuK1x0XHRcdFx0aWYgKHJldCBcdTAwM2MgMClcbitcdFx0XHRcdFx0YnJlYWs7XG4rXHRcdFx0fVxuK1x0XHR9IGVsc2Uge1xuK1x0XHRcdGt2bV9mb3JfZWFjaF92Y3B1KGksIHJ2Y3B1LCBrdm0pIHtcbitcdFx0XHRcdHJldCA9IGt2bV9yaXNjdl92Y3B1X3NldF9pbnRlcnJ1cHQocnZjcHUsIElSUV9WU19TT0ZUKTtcbitcdFx0XHRcdGlmIChyZXQgXHUwMDNjIDApXG4rXHRcdFx0XHRcdGJyZWFrO1xuK1x0XHRcdH1cbiBcdFx0fVxuIFx0XHRicmVhaztcbiBcdGNhc2UgU0JJX0VYVF8wXzFfU0hVVERPV046XG5AQCAtNzAsMjkgKzc2LDMxIEBAIHN0YXRpYyBpbnQga3ZtX3NiaV9leHRfdjAxX2hhbmRsZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3Qga3ZtX3J1biAqcnVuLFxuIFx0Y2FzZSBTQklfRVhUXzBfMV9SRU1PVEVfRkVOQ0VfSTpcbiBcdGNhc2UgU0JJX0VYVF8wXzFfUkVNT1RFX1NGRU5DRV9WTUE6XG4gXHRjYXNlIFNCSV9FWFRfMF8xX1JFTU9URV9TRkVOQ0VfVk1BX0FTSUQ6XG4tXHRcdGlmIChjcC1cdTAwM2VhMClcbitcdFx0aWYgKGNwLVx1MDAzZWEwKSB7XG4gXHRcdFx0aG1hc2sgPSBrdm1fcmlzY3ZfdmNwdV91bnByaXZfcmVhZCh2Y3B1LCBmYWxzZSwgY3AtXHUwMDNlYTAsIHV0cmFwKTtcbi1cdFx0ZWxzZVxuLVx0XHRcdGhtYXNrID0gKDFVTCBcdTAwM2NcdTAwM2MgYXRvbWljX3JlYWQoXHUwMDI2a3ZtLVx1MDAzZW9ubGluZV92Y3B1cykpIC0gMTtcbitcdFx0fSBlbHNlIHtcbitcdFx0XHRoYmFzZSA9IC0xVUw7XG4rXHRcdFx0aG1hc2sgPSAwO1xuK1x0XHR9XG4gXHRcdGlmICh1dHJhcC1cdTAwM2VzY2F1c2UpXG4gXHRcdFx0YnJlYWs7XG4gXG4gXHRcdGlmIChjcC1cdTAwM2VhNyA9PSBTQklfRVhUXzBfMV9SRU1PVEVfRkVOQ0VfSSlcbi1cdFx0XHRrdm1fcmlzY3ZfZmVuY2VfaSh2Y3B1LVx1MDAzZWt2bSwgMCwgaG1hc2spO1xuK1x0XHRcdGt2bV9yaXNjdl9mZW5jZV9pKHZjcHUtXHUwMDNla3ZtLCBoYmFzZSwgaG1hc2spO1xuIFx0XHRlbHNlIGlmIChjcC1cdTAwM2VhNyA9PSBTQklfRVhUXzBfMV9SRU1PVEVfU0ZFTkNFX1ZNQSkge1xuIFx0XHRcdHZtaWQgPSBSRUFEX09OQ0UodmNwdS1cdTAwM2Vrdm0tXHUwMDNlYXJjaC52bWlkLnZtaWQpO1xuIFx0XHRcdGlmIChjcC1cdTAwM2VhMSA9PSAwIFx1MDAyNlx1MDAyNiBjcC1cdTAwM2VhMiA9PSAwKVxuLVx0XHRcdFx0a3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FsbCh2Y3B1LVx1MDAzZWt2bSwgMCwgaG1hc2ssIHZtaWQpO1xuK1x0XHRcdFx0a3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FsbCh2Y3B1LVx1MDAzZWt2bSwgaGJhc2UsIGhtYXNrLCB2bWlkKTtcbiBcdFx0XHRlbHNlXG4tXHRcdFx0XHRrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfZ3ZhKHZjcHUtXHUwMDNla3ZtLCAwLCBobWFzaywgY3AtXHUwMDNlYTEsXG4rXHRcdFx0XHRrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfZ3ZhKHZjcHUtXHUwMDNla3ZtLCBoYmFzZSwgaG1hc2ssIGNwLVx1MDAzZWExLFxuIFx0XHRcdFx0XHRcdFx0ICBjcC1cdTAwM2VhMiwgUEFHRV9TSElGVCwgdm1pZCk7XG4gXHRcdH0gZWxzZSB7XG4gXHRcdFx0dm1pZCA9IFJFQURfT05DRSh2Y3B1LVx1MDAzZWt2bS1cdTAwM2VhcmNoLnZtaWQudm1pZCk7XG4gXHRcdFx0aWYgKGNwLVx1MDAzZWExID09IDAgXHUwMDI2XHUwMDI2IGNwLVx1MDAzZWEyID09IDApXG4tXHRcdFx0XHRrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYXNpZF9hbGwodmNwdS1cdTAwM2Vrdm0sIDAsIGhtYXNrLFxuK1x0XHRcdFx0a3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FzaWRfYWxsKHZjcHUtXHUwMDNla3ZtLCBoYmFzZSwgaG1hc2ssXG4gXHRcdFx0XHRcdFx0XHQgICAgICAgY3AtXHUwMDNlYTMsIHZtaWQpO1xuIFx0XHRcdGVsc2Vcbi1cdFx0XHRcdGt2bV9yaXNjdl9oZmVuY2VfdnZtYV9hc2lkX2d2YSh2Y3B1LVx1MDAzZWt2bSwgMCwgaG1hc2ssXG4rXHRcdFx0XHRrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYXNpZF9ndmEodmNwdS1cdTAwM2Vrdm0sIGhiYXNlLCBobWFzayxcbiBcdFx0XHRcdFx0XHRcdCAgICAgICBjcC1cdTAwM2VhMSwgY3AtXHUwMDNlYTIsIFBBR0VfU0hJRlQsXG4gXHRcdFx0XHRcdFx0XHQgICAgICAgY3AtXHUwMDNlYTMsIHZtaWQpO1xuIFx0XHR9XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwNToxMDoyMC40NjU3MTg3MjNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzE1MTk5ODIyNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBSSVNDLVYgS1ZNIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfdjAxLmNgIGFuZCBzcGVjaWZpY2FsbHkgdGhlIGBrdm1fc2JpX2V4dF92MDFfaGFuZGxlcmAgZnVuY3Rpb24uIEZyb20gdGhlIGRpZmYsIGl0IGxvb2tzIGxpa2UgaXQncyBhZGRyZXNzaW5nIGEgc3VidGxlIGJ1dCBwb3RlbnRpYWxseSBpbXBhY3RmdWwgYnVnIHJlbGF0ZWQgdG8gaG93IHdlJ3JlIGhhbmRsaW5nIGBobWFza2AgYW5kIGBoYmFzZWAgd2l0aGluIHRoZSBTQkkgZXh0ZW5zaW9ucywgc3BlY2lmaWNhbGx5IGZvciB0aGUgaW50ZXItcHJvY2Vzc29yIGludGVycnVwdCAoYFNCSV9FWFRfMF8xX1NFTkRfSVBJYCkgYW5kIHRoZSByZW1vdGUgZmVuY2Ugb3BlcmF0aW9ucyAoYFNCSV9FWFRfMF8xX1JFTU9URV9GRU5DRV9JYCwgYFNCSV9FWFRfMF8xX1JFTU9URV9TRkVOQ0VfVk1BYCwgYW5kIGBTQklfRVhUXzBfMV9SRU1PVEVfU0ZFTkNFX1ZNQV9BU0lEYCkuXG5cblRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiBvZiBgU0JJX0VYVF8wXzFfU0VORF9JUElgIHdhcyBtYWtpbmcgYSBkYW5nZXJvdXMgYXNzdW1wdGlvbi4gV2hlbiBgY3AtXHUwMDNlYTBgIGlzIHplcm8sIHRoZSBjb2RlIHdhcyBjYWxjdWxhdGluZyBgaG1hc2tgIGJhc2VkIG9uIHRoZSAqdG90YWwqIG51bWJlciBvZiBvbmxpbmUgdkNQVXMgdXNpbmcgYSBsZWZ0IHNoaWZ0IGFuZCBzdWJ0cmFjdGlvbi4gVGhpcyBpcyBwcm9ibGVtYXRpYyBmb3IgdHdvIG1haW4gcmVhc29ucy4gRmlyc3RseSwgaWYgd2UgaGF2ZSBhIHNpZ25pZmljYW50IG51bWJlciBvZiB2Q1BVcywgdGhhdCBzaGlmdCBjb3VsZCBlYXNpbHkgb3ZlcmZsb3cuIFNlY29uZGx5LCBhbmQgcG90ZW50aWFsbHkgbW9yZSBjcnVjaWFsbHksIGl0IGFzc3VtZXMgdkNQVSBJRHMgYXJlIGNvbnRpZ3VvdXMsIHdoaWNoIG1heSBub3QgYWx3YXlzIGJlIHRoZSBjYXNlIGluIGEgZHluYW1pYyBlbnZpcm9ubWVudCwgcGFydGljdWxhcmx5IGlmIHZDUFVzIGFyZSBob3RwbHVnZ2VkLiBJdCBzb3VuZHMgbGlrZSB0aGV5J3ZlIGZpeGVkIHRoaXMgYnkgdXNpbmcgYGt2bV9mb3JfZWFjaF92Y3B1YCB3aGljaCBpcyBkZWZpbml0ZWx5IHRoZSByaWdodCBhcHByb2FjaCBhbmQgYWRkcmVzc2VzIGJvdGggY29uY2VybnMuXG5cblRoZSBmZW5jZSBvcGVyYXRpb25zIHdlcmUgc2ltaWxhcmx5IGZsYXdlZCBpbiB0aGUgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbi4gV2hlbiBgY3AtXHUwMDNlYTBgIHdhcyB6ZXJvLCB0aGV5IHdlcmUgc2V0dGluZyBgaGJhc2VgIHRvIGAtMVVMYCBhbmQgYGhtYXNrYCB0byBgMGAsIHdoaWNoLCBpbiBlZmZlY3QsIG1lYW50ICphbGwqIHZDUFVzLiBJbnN0ZWFkLCB0aGUgb2xkZXIgY29kZSBzZXQgaG1hc2sgYXMgYWJvdmUsIGxlYWRpbmcgdG8gdW5leHBlY3RlZCBiZWhhdmlvci4gVGhlIHBhdGNoJ3MgY2hhbmdlIGNvcnJlY3RseSB0YXJnZXRzIHRoaXMgYW5kIGxpa2VseSBjb3JyZWN0cyBzb21lIGlzc3VlcyBmb3IgZmVuY2Ugb3BlcmF0aW9ucy5cblxuVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHByZXR0eSBpbXBvcnRhbnQgb25lLCBhY3R1YWxseSB3aXRoaW4gdGhlIEtWTSBpbmZyYXN0cnVjdHVyZSBvbiBSSVNDLVYuIEl0J3MgZGVmaW5pdGVseSByZWFjaGFibGUgdmlhIHRoZSBLVk0gaW9jdGxzLCBzbyBpdCdzIHNvbWV0aGluZyB0aGF0J3MgZXhwb3NlZCB0byB1c2VyIHNwYWNlLiBHaXZlbiB0aGlzLCBhbmQgdGhlIHBvdGVudGlhbCBmb3IgYSBzdWJ0bGUgbWlzYmVoYXZpb3IsIHRoaXMgaXMgZGVmaW5pdGVseSBXb3J0aEZ1enppbmc9dHJ1ZS4gSSBuZWVkIHRvIG1ha2UgYSBub3RlIG9mIHRoaXMuXG5cbk5vdywgbGV0IG1lIGp1c3QgcXVpY2tseSBjb25maXJtIGEgZmV3IHRoaW5ncy4gSSdsbCB0YWtlIGEgcXVpY2sgbG9vayBhdCBgYXJjaC9yaXNjdi9rdm0vS2NvbmZpZ2AgdG8gY29uZmlybSB0aGF0IGBDT05GSUdfS1ZNYCBpcyBpbmRlZWQgZW5hYmxlZC4gVGhlbiwgSSB3aWxsIG5lZWQgdG8gc2V0IHVwIG15IGZ1enppbmcgdG9vbHMgdG8gdGVzdCB0aGVzZSBpb2N0bHMgdGhvcm91Z2hseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIxNiwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM3OCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE4VDA1OjEwOjMzLjYxNzcxODk4OFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjYxNDExOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgS1ZNXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gvcmlzY3Yva3ZtL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9yaXNjdi9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMTktXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwNToxMDozMy42NzQzNDEwNTdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMjM3MTAxNzQ1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBSSVNDLVYgS1ZNIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyBkaWdnaW5nIGludG8gYGFyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3YwMS5jYC4gUmlnaHQgYXdheSwgSSBzZWUgdGhpcyBpcyBhYm91dCBSSVNDLVYgS1ZNLCBzcGVjaWZpY2FsbHkgaG93IHRoZSBTQkkgdjAuMSBjYWxscyBhcmUgaGFuZGxlZC4gVGhlIGNvcmUgb2YgdGhpcyBzZWVtcyB0byByZXZvbHZlIGFyb3VuZCB0aG9zZSBTQkkgZXh0ZW5zaW9uIGNhbGxzOiBgU0JJX0VYVF8wXzFfU0VORF9JUElgLCBgU0JJX0VYVF8wXzFfUkVNT1RFX0ZFTkNFX0lgLCBhbmQgdGhlIGBTRkVOQ0VgIHZhcmlhbnRzLlxuXG5UaGUgc2lnbmlmaWNhbnQgY2hhbmdlIGlzIGluIGhvdyB0aGUgY29kZSBpbnRlcnByZXRzIGBjcC1cdTAwM2VhMGAgYmVpbmcgemVybywgdGhlIHRhcmdldCBvZiB0aGUgU0JJIGNhbGwuIFRoYXQgc2lnbmlmaWVzIGFsbCBvbmxpbmUgdkNQVXMgaW4gU0JJIHYwLjEuIFRoZSBvbGQgYXBwcm9hY2gsIGBobWFzayA9ICgxVUwgXHUwMDNjXHUwMDNjIGF0b21pY19yZWFkKFx1MDAyNmt2bS1cdTAwM2VvbmxpbmVfdmNwdXMpKSAtIDE7YCwgd2FzIGNsZWFybHkgcHJvYmxlbWF0aWMuIElmIHdlIGhhdmUgYSBsYXJnZSBudW1iZXIgb2Ygb25saW5lIHZDUFVzLCBvciBpZiB0aGVpciBJRHMgYXJlbid0IHNlcXVlbnRpYWwsIHRoYXQgYml0IG1hbmlwdWxhdGlvbiBnb2VzIHNpZGV3YXlzIHByZXR0eSBmYXN0LiBJdCdzIGEgY2xhc3NpYyBvZmYtYnktb25lIG9yIGludGVnZXIgb3ZlcmZsb3cgc2NlbmFyaW8gd2FpdGluZyB0byBoYXBwZW4uXG5cblRoZSBmaXggc2VlbXMgZWxlZ2FudDogaXQgbm93IGxldmVyYWdlcyBga3ZtX2Zvcl9lYWNoX3ZjcHVgIGZvciB0aGUgSVBJIGNhbGxzLiBGb3IgdGhlIHJlbW90ZSBmZW5jZXMsIGl0IG5vdyBzZXRzIGBoYmFzZSA9IC0xVUw7IGhtYXNrID0gMDtgLiBUaGlzIHNpZ25hbHMgdG8gdGhlIGxvd2VyLWxldmVsIGZlbmNlIGZ1bmN0aW9ucyB0aGF0IGFsbCB2Q1BVcyBhcmUgdGhlIHRhcmdldC4gVGhhdCBzZWVtcyBtdWNoIGNsZWFuZXIgYW5kIG1vcmUgcm9idXN0LiBObyBtb3JlIHJlbGlhbmNlIG9uIGNvbnRpZ3VvdXMgSURzIG9yIHdvcnJ5IGFib3V0IGV4Y2VlZGluZyB0aGUgYml0cyBhbGxvd2VkLlxuXG5GdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBjbGVhciBpbXByb3ZlbWVudCBpbiBLVk0gZm9yIFJJU0MtVi4gSXQncyBhIGNoYW5nZSB0byB0aGUgZnVuZGFtZW50YWwgbG9naWMgb2YgaG93IHdlIHRhcmdldCB2Q1BVcyBpbiBTQkkgY2FsbHMuIEdpdmVuIGl0cyBuYXR1cmUsIGl0IHdhcnJhbnRzIGEgY2xvc2UgbG9vaywgYW5kIGRlZmluaXRlbHkgbWVyaXRzIGZ1enppbmcuIEknbGwgZm9jdXMgbXkgZnV6emluZyBlZmZvcnRzIG9uIGBrdm1fc2JpX2V4dF92MDFfaGFuZGxlcmAsIGFuZCBJJ2xsIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBgS1ZNYCBjb25maWcgaXMgZW5hYmxlZC5cblxuTm93LCBsZXQncyBqdXN0IG1ha2Ugc3VyZSB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlncyBJIG5lZWQgdG8gY29uc2lkZXIgZm9yIHRob3JvdWdoIGNvdmVyYWdlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTIwLCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE4VDA1OjEwOjQ2LjA0NTM2MDU5MloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NTMxNTQ3OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgS1ZNXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gvcmlzY3YvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvcmlzY3Yva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMjEtXFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMThUMDU6MTA6NDYuMTEwNjgwNzdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTI3ODQ5OTA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgS1ZNIFNCSSBFeHRlbnNpb24gSGFuZGxlcioqXG5cbk9rYXksIHNvIHRoZSBjb25maWd1cmF0aW9uIEknbSBsb29raW5nIGF0IGlzIGZvciBgS1ZNYCwgYW5kIHRoZSBzcGVjaWZpYyBmdW5jdGlvbiBvZiBpbnRlcmVzdCBpcyBga3ZtX3NiaV9leHRfdjAxX2hhbmRsZXJgLiBMZXQncyBqdXN0IG1ha2UgYWJzb2x1dGVseSBzdXJlIHRoYXQgdGhpcyBpcyB0aGUgb25seSBhcmVhIHRvdWNoZWQgYnkgdGhpcyBjaGFuZ2UuICpZZXMsIGdvb2QsIHRoZSBkaWZmIG9ubHkgc2hvd3MgbW9kaWZpY2F0aW9ucyB0byBga3ZtX3NiaV9leHRfdjAxX2hhbmRsZXJgLiogVGhhdCBzaW1wbGlmaWVzIHRoaW5ncy5cblxuTm93LCB0aGUgaW1wb3J0YW50IHF1ZXN0aW9uOiBjYW4gd2UgZnV6eiB0aGlzPyBHaXZlbiB0aGF0IHRoaXMgcmVsYXRlcyB0byBLVk0gb24gUklTQy1WLCBhbmQgSSBrbm93IHRoYXQgc3l6a2FsbGVyIHN1cHBvcnRzIEtWTSBvbiBSSVNDLVYsIHRoZSBhbnN3ZXIgaXMgKnllcyouXG5cblRoZSBjb3JlIG9mIHRoZSBpc3N1ZSBoZXJlIGlzIHRoYXQgdGhlIHBhdGNoIGFkZHJlc3NlcyBob3cgdGhlIGh5cGVydmlzb3IgaGFuZGxlcyBTQkkgdjAuMSBJUEkgYW5kIHJlbW90ZSBmZW5jZSBjYWxscyB3aXRoaW4gUklTQy1WIEtWTSwgcGFydGljdWxhcmx5IHdoZW4gdGFyZ2V0aW5nICphbGwqIHZpcnR1YWwgQ1BVcy4gSXQgbG9va3MgbGlrZSB0aGVyZSB3YXMgYSBwb3RlbnRpYWwgZmxhdyBpbiB0aGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb24g4oCTIGEgYml0bWFzayBjYWxjdWxhdGlvbiB0aGF0IGNvdWxkIGVpdGhlciBvdmVyZmxvdyBvciwgd29yc2UsIGNvbXBsZXRlbHkgbWlzcyBzb21lIG9mIHRoZSB2Q1BVcy4gVGhlIGZpeCBpcyBhIG1vcmUgcm9idXN0IGFwcHJvYWNoLCBpdGVyYXRpbmcgcHJvcGVybHkgdGhyb3VnaCB0aGUgdkNQVXMgYW5kIGVuc3VyaW5nIHRoZSBjb3JyZWN0IGBoYmFzZWAvYGhtYXNrYCB2YWx1ZXMgYXJlIHVzZWQuIFRoaXMgcmVwcmVzZW50cyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBLVk0gaHlwZXJ2aXNvciBpdHNlbGYuIEl0J3MgdHJpZ2dlcmVkIGJ5IGEgZ3Vlc3QgaXNzdWluZyBzcGVjaWZpYyBTQkkgY2FsbHMsIHNvIGl0J3MgZGlyZWN0bHkgdGVzdGFibGUuXG5cbkFscmlnaHQsIEknbSBjb25maWRlbnQgaW4gbXkgYXNzZXNzbWVudC4gSSdsbCBkb2N1bWVudCBteSBmaW5kaW5ncyBhbmQgc2V0IHRoZSByZXN1bHRzIGFjY29yZGluZ2x5LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MTg5LCJPdXRwdXRUb2tlbnMiOjEzMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwNToxMDo1MS4wMzg1MzI4NTVaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc3NDEyNTQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fc2JpX2V4dF92MDFfaGFuZGxlclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHRoZSBoYW5kbGluZyBvZiBTQkkgdjAuMSBJUEkgYW5kIHJlbW90ZSBmZW5jZSBjYWxscyBpbiBSSVNDLVYgS1ZNIHdoZW4gdGFyZ2V0aW5nIGFsbCB2Q1BVcy4gSXQgcmVwbGFjZXMgYSBiaXRtYXNrIGNhbGN1bGF0aW9uIHRoYXQgY291bGQgb3ZlcmZsb3cgb3IgbWlzcyB2Q1BVcyB3aXRoIHByb3BlciB2Q1BVIGl0ZXJhdGlvbiBhbmQgY29ycmVjdCBoYmFzZS9obWFzayB2YWx1ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgS1ZNIGh5cGVydmlzb3IgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IGEgZ3Vlc3QgZXhlY3V0aW5nIHNwZWNpZmljIFNCSSBjYWxscy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fc2JpX2V4dF92MDFfaGFuZGxlclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHRoZSBoYW5kbGluZyBvZiBTQkkgdjAuMSBJUEkgYW5kIHJlbW90ZSBmZW5jZSBjYWxscyBpbiBSSVNDLVYgS1ZNIHdoZW4gdGFyZ2V0aW5nIGFsbCB2Q1BVcy4gSXQgcmVwbGFjZXMgYSBiaXRtYXNrIGNhbGN1bGF0aW9uIHRoYXQgY291bGQgb3ZlcmZsb3cgb3IgbWlzcyB2Q1BVcyB3aXRoIHByb3BlciB2Q1BVIGl0ZXJhdGlvbiBhbmQgY29ycmVjdCBoYmFzZS9obWFzayB2YWx1ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgS1ZNIGh5cGVydmlzb3IgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IGEgZ3Vlc3QgZXhlY3V0aW5nIHNwZWNpZmljIFNCSSBjYWxscy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowfq9wm[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-18 04:51:12 +0000 UTC FinishedAt: 2026-07-18 05:10:53 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "a204badd8432f93b7e862e7dac6db0fe3d65f370", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "a204badd8432f93b7e862e7dac6db0fe3d65f370", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "07ea8625-d5f0-4d0d-bb2f-988e8c05e973" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_sbi_ext_v01_handler" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE4IDA1OjEwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9zYmlfZXh0X3YwMV9oYW5kbGVyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHRoZSBoYW5kbGluZyBvZiBTQkkgdjAuMSBJUEkgYW5kIHJlbW90ZSBmZW5jZSBjYWxscyBpbiBSSVNDLVYgS1ZNIHdoZW4gdGFyZ2V0aW5nIGFsbCB2Q1BVcy4gSXQgcmVwbGFjZXMgYSBiaXRtYXNrIGNhbGN1bGF0aW9uIHRoYXQgY291bGQgb3ZlcmZsb3cgb3IgbWlzcyB2Q1BVcyB3aXRoIHByb3BlciB2Q1BVIGl0ZXJhdGlvbiBhbmQgY29ycmVjdCBoYmFzZS9obWFzayB2YWx1ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgS1ZNIGh5cGVydmlzb3IgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IGEgZ3Vlc3QgZXhlY3V0aW5nIHNwZWNpZmljIFNCSSBjYWxscy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOCAwNToxMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDk1NzE0ZTI0MDQyZWVlNWVhZDFkZGQyZmM2MzIwNzRiMTZkZDMyZjhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEp1bCAxOCAwNToxMDoxOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV92MDEuYyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3YwMS5jXG5pbmRleCBjOWMzMjNkNDU3N2E5OC4uZGU1NDRlYTNmMjhkYzMgMTAwNjQ0XG4tLS0gYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV92MDEuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfdjAxLmNcbkBAIC0xNiw4ICYjNDM7MTYsOSBAQFxuIHN0YXRpYyBpbnQga3ZtX3NiaV9leHRfdjAxX2hhbmRsZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3Qga3ZtX3J1biAqcnVuLFxuIFx0XHRcdFx0ICAgc3RydWN0IGt2bV92Y3B1X3NiaV9yZXR1cm4gKnJldGRhdGEpXG4ge1xuLVx0dWxvbmcgaG1hc2s7XG4tXHRpbnQgaSwgcmV0ID0gMDtcbiYjNDM7XHR1bG9uZyBoYmFzZSA9IDAsIGhtYXNrO1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgaTtcbiYjNDM7XHRpbnQgcmV0ID0gMDtcbiBcdHU2NCBuZXh0X2N5Y2xlO1xuIFx0c3RydWN0IGt2bV92Y3B1ICpydmNwdTtcbiBcdHN0cnVjdCBrdm0gKmt2bSA9IHZjcHUtXHUwMDNla3ZtO1xuQEAgLTQ2LDIwICYjNDM7NDcsMjUgQEAgc3RhdGljIGludCBrdm1fc2JpX2V4dF92MDFfaGFuZGxlcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fcnVuICpydW4sXG4gXHRcdHJldCA9IGt2bV9yaXNjdl92Y3B1X3Vuc2V0X2ludGVycnVwdCh2Y3B1LCBJUlFfVlNfU09GVCk7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBTQklfRVhUXzBfMV9TRU5EX0lQSTpcbi1cdFx0aWYgKGNwLVx1MDAzZWEwKVxuJiM0MztcdFx0aWYgKGNwLVx1MDAzZWEwKSB7XG4gXHRcdFx0aG1hc2sgPSBrdm1fcmlzY3ZfdmNwdV91bnByaXZfcmVhZCh2Y3B1LCBmYWxzZSwgY3AtXHUwMDNlYTAsIHV0cmFwKTtcbi1cdFx0ZWxzZVxuLVx0XHRcdGhtYXNrID0gKDFVTCBcdTAwM2NcdTAwM2MgYXRvbWljX3JlYWQoXHUwMDI2a3ZtLVx1MDAzZW9ubGluZV92Y3B1cykpIC0gMTtcbi1cdFx0aWYgKHV0cmFwLVx1MDAzZXNjYXVzZSlcbi1cdFx0XHRicmVhaztcbi1cbi1cdFx0Zm9yX2VhY2hfc2V0X2JpdChpLCBcdTAwMjZobWFzaywgQklUU19QRVJfTE9ORykge1xuLVx0XHRcdHJ2Y3B1ID0ga3ZtX2dldF92Y3B1X2J5X2lkKHZjcHUtXHUwMDNla3ZtLCBpKTtcbi1cdFx0XHRpZiAoIXJ2Y3B1KVxuLVx0XHRcdFx0Y29udGludWU7XG4tXHRcdFx0cmV0ID0ga3ZtX3Jpc2N2X3ZjcHVfc2V0X2ludGVycnVwdChydmNwdSwgSVJRX1ZTX1NPRlQpO1xuLVx0XHRcdGlmIChyZXQgXHUwMDNjIDApXG4mIzQzO1x0XHRcdGlmICh1dHJhcC1cdTAwM2VzY2F1c2UpXG4gXHRcdFx0XHRicmVhaztcbiYjNDM7XG4mIzQzO1x0XHRcdGZvcl9lYWNoX3NldF9iaXQoaSwgXHUwMDI2aG1hc2ssIEJJVFNfUEVSX0xPTkcpIHtcbiYjNDM7XHRcdFx0XHRydmNwdSA9IGt2bV9nZXRfdmNwdV9ieV9pZCh2Y3B1LVx1MDAzZWt2bSwgaSk7XG4mIzQzO1x0XHRcdFx0aWYgKCFydmNwdSlcbiYjNDM7XHRcdFx0XHRcdGNvbnRpbnVlO1xuJiM0MztcdFx0XHRcdHJldCA9IGt2bV9yaXNjdl92Y3B1X3NldF9pbnRlcnJ1cHQocnZjcHUsIElSUV9WU19TT0ZUKTtcbiYjNDM7XHRcdFx0XHRpZiAocmV0IFx1MDAzYyAwKVxuJiM0MztcdFx0XHRcdFx0YnJlYWs7XG4mIzQzO1x0XHRcdH1cbiYjNDM7XHRcdH0gZWxzZSB7XG4mIzQzO1x0XHRcdGt2bV9mb3JfZWFjaF92Y3B1KGksIHJ2Y3B1LCBrdm0pIHtcbiYjNDM7XHRcdFx0XHRyZXQgPSBrdm1fcmlzY3ZfdmNwdV9zZXRfaW50ZXJydXB0KHJ2Y3B1LCBJUlFfVlNfU09GVCk7XG4mIzQzO1x0XHRcdFx0aWYgKHJldCBcdTAwM2MgMClcbiYjNDM7XHRcdFx0XHRcdGJyZWFrO1xuJiM0MztcdFx0XHR9XG4gXHRcdH1cbiBcdFx0YnJlYWs7XG4gXHRjYXNlIFNCSV9FWFRfMF8xX1NIVVRET1dOOlxuQEAgLTcwLDI5ICYjNDM7NzYsMzEgQEAgc3RhdGljIGludCBrdm1fc2JpX2V4dF92MDFfaGFuZGxlcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fcnVuICpydW4sXG4gXHRjYXNlIFNCSV9FWFRfMF8xX1JFTU9URV9GRU5DRV9JOlxuIFx0Y2FzZSBTQklfRVhUXzBfMV9SRU1PVEVfU0ZFTkNFX1ZNQTpcbiBcdGNhc2UgU0JJX0VYVF8wXzFfUkVNT1RFX1NGRU5DRV9WTUFfQVNJRDpcbi1cdFx0aWYgKGNwLVx1MDAzZWEwKVxuJiM0MztcdFx0aWYgKGNwLVx1MDAzZWEwKSB7XG4gXHRcdFx0aG1hc2sgPSBrdm1fcmlzY3ZfdmNwdV91bnByaXZfcmVhZCh2Y3B1LCBmYWxzZSwgY3AtXHUwMDNlYTAsIHV0cmFwKTtcbi1cdFx0ZWxzZVxuLVx0XHRcdGhtYXNrID0gKDFVTCBcdTAwM2NcdTAwM2MgYXRvbWljX3JlYWQoXHUwMDI2a3ZtLVx1MDAzZW9ubGluZV92Y3B1cykpIC0gMTtcbiYjNDM7XHRcdH0gZWxzZSB7XG4mIzQzO1x0XHRcdGhiYXNlID0gLTFVTDtcbiYjNDM7XHRcdFx0aG1hc2sgPSAwO1xuJiM0MztcdFx0fVxuIFx0XHRpZiAodXRyYXAtXHUwMDNlc2NhdXNlKVxuIFx0XHRcdGJyZWFrO1xuIFxuIFx0XHRpZiAoY3AtXHUwMDNlYTcgPT0gU0JJX0VYVF8wXzFfUkVNT1RFX0ZFTkNFX0kpXG4tXHRcdFx0a3ZtX3Jpc2N2X2ZlbmNlX2kodmNwdS1cdTAwM2Vrdm0sIDAsIGhtYXNrKTtcbiYjNDM7XHRcdFx0a3ZtX3Jpc2N2X2ZlbmNlX2kodmNwdS1cdTAwM2Vrdm0sIGhiYXNlLCBobWFzayk7XG4gXHRcdGVsc2UgaWYgKGNwLVx1MDAzZWE3ID09IFNCSV9FWFRfMF8xX1JFTU9URV9TRkVOQ0VfVk1BKSB7XG4gXHRcdFx0dm1pZCA9IFJFQURfT05DRSh2Y3B1LVx1MDAzZWt2bS1cdTAwM2VhcmNoLnZtaWQudm1pZCk7XG4gXHRcdFx0aWYgKGNwLVx1MDAzZWExID09IDAgXHUwMDI2XHUwMDI2IGNwLVx1MDAzZWEyID09IDApXG4tXHRcdFx0XHRrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYWxsKHZjcHUtXHUwMDNla3ZtLCAwLCBobWFzaywgdm1pZCk7XG4mIzQzO1x0XHRcdFx0a3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FsbCh2Y3B1LVx1MDAzZWt2bSwgaGJhc2UsIGhtYXNrLCB2bWlkKTtcbiBcdFx0XHRlbHNlXG4tXHRcdFx0XHRrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfZ3ZhKHZjcHUtXHUwMDNla3ZtLCAwLCBobWFzaywgY3AtXHUwMDNlYTEsXG4mIzQzO1x0XHRcdFx0a3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2d2YSh2Y3B1LVx1MDAzZWt2bSwgaGJhc2UsIGhtYXNrLCBjcC1cdTAwM2VhMSxcbiBcdFx0XHRcdFx0XHRcdCAgY3AtXHUwMDNlYTIsIFBBR0VfU0hJRlQsIHZtaWQpO1xuIFx0XHR9IGVsc2Uge1xuIFx0XHRcdHZtaWQgPSBSRUFEX09OQ0UodmNwdS1cdTAwM2Vrdm0tXHUwMDNlYXJjaC52bWlkLnZtaWQpO1xuIFx0XHRcdGlmIChjcC1cdTAwM2VhMSA9PSAwIFx1MDAyNlx1MDAyNiBjcC1cdTAwM2VhMiA9PSAwKVxuLVx0XHRcdFx0a3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FzaWRfYWxsKHZjcHUtXHUwMDNla3ZtLCAwLCBobWFzayxcbiYjNDM7XHRcdFx0XHRrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYXNpZF9hbGwodmNwdS1cdTAwM2Vrdm0sIGhiYXNlLCBobWFzayxcbiBcdFx0XHRcdFx0XHRcdCAgICAgICBjcC1cdTAwM2VhMywgdm1pZCk7XG4gXHRcdFx0ZWxzZVxuLVx0XHRcdFx0a3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FzaWRfZ3ZhKHZjcHUtXHUwMDNla3ZtLCAwLCBobWFzayxcbiYjNDM7XHRcdFx0XHRrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYXNpZF9ndmEodmNwdS1cdTAwM2Vrdm0sIGhiYXNlLCBobWFzayxcbiBcdFx0XHRcdFx0XHRcdCAgICAgICBjcC1cdTAwM2VhMSwgY3AtXHUwMDNlYTIsIFBBR0VfU0hJRlQsXG4gXHRcdFx0XHRcdFx0XHQgICAgICAgY3AtXHUwMDNlYTMsIHZtaWQpO1xuIFx0XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDU6MTA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX3NiaV9leHRfdjAxX2hhbmRsZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgdGhlIGhhbmRsaW5nIG9mIFNCSSB2MC4xIElQSSBhbmQgcmVtb3RlIGZlbmNlIGNhbGxzIGluIFJJU0MtViBLVk0gd2hlbiB0YXJnZXRpbmcgYWxsIHZDUFVzLiBJdCByZXBsYWNlcyBhIGJpdG1hc2sgY2FsY3VsYXRpb24gdGhhdCBjb3VsZCBvdmVyZmxvdyBvciBtaXNzIHZDUFVzIHdpdGggcHJvcGVyIHZDUFUgaXRlcmF0aW9uIGFuZCBjb3JyZWN0IGhiYXNlL2htYXNrIHZhbHVlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBLVk0gaHlwZXJ2aXNvciB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgYnkgYSBndWVzdCBleGVjdXRpbmcgc3BlY2lmaWMgU0JJIGNhbGxzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA5NTcxNGUyNDA0MmVlZTVlYWQxZGRkMmZjNjMyMDc0YjE2ZGQzMmY4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBKdWwgMTggMDU6MTA6MTggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV92MDEuYyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3YwMS5jCmluZGV4IGM5YzMyM2Q0NTc3YTk4Li5kZTU0NGVhM2YyOGRjMyAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfdjAxLmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfdjAxLmMKQEAgLTE2LDggJiM0MzsxNiw5IEBACiBzdGF0aWMgaW50IGt2bV9zYmlfZXh0X3YwMV9oYW5kbGVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9ydW4gKnJ1biwKIAkJCQkgICBzdHJ1Y3Qga3ZtX3ZjcHVfc2JpX3JldHVybiAqcmV0ZGF0YSkKIHsKLQl1bG9uZyBobWFzazsKLQlpbnQgaSwgcmV0ID0gMDsKJiM0MzsJdWxvbmcgaGJhc2UgPSAwLCBobWFzazsKJiM0MzsJdW5zaWduZWQgbG9uZyBpOwomIzQzOwlpbnQgcmV0ID0gMDsKIAl1NjQgbmV4dF9jeWNsZTsKIAlzdHJ1Y3Qga3ZtX3ZjcHUgKnJ2Y3B1OwogCXN0cnVjdCBrdm0gKmt2bSA9IHZjcHUtJmd0O2t2bTsKQEAgLTQ2LDIwICYjNDM7NDcsMjUgQEAgc3RhdGljIGludCBrdm1fc2JpX2V4dF92MDFfaGFuZGxlcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fcnVuICpydW4sCiAJCXJldCA9IGt2bV9yaXNjdl92Y3B1X3Vuc2V0X2ludGVycnVwdCh2Y3B1LCBJUlFfVlNfU09GVCk7CiAJCWJyZWFrOwogCWNhc2UgU0JJX0VYVF8wXzFfU0VORF9JUEk6Ci0JCWlmIChjcC0mZ3Q7YTApCiYjNDM7CQlpZiAoY3AtJmd0O2EwKSB7CiAJCQlobWFzayA9IGt2bV9yaXNjdl92Y3B1X3VucHJpdl9yZWFkKHZjcHUsIGZhbHNlLCBjcC0mZ3Q7YTAsIHV0cmFwKTsKLQkJZWxzZQotCQkJaG1hc2sgPSAoMVVMICZsdDsmbHQ7IGF0b21pY19yZWFkKCZhbXA7a3ZtLSZndDtvbmxpbmVfdmNwdXMpKSAtIDE7Ci0JCWlmICh1dHJhcC0mZ3Q7c2NhdXNlKQotCQkJYnJlYWs7Ci0KLQkJZm9yX2VhY2hfc2V0X2JpdChpLCAmYW1wO2htYXNrLCBCSVRTX1BFUl9MT05HKSB7Ci0JCQlydmNwdSA9IGt2bV9nZXRfdmNwdV9ieV9pZCh2Y3B1LSZndDtrdm0sIGkpOwotCQkJaWYgKCFydmNwdSkKLQkJCQljb250aW51ZTsKLQkJCXJldCA9IGt2bV9yaXNjdl92Y3B1X3NldF9pbnRlcnJ1cHQocnZjcHUsIElSUV9WU19TT0ZUKTsKLQkJCWlmIChyZXQgJmx0OyAwKQomIzQzOwkJCWlmICh1dHJhcC0mZ3Q7c2NhdXNlKQogCQkJCWJyZWFrOwomIzQzOwomIzQzOwkJCWZvcl9lYWNoX3NldF9iaXQoaSwgJmFtcDtobWFzaywgQklUU19QRVJfTE9ORykgewomIzQzOwkJCQlydmNwdSA9IGt2bV9nZXRfdmNwdV9ieV9pZCh2Y3B1LSZndDtrdm0sIGkpOwomIzQzOwkJCQlpZiAoIXJ2Y3B1KQomIzQzOwkJCQkJY29udGludWU7CiYjNDM7CQkJCXJldCA9IGt2bV9yaXNjdl92Y3B1X3NldF9pbnRlcnJ1cHQocnZjcHUsIElSUV9WU19TT0ZUKTsKJiM0MzsJCQkJaWYgKHJldCAmbHQ7IDApCiYjNDM7CQkJCQlicmVhazsKJiM0MzsJCQl9CiYjNDM7CQl9IGVsc2UgewomIzQzOwkJCWt2bV9mb3JfZWFjaF92Y3B1KGksIHJ2Y3B1LCBrdm0pIHsKJiM0MzsJCQkJcmV0ID0ga3ZtX3Jpc2N2X3ZjcHVfc2V0X2ludGVycnVwdChydmNwdSwgSVJRX1ZTX1NPRlQpOwomIzQzOwkJCQlpZiAocmV0ICZsdDsgMCkKJiM0MzsJCQkJCWJyZWFrOwomIzQzOwkJCX0KIAkJfQogCQlicmVhazsKIAljYXNlIFNCSV9FWFRfMF8xX1NIVVRET1dOOgpAQCAtNzAsMjkgJiM0Mzs3NiwzMSBAQCBzdGF0aWMgaW50IGt2bV9zYmlfZXh0X3YwMV9oYW5kbGVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9ydW4gKnJ1biwKIAljYXNlIFNCSV9FWFRfMF8xX1JFTU9URV9GRU5DRV9JOgogCWNhc2UgU0JJX0VYVF8wXzFfUkVNT1RFX1NGRU5DRV9WTUE6CiAJY2FzZSBTQklfRVhUXzBfMV9SRU1PVEVfU0ZFTkNFX1ZNQV9BU0lEOgotCQlpZiAoY3AtJmd0O2EwKQomIzQzOwkJaWYgKGNwLSZndDthMCkgewogCQkJaG1hc2sgPSBrdm1fcmlzY3ZfdmNwdV91bnByaXZfcmVhZCh2Y3B1LCBmYWxzZSwgY3AtJmd0O2EwLCB1dHJhcCk7Ci0JCWVsc2UKLQkJCWhtYXNrID0gKDFVTCAmbHQ7Jmx0OyBhdG9taWNfcmVhZCgmYW1wO2t2bS0mZ3Q7b25saW5lX3ZjcHVzKSkgLSAxOwomIzQzOwkJfSBlbHNlIHsKJiM0MzsJCQloYmFzZSA9IC0xVUw7CiYjNDM7CQkJaG1hc2sgPSAwOwomIzQzOwkJfQogCQlpZiAodXRyYXAtJmd0O3NjYXVzZSkKIAkJCWJyZWFrOwogCiAJCWlmIChjcC0mZ3Q7YTcgPT0gU0JJX0VYVF8wXzFfUkVNT1RFX0ZFTkNFX0kpCi0JCQlrdm1fcmlzY3ZfZmVuY2VfaSh2Y3B1LSZndDtrdm0sIDAsIGhtYXNrKTsKJiM0MzsJCQlrdm1fcmlzY3ZfZmVuY2VfaSh2Y3B1LSZndDtrdm0sIGhiYXNlLCBobWFzayk7CiAJCWVsc2UgaWYgKGNwLSZndDthNyA9PSBTQklfRVhUXzBfMV9SRU1PVEVfU0ZFTkNFX1ZNQSkgewogCQkJdm1pZCA9IFJFQURfT05DRSh2Y3B1LSZndDtrdm0tJmd0O2FyY2gudm1pZC52bWlkKTsKIAkJCWlmIChjcC0mZ3Q7YTEgPT0gMCAmYW1wOyZhbXA7IGNwLSZndDthMiA9PSAwKQotCQkJCWt2bV9yaXNjdl9oZmVuY2VfdnZtYV9hbGwodmNwdS0mZ3Q7a3ZtLCAwLCBobWFzaywgdm1pZCk7CiYjNDM7CQkJCWt2bV9yaXNjdl9oZmVuY2VfdnZtYV9hbGwodmNwdS0mZ3Q7a3ZtLCBoYmFzZSwgaG1hc2ssIHZtaWQpOwogCQkJZWxzZQotCQkJCWt2bV9yaXNjdl9oZmVuY2VfdnZtYV9ndmEodmNwdS0mZ3Q7a3ZtLCAwLCBobWFzaywgY3AtJmd0O2ExLAomIzQzOwkJCQlrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfZ3ZhKHZjcHUtJmd0O2t2bSwgaGJhc2UsIGhtYXNrLCBjcC0mZ3Q7YTEsCiAJCQkJCQkJICBjcC0mZ3Q7YTIsIFBBR0VfU0hJRlQsIHZtaWQpOwogCQl9IGVsc2UgewogCQkJdm1pZCA9IFJFQURfT05DRSh2Y3B1LSZndDtrdm0tJmd0O2FyY2gudm1pZC52bWlkKTsKIAkJCWlmIChjcC0mZ3Q7YTEgPT0gMCAmYW1wOyZhbXA7IGNwLSZndDthMiA9PSAwKQotCQkJCWt2bV9yaXNjdl9oZmVuY2VfdnZtYV9hc2lkX2FsbCh2Y3B1LSZndDtrdm0sIDAsIGhtYXNrLAomIzQzOwkJCQlrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYXNpZF9hbGwodmNwdS0mZ3Q7a3ZtLCBoYmFzZSwgaG1hc2ssCiAJCQkJCQkJICAgICAgIGNwLSZndDthMywgdm1pZCk7CiAJCQllbHNlCi0JCQkJa3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FzaWRfZ3ZhKHZjcHUtJmd0O2t2bSwgMCwgaG1hc2ssCiYjNDM7CQkJCWt2bV9yaXNjdl9oZmVuY2VfdnZtYV9hc2lkX2d2YSh2Y3B1LSZndDtrdm0sIGhiYXNlLCBobWFzaywKIAkJCQkJCQkgICAgICAgY3AtJmd0O2ExLCBjcC0mZ3Q7YTIsIFBBR0VfU0hJRlQsCiAJCQkJCQkJICAgICAgIGNwLSZndDthMywgdm1pZCk7CiAJCX0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDU6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzIxNgoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDM3OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBSSVNDLVYgS1ZNIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYGFyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3YwMS5jYCBhbmQgc3BlY2lmaWNhbGx5IHRoZSBga3ZtX3NiaV9leHRfdjAxX2hhbmRsZXJgIGZ1bmN0aW9uLiBGcm9tIHRoZSBkaWZmLCBpdCBsb29rcyBsaWtlIGl0JiMzOTtzIGFkZHJlc3NpbmcgYSBzdWJ0bGUgYnV0IHBvdGVudGlhbGx5IGltcGFjdGZ1bCBidWcgcmVsYXRlZCB0byBob3cgd2UmIzM5O3JlIGhhbmRsaW5nIGBobWFza2AgYW5kIGBoYmFzZWAgd2l0aGluIHRoZSBTQkkgZXh0ZW5zaW9ucywgc3BlY2lmaWNhbGx5IGZvciB0aGUgaW50ZXItcHJvY2Vzc29yIGludGVycnVwdCAoYFNCSV9FWFRfMF8xX1NFTkRfSVBJYCkgYW5kIHRoZSByZW1vdGUgZmVuY2Ugb3BlcmF0aW9ucyAoYFNCSV9FWFRfMF8xX1JFTU9URV9GRU5DRV9JYCwgYFNCSV9FWFRfMF8xX1JFTU9URV9TRkVOQ0VfVk1BYCwgYW5kIGBTQklfRVhUXzBfMV9SRU1PVEVfU0ZFTkNFX1ZNQV9BU0lEYCkuCgpUaGUgb3JpZ2luYWwgaW1wbGVtZW50YXRpb24gb2YgYFNCSV9FWFRfMF8xX1NFTkRfSVBJYCB3YXMgbWFraW5nIGEgZGFuZ2Vyb3VzIGFzc3VtcHRpb24uIFdoZW4gYGNwLSZndDthMGAgaXMgemVybywgdGhlIGNvZGUgd2FzIGNhbGN1bGF0aW5nIGBobWFza2AgYmFzZWQgb24gdGhlICp0b3RhbCogbnVtYmVyIG9mIG9ubGluZSB2Q1BVcyB1c2luZyBhIGxlZnQgc2hpZnQgYW5kIHN1YnRyYWN0aW9uLiBUaGlzIGlzIHByb2JsZW1hdGljIGZvciB0d28gbWFpbiByZWFzb25zLiBGaXJzdGx5LCBpZiB3ZSBoYXZlIGEgc2lnbmlmaWNhbnQgbnVtYmVyIG9mIHZDUFVzLCB0aGF0IHNoaWZ0IGNvdWxkIGVhc2lseSBvdmVyZmxvdy4gU2Vjb25kbHksIGFuZCBwb3RlbnRpYWxseSBtb3JlIGNydWNpYWxseSwgaXQgYXNzdW1lcyB2Q1BVIElEcyBhcmUgY29udGlndW91cywgd2hpY2ggbWF5IG5vdCBhbHdheXMgYmUgdGhlIGNhc2UgaW4gYSBkeW5hbWljIGVudmlyb25tZW50LCBwYXJ0aWN1bGFybHkgaWYgdkNQVXMgYXJlIGhvdHBsdWdnZWQuIEl0IHNvdW5kcyBsaWtlIHRoZXkmIzM5O3ZlIGZpeGVkIHRoaXMgYnkgdXNpbmcgYGt2bV9mb3JfZWFjaF92Y3B1YCB3aGljaCBpcyBkZWZpbml0ZWx5IHRoZSByaWdodCBhcHByb2FjaCBhbmQgYWRkcmVzc2VzIGJvdGggY29uY2VybnMuCgpUaGUgZmVuY2Ugb3BlcmF0aW9ucyB3ZXJlIHNpbWlsYXJseSBmbGF3ZWQgaW4gdGhlIGluaXRpYWwgaW1wbGVtZW50YXRpb24uIFdoZW4gYGNwLSZndDthMGAgd2FzIHplcm8sIHRoZXkgd2VyZSBzZXR0aW5nIGBoYmFzZWAgdG8gYC0xVUxgIGFuZCBgaG1hc2tgIHRvIGAwYCwgd2hpY2gsIGluIGVmZmVjdCwgbWVhbnQgKmFsbCogdkNQVXMuIEluc3RlYWQsIHRoZSBvbGRlciBjb2RlIHNldCBobWFzayBhcyBhYm92ZSwgbGVhZGluZyB0byB1bmV4cGVjdGVkIGJlaGF2aW9yLiBUaGUgcGF0Y2gmIzM5O3MgY2hhbmdlIGNvcnJlY3RseSB0YXJnZXRzIHRoaXMgYW5kIGxpa2VseSBjb3JyZWN0cyBzb21lIGlzc3VlcyBmb3IgZmVuY2Ugb3BlcmF0aW9ucy4KClRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBwcmV0dHkgaW1wb3J0YW50IG9uZSwgYWN0dWFsbHkgd2l0aGluIHRoZSBLVk0gaW5mcmFzdHJ1Y3R1cmUgb24gUklTQy1WLiBJdCYjMzk7cyBkZWZpbml0ZWx5IHJlYWNoYWJsZSB2aWEgdGhlIEtWTSBpb2N0bHMsIHNvIGl0JiMzOTtzIHNvbWV0aGluZyB0aGF0JiMzOTtzIGV4cG9zZWQgdG8gdXNlciBzcGFjZS4gR2l2ZW4gdGhpcywgYW5kIHRoZSBwb3RlbnRpYWwgZm9yIGEgc3VidGxlIG1pc2JlaGF2aW9yLCB0aGlzIGlzIGRlZmluaXRlbHkgV29ydGhGdXp6aW5nPXRydWUuIEkgbmVlZCB0byBtYWtlIGEgbm90ZSBvZiB0aGlzLgoKTm93LCBsZXQgbWUganVzdCBxdWlja2x5IGNvbmZpcm0gYSBmZXcgdGhpbmdzLiBJJiMzOTtsbCB0YWtlIGEgcXVpY2sgbG9vayBhdCBgYXJjaC9yaXNjdi9rdm0vS2NvbmZpZ2AgdG8gY29uZmlybSB0aGF0IGBDT05GSUdfS1ZNYCBpcyBpbmRlZWQgZW5hYmxlZC4gVGhlbiwgSSB3aWxsIG5lZWQgdG8gc2V0IHVwIG15IGZ1enppbmcgdG9vbHMgdG8gdGVzdCB0aGVzZSBpb2N0bHMgdGhvcm91Z2hseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOCAwNToxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgS1ZNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTE5LVxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDU6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzkyMAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDMxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBSSVNDLVYgS1ZNIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgZGlnZ2luZyBpbnRvIGBhcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV92MDEuY2AuIFJpZ2h0IGF3YXksIEkgc2VlIHRoaXMgaXMgYWJvdXQgUklTQy1WIEtWTSwgc3BlY2lmaWNhbGx5IGhvdyB0aGUgU0JJIHYwLjEgY2FsbHMgYXJlIGhhbmRsZWQuIFRoZSBjb3JlIG9mIHRoaXMgc2VlbXMgdG8gcmV2b2x2ZSBhcm91bmQgdGhvc2UgU0JJIGV4dGVuc2lvbiBjYWxsczogYFNCSV9FWFRfMF8xX1NFTkRfSVBJYCwgYFNCSV9FWFRfMF8xX1JFTU9URV9GRU5DRV9JYCwgYW5kIHRoZSBgU0ZFTkNFYCB2YXJpYW50cy4KClRoZSBzaWduaWZpY2FudCBjaGFuZ2UgaXMgaW4gaG93IHRoZSBjb2RlIGludGVycHJldHMgYGNwLSZndDthMGAgYmVpbmcgemVybywgdGhlIHRhcmdldCBvZiB0aGUgU0JJIGNhbGwuIFRoYXQgc2lnbmlmaWVzIGFsbCBvbmxpbmUgdkNQVXMgaW4gU0JJIHYwLjEuIFRoZSBvbGQgYXBwcm9hY2gsIGBobWFzayA9ICgxVUwgJmx0OyZsdDsgYXRvbWljX3JlYWQoJmFtcDtrdm0tJmd0O29ubGluZV92Y3B1cykpIC0gMTtgLCB3YXMgY2xlYXJseSBwcm9ibGVtYXRpYy4gSWYgd2UgaGF2ZSBhIGxhcmdlIG51bWJlciBvZiBvbmxpbmUgdkNQVXMsIG9yIGlmIHRoZWlyIElEcyBhcmVuJiMzOTt0IHNlcXVlbnRpYWwsIHRoYXQgYml0IG1hbmlwdWxhdGlvbiBnb2VzIHNpZGV3YXlzIHByZXR0eSBmYXN0LiBJdCYjMzk7cyBhIGNsYXNzaWMgb2ZmLWJ5LW9uZSBvciBpbnRlZ2VyIG92ZXJmbG93IHNjZW5hcmlvIHdhaXRpbmcgdG8gaGFwcGVuLgoKVGhlIGZpeCBzZWVtcyBlbGVnYW50OiBpdCBub3cgbGV2ZXJhZ2VzIGBrdm1fZm9yX2VhY2hfdmNwdWAgZm9yIHRoZSBJUEkgY2FsbHMuIEZvciB0aGUgcmVtb3RlIGZlbmNlcywgaXQgbm93IHNldHMgYGhiYXNlID0gLTFVTDsgaG1hc2sgPSAwO2AuIFRoaXMgc2lnbmFscyB0byB0aGUgbG93ZXItbGV2ZWwgZmVuY2UgZnVuY3Rpb25zIHRoYXQgYWxsIHZDUFVzIGFyZSB0aGUgdGFyZ2V0LiBUaGF0IHNlZW1zIG11Y2ggY2xlYW5lciBhbmQgbW9yZSByb2J1c3QuIE5vIG1vcmUgcmVsaWFuY2Ugb24gY29udGlndW91cyBJRHMgb3Igd29ycnkgYWJvdXQgZXhjZWVkaW5nIHRoZSBiaXRzIGFsbG93ZWQuCgpGdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBjbGVhciBpbXByb3ZlbWVudCBpbiBLVk0gZm9yIFJJU0MtVi4gSXQmIzM5O3MgYSBjaGFuZ2UgdG8gdGhlIGZ1bmRhbWVudGFsIGxvZ2ljIG9mIGhvdyB3ZSB0YXJnZXQgdkNQVXMgaW4gU0JJIGNhbGxzLiBHaXZlbiBpdHMgbmF0dXJlLCBpdCB3YXJyYW50cyBhIGNsb3NlIGxvb2ssIGFuZCBkZWZpbml0ZWx5IG1lcml0cyBmdXp6aW5nLiBJJiMzOTtsbCBmb2N1cyBteSBmdXp6aW5nIGVmZm9ydHMgb24gYGt2bV9zYmlfZXh0X3YwMV9oYW5kbGVyYCwgYW5kIEkmIzM5O2xsIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBgS1ZNYCBjb25maWcgaXMgZW5hYmxlZC4KCk5vdywgbGV0JiMzOTtzIGp1c3QgbWFrZSBzdXJlIHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlncyBJIG5lZWQgdG8gY29uc2lkZXIgZm9yIHRob3JvdWdoIGNvdmVyYWdlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE4IDA1OjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBLVk0mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3Jpc2N2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTE5LVxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTggMDU6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTE4OQoJCQkJCQkJb3V0cHV0OiAxMzIKCQkJCQkJCXRob3VnaHRzOiAxOTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBLVk0gU0JJIEV4dGVuc2lvbiBIYW5kbGVyKioKCk9rYXksIHNvIHRoZSBjb25maWd1cmF0aW9uIEkmIzM5O20gbG9va2luZyBhdCBpcyBmb3IgYEtWTWAsIGFuZCB0aGUgc3BlY2lmaWMgZnVuY3Rpb24gb2YgaW50ZXJlc3QgaXMgYGt2bV9zYmlfZXh0X3YwMV9oYW5kbGVyYC4gTGV0JiMzOTtzIGp1c3QgbWFrZSBhYnNvbHV0ZWx5IHN1cmUgdGhhdCB0aGlzIGlzIHRoZSBvbmx5IGFyZWEgdG91Y2hlZCBieSB0aGlzIGNoYW5nZS4gKlllcywgZ29vZCwgdGhlIGRpZmYgb25seSBzaG93cyBtb2RpZmljYXRpb25zIHRvIGBrdm1fc2JpX2V4dF92MDFfaGFuZGxlcmAuKiBUaGF0IHNpbXBsaWZpZXMgdGhpbmdzLgoKTm93LCB0aGUgaW1wb3J0YW50IHF1ZXN0aW9uOiBjYW4gd2UgZnV6eiB0aGlzPyBHaXZlbiB0aGF0IHRoaXMgcmVsYXRlcyB0byBLVk0gb24gUklTQy1WLCBhbmQgSSBrbm93IHRoYXQgc3l6a2FsbGVyIHN1cHBvcnRzIEtWTSBvbiBSSVNDLVYsIHRoZSBhbnN3ZXIgaXMgKnllcyouCgpUaGUgY29yZSBvZiB0aGUgaXNzdWUgaGVyZSBpcyB0aGF0IHRoZSBwYXRjaCBhZGRyZXNzZXMgaG93IHRoZSBoeXBlcnZpc29yIGhhbmRsZXMgU0JJIHYwLjEgSVBJIGFuZCByZW1vdGUgZmVuY2UgY2FsbHMgd2l0aGluIFJJU0MtViBLVk0sIHBhcnRpY3VsYXJseSB3aGVuIHRhcmdldGluZyAqYWxsKiB2aXJ0dWFsIENQVXMuIEl0IGxvb2tzIGxpa2UgdGhlcmUgd2FzIGEgcG90ZW50aWFsIGZsYXcgaW4gdGhlIHByZXZpb3VzIGltcGxlbWVudGF0aW9uIOKAkyBhIGJpdG1hc2sgY2FsY3VsYXRpb24gdGhhdCBjb3VsZCBlaXRoZXIgb3ZlcmZsb3cgb3IsIHdvcnNlLCBjb21wbGV0ZWx5IG1pc3Mgc29tZSBvZiB0aGUgdkNQVXMuIFRoZSBmaXggaXMgYSBtb3JlIHJvYnVzdCBhcHByb2FjaCwgaXRlcmF0aW5nIHByb3Blcmx5IHRocm91Z2ggdGhlIHZDUFVzIGFuZCBlbnN1cmluZyB0aGUgY29ycmVjdCBgaGJhc2VgL2BobWFza2AgdmFsdWVzIGFyZSB1c2VkLiBUaGlzIHJlcHJlc2VudHMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgS1ZNIGh5cGVydmlzb3IgaXRzZWxmLiBJdCYjMzk7cyB0cmlnZ2VyZWQgYnkgYSBndWVzdCBpc3N1aW5nIHNwZWNpZmljIFNCSSBjYWxscywgc28gaXQmIzM5O3MgZGlyZWN0bHkgdGVzdGFibGUuCgpBbHJpZ2h0LCBJJiMzOTttIGNvbmZpZGVudCBpbiBteSBhc3Nlc3NtZW50LiBJJiMzOTtsbCBkb2N1bWVudCBteSBmaW5kaW5ncyBhbmQgc2V0IHRoZSByZXN1bHRzIGFjY29yZGluZ2x5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE4IDA1OjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fc2JpX2V4dF92MDFfaGFuZGxlciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyB0aGUgaGFuZGxpbmcgb2YgU0JJIHYwLjEgSVBJIGFuZCByZW1vdGUgZmVuY2UgY2FsbHMgaW4gUklTQy1WIEtWTSB3aGVuIHRhcmdldGluZyBhbGwgdkNQVXMuIEl0IHJlcGxhY2VzIGEgYml0bWFzayBjYWxjdWxhdGlvbiB0aGF0IGNvdWxkIG92ZXJmbG93IG9yIG1pc3MgdkNQVXMgd2l0aCBwcm9wZXIgdkNQVSBpdGVyYXRpb24gYW5kIGNvcnJlY3QgaGJhc2UvaG1hc2sgdmFsdWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIEtWTSBoeXBlcnZpc29yIHRoYXQgY2FuIGJlIHRyaWdnZXJlZCBieSBhIGd1ZXN0IGV4ZWN1dGluZyBzcGVjaWZpYyBTQkkgY2FsbHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9zYmlfZXh0X3YwMV9oYW5kbGVyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHRoZSBoYW5kbGluZyBvZiBTQkkgdjAuMSBJUEkgYW5kIHJlbW90ZSBmZW5jZSBjYWxscyBpbiBSSVNDLVYgS1ZNIHdoZW4gdGFyZ2V0aW5nIGFsbCB2Q1BVcy4gSXQgcmVwbGFjZXMgYSBiaXRtYXNrIGNhbGN1bGF0aW9uIHRoYXQgY291bGQgb3ZlcmZsb3cgb3IgbWlzcyB2Q1BVcyB3aXRoIHByb3BlciB2Q1BVIGl0ZXJhdGlvbiBhbmQgY29ycmVjdCBoYmFzZS9obWFzayB2YWx1ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgS1ZNIGh5cGVydmlzb3IgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IGEgZ3Vlc3QgZXhlY3V0aW5nIHNwZWNpZmljIFNCSSBjYWxscy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE4VDA1OjEwOjIwLjA2MzQ0NzQ2NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMxMDUyNTEwOTg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9zYmlfZXh0X3YwMV9oYW5kbGVyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgdGhlIGhhbmRsaW5nIG9mIFNCSSB2MC4xIElQSSBhbmQgcmVtb3RlIGZlbmNlIGNhbGxzIGluIFJJU0MtViBLVk0gd2hlbiB0YXJnZXRpbmcgYWxsIHZDUFVzLiBJdCByZXBsYWNlcyBhIGJpdG1hc2sgY2FsY3VsYXRpb24gdGhhdCBjb3VsZCBvdmVyZmxvdyBvciBtaXNzIHZDUFVzIHdpdGggcHJvcGVyIHZDUFUgaXRlcmF0aW9uIGFuZCBjb3JyZWN0IGhiYXNlL2htYXNrIHZhbHVlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBLVk0gaHlwZXJ2aXNvciB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgYnkgYSBndWVzdCBleGVjdXRpbmcgc3BlY2lmaWMgU0JJIGNhbGxzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwNToxMDoyMC4wNjM0NTQxODRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQwMTIwMTg2OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDk1NzE0ZTI0MDQyZWVlNWVhZDFkZGQyZmM2MzIwNzRiMTZkZDMyZjhcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFNhdCBKdWwgMTggMDU6MTA6MTggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfdjAxLmMgYi9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV92MDEuY1xcbmluZGV4IGM5YzMyM2Q0NTc3YTk4Li5kZTU0NGVhM2YyOGRjMyAxMDA2NDRcXG4tLS0gYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV92MDEuY1xcbisrKyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3YwMS5jXFxuQEAgLTE2LDggKzE2LDkgQEBcXG4gc3RhdGljIGludCBrdm1fc2JpX2V4dF92MDFfaGFuZGxlcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fcnVuICpydW4sXFxuIFxcdFxcdFxcdFxcdCAgIHN0cnVjdCBrdm1fdmNwdV9zYmlfcmV0dXJuICpyZXRkYXRhKVxcbiB7XFxuLVxcdHVsb25nIGhtYXNrO1xcbi1cXHRpbnQgaSwgcmV0ID0gMDtcXG4rXFx0dWxvbmcgaGJhc2UgPSAwLCBobWFzaztcXG4rXFx0dW5zaWduZWQgbG9uZyBpO1xcbitcXHRpbnQgcmV0ID0gMDtcXG4gXFx0dTY0IG5leHRfY3ljbGU7XFxuIFxcdHN0cnVjdCBrdm1fdmNwdSAqcnZjcHU7XFxuIFxcdHN0cnVjdCBrdm0gKmt2bSA9IHZjcHUtXFx1MDAzZWt2bTtcXG5AQCAtNDYsMjAgKzQ3LDI1IEBAIHN0YXRpYyBpbnQga3ZtX3NiaV9leHRfdjAxX2hhbmRsZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3Qga3ZtX3J1biAqcnVuLFxcbiBcXHRcXHRyZXQgPSBrdm1fcmlzY3ZfdmNwdV91bnNldF9pbnRlcnJ1cHQodmNwdSwgSVJRX1ZTX1NPRlQpO1xcbiBcXHRcXHRicmVhaztcXG4gXFx0Y2FzZSBTQklfRVhUXzBfMV9TRU5EX0lQSTpcXG4tXFx0XFx0aWYgKGNwLVxcdTAwM2VhMClcXG4rXFx0XFx0aWYgKGNwLVxcdTAwM2VhMCkge1xcbiBcXHRcXHRcXHRobWFzayA9IGt2bV9yaXNjdl92Y3B1X3VucHJpdl9yZWFkKHZjcHUsIGZhbHNlLCBjcC1cXHUwMDNlYTAsIHV0cmFwKTtcXG4tXFx0XFx0ZWxzZVxcbi1cXHRcXHRcXHRobWFzayA9ICgxVUwgXFx1MDAzY1xcdTAwM2MgYXRvbWljX3JlYWQoXFx1MDAyNmt2bS1cXHUwMDNlb25saW5lX3ZjcHVzKSkgLSAxO1xcbi1cXHRcXHRpZiAodXRyYXAtXFx1MDAzZXNjYXVzZSlcXG4tXFx0XFx0XFx0YnJlYWs7XFxuLVxcbi1cXHRcXHRmb3JfZWFjaF9zZXRfYml0KGksIFxcdTAwMjZobWFzaywgQklUU19QRVJfTE9ORykge1xcbi1cXHRcXHRcXHRydmNwdSA9IGt2bV9nZXRfdmNwdV9ieV9pZCh2Y3B1LVxcdTAwM2Vrdm0sIGkpO1xcbi1cXHRcXHRcXHRpZiAoIXJ2Y3B1KVxcbi1cXHRcXHRcXHRcXHRjb250aW51ZTtcXG4tXFx0XFx0XFx0cmV0ID0ga3ZtX3Jpc2N2X3ZjcHVfc2V0X2ludGVycnVwdChydmNwdSwgSVJRX1ZTX1NPRlQpO1xcbi1cXHRcXHRcXHRpZiAocmV0IFxcdTAwM2MgMClcXG4rXFx0XFx0XFx0aWYgKHV0cmFwLVxcdTAwM2VzY2F1c2UpXFxuIFxcdFxcdFxcdFxcdGJyZWFrO1xcbitcXG4rXFx0XFx0XFx0Zm9yX2VhY2hfc2V0X2JpdChpLCBcXHUwMDI2aG1hc2ssIEJJVFNfUEVSX0xPTkcpIHtcXG4rXFx0XFx0XFx0XFx0cnZjcHUgPSBrdm1fZ2V0X3ZjcHVfYnlfaWQodmNwdS1cXHUwMDNla3ZtLCBpKTtcXG4rXFx0XFx0XFx0XFx0aWYgKCFydmNwdSlcXG4rXFx0XFx0XFx0XFx0XFx0Y29udGludWU7XFxuK1xcdFxcdFxcdFxcdHJldCA9IGt2bV9yaXNjdl92Y3B1X3NldF9pbnRlcnJ1cHQocnZjcHUsIElSUV9WU19TT0ZUKTtcXG4rXFx0XFx0XFx0XFx0aWYgKHJldCBcXHUwMDNjIDApXFxuK1xcdFxcdFxcdFxcdFxcdGJyZWFrO1xcbitcXHRcXHRcXHR9XFxuK1xcdFxcdH0gZWxzZSB7XFxuK1xcdFxcdFxcdGt2bV9mb3JfZWFjaF92Y3B1KGksIHJ2Y3B1LCBrdm0pIHtcXG4rXFx0XFx0XFx0XFx0cmV0ID0ga3ZtX3Jpc2N2X3ZjcHVfc2V0X2ludGVycnVwdChydmNwdSwgSVJRX1ZTX1NPRlQpO1xcbitcXHRcXHRcXHRcXHRpZiAocmV0IFxcdTAwM2MgMClcXG4rXFx0XFx0XFx0XFx0XFx0YnJlYWs7XFxuK1xcdFxcdFxcdH1cXG4gXFx0XFx0fVxcbiBcXHRcXHRicmVhaztcXG4gXFx0Y2FzZSBTQklfRVhUXzBfMV9TSFVURE9XTjpcXG5AQCAtNzAsMjkgKzc2LDMxIEBAIHN0YXRpYyBpbnQga3ZtX3NiaV9leHRfdjAxX2hhbmRsZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3Qga3ZtX3J1biAqcnVuLFxcbiBcXHRjYXNlIFNCSV9FWFRfMF8xX1JFTU9URV9GRU5DRV9JOlxcbiBcXHRjYXNlIFNCSV9FWFRfMF8xX1JFTU9URV9TRkVOQ0VfVk1BOlxcbiBcXHRjYXNlIFNCSV9FWFRfMF8xX1JFTU9URV9TRkVOQ0VfVk1BX0FTSUQ6XFxuLVxcdFxcdGlmIChjcC1cXHUwMDNlYTApXFxuK1xcdFxcdGlmIChjcC1cXHUwMDNlYTApIHtcXG4gXFx0XFx0XFx0aG1hc2sgPSBrdm1fcmlzY3ZfdmNwdV91bnByaXZfcmVhZCh2Y3B1LCBmYWxzZSwgY3AtXFx1MDAzZWEwLCB1dHJhcCk7XFxuLVxcdFxcdGVsc2VcXG4tXFx0XFx0XFx0aG1hc2sgPSAoMVVMIFxcdTAwM2NcXHUwMDNjIGF0b21pY19yZWFkKFxcdTAwMjZrdm0tXFx1MDAzZW9ubGluZV92Y3B1cykpIC0gMTtcXG4rXFx0XFx0fSBlbHNlIHtcXG4rXFx0XFx0XFx0aGJhc2UgPSAtMVVMO1xcbitcXHRcXHRcXHRobWFzayA9IDA7XFxuK1xcdFxcdH1cXG4gXFx0XFx0aWYgKHV0cmFwLVxcdTAwM2VzY2F1c2UpXFxuIFxcdFxcdFxcdGJyZWFrO1xcbiBcXG4gXFx0XFx0aWYgKGNwLVxcdTAwM2VhNyA9PSBTQklfRVhUXzBfMV9SRU1PVEVfRkVOQ0VfSSlcXG4tXFx0XFx0XFx0a3ZtX3Jpc2N2X2ZlbmNlX2kodmNwdS1cXHUwMDNla3ZtLCAwLCBobWFzayk7XFxuK1xcdFxcdFxcdGt2bV9yaXNjdl9mZW5jZV9pKHZjcHUtXFx1MDAzZWt2bSwgaGJhc2UsIGhtYXNrKTtcXG4gXFx0XFx0ZWxzZSBpZiAoY3AtXFx1MDAzZWE3ID09IFNCSV9FWFRfMF8xX1JFTU9URV9TRkVOQ0VfVk1BKSB7XFxuIFxcdFxcdFxcdHZtaWQgPSBSRUFEX09OQ0UodmNwdS1cXHUwMDNla3ZtLVxcdTAwM2VhcmNoLnZtaWQudm1pZCk7XFxuIFxcdFxcdFxcdGlmIChjcC1cXHUwMDNlYTEgPT0gMCBcXHUwMDI2XFx1MDAyNiBjcC1cXHUwMDNlYTIgPT0gMClcXG4tXFx0XFx0XFx0XFx0a3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FsbCh2Y3B1LVxcdTAwM2Vrdm0sIDAsIGhtYXNrLCB2bWlkKTtcXG4rXFx0XFx0XFx0XFx0a3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FsbCh2Y3B1LVxcdTAwM2Vrdm0sIGhiYXNlLCBobWFzaywgdm1pZCk7XFxuIFxcdFxcdFxcdGVsc2VcXG4tXFx0XFx0XFx0XFx0a3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2d2YSh2Y3B1LVxcdTAwM2Vrdm0sIDAsIGhtYXNrLCBjcC1cXHUwMDNlYTEsXFxuK1xcdFxcdFxcdFxcdGt2bV9yaXNjdl9oZmVuY2VfdnZtYV9ndmEodmNwdS1cXHUwMDNla3ZtLCBoYmFzZSwgaG1hc2ssIGNwLVxcdTAwM2VhMSxcXG4gXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICBjcC1cXHUwMDNlYTIsIFBBR0VfU0hJRlQsIHZtaWQpO1xcbiBcXHRcXHR9IGVsc2Uge1xcbiBcXHRcXHRcXHR2bWlkID0gUkVBRF9PTkNFKHZjcHUtXFx1MDAzZWt2bS1cXHUwMDNlYXJjaC52bWlkLnZtaWQpO1xcbiBcXHRcXHRcXHRpZiAoY3AtXFx1MDAzZWExID09IDAgXFx1MDAyNlxcdTAwMjYgY3AtXFx1MDAzZWEyID09IDApXFxuLVxcdFxcdFxcdFxcdGt2bV9yaXNjdl9oZmVuY2VfdnZtYV9hc2lkX2FsbCh2Y3B1LVxcdTAwM2Vrdm0sIDAsIGhtYXNrLFxcbitcXHRcXHRcXHRcXHRrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYXNpZF9hbGwodmNwdS1cXHUwMDNla3ZtLCBoYmFzZSwgaG1hc2ssXFxuIFxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBjcC1cXHUwMDNlYTMsIHZtaWQpO1xcbiBcXHRcXHRcXHRlbHNlXFxuLVxcdFxcdFxcdFxcdGt2bV9yaXNjdl9oZmVuY2VfdnZtYV9hc2lkX2d2YSh2Y3B1LVxcdTAwM2Vrdm0sIDAsIGhtYXNrLFxcbitcXHRcXHRcXHRcXHRrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYXNpZF9ndmEodmNwdS1cXHUwMDNla3ZtLCBoYmFzZSwgaG1hc2ssXFxuIFxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBjcC1cXHUwMDNlYTEsIGNwLVxcdTAwM2VhMiwgUEFHRV9TSElGVCxcXG4gXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgIGNwLVxcdTAwM2VhMywgdm1pZCk7XFxuIFxcdFxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMThUMDU6MTA6MjAuNDY1NzE2NzQzWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDY1MDIzMzQ1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fc2JpX2V4dF92MDFfaGFuZGxlclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHRoZSBoYW5kbGluZyBvZiBTQkkgdjAuMSBJUEkgYW5kIHJlbW90ZSBmZW5jZSBjYWxscyBpbiBSSVNDLVYgS1ZNIHdoZW4gdGFyZ2V0aW5nIGFsbCB2Q1BVcy4gSXQgcmVwbGFjZXMgYSBiaXRtYXNrIGNhbGN1bGF0aW9uIHRoYXQgY291bGQgb3ZlcmZsb3cgb3IgbWlzcyB2Q1BVcyB3aXRoIHByb3BlciB2Q1BVIGl0ZXJhdGlvbiBhbmQgY29ycmVjdCBoYmFzZS9obWFzayB2YWx1ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgS1ZNIGh5cGVydmlzb3IgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IGEgZ3Vlc3QgZXhlY3V0aW5nIHNwZWNpZmljIFNCSSBjYWxscy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA5NTcxNGUyNDA0MmVlZTVlYWQxZGRkMmZjNjMyMDc0YjE2ZGQzMmY4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdWwgMTggMDU6MTA6MTggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV92MDEuYyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3YwMS5jXG5pbmRleCBjOWMzMjNkNDU3N2E5OC4uZGU1NDRlYTNmMjhkYzMgMTAwNjQ0XG4tLS0gYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV92MDEuY1xuKysrIGIvYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfdjAxLmNcbkBAIC0xNiw4ICsxNiw5IEBAXG4gc3RhdGljIGludCBrdm1fc2JpX2V4dF92MDFfaGFuZGxlcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fcnVuICpydW4sXG4gXHRcdFx0XHQgICBzdHJ1Y3Qga3ZtX3ZjcHVfc2JpX3JldHVybiAqcmV0ZGF0YSlcbiB7XG4tXHR1bG9uZyBobWFzaztcbi1cdGludCBpLCByZXQgPSAwO1xuK1x0dWxvbmcgaGJhc2UgPSAwLCBobWFzaztcbitcdHVuc2lnbmVkIGxvbmcgaTtcbitcdGludCByZXQgPSAwO1xuIFx0dTY0IG5leHRfY3ljbGU7XG4gXHRzdHJ1Y3Qga3ZtX3ZjcHUgKnJ2Y3B1O1xuIFx0c3RydWN0IGt2bSAqa3ZtID0gdmNwdS1cdTAwM2Vrdm07XG5AQCAtNDYsMjAgKzQ3LDI1IEBAIHN0YXRpYyBpbnQga3ZtX3NiaV9leHRfdjAxX2hhbmRsZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3Qga3ZtX3J1biAqcnVuLFxuIFx0XHRyZXQgPSBrdm1fcmlzY3ZfdmNwdV91bnNldF9pbnRlcnJ1cHQodmNwdSwgSVJRX1ZTX1NPRlQpO1xuIFx0XHRicmVhaztcbiBcdGNhc2UgU0JJX0VYVF8wXzFfU0VORF9JUEk6XG4tXHRcdGlmIChjcC1cdTAwM2VhMClcbitcdFx0aWYgKGNwLVx1MDAzZWEwKSB7XG4gXHRcdFx0aG1hc2sgPSBrdm1fcmlzY3ZfdmNwdV91bnByaXZfcmVhZCh2Y3B1LCBmYWxzZSwgY3AtXHUwMDNlYTAsIHV0cmFwKTtcbi1cdFx0ZWxzZVxuLVx0XHRcdGhtYXNrID0gKDFVTCBcdTAwM2NcdTAwM2MgYXRvbWljX3JlYWQoXHUwMDI2a3ZtLVx1MDAzZW9ubGluZV92Y3B1cykpIC0gMTtcbi1cdFx0aWYgKHV0cmFwLVx1MDAzZXNjYXVzZSlcbi1cdFx0XHRicmVhaztcbi1cbi1cdFx0Zm9yX2VhY2hfc2V0X2JpdChpLCBcdTAwMjZobWFzaywgQklUU19QRVJfTE9ORykge1xuLVx0XHRcdHJ2Y3B1ID0ga3ZtX2dldF92Y3B1X2J5X2lkKHZjcHUtXHUwMDNla3ZtLCBpKTtcbi1cdFx0XHRpZiAoIXJ2Y3B1KVxuLVx0XHRcdFx0Y29udGludWU7XG4tXHRcdFx0cmV0ID0ga3ZtX3Jpc2N2X3ZjcHVfc2V0X2ludGVycnVwdChydmNwdSwgSVJRX1ZTX1NPRlQpO1xuLVx0XHRcdGlmIChyZXQgXHUwMDNjIDApXG4rXHRcdFx0aWYgKHV0cmFwLVx1MDAzZXNjYXVzZSlcbiBcdFx0XHRcdGJyZWFrO1xuK1xuK1x0XHRcdGZvcl9lYWNoX3NldF9iaXQoaSwgXHUwMDI2aG1hc2ssIEJJVFNfUEVSX0xPTkcpIHtcbitcdFx0XHRcdHJ2Y3B1ID0ga3ZtX2dldF92Y3B1X2J5X2lkKHZjcHUtXHUwMDNla3ZtLCBpKTtcbitcdFx0XHRcdGlmICghcnZjcHUpXG4rXHRcdFx0XHRcdGNvbnRpbnVlO1xuK1x0XHRcdFx0cmV0ID0ga3ZtX3Jpc2N2X3ZjcHVfc2V0X2ludGVycnVwdChydmNwdSwgSVJRX1ZTX1NPRlQpO1xuK1x0XHRcdFx0aWYgKHJldCBcdTAwM2MgMClcbitcdFx0XHRcdFx0YnJlYWs7XG4rXHRcdFx0fVxuK1x0XHR9IGVsc2Uge1xuK1x0XHRcdGt2bV9mb3JfZWFjaF92Y3B1KGksIHJ2Y3B1LCBrdm0pIHtcbitcdFx0XHRcdHJldCA9IGt2bV9yaXNjdl92Y3B1X3NldF9pbnRlcnJ1cHQocnZjcHUsIElSUV9WU19TT0ZUKTtcbitcdFx0XHRcdGlmIChyZXQgXHUwMDNjIDApXG4rXHRcdFx0XHRcdGJyZWFrO1xuK1x0XHRcdH1cbiBcdFx0fVxuIFx0XHRicmVhaztcbiBcdGNhc2UgU0JJX0VYVF8wXzFfU0hVVERPV046XG5AQCAtNzAsMjkgKzc2LDMxIEBAIHN0YXRpYyBpbnQga3ZtX3NiaV9leHRfdjAxX2hhbmRsZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3Qga3ZtX3J1biAqcnVuLFxuIFx0Y2FzZSBTQklfRVhUXzBfMV9SRU1PVEVfRkVOQ0VfSTpcbiBcdGNhc2UgU0JJX0VYVF8wXzFfUkVNT1RFX1NGRU5DRV9WTUE6XG4gXHRjYXNlIFNCSV9FWFRfMF8xX1JFTU9URV9TRkVOQ0VfVk1BX0FTSUQ6XG4tXHRcdGlmIChjcC1cdTAwM2VhMClcbitcdFx0aWYgKGNwLVx1MDAzZWEwKSB7XG4gXHRcdFx0aG1hc2sgPSBrdm1fcmlzY3ZfdmNwdV91bnByaXZfcmVhZCh2Y3B1LCBmYWxzZSwgY3AtXHUwMDNlYTAsIHV0cmFwKTtcbi1cdFx0ZWxzZVxuLVx0XHRcdGhtYXNrID0gKDFVTCBcdTAwM2NcdTAwM2MgYXRvbWljX3JlYWQoXHUwMDI2a3ZtLVx1MDAzZW9ubGluZV92Y3B1cykpIC0gMTtcbitcdFx0fSBlbHNlIHtcbitcdFx0XHRoYmFzZSA9IC0xVUw7XG4rXHRcdFx0aG1hc2sgPSAwO1xuK1x0XHR9XG4gXHRcdGlmICh1dHJhcC1cdTAwM2VzY2F1c2UpXG4gXHRcdFx0YnJlYWs7XG4gXG4gXHRcdGlmIChjcC1cdTAwM2VhNyA9PSBTQklfRVhUXzBfMV9SRU1PVEVfRkVOQ0VfSSlcbi1cdFx0XHRrdm1fcmlzY3ZfZmVuY2VfaSh2Y3B1LVx1MDAzZWt2bSwgMCwgaG1hc2spO1xuK1x0XHRcdGt2bV9yaXNjdl9mZW5jZV9pKHZjcHUtXHUwMDNla3ZtLCBoYmFzZSwgaG1hc2spO1xuIFx0XHRlbHNlIGlmIChjcC1cdTAwM2VhNyA9PSBTQklfRVhUXzBfMV9SRU1PVEVfU0ZFTkNFX1ZNQSkge1xuIFx0XHRcdHZtaWQgPSBSRUFEX09OQ0UodmNwdS1cdTAwM2Vrdm0tXHUwMDNlYXJjaC52bWlkLnZtaWQpO1xuIFx0XHRcdGlmIChjcC1cdTAwM2VhMSA9PSAwIFx1MDAyNlx1MDAyNiBjcC1cdTAwM2VhMiA9PSAwKVxuLVx0XHRcdFx0a3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FsbCh2Y3B1LVx1MDAzZWt2bSwgMCwgaG1hc2ssIHZtaWQpO1xuK1x0XHRcdFx0a3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FsbCh2Y3B1LVx1MDAzZWt2bSwgaGJhc2UsIGhtYXNrLCB2bWlkKTtcbiBcdFx0XHRlbHNlXG4tXHRcdFx0XHRrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfZ3ZhKHZjcHUtXHUwMDNla3ZtLCAwLCBobWFzaywgY3AtXHUwMDNlYTEsXG4rXHRcdFx0XHRrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfZ3ZhKHZjcHUtXHUwMDNla3ZtLCBoYmFzZSwgaG1hc2ssIGNwLVx1MDAzZWExLFxuIFx0XHRcdFx0XHRcdFx0ICBjcC1cdTAwM2VhMiwgUEFHRV9TSElGVCwgdm1pZCk7XG4gXHRcdH0gZWxzZSB7XG4gXHRcdFx0dm1pZCA9IFJFQURfT05DRSh2Y3B1LVx1MDAzZWt2bS1cdTAwM2VhcmNoLnZtaWQudm1pZCk7XG4gXHRcdFx0aWYgKGNwLVx1MDAzZWExID09IDAgXHUwMDI2XHUwMDI2IGNwLVx1MDAzZWEyID09IDApXG4tXHRcdFx0XHRrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYXNpZF9hbGwodmNwdS1cdTAwM2Vrdm0sIDAsIGhtYXNrLFxuK1x0XHRcdFx0a3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FzaWRfYWxsKHZjcHUtXHUwMDNla3ZtLCBoYmFzZSwgaG1hc2ssXG4gXHRcdFx0XHRcdFx0XHQgICAgICAgY3AtXHUwMDNlYTMsIHZtaWQpO1xuIFx0XHRcdGVsc2Vcbi1cdFx0XHRcdGt2bV9yaXNjdl9oZmVuY2VfdnZtYV9hc2lkX2d2YSh2Y3B1LVx1MDAzZWt2bSwgMCwgaG1hc2ssXG4rXHRcdFx0XHRrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYXNpZF9ndmEodmNwdS1cdTAwM2Vrdm0sIGhiYXNlLCBobWFzayxcbiBcdFx0XHRcdFx0XHRcdCAgICAgICBjcC1cdTAwM2VhMSwgY3AtXHUwMDNlYTIsIFBBR0VfU0hJRlQsXG4gXHRcdFx0XHRcdFx0XHQgICAgICAgY3AtXHUwMDNlYTMsIHZtaWQpO1xuIFx0XHR9XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwNToxMDoyMC40NjU3MTg3MjNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzE1MTk5ODIyNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBSSVNDLVYgS1ZNIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfdjAxLmNgIGFuZCBzcGVjaWZpY2FsbHkgdGhlIGBrdm1fc2JpX2V4dF92MDFfaGFuZGxlcmAgZnVuY3Rpb24uIEZyb20gdGhlIGRpZmYsIGl0IGxvb2tzIGxpa2UgaXQncyBhZGRyZXNzaW5nIGEgc3VidGxlIGJ1dCBwb3RlbnRpYWxseSBpbXBhY3RmdWwgYnVnIHJlbGF0ZWQgdG8gaG93IHdlJ3JlIGhhbmRsaW5nIGBobWFza2AgYW5kIGBoYmFzZWAgd2l0aGluIHRoZSBTQkkgZXh0ZW5zaW9ucywgc3BlY2lmaWNhbGx5IGZvciB0aGUgaW50ZXItcHJvY2Vzc29yIGludGVycnVwdCAoYFNCSV9FWFRfMF8xX1NFTkRfSVBJYCkgYW5kIHRoZSByZW1vdGUgZmVuY2Ugb3BlcmF0aW9ucyAoYFNCSV9FWFRfMF8xX1JFTU9URV9GRU5DRV9JYCwgYFNCSV9FWFRfMF8xX1JFTU9URV9TRkVOQ0VfVk1BYCwgYW5kIGBTQklfRVhUXzBfMV9SRU1PVEVfU0ZFTkNFX1ZNQV9BU0lEYCkuXG5cblRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiBvZiBgU0JJX0VYVF8wXzFfU0VORF9JUElgIHdhcyBtYWtpbmcgYSBkYW5nZXJvdXMgYXNzdW1wdGlvbi4gV2hlbiBgY3AtXHUwMDNlYTBgIGlzIHplcm8sIHRoZSBjb2RlIHdhcyBjYWxjdWxhdGluZyBgaG1hc2tgIGJhc2VkIG9uIHRoZSAqdG90YWwqIG51bWJlciBvZiBvbmxpbmUgdkNQVXMgdXNpbmcgYSBsZWZ0IHNoaWZ0IGFuZCBzdWJ0cmFjdGlvbi4gVGhpcyBpcyBwcm9ibGVtYXRpYyBmb3IgdHdvIG1haW4gcmVhc29ucy4gRmlyc3RseSwgaWYgd2UgaGF2ZSBhIHNpZ25pZmljYW50IG51bWJlciBvZiB2Q1BVcywgdGhhdCBzaGlmdCBjb3VsZCBlYXNpbHkgb3ZlcmZsb3cuIFNlY29uZGx5LCBhbmQgcG90ZW50aWFsbHkgbW9yZSBjcnVjaWFsbHksIGl0IGFzc3VtZXMgdkNQVSBJRHMgYXJlIGNvbnRpZ3VvdXMsIHdoaWNoIG1heSBub3QgYWx3YXlzIGJlIHRoZSBjYXNlIGluIGEgZHluYW1pYyBlbnZpcm9ubWVudCwgcGFydGljdWxhcmx5IGlmIHZDUFVzIGFyZSBob3RwbHVnZ2VkLiBJdCBzb3VuZHMgbGlrZSB0aGV5J3ZlIGZpeGVkIHRoaXMgYnkgdXNpbmcgYGt2bV9mb3JfZWFjaF92Y3B1YCB3aGljaCBpcyBkZWZpbml0ZWx5IHRoZSByaWdodCBhcHByb2FjaCBhbmQgYWRkcmVzc2VzIGJvdGggY29uY2VybnMuXG5cblRoZSBmZW5jZSBvcGVyYXRpb25zIHdlcmUgc2ltaWxhcmx5IGZsYXdlZCBpbiB0aGUgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbi4gV2hlbiBgY3AtXHUwMDNlYTBgIHdhcyB6ZXJvLCB0aGV5IHdlcmUgc2V0dGluZyBgaGJhc2VgIHRvIGAtMVVMYCBhbmQgYGhtYXNrYCB0byBgMGAsIHdoaWNoLCBpbiBlZmZlY3QsIG1lYW50ICphbGwqIHZDUFVzLiBJbnN0ZWFkLCB0aGUgb2xkZXIgY29kZSBzZXQgaG1hc2sgYXMgYWJvdmUsIGxlYWRpbmcgdG8gdW5leHBlY3RlZCBiZWhhdmlvci4gVGhlIHBhdGNoJ3MgY2hhbmdlIGNvcnJlY3RseSB0YXJnZXRzIHRoaXMgYW5kIGxpa2VseSBjb3JyZWN0cyBzb21lIGlzc3VlcyBmb3IgZmVuY2Ugb3BlcmF0aW9ucy5cblxuVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHByZXR0eSBpbXBvcnRhbnQgb25lLCBhY3R1YWxseSB3aXRoaW4gdGhlIEtWTSBpbmZyYXN0cnVjdHVyZSBvbiBSSVNDLVYuIEl0J3MgZGVmaW5pdGVseSByZWFjaGFibGUgdmlhIHRoZSBLVk0gaW9jdGxzLCBzbyBpdCdzIHNvbWV0aGluZyB0aGF0J3MgZXhwb3NlZCB0byB1c2VyIHNwYWNlLiBHaXZlbiB0aGlzLCBhbmQgdGhlIHBvdGVudGlhbCBmb3IgYSBzdWJ0bGUgbWlzYmVoYXZpb3IsIHRoaXMgaXMgZGVmaW5pdGVseSBXb3J0aEZ1enppbmc9dHJ1ZS4gSSBuZWVkIHRvIG1ha2UgYSBub3RlIG9mIHRoaXMuXG5cbk5vdywgbGV0IG1lIGp1c3QgcXVpY2tseSBjb25maXJtIGEgZmV3IHRoaW5ncy4gSSdsbCB0YWtlIGEgcXVpY2sgbG9vayBhdCBgYXJjaC9yaXNjdi9rdm0vS2NvbmZpZ2AgdG8gY29uZmlybSB0aGF0IGBDT05GSUdfS1ZNYCBpcyBpbmRlZWQgZW5hYmxlZC4gVGhlbiwgSSB3aWxsIG5lZWQgdG8gc2V0IHVwIG15IGZ1enppbmcgdG9vbHMgdG8gdGVzdCB0aGVzZSBpb2N0bHMgdGhvcm91Z2hseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIxNiwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM3OCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE4VDA1OjEwOjMzLjYxNzcxODk4OFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjYxNDExOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgS1ZNXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gvcmlzY3Yva3ZtL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9yaXNjdi9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMTktXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwNToxMDozMy42NzQzNDEwNTdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMjM3MTAxNzQ1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBSSVNDLVYgS1ZNIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyBkaWdnaW5nIGludG8gYGFyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3YwMS5jYC4gUmlnaHQgYXdheSwgSSBzZWUgdGhpcyBpcyBhYm91dCBSSVNDLVYgS1ZNLCBzcGVjaWZpY2FsbHkgaG93IHRoZSBTQkkgdjAuMSBjYWxscyBhcmUgaGFuZGxlZC4gVGhlIGNvcmUgb2YgdGhpcyBzZWVtcyB0byByZXZvbHZlIGFyb3VuZCB0aG9zZSBTQkkgZXh0ZW5zaW9uIGNhbGxzOiBgU0JJX0VYVF8wXzFfU0VORF9JUElgLCBgU0JJX0VYVF8wXzFfUkVNT1RFX0ZFTkNFX0lgLCBhbmQgdGhlIGBTRkVOQ0VgIHZhcmlhbnRzLlxuXG5UaGUgc2lnbmlmaWNhbnQgY2hhbmdlIGlzIGluIGhvdyB0aGUgY29kZSBpbnRlcnByZXRzIGBjcC1cdTAwM2VhMGAgYmVpbmcgemVybywgdGhlIHRhcmdldCBvZiB0aGUgU0JJIGNhbGwuIFRoYXQgc2lnbmlmaWVzIGFsbCBvbmxpbmUgdkNQVXMgaW4gU0JJIHYwLjEuIFRoZSBvbGQgYXBwcm9hY2gsIGBobWFzayA9ICgxVUwgXHUwMDNjXHUwMDNjIGF0b21pY19yZWFkKFx1MDAyNmt2bS1cdTAwM2VvbmxpbmVfdmNwdXMpKSAtIDE7YCwgd2FzIGNsZWFybHkgcHJvYmxlbWF0aWMuIElmIHdlIGhhdmUgYSBsYXJnZSBudW1iZXIgb2Ygb25saW5lIHZDUFVzLCBvciBpZiB0aGVpciBJRHMgYXJlbid0IHNlcXVlbnRpYWwsIHRoYXQgYml0IG1hbmlwdWxhdGlvbiBnb2VzIHNpZGV3YXlzIHByZXR0eSBmYXN0LiBJdCdzIGEgY2xhc3NpYyBvZmYtYnktb25lIG9yIGludGVnZXIgb3ZlcmZsb3cgc2NlbmFyaW8gd2FpdGluZyB0byBoYXBwZW4uXG5cblRoZSBmaXggc2VlbXMgZWxlZ2FudDogaXQgbm93IGxldmVyYWdlcyBga3ZtX2Zvcl9lYWNoX3ZjcHVgIGZvciB0aGUgSVBJIGNhbGxzLiBGb3IgdGhlIHJlbW90ZSBmZW5jZXMsIGl0IG5vdyBzZXRzIGBoYmFzZSA9IC0xVUw7IGhtYXNrID0gMDtgLiBUaGlzIHNpZ25hbHMgdG8gdGhlIGxvd2VyLWxldmVsIGZlbmNlIGZ1bmN0aW9ucyB0aGF0IGFsbCB2Q1BVcyBhcmUgdGhlIHRhcmdldC4gVGhhdCBzZWVtcyBtdWNoIGNsZWFuZXIgYW5kIG1vcmUgcm9idXN0LiBObyBtb3JlIHJlbGlhbmNlIG9uIGNvbnRpZ3VvdXMgSURzIG9yIHdvcnJ5IGFib3V0IGV4Y2VlZGluZyB0aGUgYml0cyBhbGxvd2VkLlxuXG5GdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBjbGVhciBpbXByb3ZlbWVudCBpbiBLVk0gZm9yIFJJU0MtVi4gSXQncyBhIGNoYW5nZSB0byB0aGUgZnVuZGFtZW50YWwgbG9naWMgb2YgaG93IHdlIHRhcmdldCB2Q1BVcyBpbiBTQkkgY2FsbHMuIEdpdmVuIGl0cyBuYXR1cmUsIGl0IHdhcnJhbnRzIGEgY2xvc2UgbG9vaywgYW5kIGRlZmluaXRlbHkgbWVyaXRzIGZ1enppbmcuIEknbGwgZm9jdXMgbXkgZnV6emluZyBlZmZvcnRzIG9uIGBrdm1fc2JpX2V4dF92MDFfaGFuZGxlcmAsIGFuZCBJJ2xsIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBgS1ZNYCBjb25maWcgaXMgZW5hYmxlZC5cblxuTm93LCBsZXQncyBqdXN0IG1ha2Ugc3VyZSB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlncyBJIG5lZWQgdG8gY29uc2lkZXIgZm9yIHRob3JvdWdoIGNvdmVyYWdlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTIwLCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE4VDA1OjEwOjQ2LjA0NTM2MDU5MloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NTMxNTQ3OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgS1ZNXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gvcmlzY3YvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvcmlzY3Yva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMjEtXFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMThUMDU6MTA6NDYuMTEwNjgwNzdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTI3ODQ5OTA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgS1ZNIFNCSSBFeHRlbnNpb24gSGFuZGxlcioqXG5cbk9rYXksIHNvIHRoZSBjb25maWd1cmF0aW9uIEknbSBsb29raW5nIGF0IGlzIGZvciBgS1ZNYCwgYW5kIHRoZSBzcGVjaWZpYyBmdW5jdGlvbiBvZiBpbnRlcmVzdCBpcyBga3ZtX3NiaV9leHRfdjAxX2hhbmRsZXJgLiBMZXQncyBqdXN0IG1ha2UgYWJzb2x1dGVseSBzdXJlIHRoYXQgdGhpcyBpcyB0aGUgb25seSBhcmVhIHRvdWNoZWQgYnkgdGhpcyBjaGFuZ2UuICpZZXMsIGdvb2QsIHRoZSBkaWZmIG9ubHkgc2hvd3MgbW9kaWZpY2F0aW9ucyB0byBga3ZtX3NiaV9leHRfdjAxX2hhbmRsZXJgLiogVGhhdCBzaW1wbGlmaWVzIHRoaW5ncy5cblxuTm93LCB0aGUgaW1wb3J0YW50IHF1ZXN0aW9uOiBjYW4gd2UgZnV6eiB0aGlzPyBHaXZlbiB0aGF0IHRoaXMgcmVsYXRlcyB0byBLVk0gb24gUklTQy1WLCBhbmQgSSBrbm93IHRoYXQgc3l6a2FsbGVyIHN1cHBvcnRzIEtWTSBvbiBSSVNDLVYsIHRoZSBhbnN3ZXIgaXMgKnllcyouXG5cblRoZSBjb3JlIG9mIHRoZSBpc3N1ZSBoZXJlIGlzIHRoYXQgdGhlIHBhdGNoIGFkZHJlc3NlcyBob3cgdGhlIGh5cGVydmlzb3IgaGFuZGxlcyBTQkkgdjAuMSBJUEkgYW5kIHJlbW90ZSBmZW5jZSBjYWxscyB3aXRoaW4gUklTQy1WIEtWTSwgcGFydGljdWxhcmx5IHdoZW4gdGFyZ2V0aW5nICphbGwqIHZpcnR1YWwgQ1BVcy4gSXQgbG9va3MgbGlrZSB0aGVyZSB3YXMgYSBwb3RlbnRpYWwgZmxhdyBpbiB0aGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb24g4oCTIGEgYml0bWFzayBjYWxjdWxhdGlvbiB0aGF0IGNvdWxkIGVpdGhlciBvdmVyZmxvdyBvciwgd29yc2UsIGNvbXBsZXRlbHkgbWlzcyBzb21lIG9mIHRoZSB2Q1BVcy4gVGhlIGZpeCBpcyBhIG1vcmUgcm9idXN0IGFwcHJvYWNoLCBpdGVyYXRpbmcgcHJvcGVybHkgdGhyb3VnaCB0aGUgdkNQVXMgYW5kIGVuc3VyaW5nIHRoZSBjb3JyZWN0IGBoYmFzZWAvYGhtYXNrYCB2YWx1ZXMgYXJlIHVzZWQuIFRoaXMgcmVwcmVzZW50cyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBLVk0gaHlwZXJ2aXNvciBpdHNlbGYuIEl0J3MgdHJpZ2dlcmVkIGJ5IGEgZ3Vlc3QgaXNzdWluZyBzcGVjaWZpYyBTQkkgY2FsbHMsIHNvIGl0J3MgZGlyZWN0bHkgdGVzdGFibGUuXG5cbkFscmlnaHQsIEknbSBjb25maWRlbnQgaW4gbXkgYXNzZXNzbWVudC4gSSdsbCBkb2N1bWVudCBteSBmaW5kaW5ncyBhbmQgc2V0IHRoZSByZXN1bHRzIGFjY29yZGluZ2x5LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MTg5LCJPdXRwdXRUb2tlbnMiOjEzMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xOFQwNToxMDo1MS4wMzg1MzI4NTVaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc3NDEyNTQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fc2JpX2V4dF92MDFfaGFuZGxlclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHRoZSBoYW5kbGluZyBvZiBTQkkgdjAuMSBJUEkgYW5kIHJlbW90ZSBmZW5jZSBjYWxscyBpbiBSSVNDLVYgS1ZNIHdoZW4gdGFyZ2V0aW5nIGFsbCB2Q1BVcy4gSXQgcmVwbGFjZXMgYSBiaXRtYXNrIGNhbGN1bGF0aW9uIHRoYXQgY291bGQgb3ZlcmZsb3cgb3IgbWlzcyB2Q1BVcyB3aXRoIHByb3BlciB2Q1BVIGl0ZXJhdGlvbiBhbmQgY29ycmVjdCBoYmFzZS9obWFzayB2YWx1ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgS1ZNIGh5cGVydmlzb3IgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IGEgZ3Vlc3QgZXhlY3V0aW5nIHNwZWNpZmljIFNCSSBjYWxscy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fc2JpX2V4dF92MDFfaGFuZGxlclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHRoZSBoYW5kbGluZyBvZiBTQkkgdjAuMSBJUEkgYW5kIHJlbW90ZSBmZW5jZSBjYWxscyBpbiBSSVNDLVYgS1ZNIHdoZW4gdGFyZ2V0aW5nIGFsbCB2Q1BVcy4gSXQgcmVwbGFjZXMgYSBiaXRtYXNrIGNhbGN1bGF0aW9uIHRoYXQgY291bGQgb3ZlcmZsb3cgb3IgbWlzcyB2Q1BVcyB3aXRoIHByb3BlciB2Q1BVIGl0ZXJhdGlvbiBhbmQgY29ycmVjdCBoYmFzZS9obWFzayB2YWx1ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgS1ZNIGh5cGVydmlzb3IgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IGEgZ3Vlc3QgZXhlY3V0aW5nIHNwZWNpZmljIFNCSSBjYWxscy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowfq9wm[1] Phase: Succeeded StartedAt: 2026-07-18 05:11:03 +0000 UTC FinishedAt: 2026-07-18 05:11:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-18 05:11:03 +0000 UTC FinishedAt: 2026-07-18 05:11:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[2] Phase: Succeeded StartedAt: 2026-07-18 05:11:03 +0000 UTC FinishedAt: 2026-07-18 06:35:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-18 05:11:03 +0000 UTC FinishedAt: 2026-07-18 06:35:55 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-18 05:11:03 +0000 UTC FinishedAt: 2026-07-18 05:11:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-18 05:11:03 +0000 UTC FinishedAt: 2026-07-18 05:11:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},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-workflowfq9wm/series-workflowfq9wm-convert-artifact-464658344/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-18 05:11:24 +0000 UTC FinishedAt: 2026-07-18 05:49:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-18 05:11:24 +0000 UTC FinishedAt: 2026-07-18 05:49:13 +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:*554ec5b8-403d-471d-bfc4-eab13862f89a,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-workflowfq9wm/series-workflowfq9wm-convert-artifact-464658344/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": "d2a15dc8-884c-455a-bb06-5ebd6190503c", "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-workflowfq9wm/series-workflowfq9wm-build-action-2291308062/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-18 05:11:24 +0000 UTC FinishedAt: 2026-07-18 05:49:03 +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:*554ec5b8-403d-471d-bfc4-eab13862f89a,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-workflowfq9wm/series-workflowfq9wm-convert-artifact-464658344/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": "d2a15dc8-884c-455a-bb06-5ebd6190503c", "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-workflowfq9wm/series-workflowfq9wm-build-action-2291308062/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-18 05:49:13 +0000 UTC FinishedAt: 2026-07-18 05:49:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-18 05:49:13 +0000 UTC FinishedAt: 2026-07-18 05:49:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-18 05:49:13 +0000 UTC FinishedAt: 2026-07-18 05:49:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-18 05:49:13 +0000 UTC FinishedAt: 2026-07-18 05:49:18 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},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-workflowfq9wm/series-workflowfq9wm-convert-artifact-1386719887/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-18 05:49:23 +0000 UTC FinishedAt: 2026-07-18 05:51:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-18 05:49:23 +0000 UTC FinishedAt: 2026-07-18 05:51:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*d2a15dc8-884c-455a-bb06-5ebd6190503c,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-workflowfq9wm/series-workflowfq9wm-build-action-2291308062/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-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-18 05:51:54 +0000 UTC FinishedAt: 2026-07-18 05:51:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-18 05:51:54 +0000 UTC FinishedAt: 2026-07-18 05:51:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-18 05:51:54 +0000 UTC FinishedAt: 2026-07-18 06:30:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-18 05:51:54 +0000 UTC FinishedAt: 2026-07-18 06:30:52 +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:*554ec5b8-403d-471d-bfc4-eab13862f89a,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-workflowfq9wm/series-workflowfq9wm-convert-artifact-1386719887/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": "655fdd53-384d-4f54-a320-ba8446e4246c", "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-workflowfq9wm/series-workflowfq9wm-build-action-3869281187/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-18 05:51:54 +0000 UTC FinishedAt: 2026-07-18 06:30:42 +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:*554ec5b8-403d-471d-bfc4-eab13862f89a,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-workflowfq9wm/series-workflowfq9wm-convert-artifact-1386719887/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": "655fdd53-384d-4f54-a320-ba8446e4246c", "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-workflowfq9wm/series-workflowfq9wm-build-action-3869281187/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-18 06:30:52 +0000 UTC FinishedAt: 2026-07-18 06:30:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-18 06:30:52 +0000 UTC FinishedAt: 2026-07-18 06:30:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-18 06:30:52 +0000 UTC FinishedAt: 2026-07-18 06:33:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-18 06:30:52 +0000 UTC FinishedAt: 2026-07-18 06:32:40 +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:*655fdd53-384d-4f54-a320-ba8446e4246c,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-workflowfq9wm/series-workflowfq9wm-build-action-3869281187/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-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-18 06:33:02 +0000 UTC FinishedAt: 2026-07-18 06:35:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-18 06:33:02 +0000 UTC FinishedAt: 2026-07-18 06:35:55 +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":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*d2a15dc8-884c-455a-bb06-5ebd6190503c,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*655fdd53-384d-4f54-a320-ba8446e4246c,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-workflowfq9wm/series-workflowfq9wm-build-action-2291308062/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-workflowfq9wm/series-workflowfq9wm-build-action-3869281187/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-18 06:33:02 +0000 UTC FinishedAt: 2026-07-18 06:33:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-18 06:33:02 +0000 UTC FinishedAt: 2026-07-18 06:33:06 +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":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowfq9wm/series-workflowfq9wm-convert-artifact-2979185480/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-18 06:33:02 +0000 UTC FinishedAt: 2026-07-18 06:33:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-18 06:33:02 +0000 UTC FinishedAt: 2026-07-18 06:33:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-18 06:33:02 +0000 UTC FinishedAt: 2026-07-18 06:33:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-18 06:33:12 +0000 UTC FinishedAt: 2026-07-18 06:35:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfq9wm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_sbi_ext_v01_handler"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"07ea8625-d5f0-4d0d-bb2f-988e8c05e973","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-18 06:33:12 +0000 UTC FinishedAt: 2026-07-18 06:35:35 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*d2a15dc8-884c-455a-bb06-5ebd6190503c,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*655fdd53-384d-4f54-a320-ba8446e4246c,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-workflowfq9wm/series-workflowfq9wm-build-action-2291308062/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-workflowfq9wm/series-workflowfq9wm-build-action-3869281187/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-workflowfq9wm/series-workflowfq9wm-convert-artifact-2979185480/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,}