Name: series-workflowjdcpc Phase: Succeeded StartedAt: 2026-08-13 03:54:17 +0000 UTC FinishedAt: 2026-08-13 08:32:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[0] Phase: Succeeded StartedAt: 2026-08-13 03:54:17 +0000 UTC FinishedAt: 2026-08-13 04:37:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[0].run-triage Phase: Succeeded StartedAt: 2026-08-13 03:54:17 +0000 UTC FinishedAt: 2026-08-13 04:37:51 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "28d012efb4327f9c75d5e042a7c91e9a542efa98", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BTRFS_FS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "28d012efb4327f9c75d5e042a7c91e9a542efa98", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BTRFS_FS" ], "series_id": "07521fe4-3089-43cc-be0e-b6cb6cbba2ae" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "btrfs_ioctl_defrag" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEzIDA0OjM3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JUUkZTX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnRyZnNfaW9jdGxfZGVmcmFnJiMzNDsKICBdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYSBwZXJtaXNzaW9uIGNoZWNrIGluIGBidHJmc19pb2N0bF9kZWZyYWdgIGJ5IHJlcGxhY2luZyBgXHUwMDI2bm9wX21udF9pZG1hcGAgd2l0aCBgZmlsZV9tbnRfaWRtYXAoZmlsZSlgIGluIHRoZSBjYWxsIHRvIGBpbm9kZV9wZXJtaXNzaW9uYC4gVGhpcyBpcyBhIGxvZ2ljIGNoYW5nZSByZWxhdGVkIHRvIGFjY2VzcyBjb250cm9sIGFuZCBtb3VudCBpZG1hcHMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IG1lbW9yeSBhbGxvY2F0aW9ucywgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UsIG9yIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzLiBUaGVyZWZvcmUsIHRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcyB0aGF0IHdvdWxkIHJlcXVpcmUgS01TQU4uIEFueSBwb3RlbnRpYWwgaXNzdWVzIHdvdWxkIGJlIHJlbGF0ZWQgdG8gbG9naWMgYnVncyBvciBzdGFuZGFyZCBtZW1vcnkgZXJyb3JzLCB3aGljaCBhcmUgY292ZXJlZCBieSBvdGhlciB0b29scy4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBlcm1pc3Npb24gY2hlY2sgaW4gYGJ0cmZzX2lvY3RsX2RlZnJhZ2AgdG8gdXNlIGBmaWxlX21udF9pZG1hcChmaWxlKWAgaW5zdGVhZCBvZiBgXHUwMDI2bm9wX21udF9pZG1hcGAuIFRoaXMgYWZmZWN0cyB0aGUgYEJUUkZTX0lPQ19ERUZSQUdgIGFuZCBgQlRSRlNfSU9DX0RFRlJBR19SQU5HRWAgaW9jdGxzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSByZWFjaGFibGUgY29yZSBmaWxlc3lzdGVtIHBhdGggYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTMgMDQ6Mzc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBmODFjMzZlZmZiNTYzNzExYmZkNTUzNTkxY2I3ZGNkZTFkNGRjN2U5XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgMTMgMDQ6Mzc6MDAgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvYnRyZnMvaW9jdGwuYyBiL2ZzL2J0cmZzL2lvY3RsLmNcbmluZGV4IDcyYmM5ZDRmNzcwODcuLjYwNzMyOWRlZGQ1MDMgMTAwNjQ0XG4tLS0gYS9mcy9idHJmcy9pb2N0bC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9mcy9idHJmcy9pb2N0bC5jXG5AQCAtMjQ1OCw3ICYjNDM7MjQ1OCw3IEBAIHN0YXRpYyBpbnQgYnRyZnNfaW9jdGxfZGVmcmFnKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkIF9fdXNlciAqYXJncClcbiBcdFx0ICogcnVubmluZyBhbmQgYWxsb3dzIGRlZnJhZyBvbiBmaWxlcyBvcGVuIGluIHJlYWQtb25seSBtb2RlLlxuIFx0XHQgKi9cbiBcdFx0aWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pIFx1MDAyNlx1MDAyNlxuLVx0XHQgICAgaW5vZGVfcGVybWlzc2lvbihcdTAwMjZub3BfbW50X2lkbWFwLCBpbm9kZSwgTUFZX1dSSVRFKSkge1xuJiM0MztcdFx0ICAgIGlub2RlX3Blcm1pc3Npb24oZmlsZV9tbnRfaWRtYXAoZmlsZSksIGlub2RlLCBNQVlfV1JJVEUpKSB7XG4gXHRcdFx0cmV0ID0gLUVQRVJNO1xuIFx0XHRcdGdvdG8gb3V0O1xuIFx0XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTMgMDQ6Mzc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JUUkZTX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnRyZnNfaW9jdGxfZGVmcmFnJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwZXJtaXNzaW9uIGNoZWNrIGluIGBidHJmc19pb2N0bF9kZWZyYWdgIHRvIHVzZSBgZmlsZV9tbnRfaWRtYXAoZmlsZSlgIGluc3RlYWQgb2YgYFx1MDAyNm5vcF9tbnRfaWRtYXBgLiBUaGlzIGFmZmVjdHMgdGhlIGBCVFJGU19JT0NfREVGUkFHYCBhbmQgYEJUUkZTX0lPQ19ERUZSQUdfUkFOR0VgIGlvY3Rscy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgcmVhY2hhYmxlIGNvcmUgZmlsZXN5c3RlbSBwYXRoIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZjgxYzM2ZWZmYjU2MzcxMWJmZDU1MzU5MWNiN2RjZGUxZDRkYzdlOQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgQXVnIDEzIDA0OjM3OjAwIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZnMvYnRyZnMvaW9jdGwuYyBiL2ZzL2J0cmZzL2lvY3RsLmMKaW5kZXggNzJiYzlkNGY3NzA4Ny4uNjA3MzI5ZGVkZDUwMyAxMDA2NDQKLS0tIGEvZnMvYnRyZnMvaW9jdGwuYwomIzQzOyYjNDM7JiM0MzsgYi9mcy9idHJmcy9pb2N0bC5jCkBAIC0yNDU4LDcgJiM0MzsyNDU4LDcgQEAgc3RhdGljIGludCBidHJmc19pb2N0bF9kZWZyYWcoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgX191c2VyICphcmdwKQogCQkgKiBydW5uaW5nIGFuZCBhbGxvd3MgZGVmcmFnIG9uIGZpbGVzIG9wZW4gaW4gcmVhZC1vbmx5IG1vZGUuCiAJCSAqLwogCQlpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1JTikgJmFtcDsmYW1wOwotCQkgICAgaW5vZGVfcGVybWlzc2lvbigmYW1wO25vcF9tbnRfaWRtYXAsIGlub2RlLCBNQVlfV1JJVEUpKSB7CiYjNDM7CQkgICAgaW5vZGVfcGVybWlzc2lvbihmaWxlX21udF9pZG1hcChmaWxlKSwgaW5vZGUsIE1BWV9XUklURSkpIHsKIAkJCXJldCA9IC1FUEVSTTsKIAkJCWdvdG8gb3V0OwogCQl9CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEzIDA0OjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwMDQKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxMjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uCgoqKkFuYWx5emluZyBhIEJ0cmZzIERlZnJhZyBQYXRjaCoqCgpBbHJpZ2h0LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0JiMzOTtzIHRvdWNoZWQgYGZzL2J0cmZzL2lvY3RsLmNgLiBTcGVjaWZpY2FsbHksIHRoZSBjaGFuZ2UgaXMgd2l0aGluIHRoZSBgYnRyZnNfaW9jdGxfZGVmcmFnYCBmdW5jdGlvbi4gVGhlIGtleSBjaGFuZ2UgaXMgdGhlIHJlcGxhY2VtZW50IG9mIGBpbm9kZV9wZXJtaXNzaW9uKCZhbXA7bm9wX21udF9pZG1hcCwgaW5vZGUsIE1BWV9XUklURSlgIHdpdGggYGlub2RlX3Blcm1pc3Npb24oZmlsZV9tbnRfaWRtYXAoZmlsZSksIGlub2RlLCBNQVlfV1JJVEUpYC4gSG1tLCB0aGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBob3cgYEJUUkZTX0lPQ19ERUZSQUdgIChvciBwb3RlbnRpYWxseSBgQlRSRlNfSU9DX0RFRlJBR19SQU5HRWApIGJlaGF2ZXMuIEkgbmVlZCB0byBiZSBzdXJlIG9uIHRoaXMsIHNvIGxldCBtZSBxdWlja2x5IGNyb3NzLXJlZmVyZW5jZSB0aGUgYGJ0cmZzX2lvY3RsX2RlZnJhZ2AgY29kZSBkaXJlY3RseSB0byBnZXQgYSBjb21wbGV0ZSBwaWN0dXJlLiBHb3R0YSBtYWtlIHN1cmUgSSBmdWxseSB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbiBvZiB0aGlzIHBlcm1pc3Npb24gY2hhbmdlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEzIDA0OjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2J0cmZzX2lvY3RsX2RlZnJhZyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL2J0cmZzL2lvY3RsLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvYnRyZnMvaW9jdGwuYz0yMjE2PXN0YXRpYyBub2lubGluZSBpbnQgYnRyZnNfaW9jdGxfc25hcF9kZXN0cm95KHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmZzL2J0cmZzL2lvY3RsLmMtMjQyOS1cbmZzL2J0cmZzL2lvY3RsLmM6MjQzMDpzdGF0aWMgaW50IGJ0cmZzX2lvY3RsX2RlZnJhZyhzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCBfX3VzZXIgKmFyZ3ApXG5mcy9idHJmcy9pb2N0bC5jLTI0MzEte1xuLS1cbmZzL2J0cmZzL2lvY3RsLmMtMjQzMy1cdHN0cnVjdCBidHJmc19yb290ICpyb290ID0gQlRSRlNfSShpbm9kZSktXHUwMDNlcm9vdDtcbmZzL2J0cmZzL2lvY3RsLmM6MjQzNDpcdHN0cnVjdCBidHJmc19pb2N0bF9kZWZyYWdfcmFuZ2VfYXJncyByYW5nZSA9IHswfTtcbmZzL2J0cmZzL2lvY3RsLmMtMjQzNS1cdGludCByZXQ7XG4tLVxuZnMvYnRyZnMvaW9jdGwuYz01NTIxPWxvbmcgYnRyZnNfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludFxuLS1cbmZzL2J0cmZzL2lvY3RsLmMtNTU1Ni1cdGNhc2UgQlRSRlNfSU9DX0RFRlJBRzpcbmZzL2J0cmZzL2lvY3RsLmM6NTU1NzpcdFx0cmV0dXJuIGJ0cmZzX2lvY3RsX2RlZnJhZyhmaWxlLCBOVUxMKTtcbmZzL2J0cmZzL2lvY3RsLmMtNTU1OC1cdGNhc2UgQlRSRlNfSU9DX0RFRlJBR19SQU5HRTpcbmZzL2J0cmZzL2lvY3RsLmM6NTU1OTpcdFx0cmV0dXJuIGJ0cmZzX2lvY3RsX2RlZnJhZyhmaWxlLCBhcmdwKTtcbmZzL2J0cmZzL2lvY3RsLmMtNTU2MC1cdGNhc2UgQlRSRlNfSU9DX1JFU0laRTpcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMyAwNDozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzYwCgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTM0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRlZnJhZyBJT0NUTCBQZXJtaXNzaW9uIENoZWNrIFJldmlzaW9uKioKCk9rYXksIHNvIEkmIzM5O3ZlIHNwb3R0ZWQgYSBzaWduaWZpY2FudCBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgYGJ0cmZzX2lvY3RsX2RlZnJhZ2AgZnVuY3Rpb24uIEl0IGxvb2tzIGxpa2UgdGhlIHBlcm1pc3Npb24gY2hlY2tpbmcgZm9yIHRoZSBgQlRSRlNfSU9DX0RFRlJBR2AgYW5kIGBCVFJGU19JT0NfREVGUkFHX1JBTkdFYCBpb2N0bHMgaGFzIGJlZW4gdXBkYXRlZC4gU3BlY2lmaWNhbGx5LCB0aGV5JiMzOTtyZSBub3cgdXNpbmcgYGZpbGVfbW50X2lkbWFwKGZpbGUpYCBpbnN0ZWFkIG9mIGAmYW1wO25vcF9tbnRfaWRtYXBgLiBUaGlzIHNoaWZ0IGluIGFwcHJvYWNoIHdhcnJhbnRzIGEgY2xvc2VyIGxvb2ssIGVzcGVjaWFsbHkgZnJvbSBhIHNlY3VyaXR5IHBlcnNwZWN0aXZlLiBJdCYjMzk7cyBhIHByaW1lIHRhcmdldCBmb3IgZnV6emluZy4KCk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIGNvbmZpcm0gdGhlIHJlbGF0ZWQgY29uZmlndXJhdGlvbiBvcHRpb24uIFRoZSB0ZXh0IG1lbnRpb25zIGBCVFJGU19GU2AsIGJ1dCBJJiMzOTtsbCBuZWVkIHRvIGRvdWJsZS1jaGVjayB0aGF0IHRoaXMgaXMgdGhlIGNvcnJlY3QgY29uZmlnIHRvIGVuYWJsZSB0aGUgcmVsZXZhbnQgZnVuY3Rpb25hbGl0eSBhbmQgdGh1cyB0aGUgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdHkuIEkmIzM5O2xsIG5lZWQgdG8gdmVyaWZ5IHRoYXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTMgMDQ6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEJUUkZTX0ZTJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMvYnRyZnMvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9idHJmcy9LY29uZmlnLTMtXG5mcy9idHJmcy9LY29uZmlnOjQ6Y29uZmlnIEJUUkZTX0ZTXG5mcy9idHJmcy9LY29uZmlnLTUtXHR0cmlzdGF0ZSBcJiMzNDtCdHJmcyBmaWxlc3lzdGVtIHN1cHBvcnRcJiMzNDtcbi0tXG5mcy9idHJmcy9LY29uZmlnLTM5LVxuZnMvYnRyZnMvS2NvbmZpZzo0MDpjb25maWcgQlRSRlNfRlNfUE9TSVhfQUNMXG5mcy9idHJmcy9LY29uZmlnLTQxLVx0Ym9vbCBcJiMzNDtCdHJmcyBQT1NJWCBBY2Nlc3MgQ29udHJvbCBMaXN0c1wmIzM0O1xuLS1cbmZzL2J0cmZzL0tjb25maWctNDktXG5mcy9idHJmcy9LY29uZmlnOjUwOmNvbmZpZyBCVFJGU19GU19SVU5fU0FOSVRZX1RFU1RTXG5mcy9idHJmcy9LY29uZmlnLTUxLVx0Ym9vbCBcJiMzNDtCdHJmcyB3aWxsIHJ1biBzYW5pdHkgdGVzdHMgdXBvbiBsb2FkaW5nXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTMgMDQ6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzMwOQoJCQkJCQkJb3V0cHV0OiAxMzgKCQkJCQkJCXRob3VnaHRzOiAyNjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgQlRSRlMgRGVmYXJnIFBhdGNoKioKCk9rYXksIHNvIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBCVFJGUyBjaGFuZ2UuIFRoZSBrZXkgaGVyZSBpcyBgQlRSRlNfRlNgLCB0aGF0JiMzOTtzIG91ciB0YXJnZXQuIEkgbmVlZCB0byBtYWtlIHN1cmUgYGJ0cmZzX2lvY3RsX2RlZnJhZ2AgaXMgdGhlIGZ1bmN0aW9uIHdlJiMzOTtyZSBsb29raW5nIGF0LiBMZXQmIzM5O3MgY29uZmlybSBpdCYjMzk7cyBub3Qgc2ltcGx5IGFuIGlubGluZSBzdGF0aWMgZnVuY3Rpb24uIE9rYXksIGl0JiMzOTtzIGRlZmluZWQgYXMgYHN0YXRpYyBpbnQgYnRyZnNfaW9jdGxfZGVmcmFnKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkIF9fdXNlciAqYXJncClgLCBzbyBpdCAqY291bGQqIGJlIGlubGluZWQsIGJ1dCBnaXZlbiBpdHMgc2l6ZSwgaXQmIzM5O3MgbGlrZWx5IG5vdC4gVGhlIGVudHJ5IHBvaW50IGlzIGBidHJmc19pb2N0bGAsIGJ1dCBmb3IgZnV6emluZywganVzdCBmb2N1c2luZyBvbiBgYnRyZnNfaW9jdGxfZGVmcmFnYCBpcyBzdWZmaWNpZW50LCBzaW5jZSB0aGF0JiMzOTtzIHdoZXJlIHRoZSBjaGFuZ2Ugb2NjdXJzLgoKTm8gb3RoZXIgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBpbnZvbHZlZCwganVzdCB0aGUgY29yZSBgQlRSRlNfRlNgLgoKVGhlIHJlYXNvbmluZyBpcyB0aGF0IHRoaXMgcGF0Y2ggaXMgY2hhbmdpbmcgdGhlIHBlcm1pc3Npb24gY2hlY2sgd2l0aGluIGBidHJmc19pb2N0bF9kZWZyYWdgLiBJdCYjMzk7cyBhbHRlcmluZyBob3cgdGhlIGBCVFJGU19JT0NfREVGUkFHYCBhbmQgYEJUUkZTX0lPQ19ERUZSQUdfUkFOR0VgIGlvY3RscyBiZWhhdmUuIEltcG9ydGFudGx5LCB0aGlzIGlzIGEgY29yZSBmaWxlc3lzdGVtIHBhdGggdGhhdCYjMzk7cyBiZWluZyBtb2RpZmllZCwgbWFraW5nIGl0IGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgY2xlYW51cC4gU28sIHllYWgsIGl0JiMzOTtzIGZ1enotd29ydGh5LgoKUmlnaHQsIEkmIzM5O2xsIGdvIGFoZWFkIGFuZCBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTMgMDQ6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JUUkZTX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnRyZnNfaW9jdGxfZGVmcmFnJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwZXJtaXNzaW9uIGNoZWNrIGluIGBidHJmc19pb2N0bF9kZWZyYWdgIHRvIHVzZSBgZmlsZV9tbnRfaWRtYXAoZmlsZSlgIGluc3RlYWQgb2YgYFx1MDAyNm5vcF9tbnRfaWRtYXBgLiBUaGlzIGFmZmVjdHMgdGhlIGBCVFJGU19JT0NfREVGUkFHYCBhbmQgYEJUUkZTX0lPQ19ERUZSQUdfUkFOR0VgIGlvY3Rscy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgcmVhY2hhYmxlIGNvcmUgZmlsZXN5c3RlbSBwYXRoIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCVFJGU19GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2J0cmZzX2lvY3RsX2RlZnJhZyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgcGVybWlzc2lvbiBjaGVjayBpbiBgYnRyZnNfaW9jdGxfZGVmcmFnYCB0byB1c2UgYGZpbGVfbW50X2lkbWFwKGZpbGUpYCBpbnN0ZWFkIG9mIGBcdTAwMjZub3BfbW50X2lkbWFwYC4gVGhpcyBhZmZlY3RzIHRoZSBgQlRSRlNfSU9DX0RFRlJBR2AgYW5kIGBCVFJGU19JT0NfREVGUkFHX1JBTkdFYCBpb2N0bHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIHJlYWNoYWJsZSBjb3JlIGZpbGVzeXN0ZW0gcGF0aCBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMyAwNDozNzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEzIDA0OjM3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGEgcGVybWlzc2lvbiBjaGVjayBpbiBgYnRyZnNfaW9jdGxfZGVmcmFnYCBieSByZXBsYWNpbmcgYFx1MDAyNm5vcF9tbnRfaWRtYXBgIHdpdGggYGZpbGVfbW50X2lkbWFwKGZpbGUpYCBpbiB0aGUgY2FsbCB0byBgaW5vZGVfcGVybWlzc2lvbmAuIFRoaXMgaXMgYSBsb2dpYyBjaGFuZ2UgcmVsYXRlZCB0byBhY2Nlc3MgY29udHJvbCBhbmQgbW91bnQgaWRtYXBzLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBtZW1vcnkgYWxsb2NhdGlvbnMsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlLCBvciB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcy4gVGhlcmVmb3JlLCB0aGVyZSBpcyBubyByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MgdGhhdCB3b3VsZCByZXF1aXJlIEtNU0FOLiBBbnkgcG90ZW50aWFsIGlzc3VlcyB3b3VsZCBiZSByZWxhdGVkIHRvIGxvZ2ljIGJ1Z3Mgb3Igc3RhbmRhcmQgbWVtb3J5IGVycm9ycywgd2hpY2ggYXJlIGNvdmVyZWQgYnkgb3RoZXIgdG9vbHMuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5CmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kCmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikKZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuCgpDUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjoKLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlCiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOCiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUAogIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuCi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsCiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLgoKUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTiwKTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy4KQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWQpzZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrcwp0aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLgoKTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3QKdW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsCmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5cwp0aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZwp1bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2wKZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLApjYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy4KClNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczoKMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2IKICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHMKICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC4KMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcwogICBvciBzdHJ1Y3QgZmllbGRzLgozLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzCiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuCjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzCiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy4KClNldCBOZWVkc0tNU0FOPWZhbHNlIElGOgotIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyCiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0CiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLgotIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkCiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLgotIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy4KClVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGUKZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGY4MWMzNmVmZmI1NjM3MTFiZmQ1NTM1OTFjYjdkY2RlMWQ0ZGM3ZTkKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEF1ZyAxMyAwNDozNzowMCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL2lvY3RsLmMgYi9mcy9idHJmcy9pb2N0bC5jCmluZGV4IDcyYmM5ZDRmNzcwODcuLjYwNzMyOWRlZGQ1MDMgMTAwNjQ0Ci0tLSBhL2ZzL2J0cmZzL2lvY3RsLmMKJiM0MzsmIzQzOyYjNDM7IGIvZnMvYnRyZnMvaW9jdGwuYwpAQCAtMjQ1OCw3ICYjNDM7MjQ1OCw3IEBAIHN0YXRpYyBpbnQgYnRyZnNfaW9jdGxfZGVmcmFnKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkIF9fdXNlciAqYXJncCkKIAkJICogcnVubmluZyBhbmQgYWxsb3dzIGRlZnJhZyBvbiBmaWxlcyBvcGVuIGluIHJlYWQtb25seSBtb2RlLgogCQkgKi8KIAkJaWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pICZhbXA7JmFtcDsKLQkJICAgIGlub2RlX3Blcm1pc3Npb24oJmFtcDtub3BfbW50X2lkbWFwLCBpbm9kZSwgTUFZX1dSSVRFKSkgewomIzQzOwkJICAgIGlub2RlX3Blcm1pc3Npb24oZmlsZV9tbnRfaWRtYXAoZmlsZSksIGlub2RlLCBNQVlfV1JJVEUpKSB7CiAJCQlyZXQgPSAtRVBFUk07CiAJCQlnb3RvIG91dDsKIAkJfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTMgMDQ6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAwMQoJCQkJCQkJb3V0cHV0OiAxNTIKCQkJCQkJCXRob3VnaHRzOiAyNjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgQnRyZnMgRGVmcmFnIFBlcm1pc3Npb24gUGF0Y2gqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRnJvbSB3aGF0IEkmIzM5O20gc2VlaW5nLCB0aGlzIHBhdGNoIGluIGBidHJmc19pb2N0bF9kZWZyYWdgIGlzIGEgc3RyYWlnaHRmb3J3YXJkIHBlcm1pc3Npb24gY2hlY2sgYWRqdXN0bWVudC4gSXQmIzM5O3Mgc3dhcHBpbmcgb3V0IHRoZSBtb3VudCBJRCBtYXAgdXNlZCBpbiB0aGUgYGlub2RlX3Blcm1pc3Npb25gIGNhbGwuIEluc3RlYWQgb2YgdXNpbmcgYCZhbXA7bm9wX21udF9pZG1hcGAsIHdlJiMzOTtyZSBub3cgdXNpbmcgYGZpbGVfbW50X2lkbWFwKGZpbGUpYC4gVGhhdCBzZWVtcyByaWdodCwgZ2l2ZW4gdGhlIGNvbnRleHQuCgpUaGUgYmVhdXR5IG9mIHRoaXMgaXMgaXRzIHNpbXBsaWNpdHkuIFRoZXJlJiMzOTtzIG5vdGhpbmcgbmV3IGJlaW5nIGludHJvZHVjZWQgaGVyZSDigJMgbm8gbmV3IGRhdGEgc3RydWN0dXJlcywgYWxsb2NhdGlvbnMsIG9yIGFueSBwb3RlbnRpYWwgZm9yIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzLiBJdCYjMzk7cyBwdXJlbHkgYSBtb2RpZmljYXRpb24gdG8gdGhlIGFyZ3VtZW50IHBhc3NlZCB0byBhbiBleGlzdGluZyBwZXJtaXNzaW9uIGNoZWNraW5nIGZ1bmN0aW9uLiBJdCYjMzk7cyBhIGNsZWFuIGNoYW5nZSwgbWFraW5nIHN1cmUgd2UmIzM5O3JlIHVzaW5nIHRoZSBjb3JyZWN0IG1vdW50IGNvbnRleHQgZm9yIHRoZSBjaGVjaywgd2hpY2ggaXMgY3J1Y2lhbCBmb3IgZmlsZSBzeXN0ZW0gaW50ZWdyaXR5LgoKQmVjYXVzZSBvZiB0aGlzIHNwZWNpZmljIHNjb3BlLCB0aGUgdXNlIG9mIEtNU0FOIGlzIHVubmVjZXNzYXJ5IGhlcmUuIFRoaXMgaXNuJiMzOTt0IHRoZSBraW5kIG9mIGNoYW5nZSB0aGF0IHdvdWxkIHRyaWdnZXIgdGhvc2Uga2luZHMgb2YgbWVtb3J5IHNhZmV0eSBjb25jZXJucywgdGhlcmUmIzM5O3Mgbm8gbWVtb3J5IGJlaW5nIHVzZWQgaGVyZS4gQSBzdGFuZGFyZCBtZW1vcnkgYW5hbHlzaXMsIGV2ZW4gS0FTQU4sIHdvdWxkbiYjMzk7dCBiZSB2ZXJ5IHVzZWZ1bCBoZXJlLCBiZWNhdXNlIHRoZXJlJiMzOTtzIG5vdGhpbmcgdGhhdCBzdGFuZGFyZCB0b29scyB3b3VsZCBiZSB1c2VmdWwgZm9yIGZpbmRpbmcuIFNvLCBJIHdpbGwgYmUgc2V0dGluZyBgTmVlZHNLTVNBTj1mYWxzZWAgYW5kIGFkZGluZyB0aGUgYXBwcm9wcmlhdGUgcmVhc29uaW5nIGluIHRoZSBwYXRjaCBtZXRhZGF0YS4gSXQmIzM5O3MgYSBnb29kIHBhdGNoLCBidXQgbm8gbmVlZCB0byBvdmVyY29tcGxpY2F0ZSB0aGUgYW5hbHlzaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEzIDA0OjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGEgcGVybWlzc2lvbiBjaGVjayBpbiBgYnRyZnNfaW9jdGxfZGVmcmFnYCBieSByZXBsYWNpbmcgYFx1MDAyNm5vcF9tbnRfaWRtYXBgIHdpdGggYGZpbGVfbW50X2lkbWFwKGZpbGUpYCBpbiB0aGUgY2FsbCB0byBgaW5vZGVfcGVybWlzc2lvbmAuIFRoaXMgaXMgYSBsb2dpYyBjaGFuZ2UgcmVsYXRlZCB0byBhY2Nlc3MgY29udHJvbCBhbmQgbW91bnQgaWRtYXBzLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBtZW1vcnkgYWxsb2NhdGlvbnMsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlLCBvciB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcy4gVGhlcmVmb3JlLCB0aGVyZSBpcyBubyByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MgdGhhdCB3b3VsZCByZXF1aXJlIEtNU0FOLiBBbnkgcG90ZW50aWFsIGlzc3VlcyB3b3VsZCBiZSByZWxhdGVkIHRvIGxvZ2ljIGJ1Z3Mgb3Igc3RhbmRhcmQgbWVtb3J5IGVycm9ycywgd2hpY2ggYXJlIGNvdmVyZWQgYnkgb3RoZXIgdG9vbHMuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhIHBlcm1pc3Npb24gY2hlY2sgaW4gYGJ0cmZzX2lvY3RsX2RlZnJhZ2AgYnkgcmVwbGFjaW5nIGBcdTAwMjZub3BfbW50X2lkbWFwYCB3aXRoIGBmaWxlX21udF9pZG1hcChmaWxlKWAgaW4gdGhlIGNhbGwgdG8gYGlub2RlX3Blcm1pc3Npb25gLiBUaGlzIGlzIGEgbG9naWMgY2hhbmdlIHJlbGF0ZWQgdG8gYWNjZXNzIGNvbnRyb2wgYW5kIG1vdW50IGlkbWFwcy4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgbWVtb3J5IGFsbG9jYXRpb25zLCBzdHJ1Y3R1cmVzIHNlbnQgdG8gdXNlciBzcGFjZSwgb3IgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMuIFRoZXJlZm9yZSwgdGhlcmUgaXMgbm8gcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzIHRoYXQgd291bGQgcmVxdWlyZSBLTVNBTi4gQW55IHBvdGVudGlhbCBpc3N1ZXMgd291bGQgYmUgcmVsYXRlZCB0byBsb2dpYyBidWdzIG9yIHN0YW5kYXJkIG1lbW9yeSBlcnJvcnMsIHdoaWNoIGFyZSBjb3ZlcmVkIGJ5IG90aGVyIHRvb2xzLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0xM1QwNDozNzowMi4xNDg0OTM5NDJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjQ1NjUyNTQ3MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCVFJGU19GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJ0cmZzX2lvY3RsX2RlZnJhZ1wiXG4gIF0sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYSBwZXJtaXNzaW9uIGNoZWNrIGluIGBidHJmc19pb2N0bF9kZWZyYWdgIGJ5IHJlcGxhY2luZyBgXFx1MDAyNm5vcF9tbnRfaWRtYXBgIHdpdGggYGZpbGVfbW50X2lkbWFwKGZpbGUpYCBpbiB0aGUgY2FsbCB0byBgaW5vZGVfcGVybWlzc2lvbmAuIFRoaXMgaXMgYSBsb2dpYyBjaGFuZ2UgcmVsYXRlZCB0byBhY2Nlc3MgY29udHJvbCBhbmQgbW91bnQgaWRtYXBzLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBtZW1vcnkgYWxsb2NhdGlvbnMsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlLCBvciB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcy4gVGhlcmVmb3JlLCB0aGVyZSBpcyBubyByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MgdGhhdCB3b3VsZCByZXF1aXJlIEtNU0FOLiBBbnkgcG90ZW50aWFsIGlzc3VlcyB3b3VsZCBiZSByZWxhdGVkIHRvIGxvZ2ljIGJ1Z3Mgb3Igc3RhbmRhcmQgbWVtb3J5IGVycm9ycywgd2hpY2ggYXJlIGNvdmVyZWQgYnkgb3RoZXIgdG9vbHMuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBlcm1pc3Npb24gY2hlY2sgaW4gYGJ0cmZzX2lvY3RsX2RlZnJhZ2AgdG8gdXNlIGBmaWxlX21udF9pZG1hcChmaWxlKWAgaW5zdGVhZCBvZiBgXFx1MDAyNm5vcF9tbnRfaWRtYXBgLiBUaGlzIGFmZmVjdHMgdGhlIGBCVFJGU19JT0NfREVGUkFHYCBhbmQgYEJUUkZTX0lPQ19ERUZSQUdfUkFOR0VgIGlvY3Rscy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgcmVhY2hhYmxlIGNvcmUgZmlsZXN5c3RlbSBwYXRoIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xM1QwNDozNzowMi4xNDg1MDA3MTJaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyNjQwMjgxOTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBmODFjMzZlZmZiNTYzNzExYmZkNTUzNTkxY2I3ZGNkZTFkNGRjN2U5XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgQXVnIDEzIDA0OjM3OjAwIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL2lvY3RsLmMgYi9mcy9idHJmcy9pb2N0bC5jXFxuaW5kZXggNzJiYzlkNGY3NzA4Ny4uNjA3MzI5ZGVkZDUwMyAxMDA2NDRcXG4tLS0gYS9mcy9idHJmcy9pb2N0bC5jXFxuKysrIGIvZnMvYnRyZnMvaW9jdGwuY1xcbkBAIC0yNDU4LDcgKzI0NTgsNyBAQCBzdGF0aWMgaW50IGJ0cmZzX2lvY3RsX2RlZnJhZyhzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCBfX3VzZXIgKmFyZ3ApXFxuIFxcdFxcdCAqIHJ1bm5pbmcgYW5kIGFsbG93cyBkZWZyYWcgb24gZmlsZXMgb3BlbiBpbiByZWFkLW9ubHkgbW9kZS5cXG4gXFx0XFx0ICovXFxuIFxcdFxcdGlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSBcXHUwMDI2XFx1MDAyNlxcbi1cXHRcXHQgICAgaW5vZGVfcGVybWlzc2lvbihcXHUwMDI2bm9wX21udF9pZG1hcCwgaW5vZGUsIE1BWV9XUklURSkpIHtcXG4rXFx0XFx0ICAgIGlub2RlX3Blcm1pc3Npb24oZmlsZV9tbnRfaWRtYXAoZmlsZSksIGlub2RlLCBNQVlfV1JJVEUpKSB7XFxuIFxcdFxcdFxcdHJldCA9IC1FUEVSTTtcXG4gXFx0XFx0XFx0Z290byBvdXQ7XFxuIFxcdFxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTNUMDQ6Mzc6MDMuNDE1OTUyMjZaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxNDU0MTQ5OTczNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCVFJGU19GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJ0cmZzX2lvY3RsX2RlZnJhZ1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwZXJtaXNzaW9uIGNoZWNrIGluIGBidHJmc19pb2N0bF9kZWZyYWdgIHRvIHVzZSBgZmlsZV9tbnRfaWRtYXAoZmlsZSlgIGluc3RlYWQgb2YgYFxcdTAwMjZub3BfbW50X2lkbWFwYC4gVGhpcyBhZmZlY3RzIHRoZSBgQlRSRlNfSU9DX0RFRlJBR2AgYW5kIGBCVFJGU19JT0NfREVGUkFHX1JBTkdFYCBpb2N0bHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIHJlYWNoYWJsZSBjb3JlIGZpbGVzeXN0ZW0gcGF0aCBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZjgxYzM2ZWZmYjU2MzcxMWJmZDU1MzU5MWNiN2RjZGUxZDRkYzdlOVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDEzIDA0OjM3OjAwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvYnRyZnMvaW9jdGwuYyBiL2ZzL2J0cmZzL2lvY3RsLmNcbmluZGV4IDcyYmM5ZDRmNzcwODcuLjYwNzMyOWRlZGQ1MDMgMTAwNjQ0XG4tLS0gYS9mcy9idHJmcy9pb2N0bC5jXG4rKysgYi9mcy9idHJmcy9pb2N0bC5jXG5AQCAtMjQ1OCw3ICsyNDU4LDcgQEAgc3RhdGljIGludCBidHJmc19pb2N0bF9kZWZyYWcoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgX191c2VyICphcmdwKVxuIFx0XHQgKiBydW5uaW5nIGFuZCBhbGxvd3MgZGVmcmFnIG9uIGZpbGVzIG9wZW4gaW4gcmVhZC1vbmx5IG1vZGUuXG4gXHRcdCAqL1xuIFx0XHRpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1JTikgXHUwMDI2XHUwMDI2XG4tXHRcdCAgICBpbm9kZV9wZXJtaXNzaW9uKFx1MDAyNm5vcF9tbnRfaWRtYXAsIGlub2RlLCBNQVlfV1JJVEUpKSB7XG4rXHRcdCAgICBpbm9kZV9wZXJtaXNzaW9uKGZpbGVfbW50X2lkbWFwKGZpbGUpLCBpbm9kZSwgTUFZX1dSSVRFKSkge1xuIFx0XHRcdHJldCA9IC1FUEVSTTtcbiBcdFx0XHRnb3RvIG91dDtcbiBcdFx0fVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTNUMDQ6Mzc6MDMuNDE1OTU1MDZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDI2Njk2MjgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uXG5cbioqQW5hbHl6aW5nIGEgQnRyZnMgRGVmcmFnIFBhdGNoKipcblxuQWxyaWdodCwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0J3MgdG91Y2hlZCBgZnMvYnRyZnMvaW9jdGwuY2AuIFNwZWNpZmljYWxseSwgdGhlIGNoYW5nZSBpcyB3aXRoaW4gdGhlIGBidHJmc19pb2N0bF9kZWZyYWdgIGZ1bmN0aW9uLiBUaGUga2V5IGNoYW5nZSBpcyB0aGUgcmVwbGFjZW1lbnQgb2YgYGlub2RlX3Blcm1pc3Npb24oXHUwMDI2bm9wX21udF9pZG1hcCwgaW5vZGUsIE1BWV9XUklURSlgIHdpdGggYGlub2RlX3Blcm1pc3Npb24oZmlsZV9tbnRfaWRtYXAoZmlsZSksIGlub2RlLCBNQVlfV1JJVEUpYC4gSG1tLCB0aGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBob3cgYEJUUkZTX0lPQ19ERUZSQUdgIChvciBwb3RlbnRpYWxseSBgQlRSRlNfSU9DX0RFRlJBR19SQU5HRWApIGJlaGF2ZXMuIEkgbmVlZCB0byBiZSBzdXJlIG9uIHRoaXMsIHNvIGxldCBtZSBxdWlja2x5IGNyb3NzLXJlZmVyZW5jZSB0aGUgYGJ0cmZzX2lvY3RsX2RlZnJhZ2AgY29kZSBkaXJlY3RseSB0byBnZXQgYSBjb21wbGV0ZSBwaWN0dXJlLiBHb3R0YSBtYWtlIHN1cmUgSSBmdWxseSB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbiBvZiB0aGlzIHBlcm1pc3Npb24gY2hhbmdlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDA0LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTI1LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTNUMDQ6Mzc6MDcuNDQyNjU1NDNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzY3ODQyMTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnRyZnNfaW9jdGxfZGVmcmFnXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2J0cmZzL2lvY3RsLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvYnRyZnMvaW9jdGwuYz0yMjE2PXN0YXRpYyBub2lubGluZSBpbnQgYnRyZnNfaW9jdGxfc25hcF9kZXN0cm95KHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZnMvYnRyZnMvaW9jdGwuYy0yNDI5LVxcbmZzL2J0cmZzL2lvY3RsLmM6MjQzMDpzdGF0aWMgaW50IGJ0cmZzX2lvY3RsX2RlZnJhZyhzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCBfX3VzZXIgKmFyZ3ApXFxuZnMvYnRyZnMvaW9jdGwuYy0yNDMxLXtcXG4tLVxcbmZzL2J0cmZzL2lvY3RsLmMtMjQzMy1cXHRzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCA9IEJUUkZTX0koaW5vZGUpLVxcdTAwM2Vyb290O1xcbmZzL2J0cmZzL2lvY3RsLmM6MjQzNDpcXHRzdHJ1Y3QgYnRyZnNfaW9jdGxfZGVmcmFnX3JhbmdlX2FyZ3MgcmFuZ2UgPSB7MH07XFxuZnMvYnRyZnMvaW9jdGwuYy0yNDM1LVxcdGludCByZXQ7XFxuLS1cXG5mcy9idHJmcy9pb2N0bC5jPTU1MjE9bG9uZyBidHJmc19pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50XFxuLS1cXG5mcy9idHJmcy9pb2N0bC5jLTU1NTYtXFx0Y2FzZSBCVFJGU19JT0NfREVGUkFHOlxcbmZzL2J0cmZzL2lvY3RsLmM6NTU1NzpcXHRcXHRyZXR1cm4gYnRyZnNfaW9jdGxfZGVmcmFnKGZpbGUsIE5VTEwpO1xcbmZzL2J0cmZzL2lvY3RsLmMtNTU1OC1cXHRjYXNlIEJUUkZTX0lPQ19ERUZSQUdfUkFOR0U6XFxuZnMvYnRyZnMvaW9jdGwuYzo1NTU5OlxcdFxcdHJldHVybiBidHJmc19pb2N0bF9kZWZyYWcoZmlsZSwgYXJncCk7XFxuZnMvYnRyZnMvaW9jdGwuYy01NTYwLVxcdGNhc2UgQlRSRlNfSU9DX1JFU0laRTpcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTNUMDQ6Mzc6MDcuNTE5NDQ2Nzc5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzc4ODg2ODAyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipEZWZyYWcgSU9DVEwgUGVybWlzc2lvbiBDaGVjayBSZXZpc2lvbioqXG5cbk9rYXksIHNvIEkndmUgc3BvdHRlZCBhIHNpZ25pZmljYW50IGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBgYnRyZnNfaW9jdGxfZGVmcmFnYCBmdW5jdGlvbi4gSXQgbG9va3MgbGlrZSB0aGUgcGVybWlzc2lvbiBjaGVja2luZyBmb3IgdGhlIGBCVFJGU19JT0NfREVGUkFHYCBhbmQgYEJUUkZTX0lPQ19ERUZSQUdfUkFOR0VgIGlvY3RscyBoYXMgYmVlbiB1cGRhdGVkLiBTcGVjaWZpY2FsbHksIHRoZXkncmUgbm93IHVzaW5nIGBmaWxlX21udF9pZG1hcChmaWxlKWAgaW5zdGVhZCBvZiBgXHUwMDI2bm9wX21udF9pZG1hcGAuIFRoaXMgc2hpZnQgaW4gYXBwcm9hY2ggd2FycmFudHMgYSBjbG9zZXIgbG9vaywgZXNwZWNpYWxseSBmcm9tIGEgc2VjdXJpdHkgcGVyc3BlY3RpdmUuIEl0J3MgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcuXG5cbk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIGNvbmZpcm0gdGhlIHJlbGF0ZWQgY29uZmlndXJhdGlvbiBvcHRpb24uIFRoZSB0ZXh0IG1lbnRpb25zIGBCVFJGU19GU2AsIGJ1dCBJJ2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoYXQgdGhpcyBpcyB0aGUgY29ycmVjdCBjb25maWcgdG8gZW5hYmxlIHRoZSByZWxldmFudCBmdW5jdGlvbmFsaXR5IGFuZCB0aHVzIHRoZSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0eS4gSSdsbCBuZWVkIHRvIHZlcmlmeSB0aGF0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzYwLCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTM0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEzVDA0OjM3OjExLjMwODMxODcyMloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3ODk1OTE4OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQlRSRlNfRlNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZnMvYnRyZnMvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9idHJmcy9LY29uZmlnLTMtXFxuZnMvYnRyZnMvS2NvbmZpZzo0OmNvbmZpZyBCVFJGU19GU1xcbmZzL2J0cmZzL0tjb25maWctNS1cXHR0cmlzdGF0ZSBcXFwiQnRyZnMgZmlsZXN5c3RlbSBzdXBwb3J0XFxcIlxcbi0tXFxuZnMvYnRyZnMvS2NvbmZpZy0zOS1cXG5mcy9idHJmcy9LY29uZmlnOjQwOmNvbmZpZyBCVFJGU19GU19QT1NJWF9BQ0xcXG5mcy9idHJmcy9LY29uZmlnLTQxLVxcdGJvb2wgXFxcIkJ0cmZzIFBPU0lYIEFjY2VzcyBDb250cm9sIExpc3RzXFxcIlxcbi0tXFxuZnMvYnRyZnMvS2NvbmZpZy00OS1cXG5mcy9idHJmcy9LY29uZmlnOjUwOmNvbmZpZyBCVFJGU19GU19SVU5fU0FOSVRZX1RFU1RTXFxuZnMvYnRyZnMvS2NvbmZpZy01MS1cXHRib29sIFxcXCJCdHJmcyB3aWxsIHJ1biBzYW5pdHkgdGVzdHMgdXBvbiBsb2FkaW5nXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xM1QwNDozNzoxMS4zODcyODc4MDFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2Mzk0MDU2NjQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIEJUUkZTIERlZmFyZyBQYXRjaCoqXG5cbk9rYXksIHNvIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIEJUUkZTIGNoYW5nZS4gVGhlIGtleSBoZXJlIGlzIGBCVFJGU19GU2AsIHRoYXQncyBvdXIgdGFyZ2V0LiBJIG5lZWQgdG8gbWFrZSBzdXJlIGBidHJmc19pb2N0bF9kZWZyYWdgIGlzIHRoZSBmdW5jdGlvbiB3ZSdyZSBsb29raW5nIGF0LiBMZXQncyBjb25maXJtIGl0J3Mgbm90IHNpbXBseSBhbiBpbmxpbmUgc3RhdGljIGZ1bmN0aW9uLiBPa2F5LCBpdCdzIGRlZmluZWQgYXMgYHN0YXRpYyBpbnQgYnRyZnNfaW9jdGxfZGVmcmFnKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkIF9fdXNlciAqYXJncClgLCBzbyBpdCAqY291bGQqIGJlIGlubGluZWQsIGJ1dCBnaXZlbiBpdHMgc2l6ZSwgaXQncyBsaWtlbHkgbm90LiBUaGUgZW50cnkgcG9pbnQgaXMgYGJ0cmZzX2lvY3RsYCwgYnV0IGZvciBmdXp6aW5nLCBqdXN0IGZvY3VzaW5nIG9uIGBidHJmc19pb2N0bF9kZWZyYWdgIGlzIHN1ZmZpY2llbnQsIHNpbmNlIHRoYXQncyB3aGVyZSB0aGUgY2hhbmdlIG9jY3Vycy5cblxuTm8gb3RoZXIgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBpbnZvbHZlZCwganVzdCB0aGUgY29yZSBgQlRSRlNfRlNgLlxuXG5UaGUgcmVhc29uaW5nIGlzIHRoYXQgdGhpcyBwYXRjaCBpcyBjaGFuZ2luZyB0aGUgcGVybWlzc2lvbiBjaGVjayB3aXRoaW4gYGJ0cmZzX2lvY3RsX2RlZnJhZ2AuIEl0J3MgYWx0ZXJpbmcgaG93IHRoZSBgQlRSRlNfSU9DX0RFRlJBR2AgYW5kIGBCVFJGU19JT0NfREVGUkFHX1JBTkdFYCBpb2N0bHMgYmVoYXZlLiBJbXBvcnRhbnRseSwgdGhpcyBpcyBhIGNvcmUgZmlsZXN5c3RlbSBwYXRoIHRoYXQncyBiZWluZyBtb2RpZmllZCwgbWFraW5nIGl0IGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgY2xlYW51cC4gU28sIHllYWgsIGl0J3MgZnV6ei13b3J0aHkuXG5cblJpZ2h0LCBJJ2xsIGdvIGFoZWFkIGFuZCBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzMDksIk91dHB1dFRva2VucyI6MTM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEzVDA0OjM3OjE3Ljc4MTM0NzEwOVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc2MDk3ODg4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCVFJGU19GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJ0cmZzX2lvY3RsX2RlZnJhZ1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwZXJtaXNzaW9uIGNoZWNrIGluIGBidHJmc19pb2N0bF9kZWZyYWdgIHRvIHVzZSBgZmlsZV9tbnRfaWRtYXAoZmlsZSlgIGluc3RlYWQgb2YgYFxcdTAwMjZub3BfbW50X2lkbWFwYC4gVGhpcyBhZmZlY3RzIHRoZSBgQlRSRlNfSU9DX0RFRlJBR2AgYW5kIGBCVFJGU19JT0NfREVGUkFHX1JBTkdFYCBpb2N0bHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIHJlYWNoYWJsZSBjb3JlIGZpbGVzeXN0ZW0gcGF0aCBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCVFJGU19GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJ0cmZzX2lvY3RsX2RlZnJhZ1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwZXJtaXNzaW9uIGNoZWNrIGluIGBidHJmc19pb2N0bF9kZWZyYWdgIHRvIHVzZSBgZmlsZV9tbnRfaWRtYXAoZmlsZSlgIGluc3RlYWQgb2YgYFxcdTAwMjZub3BfbW50X2lkbWFwYC4gVGhpcyBhZmZlY3RzIHRoZSBgQlRSRlNfSU9DX0RFRlJBR2AgYW5kIGBCVFJGU19JT0NfREVGUkFHX1JBTkdFYCBpb2N0bHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIHJlYWNoYWJsZSBjb3JlIGZpbGVzeXN0ZW0gcGF0aCBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTNUMDQ6Mzc6MTcuOTU3NDU3ODQ3WiIsIlNlcSI6OSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY2NDc1NDM1NTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xM1QwNDozNzoxNy45NTg0MzQ2NTdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6ImFnZW50IiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NjY0NjU1OTk0NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYSBwZXJtaXNzaW9uIGNoZWNrIGluIGBidHJmc19pb2N0bF9kZWZyYWdgIGJ5IHJlcGxhY2luZyBgXFx1MDAyNm5vcF9tbnRfaWRtYXBgIHdpdGggYGZpbGVfbW50X2lkbWFwKGZpbGUpYCBpbiB0aGUgY2FsbCB0byBgaW5vZGVfcGVybWlzc2lvbmAuIFRoaXMgaXMgYSBsb2dpYyBjaGFuZ2UgcmVsYXRlZCB0byBhY2Nlc3MgY29udHJvbCBhbmQgbW91bnQgaWRtYXBzLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBtZW1vcnkgYWxsb2NhdGlvbnMsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlLCBvciB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcy4gVGhlcmVmb3JlLCB0aGVyZSBpcyBubyByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MgdGhhdCB3b3VsZCByZXF1aXJlIEtNU0FOLiBBbnkgcG90ZW50aWFsIGlzc3VlcyB3b3VsZCBiZSByZWxhdGVkIHRvIGxvZ2ljIGJ1Z3Mgb3Igc3RhbmRhcmQgbWVtb3J5IGVycm9ycywgd2hpY2ggYXJlIGNvdmVyZWQgYnkgb3RoZXIgdG9vbHMuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5XG5lcnJvciBkZXRlY3RvcnMgKEtBU0FOIGFuZCBLTVNBTikuIFlvdXIgam9iIGlzIHRvIHJldmlldyB0aGUgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZFxuZGV0ZXJtaW5lIGlmIHRoZSBjb2RlIGNoYW5nZXMganVzdGlmeSBzcGF3bmluZyBhIGRlZGljYXRlZCBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKVxuZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuXG5cbkNSSVRJQ0FMIERJU1RJTkNUSU9OIEJFVFdFRU4gS0FTQU4gQU5EIEtNU0FOOlxuLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlXG4gIGEgY29tcHJlaGVuc2l2ZSBzdWl0ZSBvZiBkZWJ1Z2dpbmcgdG9vbHMgYW5kIHNhbml0aXplcnMsIGluY2x1ZGluZyBLQVNBTlxuICAob3V0LW9mLWJvdW5kcyBhY2Nlc3NlcywgdXNlLWFmdGVyLWZyZWUsIGRvdWJsZSBmcmVlLCBpbnZhbGlkIGZyZWUpLCBMT0NLREVQXG4gIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuXG4tIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpIGRldGVjdHMgcmVhZHMgb2YgVU5JTklUSUFMSVpFRCBtZW1vcnkgKHN0YWNrLCBoZWFwLFxuICBvciBwYWdlIGFsbG9jYXRpb25zKSBhbmQga2VybmVsLXRvLXVzZXIgbWVtb3J5IGluZm8tbGVha3MuXG5cblJ1bGU6IFRIRVJFIElTIE5PIFNFTlNFIElOIFJVTk5JTkcgQSBLTVNBTiBTRVNTSU9OIElGIEEgQlVHIENBTiBCRSBDQVVHSFQgQlkgS0FTQU4sXG5MT0NLREVQLCBPUiBPVEhFUiBTVEFOREFSRCBCVUcgREVURUNUT1JTLlxuQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWVxuc2V0IE5lZWRzS01TQU49dHJ1ZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGludHJvZHVjZSBvciBleHBvc2UgVU5JTklUSUFMSVpFRCBNRU1PUlkgcmlza3NcbnRoYXQgYXJlIGRldGVjdGVkIE9OTFkgYnkgS01TQU4uXG5cbkxvb2sgaG9saXN0aWNhbGx5IGF0IHRoZSBwYXRjaCBzZXJpZXMgYW5kIHN1cnJvdW5kaW5nIGNvZGUuIEV2ZW4gaWYgbm8gZGlyZWN0XG51bmluaXRpYWxpemVkIGZpZWxkIGFjY2Vzc2VzIG9yIG5ldyBidWZmZXIgYWxsb2NhdGlvbnMgYXJlIGFkZGVkIGluIHRoZSBkaWZmIGl0c2VsZixcbmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5c1xudGhhdCBjaGFuZ2UgaG93IHRoZSByZXN0IG9mIHRoZSBjb2RlIG9wZXJhdGVzIG9uIGV4aXN0aW5nIGJ1ZmZlcnMgKGUuZy4gYWxsb3dpbmdcbnVuaW5pdGlhbGl6ZWQgc3RhY2svaGVhcCBtZW1vcnkgdG8gYmUgcmVhZCwgY29waWVkIHRvIHVzZXIgc3BhY2UsIG9yIHVzZWQgaW4gY29udHJvbFxuZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLFxuY2FsbGVkIGZ1bmN0aW9ucywgYW5kIGNhbGxlcnMuXG5cblNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczpcbjEuIEtlcm5lbCBzdHJ1Y3R1cmVzIHNlbnQgdG8gdXNlciBzcGFjZSAodmlhIGNvcHlfdG9fdXNlciwgcHV0X3VzZXIsIG5ldGxpbmsgc2tiXG4gICBhdHRyaWJ1dGVzLCBpb2N0bCBvdXRwdXQgYXJndW1lbnRzLCBzb2NrZXQgb3B0aW9ucywgb3IgQlBGIGJ1ZmZlcnMpIHdoZXJlIGZpZWxkc1xuICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC5cbjIuIENvbmRpdGlvbmFsIGxvZ2ljIG9yIGJyYW5jaGluZyB0aGF0IGRlcGVuZHMgb24gcG90ZW50aWFsbHkgdW5pbml0aWFsaXplZCB2YXJpYWJsZXNcbiAgIG9yIHN0cnVjdCBmaWVsZHMuXG4zLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzXG4gICBjb3VsZCBiZSByZWFkIGxhdGVyIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLlxuNC4gQm91bmRzIGNoZWNrcywgbGVuZ3Rocywgb3IgbG9naWMgaW4gYSB3YXkgdGhhdCBhbGxvd3Mgc3Vycm91bmRpbmcgY29kZSB0byBhY2Nlc3NcbiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy5cblxuU2V0IE5lZWRzS01TQU49ZmFsc2UgSUY6XG4tIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyXG4gIGRlcmVmZXJlbmNlcywgbG9ja2luZyBkZWFkbG9ja3MsIG9yIHVzZS1hZnRlci1mcmVlIGJ1Z3MgKHRoZXNlIGFyZSBhbHJlYWR5IGNhdWdodFxuICBieSBLQVNBTiwgTE9DS0RFUCwgb3Igc3RhbmRhcmQgYnVnIGRldGVjdG9ycykuXG4tIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkXG4gIG9yIGluaXRpYWxpemVkIChlLmcuIHVzaW5nID0gezB9LCBtZW1zZXQsIGt6YWxsb2MpIGJlZm9yZSBiZWluZyByZWFkIG9yIGNvcGllZC5cbi0gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLlxuXG5Vc2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlIGlmIG5lY2Vzc2FyeSwgdGhlbiBwcm92aWRlXG5kZXRhaWxlZCBLTVNBTlJlYXNvbmluZyBjb250cmFzdGluZyBLQVNBTiB2cyBLTVNBTiBhcHBsaWNhYmlsaXR5IGZvciB0aGlzIHBhdGNoLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZjgxYzM2ZWZmYjU2MzcxMWJmZDU1MzU5MWNiN2RjZGUxZDRkYzdlOVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDEzIDA0OjM3OjAwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvYnRyZnMvaW9jdGwuYyBiL2ZzL2J0cmZzL2lvY3RsLmNcbmluZGV4IDcyYmM5ZDRmNzcwODcuLjYwNzMyOWRlZGQ1MDMgMTAwNjQ0XG4tLS0gYS9mcy9idHJmcy9pb2N0bC5jXG4rKysgYi9mcy9idHJmcy9pb2N0bC5jXG5AQCAtMjQ1OCw3ICsyNDU4LDcgQEAgc3RhdGljIGludCBidHJmc19pb2N0bF9kZWZyYWcoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgX191c2VyICphcmdwKVxuIFx0XHQgKiBydW5uaW5nIGFuZCBhbGxvd3MgZGVmcmFnIG9uIGZpbGVzIG9wZW4gaW4gcmVhZC1vbmx5IG1vZGUuXG4gXHRcdCAqL1xuIFx0XHRpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1JTikgXHUwMDI2XHUwMDI2XG4tXHRcdCAgICBpbm9kZV9wZXJtaXNzaW9uKFx1MDAyNm5vcF9tbnRfaWRtYXAsIGlub2RlLCBNQVlfV1JJVEUpKSB7XG4rXHRcdCAgICBpbm9kZV9wZXJtaXNzaW9uKGZpbGVfbW50X2lkbWFwKGZpbGUpLCBpbm9kZSwgTUFZX1dSSVRFKSkge1xuIFx0XHRcdHJldCA9IC1FUEVSTTtcbiBcdFx0XHRnb3RvIG91dDtcbiBcdFx0fVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTNUMDQ6Mzc6MTcuOTU4NDM3NzI3WiIsIlNlcSI6MTEsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY2NDY0ODk2OTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgQnRyZnMgRGVmcmFnIFBlcm1pc3Npb24gUGF0Y2gqKlxuXG5BbHJpZ2h0LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZyb20gd2hhdCBJJ20gc2VlaW5nLCB0aGlzIHBhdGNoIGluIGBidHJmc19pb2N0bF9kZWZyYWdgIGlzIGEgc3RyYWlnaHRmb3J3YXJkIHBlcm1pc3Npb24gY2hlY2sgYWRqdXN0bWVudC4gSXQncyBzd2FwcGluZyBvdXQgdGhlIG1vdW50IElEIG1hcCB1c2VkIGluIHRoZSBgaW5vZGVfcGVybWlzc2lvbmAgY2FsbC4gSW5zdGVhZCBvZiB1c2luZyBgXHUwMDI2bm9wX21udF9pZG1hcGAsIHdlJ3JlIG5vdyB1c2luZyBgZmlsZV9tbnRfaWRtYXAoZmlsZSlgLiBUaGF0IHNlZW1zIHJpZ2h0LCBnaXZlbiB0aGUgY29udGV4dC5cblxuVGhlIGJlYXV0eSBvZiB0aGlzIGlzIGl0cyBzaW1wbGljaXR5LiBUaGVyZSdzIG5vdGhpbmcgbmV3IGJlaW5nIGludHJvZHVjZWQgaGVyZSDigJMgbm8gbmV3IGRhdGEgc3RydWN0dXJlcywgYWxsb2NhdGlvbnMsIG9yIGFueSBwb3RlbnRpYWwgZm9yIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzLiBJdCdzIHB1cmVseSBhIG1vZGlmaWNhdGlvbiB0byB0aGUgYXJndW1lbnQgcGFzc2VkIHRvIGFuIGV4aXN0aW5nIHBlcm1pc3Npb24gY2hlY2tpbmcgZnVuY3Rpb24uIEl0J3MgYSBjbGVhbiBjaGFuZ2UsIG1ha2luZyBzdXJlIHdlJ3JlIHVzaW5nIHRoZSBjb3JyZWN0IG1vdW50IGNvbnRleHQgZm9yIHRoZSBjaGVjaywgd2hpY2ggaXMgY3J1Y2lhbCBmb3IgZmlsZSBzeXN0ZW0gaW50ZWdyaXR5LlxuXG5CZWNhdXNlIG9mIHRoaXMgc3BlY2lmaWMgc2NvcGUsIHRoZSB1c2Ugb2YgS01TQU4gaXMgdW5uZWNlc3NhcnkgaGVyZS4gVGhpcyBpc24ndCB0aGUga2luZCBvZiBjaGFuZ2UgdGhhdCB3b3VsZCB0cmlnZ2VyIHRob3NlIGtpbmRzIG9mIG1lbW9yeSBzYWZldHkgY29uY2VybnMsIHRoZXJlJ3Mgbm8gbWVtb3J5IGJlaW5nIHVzZWQgaGVyZS4gQSBzdGFuZGFyZCBtZW1vcnkgYW5hbHlzaXMsIGV2ZW4gS0FTQU4sIHdvdWxkbid0IGJlIHZlcnkgdXNlZnVsIGhlcmUsIGJlY2F1c2UgdGhlcmUncyBub3RoaW5nIHRoYXQgc3RhbmRhcmQgdG9vbHMgd291bGQgYmUgdXNlZnVsIGZvciBmaW5kaW5nLiBTbywgSSB3aWxsIGJlIHNldHRpbmcgYE5lZWRzS01TQU49ZmFsc2VgIGFuZCBhZGRpbmcgdGhlIGFwcHJvcHJpYXRlIHJlYXNvbmluZyBpbiB0aGUgcGF0Y2ggbWV0YWRhdGEuIEl0J3MgYSBnb29kIHBhdGNoLCBidXQgbm8gbmVlZCB0byBvdmVyY29tcGxpY2F0ZSB0aGUgYW5hbHlzaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMDEsIk91dHB1dFRva2VucyI6MTUyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTNUMDQ6Mzc6MjQuNjA0OTMzNDE0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTg0MzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBhIHBlcm1pc3Npb24gY2hlY2sgaW4gYGJ0cmZzX2lvY3RsX2RlZnJhZ2AgYnkgcmVwbGFjaW5nIGBcXHUwMDI2bm9wX21udF9pZG1hcGAgd2l0aCBgZmlsZV9tbnRfaWRtYXAoZmlsZSlgIGluIHRoZSBjYWxsIHRvIGBpbm9kZV9wZXJtaXNzaW9uYC4gVGhpcyBpcyBhIGxvZ2ljIGNoYW5nZSByZWxhdGVkIHRvIGFjY2VzcyBjb250cm9sIGFuZCBtb3VudCBpZG1hcHMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IG1lbW9yeSBhbGxvY2F0aW9ucywgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UsIG9yIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzLiBUaGVyZWZvcmUsIHRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcyB0aGF0IHdvdWxkIHJlcXVpcmUgS01TQU4uIEFueSBwb3RlbnRpYWwgaXNzdWVzIHdvdWxkIGJlIHJlbGF0ZWQgdG8gbG9naWMgYnVncyBvciBzdGFuZGFyZCBtZW1vcnkgZXJyb3JzLCB3aGljaCBhcmUgY292ZXJlZCBieSBvdGhlciB0b29scy5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBhIHBlcm1pc3Npb24gY2hlY2sgaW4gYGJ0cmZzX2lvY3RsX2RlZnJhZ2AgYnkgcmVwbGFjaW5nIGBcXHUwMDI2bm9wX21udF9pZG1hcGAgd2l0aCBgZmlsZV9tbnRfaWRtYXAoZmlsZSlgIGluIHRoZSBjYWxsIHRvIGBpbm9kZV9wZXJtaXNzaW9uYC4gVGhpcyBpcyBhIGxvZ2ljIGNoYW5nZSByZWxhdGVkIHRvIGFjY2VzcyBjb250cm9sIGFuZCBtb3VudCBpZG1hcHMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IG1lbW9yeSBhbGxvY2F0aW9ucywgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UsIG9yIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzLiBUaGVyZWZvcmUsIHRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcyB0aGF0IHdvdWxkIHJlcXVpcmUgS01TQU4uIEFueSBwb3RlbnRpYWwgaXNzdWVzIHdvdWxkIGJlIHJlbGF0ZWQgdG8gbG9naWMgYnVncyBvciBzdGFuZGFyZCBtZW1vcnkgZXJyb3JzLCB3aGljaCBhcmUgY292ZXJlZCBieSBvdGhlciB0b29scy5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowjdcpc[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-13 03:54:17 +0000 UTC FinishedAt: 2026-08-13 04:37:26 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "28d012efb4327f9c75d5e042a7c91e9a542efa98", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BTRFS_FS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "28d012efb4327f9c75d5e042a7c91e9a542efa98", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BTRFS_FS" ], "series_id": "07521fe4-3089-43cc-be0e-b6cb6cbba2ae" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "btrfs_ioctl_defrag" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEzIDA0OjM3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JUUkZTX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnRyZnNfaW9jdGxfZGVmcmFnJiMzNDsKICBdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYSBwZXJtaXNzaW9uIGNoZWNrIGluIGBidHJmc19pb2N0bF9kZWZyYWdgIGJ5IHJlcGxhY2luZyBgXHUwMDI2bm9wX21udF9pZG1hcGAgd2l0aCBgZmlsZV9tbnRfaWRtYXAoZmlsZSlgIGluIHRoZSBjYWxsIHRvIGBpbm9kZV9wZXJtaXNzaW9uYC4gVGhpcyBpcyBhIGxvZ2ljIGNoYW5nZSByZWxhdGVkIHRvIGFjY2VzcyBjb250cm9sIGFuZCBtb3VudCBpZG1hcHMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IG1lbW9yeSBhbGxvY2F0aW9ucywgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UsIG9yIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzLiBUaGVyZWZvcmUsIHRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcyB0aGF0IHdvdWxkIHJlcXVpcmUgS01TQU4uIEFueSBwb3RlbnRpYWwgaXNzdWVzIHdvdWxkIGJlIHJlbGF0ZWQgdG8gbG9naWMgYnVncyBvciBzdGFuZGFyZCBtZW1vcnkgZXJyb3JzLCB3aGljaCBhcmUgY292ZXJlZCBieSBvdGhlciB0b29scy4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBlcm1pc3Npb24gY2hlY2sgaW4gYGJ0cmZzX2lvY3RsX2RlZnJhZ2AgdG8gdXNlIGBmaWxlX21udF9pZG1hcChmaWxlKWAgaW5zdGVhZCBvZiBgXHUwMDI2bm9wX21udF9pZG1hcGAuIFRoaXMgYWZmZWN0cyB0aGUgYEJUUkZTX0lPQ19ERUZSQUdgIGFuZCBgQlRSRlNfSU9DX0RFRlJBR19SQU5HRWAgaW9jdGxzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSByZWFjaGFibGUgY29yZSBmaWxlc3lzdGVtIHBhdGggYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTMgMDQ6Mzc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBmODFjMzZlZmZiNTYzNzExYmZkNTUzNTkxY2I3ZGNkZTFkNGRjN2U5XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgMTMgMDQ6Mzc6MDAgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvYnRyZnMvaW9jdGwuYyBiL2ZzL2J0cmZzL2lvY3RsLmNcbmluZGV4IDcyYmM5ZDRmNzcwODcuLjYwNzMyOWRlZGQ1MDMgMTAwNjQ0XG4tLS0gYS9mcy9idHJmcy9pb2N0bC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9mcy9idHJmcy9pb2N0bC5jXG5AQCAtMjQ1OCw3ICYjNDM7MjQ1OCw3IEBAIHN0YXRpYyBpbnQgYnRyZnNfaW9jdGxfZGVmcmFnKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkIF9fdXNlciAqYXJncClcbiBcdFx0ICogcnVubmluZyBhbmQgYWxsb3dzIGRlZnJhZyBvbiBmaWxlcyBvcGVuIGluIHJlYWQtb25seSBtb2RlLlxuIFx0XHQgKi9cbiBcdFx0aWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pIFx1MDAyNlx1MDAyNlxuLVx0XHQgICAgaW5vZGVfcGVybWlzc2lvbihcdTAwMjZub3BfbW50X2lkbWFwLCBpbm9kZSwgTUFZX1dSSVRFKSkge1xuJiM0MztcdFx0ICAgIGlub2RlX3Blcm1pc3Npb24oZmlsZV9tbnRfaWRtYXAoZmlsZSksIGlub2RlLCBNQVlfV1JJVEUpKSB7XG4gXHRcdFx0cmV0ID0gLUVQRVJNO1xuIFx0XHRcdGdvdG8gb3V0O1xuIFx0XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTMgMDQ6Mzc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JUUkZTX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnRyZnNfaW9jdGxfZGVmcmFnJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwZXJtaXNzaW9uIGNoZWNrIGluIGBidHJmc19pb2N0bF9kZWZyYWdgIHRvIHVzZSBgZmlsZV9tbnRfaWRtYXAoZmlsZSlgIGluc3RlYWQgb2YgYFx1MDAyNm5vcF9tbnRfaWRtYXBgLiBUaGlzIGFmZmVjdHMgdGhlIGBCVFJGU19JT0NfREVGUkFHYCBhbmQgYEJUUkZTX0lPQ19ERUZSQUdfUkFOR0VgIGlvY3Rscy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgcmVhY2hhYmxlIGNvcmUgZmlsZXN5c3RlbSBwYXRoIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZjgxYzM2ZWZmYjU2MzcxMWJmZDU1MzU5MWNiN2RjZGUxZDRkYzdlOQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgQXVnIDEzIDA0OjM3OjAwIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZnMvYnRyZnMvaW9jdGwuYyBiL2ZzL2J0cmZzL2lvY3RsLmMKaW5kZXggNzJiYzlkNGY3NzA4Ny4uNjA3MzI5ZGVkZDUwMyAxMDA2NDQKLS0tIGEvZnMvYnRyZnMvaW9jdGwuYwomIzQzOyYjNDM7JiM0MzsgYi9mcy9idHJmcy9pb2N0bC5jCkBAIC0yNDU4LDcgJiM0MzsyNDU4LDcgQEAgc3RhdGljIGludCBidHJmc19pb2N0bF9kZWZyYWcoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgX191c2VyICphcmdwKQogCQkgKiBydW5uaW5nIGFuZCBhbGxvd3MgZGVmcmFnIG9uIGZpbGVzIG9wZW4gaW4gcmVhZC1vbmx5IG1vZGUuCiAJCSAqLwogCQlpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1JTikgJmFtcDsmYW1wOwotCQkgICAgaW5vZGVfcGVybWlzc2lvbigmYW1wO25vcF9tbnRfaWRtYXAsIGlub2RlLCBNQVlfV1JJVEUpKSB7CiYjNDM7CQkgICAgaW5vZGVfcGVybWlzc2lvbihmaWxlX21udF9pZG1hcChmaWxlKSwgaW5vZGUsIE1BWV9XUklURSkpIHsKIAkJCXJldCA9IC1FUEVSTTsKIAkJCWdvdG8gb3V0OwogCQl9CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEzIDA0OjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwMDQKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxMjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uCgoqKkFuYWx5emluZyBhIEJ0cmZzIERlZnJhZyBQYXRjaCoqCgpBbHJpZ2h0LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0JiMzOTtzIHRvdWNoZWQgYGZzL2J0cmZzL2lvY3RsLmNgLiBTcGVjaWZpY2FsbHksIHRoZSBjaGFuZ2UgaXMgd2l0aGluIHRoZSBgYnRyZnNfaW9jdGxfZGVmcmFnYCBmdW5jdGlvbi4gVGhlIGtleSBjaGFuZ2UgaXMgdGhlIHJlcGxhY2VtZW50IG9mIGBpbm9kZV9wZXJtaXNzaW9uKCZhbXA7bm9wX21udF9pZG1hcCwgaW5vZGUsIE1BWV9XUklURSlgIHdpdGggYGlub2RlX3Blcm1pc3Npb24oZmlsZV9tbnRfaWRtYXAoZmlsZSksIGlub2RlLCBNQVlfV1JJVEUpYC4gSG1tLCB0aGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBob3cgYEJUUkZTX0lPQ19ERUZSQUdgIChvciBwb3RlbnRpYWxseSBgQlRSRlNfSU9DX0RFRlJBR19SQU5HRWApIGJlaGF2ZXMuIEkgbmVlZCB0byBiZSBzdXJlIG9uIHRoaXMsIHNvIGxldCBtZSBxdWlja2x5IGNyb3NzLXJlZmVyZW5jZSB0aGUgYGJ0cmZzX2lvY3RsX2RlZnJhZ2AgY29kZSBkaXJlY3RseSB0byBnZXQgYSBjb21wbGV0ZSBwaWN0dXJlLiBHb3R0YSBtYWtlIHN1cmUgSSBmdWxseSB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbiBvZiB0aGlzIHBlcm1pc3Npb24gY2hhbmdlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEzIDA0OjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2J0cmZzX2lvY3RsX2RlZnJhZyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL2J0cmZzL2lvY3RsLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvYnRyZnMvaW9jdGwuYz0yMjE2PXN0YXRpYyBub2lubGluZSBpbnQgYnRyZnNfaW9jdGxfc25hcF9kZXN0cm95KHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmZzL2J0cmZzL2lvY3RsLmMtMjQyOS1cbmZzL2J0cmZzL2lvY3RsLmM6MjQzMDpzdGF0aWMgaW50IGJ0cmZzX2lvY3RsX2RlZnJhZyhzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCBfX3VzZXIgKmFyZ3ApXG5mcy9idHJmcy9pb2N0bC5jLTI0MzEte1xuLS1cbmZzL2J0cmZzL2lvY3RsLmMtMjQzMy1cdHN0cnVjdCBidHJmc19yb290ICpyb290ID0gQlRSRlNfSShpbm9kZSktXHUwMDNlcm9vdDtcbmZzL2J0cmZzL2lvY3RsLmM6MjQzNDpcdHN0cnVjdCBidHJmc19pb2N0bF9kZWZyYWdfcmFuZ2VfYXJncyByYW5nZSA9IHswfTtcbmZzL2J0cmZzL2lvY3RsLmMtMjQzNS1cdGludCByZXQ7XG4tLVxuZnMvYnRyZnMvaW9jdGwuYz01NTIxPWxvbmcgYnRyZnNfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludFxuLS1cbmZzL2J0cmZzL2lvY3RsLmMtNTU1Ni1cdGNhc2UgQlRSRlNfSU9DX0RFRlJBRzpcbmZzL2J0cmZzL2lvY3RsLmM6NTU1NzpcdFx0cmV0dXJuIGJ0cmZzX2lvY3RsX2RlZnJhZyhmaWxlLCBOVUxMKTtcbmZzL2J0cmZzL2lvY3RsLmMtNTU1OC1cdGNhc2UgQlRSRlNfSU9DX0RFRlJBR19SQU5HRTpcbmZzL2J0cmZzL2lvY3RsLmM6NTU1OTpcdFx0cmV0dXJuIGJ0cmZzX2lvY3RsX2RlZnJhZyhmaWxlLCBhcmdwKTtcbmZzL2J0cmZzL2lvY3RsLmMtNTU2MC1cdGNhc2UgQlRSRlNfSU9DX1JFU0laRTpcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMyAwNDozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzYwCgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTM0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRlZnJhZyBJT0NUTCBQZXJtaXNzaW9uIENoZWNrIFJldmlzaW9uKioKCk9rYXksIHNvIEkmIzM5O3ZlIHNwb3R0ZWQgYSBzaWduaWZpY2FudCBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgYGJ0cmZzX2lvY3RsX2RlZnJhZ2AgZnVuY3Rpb24uIEl0IGxvb2tzIGxpa2UgdGhlIHBlcm1pc3Npb24gY2hlY2tpbmcgZm9yIHRoZSBgQlRSRlNfSU9DX0RFRlJBR2AgYW5kIGBCVFJGU19JT0NfREVGUkFHX1JBTkdFYCBpb2N0bHMgaGFzIGJlZW4gdXBkYXRlZC4gU3BlY2lmaWNhbGx5LCB0aGV5JiMzOTtyZSBub3cgdXNpbmcgYGZpbGVfbW50X2lkbWFwKGZpbGUpYCBpbnN0ZWFkIG9mIGAmYW1wO25vcF9tbnRfaWRtYXBgLiBUaGlzIHNoaWZ0IGluIGFwcHJvYWNoIHdhcnJhbnRzIGEgY2xvc2VyIGxvb2ssIGVzcGVjaWFsbHkgZnJvbSBhIHNlY3VyaXR5IHBlcnNwZWN0aXZlLiBJdCYjMzk7cyBhIHByaW1lIHRhcmdldCBmb3IgZnV6emluZy4KCk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIGNvbmZpcm0gdGhlIHJlbGF0ZWQgY29uZmlndXJhdGlvbiBvcHRpb24uIFRoZSB0ZXh0IG1lbnRpb25zIGBCVFJGU19GU2AsIGJ1dCBJJiMzOTtsbCBuZWVkIHRvIGRvdWJsZS1jaGVjayB0aGF0IHRoaXMgaXMgdGhlIGNvcnJlY3QgY29uZmlnIHRvIGVuYWJsZSB0aGUgcmVsZXZhbnQgZnVuY3Rpb25hbGl0eSBhbmQgdGh1cyB0aGUgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdHkuIEkmIzM5O2xsIG5lZWQgdG8gdmVyaWZ5IHRoYXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTMgMDQ6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEJUUkZTX0ZTJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMvYnRyZnMvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9idHJmcy9LY29uZmlnLTMtXG5mcy9idHJmcy9LY29uZmlnOjQ6Y29uZmlnIEJUUkZTX0ZTXG5mcy9idHJmcy9LY29uZmlnLTUtXHR0cmlzdGF0ZSBcJiMzNDtCdHJmcyBmaWxlc3lzdGVtIHN1cHBvcnRcJiMzNDtcbi0tXG5mcy9idHJmcy9LY29uZmlnLTM5LVxuZnMvYnRyZnMvS2NvbmZpZzo0MDpjb25maWcgQlRSRlNfRlNfUE9TSVhfQUNMXG5mcy9idHJmcy9LY29uZmlnLTQxLVx0Ym9vbCBcJiMzNDtCdHJmcyBQT1NJWCBBY2Nlc3MgQ29udHJvbCBMaXN0c1wmIzM0O1xuLS1cbmZzL2J0cmZzL0tjb25maWctNDktXG5mcy9idHJmcy9LY29uZmlnOjUwOmNvbmZpZyBCVFJGU19GU19SVU5fU0FOSVRZX1RFU1RTXG5mcy9idHJmcy9LY29uZmlnLTUxLVx0Ym9vbCBcJiMzNDtCdHJmcyB3aWxsIHJ1biBzYW5pdHkgdGVzdHMgdXBvbiBsb2FkaW5nXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTMgMDQ6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzMwOQoJCQkJCQkJb3V0cHV0OiAxMzgKCQkJCQkJCXRob3VnaHRzOiAyNjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgQlRSRlMgRGVmYXJnIFBhdGNoKioKCk9rYXksIHNvIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBCVFJGUyBjaGFuZ2UuIFRoZSBrZXkgaGVyZSBpcyBgQlRSRlNfRlNgLCB0aGF0JiMzOTtzIG91ciB0YXJnZXQuIEkgbmVlZCB0byBtYWtlIHN1cmUgYGJ0cmZzX2lvY3RsX2RlZnJhZ2AgaXMgdGhlIGZ1bmN0aW9uIHdlJiMzOTtyZSBsb29raW5nIGF0LiBMZXQmIzM5O3MgY29uZmlybSBpdCYjMzk7cyBub3Qgc2ltcGx5IGFuIGlubGluZSBzdGF0aWMgZnVuY3Rpb24uIE9rYXksIGl0JiMzOTtzIGRlZmluZWQgYXMgYHN0YXRpYyBpbnQgYnRyZnNfaW9jdGxfZGVmcmFnKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkIF9fdXNlciAqYXJncClgLCBzbyBpdCAqY291bGQqIGJlIGlubGluZWQsIGJ1dCBnaXZlbiBpdHMgc2l6ZSwgaXQmIzM5O3MgbGlrZWx5IG5vdC4gVGhlIGVudHJ5IHBvaW50IGlzIGBidHJmc19pb2N0bGAsIGJ1dCBmb3IgZnV6emluZywganVzdCBmb2N1c2luZyBvbiBgYnRyZnNfaW9jdGxfZGVmcmFnYCBpcyBzdWZmaWNpZW50LCBzaW5jZSB0aGF0JiMzOTtzIHdoZXJlIHRoZSBjaGFuZ2Ugb2NjdXJzLgoKTm8gb3RoZXIgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBpbnZvbHZlZCwganVzdCB0aGUgY29yZSBgQlRSRlNfRlNgLgoKVGhlIHJlYXNvbmluZyBpcyB0aGF0IHRoaXMgcGF0Y2ggaXMgY2hhbmdpbmcgdGhlIHBlcm1pc3Npb24gY2hlY2sgd2l0aGluIGBidHJmc19pb2N0bF9kZWZyYWdgLiBJdCYjMzk7cyBhbHRlcmluZyBob3cgdGhlIGBCVFJGU19JT0NfREVGUkFHYCBhbmQgYEJUUkZTX0lPQ19ERUZSQUdfUkFOR0VgIGlvY3RscyBiZWhhdmUuIEltcG9ydGFudGx5LCB0aGlzIGlzIGEgY29yZSBmaWxlc3lzdGVtIHBhdGggdGhhdCYjMzk7cyBiZWluZyBtb2RpZmllZCwgbWFraW5nIGl0IGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgY2xlYW51cC4gU28sIHllYWgsIGl0JiMzOTtzIGZ1enotd29ydGh5LgoKUmlnaHQsIEkmIzM5O2xsIGdvIGFoZWFkIGFuZCBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTMgMDQ6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JUUkZTX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnRyZnNfaW9jdGxfZGVmcmFnJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwZXJtaXNzaW9uIGNoZWNrIGluIGBidHJmc19pb2N0bF9kZWZyYWdgIHRvIHVzZSBgZmlsZV9tbnRfaWRtYXAoZmlsZSlgIGluc3RlYWQgb2YgYFx1MDAyNm5vcF9tbnRfaWRtYXBgLiBUaGlzIGFmZmVjdHMgdGhlIGBCVFJGU19JT0NfREVGUkFHYCBhbmQgYEJUUkZTX0lPQ19ERUZSQUdfUkFOR0VgIGlvY3Rscy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgcmVhY2hhYmxlIGNvcmUgZmlsZXN5c3RlbSBwYXRoIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCVFJGU19GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2J0cmZzX2lvY3RsX2RlZnJhZyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgcGVybWlzc2lvbiBjaGVjayBpbiBgYnRyZnNfaW9jdGxfZGVmcmFnYCB0byB1c2UgYGZpbGVfbW50X2lkbWFwKGZpbGUpYCBpbnN0ZWFkIG9mIGBcdTAwMjZub3BfbW50X2lkbWFwYC4gVGhpcyBhZmZlY3RzIHRoZSBgQlRSRlNfSU9DX0RFRlJBR2AgYW5kIGBCVFJGU19JT0NfREVGUkFHX1JBTkdFYCBpb2N0bHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIHJlYWNoYWJsZSBjb3JlIGZpbGVzeXN0ZW0gcGF0aCBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMyAwNDozNzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEzIDA0OjM3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGEgcGVybWlzc2lvbiBjaGVjayBpbiBgYnRyZnNfaW9jdGxfZGVmcmFnYCBieSByZXBsYWNpbmcgYFx1MDAyNm5vcF9tbnRfaWRtYXBgIHdpdGggYGZpbGVfbW50X2lkbWFwKGZpbGUpYCBpbiB0aGUgY2FsbCB0byBgaW5vZGVfcGVybWlzc2lvbmAuIFRoaXMgaXMgYSBsb2dpYyBjaGFuZ2UgcmVsYXRlZCB0byBhY2Nlc3MgY29udHJvbCBhbmQgbW91bnQgaWRtYXBzLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBtZW1vcnkgYWxsb2NhdGlvbnMsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlLCBvciB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcy4gVGhlcmVmb3JlLCB0aGVyZSBpcyBubyByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MgdGhhdCB3b3VsZCByZXF1aXJlIEtNU0FOLiBBbnkgcG90ZW50aWFsIGlzc3VlcyB3b3VsZCBiZSByZWxhdGVkIHRvIGxvZ2ljIGJ1Z3Mgb3Igc3RhbmRhcmQgbWVtb3J5IGVycm9ycywgd2hpY2ggYXJlIGNvdmVyZWQgYnkgb3RoZXIgdG9vbHMuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5CmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kCmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikKZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuCgpDUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjoKLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlCiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOCiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUAogIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuCi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsCiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLgoKUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTiwKTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy4KQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWQpzZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrcwp0aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLgoKTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3QKdW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsCmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5cwp0aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZwp1bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2wKZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLApjYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy4KClNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczoKMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2IKICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHMKICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC4KMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcwogICBvciBzdHJ1Y3QgZmllbGRzLgozLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzCiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuCjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzCiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy4KClNldCBOZWVkc0tNU0FOPWZhbHNlIElGOgotIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyCiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0CiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLgotIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkCiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLgotIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy4KClVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGUKZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGY4MWMzNmVmZmI1NjM3MTFiZmQ1NTM1OTFjYjdkY2RlMWQ0ZGM3ZTkKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEF1ZyAxMyAwNDozNzowMCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL2lvY3RsLmMgYi9mcy9idHJmcy9pb2N0bC5jCmluZGV4IDcyYmM5ZDRmNzcwODcuLjYwNzMyOWRlZGQ1MDMgMTAwNjQ0Ci0tLSBhL2ZzL2J0cmZzL2lvY3RsLmMKJiM0MzsmIzQzOyYjNDM7IGIvZnMvYnRyZnMvaW9jdGwuYwpAQCAtMjQ1OCw3ICYjNDM7MjQ1OCw3IEBAIHN0YXRpYyBpbnQgYnRyZnNfaW9jdGxfZGVmcmFnKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkIF9fdXNlciAqYXJncCkKIAkJICogcnVubmluZyBhbmQgYWxsb3dzIGRlZnJhZyBvbiBmaWxlcyBvcGVuIGluIHJlYWQtb25seSBtb2RlLgogCQkgKi8KIAkJaWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pICZhbXA7JmFtcDsKLQkJICAgIGlub2RlX3Blcm1pc3Npb24oJmFtcDtub3BfbW50X2lkbWFwLCBpbm9kZSwgTUFZX1dSSVRFKSkgewomIzQzOwkJICAgIGlub2RlX3Blcm1pc3Npb24oZmlsZV9tbnRfaWRtYXAoZmlsZSksIGlub2RlLCBNQVlfV1JJVEUpKSB7CiAJCQlyZXQgPSAtRVBFUk07CiAJCQlnb3RvIG91dDsKIAkJfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTMgMDQ6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAwMQoJCQkJCQkJb3V0cHV0OiAxNTIKCQkJCQkJCXRob3VnaHRzOiAyNjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgQnRyZnMgRGVmcmFnIFBlcm1pc3Npb24gUGF0Y2gqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRnJvbSB3aGF0IEkmIzM5O20gc2VlaW5nLCB0aGlzIHBhdGNoIGluIGBidHJmc19pb2N0bF9kZWZyYWdgIGlzIGEgc3RyYWlnaHRmb3J3YXJkIHBlcm1pc3Npb24gY2hlY2sgYWRqdXN0bWVudC4gSXQmIzM5O3Mgc3dhcHBpbmcgb3V0IHRoZSBtb3VudCBJRCBtYXAgdXNlZCBpbiB0aGUgYGlub2RlX3Blcm1pc3Npb25gIGNhbGwuIEluc3RlYWQgb2YgdXNpbmcgYCZhbXA7bm9wX21udF9pZG1hcGAsIHdlJiMzOTtyZSBub3cgdXNpbmcgYGZpbGVfbW50X2lkbWFwKGZpbGUpYC4gVGhhdCBzZWVtcyByaWdodCwgZ2l2ZW4gdGhlIGNvbnRleHQuCgpUaGUgYmVhdXR5IG9mIHRoaXMgaXMgaXRzIHNpbXBsaWNpdHkuIFRoZXJlJiMzOTtzIG5vdGhpbmcgbmV3IGJlaW5nIGludHJvZHVjZWQgaGVyZSDigJMgbm8gbmV3IGRhdGEgc3RydWN0dXJlcywgYWxsb2NhdGlvbnMsIG9yIGFueSBwb3RlbnRpYWwgZm9yIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzLiBJdCYjMzk7cyBwdXJlbHkgYSBtb2RpZmljYXRpb24gdG8gdGhlIGFyZ3VtZW50IHBhc3NlZCB0byBhbiBleGlzdGluZyBwZXJtaXNzaW9uIGNoZWNraW5nIGZ1bmN0aW9uLiBJdCYjMzk7cyBhIGNsZWFuIGNoYW5nZSwgbWFraW5nIHN1cmUgd2UmIzM5O3JlIHVzaW5nIHRoZSBjb3JyZWN0IG1vdW50IGNvbnRleHQgZm9yIHRoZSBjaGVjaywgd2hpY2ggaXMgY3J1Y2lhbCBmb3IgZmlsZSBzeXN0ZW0gaW50ZWdyaXR5LgoKQmVjYXVzZSBvZiB0aGlzIHNwZWNpZmljIHNjb3BlLCB0aGUgdXNlIG9mIEtNU0FOIGlzIHVubmVjZXNzYXJ5IGhlcmUuIFRoaXMgaXNuJiMzOTt0IHRoZSBraW5kIG9mIGNoYW5nZSB0aGF0IHdvdWxkIHRyaWdnZXIgdGhvc2Uga2luZHMgb2YgbWVtb3J5IHNhZmV0eSBjb25jZXJucywgdGhlcmUmIzM5O3Mgbm8gbWVtb3J5IGJlaW5nIHVzZWQgaGVyZS4gQSBzdGFuZGFyZCBtZW1vcnkgYW5hbHlzaXMsIGV2ZW4gS0FTQU4sIHdvdWxkbiYjMzk7dCBiZSB2ZXJ5IHVzZWZ1bCBoZXJlLCBiZWNhdXNlIHRoZXJlJiMzOTtzIG5vdGhpbmcgdGhhdCBzdGFuZGFyZCB0b29scyB3b3VsZCBiZSB1c2VmdWwgZm9yIGZpbmRpbmcuIFNvLCBJIHdpbGwgYmUgc2V0dGluZyBgTmVlZHNLTVNBTj1mYWxzZWAgYW5kIGFkZGluZyB0aGUgYXBwcm9wcmlhdGUgcmVhc29uaW5nIGluIHRoZSBwYXRjaCBtZXRhZGF0YS4gSXQmIzM5O3MgYSBnb29kIHBhdGNoLCBidXQgbm8gbmVlZCB0byBvdmVyY29tcGxpY2F0ZSB0aGUgYW5hbHlzaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzEzIDA0OjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGEgcGVybWlzc2lvbiBjaGVjayBpbiBgYnRyZnNfaW9jdGxfZGVmcmFnYCBieSByZXBsYWNpbmcgYFx1MDAyNm5vcF9tbnRfaWRtYXBgIHdpdGggYGZpbGVfbW50X2lkbWFwKGZpbGUpYCBpbiB0aGUgY2FsbCB0byBgaW5vZGVfcGVybWlzc2lvbmAuIFRoaXMgaXMgYSBsb2dpYyBjaGFuZ2UgcmVsYXRlZCB0byBhY2Nlc3MgY29udHJvbCBhbmQgbW91bnQgaWRtYXBzLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBtZW1vcnkgYWxsb2NhdGlvbnMsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlLCBvciB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcy4gVGhlcmVmb3JlLCB0aGVyZSBpcyBubyByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MgdGhhdCB3b3VsZCByZXF1aXJlIEtNU0FOLiBBbnkgcG90ZW50aWFsIGlzc3VlcyB3b3VsZCBiZSByZWxhdGVkIHRvIGxvZ2ljIGJ1Z3Mgb3Igc3RhbmRhcmQgbWVtb3J5IGVycm9ycywgd2hpY2ggYXJlIGNvdmVyZWQgYnkgb3RoZXIgdG9vbHMuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhIHBlcm1pc3Npb24gY2hlY2sgaW4gYGJ0cmZzX2lvY3RsX2RlZnJhZ2AgYnkgcmVwbGFjaW5nIGBcdTAwMjZub3BfbW50X2lkbWFwYCB3aXRoIGBmaWxlX21udF9pZG1hcChmaWxlKWAgaW4gdGhlIGNhbGwgdG8gYGlub2RlX3Blcm1pc3Npb25gLiBUaGlzIGlzIGEgbG9naWMgY2hhbmdlIHJlbGF0ZWQgdG8gYWNjZXNzIGNvbnRyb2wgYW5kIG1vdW50IGlkbWFwcy4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgbWVtb3J5IGFsbG9jYXRpb25zLCBzdHJ1Y3R1cmVzIHNlbnQgdG8gdXNlciBzcGFjZSwgb3IgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMuIFRoZXJlZm9yZSwgdGhlcmUgaXMgbm8gcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzIHRoYXQgd291bGQgcmVxdWlyZSBLTVNBTi4gQW55IHBvdGVudGlhbCBpc3N1ZXMgd291bGQgYmUgcmVsYXRlZCB0byBsb2dpYyBidWdzIG9yIHN0YW5kYXJkIG1lbW9yeSBlcnJvcnMsIHdoaWNoIGFyZSBjb3ZlcmVkIGJ5IG90aGVyIHRvb2xzLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0xM1QwNDozNzowMi4xNDg0OTM5NDJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjQ1NjUyNTQ3MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCVFJGU19GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJ0cmZzX2lvY3RsX2RlZnJhZ1wiXG4gIF0sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYSBwZXJtaXNzaW9uIGNoZWNrIGluIGBidHJmc19pb2N0bF9kZWZyYWdgIGJ5IHJlcGxhY2luZyBgXFx1MDAyNm5vcF9tbnRfaWRtYXBgIHdpdGggYGZpbGVfbW50X2lkbWFwKGZpbGUpYCBpbiB0aGUgY2FsbCB0byBgaW5vZGVfcGVybWlzc2lvbmAuIFRoaXMgaXMgYSBsb2dpYyBjaGFuZ2UgcmVsYXRlZCB0byBhY2Nlc3MgY29udHJvbCBhbmQgbW91bnQgaWRtYXBzLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBtZW1vcnkgYWxsb2NhdGlvbnMsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlLCBvciB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcy4gVGhlcmVmb3JlLCB0aGVyZSBpcyBubyByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MgdGhhdCB3b3VsZCByZXF1aXJlIEtNU0FOLiBBbnkgcG90ZW50aWFsIGlzc3VlcyB3b3VsZCBiZSByZWxhdGVkIHRvIGxvZ2ljIGJ1Z3Mgb3Igc3RhbmRhcmQgbWVtb3J5IGVycm9ycywgd2hpY2ggYXJlIGNvdmVyZWQgYnkgb3RoZXIgdG9vbHMuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBlcm1pc3Npb24gY2hlY2sgaW4gYGJ0cmZzX2lvY3RsX2RlZnJhZ2AgdG8gdXNlIGBmaWxlX21udF9pZG1hcChmaWxlKWAgaW5zdGVhZCBvZiBgXFx1MDAyNm5vcF9tbnRfaWRtYXBgLiBUaGlzIGFmZmVjdHMgdGhlIGBCVFJGU19JT0NfREVGUkFHYCBhbmQgYEJUUkZTX0lPQ19ERUZSQUdfUkFOR0VgIGlvY3Rscy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgcmVhY2hhYmxlIGNvcmUgZmlsZXN5c3RlbSBwYXRoIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xM1QwNDozNzowMi4xNDg1MDA3MTJaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyNjQwMjgxOTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBmODFjMzZlZmZiNTYzNzExYmZkNTUzNTkxY2I3ZGNkZTFkNGRjN2U5XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgQXVnIDEzIDA0OjM3OjAwIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL2lvY3RsLmMgYi9mcy9idHJmcy9pb2N0bC5jXFxuaW5kZXggNzJiYzlkNGY3NzA4Ny4uNjA3MzI5ZGVkZDUwMyAxMDA2NDRcXG4tLS0gYS9mcy9idHJmcy9pb2N0bC5jXFxuKysrIGIvZnMvYnRyZnMvaW9jdGwuY1xcbkBAIC0yNDU4LDcgKzI0NTgsNyBAQCBzdGF0aWMgaW50IGJ0cmZzX2lvY3RsX2RlZnJhZyhzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCBfX3VzZXIgKmFyZ3ApXFxuIFxcdFxcdCAqIHJ1bm5pbmcgYW5kIGFsbG93cyBkZWZyYWcgb24gZmlsZXMgb3BlbiBpbiByZWFkLW9ubHkgbW9kZS5cXG4gXFx0XFx0ICovXFxuIFxcdFxcdGlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSBcXHUwMDI2XFx1MDAyNlxcbi1cXHRcXHQgICAgaW5vZGVfcGVybWlzc2lvbihcXHUwMDI2bm9wX21udF9pZG1hcCwgaW5vZGUsIE1BWV9XUklURSkpIHtcXG4rXFx0XFx0ICAgIGlub2RlX3Blcm1pc3Npb24oZmlsZV9tbnRfaWRtYXAoZmlsZSksIGlub2RlLCBNQVlfV1JJVEUpKSB7XFxuIFxcdFxcdFxcdHJldCA9IC1FUEVSTTtcXG4gXFx0XFx0XFx0Z290byBvdXQ7XFxuIFxcdFxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTNUMDQ6Mzc6MDMuNDE1OTUyMjZaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxNDU0MTQ5OTczNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCVFJGU19GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJ0cmZzX2lvY3RsX2RlZnJhZ1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwZXJtaXNzaW9uIGNoZWNrIGluIGBidHJmc19pb2N0bF9kZWZyYWdgIHRvIHVzZSBgZmlsZV9tbnRfaWRtYXAoZmlsZSlgIGluc3RlYWQgb2YgYFxcdTAwMjZub3BfbW50X2lkbWFwYC4gVGhpcyBhZmZlY3RzIHRoZSBgQlRSRlNfSU9DX0RFRlJBR2AgYW5kIGBCVFJGU19JT0NfREVGUkFHX1JBTkdFYCBpb2N0bHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIHJlYWNoYWJsZSBjb3JlIGZpbGVzeXN0ZW0gcGF0aCBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZjgxYzM2ZWZmYjU2MzcxMWJmZDU1MzU5MWNiN2RjZGUxZDRkYzdlOVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDEzIDA0OjM3OjAwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvYnRyZnMvaW9jdGwuYyBiL2ZzL2J0cmZzL2lvY3RsLmNcbmluZGV4IDcyYmM5ZDRmNzcwODcuLjYwNzMyOWRlZGQ1MDMgMTAwNjQ0XG4tLS0gYS9mcy9idHJmcy9pb2N0bC5jXG4rKysgYi9mcy9idHJmcy9pb2N0bC5jXG5AQCAtMjQ1OCw3ICsyNDU4LDcgQEAgc3RhdGljIGludCBidHJmc19pb2N0bF9kZWZyYWcoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgX191c2VyICphcmdwKVxuIFx0XHQgKiBydW5uaW5nIGFuZCBhbGxvd3MgZGVmcmFnIG9uIGZpbGVzIG9wZW4gaW4gcmVhZC1vbmx5IG1vZGUuXG4gXHRcdCAqL1xuIFx0XHRpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1JTikgXHUwMDI2XHUwMDI2XG4tXHRcdCAgICBpbm9kZV9wZXJtaXNzaW9uKFx1MDAyNm5vcF9tbnRfaWRtYXAsIGlub2RlLCBNQVlfV1JJVEUpKSB7XG4rXHRcdCAgICBpbm9kZV9wZXJtaXNzaW9uKGZpbGVfbW50X2lkbWFwKGZpbGUpLCBpbm9kZSwgTUFZX1dSSVRFKSkge1xuIFx0XHRcdHJldCA9IC1FUEVSTTtcbiBcdFx0XHRnb3RvIG91dDtcbiBcdFx0fVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTNUMDQ6Mzc6MDMuNDE1OTU1MDZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDI2Njk2MjgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uXG5cbioqQW5hbHl6aW5nIGEgQnRyZnMgRGVmcmFnIFBhdGNoKipcblxuQWxyaWdodCwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0J3MgdG91Y2hlZCBgZnMvYnRyZnMvaW9jdGwuY2AuIFNwZWNpZmljYWxseSwgdGhlIGNoYW5nZSBpcyB3aXRoaW4gdGhlIGBidHJmc19pb2N0bF9kZWZyYWdgIGZ1bmN0aW9uLiBUaGUga2V5IGNoYW5nZSBpcyB0aGUgcmVwbGFjZW1lbnQgb2YgYGlub2RlX3Blcm1pc3Npb24oXHUwMDI2bm9wX21udF9pZG1hcCwgaW5vZGUsIE1BWV9XUklURSlgIHdpdGggYGlub2RlX3Blcm1pc3Npb24oZmlsZV9tbnRfaWRtYXAoZmlsZSksIGlub2RlLCBNQVlfV1JJVEUpYC4gSG1tLCB0aGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBob3cgYEJUUkZTX0lPQ19ERUZSQUdgIChvciBwb3RlbnRpYWxseSBgQlRSRlNfSU9DX0RFRlJBR19SQU5HRWApIGJlaGF2ZXMuIEkgbmVlZCB0byBiZSBzdXJlIG9uIHRoaXMsIHNvIGxldCBtZSBxdWlja2x5IGNyb3NzLXJlZmVyZW5jZSB0aGUgYGJ0cmZzX2lvY3RsX2RlZnJhZ2AgY29kZSBkaXJlY3RseSB0byBnZXQgYSBjb21wbGV0ZSBwaWN0dXJlLiBHb3R0YSBtYWtlIHN1cmUgSSBmdWxseSB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbiBvZiB0aGlzIHBlcm1pc3Npb24gY2hhbmdlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDA0LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTI1LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTNUMDQ6Mzc6MDcuNDQyNjU1NDNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzY3ODQyMTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnRyZnNfaW9jdGxfZGVmcmFnXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2J0cmZzL2lvY3RsLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvYnRyZnMvaW9jdGwuYz0yMjE2PXN0YXRpYyBub2lubGluZSBpbnQgYnRyZnNfaW9jdGxfc25hcF9kZXN0cm95KHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZnMvYnRyZnMvaW9jdGwuYy0yNDI5LVxcbmZzL2J0cmZzL2lvY3RsLmM6MjQzMDpzdGF0aWMgaW50IGJ0cmZzX2lvY3RsX2RlZnJhZyhzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCBfX3VzZXIgKmFyZ3ApXFxuZnMvYnRyZnMvaW9jdGwuYy0yNDMxLXtcXG4tLVxcbmZzL2J0cmZzL2lvY3RsLmMtMjQzMy1cXHRzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCA9IEJUUkZTX0koaW5vZGUpLVxcdTAwM2Vyb290O1xcbmZzL2J0cmZzL2lvY3RsLmM6MjQzNDpcXHRzdHJ1Y3QgYnRyZnNfaW9jdGxfZGVmcmFnX3JhbmdlX2FyZ3MgcmFuZ2UgPSB7MH07XFxuZnMvYnRyZnMvaW9jdGwuYy0yNDM1LVxcdGludCByZXQ7XFxuLS1cXG5mcy9idHJmcy9pb2N0bC5jPTU1MjE9bG9uZyBidHJmc19pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50XFxuLS1cXG5mcy9idHJmcy9pb2N0bC5jLTU1NTYtXFx0Y2FzZSBCVFJGU19JT0NfREVGUkFHOlxcbmZzL2J0cmZzL2lvY3RsLmM6NTU1NzpcXHRcXHRyZXR1cm4gYnRyZnNfaW9jdGxfZGVmcmFnKGZpbGUsIE5VTEwpO1xcbmZzL2J0cmZzL2lvY3RsLmMtNTU1OC1cXHRjYXNlIEJUUkZTX0lPQ19ERUZSQUdfUkFOR0U6XFxuZnMvYnRyZnMvaW9jdGwuYzo1NTU5OlxcdFxcdHJldHVybiBidHJmc19pb2N0bF9kZWZyYWcoZmlsZSwgYXJncCk7XFxuZnMvYnRyZnMvaW9jdGwuYy01NTYwLVxcdGNhc2UgQlRSRlNfSU9DX1JFU0laRTpcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTNUMDQ6Mzc6MDcuNTE5NDQ2Nzc5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzc4ODg2ODAyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipEZWZyYWcgSU9DVEwgUGVybWlzc2lvbiBDaGVjayBSZXZpc2lvbioqXG5cbk9rYXksIHNvIEkndmUgc3BvdHRlZCBhIHNpZ25pZmljYW50IGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBgYnRyZnNfaW9jdGxfZGVmcmFnYCBmdW5jdGlvbi4gSXQgbG9va3MgbGlrZSB0aGUgcGVybWlzc2lvbiBjaGVja2luZyBmb3IgdGhlIGBCVFJGU19JT0NfREVGUkFHYCBhbmQgYEJUUkZTX0lPQ19ERUZSQUdfUkFOR0VgIGlvY3RscyBoYXMgYmVlbiB1cGRhdGVkLiBTcGVjaWZpY2FsbHksIHRoZXkncmUgbm93IHVzaW5nIGBmaWxlX21udF9pZG1hcChmaWxlKWAgaW5zdGVhZCBvZiBgXHUwMDI2bm9wX21udF9pZG1hcGAuIFRoaXMgc2hpZnQgaW4gYXBwcm9hY2ggd2FycmFudHMgYSBjbG9zZXIgbG9vaywgZXNwZWNpYWxseSBmcm9tIGEgc2VjdXJpdHkgcGVyc3BlY3RpdmUuIEl0J3MgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcuXG5cbk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIGNvbmZpcm0gdGhlIHJlbGF0ZWQgY29uZmlndXJhdGlvbiBvcHRpb24uIFRoZSB0ZXh0IG1lbnRpb25zIGBCVFJGU19GU2AsIGJ1dCBJJ2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoYXQgdGhpcyBpcyB0aGUgY29ycmVjdCBjb25maWcgdG8gZW5hYmxlIHRoZSByZWxldmFudCBmdW5jdGlvbmFsaXR5IGFuZCB0aHVzIHRoZSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0eS4gSSdsbCBuZWVkIHRvIHZlcmlmeSB0aGF0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzYwLCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTM0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEzVDA0OjM3OjExLjMwODMxODcyMloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3ODk1OTE4OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQlRSRlNfRlNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZnMvYnRyZnMvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9idHJmcy9LY29uZmlnLTMtXFxuZnMvYnRyZnMvS2NvbmZpZzo0OmNvbmZpZyBCVFJGU19GU1xcbmZzL2J0cmZzL0tjb25maWctNS1cXHR0cmlzdGF0ZSBcXFwiQnRyZnMgZmlsZXN5c3RlbSBzdXBwb3J0XFxcIlxcbi0tXFxuZnMvYnRyZnMvS2NvbmZpZy0zOS1cXG5mcy9idHJmcy9LY29uZmlnOjQwOmNvbmZpZyBCVFJGU19GU19QT1NJWF9BQ0xcXG5mcy9idHJmcy9LY29uZmlnLTQxLVxcdGJvb2wgXFxcIkJ0cmZzIFBPU0lYIEFjY2VzcyBDb250cm9sIExpc3RzXFxcIlxcbi0tXFxuZnMvYnRyZnMvS2NvbmZpZy00OS1cXG5mcy9idHJmcy9LY29uZmlnOjUwOmNvbmZpZyBCVFJGU19GU19SVU5fU0FOSVRZX1RFU1RTXFxuZnMvYnRyZnMvS2NvbmZpZy01MS1cXHRib29sIFxcXCJCdHJmcyB3aWxsIHJ1biBzYW5pdHkgdGVzdHMgdXBvbiBsb2FkaW5nXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xM1QwNDozNzoxMS4zODcyODc4MDFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2Mzk0MDU2NjQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIEJUUkZTIERlZmFyZyBQYXRjaCoqXG5cbk9rYXksIHNvIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIEJUUkZTIGNoYW5nZS4gVGhlIGtleSBoZXJlIGlzIGBCVFJGU19GU2AsIHRoYXQncyBvdXIgdGFyZ2V0LiBJIG5lZWQgdG8gbWFrZSBzdXJlIGBidHJmc19pb2N0bF9kZWZyYWdgIGlzIHRoZSBmdW5jdGlvbiB3ZSdyZSBsb29raW5nIGF0LiBMZXQncyBjb25maXJtIGl0J3Mgbm90IHNpbXBseSBhbiBpbmxpbmUgc3RhdGljIGZ1bmN0aW9uLiBPa2F5LCBpdCdzIGRlZmluZWQgYXMgYHN0YXRpYyBpbnQgYnRyZnNfaW9jdGxfZGVmcmFnKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkIF9fdXNlciAqYXJncClgLCBzbyBpdCAqY291bGQqIGJlIGlubGluZWQsIGJ1dCBnaXZlbiBpdHMgc2l6ZSwgaXQncyBsaWtlbHkgbm90LiBUaGUgZW50cnkgcG9pbnQgaXMgYGJ0cmZzX2lvY3RsYCwgYnV0IGZvciBmdXp6aW5nLCBqdXN0IGZvY3VzaW5nIG9uIGBidHJmc19pb2N0bF9kZWZyYWdgIGlzIHN1ZmZpY2llbnQsIHNpbmNlIHRoYXQncyB3aGVyZSB0aGUgY2hhbmdlIG9jY3Vycy5cblxuTm8gb3RoZXIgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBpbnZvbHZlZCwganVzdCB0aGUgY29yZSBgQlRSRlNfRlNgLlxuXG5UaGUgcmVhc29uaW5nIGlzIHRoYXQgdGhpcyBwYXRjaCBpcyBjaGFuZ2luZyB0aGUgcGVybWlzc2lvbiBjaGVjayB3aXRoaW4gYGJ0cmZzX2lvY3RsX2RlZnJhZ2AuIEl0J3MgYWx0ZXJpbmcgaG93IHRoZSBgQlRSRlNfSU9DX0RFRlJBR2AgYW5kIGBCVFJGU19JT0NfREVGUkFHX1JBTkdFYCBpb2N0bHMgYmVoYXZlLiBJbXBvcnRhbnRseSwgdGhpcyBpcyBhIGNvcmUgZmlsZXN5c3RlbSBwYXRoIHRoYXQncyBiZWluZyBtb2RpZmllZCwgbWFraW5nIGl0IGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgY2xlYW51cC4gU28sIHllYWgsIGl0J3MgZnV6ei13b3J0aHkuXG5cblJpZ2h0LCBJJ2xsIGdvIGFoZWFkIGFuZCBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzMDksIk91dHB1dFRva2VucyI6MTM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTEzVDA0OjM3OjE3Ljc4MTM0NzEwOVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc2MDk3ODg4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCVFJGU19GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJ0cmZzX2lvY3RsX2RlZnJhZ1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwZXJtaXNzaW9uIGNoZWNrIGluIGBidHJmc19pb2N0bF9kZWZyYWdgIHRvIHVzZSBgZmlsZV9tbnRfaWRtYXAoZmlsZSlgIGluc3RlYWQgb2YgYFxcdTAwMjZub3BfbW50X2lkbWFwYC4gVGhpcyBhZmZlY3RzIHRoZSBgQlRSRlNfSU9DX0RFRlJBR2AgYW5kIGBCVFJGU19JT0NfREVGUkFHX1JBTkdFYCBpb2N0bHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIHJlYWNoYWJsZSBjb3JlIGZpbGVzeXN0ZW0gcGF0aCBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCVFJGU19GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJ0cmZzX2lvY3RsX2RlZnJhZ1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwZXJtaXNzaW9uIGNoZWNrIGluIGBidHJmc19pb2N0bF9kZWZyYWdgIHRvIHVzZSBgZmlsZV9tbnRfaWRtYXAoZmlsZSlgIGluc3RlYWQgb2YgYFxcdTAwMjZub3BfbW50X2lkbWFwYC4gVGhpcyBhZmZlY3RzIHRoZSBgQlRSRlNfSU9DX0RFRlJBR2AgYW5kIGBCVFJGU19JT0NfREVGUkFHX1JBTkdFYCBpb2N0bHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIHJlYWNoYWJsZSBjb3JlIGZpbGVzeXN0ZW0gcGF0aCBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTNUMDQ6Mzc6MTcuOTU3NDU3ODQ3WiIsIlNlcSI6OSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY2NDc1NDM1NTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xM1QwNDozNzoxNy45NTg0MzQ2NTdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6ImFnZW50IiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NjY0NjU1OTk0NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYSBwZXJtaXNzaW9uIGNoZWNrIGluIGBidHJmc19pb2N0bF9kZWZyYWdgIGJ5IHJlcGxhY2luZyBgXFx1MDAyNm5vcF9tbnRfaWRtYXBgIHdpdGggYGZpbGVfbW50X2lkbWFwKGZpbGUpYCBpbiB0aGUgY2FsbCB0byBgaW5vZGVfcGVybWlzc2lvbmAuIFRoaXMgaXMgYSBsb2dpYyBjaGFuZ2UgcmVsYXRlZCB0byBhY2Nlc3MgY29udHJvbCBhbmQgbW91bnQgaWRtYXBzLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBtZW1vcnkgYWxsb2NhdGlvbnMsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlLCBvciB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcy4gVGhlcmVmb3JlLCB0aGVyZSBpcyBubyByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MgdGhhdCB3b3VsZCByZXF1aXJlIEtNU0FOLiBBbnkgcG90ZW50aWFsIGlzc3VlcyB3b3VsZCBiZSByZWxhdGVkIHRvIGxvZ2ljIGJ1Z3Mgb3Igc3RhbmRhcmQgbWVtb3J5IGVycm9ycywgd2hpY2ggYXJlIGNvdmVyZWQgYnkgb3RoZXIgdG9vbHMuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5XG5lcnJvciBkZXRlY3RvcnMgKEtBU0FOIGFuZCBLTVNBTikuIFlvdXIgam9iIGlzIHRvIHJldmlldyB0aGUgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZFxuZGV0ZXJtaW5lIGlmIHRoZSBjb2RlIGNoYW5nZXMganVzdGlmeSBzcGF3bmluZyBhIGRlZGljYXRlZCBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKVxuZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuXG5cbkNSSVRJQ0FMIERJU1RJTkNUSU9OIEJFVFdFRU4gS0FTQU4gQU5EIEtNU0FOOlxuLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlXG4gIGEgY29tcHJlaGVuc2l2ZSBzdWl0ZSBvZiBkZWJ1Z2dpbmcgdG9vbHMgYW5kIHNhbml0aXplcnMsIGluY2x1ZGluZyBLQVNBTlxuICAob3V0LW9mLWJvdW5kcyBhY2Nlc3NlcywgdXNlLWFmdGVyLWZyZWUsIGRvdWJsZSBmcmVlLCBpbnZhbGlkIGZyZWUpLCBMT0NLREVQXG4gIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuXG4tIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpIGRldGVjdHMgcmVhZHMgb2YgVU5JTklUSUFMSVpFRCBtZW1vcnkgKHN0YWNrLCBoZWFwLFxuICBvciBwYWdlIGFsbG9jYXRpb25zKSBhbmQga2VybmVsLXRvLXVzZXIgbWVtb3J5IGluZm8tbGVha3MuXG5cblJ1bGU6IFRIRVJFIElTIE5PIFNFTlNFIElOIFJVTk5JTkcgQSBLTVNBTiBTRVNTSU9OIElGIEEgQlVHIENBTiBCRSBDQVVHSFQgQlkgS0FTQU4sXG5MT0NLREVQLCBPUiBPVEhFUiBTVEFOREFSRCBCVUcgREVURUNUT1JTLlxuQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWVxuc2V0IE5lZWRzS01TQU49dHJ1ZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGludHJvZHVjZSBvciBleHBvc2UgVU5JTklUSUFMSVpFRCBNRU1PUlkgcmlza3NcbnRoYXQgYXJlIGRldGVjdGVkIE9OTFkgYnkgS01TQU4uXG5cbkxvb2sgaG9saXN0aWNhbGx5IGF0IHRoZSBwYXRjaCBzZXJpZXMgYW5kIHN1cnJvdW5kaW5nIGNvZGUuIEV2ZW4gaWYgbm8gZGlyZWN0XG51bmluaXRpYWxpemVkIGZpZWxkIGFjY2Vzc2VzIG9yIG5ldyBidWZmZXIgYWxsb2NhdGlvbnMgYXJlIGFkZGVkIGluIHRoZSBkaWZmIGl0c2VsZixcbmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5c1xudGhhdCBjaGFuZ2UgaG93IHRoZSByZXN0IG9mIHRoZSBjb2RlIG9wZXJhdGVzIG9uIGV4aXN0aW5nIGJ1ZmZlcnMgKGUuZy4gYWxsb3dpbmdcbnVuaW5pdGlhbGl6ZWQgc3RhY2svaGVhcCBtZW1vcnkgdG8gYmUgcmVhZCwgY29waWVkIHRvIHVzZXIgc3BhY2UsIG9yIHVzZWQgaW4gY29udHJvbFxuZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLFxuY2FsbGVkIGZ1bmN0aW9ucywgYW5kIGNhbGxlcnMuXG5cblNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczpcbjEuIEtlcm5lbCBzdHJ1Y3R1cmVzIHNlbnQgdG8gdXNlciBzcGFjZSAodmlhIGNvcHlfdG9fdXNlciwgcHV0X3VzZXIsIG5ldGxpbmsgc2tiXG4gICBhdHRyaWJ1dGVzLCBpb2N0bCBvdXRwdXQgYXJndW1lbnRzLCBzb2NrZXQgb3B0aW9ucywgb3IgQlBGIGJ1ZmZlcnMpIHdoZXJlIGZpZWxkc1xuICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC5cbjIuIENvbmRpdGlvbmFsIGxvZ2ljIG9yIGJyYW5jaGluZyB0aGF0IGRlcGVuZHMgb24gcG90ZW50aWFsbHkgdW5pbml0aWFsaXplZCB2YXJpYWJsZXNcbiAgIG9yIHN0cnVjdCBmaWVsZHMuXG4zLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzXG4gICBjb3VsZCBiZSByZWFkIGxhdGVyIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLlxuNC4gQm91bmRzIGNoZWNrcywgbGVuZ3Rocywgb3IgbG9naWMgaW4gYSB3YXkgdGhhdCBhbGxvd3Mgc3Vycm91bmRpbmcgY29kZSB0byBhY2Nlc3NcbiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy5cblxuU2V0IE5lZWRzS01TQU49ZmFsc2UgSUY6XG4tIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyXG4gIGRlcmVmZXJlbmNlcywgbG9ja2luZyBkZWFkbG9ja3MsIG9yIHVzZS1hZnRlci1mcmVlIGJ1Z3MgKHRoZXNlIGFyZSBhbHJlYWR5IGNhdWdodFxuICBieSBLQVNBTiwgTE9DS0RFUCwgb3Igc3RhbmRhcmQgYnVnIGRldGVjdG9ycykuXG4tIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkXG4gIG9yIGluaXRpYWxpemVkIChlLmcuIHVzaW5nID0gezB9LCBtZW1zZXQsIGt6YWxsb2MpIGJlZm9yZSBiZWluZyByZWFkIG9yIGNvcGllZC5cbi0gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLlxuXG5Vc2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlIGlmIG5lY2Vzc2FyeSwgdGhlbiBwcm92aWRlXG5kZXRhaWxlZCBLTVNBTlJlYXNvbmluZyBjb250cmFzdGluZyBLQVNBTiB2cyBLTVNBTiBhcHBsaWNhYmlsaXR5IGZvciB0aGlzIHBhdGNoLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZjgxYzM2ZWZmYjU2MzcxMWJmZDU1MzU5MWNiN2RjZGUxZDRkYzdlOVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDEzIDA0OjM3OjAwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvYnRyZnMvaW9jdGwuYyBiL2ZzL2J0cmZzL2lvY3RsLmNcbmluZGV4IDcyYmM5ZDRmNzcwODcuLjYwNzMyOWRlZGQ1MDMgMTAwNjQ0XG4tLS0gYS9mcy9idHJmcy9pb2N0bC5jXG4rKysgYi9mcy9idHJmcy9pb2N0bC5jXG5AQCAtMjQ1OCw3ICsyNDU4LDcgQEAgc3RhdGljIGludCBidHJmc19pb2N0bF9kZWZyYWcoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgX191c2VyICphcmdwKVxuIFx0XHQgKiBydW5uaW5nIGFuZCBhbGxvd3MgZGVmcmFnIG9uIGZpbGVzIG9wZW4gaW4gcmVhZC1vbmx5IG1vZGUuXG4gXHRcdCAqL1xuIFx0XHRpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1JTikgXHUwMDI2XHUwMDI2XG4tXHRcdCAgICBpbm9kZV9wZXJtaXNzaW9uKFx1MDAyNm5vcF9tbnRfaWRtYXAsIGlub2RlLCBNQVlfV1JJVEUpKSB7XG4rXHRcdCAgICBpbm9kZV9wZXJtaXNzaW9uKGZpbGVfbW50X2lkbWFwKGZpbGUpLCBpbm9kZSwgTUFZX1dSSVRFKSkge1xuIFx0XHRcdHJldCA9IC1FUEVSTTtcbiBcdFx0XHRnb3RvIG91dDtcbiBcdFx0fVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTNUMDQ6Mzc6MTcuOTU4NDM3NzI3WiIsIlNlcSI6MTEsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY2NDY0ODk2OTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgQnRyZnMgRGVmcmFnIFBlcm1pc3Npb24gUGF0Y2gqKlxuXG5BbHJpZ2h0LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZyb20gd2hhdCBJJ20gc2VlaW5nLCB0aGlzIHBhdGNoIGluIGBidHJmc19pb2N0bF9kZWZyYWdgIGlzIGEgc3RyYWlnaHRmb3J3YXJkIHBlcm1pc3Npb24gY2hlY2sgYWRqdXN0bWVudC4gSXQncyBzd2FwcGluZyBvdXQgdGhlIG1vdW50IElEIG1hcCB1c2VkIGluIHRoZSBgaW5vZGVfcGVybWlzc2lvbmAgY2FsbC4gSW5zdGVhZCBvZiB1c2luZyBgXHUwMDI2bm9wX21udF9pZG1hcGAsIHdlJ3JlIG5vdyB1c2luZyBgZmlsZV9tbnRfaWRtYXAoZmlsZSlgLiBUaGF0IHNlZW1zIHJpZ2h0LCBnaXZlbiB0aGUgY29udGV4dC5cblxuVGhlIGJlYXV0eSBvZiB0aGlzIGlzIGl0cyBzaW1wbGljaXR5LiBUaGVyZSdzIG5vdGhpbmcgbmV3IGJlaW5nIGludHJvZHVjZWQgaGVyZSDigJMgbm8gbmV3IGRhdGEgc3RydWN0dXJlcywgYWxsb2NhdGlvbnMsIG9yIGFueSBwb3RlbnRpYWwgZm9yIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzLiBJdCdzIHB1cmVseSBhIG1vZGlmaWNhdGlvbiB0byB0aGUgYXJndW1lbnQgcGFzc2VkIHRvIGFuIGV4aXN0aW5nIHBlcm1pc3Npb24gY2hlY2tpbmcgZnVuY3Rpb24uIEl0J3MgYSBjbGVhbiBjaGFuZ2UsIG1ha2luZyBzdXJlIHdlJ3JlIHVzaW5nIHRoZSBjb3JyZWN0IG1vdW50IGNvbnRleHQgZm9yIHRoZSBjaGVjaywgd2hpY2ggaXMgY3J1Y2lhbCBmb3IgZmlsZSBzeXN0ZW0gaW50ZWdyaXR5LlxuXG5CZWNhdXNlIG9mIHRoaXMgc3BlY2lmaWMgc2NvcGUsIHRoZSB1c2Ugb2YgS01TQU4gaXMgdW5uZWNlc3NhcnkgaGVyZS4gVGhpcyBpc24ndCB0aGUga2luZCBvZiBjaGFuZ2UgdGhhdCB3b3VsZCB0cmlnZ2VyIHRob3NlIGtpbmRzIG9mIG1lbW9yeSBzYWZldHkgY29uY2VybnMsIHRoZXJlJ3Mgbm8gbWVtb3J5IGJlaW5nIHVzZWQgaGVyZS4gQSBzdGFuZGFyZCBtZW1vcnkgYW5hbHlzaXMsIGV2ZW4gS0FTQU4sIHdvdWxkbid0IGJlIHZlcnkgdXNlZnVsIGhlcmUsIGJlY2F1c2UgdGhlcmUncyBub3RoaW5nIHRoYXQgc3RhbmRhcmQgdG9vbHMgd291bGQgYmUgdXNlZnVsIGZvciBmaW5kaW5nLiBTbywgSSB3aWxsIGJlIHNldHRpbmcgYE5lZWRzS01TQU49ZmFsc2VgIGFuZCBhZGRpbmcgdGhlIGFwcHJvcHJpYXRlIHJlYXNvbmluZyBpbiB0aGUgcGF0Y2ggbWV0YWRhdGEuIEl0J3MgYSBnb29kIHBhdGNoLCBidXQgbm8gbmVlZCB0byBvdmVyY29tcGxpY2F0ZSB0aGUgYW5hbHlzaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMDEsIk91dHB1dFRva2VucyI6MTUyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTNUMDQ6Mzc6MjQuNjA0OTMzNDE0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTg0MzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBhIHBlcm1pc3Npb24gY2hlY2sgaW4gYGJ0cmZzX2lvY3RsX2RlZnJhZ2AgYnkgcmVwbGFjaW5nIGBcXHUwMDI2bm9wX21udF9pZG1hcGAgd2l0aCBgZmlsZV9tbnRfaWRtYXAoZmlsZSlgIGluIHRoZSBjYWxsIHRvIGBpbm9kZV9wZXJtaXNzaW9uYC4gVGhpcyBpcyBhIGxvZ2ljIGNoYW5nZSByZWxhdGVkIHRvIGFjY2VzcyBjb250cm9sIGFuZCBtb3VudCBpZG1hcHMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IG1lbW9yeSBhbGxvY2F0aW9ucywgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UsIG9yIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzLiBUaGVyZWZvcmUsIHRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcyB0aGF0IHdvdWxkIHJlcXVpcmUgS01TQU4uIEFueSBwb3RlbnRpYWwgaXNzdWVzIHdvdWxkIGJlIHJlbGF0ZWQgdG8gbG9naWMgYnVncyBvciBzdGFuZGFyZCBtZW1vcnkgZXJyb3JzLCB3aGljaCBhcmUgY292ZXJlZCBieSBvdGhlciB0b29scy5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBhIHBlcm1pc3Npb24gY2hlY2sgaW4gYGJ0cmZzX2lvY3RsX2RlZnJhZ2AgYnkgcmVwbGFjaW5nIGBcXHUwMDI2bm9wX21udF9pZG1hcGAgd2l0aCBgZmlsZV9tbnRfaWRtYXAoZmlsZSlgIGluIHRoZSBjYWxsIHRvIGBpbm9kZV9wZXJtaXNzaW9uYC4gVGhpcyBpcyBhIGxvZ2ljIGNoYW5nZSByZWxhdGVkIHRvIGFjY2VzcyBjb250cm9sIGFuZCBtb3VudCBpZG1hcHMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IG1lbW9yeSBhbGxvY2F0aW9ucywgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UsIG9yIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzLiBUaGVyZWZvcmUsIHRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcyB0aGF0IHdvdWxkIHJlcXVpcmUgS01TQU4uIEFueSBwb3RlbnRpYWwgaXNzdWVzIHdvdWxkIGJlIHJlbGF0ZWQgdG8gbG9naWMgYnVncyBvciBzdGFuZGFyZCBtZW1vcnkgZXJyb3JzLCB3aGljaCBhcmUgY292ZXJlZCBieSBvdGhlciB0b29scy5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowjdcpc[1] Phase: Succeeded StartedAt: 2026-08-13 04:37:51 +0000 UTC FinishedAt: 2026-08-13 04:37:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-13 04:37:51 +0000 UTC FinishedAt: 2026-08-13 04:37:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[2] Phase: Succeeded StartedAt: 2026-08-13 04:37:51 +0000 UTC FinishedAt: 2026-08-13 08:32:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-13 04:37:51 +0000 UTC FinishedAt: 2026-08-13 08:32:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-13 04:37:51 +0000 UTC FinishedAt: 2026-08-13 04:38:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-13 04:37:51 +0000 UTC FinishedAt: 2026-08-13 04:37:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowjdcpc/series-workflowjdcpc-convert-artifact-23029697/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-13 04:38:01 +0000 UTC FinishedAt: 2026-08-13 05:00:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-13 04:38:01 +0000 UTC FinishedAt: 2026-08-13 05:00:30 +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:*f0a032e4-6a6a-4a8d-8a21-f7cbdb084f95,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-workflowjdcpc/series-workflowjdcpc-convert-artifact-23029697/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": "0eb53134-0b62-4b75-8673-f81d4d73e4ab", "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-workflowjdcpc/series-workflowjdcpc-build-action-3144453615/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-13 04:38:01 +0000 UTC FinishedAt: 2026-08-13 05:00:20 +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:*f0a032e4-6a6a-4a8d-8a21-f7cbdb084f95,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-workflowjdcpc/series-workflowjdcpc-convert-artifact-23029697/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": "0eb53134-0b62-4b75-8673-f81d4d73e4ab", "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-workflowjdcpc/series-workflowjdcpc-build-action-3144453615/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-13 05:00:30 +0000 UTC FinishedAt: 2026-08-13 05:00:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-13 05:00:30 +0000 UTC FinishedAt: 2026-08-13 05:00:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-13 05:00:30 +0000 UTC FinishedAt: 2026-08-13 05:00:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-13 05:00:30 +0000 UTC FinishedAt: 2026-08-13 05:00:35 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowjdcpc/series-workflowjdcpc-convert-artifact-379095700/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-13 05:00:40 +0000 UTC FinishedAt: 2026-08-13 05:02:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-13 05:00:40 +0000 UTC FinishedAt: 2026-08-13 05:02:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*0eb53134-0b62-4b75-8673-f81d4d73e4ab,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-workflowjdcpc/series-workflowjdcpc-build-action-3144453615/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-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-13 05:02:36 +0000 UTC FinishedAt: 2026-08-13 05:02:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-13 05:02:36 +0000 UTC FinishedAt: 2026-08-13 05:02:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-13 05:02:36 +0000 UTC FinishedAt: 2026-08-13 05:18:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-13 05:02:36 +0000 UTC FinishedAt: 2026-08-13 05:18:51 +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:*f0a032e4-6a6a-4a8d-8a21-f7cbdb084f95,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-workflowjdcpc/series-workflowjdcpc-convert-artifact-379095700/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": "f05185b4-5961-4e86-a601-a599f283f1c8", "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-workflowjdcpc/series-workflowjdcpc-build-action-2346775392/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-13 05:02:36 +0000 UTC FinishedAt: 2026-08-13 05:18:41 +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:*f0a032e4-6a6a-4a8d-8a21-f7cbdb084f95,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-workflowjdcpc/series-workflowjdcpc-convert-artifact-379095700/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": "f05185b4-5961-4e86-a601-a599f283f1c8", "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-workflowjdcpc/series-workflowjdcpc-build-action-2346775392/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-13 05:18:51 +0000 UTC FinishedAt: 2026-08-13 05:18:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-13 05:18:51 +0000 UTC FinishedAt: 2026-08-13 05:18:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-13 05:18:51 +0000 UTC FinishedAt: 2026-08-13 05:20:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-13 05:18:51 +0000 UTC FinishedAt: 2026-08-13 05:20:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*f05185b4-5961-4e86-a601-a599f283f1c8,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-workflowjdcpc/series-workflowjdcpc-build-action-2346775392/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-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-13 05:20:50 +0000 UTC FinishedAt: 2026-08-13 08:32:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-13 05:20:50 +0000 UTC FinishedAt: 2026-08-13 08:32:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*0eb53134-0b62-4b75-8673-f81d4d73e4ab,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*f05185b4-5961-4e86-a601-a599f283f1c8,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-workflowjdcpc/series-workflowjdcpc-build-action-3144453615/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-workflowjdcpc/series-workflowjdcpc-build-action-2346775392/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-13 05:20:50 +0000 UTC FinishedAt: 2026-08-13 05:21:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-13 05:20:50 +0000 UTC FinishedAt: 2026-08-13 05:20:55 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowjdcpc/series-workflowjdcpc-convert-artifact-2243413437/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-13 05:20:50 +0000 UTC FinishedAt: 2026-08-13 05:20:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-13 05:20:50 +0000 UTC FinishedAt: 2026-08-13 05:20:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-13 05:20:50 +0000 UTC FinishedAt: 2026-08-13 05:20:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-13 05:21:00 +0000 UTC FinishedAt: 2026-08-13 08:32:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjdcpc[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["btrfs_ioctl_defrag"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"28d012efb4327f9c75d5e042a7c91e9a542efa98","config_name":"upstream-apparmor-kasan.config","enable_configs":["BTRFS_FS"],"series_id":"07521fe4-3089-43cc-be0e-b6cb6cbba2ae","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-13 05:21:00 +0000 UTC FinishedAt: 2026-08-13 08:32:39 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*0eb53134-0b62-4b75-8673-f81d4d73e4ab,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*f05185b4-5961-4e86-a601-a599f283f1c8,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-workflowjdcpc/series-workflowjdcpc-build-action-3144453615/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-workflowjdcpc/series-workflowjdcpc-build-action-2346775392/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-workflowjdcpc/series-workflowjdcpc-convert-artifact-2243413437/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}