Name: series-workflowjk69s Phase: Succeeded StartedAt: 2026-07-30 01:59:52 +0000 UTC FinishedAt: 2026-07-30 03:31:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[0] Phase: Succeeded StartedAt: 2026-07-30 01:59:52 +0000 UTC FinishedAt: 2026-07-30 02:20:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[0].run-triage Phase: Succeeded StartedAt: 2026-07-30 01:59:52 +0000 UTC FinishedAt: 2026-07-30 02:20:36 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "a75ba6838481e8e81dd1becbd7c89133d406cd8c", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TRANSPARENT_HUGEPAGE" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "a75ba6838481e8e81dd1becbd7c89133d406cd8c", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TRANSPARENT_HUGEPAGE" ], "series_id": "c116704e-ef7d-43dd-9125-ff8edc7c1782" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "set_recommended_min_free_kbytes" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": true, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjE5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RSQU5TUEFSRU5UX0hVR0VQQUdFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY2FsY3VsYXRpb24gb2YgcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzIGZvciBraHVnZXBhZ2VkLCBhZGRpbmcgYSAxIEdpQiBjYXAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgdHJhbnNwYXJlbnQgaHVnZXBhZ2UgbWVtb3J5IG1hbmFnZW1lbnQgbG9naWMsIHJlYWNoYWJsZSB2aWEgc3lzZnMgd3JpdGVzIG9yIG1lbW9yeSBob3RwbHVnIGV2ZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjoxOTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQ2ZWI0YmM0YjRlYjNhODJhZWFlYWQzY2Y3ZjBjMjgxYWY3NzQwNjVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAzMCAwMjoxOTo1MiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9tbS9raHVnZXBhZ2VkLmMgYi9tbS9raHVnZXBhZ2VkLmNcbmluZGV4IDI3ZThmMzA3N2U4MGYuLmQ5Y2FmMTBlMDViNTEgMTAwNjQ0XG4tLS0gYS9tbS9raHVnZXBhZ2VkLmNcbiYjNDM7JiM0MzsmIzQzOyBiL21tL2todWdlcGFnZWQuY1xuQEAgLTIzLDYgJiM0MzsyMyw3IEBAXG4gI2luY2x1ZGUgXHUwMDNjbGludXgva3NtLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9wZ2FsbG9jLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9iYWNraW5nLWRldi5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L3NpemVzLmhcdTAwM2VcbiBcbiAjaW5jbHVkZSBcdTAwM2Nhc20vdGxiLmhcdTAwM2VcbiAjaW5jbHVkZSBcJiMzNDtpbnRlcm5hbC5oXCYjMzQ7XG5AQCAtMzA5Niw5ICYjNDM7MzA5NywxMyBAQCB2b2lkIHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXModm9pZClcbiBcdHJlY29tbWVuZGVkX21pbiAmIzQzOz0gcGFnZWJsb2NrX25yX3BhZ2VzICogbnJfem9uZXMgKlxuIFx0XHRcdCAgIE1JR1JBVEVfUENQVFlQRVMgKiBNSUdSQVRFX1BDUFRZUEVTO1xuIFxuLVx0LyogZG9uJiMzOTt0IGV2ZXIgYWxsb3cgdG8gcmVzZXJ2ZSBtb3JlIHRoYW4gNSUgb2YgdGhlIGxvd21lbSAqL1xuJiM0MztcdC8qXG4mIzQzO1x0ICogRG9uJiMzOTt0IGV2ZXIgYWxsb3cgdG8gcmVzZXJ2ZSBtb3JlIHRoYW4gNSUgb2YgbG93bWVtIG9yIDEgR2lCLFxuJiM0MztcdCAqIHdoaWNoZXZlciBpcyBzbWFsbGVyLlxuJiM0MztcdCAqL1xuIFx0cmVjb21tZW5kZWRfbWluID0gbWluKHJlY29tbWVuZGVkX21pbixcbiBcdFx0XHQgICAgICAodW5zaWduZWQgbG9uZykgbnJfZnJlZV9idWZmZXJfcGFnZXMoKSAvIDIwKTtcbiYjNDM7XHRyZWNvbW1lbmRlZF9taW4gPSBtaW4ocmVjb21tZW5kZWRfbWluLCBTWl8xRyAvIFBBR0VfU0laRSk7XG4gXHRyZWNvbW1lbmRlZF9taW4gXHUwMDNjXHUwMDNjPSAoUEFHRV9TSElGVC0xMCk7XG4gXG4gXHRpZiAocmVjb21tZW5kZWRfbWluIFx1MDAzZSBtaW5fZnJlZV9rYnl0ZXMpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjoxOTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VFJBTlNQQVJFTlRfSFVHRVBBR0UmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjYWxjdWxhdGlvbiBvZiByZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXMgZm9yIGtodWdlcGFnZWQsIGFkZGluZyBhIDEgR2lCIGNhcC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB0cmFuc3BhcmVudCBodWdlcGFnZSBtZW1vcnkgbWFuYWdlbWVudCBsb2dpYywgcmVhY2hhYmxlIHZpYSBzeXNmcyB3cml0ZXMgb3IgbWVtb3J5IGhvdHBsdWcgZXZlbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZDZlYjRiYzRiNGViM2E4MmFlYWVhZDNjZjdmMGMyODFhZjc3NDA2NQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDMwIDAyOjE5OjUyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbW0va2h1Z2VwYWdlZC5jIGIvbW0va2h1Z2VwYWdlZC5jCmluZGV4IDI3ZThmMzA3N2U4MGYuLmQ5Y2FmMTBlMDViNTEgMTAwNjQ0Ci0tLSBhL21tL2todWdlcGFnZWQuYwomIzQzOyYjNDM7JiM0MzsgYi9tbS9raHVnZXBhZ2VkLmMKQEAgLTIzLDYgJiM0MzsyMyw3IEBACiAjaW5jbHVkZSAmbHQ7bGludXgva3NtLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvcGdhbGxvYy5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2JhY2tpbmctZGV2LmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L3NpemVzLmgmZ3Q7CiAKICNpbmNsdWRlICZsdDthc20vdGxiLmgmZ3Q7CiAjaW5jbHVkZSAmIzM0O2ludGVybmFsLmgmIzM0OwpAQCAtMzA5Niw5ICYjNDM7MzA5NywxMyBAQCB2b2lkIHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXModm9pZCkKIAlyZWNvbW1lbmRlZF9taW4gJiM0Mzs9IHBhZ2VibG9ja19ucl9wYWdlcyAqIG5yX3pvbmVzICoKIAkJCSAgIE1JR1JBVEVfUENQVFlQRVMgKiBNSUdSQVRFX1BDUFRZUEVTOwogCi0JLyogZG9uJiMzOTt0IGV2ZXIgYWxsb3cgdG8gcmVzZXJ2ZSBtb3JlIHRoYW4gNSUgb2YgdGhlIGxvd21lbSAqLwomIzQzOwkvKgomIzQzOwkgKiBEb24mIzM5O3QgZXZlciBhbGxvdyB0byByZXNlcnZlIG1vcmUgdGhhbiA1JSBvZiBsb3dtZW0gb3IgMSBHaUIsCiYjNDM7CSAqIHdoaWNoZXZlciBpcyBzbWFsbGVyLgomIzQzOwkgKi8KIAlyZWNvbW1lbmRlZF9taW4gPSBtaW4ocmVjb21tZW5kZWRfbWluLAogCQkJICAgICAgKHVuc2lnbmVkIGxvbmcpIG5yX2ZyZWVfYnVmZmVyX3BhZ2VzKCkgLyAyMCk7CiYjNDM7CXJlY29tbWVuZGVkX21pbiA9IG1pbihyZWNvbW1lbmRlZF9taW4sIFNaXzFHIC8gUEFHRV9TSVpFKTsKIAlyZWNvbW1lbmRlZF9taW4gJmx0OyZsdDs9IChQQUdFX1NISUZULTEwKTsKIAogCWlmIChyZWNvbW1lbmRlZF9taW4gJmd0OyBtaW5fZnJlZV9rYnl0ZXMpIHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIxOQoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDE2MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBLZXJuZWwgTWVtb3J5IE1hbmFnZW1lbnQgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgbW0va2h1Z2VwYWdlZC5jYCwgc3BlY2lmaWNhbGx5IHRoZSBgc2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlc2AgZnVuY3Rpb24uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaWd1cmUgb3V0IGlmIHRoaXMgaXMgd29ydGggc3BlbmRpbmcgc29tZSB0aW1lIGZ1enppbmcuIFRoZSBjaGFuZ2UgaXRzZWxmIGlzIGludGVyZXN0aW5nIOKAkyB0aGV5JiMzOTtyZSBwdXR0aW5nIGEgMSBHaUIgY2FwIG9uIGByZWNvbW1lbmRlZF9taW5gLiBUaGlzIGlzIGNsZWFybHkgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIGtlcm5lbCYjMzk7cyBtZW1vcnkgbWFuYWdlbWVudCwgZGVhbGluZyB3aXRoIHRoZSBraHVnZXBhZ2VkIGNvbXBvbmVudC4KCk5vdywgbGV0JiMzOTtzIHRoaW5rIGFib3V0IHRoZSBhdHRhY2sgc3VyZmFjZS4gYHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXNgIGlzIG9ubHkgY2FsbGVkIGR1cmluZyBraHVnZXBhZ2VkIHN0YXJ0dXAgb3Igd2hlbiBkZWFsaW5nIHdpdGggbWVtb3J5IGhvdHBsdWcgZXZlbnRzLiBIbW0sIGlzIHRoaXMgYSBwbGFjZSB3aGVyZSBmdXp6aW5nIGNvdWxkIGJlIGVmZmVjdGl2ZT8gSXQgc2VlbXMgbGlrZSB0aGlzIGZ1bmN0aW9uIHNldHMgdXAgb3IgY29uZmlndXJlcyBraHVnZXBhZ2VkLCBub3Qgc29tZXRoaW5nIGRpcmVjdGx5IGV4cG9zZWQgdG8gdXNlciBpbnB1dC4gU3RpbGwsIGNvbmZpZ3VyYXRpb24gZnVuY3Rpb25zIGNhbiBiZSB0YXJnZXRzLiBUaGUgZ29hbCBpcyB0byBzZWUgaWYgYW55IHN1YnRsZSBjaGFuZ2VzIGNhbiBiZSB0cmlnZ2VyZWQgYnkgZnV6emluZyB0aGUgdmFsdWVzLgoKSSBuZWVkIHRvIHNlZSB3aGVyZSBlbHNlIGBzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzYCBpcyB1c2VkLCBzbyB0aGF0IEkgdW5kZXJzdGFuZCBhbGwgdGhlIHdheXMgaW4gd2hpY2ggdGhpcyBmdW5jdGlvbiBpcyBwb3RlbnRpYWxseSBpbnZva2VkLiBVbmRlcnN0YW5kaW5nIHRoZSBjb250ZXh0IG9mIGl0cyBjYWxscyB3aWxsIGluZm9ybSBteSBkZWNpc2lvbiBhYm91dCBob3cgaW1wb3J0YW50IGl0IGlzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vaHVnZV9tZW1vcnkuYz0zNzc9c3RhdGljIHNzaXplX3QgZW5hYmxlZF9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaixcbi0tXG5tbS9odWdlX21lbW9yeS5jLTM5Ny1cdFx0ICovXG5tbS9odWdlX21lbW9yeS5jOjM5ODpcdFx0c2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcygpO1xubW0vaHVnZV9tZW1vcnkuYy0zOTktXHR9XG4tLVxubW0vaHVnZV9tZW1vcnkuYz02MTI9c3RhdGljIHNzaXplX3QgYW5vbl9lbmFibGVkX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLFxuLS1cbm1tL2h1Z2VfbWVtb3J5LmMtNjMzLVx0XHQgKi9cbm1tL2h1Z2VfbWVtb3J5LmM6NjM0Olx0XHRzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzKCk7XG5tbS9odWdlX21lbW9yeS5jLTYzNS1cdH1cbi0tXG5tbS9pbnRlcm5hbC5oPTcxMD1wbWRfdCAqbW1fZmluZF9wbWQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkcmVzcyk7XG4tLVxubW0vaW50ZXJuYWwuaC03MTQtICovXG5tbS9pbnRlcm5hbC5oOjcxNTp2b2lkIHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXModm9pZCk7XG5tbS9pbnRlcm5hbC5oLTcxNi1cbi0tXG5tbS9raHVnZXBhZ2VkLmM9MzA0NT1zdGF0aWMgaW50IGtodWdlcGFnZWQodm9pZCAqbm9uZSlcbi0tXG5tbS9raHVnZXBhZ2VkLmMtMzA2NS1cbm1tL2todWdlcGFnZWQuYzozMDY2OnZvaWQgc2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcyh2b2lkKVxubW0va2h1Z2VwYWdlZC5jLTMwNjcte1xuLS1cbm1tL2todWdlcGFnZWQuYz0zMTIxPWludCBzdGFydF9zdG9wX2todWdlcGFnZWQodm9pZClcbi0tXG5tbS9raHVnZXBhZ2VkLmMtMzE0Mi1cdH1cbm1tL2todWdlcGFnZWQuYzozMTQzOlx0c2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcygpO1xubW0va2h1Z2VwYWdlZC5jLTMxNDQtZmFpbDpcbi0tXG5tbS9raHVnZXBhZ2VkLmM9MzE0OT12b2lkIGtodWdlcGFnZWRfbWluX2ZyZWVfa2J5dGVzX3VwZGF0ZSh2b2lkKVxuLS1cbm1tL2todWdlcGFnZWQuYy0zMTUyLVx0aWYgKGh1Z2VwYWdlX2VuYWJsZWQoKSBcdTAwMjZcdTAwMjYga2h1Z2VwYWdlZF90aHJlYWQpXG5tbS9raHVnZXBhZ2VkLmM6MzE1MzpcdFx0c2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcygpO1xubW0va2h1Z2VwYWdlZC5jLTMxNTQtXHRtdXRleF91bmxvY2soXHUwMDI2a2h1Z2VwYWdlZF9tdXRleCk7XG4tLVxubW0vc2htZW0uYz01NTQ3PXN0YXRpYyBzc2l6ZV90IHRocHNpemVfc2htZW1fZW5hYmxlZF9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaixcbi0tXG5tbS9zaG1lbS5jLTU1NzItXHRcdCAqL1xubW0vc2htZW0uYzo1NTczOlx0XHRzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzKCk7XG5tbS9zaG1lbS5jLTU1NzQtXHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzMzNAoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDg1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHVuZGVyc3RhbmRpbmcsIGNvbnNpZGVyaW5nIEkmIzM5O20gZGVlcGx5IGZhbWlsaWFyIHdpdGggdGhpcyBrZXJuZWwgc3Vic3lzdGVtLgoKKipJbnZlc3RpZ2F0aW5nIGtodWdlcGFnZWQgQ2FsbCBQYXRocyBhbmQgQ29uZmlndXJhdGlvbioqCgpSaWdodCwgc28gdGhpcyBmdW5jdGlvbiwgd2hhdGV2ZXIgaXQgaXMsIGlzIGNsZWFybHkgcHJldHR5IGZ1bmRhbWVudGFsIHRvIHRoZSBga2h1Z2VwYWdlZGAgcHJvY2Vzcy4gVGhlIGNhbGwgZ3JhcGggaW5kaWNhdGVzIGl0JiMzOTtzIHRyaWdnZXJlZCBmcm9tIHNldmVyYWwgcGxhY2VzIHdpdGhpbiB0aGUgYHN5c2ZzYCBpbnRlcmZhY2Ug4oCTIGxvb2tpbmcgYXQgdGhpbmdzIGxpa2UgdGhlIGBlbmFibGVkX3N0b3JlYCwgYGFub25fZW5hYmxlZF9zdG9yZWAsIGFuZCBgdGhwc2l6ZV9zaG1lbV9lbmFibGVkX3N0b3JlYCBmaWxlcy4gTWFrZXMgc2Vuc2U7IHRoZXNlIGFyZSB0aGUgdXNlci1zcGFjZSBjb250cm9scyB3ZSYjMzk7ZCBleHBlY3QgZm9yIHR1bmluZyBodWdlIHBhZ2UgYmVoYXZpb3IuIEFuZCwgbmF0dXJhbGx5LCBpdCYjMzk7cyBhbHNvIGNhbGxlZCBieSBgc3RhcnRfc3RvcF9raHVnZXBhZ2VkYCBhbmQgYGtodWdlcGFnZWRfbWluX2ZyZWVfa2J5dGVzX3VwZGF0ZWAuIFNvIHRoZSBlbnRyeSBwb2ludCBpcyBjbGVhcmx5IHJlYWNoYWJsZSBhbmQgZnVuY3Rpb25pbmcuCgpHaXZlbiBpdHMgcmVhY2gsIGl0IG1ha2VzIHNlbnNlIHRvIGNvbmZpcm0gYGtodWdlcGFnZWRgJiMzOTtzIGNvbmZpZ3VyYXRpb24uIEkmIzM5O20gZ29pbmcgdG8gd2FudCB0byB2ZXJpZnkgdGhlIHJlbGV2YW50IGNvbmZpZyBvcHRpb25zIHRoYXQgZGlyZWN0bHkgaW5mbHVlbmNlIGh1Z2UgcGFnZSBiZWhhdmlvci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtraHVnZXBhZ2VkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vTWFrZWZpbGU9MTAwPW9iai0kKENPTkZJR19ERVZJQ0VfTUlHUkFUSU9OKSAmIzQzOz0gbWlncmF0ZV9kZXZpY2Uub1xubW0vTWFrZWZpbGU6MTAxOm9iai0kKENPTkZJR19UUkFOU1BBUkVOVF9IVUdFUEFHRSkgJiM0Mzs9IGh1Z2VfbWVtb3J5Lm8ga2h1Z2VwYWdlZC5vXG5tbS9NYWtlZmlsZS0xMDItb2JqLSQoQ09ORklHX1BBR0VfQ09VTlRFUikgJiM0Mzs9IHBhZ2VfY291bnRlci5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc1NwoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDIzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgaXQgd2VyZSBteSBvd246CgoqKkludmVzdGlnYXRpbmcgTWVtb3J5IEFsbG9jYXRpb24gU3RyYXRlZ2llcyoqCgpPa2F5LCBzbyB0aGUgY29uZmlndXJhdGlvbiBpcyBjdXJyZW50bHkgc2V0IHRvIGBUUkFOU1BBUkVOVF9IVUdFUEFHRWAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBwYXVzZSBhbmQgY29uZmlybSB0aGF0JiMzOTtzIHRoZSBvbmx5IHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gaW4gcGxheSwgcmVsYXRlZCB0byBtZW1vcnkgbWFuYWdlbWVudC4gVGhlcmUgY291bGQgYmUgb3RoZXIgZmFjdG9ycyBpbnZvbHZlZC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIHNvbWUgb3RoZXIgcG90ZW50aWFsbHkgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMuIFRoZXJlIGFyZSBvZnRlbiBvdGhlciBhc3BlY3RzIHRvIGNvbnNpZGVyIGJleW9uZCB0aGUgb2J2aW91cywgc28gaXQmIzM5O3MgYmVzdCB0byBiZSBjb21wcmVoZW5zaXZlIHdoZW4gYW5hbHl6aW5nIHRoaXMgdHlwZSBvZiBzeXN0ZW0gYmVoYXZpb3IuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFRSQU5TUEFSRU5UX0hVR0VQQUdFJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDttbS9LY29uZmlnPTgyOT1jb25maWcgTU1fSURcbi0tXG5tbS9LY29uZmlnLTgzMS1cbm1tL0tjb25maWc6ODMyOm1lbnVjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0Vcbm1tL0tjb25maWctODMzLVx0Ym9vbCBcJiMzNDtUcmFuc3BhcmVudCBIdWdlcGFnZSBTdXBwb3J0XCYjMzQ7XG4tLVxubW0vS2NvbmZpZz04NTA9Y2hvaWNlXG4tLVxubW0vS2NvbmZpZy04NTUtXG5tbS9LY29uZmlnOjg1NjpcdGNvbmZpZyBUUkFOU1BBUkVOVF9IVUdFUEFHRV9BTFdBWVNcbm1tL0tjb25maWctODU3LVx0XHRib29sIFwmIzM0O2Fsd2F5c1wmIzM0O1xuLS1cbm1tL0tjb25maWctODYyLVxubW0vS2NvbmZpZzo4NjM6XHRjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VfTUFEVklTRVxubW0vS2NvbmZpZy04NjQtXHRcdGJvb2wgXCYjMzQ7bWFkdmlzZVwmIzM0O1xuLS1cbm1tL0tjb25maWctODcxLVxubW0vS2NvbmZpZzo4NzI6XHRjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VfTkVWRVJcbm1tL0tjb25maWctODczLVx0XHRib29sIFwmIzM0O25ldmVyXCYjMzQ7XG4tLVxubW0vS2NvbmZpZz04Nzk9Y2hvaWNlXG4tLVxubW0vS2NvbmZpZy04ODgtXG5tbS9LY29uZmlnOjg4OTpcdGNvbmZpZyBUUkFOU1BBUkVOVF9IVUdFUEFHRV9TSE1FTV9IVUdFX05FVkVSXG5tbS9LY29uZmlnLTg5MC1cdFx0Ym9vbCBcJiMzNDtuZXZlclwmIzM0O1xuLS1cbm1tL0tjb25maWctODk4LVxubW0vS2NvbmZpZzo4OTk6XHRjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VfU0hNRU1fSFVHRV9BTFdBWVNcbm1tL0tjb25maWctOTAwLVx0XHRib29sIFwmIzM0O2Fsd2F5c1wmIzM0O1xuLS1cbm1tL0tjb25maWctOTA2LVxubW0vS2NvbmZpZzo5MDc6XHRjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VfU0hNRU1fSFVHRV9XSVRISU5fU0laRVxubW0vS2NvbmZpZy05MDgtXHRcdGJvb2wgXCYjMzQ7d2l0aGluX3NpemVcJiMzNDtcbi0tXG5tbS9LY29uZmlnLTkxNC1cbm1tL0tjb25maWc6OTE1Olx0Y29uZmlnIFRSQU5TUEFSRU5UX0hVR0VQQUdFX1NITUVNX0hVR0VfQURWSVNFXG5tbS9LY29uZmlnLTkxNi1cdFx0Ym9vbCBcJiMzNDthZHZpc2VcJiMzNDtcbi0tXG5tbS9LY29uZmlnPTkyND1jaG9pY2Vcbi0tXG5tbS9LY29uZmlnLTkzMy1cbm1tL0tjb25maWc6OTM0Olx0Y29uZmlnIFRSQU5TUEFSRU5UX0hVR0VQQUdFX1RNUEZTX0hVR0VfTkVWRVJcbm1tL0tjb25maWctOTM1LVx0XHRib29sIFwmIzM0O25ldmVyXCYjMzQ7XG4tLVxubW0vS2NvbmZpZy05NDItXG5tbS9LY29uZmlnOjk0MzpcdGNvbmZpZyBUUkFOU1BBUkVOVF9IVUdFUEFHRV9UTVBGU19IVUdFX0FMV0FZU1xubW0vS2NvbmZpZy05NDQtXHRcdGJvb2wgXCYjMzQ7YWx3YXlzXCYjMzQ7XG4tLVxubW0vS2NvbmZpZy05NTAtXG5tbS9LY29uZmlnOjk1MTpcdGNvbmZpZyBUUkFOU1BBUkVOVF9IVUdFUEFHRV9UTVBGU19IVUdFX1dJVEhJTl9TSVpFXG5tbS9LY29uZmlnLTk1Mi1cdFx0Ym9vbCBcJiMzNDt3aXRoaW5fc2l6ZVwmIzM0O1xuLS1cbm1tL0tjb25maWctOTU4LVxubW0vS2NvbmZpZzo5NTk6XHRjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VfVE1QRlNfSFVHRV9BRFZJU0Vcbm1tL0tjb25maWctOTYwLVx0XHRib29sIFwmIzM0O2FkdmlzZVwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2NDQKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAyNjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBgc2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlc2A6IEEgUXVpY2sgQXNzZXNzbWVudCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXNgIGFuZCB0aGlua2luZyBhYm91dCBpdHMgZnV6emluZyBwb3RlbnRpYWwuIEl0IHNlZW1zIGxpa2UgaXQmIzM5O3MgcHJpbWFyaWx5IGRyaXZlbiBieSB3cml0ZXMgdG8gYC9zeXMva2VybmVsL21tL3RyYW5zcGFyZW50X2h1Z2VwYWdlL2VuYWJsZWRgIGFuZCByZWxhdGVkIHN5c2ZzIGVudHJpZXMuIFRoZSBxdWVzdGlvbiBpcywgaXMgdGhpcyBhIHdvcnRod2hpbGUgdGFyZ2V0PyBZZXMsIGl0IGlzLCBiZWNhdXNlIHRoaXMgZGlyZWN0bHkgaW1wYWN0cyBtZW1vcnkgbWFuYWdlbWVudCBmdW5jdGlvbmFsaXR5LgoKSSYjMzk7bSB6ZXJvaW5nIGluIG9uIGEgZmV3IGtleSBzeW1ib2xzOiBgc2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlc2AsIGBraHVnZXBhZ2VkX21pbl9mcmVlX2tieXRlc191cGRhdGVgLCBhbmQgYHN0YXJ0X3N0b3Bfa2h1Z2VwYWdlZGAuIEkgbmVlZCB0byBjb25maXJtIGlmIGFueSBvZiB0aGVtIGFyZSBzdGF0aWM7IEkmIzM5O20gcHJldHR5IHN1cmUgbm9uZSBhcmUsIHNvIGxldCBtZSBqdXN0IGNoZWNrLiBPa2F5LCBub25lIG9mIHRoZW0gYXJlIHN0YXRpYywgYXMgSSB0aG91Z2h0LgoKSG9sZCBvbi4uLiBgc2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlc2AgaXMgYWN0dWFsbHkgcXVpdGUgYSBzbWFsbCBmdW5jdGlvbi4gSXQmIzM5O3MgcmVhbGx5IGp1c3QgY2FsY3VsYXRpbmcgYSB2YWx1ZSBhbmQgdGhlbiBzZXR0aW5nIGBtaW5fZnJlZV9rYnl0ZXNgLiBJdHMgZnVuY3Rpb25hbCBuYXR1cmUgaXMgY2xlYXIuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSYjMzk7bSB0YXJnZXRpbmcgdGhlIGltcGxlbWVudGF0aW9uLCB3aGljaCBzaG91bGQgYmUgaW4gYG1tL2todWdlcGFnZWQuY2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bW0va2h1Z2VwYWdlZC5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMzA5MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAzMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDszMDkwOlx0XG4zMDkxOlx0XHQvKlxuMzA5MjpcdFx0ICogTWFrZSBzdXJlIHRoYXQgb24gYXZlcmFnZSBhdCBsZWFzdCB0d28gcGFnZWJsb2NrcyBhcmUgYWxtb3N0IGZyZWVcbjMwOTM6XHRcdCAqIG9mIGFub3RoZXIgdHlwZSwgb25lIGZvciBhIG1pZ3JhdGV0eXBlIHRvIGZhbGwgYmFjayB0byBhbmQgYVxuMzA5NDpcdFx0ICogc2Vjb25kIHRvIGF2b2lkIHN1YnNlcXVlbnQgZmFsbGJhY2tzIG9mIG90aGVyIHR5cGVzIFRoZXJlIGFyZSAzXG4zMDk1Olx0XHQgKiBNSUdSQVRFX1RZUEVTIHdlIGNhcmUgYWJvdXQuXG4zMDk2Olx0XHQgKi9cbjMwOTc6XHRcdHJlY29tbWVuZGVkX21pbiAmIzQzOz0gcGFnZWJsb2NrX25yX3BhZ2VzICogbnJfem9uZXMgKlxuMzA5ODpcdFx0XHRcdCAgIE1JR1JBVEVfUENQVFlQRVMgKiBNSUdSQVRFX1BDUFRZUEVTO1xuMzA5OTpcdFxuMzEwMDpcdFx0LypcbjMxMDE6XHRcdCAqIERvbiYjMzk7dCBldmVyIGFsbG93IHRvIHJlc2VydmUgbW9yZSB0aGFuIDUlIG9mIGxvd21lbSBvciAxIEdpQixcbjMxMDI6XHRcdCAqIHdoaWNoZXZlciBpcyBzbWFsbGVyLlxuMzEwMzpcdFx0ICovXG4zMTA0Olx0XHRyZWNvbW1lbmRlZF9taW4gPSBtaW4ocmVjb21tZW5kZWRfbWluLFxuMzEwNTpcdFx0XHRcdCAgICAgICh1bnNpZ25lZCBsb25nKSBucl9mcmVlX2J1ZmZlcl9wYWdlcygpIC8gMjApO1xuMzEwNjpcdFx0cmVjb21tZW5kZWRfbWluID0gbWluKHJlY29tbWVuZGVkX21pbiwgU1pfMUcgLyBQQUdFX1NJWkUpO1xuMzEwNzpcdFx0cmVjb21tZW5kZWRfbWluIFx1MDAzY1x1MDAzYz0gKFBBR0VfU0hJRlQtMTApO1xuMzEwODpcdFxuMzEwOTpcdFx0aWYgKHJlY29tbWVuZGVkX21pbiBcdTAwM2UgbWluX2ZyZWVfa2J5dGVzKSB7XG4zMTEwOlx0XHRcdGlmICh1c2VyX21pbl9mcmVlX2tieXRlcyBcdTAwM2U9IDApXG4zMTExOlx0XHRcdFx0cHJfaW5mb19yYXRlbGltaXRlZChcJiMzNDtyYWlzaW5nIG1pbl9mcmVlX2tieXRlcyBmcm9tICVkIHRvICVsdSB0byBoZWxwIHRyYW5zcGFyZW50IGh1Z2VwYWdlIGFsbG9jYXRpb25zXFxuXCYjMzQ7LFxuMzExMjpcdFx0XHRcdFx0XHQgICAgbWluX2ZyZWVfa2J5dGVzLCByZWNvbW1lbmRlZF9taW4pO1xuMzExMzpcdFxuMzExNDpcdFx0XHRtaW5fZnJlZV9rYnl0ZXMgPSByZWNvbW1lbmRlZF9taW47XG4zMTE1Olx0XHR9XG4zMTE2Olx0XG4zMTE3Olx0dXBkYXRlX3dtYXJrczpcbjMxMTg6XHRcdHNldHVwX3Blcl96b25lX3dtYXJrcygpO1xuMzExOTpcdH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTcwNwoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDU4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkNoZWNraW5nIHRoZSBDb25maWcgYW5kIEZvY3VzKioKCk9rYXksIHNvIHRoaXMgY29uZmlndXJhdGlvbiBzZWVtcyBmdW5jdGlvbmFsOyBnb29kLiBMZXQgbWUgc2VlLi4uIGBFbmFibGVDb25maWdzYCBjb250YWlucyBgVFJBTlNQQVJFTlRfSFVHRVBBR0VgLCBhbmQgdGhlIGBGb2N1c1N5bWJvbHNgIGFyZSBzZXQgdG8gYHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXNgLiBOb3csIGJlZm9yZSBJIHByb2NlZWQgZnVydGhlciwgSSB3YW50IHRvIG1ha2UgYWJzb2x1dGVseSBjZXJ0YWluIHRoYXQgYFRSQU5TUEFSRU5UX0hVR0VQQUdFYCBpc24mIzM5O3QgcmVsaWFudCBvbiBzb21lIG90aGVyLCB1bmRlcmx5aW5nIGNvbmZpZ3VyYXRpb24gb3IgZmVhdHVyZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGRlcGVuZGVuY2llcyB0aG9yb3VnaGx5LiBCZXN0IHRvIGJlIHNhZmUgdGhhbiBzb3JyeSwgZXNwZWNpYWxseSB3aGVuIHdlIGFyZSB0YWxraW5nIGFib3V0IG1lbW9yeSBtYW5hZ2VtZW50IQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttZW51Y29uZmlnIFRSQU5TUEFSRU5UX0hVR0VQQUdFJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDttbS9LY29uZmlnPTgyOT1jb25maWcgTU1fSURcbi0tXG5tbS9LY29uZmlnLTgzMS1cbm1tL0tjb25maWc6ODMyOm1lbnVjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0Vcbm1tL0tjb25maWctODMzLVx0Ym9vbCBcJiMzNDtUcmFuc3BhcmVudCBIdWdlcGFnZSBTdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU5OTMKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiA3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqQW5hbHl6aW5nIHRoZSBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBNeSBpbml0aWFsIHRob3VnaHQgcHJvY2VzcyBpcyBhbHdheXMgdG8gc3RhcnQgYnkgbWFwcGluZyBvdXQgdGhlIGRlcGVuZGVuY2llcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGludGVyY29ubmVjdGVkbmVzcyBvZiBhbGwgdGhlIGNvbXBvbmVudHMgYXQgcGxheSBoZXJlLiBUaGlzIGlzbiYjMzk7dCBqdXN0IGFib3V0IGlkZW50aWZ5aW5nIHRoZSBkaXJlY3QgcmVsYXRpb25zaGlwczsgSSYjMzk7bSBkaWdnaW5nIGRlZXBlciB0byB1bmNvdmVyIHRoZSBoaWRkZW4gaW1wbGljYXRpb25zLiBJJiMzOTttIGxvb2tpbmcgZm9yIHRoZSByaXBwbGUgZWZmZWN0cyDigJMgaG93IGNoYW5nZXMgaW4gb25lIGFyZWEgd2lsbCBpbmV2aXRhYmx5IGNhc2NhZGUgYW5kIGluZmx1ZW5jZSBvdGhlcnMuIEFyZSB0aGVyZSBhbnkgY2lyY3VsYXIgZGVwZW5kZW5jaWVzIHRoYXQgY291bGQgbGVhZCB0byBkZWFkbG9ja3Mgb3IgdW5leHBlY3RlZCBiZWhhdmlvcj8gSSBuZWVkIHRvIGJ1aWxkIGEgY29tcHJlaGVuc2l2ZSBkZXBlbmRlbmN5IGdyYXBoLCB3aGV0aGVyIGl0JiMzOTtzIGltcGxpY2l0bHkgaW4gbXkgaGVhZCBvciBza2V0Y2hlZCBvdXQgb24gYSB3aGl0ZWJvYXJkLiBUaGlzIGlzbiYjMzk7dCBqdXN0IGEgY2FzdWFsIG92ZXJ2aWV3OyBpdCYjMzk7cyBhIGRlZXAgZGl2ZSBpbnRvIHRoZSBhcmNoaXRlY3R1cmUuIEnigJltIHRoaW5raW5nIGFib3V0IG5vdCBvbmx5IHRoZSBjdXJyZW50IHN0YXRlIGJ1dCB0aGUgZnV0dXJlIGFzIHdlbGwuIEkmIzM5O20gY29uc2lkZXJpbmcgcG90ZW50aWFsIGNoYW5nZXMsIHVwZ3JhZGVzLCBhbmQgaW50ZWdyYXRpb25zLiBBbnkgbmV3IGVsZW1lbnQgd2lsbCBuZWVkIHRvIGJlIGNoZWNrZWQgYWdhaW5zdCB0aGUgZXhpc3RpbmcgZGVwZW5kZW5jaWVzLiBJIGFtIGhvcGluZyB0byBnZXQgdG8gdGhlIGNvcmUgb2YgdGhlIHByb2JsZW0gYW5kIHByZXZlbnQgYW55IGlzc3VlcyBiZWZvcmUgdGhleSBtYW5pZmVzdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDttbS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogODMwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA4MzA6XHRcdGRlZl9ib29sIG5cbiA4MzE6XHRcbiA4MzI6XHRtZW51Y29uZmlnIFRSQU5TUEFSRU5UX0hVR0VQQUdFXG4gODMzOlx0XHRib29sIFwmIzM0O1RyYW5zcGFyZW50IEh1Z2VwYWdlIFN1cHBvcnRcJiMzNDtcbiA4MzQ6XHRcdGRlcGVuZHMgb24gSEFWRV9BUkNIX1RSQU5TUEFSRU5UX0hVR0VQQUdFIFx1MDAyNlx1MDAyNiAhUFJFRU1QVF9SVFxuIDgzNTpcdFx0c2VsZWN0IENPTVBBQ1RJT05cbiA4MzY6XHRcdHNlbGVjdCBYQVJSQVlfTVVMVElcbiA4Mzc6XHRcdHNlbGVjdCBNTV9JRFxuIDgzODpcdFx0aGVscFxuIDgzOTpcdFx0ICBUcmFuc3BhcmVudCBIdWdlcGFnZXMgYWxsb3dzIHRoZSBrZXJuZWwgdG8gdXNlIGh1Z2UgcGFnZXMgYW5kXG4gODQwOlx0XHQgIGh1Z2UgdGxiIHRyYW5zcGFyZW50bHkgdG8gdGhlIGFwcGxpY2F0aW9ucyB3aGVuZXZlciBwb3NzaWJsZS5cbiA4NDE6XHRcdCAgVGhpcyBmZWF0dXJlIGNhbiBpbXByb3ZlIGNvbXB1dGluZyBwZXJmb3JtYW5jZSB0byBjZXJ0YWluXG4gODQyOlx0XHQgIGFwcGxpY2F0aW9ucyBieSBzcGVlZGluZyB1cCBwYWdlIGZhdWx0cyBkdXJpbmcgbWVtb3J5XG4gODQzOlx0XHQgIGFsbG9jYXRpb24sIGJ5IHJlZHVjaW5nIHRoZSBudW1iZXIgb2YgdGxiIG1pc3NlcyBhbmQgYnkgc3BlZWRpbmdcbiA4NDQ6XHRcdCAgdXAgdGhlIHBhZ2V0YWJsZSB3YWxraW5nLlxuIDg0NTpcdFxuIDg0NjpcdFx0ICBJZiBtZW1vcnkgY29uc3RyYWluZWQgb24gZW1iZWRkZWQsIHlvdSBtYXkgd2FudCB0byBzYXkgTi5cbiA4NDc6XHRcbiA4NDg6XHRpZiBUUkFOU1BBUkVOVF9IVUdFUEFHRVxuIDg0OTpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NTU5CgkJCQkJCQlvdXRwdXQ6IDEwNgoJCQkJCQkJdGhvdWdodHM6IDc5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQuCgoqKk15IEFuYWx5c2lzIG9mIEh1Z2UgUGFnZSBDb25maWd1cmF0aW9uKioKClJpZ2h0LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBjb2RlIGFuZCBpbW1lZGlhdGVseSBJIHNlZSBpdCYjMzk7cyBhbGwgYWJvdXQgaG93IHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggdHJhbnNwYXJlbnQgaHVnZSBwYWdlcy4gSXQmIzM5O3MgY29uZGl0aW9uYWxseSBjb21waWxlZCBiYXNlZCBvbiBgSEFWRV9BUkNIX1RSQU5TUEFSRU5UX0hVR0VQQUdFYCBhbmQsIGNyaXRpY2FsbHksIHRoZSBhYnNlbmNlIG9mIGBQUkVFTVBUX1JUYC4gVGhpcyBtZWFucyB0aGVyZSYjMzk7cyBhIGRlcGVuZGVuY3kgb24gdGhlIGFyY2hpdGVjdHVyZSYjMzk7cyBzdXBwb3J0IGZvciB0cmFuc3BhcmVudCBodWdlcGFnZXMsIGFuZCBob3cgcmVhbC10aW1lIHByZWVtcHRpb24gaXMgaGFuZGxlZC4gQSBjbGFzc2ljIHNldCB1cCEKCkZyb20gdGhlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uLCBJIHVuZGVyc3RhbmQgdGhhdCBgVFJBTlNQQVJFTlRfSFVHRVBBR0VgIGlzIHRoZSBjb3JlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIHRoYXQgZHJpdmVzIHRoZSBiZWhhdmlvciBoZXJlLiBTbywgdGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBmb3IgbXkgYW5hbHlzaXMgaXMgYFRSQU5TUEFSRU5UX0hVR0VQQUdFYC4gSSBoYXZlIHRvIGtlZXAgdGhhdCBpbiBtaW5kLgoKQmFzZWQgb24gdGhhdCwgSSYjMzk7bSB0aGlua2luZyBJIG5lZWQgdG8gZmxhZyBpdCBhcyBzb21ldGhpbmcgdGhhdCYjMzk7cyBwb3RlbnRpYWxseSAmIzM0O1dvcnRoRnV6emluZyYjMzQ7LiBGcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZSwgdGhpcyBtYWtlcyBzZW5zZSBiZWNhdXNlIGNoYW5nZXMgdG8gYFRSQU5TUEFSRU5UX0hVR0VQQUdFYCBjYW4gaW1wYWN0IG1lbW9yeSBtYW5hZ2VtZW50LCBhbmQgdGhvc2UgYXJlIGFsd2F5cyBpbnRlcmVzdGluZyBhcmVhcyB0byB0ZXN0LiBJdCBwcm9iYWJseSB0b3VjaGVzIGEgbG90IG9mIG90aGVyIGFyZWFzIGluIHRoZSBrZXJuZWwsIGFuZCB0aGUgaW50ZXJhY3Rpb24gb2YgYFRSQU5TUEFSRU5UX0hVR0VQQUdFYCB3aXRoIGBIQVZFX0FSQ0hfVFJBTlNQQVJFTlRfSFVHRVBBR0VgIHNob3VsZCBiZSBjb25zaWRlcmVkLgoKVGhlcmVmb3JlLCBmb3IgdGhlIGZ1enppbmcsIEkmIzM5O2xsIHJldHVybiBgV29ydGhGdXp6aW5nPXRydWVgLiBJIHdpbGwgYWxzbyB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgZnV6emluZyBjb25maWd1cmF0aW9uIGVuYWJsZXMgYFRSQU5TUEFSRU5UX0hVR0VQQUdFYCwgc28gSSBuZWVkIHRvIHNldCBgRW5hYmxlQ29uZmlncz1bJiMzNDtUUkFOU1BBUkVOVF9IVUdFUEFHRSYjMzQ7XWAuCgpGaW5hbGx5LCBmb3IgdGhlIHNwZWNpZmljIGZ1bmN0aW9uLCBpdCBsb29rcyBsaWtlIGBzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzYCBpcyBnb2luZyB0byBiZSBhIGtleSBhcmVhIHRvIG1vbml0b3IsIHNvIEkmIzM5O2xsIGluY2x1ZGUgdGhhdCBpbiBgRm9jdXNTeW1ib2xzPVsmIzM0O3NldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXMmIzM0O11gIHRvIGdldCBncmFudWxhciBjb3ZlcmFnZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RSQU5TUEFSRU5UX0hVR0VQQUdFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY2FsY3VsYXRpb24gb2YgcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzIGZvciBraHVnZXBhZ2VkLCBhZGRpbmcgYSAxIEdpQiBjYXAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgdHJhbnNwYXJlbnQgaHVnZXBhZ2UgbWVtb3J5IG1hbmFnZW1lbnQgbG9naWMsIHJlYWNoYWJsZSB2aWEgc3lzZnMgd3JpdGVzIG9yIG1lbW9yeSBob3RwbHVnIGV2ZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VFJBTlNQQVJFTlRfSFVHRVBBR0UmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjYWxjdWxhdGlvbiBvZiByZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXMgZm9yIGtodWdlcGFnZWQsIGFkZGluZyBhIDEgR2lCIGNhcC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB0cmFuc3BhcmVudCBodWdlcGFnZSBtZW1vcnkgbWFuYWdlbWVudCBsb2dpYywgcmVhY2hhYmxlIHZpYSBzeXNmcyB3cml0ZXMgb3IgbWVtb3J5IGhvdHBsdWcgZXZlbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MTk6NTMuMDk3NTczMjQ3WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzE4NDE1ODU2NzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVFJBTlNQQVJFTlRfSFVHRVBBR0VcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNhbGN1bGF0aW9uIG9mIHJlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcyBmb3Iga2h1Z2VwYWdlZCwgYWRkaW5nIGEgMSBHaUIgY2FwLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIHRyYW5zcGFyZW50IGh1Z2VwYWdlIG1lbW9yeSBtYW5hZ2VtZW50IGxvZ2ljLCByZWFjaGFibGUgdmlhIHN5c2ZzIHdyaXRlcyBvciBtZW1vcnkgaG90cGx1ZyBldmVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjE5OjUzLjA5NzU4MDI3N1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTc2NDMwMzkzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDZlYjRiYzRiNGViM2E4MmFlYWVhZDNjZjdmMGMyODFhZjc3NDA2NVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCAzMCAwMjoxOTo1MiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9tbS9raHVnZXBhZ2VkLmMgYi9tbS9raHVnZXBhZ2VkLmNcXG5pbmRleCAyN2U4ZjMwNzdlODBmLi5kOWNhZjEwZTA1YjUxIDEwMDY0NFxcbi0tLSBhL21tL2todWdlcGFnZWQuY1xcbisrKyBiL21tL2todWdlcGFnZWQuY1xcbkBAIC0yMyw2ICsyMyw3IEBAXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9rc20uaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BnYWxsb2MuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2JhY2tpbmctZGV2LmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9zaXplcy5oXFx1MDAzZVxcbiBcXG4gI2luY2x1ZGUgXFx1MDAzY2FzbS90bGIuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFxcImludGVybmFsLmhcXFwiXFxuQEAgLTMwOTYsOSArMzA5NywxMyBAQCB2b2lkIHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXModm9pZClcXG4gXFx0cmVjb21tZW5kZWRfbWluICs9IHBhZ2VibG9ja19ucl9wYWdlcyAqIG5yX3pvbmVzICpcXG4gXFx0XFx0XFx0ICAgTUlHUkFURV9QQ1BUWVBFUyAqIE1JR1JBVEVfUENQVFlQRVM7XFxuIFxcbi1cXHQvKiBkb24ndCBldmVyIGFsbG93IHRvIHJlc2VydmUgbW9yZSB0aGFuIDUlIG9mIHRoZSBsb3dtZW0gKi9cXG4rXFx0LypcXG4rXFx0ICogRG9uJ3QgZXZlciBhbGxvdyB0byByZXNlcnZlIG1vcmUgdGhhbiA1JSBvZiBsb3dtZW0gb3IgMSBHaUIsXFxuK1xcdCAqIHdoaWNoZXZlciBpcyBzbWFsbGVyLlxcbitcXHQgKi9cXG4gXFx0cmVjb21tZW5kZWRfbWluID0gbWluKHJlY29tbWVuZGVkX21pbixcXG4gXFx0XFx0XFx0ICAgICAgKHVuc2lnbmVkIGxvbmcpIG5yX2ZyZWVfYnVmZmVyX3BhZ2VzKCkgLyAyMCk7XFxuK1xcdHJlY29tbWVuZGVkX21pbiA9IG1pbihyZWNvbW1lbmRlZF9taW4sIFNaXzFHIC8gUEFHRV9TSVpFKTtcXG4gXFx0cmVjb21tZW5kZWRfbWluIFxcdTAwM2NcXHUwMDNjPSAoUEFHRV9TSElGVC0xMCk7XFxuIFxcbiBcXHRpZiAocmVjb21tZW5kZWRfbWluIFxcdTAwM2UgbWluX2ZyZWVfa2J5dGVzKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjE5OjUzLjY3NTA1Njg4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MzEyNjQwODUzODYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVFJBTlNQQVJFTlRfSFVHRVBBR0VcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNhbGN1bGF0aW9uIG9mIHJlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcyBmb3Iga2h1Z2VwYWdlZCwgYWRkaW5nIGEgMSBHaUIgY2FwLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIHRyYW5zcGFyZW50IGh1Z2VwYWdlIG1lbW9yeSBtYW5hZ2VtZW50IGxvZ2ljLCByZWFjaGFibGUgdmlhIHN5c2ZzIHdyaXRlcyBvciBtZW1vcnkgaG90cGx1ZyBldmVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGQ2ZWI0YmM0YjRlYjNhODJhZWFlYWQzY2Y3ZjBjMjgxYWY3NzQwNjVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAzMCAwMjoxOTo1MiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL21tL2todWdlcGFnZWQuYyBiL21tL2todWdlcGFnZWQuY1xuaW5kZXggMjdlOGYzMDc3ZTgwZi4uZDljYWYxMGUwNWI1MSAxMDA2NDRcbi0tLSBhL21tL2todWdlcGFnZWQuY1xuKysrIGIvbW0va2h1Z2VwYWdlZC5jXG5AQCAtMjMsNiArMjMsNyBAQFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2tzbS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvcGdhbGxvYy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvYmFja2luZy1kZXYuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L3NpemVzLmhcdTAwM2VcbiBcbiAjaW5jbHVkZSBcdTAwM2Nhc20vdGxiLmhcdTAwM2VcbiAjaW5jbHVkZSBcImludGVybmFsLmhcIlxuQEAgLTMwOTYsOSArMzA5NywxMyBAQCB2b2lkIHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXModm9pZClcbiBcdHJlY29tbWVuZGVkX21pbiArPSBwYWdlYmxvY2tfbnJfcGFnZXMgKiBucl96b25lcyAqXG4gXHRcdFx0ICAgTUlHUkFURV9QQ1BUWVBFUyAqIE1JR1JBVEVfUENQVFlQRVM7XG4gXG4tXHQvKiBkb24ndCBldmVyIGFsbG93IHRvIHJlc2VydmUgbW9yZSB0aGFuIDUlIG9mIHRoZSBsb3dtZW0gKi9cbitcdC8qXG4rXHQgKiBEb24ndCBldmVyIGFsbG93IHRvIHJlc2VydmUgbW9yZSB0aGFuIDUlIG9mIGxvd21lbSBvciAxIEdpQixcbitcdCAqIHdoaWNoZXZlciBpcyBzbWFsbGVyLlxuK1x0ICovXG4gXHRyZWNvbW1lbmRlZF9taW4gPSBtaW4ocmVjb21tZW5kZWRfbWluLFxuIFx0XHRcdCAgICAgICh1bnNpZ25lZCBsb25nKSBucl9mcmVlX2J1ZmZlcl9wYWdlcygpIC8gMjApO1xuK1x0cmVjb21tZW5kZWRfbWluID0gbWluKHJlY29tbWVuZGVkX21pbiwgU1pfMUcgLyBQQUdFX1NJWkUpO1xuIFx0cmVjb21tZW5kZWRfbWluIFx1MDAzY1x1MDAzYz0gKFBBR0VfU0hJRlQtMTApO1xuIFxuIFx0aWYgKHJlY29tbWVuZGVkX21pbiBcdTAwM2UgbWluX2ZyZWVfa2J5dGVzKSB7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjoxOTo1My42NzUwNTk0MDlaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTUwNTc1MzUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEtlcm5lbCBNZW1vcnkgTWFuYWdlbWVudCBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYG1tL2todWdlcGFnZWQuY2AsIHNwZWNpZmljYWxseSB0aGUgYHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXNgIGZ1bmN0aW9uLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCBpZiB0aGlzIGlzIHdvcnRoIHNwZW5kaW5nIHNvbWUgdGltZSBmdXp6aW5nLiBUaGUgY2hhbmdlIGl0c2VsZiBpcyBpbnRlcmVzdGluZyDigJMgdGhleSdyZSBwdXR0aW5nIGEgMSBHaUIgY2FwIG9uIGByZWNvbW1lbmRlZF9taW5gLiBUaGlzIGlzIGNsZWFybHkgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIGtlcm5lbCdzIG1lbW9yeSBtYW5hZ2VtZW50LCBkZWFsaW5nIHdpdGggdGhlIGtodWdlcGFnZWQgY29tcG9uZW50LlxuXG5Ob3csIGxldCdzIHRoaW5rIGFib3V0IHRoZSBhdHRhY2sgc3VyZmFjZS4gYHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXNgIGlzIG9ubHkgY2FsbGVkIGR1cmluZyBraHVnZXBhZ2VkIHN0YXJ0dXAgb3Igd2hlbiBkZWFsaW5nIHdpdGggbWVtb3J5IGhvdHBsdWcgZXZlbnRzLiBIbW0sIGlzIHRoaXMgYSBwbGFjZSB3aGVyZSBmdXp6aW5nIGNvdWxkIGJlIGVmZmVjdGl2ZT8gSXQgc2VlbXMgbGlrZSB0aGlzIGZ1bmN0aW9uIHNldHMgdXAgb3IgY29uZmlndXJlcyBraHVnZXBhZ2VkLCBub3Qgc29tZXRoaW5nIGRpcmVjdGx5IGV4cG9zZWQgdG8gdXNlciBpbnB1dC4gU3RpbGwsIGNvbmZpZ3VyYXRpb24gZnVuY3Rpb25zIGNhbiBiZSB0YXJnZXRzLiBUaGUgZ29hbCBpcyB0byBzZWUgaWYgYW55IHN1YnRsZSBjaGFuZ2VzIGNhbiBiZSB0cmlnZ2VyZWQgYnkgZnV6emluZyB0aGUgdmFsdWVzLlxuXG5JIG5lZWQgdG8gc2VlIHdoZXJlIGVsc2UgYHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXNgIGlzIHVzZWQsIHNvIHRoYXQgSSB1bmRlcnN0YW5kIGFsbCB0aGUgd2F5cyBpbiB3aGljaCB0aGlzIGZ1bmN0aW9uIGlzIHBvdGVudGlhbGx5IGludm9rZWQuIFVuZGVyc3RhbmRpbmcgdGhlIGNvbnRleHQgb2YgaXRzIGNhbGxzIHdpbGwgaW5mb3JtIG15IGRlY2lzaW9uIGFib3V0IGhvdyBpbXBvcnRhbnQgaXQgaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMTksIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjEsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjoxOTo1Ny44MjU2Mzc1NDNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDg2NDEwOTA3NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm1tL2h1Z2VfbWVtb3J5LmM9Mzc3PXN0YXRpYyBzc2l6ZV90IGVuYWJsZWRfc3RvcmUoc3RydWN0IGtvYmplY3QgKmtvYmosXFxuLS1cXG5tbS9odWdlX21lbW9yeS5jLTM5Ny1cXHRcXHQgKi9cXG5tbS9odWdlX21lbW9yeS5jOjM5ODpcXHRcXHRzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzKCk7XFxubW0vaHVnZV9tZW1vcnkuYy0zOTktXFx0fVxcbi0tXFxubW0vaHVnZV9tZW1vcnkuYz02MTI9c3RhdGljIHNzaXplX3QgYW5vbl9lbmFibGVkX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLFxcbi0tXFxubW0vaHVnZV9tZW1vcnkuYy02MzMtXFx0XFx0ICovXFxubW0vaHVnZV9tZW1vcnkuYzo2MzQ6XFx0XFx0c2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcygpO1xcbm1tL2h1Z2VfbWVtb3J5LmMtNjM1LVxcdH1cXG4tLVxcbm1tL2ludGVybmFsLmg9NzEwPXBtZF90ICptbV9maW5kX3BtZChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzKTtcXG4tLVxcbm1tL2ludGVybmFsLmgtNzE0LSAqL1xcbm1tL2ludGVybmFsLmg6NzE1OnZvaWQgc2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcyh2b2lkKTtcXG5tbS9pbnRlcm5hbC5oLTcxNi1cXG4tLVxcbm1tL2todWdlcGFnZWQuYz0zMDQ1PXN0YXRpYyBpbnQga2h1Z2VwYWdlZCh2b2lkICpub25lKVxcbi0tXFxubW0va2h1Z2VwYWdlZC5jLTMwNjUtXFxubW0va2h1Z2VwYWdlZC5jOjMwNjY6dm9pZCBzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzKHZvaWQpXFxubW0va2h1Z2VwYWdlZC5jLTMwNjcte1xcbi0tXFxubW0va2h1Z2VwYWdlZC5jPTMxMjE9aW50IHN0YXJ0X3N0b3Bfa2h1Z2VwYWdlZCh2b2lkKVxcbi0tXFxubW0va2h1Z2VwYWdlZC5jLTMxNDItXFx0fVxcbm1tL2todWdlcGFnZWQuYzozMTQzOlxcdHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXMoKTtcXG5tbS9raHVnZXBhZ2VkLmMtMzE0NC1mYWlsOlxcbi0tXFxubW0va2h1Z2VwYWdlZC5jPTMxNDk9dm9pZCBraHVnZXBhZ2VkX21pbl9mcmVlX2tieXRlc191cGRhdGUodm9pZClcXG4tLVxcbm1tL2todWdlcGFnZWQuYy0zMTUyLVxcdGlmIChodWdlcGFnZV9lbmFibGVkKCkgXFx1MDAyNlxcdTAwMjYga2h1Z2VwYWdlZF90aHJlYWQpXFxubW0va2h1Z2VwYWdlZC5jOjMxNTM6XFx0XFx0c2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcygpO1xcbm1tL2todWdlcGFnZWQuYy0zMTU0LVxcdG11dGV4X3VubG9jayhcXHUwMDI2a2h1Z2VwYWdlZF9tdXRleCk7XFxuLS1cXG5tbS9zaG1lbS5jPTU1NDc9c3RhdGljIHNzaXplX3QgdGhwc2l6ZV9zaG1lbV9lbmFibGVkX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLFxcbi0tXFxubW0vc2htZW0uYy01NTcyLVxcdFxcdCAqL1xcbm1tL3NobWVtLmM6NTU3MzpcXHRcXHRzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzKCk7XFxubW0vc2htZW0uYy01NTc0LVxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MjA6MDIuNjg5NzUyNzA3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzUyMjE1NDE2MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHVuZGVyc3RhbmRpbmcsIGNvbnNpZGVyaW5nIEknbSBkZWVwbHkgZmFtaWxpYXIgd2l0aCB0aGlzIGtlcm5lbCBzdWJzeXN0ZW0uXG5cbioqSW52ZXN0aWdhdGluZyBraHVnZXBhZ2VkIENhbGwgUGF0aHMgYW5kIENvbmZpZ3VyYXRpb24qKlxuXG5SaWdodCwgc28gdGhpcyBmdW5jdGlvbiwgd2hhdGV2ZXIgaXQgaXMsIGlzIGNsZWFybHkgcHJldHR5IGZ1bmRhbWVudGFsIHRvIHRoZSBga2h1Z2VwYWdlZGAgcHJvY2Vzcy4gVGhlIGNhbGwgZ3JhcGggaW5kaWNhdGVzIGl0J3MgdHJpZ2dlcmVkIGZyb20gc2V2ZXJhbCBwbGFjZXMgd2l0aGluIHRoZSBgc3lzZnNgIGludGVyZmFjZSDigJMgbG9va2luZyBhdCB0aGluZ3MgbGlrZSB0aGUgYGVuYWJsZWRfc3RvcmVgLCBgYW5vbl9lbmFibGVkX3N0b3JlYCwgYW5kIGB0aHBzaXplX3NobWVtX2VuYWJsZWRfc3RvcmVgIGZpbGVzLiBNYWtlcyBzZW5zZTsgdGhlc2UgYXJlIHRoZSB1c2VyLXNwYWNlIGNvbnRyb2xzIHdlJ2QgZXhwZWN0IGZvciB0dW5pbmcgaHVnZSBwYWdlIGJlaGF2aW9yLiBBbmQsIG5hdHVyYWxseSwgaXQncyBhbHNvIGNhbGxlZCBieSBgc3RhcnRfc3RvcF9raHVnZXBhZ2VkYCBhbmQgYGtodWdlcGFnZWRfbWluX2ZyZWVfa2J5dGVzX3VwZGF0ZWAuIFNvIHRoZSBlbnRyeSBwb2ludCBpcyBjbGVhcmx5IHJlYWNoYWJsZSBhbmQgZnVuY3Rpb25pbmcuXG5cbkdpdmVuIGl0cyByZWFjaCwgaXQgbWFrZXMgc2Vuc2UgdG8gY29uZmlybSBga2h1Z2VwYWdlZGAncyBjb25maWd1cmF0aW9uLiBJJ20gZ29pbmcgdG8gd2FudCB0byB2ZXJpZnkgdGhlIHJlbGV2YW50IGNvbmZpZyBvcHRpb25zIHRoYXQgZGlyZWN0bHkgaW5mbHVlbmNlIGh1Z2UgcGFnZSBiZWhhdmlvci5cblxuXG4iLCJJbnB1dFRva2VucyI6MzMzNCwiT3V0cHV0VG9rZW5zIjoyNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjIwOjA2LjIxMTkxMTQ3OVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDM2ODI1MzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwia2h1Z2VwYWdlZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJtbS9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS9NYWtlZmlsZT0xMDA9b2JqLSQoQ09ORklHX0RFVklDRV9NSUdSQVRJT04pICs9IG1pZ3JhdGVfZGV2aWNlLm9cXG5tbS9NYWtlZmlsZToxMDE6b2JqLSQoQ09ORklHX1RSQU5TUEFSRU5UX0hVR0VQQUdFKSArPSBodWdlX21lbW9yeS5vIGtodWdlcGFnZWQub1xcbm1tL01ha2VmaWxlLTEwMi1vYmotJChDT05GSUdfUEFHRV9DT1VOVEVSKSArPSBwYWdlX2NvdW50ZXIub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjoyMDowNi40NTU1OTk5NjZaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNTg2MDU5NzA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBpdCB3ZXJlIG15IG93bjpcblxuKipJbnZlc3RpZ2F0aW5nIE1lbW9yeSBBbGxvY2F0aW9uIFN0cmF0ZWdpZXMqKlxuXG5Pa2F5LCBzbyB0aGUgY29uZmlndXJhdGlvbiBpcyBjdXJyZW50bHkgc2V0IHRvIGBUUkFOU1BBUkVOVF9IVUdFUEFHRWAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBwYXVzZSBhbmQgY29uZmlybSB0aGF0J3MgdGhlIG9ubHkgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBpbiBwbGF5LCByZWxhdGVkIHRvIG1lbW9yeSBtYW5hZ2VtZW50LiBUaGVyZSBjb3VsZCBiZSBvdGhlciBmYWN0b3JzIGludm9sdmVkLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEknbSBub3QgbWlzc2luZyBzb21lIG90aGVyIHBvdGVudGlhbGx5IHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zLiBUaGVyZSBhcmUgb2Z0ZW4gb3RoZXIgYXNwZWN0cyB0byBjb25zaWRlciBiZXlvbmQgdGhlIG9idmlvdXMsIHNvIGl0J3MgYmVzdCB0byBiZSBjb21wcmVoZW5zaXZlIHdoZW4gYW5hbHl6aW5nIHRoaXMgdHlwZSBvZiBzeXN0ZW0gYmVoYXZpb3IuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3NTcsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjoyMDowOS4wNDE2NjE4NTFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE0MTgzMjU4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBUUkFOU1BBUkVOVF9IVUdFUEFHRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJtbS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm1tL0tjb25maWc9ODI5PWNvbmZpZyBNTV9JRFxcbi0tXFxubW0vS2NvbmZpZy04MzEtXFxubW0vS2NvbmZpZzo4MzI6bWVudWNvbmZpZyBUUkFOU1BBUkVOVF9IVUdFUEFHRVxcbm1tL0tjb25maWctODMzLVxcdGJvb2wgXFxcIlRyYW5zcGFyZW50IEh1Z2VwYWdlIFN1cHBvcnRcXFwiXFxuLS1cXG5tbS9LY29uZmlnPTg1MD1jaG9pY2VcXG4tLVxcbm1tL0tjb25maWctODU1LVxcbm1tL0tjb25maWc6ODU2OlxcdGNvbmZpZyBUUkFOU1BBUkVOVF9IVUdFUEFHRV9BTFdBWVNcXG5tbS9LY29uZmlnLTg1Ny1cXHRcXHRib29sIFxcXCJhbHdheXNcXFwiXFxuLS1cXG5tbS9LY29uZmlnLTg2Mi1cXG5tbS9LY29uZmlnOjg2MzpcXHRjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VfTUFEVklTRVxcbm1tL0tjb25maWctODY0LVxcdFxcdGJvb2wgXFxcIm1hZHZpc2VcXFwiXFxuLS1cXG5tbS9LY29uZmlnLTg3MS1cXG5tbS9LY29uZmlnOjg3MjpcXHRjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VfTkVWRVJcXG5tbS9LY29uZmlnLTg3My1cXHRcXHRib29sIFxcXCJuZXZlclxcXCJcXG4tLVxcbm1tL0tjb25maWc9ODc5PWNob2ljZVxcbi0tXFxubW0vS2NvbmZpZy04ODgtXFxubW0vS2NvbmZpZzo4ODk6XFx0Y29uZmlnIFRSQU5TUEFSRU5UX0hVR0VQQUdFX1NITUVNX0hVR0VfTkVWRVJcXG5tbS9LY29uZmlnLTg5MC1cXHRcXHRib29sIFxcXCJuZXZlclxcXCJcXG4tLVxcbm1tL0tjb25maWctODk4LVxcbm1tL0tjb25maWc6ODk5OlxcdGNvbmZpZyBUUkFOU1BBUkVOVF9IVUdFUEFHRV9TSE1FTV9IVUdFX0FMV0FZU1xcbm1tL0tjb25maWctOTAwLVxcdFxcdGJvb2wgXFxcImFsd2F5c1xcXCJcXG4tLVxcbm1tL0tjb25maWctOTA2LVxcbm1tL0tjb25maWc6OTA3OlxcdGNvbmZpZyBUUkFOU1BBUkVOVF9IVUdFUEFHRV9TSE1FTV9IVUdFX1dJVEhJTl9TSVpFXFxubW0vS2NvbmZpZy05MDgtXFx0XFx0Ym9vbCBcXFwid2l0aGluX3NpemVcXFwiXFxuLS1cXG5tbS9LY29uZmlnLTkxNC1cXG5tbS9LY29uZmlnOjkxNTpcXHRjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VfU0hNRU1fSFVHRV9BRFZJU0VcXG5tbS9LY29uZmlnLTkxNi1cXHRcXHRib29sIFxcXCJhZHZpc2VcXFwiXFxuLS1cXG5tbS9LY29uZmlnPTkyND1jaG9pY2VcXG4tLVxcbm1tL0tjb25maWctOTMzLVxcbm1tL0tjb25maWc6OTM0OlxcdGNvbmZpZyBUUkFOU1BBUkVOVF9IVUdFUEFHRV9UTVBGU19IVUdFX05FVkVSXFxubW0vS2NvbmZpZy05MzUtXFx0XFx0Ym9vbCBcXFwibmV2ZXJcXFwiXFxuLS1cXG5tbS9LY29uZmlnLTk0Mi1cXG5tbS9LY29uZmlnOjk0MzpcXHRjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VfVE1QRlNfSFVHRV9BTFdBWVNcXG5tbS9LY29uZmlnLTk0NC1cXHRcXHRib29sIFxcXCJhbHdheXNcXFwiXFxuLS1cXG5tbS9LY29uZmlnLTk1MC1cXG5tbS9LY29uZmlnOjk1MTpcXHRjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VfVE1QRlNfSFVHRV9XSVRISU5fU0laRVxcbm1tL0tjb25maWctOTUyLVxcdFxcdGJvb2wgXFxcIndpdGhpbl9zaXplXFxcIlxcbi0tXFxubW0vS2NvbmZpZy05NTgtXFxubW0vS2NvbmZpZzo5NTk6XFx0Y29uZmlnIFRSQU5TUEFSRU5UX0hVR0VQQUdFX1RNUEZTX0hVR0VfQURWSVNFXFxubW0vS2NvbmZpZy05NjAtXFx0XFx0Ym9vbCBcXFwiYWR2aXNlXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjoyMDowOS4xNTU4NTI3MjlaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTEwODI4Nzg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgYHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXNgOiBBIFF1aWNrIEFzc2Vzc21lbnQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgc2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlc2AgYW5kIHRoaW5raW5nIGFib3V0IGl0cyBmdXp6aW5nIHBvdGVudGlhbC4gSXQgc2VlbXMgbGlrZSBpdCdzIHByaW1hcmlseSBkcml2ZW4gYnkgd3JpdGVzIHRvIGAvc3lzL2tlcm5lbC9tbS90cmFuc3BhcmVudF9odWdlcGFnZS9lbmFibGVkYCBhbmQgcmVsYXRlZCBzeXNmcyBlbnRyaWVzLiBUaGUgcXVlc3Rpb24gaXMsIGlzIHRoaXMgYSB3b3J0aHdoaWxlIHRhcmdldD8gWWVzLCBpdCBpcywgYmVjYXVzZSB0aGlzIGRpcmVjdGx5IGltcGFjdHMgbWVtb3J5IG1hbmFnZW1lbnQgZnVuY3Rpb25hbGl0eS5cblxuSSdtIHplcm9pbmcgaW4gb24gYSBmZXcga2V5IHN5bWJvbHM6IGBzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzYCwgYGtodWdlcGFnZWRfbWluX2ZyZWVfa2J5dGVzX3VwZGF0ZWAsIGFuZCBgc3RhcnRfc3RvcF9raHVnZXBhZ2VkYC4gSSBuZWVkIHRvIGNvbmZpcm0gaWYgYW55IG9mIHRoZW0gYXJlIHN0YXRpYzsgSSdtIHByZXR0eSBzdXJlIG5vbmUgYXJlLCBzbyBsZXQgbWUganVzdCBjaGVjay4gT2theSwgbm9uZSBvZiB0aGVtIGFyZSBzdGF0aWMsIGFzIEkgdGhvdWdodC5cblxuSG9sZCBvbi4uLiBgc2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlc2AgaXMgYWN0dWFsbHkgcXVpdGUgYSBzbWFsbCBmdW5jdGlvbi4gSXQncyByZWFsbHkganVzdCBjYWxjdWxhdGluZyBhIHZhbHVlIGFuZCB0aGVuIHNldHRpbmcgYG1pbl9mcmVlX2tieXRlc2AuIEl0cyBmdW5jdGlvbmFsIG5hdHVyZSBpcyBjbGVhci4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJ20gdGFyZ2V0aW5nIHRoZSBpbXBsZW1lbnRhdGlvbiwgd2hpY2ggc2hvdWxkIGJlIGluIGBtbS9raHVnZXBhZ2VkLmNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NjQ0LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjIwOjEzLjY2NjY4NDczOFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzgyNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibW0va2h1Z2VwYWdlZC5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDMwOTAsXG4gIFwiTGluZUNvdW50XCI6IDMwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjMwOTA6XFx0XFxuMzA5MTpcXHRcXHQvKlxcbjMwOTI6XFx0XFx0ICogTWFrZSBzdXJlIHRoYXQgb24gYXZlcmFnZSBhdCBsZWFzdCB0d28gcGFnZWJsb2NrcyBhcmUgYWxtb3N0IGZyZWVcXG4zMDkzOlxcdFxcdCAqIG9mIGFub3RoZXIgdHlwZSwgb25lIGZvciBhIG1pZ3JhdGV0eXBlIHRvIGZhbGwgYmFjayB0byBhbmQgYVxcbjMwOTQ6XFx0XFx0ICogc2Vjb25kIHRvIGF2b2lkIHN1YnNlcXVlbnQgZmFsbGJhY2tzIG9mIG90aGVyIHR5cGVzIFRoZXJlIGFyZSAzXFxuMzA5NTpcXHRcXHQgKiBNSUdSQVRFX1RZUEVTIHdlIGNhcmUgYWJvdXQuXFxuMzA5NjpcXHRcXHQgKi9cXG4zMDk3OlxcdFxcdHJlY29tbWVuZGVkX21pbiArPSBwYWdlYmxvY2tfbnJfcGFnZXMgKiBucl96b25lcyAqXFxuMzA5ODpcXHRcXHRcXHRcXHQgICBNSUdSQVRFX1BDUFRZUEVTICogTUlHUkFURV9QQ1BUWVBFUztcXG4zMDk5OlxcdFxcbjMxMDA6XFx0XFx0LypcXG4zMTAxOlxcdFxcdCAqIERvbid0IGV2ZXIgYWxsb3cgdG8gcmVzZXJ2ZSBtb3JlIHRoYW4gNSUgb2YgbG93bWVtIG9yIDEgR2lCLFxcbjMxMDI6XFx0XFx0ICogd2hpY2hldmVyIGlzIHNtYWxsZXIuXFxuMzEwMzpcXHRcXHQgKi9cXG4zMTA0OlxcdFxcdHJlY29tbWVuZGVkX21pbiA9IG1pbihyZWNvbW1lbmRlZF9taW4sXFxuMzEwNTpcXHRcXHRcXHRcXHQgICAgICAodW5zaWduZWQgbG9uZykgbnJfZnJlZV9idWZmZXJfcGFnZXMoKSAvIDIwKTtcXG4zMTA2OlxcdFxcdHJlY29tbWVuZGVkX21pbiA9IG1pbihyZWNvbW1lbmRlZF9taW4sIFNaXzFHIC8gUEFHRV9TSVpFKTtcXG4zMTA3OlxcdFxcdHJlY29tbWVuZGVkX21pbiBcXHUwMDNjXFx1MDAzYz0gKFBBR0VfU0hJRlQtMTApO1xcbjMxMDg6XFx0XFxuMzEwOTpcXHRcXHRpZiAocmVjb21tZW5kZWRfbWluIFxcdTAwM2UgbWluX2ZyZWVfa2J5dGVzKSB7XFxuMzExMDpcXHRcXHRcXHRpZiAodXNlcl9taW5fZnJlZV9rYnl0ZXMgXFx1MDAzZT0gMClcXG4zMTExOlxcdFxcdFxcdFxcdHByX2luZm9fcmF0ZWxpbWl0ZWQoXFxcInJhaXNpbmcgbWluX2ZyZWVfa2J5dGVzIGZyb20gJWQgdG8gJWx1IHRvIGhlbHAgdHJhbnNwYXJlbnQgaHVnZXBhZ2UgYWxsb2NhdGlvbnNcXFxcblxcXCIsXFxuMzExMjpcXHRcXHRcXHRcXHRcXHRcXHQgICAgbWluX2ZyZWVfa2J5dGVzLCByZWNvbW1lbmRlZF9taW4pO1xcbjMxMTM6XFx0XFxuMzExNDpcXHRcXHRcXHRtaW5fZnJlZV9rYnl0ZXMgPSByZWNvbW1lbmRlZF9taW47XFxuMzExNTpcXHRcXHR9XFxuMzExNjpcXHRcXG4zMTE3OlxcdHVwZGF0ZV93bWFya3M6XFxuMzExODpcXHRcXHRzZXR1cF9wZXJfem9uZV93bWFya3MoKTtcXG4zMTE5OlxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MjA6MTMuNjY2OTY3OTc4WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5NzUyNTU4NTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQ2hlY2tpbmcgdGhlIENvbmZpZyBhbmQgRm9jdXMqKlxuXG5Pa2F5LCBzbyB0aGlzIGNvbmZpZ3VyYXRpb24gc2VlbXMgZnVuY3Rpb25hbDsgZ29vZC4gTGV0IG1lIHNlZS4uLiBgRW5hYmxlQ29uZmlnc2AgY29udGFpbnMgYFRSQU5TUEFSRU5UX0hVR0VQQUdFYCwgYW5kIHRoZSBgRm9jdXNTeW1ib2xzYCBhcmUgc2V0IHRvIGBzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzYC4gTm93LCBiZWZvcmUgSSBwcm9jZWVkIGZ1cnRoZXIsIEkgd2FudCB0byBtYWtlIGFic29sdXRlbHkgY2VydGFpbiB0aGF0IGBUUkFOU1BBUkVOVF9IVUdFUEFHRWAgaXNuJ3QgcmVsaWFudCBvbiBzb21lIG90aGVyLCB1bmRlcmx5aW5nIGNvbmZpZ3VyYXRpb24gb3IgZmVhdHVyZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGRlcGVuZGVuY2llcyB0aG9yb3VnaGx5LiBCZXN0IHRvIGJlIHNhZmUgdGhhbiBzb3JyeSwgZXNwZWNpYWxseSB3aGVuIHdlIGFyZSB0YWxraW5nIGFib3V0IG1lbW9yeSBtYW5hZ2VtZW50IVxuXG5cbiIsIklucHV0VG9rZW5zIjo1NzA3LCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTgsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjoyMDoxNi42NDIyMjY3OTdaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNDIzNzY5OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtZW51Y29uZmlnIFRSQU5TUEFSRU5UX0hVR0VQQUdFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm1tL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibW0vS2NvbmZpZz04Mjk9Y29uZmlnIE1NX0lEXFxuLS1cXG5tbS9LY29uZmlnLTgzMS1cXG5tbS9LY29uZmlnOjgzMjptZW51Y29uZmlnIFRSQU5TUEFSRU5UX0hVR0VQQUdFXFxubW0vS2NvbmZpZy04MzMtXFx0Ym9vbCBcXFwiVHJhbnNwYXJlbnQgSHVnZXBhZ2UgU3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MjA6MTYuNzU2NDcwODc2WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyOTkwODQ3NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqQW5hbHl6aW5nIHRoZSBEZXBlbmRlbmNpZXMqKlxuXG5BbHJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gTXkgaW5pdGlhbCB0aG91Z2h0IHByb2Nlc3MgaXMgYWx3YXlzIHRvIHN0YXJ0IGJ5IG1hcHBpbmcgb3V0IHRoZSBkZXBlbmRlbmNpZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbnRlcmNvbm5lY3RlZG5lc3Mgb2YgYWxsIHRoZSBjb21wb25lbnRzIGF0IHBsYXkgaGVyZS4gVGhpcyBpc24ndCBqdXN0IGFib3V0IGlkZW50aWZ5aW5nIHRoZSBkaXJlY3QgcmVsYXRpb25zaGlwczsgSSdtIGRpZ2dpbmcgZGVlcGVyIHRvIHVuY292ZXIgdGhlIGhpZGRlbiBpbXBsaWNhdGlvbnMuIEknbSBsb29raW5nIGZvciB0aGUgcmlwcGxlIGVmZmVjdHMg4oCTIGhvdyBjaGFuZ2VzIGluIG9uZSBhcmVhIHdpbGwgaW5ldml0YWJseSBjYXNjYWRlIGFuZCBpbmZsdWVuY2Ugb3RoZXJzLiBBcmUgdGhlcmUgYW55IGNpcmN1bGFyIGRlcGVuZGVuY2llcyB0aGF0IGNvdWxkIGxlYWQgdG8gZGVhZGxvY2tzIG9yIHVuZXhwZWN0ZWQgYmVoYXZpb3I/IEkgbmVlZCB0byBidWlsZCBhIGNvbXByZWhlbnNpdmUgZGVwZW5kZW5jeSBncmFwaCwgd2hldGhlciBpdCdzIGltcGxpY2l0bHkgaW4gbXkgaGVhZCBvciBza2V0Y2hlZCBvdXQgb24gYSB3aGl0ZWJvYXJkLiBUaGlzIGlzbid0IGp1c3QgYSBjYXN1YWwgb3ZlcnZpZXc7IGl0J3MgYSBkZWVwIGRpdmUgaW50byB0aGUgYXJjaGl0ZWN0dXJlLiBJ4oCZbSB0aGlua2luZyBhYm91dCBub3Qgb25seSB0aGUgY3VycmVudCBzdGF0ZSBidXQgdGhlIGZ1dHVyZSBhcyB3ZWxsLiBJJ20gY29uc2lkZXJpbmcgcG90ZW50aWFsIGNoYW5nZXMsIHVwZ3JhZGVzLCBhbmQgaW50ZWdyYXRpb25zLiBBbnkgbmV3IGVsZW1lbnQgd2lsbCBuZWVkIHRvIGJlIGNoZWNrZWQgYWdhaW5zdCB0aGUgZXhpc3RpbmcgZGVwZW5kZW5jaWVzLiBJIGFtIGhvcGluZyB0byBnZXQgdG8gdGhlIGNvcmUgb2YgdGhlIHByb2JsZW0gYW5kIHByZXZlbnQgYW55IGlzc3VlcyBiZWZvcmUgdGhleSBtYW5pZmVzdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTk5MywiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MjA6MjAuMDU1NTU5NDAxWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1MzU2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJtbS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDgzMCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDgzMDpcXHRcXHRkZWZfYm9vbCBuXFxuIDgzMTpcXHRcXG4gODMyOlxcdG1lbnVjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VcXG4gODMzOlxcdFxcdGJvb2wgXFxcIlRyYW5zcGFyZW50IEh1Z2VwYWdlIFN1cHBvcnRcXFwiXFxuIDgzNDpcXHRcXHRkZXBlbmRzIG9uIEhBVkVfQVJDSF9UUkFOU1BBUkVOVF9IVUdFUEFHRSBcXHUwMDI2XFx1MDAyNiAhUFJFRU1QVF9SVFxcbiA4MzU6XFx0XFx0c2VsZWN0IENPTVBBQ1RJT05cXG4gODM2OlxcdFxcdHNlbGVjdCBYQVJSQVlfTVVMVElcXG4gODM3OlxcdFxcdHNlbGVjdCBNTV9JRFxcbiA4Mzg6XFx0XFx0aGVscFxcbiA4Mzk6XFx0XFx0ICBUcmFuc3BhcmVudCBIdWdlcGFnZXMgYWxsb3dzIHRoZSBrZXJuZWwgdG8gdXNlIGh1Z2UgcGFnZXMgYW5kXFxuIDg0MDpcXHRcXHQgIGh1Z2UgdGxiIHRyYW5zcGFyZW50bHkgdG8gdGhlIGFwcGxpY2F0aW9ucyB3aGVuZXZlciBwb3NzaWJsZS5cXG4gODQxOlxcdFxcdCAgVGhpcyBmZWF0dXJlIGNhbiBpbXByb3ZlIGNvbXB1dGluZyBwZXJmb3JtYW5jZSB0byBjZXJ0YWluXFxuIDg0MjpcXHRcXHQgIGFwcGxpY2F0aW9ucyBieSBzcGVlZGluZyB1cCBwYWdlIGZhdWx0cyBkdXJpbmcgbWVtb3J5XFxuIDg0MzpcXHRcXHQgIGFsbG9jYXRpb24sIGJ5IHJlZHVjaW5nIHRoZSBudW1iZXIgb2YgdGxiIG1pc3NlcyBhbmQgYnkgc3BlZWRpbmdcXG4gODQ0OlxcdFxcdCAgdXAgdGhlIHBhZ2V0YWJsZSB3YWxraW5nLlxcbiA4NDU6XFx0XFxuIDg0NjpcXHRcXHQgIElmIG1lbW9yeSBjb25zdHJhaW5lZCBvbiBlbWJlZGRlZCwgeW91IG1heSB3YW50IHRvIHNheSBOLlxcbiA4NDc6XFx0XFxuIDg0ODpcXHRpZiBUUkFOU1BBUkVOVF9IVUdFUEFHRVxcbiA4NDk6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjIwOjIwLjA1NTcxNTUwMVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NzA1OTk2NDI2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdC5cblxuKipNeSBBbmFseXNpcyBvZiBIdWdlIFBhZ2UgQ29uZmlndXJhdGlvbioqXG5cblJpZ2h0LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIGltbWVkaWF0ZWx5IEkgc2VlIGl0J3MgYWxsIGFib3V0IGhvdyB3ZSdyZSBkZWFsaW5nIHdpdGggdHJhbnNwYXJlbnQgaHVnZSBwYWdlcy4gSXQncyBjb25kaXRpb25hbGx5IGNvbXBpbGVkIGJhc2VkIG9uIGBIQVZFX0FSQ0hfVFJBTlNQQVJFTlRfSFVHRVBBR0VgIGFuZCwgY3JpdGljYWxseSwgdGhlIGFic2VuY2Ugb2YgYFBSRUVNUFRfUlRgLiBUaGlzIG1lYW5zIHRoZXJlJ3MgYSBkZXBlbmRlbmN5IG9uIHRoZSBhcmNoaXRlY3R1cmUncyBzdXBwb3J0IGZvciB0cmFuc3BhcmVudCBodWdlcGFnZXMsIGFuZCBob3cgcmVhbC10aW1lIHByZWVtcHRpb24gaXMgaGFuZGxlZC4gQSBjbGFzc2ljIHNldCB1cCFcblxuRnJvbSB0aGUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24sIEkgdW5kZXJzdGFuZCB0aGF0IGBUUkFOU1BBUkVOVF9IVUdFUEFHRWAgaXMgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgdGhhdCBkcml2ZXMgdGhlIGJlaGF2aW9yIGhlcmUuIFNvLCB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIGZvciBteSBhbmFseXNpcyBpcyBgVFJBTlNQQVJFTlRfSFVHRVBBR0VgLiBJIGhhdmUgdG8ga2VlcCB0aGF0IGluIG1pbmQuXG5cbkJhc2VkIG9uIHRoYXQsIEknbSB0aGlua2luZyBJIG5lZWQgdG8gZmxhZyBpdCBhcyBzb21ldGhpbmcgdGhhdCdzIHBvdGVudGlhbGx5IFwiV29ydGhGdXp6aW5nXCIuIEZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLCB0aGlzIG1ha2VzIHNlbnNlIGJlY2F1c2UgY2hhbmdlcyB0byBgVFJBTlNQQVJFTlRfSFVHRVBBR0VgIGNhbiBpbXBhY3QgbWVtb3J5IG1hbmFnZW1lbnQsIGFuZCB0aG9zZSBhcmUgYWx3YXlzIGludGVyZXN0aW5nIGFyZWFzIHRvIHRlc3QuIEl0IHByb2JhYmx5IHRvdWNoZXMgYSBsb3Qgb2Ygb3RoZXIgYXJlYXMgaW4gdGhlIGtlcm5lbCwgYW5kIHRoZSBpbnRlcmFjdGlvbiBvZiBgVFJBTlNQQVJFTlRfSFVHRVBBR0VgIHdpdGggYEhBVkVfQVJDSF9UUkFOU1BBUkVOVF9IVUdFUEFHRWAgc2hvdWxkIGJlIGNvbnNpZGVyZWQuXG5cblRoZXJlZm9yZSwgZm9yIHRoZSBmdXp6aW5nLCBJJ2xsIHJldHVybiBgV29ydGhGdXp6aW5nPXRydWVgLiBJIHdpbGwgYWxzbyB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgZnV6emluZyBjb25maWd1cmF0aW9uIGVuYWJsZXMgYFRSQU5TUEFSRU5UX0hVR0VQQUdFYCwgc28gSSBuZWVkIHRvIHNldCBgRW5hYmxlQ29uZmlncz1bXCJUUkFOU1BBUkVOVF9IVUdFUEFHRVwiXWAuXG5cbkZpbmFsbHksIGZvciB0aGUgc3BlY2lmaWMgZnVuY3Rpb24sIGl0IGxvb2tzIGxpa2UgYHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXNgIGlzIGdvaW5nIHRvIGJlIGEga2V5IGFyZWEgdG8gbW9uaXRvciwgc28gSSdsbCBpbmNsdWRlIHRoYXQgaW4gYEZvY3VzU3ltYm9scz1bXCJzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzXCJdYCB0byBnZXQgZ3JhbnVsYXIgY292ZXJhZ2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY1NTksIk91dHB1dFRva2VucyI6MTA2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzksIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjoyMDoyNC43NjE3MTU2OTdaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzc0MjE2MDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRSQU5TUEFSRU5UX0hVR0VQQUdFXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjYWxjdWxhdGlvbiBvZiByZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXMgZm9yIGtodWdlcGFnZWQsIGFkZGluZyBhIDEgR2lCIGNhcC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB0cmFuc3BhcmVudCBodWdlcGFnZSBtZW1vcnkgbWFuYWdlbWVudCBsb2dpYywgcmVhY2hhYmxlIHZpYSBzeXNmcyB3cml0ZXMgb3IgbWVtb3J5IGhvdHBsdWcgZXZlbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRSQU5TUEFSRU5UX0hVR0VQQUdFXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjYWxjdWxhdGlvbiBvZiByZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXMgZm9yIGtodWdlcGFnZWQsIGFkZGluZyBhIDEgR2lCIGNhcC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB0cmFuc3BhcmVudCBodWdlcGFnZSBtZW1vcnkgbWFuYWdlbWVudCBsb2dpYywgcmVhY2hhYmxlIHZpYSBzeXNmcyB3cml0ZXMgb3IgbWVtb3J5IGhvdHBsdWcgZXZlbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowjk69s[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-30 01:59:52 +0000 UTC FinishedAt: 2026-07-30 02:20:25 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "a75ba6838481e8e81dd1becbd7c89133d406cd8c", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TRANSPARENT_HUGEPAGE" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "a75ba6838481e8e81dd1becbd7c89133d406cd8c", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TRANSPARENT_HUGEPAGE" ], "series_id": "c116704e-ef7d-43dd-9125-ff8edc7c1782" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "set_recommended_min_free_kbytes" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": true, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjE5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RSQU5TUEFSRU5UX0hVR0VQQUdFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY2FsY3VsYXRpb24gb2YgcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzIGZvciBraHVnZXBhZ2VkLCBhZGRpbmcgYSAxIEdpQiBjYXAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgdHJhbnNwYXJlbnQgaHVnZXBhZ2UgbWVtb3J5IG1hbmFnZW1lbnQgbG9naWMsIHJlYWNoYWJsZSB2aWEgc3lzZnMgd3JpdGVzIG9yIG1lbW9yeSBob3RwbHVnIGV2ZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjoxOTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQ2ZWI0YmM0YjRlYjNhODJhZWFlYWQzY2Y3ZjBjMjgxYWY3NzQwNjVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAzMCAwMjoxOTo1MiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9tbS9raHVnZXBhZ2VkLmMgYi9tbS9raHVnZXBhZ2VkLmNcbmluZGV4IDI3ZThmMzA3N2U4MGYuLmQ5Y2FmMTBlMDViNTEgMTAwNjQ0XG4tLS0gYS9tbS9raHVnZXBhZ2VkLmNcbiYjNDM7JiM0MzsmIzQzOyBiL21tL2todWdlcGFnZWQuY1xuQEAgLTIzLDYgJiM0MzsyMyw3IEBAXG4gI2luY2x1ZGUgXHUwMDNjbGludXgva3NtLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9wZ2FsbG9jLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9iYWNraW5nLWRldi5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L3NpemVzLmhcdTAwM2VcbiBcbiAjaW5jbHVkZSBcdTAwM2Nhc20vdGxiLmhcdTAwM2VcbiAjaW5jbHVkZSBcJiMzNDtpbnRlcm5hbC5oXCYjMzQ7XG5AQCAtMzA5Niw5ICYjNDM7MzA5NywxMyBAQCB2b2lkIHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXModm9pZClcbiBcdHJlY29tbWVuZGVkX21pbiAmIzQzOz0gcGFnZWJsb2NrX25yX3BhZ2VzICogbnJfem9uZXMgKlxuIFx0XHRcdCAgIE1JR1JBVEVfUENQVFlQRVMgKiBNSUdSQVRFX1BDUFRZUEVTO1xuIFxuLVx0LyogZG9uJiMzOTt0IGV2ZXIgYWxsb3cgdG8gcmVzZXJ2ZSBtb3JlIHRoYW4gNSUgb2YgdGhlIGxvd21lbSAqL1xuJiM0MztcdC8qXG4mIzQzO1x0ICogRG9uJiMzOTt0IGV2ZXIgYWxsb3cgdG8gcmVzZXJ2ZSBtb3JlIHRoYW4gNSUgb2YgbG93bWVtIG9yIDEgR2lCLFxuJiM0MztcdCAqIHdoaWNoZXZlciBpcyBzbWFsbGVyLlxuJiM0MztcdCAqL1xuIFx0cmVjb21tZW5kZWRfbWluID0gbWluKHJlY29tbWVuZGVkX21pbixcbiBcdFx0XHQgICAgICAodW5zaWduZWQgbG9uZykgbnJfZnJlZV9idWZmZXJfcGFnZXMoKSAvIDIwKTtcbiYjNDM7XHRyZWNvbW1lbmRlZF9taW4gPSBtaW4ocmVjb21tZW5kZWRfbWluLCBTWl8xRyAvIFBBR0VfU0laRSk7XG4gXHRyZWNvbW1lbmRlZF9taW4gXHUwMDNjXHUwMDNjPSAoUEFHRV9TSElGVC0xMCk7XG4gXG4gXHRpZiAocmVjb21tZW5kZWRfbWluIFx1MDAzZSBtaW5fZnJlZV9rYnl0ZXMpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjoxOTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VFJBTlNQQVJFTlRfSFVHRVBBR0UmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjYWxjdWxhdGlvbiBvZiByZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXMgZm9yIGtodWdlcGFnZWQsIGFkZGluZyBhIDEgR2lCIGNhcC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB0cmFuc3BhcmVudCBodWdlcGFnZSBtZW1vcnkgbWFuYWdlbWVudCBsb2dpYywgcmVhY2hhYmxlIHZpYSBzeXNmcyB3cml0ZXMgb3IgbWVtb3J5IGhvdHBsdWcgZXZlbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZDZlYjRiYzRiNGViM2E4MmFlYWVhZDNjZjdmMGMyODFhZjc3NDA2NQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDMwIDAyOjE5OjUyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbW0va2h1Z2VwYWdlZC5jIGIvbW0va2h1Z2VwYWdlZC5jCmluZGV4IDI3ZThmMzA3N2U4MGYuLmQ5Y2FmMTBlMDViNTEgMTAwNjQ0Ci0tLSBhL21tL2todWdlcGFnZWQuYwomIzQzOyYjNDM7JiM0MzsgYi9tbS9raHVnZXBhZ2VkLmMKQEAgLTIzLDYgJiM0MzsyMyw3IEBACiAjaW5jbHVkZSAmbHQ7bGludXgva3NtLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvcGdhbGxvYy5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2JhY2tpbmctZGV2LmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L3NpemVzLmgmZ3Q7CiAKICNpbmNsdWRlICZsdDthc20vdGxiLmgmZ3Q7CiAjaW5jbHVkZSAmIzM0O2ludGVybmFsLmgmIzM0OwpAQCAtMzA5Niw5ICYjNDM7MzA5NywxMyBAQCB2b2lkIHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXModm9pZCkKIAlyZWNvbW1lbmRlZF9taW4gJiM0Mzs9IHBhZ2VibG9ja19ucl9wYWdlcyAqIG5yX3pvbmVzICoKIAkJCSAgIE1JR1JBVEVfUENQVFlQRVMgKiBNSUdSQVRFX1BDUFRZUEVTOwogCi0JLyogZG9uJiMzOTt0IGV2ZXIgYWxsb3cgdG8gcmVzZXJ2ZSBtb3JlIHRoYW4gNSUgb2YgdGhlIGxvd21lbSAqLwomIzQzOwkvKgomIzQzOwkgKiBEb24mIzM5O3QgZXZlciBhbGxvdyB0byByZXNlcnZlIG1vcmUgdGhhbiA1JSBvZiBsb3dtZW0gb3IgMSBHaUIsCiYjNDM7CSAqIHdoaWNoZXZlciBpcyBzbWFsbGVyLgomIzQzOwkgKi8KIAlyZWNvbW1lbmRlZF9taW4gPSBtaW4ocmVjb21tZW5kZWRfbWluLAogCQkJICAgICAgKHVuc2lnbmVkIGxvbmcpIG5yX2ZyZWVfYnVmZmVyX3BhZ2VzKCkgLyAyMCk7CiYjNDM7CXJlY29tbWVuZGVkX21pbiA9IG1pbihyZWNvbW1lbmRlZF9taW4sIFNaXzFHIC8gUEFHRV9TSVpFKTsKIAlyZWNvbW1lbmRlZF9taW4gJmx0OyZsdDs9IChQQUdFX1NISUZULTEwKTsKIAogCWlmIChyZWNvbW1lbmRlZF9taW4gJmd0OyBtaW5fZnJlZV9rYnl0ZXMpIHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIxOQoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDE2MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBLZXJuZWwgTWVtb3J5IE1hbmFnZW1lbnQgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgbW0va2h1Z2VwYWdlZC5jYCwgc3BlY2lmaWNhbGx5IHRoZSBgc2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlc2AgZnVuY3Rpb24uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaWd1cmUgb3V0IGlmIHRoaXMgaXMgd29ydGggc3BlbmRpbmcgc29tZSB0aW1lIGZ1enppbmcuIFRoZSBjaGFuZ2UgaXRzZWxmIGlzIGludGVyZXN0aW5nIOKAkyB0aGV5JiMzOTtyZSBwdXR0aW5nIGEgMSBHaUIgY2FwIG9uIGByZWNvbW1lbmRlZF9taW5gLiBUaGlzIGlzIGNsZWFybHkgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIGtlcm5lbCYjMzk7cyBtZW1vcnkgbWFuYWdlbWVudCwgZGVhbGluZyB3aXRoIHRoZSBraHVnZXBhZ2VkIGNvbXBvbmVudC4KCk5vdywgbGV0JiMzOTtzIHRoaW5rIGFib3V0IHRoZSBhdHRhY2sgc3VyZmFjZS4gYHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXNgIGlzIG9ubHkgY2FsbGVkIGR1cmluZyBraHVnZXBhZ2VkIHN0YXJ0dXAgb3Igd2hlbiBkZWFsaW5nIHdpdGggbWVtb3J5IGhvdHBsdWcgZXZlbnRzLiBIbW0sIGlzIHRoaXMgYSBwbGFjZSB3aGVyZSBmdXp6aW5nIGNvdWxkIGJlIGVmZmVjdGl2ZT8gSXQgc2VlbXMgbGlrZSB0aGlzIGZ1bmN0aW9uIHNldHMgdXAgb3IgY29uZmlndXJlcyBraHVnZXBhZ2VkLCBub3Qgc29tZXRoaW5nIGRpcmVjdGx5IGV4cG9zZWQgdG8gdXNlciBpbnB1dC4gU3RpbGwsIGNvbmZpZ3VyYXRpb24gZnVuY3Rpb25zIGNhbiBiZSB0YXJnZXRzLiBUaGUgZ29hbCBpcyB0byBzZWUgaWYgYW55IHN1YnRsZSBjaGFuZ2VzIGNhbiBiZSB0cmlnZ2VyZWQgYnkgZnV6emluZyB0aGUgdmFsdWVzLgoKSSBuZWVkIHRvIHNlZSB3aGVyZSBlbHNlIGBzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzYCBpcyB1c2VkLCBzbyB0aGF0IEkgdW5kZXJzdGFuZCBhbGwgdGhlIHdheXMgaW4gd2hpY2ggdGhpcyBmdW5jdGlvbiBpcyBwb3RlbnRpYWxseSBpbnZva2VkLiBVbmRlcnN0YW5kaW5nIHRoZSBjb250ZXh0IG9mIGl0cyBjYWxscyB3aWxsIGluZm9ybSBteSBkZWNpc2lvbiBhYm91dCBob3cgaW1wb3J0YW50IGl0IGlzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vaHVnZV9tZW1vcnkuYz0zNzc9c3RhdGljIHNzaXplX3QgZW5hYmxlZF9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaixcbi0tXG5tbS9odWdlX21lbW9yeS5jLTM5Ny1cdFx0ICovXG5tbS9odWdlX21lbW9yeS5jOjM5ODpcdFx0c2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcygpO1xubW0vaHVnZV9tZW1vcnkuYy0zOTktXHR9XG4tLVxubW0vaHVnZV9tZW1vcnkuYz02MTI9c3RhdGljIHNzaXplX3QgYW5vbl9lbmFibGVkX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLFxuLS1cbm1tL2h1Z2VfbWVtb3J5LmMtNjMzLVx0XHQgKi9cbm1tL2h1Z2VfbWVtb3J5LmM6NjM0Olx0XHRzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzKCk7XG5tbS9odWdlX21lbW9yeS5jLTYzNS1cdH1cbi0tXG5tbS9pbnRlcm5hbC5oPTcxMD1wbWRfdCAqbW1fZmluZF9wbWQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkcmVzcyk7XG4tLVxubW0vaW50ZXJuYWwuaC03MTQtICovXG5tbS9pbnRlcm5hbC5oOjcxNTp2b2lkIHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXModm9pZCk7XG5tbS9pbnRlcm5hbC5oLTcxNi1cbi0tXG5tbS9raHVnZXBhZ2VkLmM9MzA0NT1zdGF0aWMgaW50IGtodWdlcGFnZWQodm9pZCAqbm9uZSlcbi0tXG5tbS9raHVnZXBhZ2VkLmMtMzA2NS1cbm1tL2todWdlcGFnZWQuYzozMDY2OnZvaWQgc2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcyh2b2lkKVxubW0va2h1Z2VwYWdlZC5jLTMwNjcte1xuLS1cbm1tL2todWdlcGFnZWQuYz0zMTIxPWludCBzdGFydF9zdG9wX2todWdlcGFnZWQodm9pZClcbi0tXG5tbS9raHVnZXBhZ2VkLmMtMzE0Mi1cdH1cbm1tL2todWdlcGFnZWQuYzozMTQzOlx0c2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcygpO1xubW0va2h1Z2VwYWdlZC5jLTMxNDQtZmFpbDpcbi0tXG5tbS9raHVnZXBhZ2VkLmM9MzE0OT12b2lkIGtodWdlcGFnZWRfbWluX2ZyZWVfa2J5dGVzX3VwZGF0ZSh2b2lkKVxuLS1cbm1tL2todWdlcGFnZWQuYy0zMTUyLVx0aWYgKGh1Z2VwYWdlX2VuYWJsZWQoKSBcdTAwMjZcdTAwMjYga2h1Z2VwYWdlZF90aHJlYWQpXG5tbS9raHVnZXBhZ2VkLmM6MzE1MzpcdFx0c2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcygpO1xubW0va2h1Z2VwYWdlZC5jLTMxNTQtXHRtdXRleF91bmxvY2soXHUwMDI2a2h1Z2VwYWdlZF9tdXRleCk7XG4tLVxubW0vc2htZW0uYz01NTQ3PXN0YXRpYyBzc2l6ZV90IHRocHNpemVfc2htZW1fZW5hYmxlZF9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaixcbi0tXG5tbS9zaG1lbS5jLTU1NzItXHRcdCAqL1xubW0vc2htZW0uYzo1NTczOlx0XHRzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzKCk7XG5tbS9zaG1lbS5jLTU1NzQtXHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzMzNAoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDg1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHVuZGVyc3RhbmRpbmcsIGNvbnNpZGVyaW5nIEkmIzM5O20gZGVlcGx5IGZhbWlsaWFyIHdpdGggdGhpcyBrZXJuZWwgc3Vic3lzdGVtLgoKKipJbnZlc3RpZ2F0aW5nIGtodWdlcGFnZWQgQ2FsbCBQYXRocyBhbmQgQ29uZmlndXJhdGlvbioqCgpSaWdodCwgc28gdGhpcyBmdW5jdGlvbiwgd2hhdGV2ZXIgaXQgaXMsIGlzIGNsZWFybHkgcHJldHR5IGZ1bmRhbWVudGFsIHRvIHRoZSBga2h1Z2VwYWdlZGAgcHJvY2Vzcy4gVGhlIGNhbGwgZ3JhcGggaW5kaWNhdGVzIGl0JiMzOTtzIHRyaWdnZXJlZCBmcm9tIHNldmVyYWwgcGxhY2VzIHdpdGhpbiB0aGUgYHN5c2ZzYCBpbnRlcmZhY2Ug4oCTIGxvb2tpbmcgYXQgdGhpbmdzIGxpa2UgdGhlIGBlbmFibGVkX3N0b3JlYCwgYGFub25fZW5hYmxlZF9zdG9yZWAsIGFuZCBgdGhwc2l6ZV9zaG1lbV9lbmFibGVkX3N0b3JlYCBmaWxlcy4gTWFrZXMgc2Vuc2U7IHRoZXNlIGFyZSB0aGUgdXNlci1zcGFjZSBjb250cm9scyB3ZSYjMzk7ZCBleHBlY3QgZm9yIHR1bmluZyBodWdlIHBhZ2UgYmVoYXZpb3IuIEFuZCwgbmF0dXJhbGx5LCBpdCYjMzk7cyBhbHNvIGNhbGxlZCBieSBgc3RhcnRfc3RvcF9raHVnZXBhZ2VkYCBhbmQgYGtodWdlcGFnZWRfbWluX2ZyZWVfa2J5dGVzX3VwZGF0ZWAuIFNvIHRoZSBlbnRyeSBwb2ludCBpcyBjbGVhcmx5IHJlYWNoYWJsZSBhbmQgZnVuY3Rpb25pbmcuCgpHaXZlbiBpdHMgcmVhY2gsIGl0IG1ha2VzIHNlbnNlIHRvIGNvbmZpcm0gYGtodWdlcGFnZWRgJiMzOTtzIGNvbmZpZ3VyYXRpb24uIEkmIzM5O20gZ29pbmcgdG8gd2FudCB0byB2ZXJpZnkgdGhlIHJlbGV2YW50IGNvbmZpZyBvcHRpb25zIHRoYXQgZGlyZWN0bHkgaW5mbHVlbmNlIGh1Z2UgcGFnZSBiZWhhdmlvci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtraHVnZXBhZ2VkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vTWFrZWZpbGU9MTAwPW9iai0kKENPTkZJR19ERVZJQ0VfTUlHUkFUSU9OKSAmIzQzOz0gbWlncmF0ZV9kZXZpY2Uub1xubW0vTWFrZWZpbGU6MTAxOm9iai0kKENPTkZJR19UUkFOU1BBUkVOVF9IVUdFUEFHRSkgJiM0Mzs9IGh1Z2VfbWVtb3J5Lm8ga2h1Z2VwYWdlZC5vXG5tbS9NYWtlZmlsZS0xMDItb2JqLSQoQ09ORklHX1BBR0VfQ09VTlRFUikgJiM0Mzs9IHBhZ2VfY291bnRlci5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc1NwoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDIzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgaXQgd2VyZSBteSBvd246CgoqKkludmVzdGlnYXRpbmcgTWVtb3J5IEFsbG9jYXRpb24gU3RyYXRlZ2llcyoqCgpPa2F5LCBzbyB0aGUgY29uZmlndXJhdGlvbiBpcyBjdXJyZW50bHkgc2V0IHRvIGBUUkFOU1BBUkVOVF9IVUdFUEFHRWAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBwYXVzZSBhbmQgY29uZmlybSB0aGF0JiMzOTtzIHRoZSBvbmx5IHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gaW4gcGxheSwgcmVsYXRlZCB0byBtZW1vcnkgbWFuYWdlbWVudC4gVGhlcmUgY291bGQgYmUgb3RoZXIgZmFjdG9ycyBpbnZvbHZlZC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIHNvbWUgb3RoZXIgcG90ZW50aWFsbHkgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMuIFRoZXJlIGFyZSBvZnRlbiBvdGhlciBhc3BlY3RzIHRvIGNvbnNpZGVyIGJleW9uZCB0aGUgb2J2aW91cywgc28gaXQmIzM5O3MgYmVzdCB0byBiZSBjb21wcmVoZW5zaXZlIHdoZW4gYW5hbHl6aW5nIHRoaXMgdHlwZSBvZiBzeXN0ZW0gYmVoYXZpb3IuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFRSQU5TUEFSRU5UX0hVR0VQQUdFJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDttbS9LY29uZmlnPTgyOT1jb25maWcgTU1fSURcbi0tXG5tbS9LY29uZmlnLTgzMS1cbm1tL0tjb25maWc6ODMyOm1lbnVjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0Vcbm1tL0tjb25maWctODMzLVx0Ym9vbCBcJiMzNDtUcmFuc3BhcmVudCBIdWdlcGFnZSBTdXBwb3J0XCYjMzQ7XG4tLVxubW0vS2NvbmZpZz04NTA9Y2hvaWNlXG4tLVxubW0vS2NvbmZpZy04NTUtXG5tbS9LY29uZmlnOjg1NjpcdGNvbmZpZyBUUkFOU1BBUkVOVF9IVUdFUEFHRV9BTFdBWVNcbm1tL0tjb25maWctODU3LVx0XHRib29sIFwmIzM0O2Fsd2F5c1wmIzM0O1xuLS1cbm1tL0tjb25maWctODYyLVxubW0vS2NvbmZpZzo4NjM6XHRjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VfTUFEVklTRVxubW0vS2NvbmZpZy04NjQtXHRcdGJvb2wgXCYjMzQ7bWFkdmlzZVwmIzM0O1xuLS1cbm1tL0tjb25maWctODcxLVxubW0vS2NvbmZpZzo4NzI6XHRjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VfTkVWRVJcbm1tL0tjb25maWctODczLVx0XHRib29sIFwmIzM0O25ldmVyXCYjMzQ7XG4tLVxubW0vS2NvbmZpZz04Nzk9Y2hvaWNlXG4tLVxubW0vS2NvbmZpZy04ODgtXG5tbS9LY29uZmlnOjg4OTpcdGNvbmZpZyBUUkFOU1BBUkVOVF9IVUdFUEFHRV9TSE1FTV9IVUdFX05FVkVSXG5tbS9LY29uZmlnLTg5MC1cdFx0Ym9vbCBcJiMzNDtuZXZlclwmIzM0O1xuLS1cbm1tL0tjb25maWctODk4LVxubW0vS2NvbmZpZzo4OTk6XHRjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VfU0hNRU1fSFVHRV9BTFdBWVNcbm1tL0tjb25maWctOTAwLVx0XHRib29sIFwmIzM0O2Fsd2F5c1wmIzM0O1xuLS1cbm1tL0tjb25maWctOTA2LVxubW0vS2NvbmZpZzo5MDc6XHRjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VfU0hNRU1fSFVHRV9XSVRISU5fU0laRVxubW0vS2NvbmZpZy05MDgtXHRcdGJvb2wgXCYjMzQ7d2l0aGluX3NpemVcJiMzNDtcbi0tXG5tbS9LY29uZmlnLTkxNC1cbm1tL0tjb25maWc6OTE1Olx0Y29uZmlnIFRSQU5TUEFSRU5UX0hVR0VQQUdFX1NITUVNX0hVR0VfQURWSVNFXG5tbS9LY29uZmlnLTkxNi1cdFx0Ym9vbCBcJiMzNDthZHZpc2VcJiMzNDtcbi0tXG5tbS9LY29uZmlnPTkyND1jaG9pY2Vcbi0tXG5tbS9LY29uZmlnLTkzMy1cbm1tL0tjb25maWc6OTM0Olx0Y29uZmlnIFRSQU5TUEFSRU5UX0hVR0VQQUdFX1RNUEZTX0hVR0VfTkVWRVJcbm1tL0tjb25maWctOTM1LVx0XHRib29sIFwmIzM0O25ldmVyXCYjMzQ7XG4tLVxubW0vS2NvbmZpZy05NDItXG5tbS9LY29uZmlnOjk0MzpcdGNvbmZpZyBUUkFOU1BBUkVOVF9IVUdFUEFHRV9UTVBGU19IVUdFX0FMV0FZU1xubW0vS2NvbmZpZy05NDQtXHRcdGJvb2wgXCYjMzQ7YWx3YXlzXCYjMzQ7XG4tLVxubW0vS2NvbmZpZy05NTAtXG5tbS9LY29uZmlnOjk1MTpcdGNvbmZpZyBUUkFOU1BBUkVOVF9IVUdFUEFHRV9UTVBGU19IVUdFX1dJVEhJTl9TSVpFXG5tbS9LY29uZmlnLTk1Mi1cdFx0Ym9vbCBcJiMzNDt3aXRoaW5fc2l6ZVwmIzM0O1xuLS1cbm1tL0tjb25maWctOTU4LVxubW0vS2NvbmZpZzo5NTk6XHRjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VfVE1QRlNfSFVHRV9BRFZJU0Vcbm1tL0tjb25maWctOTYwLVx0XHRib29sIFwmIzM0O2FkdmlzZVwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2NDQKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAyNjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBgc2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlc2A6IEEgUXVpY2sgQXNzZXNzbWVudCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXNgIGFuZCB0aGlua2luZyBhYm91dCBpdHMgZnV6emluZyBwb3RlbnRpYWwuIEl0IHNlZW1zIGxpa2UgaXQmIzM5O3MgcHJpbWFyaWx5IGRyaXZlbiBieSB3cml0ZXMgdG8gYC9zeXMva2VybmVsL21tL3RyYW5zcGFyZW50X2h1Z2VwYWdlL2VuYWJsZWRgIGFuZCByZWxhdGVkIHN5c2ZzIGVudHJpZXMuIFRoZSBxdWVzdGlvbiBpcywgaXMgdGhpcyBhIHdvcnRod2hpbGUgdGFyZ2V0PyBZZXMsIGl0IGlzLCBiZWNhdXNlIHRoaXMgZGlyZWN0bHkgaW1wYWN0cyBtZW1vcnkgbWFuYWdlbWVudCBmdW5jdGlvbmFsaXR5LgoKSSYjMzk7bSB6ZXJvaW5nIGluIG9uIGEgZmV3IGtleSBzeW1ib2xzOiBgc2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlc2AsIGBraHVnZXBhZ2VkX21pbl9mcmVlX2tieXRlc191cGRhdGVgLCBhbmQgYHN0YXJ0X3N0b3Bfa2h1Z2VwYWdlZGAuIEkgbmVlZCB0byBjb25maXJtIGlmIGFueSBvZiB0aGVtIGFyZSBzdGF0aWM7IEkmIzM5O20gcHJldHR5IHN1cmUgbm9uZSBhcmUsIHNvIGxldCBtZSBqdXN0IGNoZWNrLiBPa2F5LCBub25lIG9mIHRoZW0gYXJlIHN0YXRpYywgYXMgSSB0aG91Z2h0LgoKSG9sZCBvbi4uLiBgc2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlc2AgaXMgYWN0dWFsbHkgcXVpdGUgYSBzbWFsbCBmdW5jdGlvbi4gSXQmIzM5O3MgcmVhbGx5IGp1c3QgY2FsY3VsYXRpbmcgYSB2YWx1ZSBhbmQgdGhlbiBzZXR0aW5nIGBtaW5fZnJlZV9rYnl0ZXNgLiBJdHMgZnVuY3Rpb25hbCBuYXR1cmUgaXMgY2xlYXIuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSYjMzk7bSB0YXJnZXRpbmcgdGhlIGltcGxlbWVudGF0aW9uLCB3aGljaCBzaG91bGQgYmUgaW4gYG1tL2todWdlcGFnZWQuY2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bW0va2h1Z2VwYWdlZC5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMzA5MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAzMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDszMDkwOlx0XG4zMDkxOlx0XHQvKlxuMzA5MjpcdFx0ICogTWFrZSBzdXJlIHRoYXQgb24gYXZlcmFnZSBhdCBsZWFzdCB0d28gcGFnZWJsb2NrcyBhcmUgYWxtb3N0IGZyZWVcbjMwOTM6XHRcdCAqIG9mIGFub3RoZXIgdHlwZSwgb25lIGZvciBhIG1pZ3JhdGV0eXBlIHRvIGZhbGwgYmFjayB0byBhbmQgYVxuMzA5NDpcdFx0ICogc2Vjb25kIHRvIGF2b2lkIHN1YnNlcXVlbnQgZmFsbGJhY2tzIG9mIG90aGVyIHR5cGVzIFRoZXJlIGFyZSAzXG4zMDk1Olx0XHQgKiBNSUdSQVRFX1RZUEVTIHdlIGNhcmUgYWJvdXQuXG4zMDk2Olx0XHQgKi9cbjMwOTc6XHRcdHJlY29tbWVuZGVkX21pbiAmIzQzOz0gcGFnZWJsb2NrX25yX3BhZ2VzICogbnJfem9uZXMgKlxuMzA5ODpcdFx0XHRcdCAgIE1JR1JBVEVfUENQVFlQRVMgKiBNSUdSQVRFX1BDUFRZUEVTO1xuMzA5OTpcdFxuMzEwMDpcdFx0LypcbjMxMDE6XHRcdCAqIERvbiYjMzk7dCBldmVyIGFsbG93IHRvIHJlc2VydmUgbW9yZSB0aGFuIDUlIG9mIGxvd21lbSBvciAxIEdpQixcbjMxMDI6XHRcdCAqIHdoaWNoZXZlciBpcyBzbWFsbGVyLlxuMzEwMzpcdFx0ICovXG4zMTA0Olx0XHRyZWNvbW1lbmRlZF9taW4gPSBtaW4ocmVjb21tZW5kZWRfbWluLFxuMzEwNTpcdFx0XHRcdCAgICAgICh1bnNpZ25lZCBsb25nKSBucl9mcmVlX2J1ZmZlcl9wYWdlcygpIC8gMjApO1xuMzEwNjpcdFx0cmVjb21tZW5kZWRfbWluID0gbWluKHJlY29tbWVuZGVkX21pbiwgU1pfMUcgLyBQQUdFX1NJWkUpO1xuMzEwNzpcdFx0cmVjb21tZW5kZWRfbWluIFx1MDAzY1x1MDAzYz0gKFBBR0VfU0hJRlQtMTApO1xuMzEwODpcdFxuMzEwOTpcdFx0aWYgKHJlY29tbWVuZGVkX21pbiBcdTAwM2UgbWluX2ZyZWVfa2J5dGVzKSB7XG4zMTEwOlx0XHRcdGlmICh1c2VyX21pbl9mcmVlX2tieXRlcyBcdTAwM2U9IDApXG4zMTExOlx0XHRcdFx0cHJfaW5mb19yYXRlbGltaXRlZChcJiMzNDtyYWlzaW5nIG1pbl9mcmVlX2tieXRlcyBmcm9tICVkIHRvICVsdSB0byBoZWxwIHRyYW5zcGFyZW50IGh1Z2VwYWdlIGFsbG9jYXRpb25zXFxuXCYjMzQ7LFxuMzExMjpcdFx0XHRcdFx0XHQgICAgbWluX2ZyZWVfa2J5dGVzLCByZWNvbW1lbmRlZF9taW4pO1xuMzExMzpcdFxuMzExNDpcdFx0XHRtaW5fZnJlZV9rYnl0ZXMgPSByZWNvbW1lbmRlZF9taW47XG4zMTE1Olx0XHR9XG4zMTE2Olx0XG4zMTE3Olx0dXBkYXRlX3dtYXJrczpcbjMxMTg6XHRcdHNldHVwX3Blcl96b25lX3dtYXJrcygpO1xuMzExOTpcdH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTcwNwoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDU4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkNoZWNraW5nIHRoZSBDb25maWcgYW5kIEZvY3VzKioKCk9rYXksIHNvIHRoaXMgY29uZmlndXJhdGlvbiBzZWVtcyBmdW5jdGlvbmFsOyBnb29kLiBMZXQgbWUgc2VlLi4uIGBFbmFibGVDb25maWdzYCBjb250YWlucyBgVFJBTlNQQVJFTlRfSFVHRVBBR0VgLCBhbmQgdGhlIGBGb2N1c1N5bWJvbHNgIGFyZSBzZXQgdG8gYHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXNgLiBOb3csIGJlZm9yZSBJIHByb2NlZWQgZnVydGhlciwgSSB3YW50IHRvIG1ha2UgYWJzb2x1dGVseSBjZXJ0YWluIHRoYXQgYFRSQU5TUEFSRU5UX0hVR0VQQUdFYCBpc24mIzM5O3QgcmVsaWFudCBvbiBzb21lIG90aGVyLCB1bmRlcmx5aW5nIGNvbmZpZ3VyYXRpb24gb3IgZmVhdHVyZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGRlcGVuZGVuY2llcyB0aG9yb3VnaGx5LiBCZXN0IHRvIGJlIHNhZmUgdGhhbiBzb3JyeSwgZXNwZWNpYWxseSB3aGVuIHdlIGFyZSB0YWxraW5nIGFib3V0IG1lbW9yeSBtYW5hZ2VtZW50IQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttZW51Y29uZmlnIFRSQU5TUEFSRU5UX0hVR0VQQUdFJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDttbS9LY29uZmlnPTgyOT1jb25maWcgTU1fSURcbi0tXG5tbS9LY29uZmlnLTgzMS1cbm1tL0tjb25maWc6ODMyOm1lbnVjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0Vcbm1tL0tjb25maWctODMzLVx0Ym9vbCBcJiMzNDtUcmFuc3BhcmVudCBIdWdlcGFnZSBTdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDAyOjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU5OTMKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiA3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqQW5hbHl6aW5nIHRoZSBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBNeSBpbml0aWFsIHRob3VnaHQgcHJvY2VzcyBpcyBhbHdheXMgdG8gc3RhcnQgYnkgbWFwcGluZyBvdXQgdGhlIGRlcGVuZGVuY2llcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGludGVyY29ubmVjdGVkbmVzcyBvZiBhbGwgdGhlIGNvbXBvbmVudHMgYXQgcGxheSBoZXJlLiBUaGlzIGlzbiYjMzk7dCBqdXN0IGFib3V0IGlkZW50aWZ5aW5nIHRoZSBkaXJlY3QgcmVsYXRpb25zaGlwczsgSSYjMzk7bSBkaWdnaW5nIGRlZXBlciB0byB1bmNvdmVyIHRoZSBoaWRkZW4gaW1wbGljYXRpb25zLiBJJiMzOTttIGxvb2tpbmcgZm9yIHRoZSByaXBwbGUgZWZmZWN0cyDigJMgaG93IGNoYW5nZXMgaW4gb25lIGFyZWEgd2lsbCBpbmV2aXRhYmx5IGNhc2NhZGUgYW5kIGluZmx1ZW5jZSBvdGhlcnMuIEFyZSB0aGVyZSBhbnkgY2lyY3VsYXIgZGVwZW5kZW5jaWVzIHRoYXQgY291bGQgbGVhZCB0byBkZWFkbG9ja3Mgb3IgdW5leHBlY3RlZCBiZWhhdmlvcj8gSSBuZWVkIHRvIGJ1aWxkIGEgY29tcHJlaGVuc2l2ZSBkZXBlbmRlbmN5IGdyYXBoLCB3aGV0aGVyIGl0JiMzOTtzIGltcGxpY2l0bHkgaW4gbXkgaGVhZCBvciBza2V0Y2hlZCBvdXQgb24gYSB3aGl0ZWJvYXJkLiBUaGlzIGlzbiYjMzk7dCBqdXN0IGEgY2FzdWFsIG92ZXJ2aWV3OyBpdCYjMzk7cyBhIGRlZXAgZGl2ZSBpbnRvIHRoZSBhcmNoaXRlY3R1cmUuIEnigJltIHRoaW5raW5nIGFib3V0IG5vdCBvbmx5IHRoZSBjdXJyZW50IHN0YXRlIGJ1dCB0aGUgZnV0dXJlIGFzIHdlbGwuIEkmIzM5O20gY29uc2lkZXJpbmcgcG90ZW50aWFsIGNoYW5nZXMsIHVwZ3JhZGVzLCBhbmQgaW50ZWdyYXRpb25zLiBBbnkgbmV3IGVsZW1lbnQgd2lsbCBuZWVkIHRvIGJlIGNoZWNrZWQgYWdhaW5zdCB0aGUgZXhpc3RpbmcgZGVwZW5kZW5jaWVzLiBJIGFtIGhvcGluZyB0byBnZXQgdG8gdGhlIGNvcmUgb2YgdGhlIHByb2JsZW0gYW5kIHByZXZlbnQgYW55IGlzc3VlcyBiZWZvcmUgdGhleSBtYW5pZmVzdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDttbS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogODMwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA4MzA6XHRcdGRlZl9ib29sIG5cbiA4MzE6XHRcbiA4MzI6XHRtZW51Y29uZmlnIFRSQU5TUEFSRU5UX0hVR0VQQUdFXG4gODMzOlx0XHRib29sIFwmIzM0O1RyYW5zcGFyZW50IEh1Z2VwYWdlIFN1cHBvcnRcJiMzNDtcbiA4MzQ6XHRcdGRlcGVuZHMgb24gSEFWRV9BUkNIX1RSQU5TUEFSRU5UX0hVR0VQQUdFIFx1MDAyNlx1MDAyNiAhUFJFRU1QVF9SVFxuIDgzNTpcdFx0c2VsZWN0IENPTVBBQ1RJT05cbiA4MzY6XHRcdHNlbGVjdCBYQVJSQVlfTVVMVElcbiA4Mzc6XHRcdHNlbGVjdCBNTV9JRFxuIDgzODpcdFx0aGVscFxuIDgzOTpcdFx0ICBUcmFuc3BhcmVudCBIdWdlcGFnZXMgYWxsb3dzIHRoZSBrZXJuZWwgdG8gdXNlIGh1Z2UgcGFnZXMgYW5kXG4gODQwOlx0XHQgIGh1Z2UgdGxiIHRyYW5zcGFyZW50bHkgdG8gdGhlIGFwcGxpY2F0aW9ucyB3aGVuZXZlciBwb3NzaWJsZS5cbiA4NDE6XHRcdCAgVGhpcyBmZWF0dXJlIGNhbiBpbXByb3ZlIGNvbXB1dGluZyBwZXJmb3JtYW5jZSB0byBjZXJ0YWluXG4gODQyOlx0XHQgIGFwcGxpY2F0aW9ucyBieSBzcGVlZGluZyB1cCBwYWdlIGZhdWx0cyBkdXJpbmcgbWVtb3J5XG4gODQzOlx0XHQgIGFsbG9jYXRpb24sIGJ5IHJlZHVjaW5nIHRoZSBudW1iZXIgb2YgdGxiIG1pc3NlcyBhbmQgYnkgc3BlZWRpbmdcbiA4NDQ6XHRcdCAgdXAgdGhlIHBhZ2V0YWJsZSB3YWxraW5nLlxuIDg0NTpcdFxuIDg0NjpcdFx0ICBJZiBtZW1vcnkgY29uc3RyYWluZWQgb24gZW1iZWRkZWQsIHlvdSBtYXkgd2FudCB0byBzYXkgTi5cbiA4NDc6XHRcbiA4NDg6XHRpZiBUUkFOU1BBUkVOVF9IVUdFUEFHRVxuIDg0OTpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwMjoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NTU5CgkJCQkJCQlvdXRwdXQ6IDEwNgoJCQkJCQkJdGhvdWdodHM6IDc5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQuCgoqKk15IEFuYWx5c2lzIG9mIEh1Z2UgUGFnZSBDb25maWd1cmF0aW9uKioKClJpZ2h0LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBjb2RlIGFuZCBpbW1lZGlhdGVseSBJIHNlZSBpdCYjMzk7cyBhbGwgYWJvdXQgaG93IHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggdHJhbnNwYXJlbnQgaHVnZSBwYWdlcy4gSXQmIzM5O3MgY29uZGl0aW9uYWxseSBjb21waWxlZCBiYXNlZCBvbiBgSEFWRV9BUkNIX1RSQU5TUEFSRU5UX0hVR0VQQUdFYCBhbmQsIGNyaXRpY2FsbHksIHRoZSBhYnNlbmNlIG9mIGBQUkVFTVBUX1JUYC4gVGhpcyBtZWFucyB0aGVyZSYjMzk7cyBhIGRlcGVuZGVuY3kgb24gdGhlIGFyY2hpdGVjdHVyZSYjMzk7cyBzdXBwb3J0IGZvciB0cmFuc3BhcmVudCBodWdlcGFnZXMsIGFuZCBob3cgcmVhbC10aW1lIHByZWVtcHRpb24gaXMgaGFuZGxlZC4gQSBjbGFzc2ljIHNldCB1cCEKCkZyb20gdGhlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uLCBJIHVuZGVyc3RhbmQgdGhhdCBgVFJBTlNQQVJFTlRfSFVHRVBBR0VgIGlzIHRoZSBjb3JlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIHRoYXQgZHJpdmVzIHRoZSBiZWhhdmlvciBoZXJlLiBTbywgdGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBmb3IgbXkgYW5hbHlzaXMgaXMgYFRSQU5TUEFSRU5UX0hVR0VQQUdFYC4gSSBoYXZlIHRvIGtlZXAgdGhhdCBpbiBtaW5kLgoKQmFzZWQgb24gdGhhdCwgSSYjMzk7bSB0aGlua2luZyBJIG5lZWQgdG8gZmxhZyBpdCBhcyBzb21ldGhpbmcgdGhhdCYjMzk7cyBwb3RlbnRpYWxseSAmIzM0O1dvcnRoRnV6emluZyYjMzQ7LiBGcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZSwgdGhpcyBtYWtlcyBzZW5zZSBiZWNhdXNlIGNoYW5nZXMgdG8gYFRSQU5TUEFSRU5UX0hVR0VQQUdFYCBjYW4gaW1wYWN0IG1lbW9yeSBtYW5hZ2VtZW50LCBhbmQgdGhvc2UgYXJlIGFsd2F5cyBpbnRlcmVzdGluZyBhcmVhcyB0byB0ZXN0LiBJdCBwcm9iYWJseSB0b3VjaGVzIGEgbG90IG9mIG90aGVyIGFyZWFzIGluIHRoZSBrZXJuZWwsIGFuZCB0aGUgaW50ZXJhY3Rpb24gb2YgYFRSQU5TUEFSRU5UX0hVR0VQQUdFYCB3aXRoIGBIQVZFX0FSQ0hfVFJBTlNQQVJFTlRfSFVHRVBBR0VgIHNob3VsZCBiZSBjb25zaWRlcmVkLgoKVGhlcmVmb3JlLCBmb3IgdGhlIGZ1enppbmcsIEkmIzM5O2xsIHJldHVybiBgV29ydGhGdXp6aW5nPXRydWVgLiBJIHdpbGwgYWxzbyB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgZnV6emluZyBjb25maWd1cmF0aW9uIGVuYWJsZXMgYFRSQU5TUEFSRU5UX0hVR0VQQUdFYCwgc28gSSBuZWVkIHRvIHNldCBgRW5hYmxlQ29uZmlncz1bJiMzNDtUUkFOU1BBUkVOVF9IVUdFUEFHRSYjMzQ7XWAuCgpGaW5hbGx5LCBmb3IgdGhlIHNwZWNpZmljIGZ1bmN0aW9uLCBpdCBsb29rcyBsaWtlIGBzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzYCBpcyBnb2luZyB0byBiZSBhIGtleSBhcmVhIHRvIG1vbml0b3IsIHNvIEkmIzM5O2xsIGluY2x1ZGUgdGhhdCBpbiBgRm9jdXNTeW1ib2xzPVsmIzM0O3NldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXMmIzM0O11gIHRvIGdldCBncmFudWxhciBjb3ZlcmFnZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDI6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RSQU5TUEFSRU5UX0hVR0VQQUdFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY2FsY3VsYXRpb24gb2YgcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzIGZvciBraHVnZXBhZ2VkLCBhZGRpbmcgYSAxIEdpQiBjYXAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgdHJhbnNwYXJlbnQgaHVnZXBhZ2UgbWVtb3J5IG1hbmFnZW1lbnQgbG9naWMsIHJlYWNoYWJsZSB2aWEgc3lzZnMgd3JpdGVzIG9yIG1lbW9yeSBob3RwbHVnIGV2ZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VFJBTlNQQVJFTlRfSFVHRVBBR0UmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjYWxjdWxhdGlvbiBvZiByZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXMgZm9yIGtodWdlcGFnZWQsIGFkZGluZyBhIDEgR2lCIGNhcC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB0cmFuc3BhcmVudCBodWdlcGFnZSBtZW1vcnkgbWFuYWdlbWVudCBsb2dpYywgcmVhY2hhYmxlIHZpYSBzeXNmcyB3cml0ZXMgb3IgbWVtb3J5IGhvdHBsdWcgZXZlbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MTk6NTMuMDk3NTczMjQ3WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzE4NDE1ODU2NzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVFJBTlNQQVJFTlRfSFVHRVBBR0VcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNhbGN1bGF0aW9uIG9mIHJlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcyBmb3Iga2h1Z2VwYWdlZCwgYWRkaW5nIGEgMSBHaUIgY2FwLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIHRyYW5zcGFyZW50IGh1Z2VwYWdlIG1lbW9yeSBtYW5hZ2VtZW50IGxvZ2ljLCByZWFjaGFibGUgdmlhIHN5c2ZzIHdyaXRlcyBvciBtZW1vcnkgaG90cGx1ZyBldmVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjE5OjUzLjA5NzU4MDI3N1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTc2NDMwMzkzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDZlYjRiYzRiNGViM2E4MmFlYWVhZDNjZjdmMGMyODFhZjc3NDA2NVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCAzMCAwMjoxOTo1MiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9tbS9raHVnZXBhZ2VkLmMgYi9tbS9raHVnZXBhZ2VkLmNcXG5pbmRleCAyN2U4ZjMwNzdlODBmLi5kOWNhZjEwZTA1YjUxIDEwMDY0NFxcbi0tLSBhL21tL2todWdlcGFnZWQuY1xcbisrKyBiL21tL2todWdlcGFnZWQuY1xcbkBAIC0yMyw2ICsyMyw3IEBAXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9rc20uaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BnYWxsb2MuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2JhY2tpbmctZGV2LmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9zaXplcy5oXFx1MDAzZVxcbiBcXG4gI2luY2x1ZGUgXFx1MDAzY2FzbS90bGIuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFxcImludGVybmFsLmhcXFwiXFxuQEAgLTMwOTYsOSArMzA5NywxMyBAQCB2b2lkIHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXModm9pZClcXG4gXFx0cmVjb21tZW5kZWRfbWluICs9IHBhZ2VibG9ja19ucl9wYWdlcyAqIG5yX3pvbmVzICpcXG4gXFx0XFx0XFx0ICAgTUlHUkFURV9QQ1BUWVBFUyAqIE1JR1JBVEVfUENQVFlQRVM7XFxuIFxcbi1cXHQvKiBkb24ndCBldmVyIGFsbG93IHRvIHJlc2VydmUgbW9yZSB0aGFuIDUlIG9mIHRoZSBsb3dtZW0gKi9cXG4rXFx0LypcXG4rXFx0ICogRG9uJ3QgZXZlciBhbGxvdyB0byByZXNlcnZlIG1vcmUgdGhhbiA1JSBvZiBsb3dtZW0gb3IgMSBHaUIsXFxuK1xcdCAqIHdoaWNoZXZlciBpcyBzbWFsbGVyLlxcbitcXHQgKi9cXG4gXFx0cmVjb21tZW5kZWRfbWluID0gbWluKHJlY29tbWVuZGVkX21pbixcXG4gXFx0XFx0XFx0ICAgICAgKHVuc2lnbmVkIGxvbmcpIG5yX2ZyZWVfYnVmZmVyX3BhZ2VzKCkgLyAyMCk7XFxuK1xcdHJlY29tbWVuZGVkX21pbiA9IG1pbihyZWNvbW1lbmRlZF9taW4sIFNaXzFHIC8gUEFHRV9TSVpFKTtcXG4gXFx0cmVjb21tZW5kZWRfbWluIFxcdTAwM2NcXHUwMDNjPSAoUEFHRV9TSElGVC0xMCk7XFxuIFxcbiBcXHRpZiAocmVjb21tZW5kZWRfbWluIFxcdTAwM2UgbWluX2ZyZWVfa2J5dGVzKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjE5OjUzLjY3NTA1Njg4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MzEyNjQwODUzODYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVFJBTlNQQVJFTlRfSFVHRVBBR0VcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNhbGN1bGF0aW9uIG9mIHJlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcyBmb3Iga2h1Z2VwYWdlZCwgYWRkaW5nIGEgMSBHaUIgY2FwLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIHRyYW5zcGFyZW50IGh1Z2VwYWdlIG1lbW9yeSBtYW5hZ2VtZW50IGxvZ2ljLCByZWFjaGFibGUgdmlhIHN5c2ZzIHdyaXRlcyBvciBtZW1vcnkgaG90cGx1ZyBldmVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGQ2ZWI0YmM0YjRlYjNhODJhZWFlYWQzY2Y3ZjBjMjgxYWY3NzQwNjVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAzMCAwMjoxOTo1MiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL21tL2todWdlcGFnZWQuYyBiL21tL2todWdlcGFnZWQuY1xuaW5kZXggMjdlOGYzMDc3ZTgwZi4uZDljYWYxMGUwNWI1MSAxMDA2NDRcbi0tLSBhL21tL2todWdlcGFnZWQuY1xuKysrIGIvbW0va2h1Z2VwYWdlZC5jXG5AQCAtMjMsNiArMjMsNyBAQFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2tzbS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvcGdhbGxvYy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvYmFja2luZy1kZXYuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L3NpemVzLmhcdTAwM2VcbiBcbiAjaW5jbHVkZSBcdTAwM2Nhc20vdGxiLmhcdTAwM2VcbiAjaW5jbHVkZSBcImludGVybmFsLmhcIlxuQEAgLTMwOTYsOSArMzA5NywxMyBAQCB2b2lkIHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXModm9pZClcbiBcdHJlY29tbWVuZGVkX21pbiArPSBwYWdlYmxvY2tfbnJfcGFnZXMgKiBucl96b25lcyAqXG4gXHRcdFx0ICAgTUlHUkFURV9QQ1BUWVBFUyAqIE1JR1JBVEVfUENQVFlQRVM7XG4gXG4tXHQvKiBkb24ndCBldmVyIGFsbG93IHRvIHJlc2VydmUgbW9yZSB0aGFuIDUlIG9mIHRoZSBsb3dtZW0gKi9cbitcdC8qXG4rXHQgKiBEb24ndCBldmVyIGFsbG93IHRvIHJlc2VydmUgbW9yZSB0aGFuIDUlIG9mIGxvd21lbSBvciAxIEdpQixcbitcdCAqIHdoaWNoZXZlciBpcyBzbWFsbGVyLlxuK1x0ICovXG4gXHRyZWNvbW1lbmRlZF9taW4gPSBtaW4ocmVjb21tZW5kZWRfbWluLFxuIFx0XHRcdCAgICAgICh1bnNpZ25lZCBsb25nKSBucl9mcmVlX2J1ZmZlcl9wYWdlcygpIC8gMjApO1xuK1x0cmVjb21tZW5kZWRfbWluID0gbWluKHJlY29tbWVuZGVkX21pbiwgU1pfMUcgLyBQQUdFX1NJWkUpO1xuIFx0cmVjb21tZW5kZWRfbWluIFx1MDAzY1x1MDAzYz0gKFBBR0VfU0hJRlQtMTApO1xuIFxuIFx0aWYgKHJlY29tbWVuZGVkX21pbiBcdTAwM2UgbWluX2ZyZWVfa2J5dGVzKSB7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjoxOTo1My42NzUwNTk0MDlaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTUwNTc1MzUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEtlcm5lbCBNZW1vcnkgTWFuYWdlbWVudCBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYG1tL2todWdlcGFnZWQuY2AsIHNwZWNpZmljYWxseSB0aGUgYHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXNgIGZ1bmN0aW9uLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCBpZiB0aGlzIGlzIHdvcnRoIHNwZW5kaW5nIHNvbWUgdGltZSBmdXp6aW5nLiBUaGUgY2hhbmdlIGl0c2VsZiBpcyBpbnRlcmVzdGluZyDigJMgdGhleSdyZSBwdXR0aW5nIGEgMSBHaUIgY2FwIG9uIGByZWNvbW1lbmRlZF9taW5gLiBUaGlzIGlzIGNsZWFybHkgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIGtlcm5lbCdzIG1lbW9yeSBtYW5hZ2VtZW50LCBkZWFsaW5nIHdpdGggdGhlIGtodWdlcGFnZWQgY29tcG9uZW50LlxuXG5Ob3csIGxldCdzIHRoaW5rIGFib3V0IHRoZSBhdHRhY2sgc3VyZmFjZS4gYHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXNgIGlzIG9ubHkgY2FsbGVkIGR1cmluZyBraHVnZXBhZ2VkIHN0YXJ0dXAgb3Igd2hlbiBkZWFsaW5nIHdpdGggbWVtb3J5IGhvdHBsdWcgZXZlbnRzLiBIbW0sIGlzIHRoaXMgYSBwbGFjZSB3aGVyZSBmdXp6aW5nIGNvdWxkIGJlIGVmZmVjdGl2ZT8gSXQgc2VlbXMgbGlrZSB0aGlzIGZ1bmN0aW9uIHNldHMgdXAgb3IgY29uZmlndXJlcyBraHVnZXBhZ2VkLCBub3Qgc29tZXRoaW5nIGRpcmVjdGx5IGV4cG9zZWQgdG8gdXNlciBpbnB1dC4gU3RpbGwsIGNvbmZpZ3VyYXRpb24gZnVuY3Rpb25zIGNhbiBiZSB0YXJnZXRzLiBUaGUgZ29hbCBpcyB0byBzZWUgaWYgYW55IHN1YnRsZSBjaGFuZ2VzIGNhbiBiZSB0cmlnZ2VyZWQgYnkgZnV6emluZyB0aGUgdmFsdWVzLlxuXG5JIG5lZWQgdG8gc2VlIHdoZXJlIGVsc2UgYHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXNgIGlzIHVzZWQsIHNvIHRoYXQgSSB1bmRlcnN0YW5kIGFsbCB0aGUgd2F5cyBpbiB3aGljaCB0aGlzIGZ1bmN0aW9uIGlzIHBvdGVudGlhbGx5IGludm9rZWQuIFVuZGVyc3RhbmRpbmcgdGhlIGNvbnRleHQgb2YgaXRzIGNhbGxzIHdpbGwgaW5mb3JtIG15IGRlY2lzaW9uIGFib3V0IGhvdyBpbXBvcnRhbnQgaXQgaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMTksIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjEsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjoxOTo1Ny44MjU2Mzc1NDNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDg2NDEwOTA3NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm1tL2h1Z2VfbWVtb3J5LmM9Mzc3PXN0YXRpYyBzc2l6ZV90IGVuYWJsZWRfc3RvcmUoc3RydWN0IGtvYmplY3QgKmtvYmosXFxuLS1cXG5tbS9odWdlX21lbW9yeS5jLTM5Ny1cXHRcXHQgKi9cXG5tbS9odWdlX21lbW9yeS5jOjM5ODpcXHRcXHRzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzKCk7XFxubW0vaHVnZV9tZW1vcnkuYy0zOTktXFx0fVxcbi0tXFxubW0vaHVnZV9tZW1vcnkuYz02MTI9c3RhdGljIHNzaXplX3QgYW5vbl9lbmFibGVkX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLFxcbi0tXFxubW0vaHVnZV9tZW1vcnkuYy02MzMtXFx0XFx0ICovXFxubW0vaHVnZV9tZW1vcnkuYzo2MzQ6XFx0XFx0c2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcygpO1xcbm1tL2h1Z2VfbWVtb3J5LmMtNjM1LVxcdH1cXG4tLVxcbm1tL2ludGVybmFsLmg9NzEwPXBtZF90ICptbV9maW5kX3BtZChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzKTtcXG4tLVxcbm1tL2ludGVybmFsLmgtNzE0LSAqL1xcbm1tL2ludGVybmFsLmg6NzE1OnZvaWQgc2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcyh2b2lkKTtcXG5tbS9pbnRlcm5hbC5oLTcxNi1cXG4tLVxcbm1tL2todWdlcGFnZWQuYz0zMDQ1PXN0YXRpYyBpbnQga2h1Z2VwYWdlZCh2b2lkICpub25lKVxcbi0tXFxubW0va2h1Z2VwYWdlZC5jLTMwNjUtXFxubW0va2h1Z2VwYWdlZC5jOjMwNjY6dm9pZCBzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzKHZvaWQpXFxubW0va2h1Z2VwYWdlZC5jLTMwNjcte1xcbi0tXFxubW0va2h1Z2VwYWdlZC5jPTMxMjE9aW50IHN0YXJ0X3N0b3Bfa2h1Z2VwYWdlZCh2b2lkKVxcbi0tXFxubW0va2h1Z2VwYWdlZC5jLTMxNDItXFx0fVxcbm1tL2todWdlcGFnZWQuYzozMTQzOlxcdHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXMoKTtcXG5tbS9raHVnZXBhZ2VkLmMtMzE0NC1mYWlsOlxcbi0tXFxubW0va2h1Z2VwYWdlZC5jPTMxNDk9dm9pZCBraHVnZXBhZ2VkX21pbl9mcmVlX2tieXRlc191cGRhdGUodm9pZClcXG4tLVxcbm1tL2todWdlcGFnZWQuYy0zMTUyLVxcdGlmIChodWdlcGFnZV9lbmFibGVkKCkgXFx1MDAyNlxcdTAwMjYga2h1Z2VwYWdlZF90aHJlYWQpXFxubW0va2h1Z2VwYWdlZC5jOjMxNTM6XFx0XFx0c2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlcygpO1xcbm1tL2todWdlcGFnZWQuYy0zMTU0LVxcdG11dGV4X3VubG9jayhcXHUwMDI2a2h1Z2VwYWdlZF9tdXRleCk7XFxuLS1cXG5tbS9zaG1lbS5jPTU1NDc9c3RhdGljIHNzaXplX3QgdGhwc2l6ZV9zaG1lbV9lbmFibGVkX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLFxcbi0tXFxubW0vc2htZW0uYy01NTcyLVxcdFxcdCAqL1xcbm1tL3NobWVtLmM6NTU3MzpcXHRcXHRzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzKCk7XFxubW0vc2htZW0uYy01NTc0LVxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MjA6MDIuNjg5NzUyNzA3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzUyMjE1NDE2MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHVuZGVyc3RhbmRpbmcsIGNvbnNpZGVyaW5nIEknbSBkZWVwbHkgZmFtaWxpYXIgd2l0aCB0aGlzIGtlcm5lbCBzdWJzeXN0ZW0uXG5cbioqSW52ZXN0aWdhdGluZyBraHVnZXBhZ2VkIENhbGwgUGF0aHMgYW5kIENvbmZpZ3VyYXRpb24qKlxuXG5SaWdodCwgc28gdGhpcyBmdW5jdGlvbiwgd2hhdGV2ZXIgaXQgaXMsIGlzIGNsZWFybHkgcHJldHR5IGZ1bmRhbWVudGFsIHRvIHRoZSBga2h1Z2VwYWdlZGAgcHJvY2Vzcy4gVGhlIGNhbGwgZ3JhcGggaW5kaWNhdGVzIGl0J3MgdHJpZ2dlcmVkIGZyb20gc2V2ZXJhbCBwbGFjZXMgd2l0aGluIHRoZSBgc3lzZnNgIGludGVyZmFjZSDigJMgbG9va2luZyBhdCB0aGluZ3MgbGlrZSB0aGUgYGVuYWJsZWRfc3RvcmVgLCBgYW5vbl9lbmFibGVkX3N0b3JlYCwgYW5kIGB0aHBzaXplX3NobWVtX2VuYWJsZWRfc3RvcmVgIGZpbGVzLiBNYWtlcyBzZW5zZTsgdGhlc2UgYXJlIHRoZSB1c2VyLXNwYWNlIGNvbnRyb2xzIHdlJ2QgZXhwZWN0IGZvciB0dW5pbmcgaHVnZSBwYWdlIGJlaGF2aW9yLiBBbmQsIG5hdHVyYWxseSwgaXQncyBhbHNvIGNhbGxlZCBieSBgc3RhcnRfc3RvcF9raHVnZXBhZ2VkYCBhbmQgYGtodWdlcGFnZWRfbWluX2ZyZWVfa2J5dGVzX3VwZGF0ZWAuIFNvIHRoZSBlbnRyeSBwb2ludCBpcyBjbGVhcmx5IHJlYWNoYWJsZSBhbmQgZnVuY3Rpb25pbmcuXG5cbkdpdmVuIGl0cyByZWFjaCwgaXQgbWFrZXMgc2Vuc2UgdG8gY29uZmlybSBga2h1Z2VwYWdlZGAncyBjb25maWd1cmF0aW9uLiBJJ20gZ29pbmcgdG8gd2FudCB0byB2ZXJpZnkgdGhlIHJlbGV2YW50IGNvbmZpZyBvcHRpb25zIHRoYXQgZGlyZWN0bHkgaW5mbHVlbmNlIGh1Z2UgcGFnZSBiZWhhdmlvci5cblxuXG4iLCJJbnB1dFRva2VucyI6MzMzNCwiT3V0cHV0VG9rZW5zIjoyNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjIwOjA2LjIxMTkxMTQ3OVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDM2ODI1MzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwia2h1Z2VwYWdlZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJtbS9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS9NYWtlZmlsZT0xMDA9b2JqLSQoQ09ORklHX0RFVklDRV9NSUdSQVRJT04pICs9IG1pZ3JhdGVfZGV2aWNlLm9cXG5tbS9NYWtlZmlsZToxMDE6b2JqLSQoQ09ORklHX1RSQU5TUEFSRU5UX0hVR0VQQUdFKSArPSBodWdlX21lbW9yeS5vIGtodWdlcGFnZWQub1xcbm1tL01ha2VmaWxlLTEwMi1vYmotJChDT05GSUdfUEFHRV9DT1VOVEVSKSArPSBwYWdlX2NvdW50ZXIub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjoyMDowNi40NTU1OTk5NjZaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNTg2MDU5NzA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBpdCB3ZXJlIG15IG93bjpcblxuKipJbnZlc3RpZ2F0aW5nIE1lbW9yeSBBbGxvY2F0aW9uIFN0cmF0ZWdpZXMqKlxuXG5Pa2F5LCBzbyB0aGUgY29uZmlndXJhdGlvbiBpcyBjdXJyZW50bHkgc2V0IHRvIGBUUkFOU1BBUkVOVF9IVUdFUEFHRWAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBwYXVzZSBhbmQgY29uZmlybSB0aGF0J3MgdGhlIG9ubHkgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBpbiBwbGF5LCByZWxhdGVkIHRvIG1lbW9yeSBtYW5hZ2VtZW50LiBUaGVyZSBjb3VsZCBiZSBvdGhlciBmYWN0b3JzIGludm9sdmVkLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEknbSBub3QgbWlzc2luZyBzb21lIG90aGVyIHBvdGVudGlhbGx5IHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zLiBUaGVyZSBhcmUgb2Z0ZW4gb3RoZXIgYXNwZWN0cyB0byBjb25zaWRlciBiZXlvbmQgdGhlIG9idmlvdXMsIHNvIGl0J3MgYmVzdCB0byBiZSBjb21wcmVoZW5zaXZlIHdoZW4gYW5hbHl6aW5nIHRoaXMgdHlwZSBvZiBzeXN0ZW0gYmVoYXZpb3IuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3NTcsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjoyMDowOS4wNDE2NjE4NTFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE0MTgzMjU4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBUUkFOU1BBUkVOVF9IVUdFUEFHRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJtbS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm1tL0tjb25maWc9ODI5PWNvbmZpZyBNTV9JRFxcbi0tXFxubW0vS2NvbmZpZy04MzEtXFxubW0vS2NvbmZpZzo4MzI6bWVudWNvbmZpZyBUUkFOU1BBUkVOVF9IVUdFUEFHRVxcbm1tL0tjb25maWctODMzLVxcdGJvb2wgXFxcIlRyYW5zcGFyZW50IEh1Z2VwYWdlIFN1cHBvcnRcXFwiXFxuLS1cXG5tbS9LY29uZmlnPTg1MD1jaG9pY2VcXG4tLVxcbm1tL0tjb25maWctODU1LVxcbm1tL0tjb25maWc6ODU2OlxcdGNvbmZpZyBUUkFOU1BBUkVOVF9IVUdFUEFHRV9BTFdBWVNcXG5tbS9LY29uZmlnLTg1Ny1cXHRcXHRib29sIFxcXCJhbHdheXNcXFwiXFxuLS1cXG5tbS9LY29uZmlnLTg2Mi1cXG5tbS9LY29uZmlnOjg2MzpcXHRjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VfTUFEVklTRVxcbm1tL0tjb25maWctODY0LVxcdFxcdGJvb2wgXFxcIm1hZHZpc2VcXFwiXFxuLS1cXG5tbS9LY29uZmlnLTg3MS1cXG5tbS9LY29uZmlnOjg3MjpcXHRjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VfTkVWRVJcXG5tbS9LY29uZmlnLTg3My1cXHRcXHRib29sIFxcXCJuZXZlclxcXCJcXG4tLVxcbm1tL0tjb25maWc9ODc5PWNob2ljZVxcbi0tXFxubW0vS2NvbmZpZy04ODgtXFxubW0vS2NvbmZpZzo4ODk6XFx0Y29uZmlnIFRSQU5TUEFSRU5UX0hVR0VQQUdFX1NITUVNX0hVR0VfTkVWRVJcXG5tbS9LY29uZmlnLTg5MC1cXHRcXHRib29sIFxcXCJuZXZlclxcXCJcXG4tLVxcbm1tL0tjb25maWctODk4LVxcbm1tL0tjb25maWc6ODk5OlxcdGNvbmZpZyBUUkFOU1BBUkVOVF9IVUdFUEFHRV9TSE1FTV9IVUdFX0FMV0FZU1xcbm1tL0tjb25maWctOTAwLVxcdFxcdGJvb2wgXFxcImFsd2F5c1xcXCJcXG4tLVxcbm1tL0tjb25maWctOTA2LVxcbm1tL0tjb25maWc6OTA3OlxcdGNvbmZpZyBUUkFOU1BBUkVOVF9IVUdFUEFHRV9TSE1FTV9IVUdFX1dJVEhJTl9TSVpFXFxubW0vS2NvbmZpZy05MDgtXFx0XFx0Ym9vbCBcXFwid2l0aGluX3NpemVcXFwiXFxuLS1cXG5tbS9LY29uZmlnLTkxNC1cXG5tbS9LY29uZmlnOjkxNTpcXHRjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VfU0hNRU1fSFVHRV9BRFZJU0VcXG5tbS9LY29uZmlnLTkxNi1cXHRcXHRib29sIFxcXCJhZHZpc2VcXFwiXFxuLS1cXG5tbS9LY29uZmlnPTkyND1jaG9pY2VcXG4tLVxcbm1tL0tjb25maWctOTMzLVxcbm1tL0tjb25maWc6OTM0OlxcdGNvbmZpZyBUUkFOU1BBUkVOVF9IVUdFUEFHRV9UTVBGU19IVUdFX05FVkVSXFxubW0vS2NvbmZpZy05MzUtXFx0XFx0Ym9vbCBcXFwibmV2ZXJcXFwiXFxuLS1cXG5tbS9LY29uZmlnLTk0Mi1cXG5tbS9LY29uZmlnOjk0MzpcXHRjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VfVE1QRlNfSFVHRV9BTFdBWVNcXG5tbS9LY29uZmlnLTk0NC1cXHRcXHRib29sIFxcXCJhbHdheXNcXFwiXFxuLS1cXG5tbS9LY29uZmlnLTk1MC1cXG5tbS9LY29uZmlnOjk1MTpcXHRjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VfVE1QRlNfSFVHRV9XSVRISU5fU0laRVxcbm1tL0tjb25maWctOTUyLVxcdFxcdGJvb2wgXFxcIndpdGhpbl9zaXplXFxcIlxcbi0tXFxubW0vS2NvbmZpZy05NTgtXFxubW0vS2NvbmZpZzo5NTk6XFx0Y29uZmlnIFRSQU5TUEFSRU5UX0hVR0VQQUdFX1RNUEZTX0hVR0VfQURWSVNFXFxubW0vS2NvbmZpZy05NjAtXFx0XFx0Ym9vbCBcXFwiYWR2aXNlXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjoyMDowOS4xNTU4NTI3MjlaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTEwODI4Nzg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgYHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXNgOiBBIFF1aWNrIEFzc2Vzc21lbnQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgc2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlc2AgYW5kIHRoaW5raW5nIGFib3V0IGl0cyBmdXp6aW5nIHBvdGVudGlhbC4gSXQgc2VlbXMgbGlrZSBpdCdzIHByaW1hcmlseSBkcml2ZW4gYnkgd3JpdGVzIHRvIGAvc3lzL2tlcm5lbC9tbS90cmFuc3BhcmVudF9odWdlcGFnZS9lbmFibGVkYCBhbmQgcmVsYXRlZCBzeXNmcyBlbnRyaWVzLiBUaGUgcXVlc3Rpb24gaXMsIGlzIHRoaXMgYSB3b3J0aHdoaWxlIHRhcmdldD8gWWVzLCBpdCBpcywgYmVjYXVzZSB0aGlzIGRpcmVjdGx5IGltcGFjdHMgbWVtb3J5IG1hbmFnZW1lbnQgZnVuY3Rpb25hbGl0eS5cblxuSSdtIHplcm9pbmcgaW4gb24gYSBmZXcga2V5IHN5bWJvbHM6IGBzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzYCwgYGtodWdlcGFnZWRfbWluX2ZyZWVfa2J5dGVzX3VwZGF0ZWAsIGFuZCBgc3RhcnRfc3RvcF9raHVnZXBhZ2VkYC4gSSBuZWVkIHRvIGNvbmZpcm0gaWYgYW55IG9mIHRoZW0gYXJlIHN0YXRpYzsgSSdtIHByZXR0eSBzdXJlIG5vbmUgYXJlLCBzbyBsZXQgbWUganVzdCBjaGVjay4gT2theSwgbm9uZSBvZiB0aGVtIGFyZSBzdGF0aWMsIGFzIEkgdGhvdWdodC5cblxuSG9sZCBvbi4uLiBgc2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlc2AgaXMgYWN0dWFsbHkgcXVpdGUgYSBzbWFsbCBmdW5jdGlvbi4gSXQncyByZWFsbHkganVzdCBjYWxjdWxhdGluZyBhIHZhbHVlIGFuZCB0aGVuIHNldHRpbmcgYG1pbl9mcmVlX2tieXRlc2AuIEl0cyBmdW5jdGlvbmFsIG5hdHVyZSBpcyBjbGVhci4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJ20gdGFyZ2V0aW5nIHRoZSBpbXBsZW1lbnRhdGlvbiwgd2hpY2ggc2hvdWxkIGJlIGluIGBtbS9raHVnZXBhZ2VkLmNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NjQ0LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjIwOjEzLjY2NjY4NDczOFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzgyNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibW0va2h1Z2VwYWdlZC5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDMwOTAsXG4gIFwiTGluZUNvdW50XCI6IDMwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjMwOTA6XFx0XFxuMzA5MTpcXHRcXHQvKlxcbjMwOTI6XFx0XFx0ICogTWFrZSBzdXJlIHRoYXQgb24gYXZlcmFnZSBhdCBsZWFzdCB0d28gcGFnZWJsb2NrcyBhcmUgYWxtb3N0IGZyZWVcXG4zMDkzOlxcdFxcdCAqIG9mIGFub3RoZXIgdHlwZSwgb25lIGZvciBhIG1pZ3JhdGV0eXBlIHRvIGZhbGwgYmFjayB0byBhbmQgYVxcbjMwOTQ6XFx0XFx0ICogc2Vjb25kIHRvIGF2b2lkIHN1YnNlcXVlbnQgZmFsbGJhY2tzIG9mIG90aGVyIHR5cGVzIFRoZXJlIGFyZSAzXFxuMzA5NTpcXHRcXHQgKiBNSUdSQVRFX1RZUEVTIHdlIGNhcmUgYWJvdXQuXFxuMzA5NjpcXHRcXHQgKi9cXG4zMDk3OlxcdFxcdHJlY29tbWVuZGVkX21pbiArPSBwYWdlYmxvY2tfbnJfcGFnZXMgKiBucl96b25lcyAqXFxuMzA5ODpcXHRcXHRcXHRcXHQgICBNSUdSQVRFX1BDUFRZUEVTICogTUlHUkFURV9QQ1BUWVBFUztcXG4zMDk5OlxcdFxcbjMxMDA6XFx0XFx0LypcXG4zMTAxOlxcdFxcdCAqIERvbid0IGV2ZXIgYWxsb3cgdG8gcmVzZXJ2ZSBtb3JlIHRoYW4gNSUgb2YgbG93bWVtIG9yIDEgR2lCLFxcbjMxMDI6XFx0XFx0ICogd2hpY2hldmVyIGlzIHNtYWxsZXIuXFxuMzEwMzpcXHRcXHQgKi9cXG4zMTA0OlxcdFxcdHJlY29tbWVuZGVkX21pbiA9IG1pbihyZWNvbW1lbmRlZF9taW4sXFxuMzEwNTpcXHRcXHRcXHRcXHQgICAgICAodW5zaWduZWQgbG9uZykgbnJfZnJlZV9idWZmZXJfcGFnZXMoKSAvIDIwKTtcXG4zMTA2OlxcdFxcdHJlY29tbWVuZGVkX21pbiA9IG1pbihyZWNvbW1lbmRlZF9taW4sIFNaXzFHIC8gUEFHRV9TSVpFKTtcXG4zMTA3OlxcdFxcdHJlY29tbWVuZGVkX21pbiBcXHUwMDNjXFx1MDAzYz0gKFBBR0VfU0hJRlQtMTApO1xcbjMxMDg6XFx0XFxuMzEwOTpcXHRcXHRpZiAocmVjb21tZW5kZWRfbWluIFxcdTAwM2UgbWluX2ZyZWVfa2J5dGVzKSB7XFxuMzExMDpcXHRcXHRcXHRpZiAodXNlcl9taW5fZnJlZV9rYnl0ZXMgXFx1MDAzZT0gMClcXG4zMTExOlxcdFxcdFxcdFxcdHByX2luZm9fcmF0ZWxpbWl0ZWQoXFxcInJhaXNpbmcgbWluX2ZyZWVfa2J5dGVzIGZyb20gJWQgdG8gJWx1IHRvIGhlbHAgdHJhbnNwYXJlbnQgaHVnZXBhZ2UgYWxsb2NhdGlvbnNcXFxcblxcXCIsXFxuMzExMjpcXHRcXHRcXHRcXHRcXHRcXHQgICAgbWluX2ZyZWVfa2J5dGVzLCByZWNvbW1lbmRlZF9taW4pO1xcbjMxMTM6XFx0XFxuMzExNDpcXHRcXHRcXHRtaW5fZnJlZV9rYnl0ZXMgPSByZWNvbW1lbmRlZF9taW47XFxuMzExNTpcXHRcXHR9XFxuMzExNjpcXHRcXG4zMTE3OlxcdHVwZGF0ZV93bWFya3M6XFxuMzExODpcXHRcXHRzZXR1cF9wZXJfem9uZV93bWFya3MoKTtcXG4zMTE5OlxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MjA6MTMuNjY2OTY3OTc4WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5NzUyNTU4NTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQ2hlY2tpbmcgdGhlIENvbmZpZyBhbmQgRm9jdXMqKlxuXG5Pa2F5LCBzbyB0aGlzIGNvbmZpZ3VyYXRpb24gc2VlbXMgZnVuY3Rpb25hbDsgZ29vZC4gTGV0IG1lIHNlZS4uLiBgRW5hYmxlQ29uZmlnc2AgY29udGFpbnMgYFRSQU5TUEFSRU5UX0hVR0VQQUdFYCwgYW5kIHRoZSBgRm9jdXNTeW1ib2xzYCBhcmUgc2V0IHRvIGBzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzYC4gTm93LCBiZWZvcmUgSSBwcm9jZWVkIGZ1cnRoZXIsIEkgd2FudCB0byBtYWtlIGFic29sdXRlbHkgY2VydGFpbiB0aGF0IGBUUkFOU1BBUkVOVF9IVUdFUEFHRWAgaXNuJ3QgcmVsaWFudCBvbiBzb21lIG90aGVyLCB1bmRlcmx5aW5nIGNvbmZpZ3VyYXRpb24gb3IgZmVhdHVyZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGRlcGVuZGVuY2llcyB0aG9yb3VnaGx5LiBCZXN0IHRvIGJlIHNhZmUgdGhhbiBzb3JyeSwgZXNwZWNpYWxseSB3aGVuIHdlIGFyZSB0YWxraW5nIGFib3V0IG1lbW9yeSBtYW5hZ2VtZW50IVxuXG5cbiIsIklucHV0VG9rZW5zIjo1NzA3LCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTgsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjoyMDoxNi42NDIyMjY3OTdaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNDIzNzY5OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtZW51Y29uZmlnIFRSQU5TUEFSRU5UX0hVR0VQQUdFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm1tL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibW0vS2NvbmZpZz04Mjk9Y29uZmlnIE1NX0lEXFxuLS1cXG5tbS9LY29uZmlnLTgzMS1cXG5tbS9LY29uZmlnOjgzMjptZW51Y29uZmlnIFRSQU5TUEFSRU5UX0hVR0VQQUdFXFxubW0vS2NvbmZpZy04MzMtXFx0Ym9vbCBcXFwiVHJhbnNwYXJlbnQgSHVnZXBhZ2UgU3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MjA6MTYuNzU2NDcwODc2WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyOTkwODQ3NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqQW5hbHl6aW5nIHRoZSBEZXBlbmRlbmNpZXMqKlxuXG5BbHJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gTXkgaW5pdGlhbCB0aG91Z2h0IHByb2Nlc3MgaXMgYWx3YXlzIHRvIHN0YXJ0IGJ5IG1hcHBpbmcgb3V0IHRoZSBkZXBlbmRlbmNpZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbnRlcmNvbm5lY3RlZG5lc3Mgb2YgYWxsIHRoZSBjb21wb25lbnRzIGF0IHBsYXkgaGVyZS4gVGhpcyBpc24ndCBqdXN0IGFib3V0IGlkZW50aWZ5aW5nIHRoZSBkaXJlY3QgcmVsYXRpb25zaGlwczsgSSdtIGRpZ2dpbmcgZGVlcGVyIHRvIHVuY292ZXIgdGhlIGhpZGRlbiBpbXBsaWNhdGlvbnMuIEknbSBsb29raW5nIGZvciB0aGUgcmlwcGxlIGVmZmVjdHMg4oCTIGhvdyBjaGFuZ2VzIGluIG9uZSBhcmVhIHdpbGwgaW5ldml0YWJseSBjYXNjYWRlIGFuZCBpbmZsdWVuY2Ugb3RoZXJzLiBBcmUgdGhlcmUgYW55IGNpcmN1bGFyIGRlcGVuZGVuY2llcyB0aGF0IGNvdWxkIGxlYWQgdG8gZGVhZGxvY2tzIG9yIHVuZXhwZWN0ZWQgYmVoYXZpb3I/IEkgbmVlZCB0byBidWlsZCBhIGNvbXByZWhlbnNpdmUgZGVwZW5kZW5jeSBncmFwaCwgd2hldGhlciBpdCdzIGltcGxpY2l0bHkgaW4gbXkgaGVhZCBvciBza2V0Y2hlZCBvdXQgb24gYSB3aGl0ZWJvYXJkLiBUaGlzIGlzbid0IGp1c3QgYSBjYXN1YWwgb3ZlcnZpZXc7IGl0J3MgYSBkZWVwIGRpdmUgaW50byB0aGUgYXJjaGl0ZWN0dXJlLiBJ4oCZbSB0aGlua2luZyBhYm91dCBub3Qgb25seSB0aGUgY3VycmVudCBzdGF0ZSBidXQgdGhlIGZ1dHVyZSBhcyB3ZWxsLiBJJ20gY29uc2lkZXJpbmcgcG90ZW50aWFsIGNoYW5nZXMsIHVwZ3JhZGVzLCBhbmQgaW50ZWdyYXRpb25zLiBBbnkgbmV3IGVsZW1lbnQgd2lsbCBuZWVkIHRvIGJlIGNoZWNrZWQgYWdhaW5zdCB0aGUgZXhpc3RpbmcgZGVwZW5kZW5jaWVzLiBJIGFtIGhvcGluZyB0byBnZXQgdG8gdGhlIGNvcmUgb2YgdGhlIHByb2JsZW0gYW5kIHByZXZlbnQgYW55IGlzc3VlcyBiZWZvcmUgdGhleSBtYW5pZmVzdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTk5MywiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDI6MjA6MjAuMDU1NTU5NDAxWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1MzU2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJtbS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDgzMCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDgzMDpcXHRcXHRkZWZfYm9vbCBuXFxuIDgzMTpcXHRcXG4gODMyOlxcdG1lbnVjb25maWcgVFJBTlNQQVJFTlRfSFVHRVBBR0VcXG4gODMzOlxcdFxcdGJvb2wgXFxcIlRyYW5zcGFyZW50IEh1Z2VwYWdlIFN1cHBvcnRcXFwiXFxuIDgzNDpcXHRcXHRkZXBlbmRzIG9uIEhBVkVfQVJDSF9UUkFOU1BBUkVOVF9IVUdFUEFHRSBcXHUwMDI2XFx1MDAyNiAhUFJFRU1QVF9SVFxcbiA4MzU6XFx0XFx0c2VsZWN0IENPTVBBQ1RJT05cXG4gODM2OlxcdFxcdHNlbGVjdCBYQVJSQVlfTVVMVElcXG4gODM3OlxcdFxcdHNlbGVjdCBNTV9JRFxcbiA4Mzg6XFx0XFx0aGVscFxcbiA4Mzk6XFx0XFx0ICBUcmFuc3BhcmVudCBIdWdlcGFnZXMgYWxsb3dzIHRoZSBrZXJuZWwgdG8gdXNlIGh1Z2UgcGFnZXMgYW5kXFxuIDg0MDpcXHRcXHQgIGh1Z2UgdGxiIHRyYW5zcGFyZW50bHkgdG8gdGhlIGFwcGxpY2F0aW9ucyB3aGVuZXZlciBwb3NzaWJsZS5cXG4gODQxOlxcdFxcdCAgVGhpcyBmZWF0dXJlIGNhbiBpbXByb3ZlIGNvbXB1dGluZyBwZXJmb3JtYW5jZSB0byBjZXJ0YWluXFxuIDg0MjpcXHRcXHQgIGFwcGxpY2F0aW9ucyBieSBzcGVlZGluZyB1cCBwYWdlIGZhdWx0cyBkdXJpbmcgbWVtb3J5XFxuIDg0MzpcXHRcXHQgIGFsbG9jYXRpb24sIGJ5IHJlZHVjaW5nIHRoZSBudW1iZXIgb2YgdGxiIG1pc3NlcyBhbmQgYnkgc3BlZWRpbmdcXG4gODQ0OlxcdFxcdCAgdXAgdGhlIHBhZ2V0YWJsZSB3YWxraW5nLlxcbiA4NDU6XFx0XFxuIDg0NjpcXHRcXHQgIElmIG1lbW9yeSBjb25zdHJhaW5lZCBvbiBlbWJlZGRlZCwgeW91IG1heSB3YW50IHRvIHNheSBOLlxcbiA4NDc6XFx0XFxuIDg0ODpcXHRpZiBUUkFOU1BBUkVOVF9IVUdFUEFHRVxcbiA4NDk6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDAyOjIwOjIwLjA1NTcxNTUwMVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NzA1OTk2NDI2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdC5cblxuKipNeSBBbmFseXNpcyBvZiBIdWdlIFBhZ2UgQ29uZmlndXJhdGlvbioqXG5cblJpZ2h0LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIGltbWVkaWF0ZWx5IEkgc2VlIGl0J3MgYWxsIGFib3V0IGhvdyB3ZSdyZSBkZWFsaW5nIHdpdGggdHJhbnNwYXJlbnQgaHVnZSBwYWdlcy4gSXQncyBjb25kaXRpb25hbGx5IGNvbXBpbGVkIGJhc2VkIG9uIGBIQVZFX0FSQ0hfVFJBTlNQQVJFTlRfSFVHRVBBR0VgIGFuZCwgY3JpdGljYWxseSwgdGhlIGFic2VuY2Ugb2YgYFBSRUVNUFRfUlRgLiBUaGlzIG1lYW5zIHRoZXJlJ3MgYSBkZXBlbmRlbmN5IG9uIHRoZSBhcmNoaXRlY3R1cmUncyBzdXBwb3J0IGZvciB0cmFuc3BhcmVudCBodWdlcGFnZXMsIGFuZCBob3cgcmVhbC10aW1lIHByZWVtcHRpb24gaXMgaGFuZGxlZC4gQSBjbGFzc2ljIHNldCB1cCFcblxuRnJvbSB0aGUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24sIEkgdW5kZXJzdGFuZCB0aGF0IGBUUkFOU1BBUkVOVF9IVUdFUEFHRWAgaXMgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgdGhhdCBkcml2ZXMgdGhlIGJlaGF2aW9yIGhlcmUuIFNvLCB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIGZvciBteSBhbmFseXNpcyBpcyBgVFJBTlNQQVJFTlRfSFVHRVBBR0VgLiBJIGhhdmUgdG8ga2VlcCB0aGF0IGluIG1pbmQuXG5cbkJhc2VkIG9uIHRoYXQsIEknbSB0aGlua2luZyBJIG5lZWQgdG8gZmxhZyBpdCBhcyBzb21ldGhpbmcgdGhhdCdzIHBvdGVudGlhbGx5IFwiV29ydGhGdXp6aW5nXCIuIEZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLCB0aGlzIG1ha2VzIHNlbnNlIGJlY2F1c2UgY2hhbmdlcyB0byBgVFJBTlNQQVJFTlRfSFVHRVBBR0VgIGNhbiBpbXBhY3QgbWVtb3J5IG1hbmFnZW1lbnQsIGFuZCB0aG9zZSBhcmUgYWx3YXlzIGludGVyZXN0aW5nIGFyZWFzIHRvIHRlc3QuIEl0IHByb2JhYmx5IHRvdWNoZXMgYSBsb3Qgb2Ygb3RoZXIgYXJlYXMgaW4gdGhlIGtlcm5lbCwgYW5kIHRoZSBpbnRlcmFjdGlvbiBvZiBgVFJBTlNQQVJFTlRfSFVHRVBBR0VgIHdpdGggYEhBVkVfQVJDSF9UUkFOU1BBUkVOVF9IVUdFUEFHRWAgc2hvdWxkIGJlIGNvbnNpZGVyZWQuXG5cblRoZXJlZm9yZSwgZm9yIHRoZSBmdXp6aW5nLCBJJ2xsIHJldHVybiBgV29ydGhGdXp6aW5nPXRydWVgLiBJIHdpbGwgYWxzbyB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgZnV6emluZyBjb25maWd1cmF0aW9uIGVuYWJsZXMgYFRSQU5TUEFSRU5UX0hVR0VQQUdFYCwgc28gSSBuZWVkIHRvIHNldCBgRW5hYmxlQ29uZmlncz1bXCJUUkFOU1BBUkVOVF9IVUdFUEFHRVwiXWAuXG5cbkZpbmFsbHksIGZvciB0aGUgc3BlY2lmaWMgZnVuY3Rpb24sIGl0IGxvb2tzIGxpa2UgYHNldF9yZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXNgIGlzIGdvaW5nIHRvIGJlIGEga2V5IGFyZWEgdG8gbW9uaXRvciwgc28gSSdsbCBpbmNsdWRlIHRoYXQgaW4gYEZvY3VzU3ltYm9scz1bXCJzZXRfcmVjb21tZW5kZWRfbWluX2ZyZWVfa2J5dGVzXCJdYCB0byBnZXQgZ3JhbnVsYXIgY292ZXJhZ2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY1NTksIk91dHB1dFRva2VucyI6MTA2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzksIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwMjoyMDoyNC43NjE3MTU2OTdaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzc0MjE2MDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRSQU5TUEFSRU5UX0hVR0VQQUdFXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjYWxjdWxhdGlvbiBvZiByZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXMgZm9yIGtodWdlcGFnZWQsIGFkZGluZyBhIDEgR2lCIGNhcC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB0cmFuc3BhcmVudCBodWdlcGFnZSBtZW1vcnkgbWFuYWdlbWVudCBsb2dpYywgcmVhY2hhYmxlIHZpYSBzeXNmcyB3cml0ZXMgb3IgbWVtb3J5IGhvdHBsdWcgZXZlbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRSQU5TUEFSRU5UX0hVR0VQQUdFXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2V0X3JlY29tbWVuZGVkX21pbl9mcmVlX2tieXRlc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjYWxjdWxhdGlvbiBvZiByZWNvbW1lbmRlZF9taW5fZnJlZV9rYnl0ZXMgZm9yIGtodWdlcGFnZWQsIGFkZGluZyBhIDEgR2lCIGNhcC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB0cmFuc3BhcmVudCBodWdlcGFnZSBtZW1vcnkgbWFuYWdlbWVudCBsb2dpYywgcmVhY2hhYmxlIHZpYSBzeXNmcyB3cml0ZXMgb3IgbWVtb3J5IGhvdHBsdWcgZXZlbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowjk69s[1] Phase: Succeeded StartedAt: 2026-07-30 02:20:36 +0000 UTC FinishedAt: 2026-07-30 02:20:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-30 02:20:36 +0000 UTC FinishedAt: 2026-07-30 02:20:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[2] Phase: Succeeded StartedAt: 2026-07-30 02:20:36 +0000 UTC FinishedAt: 2026-07-30 03:31:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN) Phase: Failed StartedAt: 2026-07-30 02:20:37 +0000 UTC FinishedAt: 2026-07-30 03:31:50 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},"patched":{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-30 02:20:37 +0000 UTC FinishedAt: 2026-07-30 02:20:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-30 02:20:37 +0000 UTC FinishedAt: 2026-07-30 02:20:43 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowjk69s/series-workflowjk69s-convert-artifact-2515413294/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-30 02:20:47 +0000 UTC FinishedAt: 2026-07-30 02:50:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-30 02:20:47 +0000 UTC FinishedAt: 2026-07-30 02:50:36 +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:*a152a180-b36e-46f9-91b5-fe7cad24d4b3,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-workflowjk69s/series-workflowjk69s-convert-artifact-2515413294/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": "ea43b30b-2e53-44b3-bc58-65167ae822f2", "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-workflowjk69s/series-workflowjk69s-build-action-4143729812/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-30 02:20:47 +0000 UTC FinishedAt: 2026-07-30 02:50:26 +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:*a152a180-b36e-46f9-91b5-fe7cad24d4b3,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-workflowjk69s/series-workflowjk69s-convert-artifact-2515413294/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": "ea43b30b-2e53-44b3-bc58-65167ae822f2", "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-workflowjk69s/series-workflowjk69s-build-action-4143729812/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-30 02:50:36 +0000 UTC FinishedAt: 2026-07-30 02:50:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-30 02:50:36 +0000 UTC FinishedAt: 2026-07-30 02:50:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-30 02:50:36 +0000 UTC FinishedAt: 2026-07-30 02:50:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-30 02:50:36 +0000 UTC FinishedAt: 2026-07-30 02:50:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowjk69s/series-workflowjk69s-convert-artifact-574333729/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-30 02:50:46 +0000 UTC FinishedAt: 2026-07-30 02:52:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-30 02:50:46 +0000 UTC FinishedAt: 2026-07-30 02:52:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*ea43b30b-2e53-44b3-bc58-65167ae822f2,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-workflowjk69s/series-workflowjk69s-build-action-4143729812/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-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-30 02:52:47 +0000 UTC FinishedAt: 2026-07-30 02:52:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-30 02:52:47 +0000 UTC FinishedAt: 2026-07-30 02:52:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-30 02:52:47 +0000 UTC FinishedAt: 2026-07-30 03:16:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-30 02:52:47 +0000 UTC FinishedAt: 2026-07-30 03:16:16 +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:*a152a180-b36e-46f9-91b5-fe7cad24d4b3,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-workflowjk69s/series-workflowjk69s-convert-artifact-574333729/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": "fa5f2541-1195-44bc-b8d1-f7bcaa1ad81b", "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-workflowjk69s/series-workflowjk69s-build-action-2562051629/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-30 02:52:47 +0000 UTC FinishedAt: 2026-07-30 03:16:06 +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:*a152a180-b36e-46f9-91b5-fe7cad24d4b3,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-workflowjk69s/series-workflowjk69s-convert-artifact-574333729/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": "fa5f2541-1195-44bc-b8d1-f7bcaa1ad81b", "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-workflowjk69s/series-workflowjk69s-build-action-2562051629/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-30 03:16:16 +0000 UTC FinishedAt: 2026-07-30 03:16:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-30 03:16:17 +0000 UTC FinishedAt: 2026-07-30 03:16:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-30 03:16:17 +0000 UTC FinishedAt: 2026-07-30 03:18:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-30 03:16:17 +0000 UTC FinishedAt: 2026-07-30 03:18:00 +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:*fa5f2541-1195-44bc-b8d1-f7bcaa1ad81b,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-workflowjk69s/series-workflowjk69s-build-action-2562051629/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-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10] Phase: Failed StartedAt: 2026-07-30 03:18:12 +0000 UTC FinishedAt: 2026-07-30 03:31:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Failed StartedAt: 2026-07-30 03:18:12 +0000 UTC FinishedAt: 2026-07-30 03:31:50 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*ea43b30b-2e53-44b3-bc58-65167ae822f2,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*fa5f2541-1195-44bc-b8d1-f7bcaa1ad81b,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-workflowjk69s/series-workflowjk69s-build-action-4143729812/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-workflowjk69s/series-workflowjk69s-build-action-2562051629/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-30 03:18:12 +0000 UTC FinishedAt: 2026-07-30 03:18:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-30 03:18:12 +0000 UTC FinishedAt: 2026-07-30 03:18:16 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowjk69s/series-workflowjk69s-convert-artifact-3513358518/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-30 03:18:12 +0000 UTC FinishedAt: 2026-07-30 03:18:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-30 03:18:12 +0000 UTC FinishedAt: 2026-07-30 03:18:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-30 03:18:12 +0000 UTC FinishedAt: 2026-07-30 03:18:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Failed StartedAt: 2026-07-30 03:18:23 +0000 UTC FinishedAt: 2026-07-30 03:31:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjk69s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["set_recommended_min_free_kbytes"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"a75ba6838481e8e81dd1becbd7c89133d406cd8c","config_name":"upstream-apparmor-kasan.config","enable_configs":["TRANSPARENT_HUGEPAGE"],"series_id":"c116704e-ef7d-43dd-9125-ff8edc7c1782","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Error StartedAt: 2026-07-30 03:18:23 +0000 UTC FinishedAt: 2026-07-30 03:31:50 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*ea43b30b-2e53-44b3-bc58-65167ae822f2,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*fa5f2541-1195-44bc-b8d1-f7bcaa1ad81b,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-workflowjk69s/series-workflowjk69s-build-action-4143729812/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-workflowjk69s/series-workflowjk69s-build-action-2562051629/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-workflowjk69s/series-workflowjk69s-convert-artifact-3513358518/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil